News:

One Minute Game Review by The Happy Friar: https://ugetube.com/@OneMinteGameReviews
Also on Rumble: https://rumble.com/c/c-1115371

idTech 4 (aka Doom 3 tech) Discord Server! https://discord.gg/9wtCGHa

Main Menu

All the basics

Started by Mr A, July 15, 2014, 12:59:12 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Mr A

It seems to me like there's no place where all the basic id Tech 4 modding information is at hand.  I think iddevnet.com is currently the most helpful website, and The Dark Mod forums seem the best place for modding tips (though they don't like to talk Doom d= ). 

Personally, aside from noob guides, I'd like some advice on making mods compatible with others, and how this works.  Like I've made a simple mod that makes Doom 3 more classic (weapons and monsters more like in original Doom, corpses and decals stay etc), I'd like to know how I could use this mod with other popular mods (Sikk mod mainly) without causing issues. 

Finally, I tried to make a Combat/Mega Armour.  In the powerups.def  there's the value "type" and it says  "MUST MATCH ONE OF THE DEFINES IN PLAYER.H".  I have no idea what this is hahahaha.

Thanks in advance for any help =)

The Happy Friar

Doom3World was the place to go for that.  Hence this places existence.  :)


Feel free to ask question here.  so far, the several people who joined up know a bit or two and most likely would be willing to help.

As for combining mods, as long as they don't use conflicting files it should be pretty easy to combine them.  IE a mod that modified weapons only could easily be combined with a mod that modified monsters only.  Mods with SDK changes could be more difficult because you'd need to combined the differing C++ code's together, which could be impossible if the same code sections are changed in each mod.

LDAsh

Since the very beginning I saved almost every helpful thread from Doom3world.org and I still have them all as MHT files (combined IE files, so all pics are in there too) and, so long as I have the exact filename, I have all of the relevant files laying around for them too, including pics.  It's not just D3W but also Fileplanet/Gamefront/etc. that have let everything fall down the toilet bowl, the moment they stop making any ad revenue.  I knew these days would come so I saved as much of it as I could.

I don't mind sharing this stuff if someone asks, but I don't think I should be posting it publicly, because that BNA! guy seems like the type that wouldn't hesitate to get snotty about it and try to take legal action, despite the fact that he didn't actually write any of this useful information.

The Happy Friar

If it were me I wouldn't worry about posting it publicly.

Zombie

I think it'd be super awesome to publicly put that some where.

BNA doesn't own the rights to peoples tutorials, I don't see why he'd get up at that?

I'm working on a mod and having access to that stuff would be very useful.

Mr A

Does anyone know much about Player.h ?

The Happy Friar

The header file?  Can you be more specific?  I am looking at it now and it's a lot of setup stuff the game uses for the player.

Mr A

I just want to know how it works, and where it is located, for modifying the powerups.  Like when I'm trying to make a make a Combat/Mega Armour.  In the powerups.def  there's the value "type" and it says  "MUST MATCH ONE OF THE DEFINES IN PLAYER.H".  I have to use some sort of special function to add armour beyond the "maxarmor" value, like with the soul sphere.

The Happy Friar

Oh.  That's in the SDK.  I don't think you NEED it to match the code.  I haven't messed with that in a while.  But even if it does there are other ways around it.  Maybe someone with more experience with powerups can chime up.

deadite4

It depends on what you are trying to do.  The types based in order starting with 0 are:

enum {
BERSERK = 0,
INVISIBILITY,
MEGAHEALTH,
ADRENALINE,


As you see megahealth uses a 'type' however standard combat armor does not.  The standard armor value can easily be modified in the .def file:

entityDef item_armor_security {
"inherit" "item_default"
"editor_color" ".3 .3 1"
"editor_mins" "-16 -16 0"
"editor_maxs" "16 16 32"
"editor_usage" "Armor"

"spawnclass" "idItem"
"model" "models/items/armor/armor.lwo"
"snd_acquire" "sound_vest_acquire"
"size" "32 32 32"
"inv_name" "Armor"
"inv_armor" "100"
}


Just change "100" to whatever you want.  You will most likely need to do some SDK work if you want it to go over the max to my knowledge.  We did for the mega armor in cdoom years back to take you to 200.

Mr A

You worked on cdoom?
But yeah that's exactly what I'm trying to do, megaarmour just like cdoom, so I get above max armour! If you can tell me how to do that I would be over the moon =D

I know like nothing about editing SDKs, I'm such a noob ahah =')
It's really hard to find any noob friendly stuff since Doom3world went. 

Oh would I also be able to stop gib drops from fading using the SDK?

deadite4

yes, I was on the team.  Our method is below, we also did this for the healthvial and armorbonus as those allow you to go over max as well.  You need to know how to compile though for any SDK work so before you go modifying these files, you should work on getting set up just to compile the vanilla SDK.

what we did:

In player.h:
enum {
BERSERK = 0,
INVISIBILITY,
MEGAHEALTH,
ADRENALINE,
HEALTHVIAL, // SnoopJeDi
ARMORBONUS, // SnoopJeDi
MEGAARMOR, // SnoopJeDi
MAX_POWERUPS
};


In player.cpp within idPlayer::GivePowerUp:

case MEGAARMOR: {   //SnoopJeDi
inventory.AddPickupName("Mega Armor", "");
def = gameLocal.FindEntityDef( "item_mega_armor", false );
if ( def && inventory.armor < spawnArgs.GetInt ( "maxbonusarmor" ) ) {
inventory.armor += def->dict.GetInt( "inv_armor" );
if ( inventory.armor > spawnArgs.GetInt ( "maxbonusarmor" ) ) {
inventory.armor = spawnArgs.GetInt ( "maxbonusarmor" );
}
}
break;
}


In items.def:
entityDef item_mega_armor {
"editor_color" ".3 .3 1"
"editor_mins" "-16 -16 0"
"editor_maxs" "16 16 32"
"editor_usage" "Mega Armor"

"spawnclass" "idItemPowerup"
"model" "models/items/armor/megaarmor.lwo"
"snd_acquire" "armor_bonus"
"size" "32 32 32"
"inv_name" "Mega Armor"
"inv_armor" "200"
  "respawn"            "0"
  "time"                "30"
"spin"       "0"
  "type"                "6"   // MUST MATCH ONE OF THE DEFINES IN PLAYER.H
}

Bladeghost

#12
Get the facepalm ready....:) open your (player.def) and increase "maxhealth"
and or "maxarmor" to whatever and presto.....
I had to do this for my predator project as it's max health is now at 220 for the player.
hope that helps a bit. if I'm reading this all correctly... sorry just woke up, overtired.

Mr A

Deadite4, you are my personal modding hero =)
Thanks mister!

No, that wasn't what I was trying to do Bladeghost.  The thing with increasing maxhealth/armour is that any health/armour item will push health/armour above 100, while I only want special items to increase stats beyond this.