Jump to content

Learning Experience: ICT2 vs ICT


Domi

Recommended Posts

Unfortunately, I_C_T2 cannot be used in each and every case.

 

Use I_C_T2 when action after the state does not have a death variable assigned (ie Enemy()). Using I_C_T in this case will transfer the action to the interjecting fellow, not the initial speaker.

 

Use I_C_T when the state after which a character interjects is followed by PC's replies that have DO actions after them. Using I_C_T2 in this cases will:

- prompt Action after the interjection before PC have a chance to chose a reply

- will not copy over the actions that are different for different replies, it will just copy over the one that occurs after each and every REPLY

 

Please, note that if you use I_C_T for the case with multiple PC replies ending in EXIT/ACTION, you still have to take care about the 'action transfer'. Ie you need to add a line from the non-joinable NPC in the end of the interjection, to prevent the action being transfered to the NPC who have interjected.

 

State that ends in a cutscene: use I_C_T

 

Do not use I_C_T/I_C_T2 with Lilarcor or other temporarily DLG files (including Player1.DLG - unconfirmed).

Link to comment
Use I_C_T when the state after which a character interjects is followed by PC's replies that have DO actions after them. Using I_C_T2 in this cases will:

- prompt Action after the interjection before PC have a chance to chose a reply

- will not copy over the actions that are different for different replies, it will just copy over the one that occurs after ach and every REPLY

Sorry, I don't understand this, could you give an example?
Link to comment

Example:

 

NPC1:

 

SAY ~Balh-blah-blah~

++ ~Option1~ DO ~GiveGoldForce(50)~ EXIT

++ ~Option2~ EXIT

++ ~Option 3~ GOTO Say1

 

If you do I_C_T2 after SAY ~Blah-Blah-Blah~ for NPC2

 

What will happen is the following:

 

NPC1 says his line

<50 gp is substracted>

NPC2 says his line

and only then PC gets his replies, and 50 gp gets substracted again if he chose the answer in which 50 gp were substracted.

 

If you had:

 

DO ~SetGlobal("Action1","GLOBAL",1)~

on 2 replies of the bunch and

DO ~SetGlobal("Action1","GLOBAL",1) SetGlobal("Action1","GLOBAL",2)~

on one reply of the bunch,

 

and you used I_C_T2 you will have Actuin1 Global set, but not Action2 global set.

 

It happenms because I_C_T2 transfers only REPLY TEXTS but NOT DO's to the "EXTERNED" I_C_T'd remark, and bunches up the Action1 before EXTERN, ie it creates an EXTEND_BOTTOM situation like this:

 

++ ~Original reply~

+ ~InParty("Jaheira")~ THEN DO ~(Actions that happen in all replies or unique) ~ EXTERN JAHERAJ ICT'dBLOCK

 

APPEND JAHERAJ

 

~New remark~

Copied over REPLY's WITHOUT DO Actions

 

If you use I_C_T things happen correctly.

 

Anyway, if you want to see what exactly happens just try to I_C_T2 after one of the options and then extract DLG's after compiling.

Link to comment

It is rather that you need to use BOTH I_C_T and I_C_T2 when coding depending on what follows the state, you cannot just use I_C_T2 everywhere - I remeber asking JC about it and he was saying that he does not know where I_C_T2 might not be applicable. Well, that's where.

Link to comment
It is rather that you need to use BOTH I_C_T and I_C_T2 when coding depending on what follows the state, you cannot just use I_C_T2 everywhere - I remeber asking JC about it and he was saying that he does not know where I_C_T2 might not be applicable. Well, that's where.

 

The only reason it wasn't a straight away replacement was that Wes wasn't sure at the time whether it was globally applicable. But really, I think it should be, as the reason I_C_T2 was invented was to fix an I_C_T bug. This is just an I_C_T2 bug, that should be fixed rather than worked around.

Link to comment

Well, I did not know if it was intentional or not. I reported it to Wes together with Cutscene locking bug on both I_C_T/I_C_T2, so that's the best I can do, I think :) And if WW fixes it, I will be the first one to shout happily for not having to go through debug and replacing 200+ I_C_T2 with I_C_T (I saw the problem after I mass-replaced everything to I_C_T2 to avoid the action transfer).

Link to comment

*Sighs*

 

Using I_C_T after an interjection with multiple PC replies (with different actions) results in action transfer to the interjecting NPC. I guess we are back to square 1 - to adding a line from the non-joinable to return action back to him after an I_C_T, since we cannot use I_C_T2 in this case.

Link to comment

This is not a bug. I_C_T2 does exactly what it is supposed to do. I was the one that wanted ICT2 added to WeiDU and the reason was because I needed to I_C_T into states where things like Enemy() or LeaveArea() would be present and this would cause my NPC to just bolt or attack.

Link to comment

Yes, but I_C_T2 can NOT be used after states that have multiple PC replies with DIFFERENT actions following each reply; what it will do after such states is it will assign the action to ALL replies; ie the character will try to JoinParty() even if you had chose "I do not want you in the party" reply, or turn Enemy() even if you negotiated with him.

 

It will only work if there is the same action after each reply, or if there is a singular EXIT.

Link to comment

*Sighs* The point is that you have to use I_C_T in this cases AND add a line from the initial non-joinable NPC to make it work properly. Maybe everyone knows this. I did not and I figured I would post it for those who are as ignorant as I am and learn things the hard way. In short, the recipy for trouble free interjections using I_C_T is:

 

State with a single action on exit: use I_C_T2

 

State with multiple PC replies w/o actions: use I_C_T

 

State with multiple PC replies and different Actions: use I_C_T and add a line from the non-joinable NPC in the end of the interjection

 

State that ends in a cutscene: use I_C_T

 

Do not use I_C_T/I_C_T2 with Lilarcor or other temporarily DLG files (including Player1.DLG - unconfirmed).

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...