Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Richo Rosai

a way to make more detailed changes than with dehacked

Recommended Posts

Does there exist a way to make changes similar to the ones dehacked allows but which are not available in dehacked? Specifically I'm talking about changing the amount of health and armor given by medikits and armors, and the amounts of ammo picked up from individual ammo pick-ups rather than scaling the ammo by type (for example, in dehacked it's impossible to lower the amount of rockets in a box to anything but 0).

I'm making a patch for my own personal use that adds ammo and health balance (for the original Ultimate Doom), but I can't quite tweak it as finely as I want to in dehacked (for example, I still find myself constantly full on health, combat armor and rockets).

Share this post


Link to post

It's not clear what engine you intend to play with, as some source ports have specific advanced thing editing features (JDoom has DED, ZDoom has Decorate, EDGE has DDF, &c). Although with DehackEd you could turn items into weaker counterparts. For example, turning all rocket boxes into rockets, turning megaarmors into armors and standard ones into mere armor bonuses.

Share this post


Link to post

I'm using Zdoom, but I don't really want to edit the maps, but rather have a patch. I guess there's more to dehacked than I gathered from the guide I read and my own clicking around, so I'll look further into your suggestions. Thanks.

Share this post


Link to post

If you work with ZDoom exclusively you better check out DECORATE. DECORATE allows replacing stuff without changing the maps. Dehacked is quite limited and doesn't even come close to using all the engine's features.

Share this post


Link to post

Thanks for clearing that up. If the Decorate Editor thing hosted at filefront is ever back up again I'll try to figure it out.

Share this post


Link to post

You don't even need a special editor. Just something that can add text lumps in a wad. Or you can just make a text file (named DECORATE.txt), zip it, and load the zipped file directly in ZDoom; it'll work.

Just use inheritance and the "replaces" keyword in the definition of new items and it'll replace things with modified versions of themselves. For example:

Actor PunyArmor : GreenArmor replaces GreenArmor
{
  armor.savepercent 25
  armor.saveamount 50
}
The green armor will now soak just one quarter of damages (instead of one-third) and will give just 50 armor points (instead of 100).
Actor SuperPack : Stimpack replaces Stimpack
{
  inventory.amount 50
}
The stimpack will now give back 50 health points instead of just 10.

Share this post


Link to post
Gez said:

You don't even need a special editor. Just something that can add text lumps in a wad. Or you can just make a text file (named DECORATE.txt), zip it, and load the zipped file directly in ZDoom; it'll work.


Thanks for clarifying that. The wiki explained the code but didn't seem to show the process of making the text lump into a usable format, so I assumed that to do it manually I'd have to re-learn Wintex or something like with importing of ACS scripts into wads (but I did A Warm Place way back in 2001, so I guess by now that process has probably been superseded as well by now, huh.)

Share this post


Link to post

actor BalanceShotgun : Shotgun replaces Shotgun
{
  weapon.ammogive 2
}
Okay. When I do this, the ammo adjustment works, but then I'm no longer able to select the shotgun until I run out of ammo for all my other weapons. Also, the nextweapon and previousweapon stop working all together while this shotgun is selected. So the same code doesn't work for weapons?

Share this post


Link to post
Richo Rosai said:

actor BalanceShotgun : Shotgun replaces Shotgun
{
  weapon.ammogive 2
}
Okay. When I do this, the ammo adjustment works, but then I'm no longer able to select the shotgun until I run out of ammo for all my other weapons. Also, the nextweapon and previousweapon stop working all together while this shotgun is selected. So the same code doesn't work for weapons?

Ah, no, that's another issue. The weapon slot 3 is still tied to the Shotgun and SuperShotgun, not to your BalanceShotgun, so it's not possible to select it -- until you add a KEYCONF lump as well to update the weapon slots.

It'll look something like that:

weaponsection BalanceWeapons
setslot 3 BalanceShotgun BalanceSuperShotgun
setslot 4 BalanceChaingun
And so on. Just zip KEYCONF.txt alongside DECORATE.txt. :)

Share this post


Link to post

I figured it was something like that, but I didn't see anything in the various parameters to correspond to the weapon slot. I'm not sure I'll bother with that now, since Shotgun is the only one that I want to change (due to Sergeants flooding you with ammo when they die). It might be better to just do away with shell boxes completely...

But on the other hand maybe I will, as a primer for getting back into modding.

Share this post


Link to post

Oh, if all you want to change is how many ammo the dead sergeants give you, you can edit them directly instead.

actor StingyShotgunGuy : ShotgunGuy replaces ShotgunGuy
{
  spawnid 1
  dropitem "Shell" 256
}
Instead of dropping a shotgun, they'll drop four shotgun shells -- except that ammunitions from monster drops are halved, so you'll get only two.

You could also make a new type of ammo item.
actor SingleShell : Shell
{
  inventory.pickupmessage "Picked up one shell from a busted shotgun."
  inventory.icon "SHELA0"
  inventory.amount 1
  Spawn:
    SHOT A -1
    stop
  }
}
It'll look like a shotgun but actually it'll be just one shell. And then edit the sergeant as above but give it this as its dropitem instead.

Share this post


Link to post

Hm. For some reason this

actor SingleShell : Shell
{
  inventory.pickupmessage "Picked up one shell from a busted shotgun."
  inventory.icon "SHELA0"
  inventory.amount 1
  Spawn:
    SHOT A -1
    stop
  }
}

actor BalanceShotgunGuy : ShotgunGuy replaces ShotgunGuy
{
  spawnid 1
  dropitem "SingleShell" 256
}
results in this:

Execution could not continue.

Script error, "decorate.txt" line 6:
Invalid state assignment

Share this post


Link to post

Indeed it does, my bad. I copy/pasted stuff quickly and forgot to put the lines opening the states part:

  States
  {
So this should work.
actor SingleShell : Shell
{
  inventory.pickupmessage "Picked up one shell from a busted shotgun."
  inventory.icon "SHELA0"
  inventory.amount 1
  States
  {
  Spawn:
    SHOT A -1
    stop
  }
}

actor BalanceShotgunGuy : ShotgunGuy replaces ShotgunGuy
{
  spawnid 1
  dropitem "SingleShell" 256
}

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×