-
Content count
73 -
Joined
-
Last visited
About SatanaInArte
-
Rank
Mini-Member
Recent Profile Visitors
1083 profile views
-
Hello, Doomworld! I have a couple of questions. 1: I added a quick kick attack in my mod by following a thread on zdoom forums. I also created a KEYCONF lump in to bind the Q as the key for quick kick and I went further by binding crouch and jump (this is because I'm planning to make my mod to be played with jump and crouch enabled by default without any need to manually bind them). They work fine but I was wondering: Is this the right/better way to do this? If not, is there a better way? 2: I noticed a strange bug when using the menu. My custom menu with its keybinds works just fine... BUT If you decide to simply press the "Save current settings button", the game decides to erase the keybinds. Fortunately the error does not persist if you close and restart the game, but what if I wanna change something like graphical settings and then save them? That's very annoying. Edit: I tried to do the same with another mod, DN3DooM mod, and the same error happened. So at least it doesn't sound like I made some mistakes. What is causing this error? And how can I fix it? I'm using GZDoom v. 4.11.3. Thank you in advance. Edit2: I commented "addkeysection" out, thus removing the custom option menu in the customize control section. I pressed "save current settings" and... it did not erased the keys this time! They worked even after doing that. Still, I don't understand why the game behaved the way it did when the menu I added was still there.
-
SOLVED: How do I make a dynamic ammo belt?
SatanaInArte replied to SatanaInArte's topic in Doom Editing Help
I'm gonna provide code lines and some of them will be accompanied by comments explaining how they work exactly. SOLUTION: By taking inspiration from 2 mods: Re-Exhumed (Public Test 1.2) and Shadow Warrior TC mod for GZDoom, I wrote a code in ZScript that makes the game recognize which sprites it has to show based on your current ammo count. This is what I did (this is gonna be long): class RBChaingun : DoomWeapon replaces Chaingun { Default { Weapon.SelectionOrder 700; Weapon.AmmoUse 1; Weapon.AmmoGive 20; Weapon.AmmoType "ChaingunAmmo"; Inventory.PickupMessage "$GOTCHAINGUN"; Obituary "$OB_MPCHAINGUN"; Tag "$TAG_CHAINGUN"; } States { //Ready states //Just like in Re-Exhumed, I wrote different Ready states based on your ammo count. //For Example, ReadyFull shows the will show the "full ammo" sprite until 12 bullets are left. //As you go below 12 bullets, the game will jump to Ready11, Ready10, Ready 9 and so on. //For each state comes a different sprites showing the ammo belt becoming shorter. Ready: CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 12, "ReadyFull"); //It will show the full ammo sprite until 12 bullets left. CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 11, "Ready11"); //From this point on the game will start show different sprites (11 bullets, 10, 9 and so on). CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 10, "Ready10"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 9, "Ready9"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 8, "Ready8"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 7, "Ready7"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 6, "Ready6"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 5, "Ready5"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 4, "Ready4"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 3, "Ready3"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 2, "Ready2"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 1, "Ready1"); Loop; ReadyFull: CRIO A 1 A_WeaponReady; Loop; Ready11: ELEV A 1 A_WeaponReady; Loop; Ready10: TENN A 1 A_WeaponReady; Loop; Ready9: NINE A 1 A_WeaponReady; Loop; Ready8: EIGT A 1 A_WeaponReady; Loop; Ready7: SEVN A 1 A_WeaponReady; Loop; Ready6: SIXX A 1 A_WeaponReady; Loop; Ready5: FIVE A 1 A_WeaponReady; Loop; Ready4: FOUR A 1 A_WeaponReady; Loop; Ready3: THRE A 1 A_WeaponReady; Loop; Ready2: TWOO A 1 A_WeaponReady; Loop; Ready1: ONET A 1 A_WeaponReady; Loop; //The Select and Deselect states //I repeated the same process with the Select and Deselect states //This is very important because the game will show the correct sprite based on your current ammo count as you select or deselect the weapon. Select: CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 12, "SelectFull"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 11, "Select11"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 10, "Select10"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 9, "Select9"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 8, "Select8"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 7, "Select7"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 6, "Select6"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 5, "Select5"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 4, "Select4"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 3, "Select3"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 2, "Select2"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 1, "Select1"); CRIO AAAAAAAAAAAAAAAAAA 1 A_Raise; //failsafe; Loop; SelectFull: CRIO A 1 A_Raise; Loop; Select11: ELEV A 1 A_Raise; Loop; Select10: TENN A 1 A_Raise; Loop; Select9: NINE A 1 A_Raise; Loop; Select8: EIGT A 1 A_Raise; Loop; Select7: SEVN A 1 A_Raise; Loop; Select6: SIXX A 1 A_Raise; Loop; Select5: FIVE A 1 A_Raise; Loop; Select4: FOUR A 1 A_Raise; Loop; Select3: THRE A 1 A_Raise; Loop; Select2: TWOO A 1 A_Raise; Loop; Select1: ONET A 1 A_Raise; Loop; Deselect: CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 12, "DeselectFull"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 11, "Deselect11"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 10, "Deselect10"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 9, "Deselect9"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 8, "Deselect8"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 7, "Deselect7"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 6, "Deselect6"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 5, "Deselect5"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 4, "Deselect4"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 3, "Deselect3"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 2, "Deselect2"); CRIO A 0 A_JumpIfInventory("ChaingunAmmo", 1, "Deselect1"); CRIO A 0 A_JumpIfNoAmmo("DeselectX"); CRIO AAAAAAAAAAAAAAAAAA 1 A_Lower; //failsafe; Loop; DeselectFull: CRIO A 1 A_Lower; Loop; Deselect11: ELEV A 1 A_Lower; Loop; Deselect10: TENN A 1 A_Lower; Loop; Deselect9: NINE A 1 A_Lower; Loop; Deselect8: EIGT A 1 A_Lower; Loop; Deselect7: SEVN A 1 A_Lower; Loop; Deselect6: SIXX A 1 A_Lower; Loop; Deselect5: FIVE A 1 A_Lower; Loop; Deselect4: FOUR A 1 A_Lower; Loop; Deselect3: THRE A 1 A_Lower; Loop; Deselect2: TWOO A 1 A_Lower; Loop; Deselect1: ONET A 1 A_Lower; Loop; //DeselectX. When the ammo count is empty the game will show the "noammo" sprite and automatically deselect the weapon. DeselectX: ONET C 1 A_Lower; Loop; //Fire States //Just like I did above, I then created different Fire states. Fire: //These states will prevent the game from keep showing the same sprites when holding the fire button //(like showing the "full ammo" sprites even if your ammo count says "6"). //and so the game will jump to the desired sprites based on your ammo count. //You will see the ammo belt getting gradually shorter as you fire and hold fire. NULL A 0 A_JumpIfInventory("ChaingunAmmo", 12, "Fire12Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 11, "Fire11Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 10, "Fire10Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 9, "Fire9Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 8, "Fire8Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 7, "Fire7Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 6, "Fire6Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 5, "Fire5Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 4, "Fire4Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 3, "Fire3Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 2, "Fire2Left"); NULL A 0 A_JumpIfInventory("ChaingunAmmo", 1, "Fire1Left"); goto Ready; //12 bullets left (this state will show the full ammo firing sprites until 12 bullets are left). Fire12Left: CRIO B 0 A_StartSound("rbchaingun/fire", CHAN_WEAPON); CRIO B 0 A_GunFlash; CRIO B 2 A_FireBullets (1, 1, 1, 6, "BulletPuff", FBF_NORANDOM | FBF_USEAMMO); CRIO C 2; CRIO C 2 A_ReFire ("Fire12BLeft"); //if you hold fire the CRIO G 4 A_FireProjectile("RBChaingunCasingSpawner", spawnofs_xy:0, spawnheight:0); Goto DoRefire; //"DoRefire" (which you can see at the very bottom) is a remnant from the Re-Exhumed code I took inspiration from. //I've gotta admit that I'm not sure how it works but it seems it prevents issues like showing the wrong sprites. //Fire12BLeft is where the second pair of firing sprite appear when you hold the fire button (an "HoldFire" state, if you will). I learned about this from the SW TC mod. //At first I created another "HoldFire" states like this but then I noticed that the second one was redundant and problematic. //For example, it made the game show the "full ammo" sprites no matter what the ammo count said. So that's why I removed it. Fire12BLeft: GROV D 0 A_StartSound("rbchaingun/fire", CHAN_WEAPON); GROV D 0 A_GunFlash("Flash1"); GROV D 2 A_FireBullets (1, 1, 1, 6, "BulletPuff", FBF_NORANDOM | FBF_USEAMMO); GROV B 2 A_FireProjectile("RBChaingunCasingSpawner", spawnofs_xy:0, spawnheight:0); GROV B 2 A_ReFire; Goto HoldEnd; //If you stop holding the fire button, the game will show this sprite before going to Ready. HoldEnd: CRIO G 4 A_FireProjectile("RBChaingunCasingSpawner", spawnofs_xy:0, spawnheight:0); Goto Ready; //Each fire state comes with their own flash states. Flash: CRIO BC 2 Bright A_Light2; CRIO C 2 Bright A_Light1; TNT1 A 1 A_Light0; Goto LightDone; Flash1: GROV DB 2 Bright A_Light2; GROV B 2 Bright A_Light1; TNT1 A 1 A_Light0; Goto LightDone; //Then you just repeat the same process for the rest of the different fire states. //Fire1Left is the only one that (obviously) doesn't need A_Refire or a "HoldFire" state. //DoRefire. I already explained it above. DoRefire: NULL A 0 A_Refire; goto Ready; Spawn: MGUN A -1; Stop; } } I hope this was not too confusing. If you've got some questions just ask me and I'll try to make explain better. :) -
SOLVED: How do I make a dynamic ammo belt?
SatanaInArte replied to SatanaInArte's topic in Doom Editing Help
You're right. As soon as I'll get back on my pc, I'll explain exactly how I solved my problem. -
How do you make the chaingun fire one shot at a time?
SatanaInArte replied to SatanaInArte's question in Editing Questions
Yup! That was the problem. Again, thanks a lot! I was going crazy because of one line of code lol. -
How do you make the chaingun fire one shot at a time?
SatanaInArte replied to SatanaInArte's question in Editing Questions
Thanks a lot, man! :) -
How do you make the chaingun fire one shot at a time?
SatanaInArte replied to SatanaInArte's question in Editing Questions
Whoops, my bad. I'm using GZDoom as sourceport and I'm coding in ZScript. BTW your solution solved. The only issue remaining is that I used 2 frames for one shot (two sprites for the muzzleflash, basically). So now I'm left with just one frame per shot. It's not a big deal but I hoped to keep both frames. <----Nevermind, I think I've solved this. -
How do you make the chaingun fire one shot at a time?
SatanaInArte posted a question in Editing Questions
I'm making a custom chaingun and like the regular one it still fires 2 hitscan shots even when the left mouse button is pressed once. How can I make my custom weapon to fire only one shot at a time? I tried with A_FireBullets but that didn't change anything. -
EDIT: NVM, I've found a solution. Hello fellas! I'm making a new weapon, a custom chaingun, for my mod and I thought that if I can implement an ammo belt that visually decreases as you fire and your ammo count goes to zero (like a bunch of overlay sprites on top of the weapon) would be really cool. I tried searching mods that do similar things, but nothing. I can't find a method anywhere and that's why I'm asking you: How do I achieve something like that? Thank you in advance.
-
The REAL "BossBrain".
-
I use GIMP for both sprites and textures
-
When I tried to apply the Doom palette on GIMP, it looked like crap. When I converted it on Slade3 it was a big improvement. The result was exactly the one you're looking at and I don't think it looks bad. @plums Wohooah! I didn't think about that. Now it's completely seamless! Nice job! :D Edit: Sorry about the double posting. I forgot to multiquote.
-
I tried but it seems like once b/w the picture can't be recolored again. It just stays b/w.
-
Yeah, maybe I could try that. Thank you!
-
Hello people! I finally decided to contribute to this thread by posting a photo sourced sky texture. I used a picture taken by a friend of mine, so I cropped it, scaled it down and edited it with GIMP to make it look seamless. It comes in two versions: true color and paletted. Feel free to use it, just credit me. (I hope I posted them correctly)
-
The ORIGINAL Baron/Hell Knight sample was found!
SatanaInArte replied to SatanaInArte's topic in Doom General Discussion
It's crazy because yesterday I just casually typed "doom baron of hell sight sound" on Google and this video showed up. So, there you go. The Baron of Hell and Hell Knight are not elephants but low pitched women.