Jump to content

NPC Item Exchange Discovery (Text Item Dialogue Assembly)


Airikita
 Share

Recommended Posts

I would like to announce that I have discovered a way to change what text an npc uses... this also seems to determine that the Skulltula family in the House of Skulltula will NOT give you items if you change the value (found in ovl_En_Sth (human skulltula family)).

 

Here's a snippet of the assembly code:

Posted Image

 

Changing $0021 to $0001 will give them the text for the Cucco Pocket Egg and negate them from giving Link an item. This can be changed to anything, however this affects all 5 members of the family as they all use the same text.

 

This also prevents them from giving Link ANY ITEMS, which means, yet another AI that does NOT have the item(s) generated in their code, but elsewhere.

 

The function: JAL $0002F2CC is where it's at!

 

Changing the JAL to a NOP (00000000) causes them to not have any text at all! In fact... the "speak" command is disabled from them, and Link's icon shows "Attack" instead.

 

Posted Image

 

0000 - no text (softlock, no item)

0001 - Pocket egg message. (no item)

0002 - "You returned the Pocket Cojiro..." message. (no item)

0003 - "You got an Odd Mushroom!" message. (no item)

0004 - "You got an Odd Potion!" message. (no item)

0005 - "You returned the Odd Potion and got the Paocher's Saw!" message. (no item)

0006 - "Bombs 20 Pieces 80 Rupees.... Buy/Don't Buy" (does nothing, no item)

0007 - "You got a Deku Seeds Bullet Bag." (no item)

0008 - "You traded the Poacher's Saw for a Broken Goron's Sword!" message. (no item)

0009 - "You checked in the Broken Goron's Sword and received a Prescription!" message. (no item)

000A - "The Biggoron's Sword... You got a Claim Check for it!" (no item)

000B - "You traded the Giant's Knife for the Biggoron's Sword!" message. (no item) (BETA)

000C - "You handed in the Claim Check and got the Biggoron's Sword!" (no item)

000D - "You used the Prescription and received an Eyeball Frog!" message. (no item)

000E - "You traded the Eyeball Frog for the World's Finest Eyedrops!" message. (no item)

000F - "WINNER!" (gives item according to NPC (Stone of Agony in one case))

0010 - "You borrowed a Skull Mask" message. (no item)

0011 - "You borrowed a Spooky Mask!" (no item)

...

0021 - "You saved me!" (normal Skulltula Family text, gives item according to NPC)

0022 - "Yeeaarg!! I'm cursed!" message. (no item)

0023 - "We'll be careful not to get cursed again." (no item)

0024 - "Since you destroyed (number) Skulltulas, the curse is starting to weaken..." (no item)

0025 - "We look like this because of the spider's curse. But..."

0026 - "We all look like this because of the spider's curse." (longer dialogue)

0027 - "If you break the curse on my family, we will make you very rich..."

0028 - "Since you destroyed 100 Spiders of the Curse, the curse on me has broken." (100 Skulltula guy)

 

If anyone else would like to help complete this list, any help is welcomed.

Edited by Airikita
  • Like 2
Link to comment
Share on other sites

I have notes about which functions control the text and whether or not you can speak to actors somewhere, which I should probably post if I ever get around to finding it...

 

Anyway, I'm going to tell you now not to go through documenting every message because there are literally thousands of them in the game. If you have ever used OoT text tool (you can find it somewhere on this site), its output will give you that kind of information.

Link to comment
Share on other sites

Yeah, I'll look into it later... Sang was telling me about it. Anyways, I wasn't going to fill up the list, just mostly a test to see that there's a flag for some text (and not others) that determine if the NPC will give you an item or not. I don't know what effect this would have on other NPCs though, maybe a crash.

Link to comment
Share on other sites

You are putting all this awesome stuff you found on the wiki right? and I mean all of your posts. what happens if ppl tend to wait until later to post it, they cant because they lost it, deleted it, computer dies, etc.

 

It would be a shame to lose that info. Did I check to see if it was on the wiki...no. I think we all know I am far too lazy for that :D

Link to comment
Share on other sites

just mostly a test to see that there's a flag for some text (and not others) that determine if the NPC will give you an item or not.

If you mean in the text itself, there is nothing there that has anything to do with items. I can't remember how it's done but I have found how to give/sell items before when I was going through actors to find all the functions I need to program my own. I have no idea what I did with that information though. I'm still feeling pretty rubbish after getting stranded a few hundred miles away from where I live for the last two days so I might just give up on doing any of my work for the rest of the day and have a look at this instead...

Link to comment
Share on other sites

I have an assignment to do, but when I finish that I will get back to finding out how actors read from the table... I have a hunch it works the same way that regular drops are randomized in a similar output, which is not called like you'd expect.

 

 

You are putting all this awesome stuff you found on the wiki right? and I mean all of your posts. what happens if ppl tend to wait until later to post it, they cant because they lost it, deleted it, computer dies, etc.

 

It would be a shame to lose that info. Did I check to see if it was on the wiki...no. I think we all know I am far too lazy for that :D

 

I would post it on the wiki if I could, I haven't checked if my registration was approved or not... although I would appreciate some help with that as I am very busy; so if anyone wants to document this, they can. I keep my information online wherever I can.

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.