SimDing0 Posted January 10, 2005 Share Posted January 10, 2005 AR2400.ARE has entries for udgith03-5. However, they all just create udgith02.cre. The problem comes when the area script checks that you've killed all the Githyanki, because it's looking for the 3-5 variants instead of several 2s. I'm not sure what the best way to fix this is. Link to comment
SimDing0 Posted January 10, 2005 Author Share Posted January 10, 2005 Or can you refer to a creature using its name defined in the ARE file? Because they've done it again with the slave creatures. Link to comment
SimDing0 Posted January 10, 2005 Author Share Posted January 10, 2005 IF Global("famquas","GLOBAL",1) THEN RESPONSE #100 SetGlobal("famquas","GLOBAL",0) MoveGlobalObject("famqua25",Player1) END The ToB quasit's death variable is still "famquas". I wonder if this block will work. Link to comment
SimDing0 Posted January 10, 2005 Author Share Posted January 10, 2005 These too: IF !InParty(Myself) Global("ViconiaFree","AR1000",1) CombatCounter(0) NumDead("vicg",0) !Dead("victown1") !Dead("victown4") THEN RESPONSE #100 StartDialogueNoSet(Player1) END IF !InParty(Myself) Global("ViconiaFree","AR1000",1) OR(3) NumDeadGT("vicg",0) Dead("victown1") Dead("victown4") THEN RESPONSE #100 SetGlobal("ViconiaFight","AR1000",1) SetGlobal("ViconiaFree","AR1000",2) ActionOverride("Viconia",ForceSpell(Myself,CLERIC_FLAME_BLADE)) END IF !InParty(Myself) Global("ViconiaFree","AR1000",1) CombatCounter(0) OR(3) NumDeadGT("vicg",0) Dead("victown1") Dead("victown4") THEN RESPONSE #100 SetGlobal("ViconiaFree","AR1000",2) SetGlobal("SPRITE_IS_DEADVicg","GLOBAL",3) StartDialogueNoSet(Player1) END Link to comment
devSin Posted January 23, 2005 Share Posted January 23, 2005 AR2400.ARE has entries for udgith03-5. However, they all just create udgith02.cre. The problem comes when the area script checks that you've killed all the Githyanki, because it's looking for the 3-5 variants instead of several 2s. I'm not sure what the best way to fix this is. When the visibility flag in the actor header is set to 0x09, you can use the actor name (in the ARE file) in place of the creature's script name. BioWare used this laziness to use a single CRE for multiple actors, but still have a way to distinguish them (so, they'll use UDVITH02.CRE for each actor, but they can refer to them independently). I used this to fix Ketlaar's bodyguards (rather than adding a funky script to the CRE, we can change the actor name, and DestroySelf() ketlbg0[12] from the area script). All of the "famblah25" variables appear to be wrong (the ITMs only ever set "famblah"), but I don't know that this is something to fix (I don't know it causes any problems). I changed it locally just to get NI to shut up. Viconia's OR() triggers are off, the NumDead()s need to be checked, too, IIRC. Additionally, there is dialogue for the third guard (VICG3), this should be changed so he's not using the CIVAMNG dialogue ("Be proud, citizen!"). Locally, I made him a normal guard (he has some OK dialogue for being one of the dumb city guards), but this is beyond the realm of "fixing." Link to comment
CamDawg Posted February 25, 2005 Share Posted February 25, 2005 So, sorry--is there a fix here we need to implement, and if so, is it Sim's? Link to comment
devSin Posted February 25, 2005 Share Posted February 25, 2005 The Viconia script needs to be fixed, and the familiar fixes are probably optional (I don't know if they have any effect at all in-game). The script names for the UDGITH creatures do not need to be updated (nor the slaves in that area, nor the waitress in the Saradush inn, and a couple other places where BioWare used the magic number). They work as intended. Link to comment
CamDawg Posted March 28, 2005 Share Posted March 28, 2005 OK, I finally wrapped my head around this and understand. victown1 and victown4 need the 9 flag. This has been added to the ar1000.are patch: // changes guard references in ar1000 to not be the rubble-guarder type, enables one ambient COPY_EXISTING ~AR1000.ARE~ ~override~ READ_LONG 0x54 "actor_off" READ_SHORT 0x58 "actor_num" READ_SHORT 0x82 "amb_num" READ_LONG 0x84 "amb_off" WHILE ("%actor_num%" > 0) BEGIN SET "actor_num" = ("%actor_num%" - 1) READ_ASCII ("%actor_off%" + 0x80 + ("%actor_num%" * 0x110)) "cre_file" PATCH_IF ("%cre_file%" STRING_COMPARE_CASE "AMNG1" = 0) BEGIN WRITE_ASCII ("%actor_off%" + 0x80 + ("%actor_num%" * 0x110)) ~AMNG2~ #8 END ELSE PATCH_IF (("%cre_file%" STRING_COMPARE_CASE "victown1" = 0) OR ("%cre_file%" STRING_COMPARE_CASE "victown4" = 0)) BEGIN WRITE_LONG ("%actor_off%" + 0x28 + ("%actor_num%" * 0x110)) 9 END END WHILE ("%amb_num%" > 0) BEGIN SET "amb_num" = ("%amb_num%" - 1) READ_SHORT ("%amb_off%" + 0x20 + ("%amb_num%" * 0xd4)) "x_coord" PATCH_IF ("%x_coord%" = 907) BEGIN WRITE_LONG ("%amb_off%" + 0x8C + ("%amb_num%" * 0xd4)) 0x001fffc0 END END BUT_ONLY_IF_IT_CHANGES Included in alpha 3. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.