What does it take to create a new feat?

Discussion in 'General Modification' started by mos, Aug 25, 2006.

Remove all ads!
  1. mos

    mos Member

    Joined:
    Dec 31, 2004
    Messages:
    29
    Likes Received:
    0
    The subject is pretty self-explanatory, but in case you're wondering, I want to add some of the shield-fighter feats from PHB 2.0.
     
  2. Shiningted

    Shiningted I want my goat back Administrator

    Joined:
    Oct 23, 2004
    Messages:
    12,651
    Likes Received:
    350
    They have to be hacked into the temple.dll (and a few mes files, though some of the mes files mention hordes of feats recognised on some levels of the game but not activated or programmed to do anything).

    Check inside your Atari/Temple of Elemental Evil/Dev History folder for examples where Moebius added new monk feats, some of which didn't do anything.
     
  3. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    Ted - I don't have this directory after installing ToEE, patch 2, Co8 5.0.0 and the 5.0.1 cumulative fixes dated 20/8 - should I have?
     
  4. mos

    mos Member

    Joined:
    Dec 31, 2004
    Messages:
    29
    Likes Received:
    0
    Define 'hacked into the dll'. Does that mean there needs to be a new entry in some list the dll has internally, or are we talking adding blocks of code?

    If we are talking large blocks of code, has anyone succeeded in doing something like this?
     
  5. krunch

    krunch moving on in life

    Joined:
    Aug 9, 2005
    Messages:
    3,280
    Likes Received:
    0
    The answer is no.
     
  6. Jesse Heinig

    Jesse Heinig Established Member

    Joined:
    Jun 26, 2005
    Messages:
    126
    Likes Received:
    0
    It means large blocks of code.

    The most recent code-hacking has been done by Spellslinger, but thus far he has mostly been fixing bugs. Adding in entire new feats would take a lot of work, because they'd have to hook into the code in areas that affect how the characters perform their hard-coded actions.

     
  7. mos

    mos Member

    Joined:
    Dec 31, 2004
    Messages:
    29
    Likes Received:
    0
    Yeah, I figured that's what it was, but I was hoping it was as (relatively) simple as tying a new python script to an ID in the dll.
     
  8. krunch

    krunch moving on in life

    Joined:
    Aug 9, 2005
    Messages:
    3,280
    Likes Received:
    0
    Realize that most all of the modding ever done by almost all of the modders at Co8 has been without changing anything whatsoever in the Temple.DLL file.
     
  9. mos

    mos Member

    Joined:
    Dec 31, 2004
    Messages:
    29
    Likes Received:
    0
    Yeah, I'm aware. Didn't stop me from wishing, though. I had noticed the new Monk feats (even though they don't work), and just wondered what the process was to add them.
     
  10. Spellslinger

    Spellslinger Established Member

    Joined:
    Jul 14, 2006
    Messages:
    158
    Likes Received:
    0
    Hey, would be cool if you want to work on that. I've downloaded an old temple.dll archive from moebius and there are some txt files with explanations in it. I think I've found the link in an old thread on this board, but maybe one of the big bosses around here has a link to the most current notes by moebius?
     
  11. Shiningted

    Shiningted I want my goat back Administrator

    Joined:
    Oct 23, 2004
    Messages:
    12,651
    Likes Received:
    350
    Crikey Kap'n, what r u trying to do here? The answer is YES, Moebius did exactly that! If I may cite two examples:
    Code:
    [B]Stunning Fist:[/B]
    000F9834	68 53 01 00 00		push 0x00000153
    000F9839	56			push esi
    000F983A	57			push edi
    000F983B	8B D8			mov ebx, eax
    000F983D	E8 8E 2B F8 FF		call 0007C3D0
    000F9842	68 32 02 00 00		push 0x00000232
    000F9847	56			push esi
    000F9848	57			push edi
    000F9849	E8 82 2B F8 FF		call 0007C3D0
    
    000F9834	6A 0C			push 0x0C
    000F9836	56			push esi
    000F9837	57			push edi
    000F9838	8B D8			mov ebx, eax
    000F983A	E8 C1 AF F7 FF		call 00074800
    000F983F	50			push eax
    000F9840	50			push eax
    000F9841	50			push eax
    000F9842	29 C3			sub ebx, eax
    000F9844	C1 EB 02		shr ebx, 0x02
    000F9847	01 C3			add ebx, eax
    000F9849	90 90 90 90 90		nops
    Code:
    [B]Ki Strike:[/B]
    bonus.mes: {334}{~Ki Strike~[TAG_CLASS_FEATURES_MONK_KI_STRIKE]: Attack Treated as Magic, Lawful, Adamantium}
    
    000FAB0A	83 F8 0A	cmp eax, 0x0A
    000FAB0D	6A 04		push 4
    000FAB0F	53		push ebx
    000FAB10	7D 19		jge 000FAB2B
    000FAB12	E8 09 5A FE FF	call 000E0520
    000FAB17	68 4B 01 00 00	push 0x014B
    000FAB1C	53		push ebx
    000FAB1D	E8 CE 66 FE FF	call bonus_mes1
    000FAB22	83 C4 10	add esp, 0x10
    000FAB25	5F		pop edi
    000FAB26	5E		pop esi
    000FAB27	33 C0		xor eax, eax
    000FAB29	5B		pop ebx
    000FAB2A	C3		retn
    000FAB2B	E8 F0 59 FE FF	call set_damage_type
    000FAB30	6A 40		push 0x40
    000FAB32	53		push ebx
    000FAB33	E8 E8 59 FE FF	call set_damage_type
    000FAB38	68 4C 01 00 00	push 0x014C
    000FAB3D	53		push ebx
    000FAB3E	E8 AD 66 FE FF	call bonus_mes1
    000FAB43	83 C4 18	add esp, 0x18
    
    000FAB0A	33 F6		xor esi, esi
    000FAB0C	BF 4B 01 00 00	mov edi, 0x0000014B
    000FAB11	83 F8 10	cmp eax, 0x10
    000FAB14	7C 08		jl 000FAB1E
    000FAB16	83 C7 02	add edi, 0x02
    000FAB19	BE 80 00 00 00	mov esi, 0x00000080
    000FAB1E	83 F8 0A	cmp eax, 0x0A
    000FAB21	7C 04		jl 000FAB27
    000FAB23	47		inc edi
    000FAB24	83 CE 40	or esi, 0x40
    000FAB27	83 CE 04	or esi, 0x04
    000FAB2A	56		push esi
    000FAB2B	53		push ebx
    000FAB2C	E8 EF 59 FE FF	call set_damage_type
    000FAB31	57		push edi
    000FAB32	53		push ebx
    000FAB33	E8 B8 66 FE FF	call bonus_mes1
    000FAB38	83 C4 10	add esp, 0x10
    000FAB3B	5F		pop edi
    000FAB3C	5E		pop esi
    000FAB3D	33 C0		xor eax, eax
    000FAB3F	5B		pop ebx
    000FAB40	C3		retn
    000FAB41	90 90 90 90 90	nops
    It would appear the dev_history file has been superceded by some of the more recent (and far more structured and useful) efforts at documentation for the Co8 mods, but I will have to leave it to someone like C-Blue to explain where it is now.
     
  12. krunch

    krunch moving on in life

    Joined:
    Aug 9, 2005
    Messages:
    3,280
    Likes Received:
    0
    Okay, maybe I should have worded that to be, "Historically in the past, except for moebius2778, the answer is no."

    Or, maybe I should have worded that to be, "Historically in the past and generally, the answer is no."
     
    Last edited: Aug 26, 2006
  13. Hazelnut

    Hazelnut Great Confusor

    Joined:
    Jul 20, 2006
    Messages:
    158
    Likes Received:
    0
    Hey, I've just found that now too. Blimey, it's a bit hidden in the depths of history isn't it? Very interesting. I'd assumed that moebeus (and others) had never activated the high level monk class abilities/feats because it was too difficult to do - hence my idea in the Monk's Belt thread. That's the impression I had, but then I've only been here for around 10 minutes. ;)
     
  14. Spellslinger

    Spellslinger Established Member

    Joined:
    Jul 14, 2006
    Messages:
    158
    Likes Received:
    0
    Well, the only problem is, that (IIRC) moebius said this kind of hack he used is only possible for class feats, not for selectable ones. I've looked through the notes I found in that old temple.dll archive when working on the rogue feat fix and didn't get too far following the adding feats trick at first glance. I'll try looking into it when I've finished my own pet projects, but don't get your hopes up too high.
     
  15. Cerulean the Blue

    Cerulean the Blue Blue Meanie Veteran

    Joined:
    Apr 23, 2005
    Messages:
    1,962
    Likes Received:
    0
    The dev_history folder was removed from 5.0.0 because it was of use to only a limited set of people (I did discuss this with other modders before I decided to remove it). Since it is available in 4.0.0, and moebius2778's patch, the information it contains is still around for those who want or need it.
     
Our Host!