Domi Posted August 5, 2006 Share Posted August 5, 2006 I am looking for a way to code the talks to be somehow attached to Rest - before or after - I will take either. PartyRested() was my hope, but IWD2 does not have it on TRIGGER.IDS. By obvious reasons, Dream Scripts aren't there either. Any suggestions will be appreciated! Link to comment
Avenger Posted August 5, 2006 Share Posted August 5, 2006 Tried to add it to the ids file? Link to comment
cirerrek Posted August 6, 2006 Share Posted August 6, 2006 PartyRested() does not work in IWD2. Link to comment
Avenger Posted August 6, 2006 Share Posted August 6, 2006 either put this in baldur.bcs (which exists in iwd2) IF Checkstat(Player1,0,FATIGUE) THEN RESPONSE #100 Displaystring(Player1,2) // ~Beetle~ Changestat(Player1,FATIGUE,1,SET) END Or this in the player who needs action: IF Checkstat(myself,0,FATIGUE) THEN RESPONSE #100 Displaystring(myself,2) // ~Beetle~ Changestat(myself,FATIGUE,1,SET) END Link to comment
Domi Posted August 6, 2006 Author Share Posted August 6, 2006 So will this script enable PartyRested() if I add it to TRIGGER.IDS or does it need to set the Global instead of DisplayString to bring up the conversation? Cierrek, I have been browsing your excellent tables, but I am a bit confused in regards to these: 268 lists RealSetGlobalTimer in BG2, while in IWD1/2 it is the ClearParty(). BG2: 0x4086 AreaType(I:Number*AREATYPE) is GlobalORGlobal(S:Name1*,S:Area1*,S:Name2*,S:Area2*) in IWD2 Does these mean that the overlaping Actions or Triggers cannot be added to IWD2? Link to comment
Avenger Posted August 6, 2006 Share Posted August 6, 2006 So will this script enable PartyRested() if I add it to TRIGGER.IDS or does it need to set the Global instead of DisplayString to bring up the conversation?... Does these mean that the overlaping Actions or Triggers cannot be added to IWD2? 1. yes, you can do anything in place of the displaystring 2. yes, sadly this means, the missing actions/triggers are really missing (in most of the time). Link to comment
Domi Posted August 6, 2006 Author Share Posted August 6, 2006 Thank you, I will try that! Link to comment
cirerrek Posted August 6, 2006 Share Posted August 6, 2006 Cierrek, I have been browsing your excellent tables, Thanks I needed a little practice with VLOOKUP in Excel. The tables were one of the results. but I am a bit confused in regards to these: 268 lists RealSetGlobalTimer in BG2, while in IWD1/2 it is the ClearParty(). BG2: 0x4086 AreaType(I:Number*AREATYPE) is GlobalORGlobal(S:Name1*,S:Area1*,S:Name2*,S:Area2*) in IWD2 Does these mean that the overlaping Actions or Triggers cannot be added to IWD2? Avenger got it. If one game has one trigger/action and the other game has another listed, then you can't add the trigger/action from the first game to the second game. There are a few cases where the actions/triggers are very close, e.g., one game requires a string for that action/trigger and another game requires a string and an integer. In those cases it may be possible to get the engines to interpret the trigger/action the same way by modifying the .ids files. But, you would have to test it to figure out if you were getting the result that you were looking for. Link to comment
Domi Posted August 6, 2006 Author Share Posted August 6, 2006 No, I think I was out of luck, as all my "matches" did not really match. I substituted for what i could substitute for. PartyRested() was the only irreplaceable one, but it ate Avenger's Check without complaints, so I hope it will work! Link to comment
Domi Posted August 10, 2006 Author Share Posted August 10, 2006 IWD2's equivalent of AreaCheck is CurrentAreaIs(Object;I:AreaNum), were the syntaxis will be actually Area's number, ie 1100. I am unsuccessful with the "At Rest/After waking up script though. I added this block to one of the character's scripts: IF InParty(Myself) Global("P#AtRest","GLOBAL",0) CheckStat(Myself,0,FATIGUE) THEN RESPONSE #100 SetGlobal("P#AtRest","GLOBAL",1) StartDialogueNoSet(Myself) ChangeStat(Myself,FATIGUE,1,SET) END It resulted in P#AtRest being set to 1 immediately, not waiting on resting/waking up. Am I doing something wrong with it? Link to comment
Avenger Posted August 10, 2006 Share Posted August 10, 2006 IWD2's equivalent of AreaCheck is CurrentAreaIs(Object;I:AreaNum), were the syntaxis will be actually Area's number, ie 1100. I am unsuccessful with the "At Rest/After waking up script though. I added this block to one of the character's scripts: IF InParty(Myself) Global("P#AtRest","GLOBAL",0) CheckStat(Myself,0,FATIGUE) THEN RESPONSE #100 SetGlobal("P#AtRest","GLOBAL",1) StartDialogueNoSet(Myself) ChangeStat(Myself,FATIGUE,1,SET) END It resulted in P#AtRest being set to 1 immediately, not waiting on resting/waking up. Am I doing something wrong with it? 1. Move changestat before startdialogue. 2. I think, for the first time no one is fatigued at all. So set fatigue to 1 before testing. Link to comment
Domi Posted August 10, 2006 Author Share Posted August 10, 2006 Aha, great! IF Global("P#JustStarted","GLOBAL",0) CheckStat(Myself,0,FATIGUE) THEN RESPONSE #100 SetGlobal("P#JustStarted","GLOBAL",1) ChangeStat(Myself,FATIGUE,1,SET) END IF InParty(Myself) Global("P#AtRest","GLOBAL",0) Global("P#JustStarted","GLOBAL",1) CheckStat(Myself,0,FATIGUE) THEN RESPONSE #100 SetGlobal("P#AtRest","GLOBAL",1) ChangeStat(Myself,FATIGUE,1,SET) StartDialogueNoSet(Myself) END This combination produced the desired result Thank you very much! Take that, IWD2! No PartyRested(), ha! Link to comment
Avenger Posted August 10, 2006 Share Posted August 10, 2006 great Btw, if you revealed anything interesting about IWD scripting, please tell me. Including: 1. actions/triggers that exist but not listed in ids. 2. actions/triggers that work differently in bg2. 3. any difference compared to IESDP. Link to comment
Domi Posted August 10, 2006 Author Share Posted August 10, 2006 One thing that I think I will have as "new" addition is the list of main areas with the Area Numbers. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.