Jump to content

Zoerkus

Members
  • Posts

    4
  • Joined

  • Last visited

About Zoerkus

Zoerkus's Achievements

  1. I'm aware of how to check if CHARNAME has already spoken to a NPC: IF ~NumTimesTalkedTo(0)~ THEN BEGIN 0 SAY ~Behold <CHARNAME>. Before you is the great Mendak, champion of the people of Cormyr, slayer of the dragon of the Great Mountain.~ ++ ~May I ask what brings you to Candlekeep?~ GOTO 2 +~Global("IZDagger","GLOBAL",2)~+ ~I got that dagger identified. Looks like its cursed.~ GOTO 4 ++ ~My apologies, I didn't mean to disturb you.~ EXIT END Now, I'm also aware of how to make the check for if CHARNAME has indeed spoken to NPC: IF ~NumTimesTalkedToGT(0)~ THEN BEGIN 1 SAY ~<CHARNAME> and his merry band of adventurers, hello again!~ ++ ~May I ask what brings you to Candlekeep?~ GOTO 2 +~Global("IZDagger","GLOBAL",2)~+ ~I got that dagger identified. Looks like its cursed.~ GOTO 4 ++ ~My apologies, I didn't mean to disturb you.~ EXIT END This means I've to have two identical conversation blocks, once for the 1st encounter, and once for all following. The only difference is the SAY statement for the 1st greeting vs the subsequent. I assume this is error prone. I've had a look at a couple of files decompiled via NearInfinity but there's very heavy state usage and I'm not quite getting it. Is there a 'standard' approach for NPC interaction with something like first greeting, set a var, followup activities that avoids the re-copying of conversation logic? Thanks again!
  2. I wanted to say 'Thank you!' for the fast, and detailed, responses. It's actually pretty amazing as I'd guess alot of things I did ask are covered in tutorials somewhere, but I find a lot of dead links (given the age of things) so I appreciate the help. I still find the games, the engine, and the setting beautiful and while I don't think I'll ever produce anything of significant value, working in the world is enjoyable. Thanks all for helping out! I do have a followup question but will create a new thread in case someone's trying to achieve similar things.
  3. Hi Jarno, now that was quick! Ok so if I understand you right, there's nothing 'wrong' with using NearInfinity to modify the .cre and use that output instead of patching? For sake of learning, I could also do this: COPY_EXISTING ~arlin.cre~ ~override/IZMendak.cre~ SAY NAME1 @10 SAY NAME2 @10 SAY INITIAL_MEETING #4699 SAY SELECT_COMMON1 #4699 WRITE_ASCII SCRIPT_DEFAULT ~IZMendak~ WRITE_ASCII DIALOG ~IZmendak~ PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN REMOVE_KNOWN_SPELL ~SPWI112~ ~SPWI205~ ~SPWI212~ REMOVE_MEMORIZED_SPELL ~SPWI112~ ~SPWI205~ ~SPWI212~ END BUT_ONLY_IF_IT_CHANGES It works fine, and it's a better way to undertand things under the hood, but the end result is the same as using NearInfinity to work off a copy of arlin.cre, modify, and just copy that to override? Kiiti!
  4. Hi all, I'm very, very new to Weidu modding but not new to coding. I've a newbie question I'd like input on. If setting up a new NPC (this one is a dummy NPC, I'm about the way of doing things) I'd like to modify (say, remove spells) I can either a) make a copy of an .cre file, edit that in NearInfinity, and copy the result to override b) use Weidu and script things: in setup-IZquest.tp2 COPY ~IZquest/CRE/IZMendak.cre~ ~override/IZMendak.cre~ SAY NAME1 @10 SAY NAME2 @10 SAY INITIAL_MEETING #4699 SAY SELECT_COMMON1 #4699 REMOVE_KNOWN_SPELL ~SPWI112~ ~SPWI205~ ~SPWI212~ REMOVE_MEMORIZED_SPELL ~SPWI112~ ~SPWI205~ ~SPWI212~ WRITE_ASCII SCRIPT_DEFAULT ~IZMendak~ WRITE_ASCII DIALOG ~IZmendak~ What is the most compatible/preferred way? 'raw' editing of the .cre and simply providing that, or scripting the modifications I'd make in NearInfinity by hand? Oh, while I'm at it, should I wrap the above in a patch statement and end it with BUT_ONLY_IF_IT_CHANGES? I've not figured that part out either. Thanks all!
×
×
  • Create New...