Quote:
Originally Posted by blapanda
It depends on the type of NPC you are adding, the so called "TID" numbers.
Every item, every rideable mount, pet, grab pet, consumable, NPC, Mob, and so on has them.
If you want to remove e.g. the Blacksmith's repair function in jangan, just hit up an seller-NPC which doesn't have that function, for instance the Grocery and Stable Keeper NPC. Line up those strings (obtained from the databank) and watch whats different.
|
This has not much to do with TypeIDs. You will find 1, 2, 2, 0 for every
NPCNPC except "Siege Pullies".
Comparing 2 RefObjCommon (+RefObjChar) lines will be identical except for the ID, Name and used resource.
The client receives the TalkOptions with the spawn of an object (0x3015, 0x3019) and when selecting it (0xB045).
Injecting a list of different TalkOptions will add them visually...
[Only registered and activated users can see links. Click Here To Register...]
...but of course they won't work, so we have to figure how the GameServer builds these lists.
Searching for
NPC_CH_SMITH text references using your favorite dissembler will easily bring you to the correct function.
You'll see a list of Smith and Armor NPCs (both having the ability to repair) with jumps to the same destination where the TalkOption is pushed onto the stack before the registering the it to the NPC.
[Only registered and activated users can see links. Click Here To Register...]
You can either replace the string reference or write a code cave to manipulate this lists to create even more awesome NPCs.
But that's your job :p
Final result:
[Only registered and activated users can see links. Click Here To Register...]