MOD V1.0#mThe AI for Games module features a battle between two armies, whose aim it is to score the most points. The two armies are of exactly the same constitution. Points are scored by claiming the four altars. Claiming an altar means that one of the team must be located in the central altar space, without an enemy being also on that space. As long as an altar is claimed, every heartbeat 1 point is scored for the team. Points scored are doubled when the central elevation is also claimed. Killed team members are automatically resurrected at their starting spot; however, after a resurrection a team member is paralyzed for 10 seconds before he or she can move again. The battle can be started by using the brazier in front of the PC at the start of the module. The brazier can also make the PC invulnerable and invisible, so that he can walk around without disturbing the fight. This module has been developed to experiment with tactical AI. Pieter Spronck, Tilburg University and Open University, The Netherlands.altar_triggeraltar_triggerarea_heartbeatarea_heartbeatbattlefield001battlefield001battlefield001blueleatherblueplatebluerobe brazier brazier_blue_1 brazier_blue_1 brazier_blue_10 brazier_blue_10brazier_blue_11brazier_blue_11brazier_blue_12brazier_blue_12brazier_blue_13brazier_blue_13brazier_blue_14brazier_blue_14brazier_blue_15brazier_blue_15brazier_blue_16brazier_blue_16brazier_blue_17brazier_blue_17brazier_blue_18brazier_blue_18brazier_blue_19brazier_blue_19 brazier_blue_2!brazier_blue_2"brazier_blue_20#brazier_blue_20$brazier_blue_21%brazier_blue_21&brazier_blue_22'brazier_blue_22(brazier_blue_23)brazier_blue_23*brazier_blue_24+brazier_blue_24,brazier_blue_25-brazier_blue_25.brazier_blue_26/brazier_blue_260brazier_blue_271brazier_blue_272brazier_blue_33brazier_blue_34brazier_blue_45brazier_blue_46brazier_blue_57brazier_blue_58brazier_blue_69brazier_blue_6:brazier_blue_7;brazier_blue_7<brazier_blue_8=brazier_blue_8>brazier_blue_9?brazier_blue_9@brazier_grantsAbrazier_grantsBbrazier_lengthCbrazier_lengthDbrazier_len_10Ebrazier_len_10Fbrazier_len_15Gbrazier_len_15Hbrazier_len_30Ibrazier_len_30Jbrazier_len_5Kbrazier_len_5Lbrazier_len_60Mbrazier_len_60Nbrazier_len_infObrazier_len_infPbrazier_offQbrazier_offRbrazier_onSbrazier_onTbrazier_red_1Ubrazier_red_1Vbrazier_red_10Wbrazier_red_10Xbrazier_red_11Ybrazier_red_11Zbrazier_red_12[brazier_red_12\brazier_red_13]brazier_red_13^brazier_red_14_brazier_red_14`brazier_red_15abrazier_red_15bbrazier_red_16cbrazier_red_16dbrazier_red_17ebrazier_red_17fbrazier_red_18gbrazier_red_18hbrazier_red_19ibrazier_red_19jbrazier_red_2kbrazier_red_2lbrazier_red_20mbrazier_red_20nbrazier_red_21obrazier_red_21pbrazier_red_22qbrazier_red_22rbrazier_red_23sbrazier_red_23tbrazier_red_24ubrazier_red_24vbrazier_red_25wbrazier_red_25xbrazier_red_26ybrazier_red_26zbrazier_red_27{brazier_red_27|brazier_red_3}brazier_red_3~brazier_red_4brazier_red_4brazier_red_5brazier_red_5brazier_red_6brazier_red_6brazier_red_7brazier_red_7brazier_red_8brazier_red_8brazier_red_9brazier_red_9brazier_resetbrazier_resetbrazier_scorebrazier_scorebrazier_startbrazier_startbrazier_stopbrazier_stopbrazier_teams_0brazier_teams_0brazier_teams_1brazier_teams_1brazier_teams_2brazier_teams_2brazier_teams_99brazier_teams_99brazier_team_0brazier_team_0brazier_team_1brazier_team_1brazier_team_199brazier_team_199brazier_team_2brazier_team_2brazier_team_299brazier_team_299brazier_usedbrazier_usedcreaturepalcusdoorpalcusencounterpalcusgames_and_aiitempalcuslocationtriggermodulenpcblue1npcblue2npcblue3npcblue4npcblue5npcblue6npcblue7npcred1npcred2npcred3npcred4npcred5npcred6npcred7our_c2_default2our_c2_default2our_c2_default3our_c2_default3our_c2_default5our_c2_default5our_c2_default6our_c2_default6our_c2_default8our_c2_default8our_c2_default9our_c2_default9our_c2_defaultbour_c2_defaultbour_c2_defaultdour_c2_defaultdour_constantsplaceablepalcusredleatherredplateredrobeReputeset_team_idsorcerorrobebluesorcerorroberedsoundpalcusstop_competitionstorepalcust1t10t11t12t13t14t15t16t17t18t19t2t20t21t22t23t24t25t26t27t3t4t5t6t7t8t9triggerpalcustxwaypointpalcuswbwmxl010;+~08GR Qtb_ڸ d(*0sԤh<i_i<i_iȩiiȬi1iTiw1iTjxiii'iJim'iJimiֺnl$޽jHhj$hFhhh|L@tg>O>2O>P>MO>P*@jNNX^LWg!hBhch=h^hhhh)hJhk$iFhghhhh2hS ht-hNmtkig!gAgag1g<) AJ/#MfTJT1U@DU1uU@U1U@&V1WVCVOVYBWWPXYYYZZ[^\8\bt/wy @">` NkAIH_-\CO]IwōD CJ˫2 h6 Ki e W# cf-E 07gx,p60)iyf"8* ,_:0j# $;T n k@8!TQU!F!-"8?e?"e L"tz"xe:#![#$&$o*8%d$\%')& Z0&b&h,N'&JR'˙2(@ 2.0) break; string sColor = GetLocalString( oCreature, "COLOR" ); if (sColor == COLOR_BLUE) ++iBlue; else if (sColor == COLOR_RED) ++iRed; ++i; } string sColor = ""; if (iRed > 0 && iBlue <= 0) sColor = COLOR_RED; else if (iRed <= 0 && iBlue > 0) sColor = COLOR_BLUE; SetLocalString( oWP, "OWNER", sColor ); SetLocalString( OBJECT_SELF, "OWNER", sColor ); object oSparkle = GetObjectByTag( "SPARKLE_" + GetTag( OBJECT_SELF ) ); string sResRef = ""; if (GetIsObjectValid( oSparkle )) sResRef = GetResRef( oSparkle ); if (sResRef == RESREF_RED && sColor != COLOR_RED) { if (GetIsObjectValid( oSparkle )) { DestroyObject( oSparkle ); sResRef = ""; } } if (sResRef == RESREF_BLUE && sColor != COLOR_BLUE) { if (GetIsObjectValid( oSparkle )) { DestroyObject( oSparkle ); sResRef = ""; } } if (sResRef == "") { if (sColor == COLOR_RED) CreateObject( OBJECT_TYPE_PLACEABLE, RESREF_RED, GetLocation( oWP ), FALSE, "SPARKLE_" + GetTag( OBJECT_SELF ) ); else if (sColor == COLOR_BLUE) CreateObject( OBJECT_TYPE_PLACEABLE, RESREF_BLUE, GetLocation( oWP ), FALSE, "SPARKLE_" + GetTag( OBJECT_SELF ) ); } } NCS V1.0B BRAZIER*" NW_L_AMION3"COMPETITION_LENGTH3 TIMER3  TIMER7$ A RED "BLUE=NPC_#_#\#*"WP_#_#\#*npc#\#A $$ ALTAR_RED_1= ALTAR_RED_2( ALTAR_BLUE_1 ALTAR_BLUE_2RED!:#RED \# #BLUE#:#BLUE\#,  <  KRED "BLUE=NPC_#_#\#*o,  $$gBRAZIER*"?, NW_L_AMION7UX ]J !WV:The competition is over. The final scores are as follows: REDD#:#RED+\# #BLUE#:#BLUE\#,  ]*pj 6, &^ BRAZIER*".TEAM_#5 #.:  ALTAR_RED_1  ALTAR_RED_2  ALTAR_BLUE_1~  ALTAR_BLUE_2F  *",SSCORE_#3 w #ADOUBLER # *"SCORE_#3 SCORE_#7 *"*OWNER5RED #BLUE # *: #include "our_constants" #include "stop_competition" void UpdateScore( string sAltar ) { string sClaimer = ClaimerOf( sAltar ); if (sClaimer == "") return; int iPoints = 1; string sDoubler = ClaimerOf( DOUBLER ); if (sClaimer == sDoubler) iPoints = 2; object oAltar = GetObjectByTag( sAltar ); if (!GetIsObjectValid( oAltar )) return; int iScore = GetLocalInt( oAltar, "SCORE_" + sClaimer ); iScore = iScore + iPoints; SetLocalInt( oAltar, "SCORE_" + sClaimer, iScore ); } void main() { object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return; if (!GetLocalInt( oBrazier, "NW_L_AMION" )) return; int iCompetitionLength = GetLocalInt( oBrazier, "COMPETITION_LENGTH" ); if (iCompetitionLength > 0) { int iTimer = GetLocalInt( oBrazier, "TIMER" ); iTimer += 6; if (iTimer >= iCompetitionLength) { StopCompetition(); return; } SetLocalInt( oBrazier, "TIMER", iTimer ); } effect eCreate = EffectVisualEffect( VFX_FNF_SUMMON_UNDEAD ); effect eParalyze = EffectParalyze(); int i; int j; for (i = 1; i <= 7; ++i) { for (j = 0; j < 2; ++j) { string sColor = COLOR_RED; if (j == 1) sColor = COLOR_BLUE; string sLowerCaseColor = GetStringLowerCase( sColor ); object oNPC = GetObjectByTag( "NPC_" + sColor + "_" + IntToString( i ) ); if (!GetIsObjectValid( oNPC )) { object oWP = GetObjectByTag( "WP_" + sColor + "_" + IntToString( i ) ); if (GetIsObjectValid( oWP )) { location oLocation = GetLocation( oWP ); ApplyEffectAtLocation( DURATION_TYPE_TEMPORARY, eCreate, oLocation ); object oNew = CreateObject( OBJECT_TYPE_CREATURE, "npc" + sLowerCaseColor + IntToString( i ), oLocation ); ApplyEffectToObject( DURATION_TYPE_TEMPORARY, eParalyze, oNew, 10.0 ); } } } } UpdateScore( ALTAR_RED_1 ); UpdateScore( ALTAR_RED_2 ); UpdateScore( ALTAR_BLUE_1 ); UpdateScore( ALTAR_BLUE_2 ); string sScore = GetTeamName( COLOR_RED ) + ":" + IntToString( GetScore( COLOR_RED ) ) + " " + GetTeamName( COLOR_BLUE ) + ":" + IntToString( GetScore( COLOR_BLUE ) ); AssignCommand( oBrazier, SpeakString( sScore, TALKVOLUME_SHOUT ) ); } ARE V3.28jT4WYUXq*     H p     8 `     ( P x     @ h     0 X       H p     8 `     ( P x     @ h     0 X      H p     8 `     ( P x     @ h     0 X       H p     8 `     ( P x     @ h     0 X       H p     8 `     ( P x     @ h     0 X     . =   <<<  <B6 !" # $A %B &C 'R (S)*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-. /0123*+,-./0123*f+,-. /0123*+,-./0123*A+,-. /0123*+,-./0123*f+,-./0123*@+,-./0123*e+,-./0123*@+,-. /0123*+,-./0123*+,-./0123*+,-./0123*f+,-./0123*@+,-. /0123*@+,-./0123*@+,-./0123*f+,-. /0123*A+,-./0123*e+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-. /0123*+,-./0123*+,-. /0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*`+,-. /0123*f+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-./0123*+,-. /0123*a+,-./0123*+,-./0123*+,-./0123*a+,-. /0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*`+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-./0123*\+,-. /0123*]+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*Z+,-./0123*[+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*`+,-./0123*@+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*@+,-./0123*a+,-./0123*+,-./0123*+,-./0123*a+,-./0123*e+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*f+,-./0123*`+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-./0123*+,-. /0123*+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-. /0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*e+,-./0123*f+,-./0123*f+,-. /0123*e+,-./0123*A+,-./0123*@+,-./0123*+,-./0123*+,-. /0123*+,-./0123*@+,-./0123*A+,-. /0123*e+,-./0123*f+,-./0123*f+,-. /0123*@+,-./0123*@+,-./0123*A+,-./0123*+,-. /0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123*+,-./0123IDCreator_IDVersionTagNameResRefCommentsExpansion_ListFlagsModSpotCheckModListenCheckMoonAmbientColorMoonDiffuseColorMoonFogAmountMoonFogColorMoonShadowsSunAmbientColorSunDiffuseColorSunFogAmountSunFogColorSunShadowsIsNightLightingSchemeShadowOpacityFogClipDistSkyBoxDayNightCycleChanceRainChanceSnowChanceLightningWindPowerLoadScreenIDPlayerVsPlayerNoRestWidthHeightOnEnterOnExitOnHeartbeatOnUserDefinedTilesetTile_ListTile_IDTile_OrientationTile_HeightTile_MainLight1Tile_MainLight2Tile_SrcLight1Tile_SrcLight2Tile_AnimLoop1Tile_AnimLoop2Tile_AnimLoop3 Battlefield Battlefieldbattlefield001area_heartbeattdc01  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GIC V3.28PX T $0`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG I J K L M N O P Q R S T U V W      0    U  +   l  B    ! Y$ & /) + . p0 2 F5 7 : < > ]A C 3F H  K tM O JR T  W Y [ a^ ` 7c e  h xj l No q $t v x e{ } ;   |  R   ǎ ю ێ       ! + 5 ? ICreature ListDoor ListEncounter ListListSoundListStoreListTriggerListCommentWaypointListPlaceable ListgThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.gThis is the default waypoint you may place to set a patrol path for a creature or NPC. 1. Create the creature and either use its current Tag or fill in a new one. 2. Place or make sure the WalkWayPoints() is within the body of the On Spawn script for the creature. 3. Place a series of waypoints along the route you wish the creature to walk. 4. Select all of the newly created waypoints and right click. Choose the Create Set option. 5. The waypoint set will have a set name of "WP_" + NPC Tag. Thus if an NPC with the Tag "Guard" will have a waypoint set called "WP_Guard". Note that Tags are case sensitive.PortalPortalPortalPortalPortalPortalPortalPortalPortalPortalPortalPortalPortalPortalBrazier H;  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOGIT V3.28| $ta4zV|#p d D" ,8DP\ht"(4@LXdp|"Xdp| $0<HT`lx"0<HT`lx ,8DP\" ,8DP\ht   ( 4 @ L X    0 h    H    ( `    @ x    X8pP0hH(`@x X8 7 t7 P7 ,7 7 7 7 7 x7 T7 07 7 7 !7 "7EE   _       @@ C G ! "#$ %K &L 'M (N )\ *] +^,`qA-B./012 345?38̀4@l5?3h4@Ϳ5?3 FC45?345?3᝾45?304` 5?3nG>45?3C ?4@5?3PK?45?3p}?4@Ϳ5?3H/?45?3C?45?3?4?5?3p?4[5?3O?4C5?3?45?3 >4pG5?3mG>45?345?3C45?30 "42&5?3mG415?3h4 5?34O5? _ n ~@@   ! "#$ % & ' ( ) * +,ĩB- ,B./0123G45?345?3wf4ؿ5?3A45?34`5?34@5?34@G 5?3%>4@G 5?3>4@5?3?45?32F?4`5?3k?4Կ5?3@?45?3?4@5?3@G?4?]5?3}?45?3jO?45?3?4~5?3>45?3~>45?345?34p5?3H 4@ݽ5?3A4G5?3wf4w5?34'/5?34a5?3G4@5?   @@   ! "#$ %  &  '  (  ) * +,ĩB-mtB./0123@4@5?3}4 I5?3a4?ݿ5?3_845?3G 4`5?34`5?3~4P 5?3>4P 5?3>4`5?3S!?45?3T?45?3?4ȿ5?3G?4 5?3@G?4}5?3?4_85?3wf?45?33?4G5?3?45?3>4@]5?3`8>45?345?3o45?3>ݾ4^5?3%4_85?3kO4量5?3Kt45?3@43F5?3@G4`5?  . >@@ b f ! "#$ %j &k 'l (m ){ *| +},wrA-5tB./0123@4x5?3H㎿4 勵5?3X4 ȿ5?3a45?30S!45?3ʾ4`5?34Pn 5?3_8>4@n 5?3P?4`5?3ݾ5?3_8?45?3`?4>ݽ5?3@>4|5?3>=4<5?345?3@4|5?3P45?3<45?3Юo4>ݾ5?3P]4%5? ~  @@   ! "#$ % & ' ( ) * +,&GB-]bB./012 3ʿ4;޿5GI@3ȿ4y5GI@3`45GI@3 Q4&5GI@34m15GI@3@l4 @5GI@3'44@W5L7I@3M?4|N5L7I@3d?4A5L7I@3@?4 35L7I@3R?4O!5L7I@3 ?4p 5L7I@3'?45L7I@3`I?4@5L7I@3?45L7I@3@?4R5L7I@3 ?4 5L7I@3G?45L7I@3@i?4N5L7I@3f0?4@½5L7I@3 >4p5L7I@345GI@3胾4`75GI@3 4tν5GI@3@c45GI@3ϐ45GI@342T5GI@3`45GI@3ȿ4@=5GI@67     89 :;,ZA- C.2/ 07    / ; 8G9 :S;, A- C. 7/ 07 _ c r ~ 89 :;,B- C./ 07     89 :;,GB- C./ 607     89 :;, pB- C./ 07 ( , ; G 8S9 :_;,5B- C.2/ 607 k o ~  89 :;,B- C.1/ 07     89 :;,B-dA. 7/0?7     89 :*;,B-]A.@/0?7 6 : I V 8b9 :n;,oB-]A.2/0?7 z ~   89 :;,OHB-A.4/0?7     89 :;,BB-]A.H/0?7    " 8.9 ::;,A-A.B5/0?7 F J Y f 8r9 :~;,A-]A. 7/0?7     89 :;,pA-oB.?/?0"57     89 :;,ЩB-{pB.?/0"57  " 1 C 8O9 :[;,ЩB-B.?/0"57 g k z  89 :;,WA-TC.3/ 07     89 :;,GB-C.2/ 607      8*9 :6;,B-,C./ 07 B F U h 8t9 :;,B-@A. /0?7     89 :;,zGB-6A./0?7     89 :;,)A--:A.`7/0?7   $ 3 I 8U9 :a;,GB-gGB./0?7 m q   89 :;,GB-B.3/ 607     89 : ;,B-AB./lh9?007   & 9 8E 9 :Q ;, !HB-? B.`7/&ɼ0A7 ] a p  8 9 : ;,oB-AB.@/5057     8 9 : ;,oB-RB./J+0=?7     8% 9 :1 ;,GB-RB./0?7 = A P d 8p 9 :| ;,B-B./=?0N+?7     8 9 : ;,hӟA-B.5/ 07     8 9 : ;,PA-{B./5057   / B 8N 9 :Z ;,OA-,B.ܯ/M0?7 f j y  8 9 : ;, A--B.@/0?7     8 9 : ;,bB-B.2/ 07     8, 9 :8 ;,\ۋB-B./5?057 D H W j 8v 9 : ;,pB-B.@/I?0?7     8 9 : ;,CB-B./0?7     8 9 : ;,CB-\GB./0?7 # ' 6 J 8V 9 :b ;,ɋB- GB.@/$T?09?7 n r   8 9 : ;,JԋB-B./.I?07     8 9 : ;,ΟB-B. / 07    + 879 :C;,P7A-[GB./0?7 O S b v 89 :;,A-=HB.9/M0?7     89 :;,A-B.9/=00+7      89 :$;,!ΟA-B.5/ 607 0 4 C U 8a9 :m;,H=HB-׺B.@@/0?7 y }   89 :;,(HB-B.@@/ 607     89 :;,_rA-B.?/?0"57     + 879 :C;,GB-!B.G@/?0"57 O S b u 89 :;,A-oB./?0"57     89 :;,B-oB./0"57     89 : ;,B-B. 7/0"57 , 0 ? Q 8]9 :i;,ћA-B. 7/?0"57 u y   89 :;,%A-B.9/0i!37     89 :;,ZB-B.ܯ/?0i!37      0 8<9 :H;,yB->pB.9/?0i!37 T X g { 89 :;,A-6oB./0i!3<  = 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]GB^#A_X4`}G  = 8 > ?@ABCDE !"#$ F7GHIJKL M  N! O" %# P$ Q% R& S' T( &) U* V+ ',WXYZ [- \.]B^PmA_`I / =@ 8L X> ?c@ABCDE !"#$ dF7GHIJKL Mh Ni Oj %k Pl Qm Rn So Tp &q Ur Vs 'tWXYZ [u \v]oB^$A_H`}G@ w = 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]؟A^NmA_4`I  = 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]A^NmA_4`I@  = 8$ 0> ?;@ABCDE !"#$ <F7GHIJKL M@ NA OB %C PD QE RF SG TH &I UJ VK 'LWXYZ [M \N]MB^QmA_2`}G@ O =` 8l x> ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]B^QmA_`4`I@  = 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]B^ C_г`  = 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U  V! '"WXYZ [# \$]7B^ C_3` % =5 8A M> ?X@ABCDE !"#$ YF7GHIJKL M] N^ O_ %` Pa Qb Rc Sd Te &f Ug Vh 'iWXYZ [j \k]oB^ C_3` l =| 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]XGB^ C_2`  = 8 > ?@ABCDE !"#$ F7GHIJKL M N O % P Q R S T & U V 'WXYZ [ \]B^ C_`  =  8 "> ?-@ABCDE !"#$ .F7GHIJKL M2 N3 O4 %5 P6 Q7 R8 S9 T: &; U< V= '>WXYZ [? \@]A^ C_ 7` A =Q 8] i> ?t@ABCDE !"#$ uF7GHIJKL My Nz O{ %| P} Q~ R S T & U V 'WXYZ [ \];A^ C_ 7`  = 8 *> ?6@ABCDE !"#$ 7F79GHIJKL M; N< O= %> P? Q@ RA SB TC &D UE VF 'GWXYZ [H \I]GB^WFA_`&7`AreaPropertiesAmbientSndDayAmbientSndNightAmbientSndDayVolAmbientSndNitVolEnvAudioMusicBattleMusicDayMusicNightMusicDelayCreature ListDoor ListEncounter ListListSoundListStoreListTriggerListTagTemplateResRefLocalizedNameAutoRemoveKeyFactionCursorHighlightHeightKeyNameLinkedToLinkedToFlagsLoadScreenIDPortraitIdTypeTrapDetectableTrapDetectDCTrapDisarmableDisarmDCTrapFlagTrapOneShotTrapTypeOnDisarmOnTrapTriggeredOnClickScriptHeartbeatScriptOnEnterScriptOnExitScriptUserDefineXPositionYPositionZPositionXOrientationYOrientationZOrientationGeometryPointXPointYPointZWaypointListAppearanceDescriptionHasMapNoteMapNoteMapNoteEnabledPlaceable ListLocNameCloseLockDCConversationInterruptablePlotKeyRequiredLockableLockedOpenLockDCAnimationStateHPCurrentHPHardnessFortRefWillOnClosedOnDamagedOnDeathOnHeartbeatOnLockOnMeleeAttackedOnOpenOnSpellCastAtOnUnlockOnUserDefinedHasInventoryBodyBagStaticUseableOnInvDisturbedOnUsedXYZBearing ALTAR_RED_1locationtrigger Location Trigger altar_trigger ALTAR_RED_2locationtrigger Location Trigger altar_trigger ALTAR_BLUE_1locationtrigger Location Trigger altar_trigger ALTAR_BLUE_2locationtrigger Location Trigger altar_triggerDOUBLERlocationtrigger Location Trigger altar_triggernw_waypoint001WP_RED_19nw_waypoint001WP_RED_29nw_waypoint001WP_RED_39nw_waypoint001WP_RED_49nw_waypoint001WP_RED_59nw_waypoint001WP_RED_69nw_waypoint001WP_RED_79nw_waypoint001 WP_BLUE_19nw_waypoint001 WP_BLUE_29nw_waypoint001 WP_BLUE_39nw_waypoint001 WP_BLUE_49nw_waypoint001 WP_BLUE_59nw_waypoint001 WP_BLUE_69nw_waypoint001 WP_BLUE_79nw_waypoint001WP_ALTAR_BLUE_29nw_waypoint001WP_ALTAR_BLUE_19nw_waypoint001WP_ALTAR_RED_29nw_waypoint001WP_ENTRY_RED_19nw_waypoint001WP_ENTRY_RED_29nw_waypoint001WP_ENTRY_RED_39nw_waypoint001WP_ENTRY_BLUE_19nw_waypoint001WP_ENTRY_BLUE_29nw_waypoint001WP_ENTRY_BLUE_39nw_waypoint001WP_CROSSROADS_BLUE9nw_waypoint001WP_CROSSROADS_RED9Waypointnw_waypoint001WP_CENTRE_RED_19nw_waypoint001WP_CENTRE_RED_29nw_waypoint001WP_CENTRE_RED_39nw_waypoint001WP_CENTRE_BLUE_19nw_waypoint001WP_CENTRE_BLUE_29nw_waypoint001WP_CENTRE_BLUE_39nw_waypoint001WP_ALTAR_RED_1A9nw_waypoint001WP_ALTAR_RED_1B9nw_waypoint001WP_ALTAR_RED_1C9nw_waypoint001WP_ALTAR_RED_1D9nw_waypoint001WP_ALTAR_RED_2A9nw_waypoint001WP_ALTAR_RED_2B9nw_waypoint001WP_ALTAR_RED_2C9nw_waypoint001WP_ALTAR_RED_2D9nw_waypoint001WP_ALTAR_BLUE_1A9nw_waypoint001WP_ALTAR_BLUE_1B9nw_waypoint001WP_ALTAR_BLUE_1C9nw_waypoint001WP_ALTAR_BLUE_1D9nw_waypoint001WP_ALTAR_BLUE_2A9nw_waypoint001WP_ALTAR_BLUE_2B9nw_waypoint001WP_ALTAR_BLUE_2C9nw_waypoint001WP_ALTAR_BLUE_2D9nw_waypoint001WP_CENTRE_BLUE9nw_waypoint001 WP_CENTRE_RED9nw_waypoint001WP_ALTAR_RED_19nw_waypoint001 WP_DOUBLER9nw_waypoint001WP_FRONT_BLUE_29nw_waypoint001WP_FRONT_BLUE_19nw_waypoint001WP_FRONT_RED_29nw_waypoint001WP_FRONT_RED_19nw_waypoint001WP_ALTAR_RED_1E9nw_waypoint001WP_ALTAR_RED_2E9nw_waypoint001WP_ALTAR_BLUE_1E9nw_waypoint001WP_ALTAR_BLUE_2E9 PORTAL_BLUE_4&8 plc_portal PORTAL_BLUE_5&8 plc_portal PORTAL_BLUE_3&8 plc_portal PORTAL_BLUE_7&8 plc_portal PORTAL_BLUE_6&8 plc_portal PORTAL_BLUE_2&8 plc_portal PORTAL_BLUE_1&8 plc_portal PORTAL_RED_7&8 plc_portal PORTAL_RED_6&8 plc_portal PORTAL_RED_5&8 plc_portal PORTAL_RED_4&8 plc_portal PORTAL_RED_3&8 plc_portal PORTAL_RED_2&8 plc_portal PORTAL_RED_1&8 plc_portalBRAZIERC8wThe brazier gives off a hot glow. As you reach toward it, you can feel beads of sweat forming on the palm of your hand. plc_brazier brazier_used  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX YZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU9VWXYZ[\]^_`abcdefghijklmno9Vp qrstuvwxyz{|}~;UTI V3.28h?\1lW*   , 8 DC      !"#$% &!'()*+,-.d()*+,-.d(() *+,-.d/ 0STemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDComment blueleather Blue Leather BlueLeather  !"#$%&'=>()*+,-./0123456789:;<UTI V3.28h?\1lQ*   ( 4 @I      !"#$% &!'()*+,-.d()*+,-.d())*+,-.d/ 0MTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDComment blueplate Blue Plate BluePlate  !"#$%&'=>()*+,-./0123456789:;<UTI V3.28h?\1lN*   & 2 >\4    !"#$% &!'()*+,-.d()*+,-.d()*+,-.d/ 0JTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDCommentbluerobe Blue RobeBlueRobe  !"#$%&'=>()*+,-./0123456789:;<DLG V3.28 CtE\,o $ LXdp|   DP\ht   , 8 D P\ht ,8DP\ht     (4@LXd     ( L p|      < L p |     <L p    <L p    @ P t      D T x  ! "  #$ H $X | % & '  (( L )\ * + ,  -, P .\ / 0 1 2, P3` 4 5 6 70 T8d 9 : ; $<4 X=h > ? @ (A8 \Bl C D E ,F< `Gp H I         ? @ D EI I J V W X d o p q } ~    D          X              C D H It- M, \+ k* |) ( ' & % $ # " !   ! 0 ? N ] l {            # $H (G 7F FE WD fC uB A @ ? > = < ; : 9  8 7 )6 85 G4 V3 e2 t1 0 / . T          ' + ,  0 o ~                   / = A B  F | }              ( 8 < = A B  F                 5 6 : ; ?  @ [ j n o s t  x                    " #  '  (   , J  X \ ]  a  b   f                   ) - .  2  3   7 S  b f g   k  l   p                       $       3  B F G , K  L   P m  |   4         <         D        # ' ( L ,  -   1 L  [ _ ` T d  e   i    \         d          l "  #   ' C  R V W t [  \   ` {    |                         ) 7 ; < @ A  E ^ l p q u v  z                  ) - . 2 3  7 S a e f j k  o                        ; K O P T U  Y u                         . 2 3 7 8  < Y i m n r s  w                      # $  ( > N R S$ W X  \ w   ,        4          <     8 H L MD Q R  V r   L        T        \     & 6 : ;d ? @  D \ k o pl t u  y    t        |       $ % ) *  . R a e f j k  o                        ! < K O P T U  Y       DelayEntryDelayReplyNumWordsEndConversationEndConverAbortPreventZoomInEntryListSpeakerAnimationAnimLoopTextScriptDelayCommentSoundQuestRepliesListIndexActiveIsChildReplyListEntriesListLinkCommentStartingList nw_walk_wp nw_walk_wp!What do you want? brazier_off brazier_off brazier_on brazier_off/Which teams do you want to see?5%How long should the competition last?+Who plays for the red team?brazier_team_0brazier_team_1brazier_team_199brazier_team_1brazier_team_1brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_299brazier_team_299brazier_team_2brazier_team_299brazier_team_2,Who plays for the blue team?brazier_team_0brazier_team_1brazier_team_199brazier_team_1brazier_team_1brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_2brazier_team_299brazier_team_299brazier_team_2brazier_team_299brazier_team_2!Nothing, goodbye.!Reset the scores. brazier_reset;+How long will a competition currently last?brazier_length+Tell me the current scores. brazier_scoreStop the fight. brazier_stop Start the fight. brazier_start2"I want to filter the team choices.2"I want to see the strongest teams.brazier_teams_99H8I want to see the teams from the University of Helsinki.brazier_teams_2C3I want to see the teams from Maastricht University.brazier_teams_1(I want to see all teams.brazier_teams_0<,I want to set the length of the competition.1 hour.brazier_len_60 30 minutes.brazier_len_30 15 minutes.brazier_len_15 10 minutes.brazier_len_10 5 minutes. brazier_len_56&It should last until I stop the fight.brazier_len_inf+I want to choose the teams.Rocket Jumpersbrazier_red_27Namelessbrazier_red_26Kekobrazier_red_25SAURONbrazier_red_24 Stoneskinbrazier_red_23 Outsidersbrazier_red_22 Hunsvotitbrazier_red_21 TEAM ACTiONbrazier_red_20Lolbotsbrazier_red_19AObrazier_red_18Team 17brazier_red_17 Kaatunut Pulubrazier_red_16Neverwin Fightsbrazier_red_15Big Bad Boogiesbrazier_red_14Vault 13brazier_red_13Team 12brazier_red_12 Ykstoistabrazier_red_11Sukka Warriorsbrazier_red_10Rexa brazier_red_98ball brazier_red_8 Holy Stephens brazier_red_7 Annoyng Basterds brazier_red_6 Fat Bots Farting brazier_red_5CoolTeam brazier_red_4 Chuck Norris brazier_red_3 Id vs. idea brazier_red_2Default brazier_red_1Rocket Jumpersbrazier_blue_27Namelessbrazier_blue_26Kekobrazier_blue_25SAURONbrazier_blue_24 Stoneskinbrazier_blue_23 Outsidersbrazier_blue_22 Hunsvotitbrazier_blue_21 TEAM ACTiONbrazier_blue_20Lolbotsbrazier_blue_19AObrazier_blue_18Team 17brazier_blue_17 Kaatunut Pulubrazier_blue_16Neverwin Fightsbrazier_blue_15Big Bad Boogiesbrazier_blue_14Vault 13brazier_blue_13Team 12brazier_blue_12 Ykstoistabrazier_blue_11Sukka Warriorsbrazier_blue_10Rexabrazier_blue_98ballbrazier_blue_8 Holy Stephensbrazier_blue_7 Annoyng Basterdsbrazier_blue_6 Fat Bots Fartingbrazier_blue_5CoolTeambrazier_blue_4 Chuck Norrisbrazier_blue_3 Id vs. ideabrazier_blue_2Defaultbrazier_blue_1)Grant me invulnerability.brazier_grants  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 4    !"#$%&'()*+,-./012356789:;<=>?@ABCDEFGHIJKLMNOJPQRTUVWY[]_acegikmoqsuwy{}SXZ\^`bdfhjlnprtvxz|~NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 1 ); } NCS V1.0B  BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 10 ); } NCS V1.0B  BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 11 ); } NCS V1.0B  BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 12 ); } NCS V1.0B  BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 13 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 14 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 15 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 16 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 17 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 18 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 19 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 2 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 20 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 21 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 22 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 23 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 24 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 25 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 26 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 27 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 3 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 4 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 5 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 6 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 7 ); } NCS V1.0B BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 8 ); } NCS V1.0B  BLUE BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_BLUE, 9 ); } NCS V1.0B| 2_ c dddd d@ddddddddB@:d_d_UX][ "!WV void main() { object oCreature = GetPCSpeaker(); effect eImmunity = EffectSpellImmunity( SPELL_ALL_SPELLS ); effect eSkill = EffectSkillIncrease( SKILL_SPELLCRAFT, 50 ); effect eVis = EffectVisualEffect( VFX_IMP_RESTORATION_GREATER ); effect eGlobe = EffectVisualEffect( VFX_DUR_GHOSTLY_VISAGE ); effect eMove = EffectMovementSpeedIncrease( 99 ); effect eLink = EffectLinkEffects( eGlobe, eImmunity ); effect eHaste = EffectHaste(); effect eInvis = EffectInvisibility( INVISIBILITY_TYPE_IMPROVED ); effect eParalysis = EffectImmunity( IMMUNITY_TYPE_PARALYSIS ); effect eFear = EffectImmunity( IMMUNITY_TYPE_FEAR ); effect eEntangle = EffectImmunity( IMMUNITY_TYPE_ENTANGLE ); effect eKnockdown = EffectImmunity( IMMUNITY_TYPE_KNOCKDOWN ); effect eAcid = EffectDamageImmunityIncrease( DAMAGE_TYPE_ACID, 100 ); effect eBase = EffectDamageImmunityIncrease( DAMAGE_TYPE_BASE_WEAPON, 100 ); effect eBludg = EffectDamageImmunityIncrease( DAMAGE_TYPE_BLUDGEONING, 100 ); effect eCold = EffectDamageImmunityIncrease( DAMAGE_TYPE_COLD, 100 ); effect eDiv = EffectDamageImmunityIncrease( DAMAGE_TYPE_DIVINE, 100 ); effect eElec = EffectDamageImmunityIncrease( DAMAGE_TYPE_ELECTRICAL, 100 ); effect eFire = EffectDamageImmunityIncrease( DAMAGE_TYPE_FIRE, 100 ); effect eMagic = EffectDamageImmunityIncrease( DAMAGE_TYPE_MAGICAL, 100 ); effect eNega = EffectDamageImmunityIncrease( DAMAGE_TYPE_NEGATIVE, 100 ); effect ePierce = EffectDamageImmunityIncrease( DAMAGE_TYPE_PIERCING, 100 ); effect ePosi = EffectDamageImmunityIncrease( DAMAGE_TYPE_POSITIVE, 100 ); effect eSlash = EffectDamageImmunityIncrease( DAMAGE_TYPE_SLASHING, 100 ); effect eSonic = EffectDamageImmunityIncrease( DAMAGE_TYPE_SONIC, 100 ); effect eHP = EffectTemporaryHitpoints( 1000000 ); effect eSpellcraft = EffectSkillIncrease( SKILL_SPELLCRAFT, 100 ); effect eLore = EffectSkillIncrease( SKILL_LORE, 100 ); ApplyEffectAtLocation( DURATION_TYPE_TEMPORARY, eVis, GetLocation( oCreature ) ); effect eTmp = GetFirstEffect( oCreature ); while (GetIsEffectValid( eTmp )) { if (GetEffectCreator( eTmp ) == OBJECT_SELF) RemoveEffect( oCreature, eTmp ); eTmp = GetNextEffect( oCreature ); } ApplyEffectToObject( DURATION_TYPE_PERMANENT, eSkill, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eParalysis, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eFear, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eEntangle, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eKnockdown, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eMove, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eHaste, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eAcid, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eBase, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eBludg, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eCold, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eDiv, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eElec, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eFire, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eMagic, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eNega, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, ePierce, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, ePosi, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eSlash, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eSonic, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eInvis, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eLink, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eHP, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eSpellcraft, oCreature ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eLore, oCreature ); } NCS V1.0B )The competition is currently set to last COMPETITION_LENGTH3 5 indefinitely.#- /1 hour.#- W& hours.##U-<& minutes.##  void main() { string sLen = "The competition is currently set to last "; int iLen = GetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH" ); if (iLen <= 0) sLen += "indefinitely."; else if (iLen == 3600) sLen += "1 hour."; else if (iLen > 3600) sLen += FloatToString( IntToFloat( iLen ) / 3600, 1, 1 ) + " hours."; else sLen += FloatToString( IntToFloat( iLen ) / 60, 2, 0 ) + " minutes."; SpeakString( sLen ); return; } NCS V1.0B> XCOMPETITION_LENGTH7 void main() { SetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH", 600 ); } NCS V1.0B> COMPETITION_LENGTH7 void main() { SetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH", 900 ); } NCS V1.0B> COMPETITION_LENGTH7 void main() { SetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH", 1800 ); } NCS V1.0B> ,COMPETITION_LENGTH7 void main() { SetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH", 300 ); } NCS V1.0B> COMPETITION_LENGTH7 void main() { SetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH", 3600 ); } NCS V1.0B@ COMPETITION_LENGTH7 void main() { SetLocalInt( OBJECT_SELF, "COMPETITION_LENGTH", -1 ); } NCS V1.0BN  NW_L_AMION3"  int StartingConditional() { return !GetLocalInt( OBJECT_SELF, "NW_L_AMION" ); } NCS V1.0BL  NW_L_AMION3  int StartingConditional() { return GetLocalInt( OBJECT_SELF, "NW_L_AMION" ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 1 ); } NCS V1.0B  RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 10 ); } NCS V1.0B  RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 11 ); } NCS V1.0B  RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 12 ); } NCS V1.0B  RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 13 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 14 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 15 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 16 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 17 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 18 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 19 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 2 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 20 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 21 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 22 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 23 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 24 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 25 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 26 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 27 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 3 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 4 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 5 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 6 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 7 ); } NCS V1.0B RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 8 ); } NCS V1.0B  RED BRAZIER*"FTEAM_#7  #include "set_team_id" #include "our_constants" void main() { SetTeamID( COLOR_RED, 9 ); } NCS V1.0B  ALTAR_RED_1RED ALTAR_RED_1BLUE ALTAR_RED_2RED ALTAR_RED_2BLUE ALTAR_BLUE_1REDs ALTAR_BLUE_1BLUEO ALTAR_BLUE_2RED, ALTAR_BLUE_2BLUE *";SCORE_#7 #include "our_constants" void SetAltarScore( string sColor, string sAltar, int iScore ) { object oAltar = GetObjectByTag( sAltar ); if (!GetIsObjectValid( oAltar )) return; SetLocalInt( oAltar, "SCORE_" + sColor, iScore ); } void main() { SetAltarScore( COLOR_RED, ALTAR_RED_1, 0 ); SetAltarScore( COLOR_BLUE, ALTAR_RED_1, 0 ); SetAltarScore( COLOR_RED, ALTAR_RED_2, 0 ); SetAltarScore( COLOR_BLUE, ALTAR_RED_2, 0 ); SetAltarScore( COLOR_RED, ALTAR_BLUE_1, 0 ); SetAltarScore( COLOR_BLUE, ALTAR_BLUE_1, 0 ); SetAltarScore( COLOR_RED, ALTAR_BLUE_2, 0 ); SetAltarScore( COLOR_BLUE, ALTAR_BLUE_2, 0 ); } NCS V1.0Bg The red team has scored RED\\# and the blue team has scored #BLUE!\#.#  ALTAR_RED_1  ALTAR_RED_2  ALTAR_BLUE_1~  ALTAR_BLUE_2F  *",SSCORE_#3 #include "our_constants" void main() { SpeakString( "The red team has scored " + IntToString( GetScore( COLOR_RED ) ) + " and the blue team has scored " + IntToString( GetScore( COLOR_BLUE ) ) + "." ); return; } NCS V1.0BA BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&- ?, NW_L_AMION7REDBLUEwBRAZIER*".TIMER7  ~- #R- &- - (- e- sv- ~J- - - - - n- B- "- 0- ]- b- bf- g:- p- w- - - ^- 2- /c BRAZIER*",TEAM_#3 ,: Default-=# BRAZIER*"FTEAM_#9   Id vs. idea-=#J ID3_  % % % %- %W % %#'\'\ST_POS9movingto:'`'`ST_POS9'd'dST_POS9D'h'hST_POS9't'tST_POS9'l'lST_POS9movingto:e'p'pST_POS9movingto: T2_FORMATION'X7 *",PORTAL_#_#INDEX3\# U\ /CLASS_TYPE_CLERIC .CLASS_TYPE_ROGUE 0CLASS_TYPE_FIGHTER 1CLASS_TYPE_SORCERER 1CLASS_TYPE_ASSASSIN U  T2_FORMATION'X3ID3 % ST_POS5 #,@!    Chuck Norris-=#  CoolTeam-=#7 is happy to fight#   firstSpawnBRAZIER7Fat Bots Farting-=# Annoyng Basterds-=#S Holy Stephens-=# 8ball-=# T8_STARTEDPORTAL_#_1#7 Rexa-=#x Sukka Warriors-=#@  Ykstoista-=#  Team 12-=# &WP_#_1#&RED #BLUE RED& Vault 13-=#( % ZALTAR_'#_1#ALTAR_1':ALTAR_'#_2#ALTAR_2':ALTAR_'#_1#ALTAR_3':ALTAR_'#_2#ALTAR_4':DOUBLERALTAR_5': MATCH_START'7ZALTAR_'#_1#ALTAR_1':ALTAR_'#_2#ALTAR_2':DOUBLERALTAR_3':ALTAR_'#_1#ALTAR_4':ALTAR_'#_2#ALTAR_5':6 MATCH_START'7   < <  <     Big Bad Boogies-=# FIRST_ROUNDPORTAL_#_1#7PEPEPORTAL_#_1#7 Neverwins Fights-=#  Kaatunut Pulu-=#starty7 Team 17-=# AO-=#T Lolbots-=##  TEAM ACTiON-=#  Hunsvotit-=# PHASEPORTAL_t#_4#7TACTICPORTAL_1#_4#7 Outsiders-=#  Stoneskin-=# TEAM_1_TARGETPORTAL_#_1#9 TEAM_2_TARGETPORTAL_/#_1#9  #*Q WP_ALTAR_#_2# b #*Q WP_ALTAR_#_1# SAURON-=# Keko-=# DEFEND  Nameless-=#F ChargecounterPORTAL_#_4#7dcounterPORTAL_#_4#7rcounterPORTAL_u#_4#7 RED #BLUE REDCHARGE #PORTAL_#_1# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_2# WP_ALTAR_#_2D#TARGET9ATTACKSTANCE9PORTAL_#_3# WP_FRONT_#_2#TARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_FRONT_#_1#TARGET9ATTACKSTANCE9PORTAL_#_6# WP_ALTAR_#_1D#TARGET9ATTACKSTANCE9PORTAL_#_7# WP_ALTAR_#_1#TARGET9STANDSTANCE9-DEFEND #PORTAL_#_1# WP_ALTAR_#_2E#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_3# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_6# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1E#TARGET9ATTACKSTANCE9)-LEFT #PORTAL_#_1# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_2# WP_FRONT_#_2#TARGET9ATTACKSTANCE9PORTAL_#_3# WP_CENTER_#_2#TARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_CENTER_#_1#TARGET9ATTACKSTANCE9PORTAL_#_6# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1C#TARGET9ATTACKSTANCE9 ?-RIGHT #PORTAL_#_1# WP_ALTAR_#_2C#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_3# WP_CENTER_#_1#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_CENTER_#_2#TARGET9STANDSTANCE9PORTAL_#_6# WP_FRONT_#_1#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1#TARGET9ATTACKSTANCE9V-BOTTOM #PORTAL_#_1# WP_ALTAR_#_1D#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_CENTER_#_2#TARGET9STANDSTANCE9PORTAL_#_3# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_6# WP_ALTAR_#_2D#TARGET9STANDSTANCE9PORTAL_#_7# WP_CENTER_#_2#TARGET9ATTACKSTANCE9k-PORTAL_#_1# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_2# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_3# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_6# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_7# WP_DOUBLERTARGET9ATTACKSTANCE9StatePORTAL_#_4#9 Rocket Jumpers-=#ѻ WP_ALTAR_#_1#ALTAR_R9 WP_ALTAR_#_1#ALTAR_R: WP_ALTAR_#_2#ALTAR_LQ9 WP_ALTAR_#_2#ALTAR_L: WP_DOUBLERALTAR_C9 WP_DOUBLERALTAR_C:NPC_#_6#weak1h9NPC_#_2#weak209NPC_#_5#tank19NPC_#_3#tank29NPC_#_7#ranged19NPC_#_1#ranged2L9NPC_#_4#healer9 PORTAL_#_1#  #include "games_and_ai" void main() { object oSelf = OBJECT_SELF; PlayAnimation( ANIMATION_PLACEABLE_ACTIVATE ); SetLocalInt( OBJECT_SELF, "NW_L_AMION", 1 ); effect eLight = EffectVisualEffect( VFX_DUR_LIGHT_YELLOW_20 ); ApplyEffectToObject( DURATION_TYPE_PERMANENT, eLight, oSelf ); ActivateInitialization( COLOR_RED ); ActivateInitialization( COLOR_BLUE ); object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return; SetLocalInt( oBrazier, "TIMER", 0 ); } NCS V1.0Bf  <  KRED "BLUE=NPC_#_#\#*o,  $$gBRAZIER*"?, NW_L_AMION7UX ]J !WV:The competition is over. The final scores are as follows: REDD#:#RED+\# #BLUE#:#BLUE\#,  ]*pj 6, &^ BRAZIER*".TEAM_#5 #.:  ALTAR_RED_1  ALTAR_RED_2  ALTAR_BLUE_1~  ALTAR_BLUE_2F  *",SSCORE_#3 #include "stop_competition" void main() { StopCompetition(); } NCS V1.0B1 TEAMS7 void main() { SetLocalInt( OBJECT_SELF, "TEAMS", 0 ); } NCS V1.0B1 TEAMS7 void main() { SetLocalInt( OBJECT_SELF, "TEAMS", 1 ); } NCS V1.0B1 TEAMS7 void main() { SetLocalInt( OBJECT_SELF, "TEAMS", 2 ); } NCS V1.0B1 cTEAMS7 void main() { SetLocalInt( OBJECT_SELF, "TEAMS", 99 ); } NCS V1.0BO TEAMS3   int StartingConditional() { return (GetLocalInt( OBJECT_SELF, "TEAMS" ) == 0); } NCS V1.0B TEAMS3 "TEAMS3    int StartingConditional() { return (GetLocalInt( OBJECT_SELF, "TEAMS" ) == 0 || GetLocalInt( OBJECT_SELF, "TEAMS" ) == 1); } NCS V1.0B TEAMS3 "TEAMS3  "TEAMS3c    int StartingConditional() { return (GetLocalInt( OBJECT_SELF, "TEAMS" ) == 0 || GetLocalInt( OBJECT_SELF, "TEAMS" ) == 1 || GetLocalInt( OBJECT_SELF, "TEAMS" ) == 99); } NCS V1.0B TEAMS3 "TEAMS3    int StartingConditional() { return (GetLocalInt( OBJECT_SELF, "TEAMS" ) == 0 || GetLocalInt( OBJECT_SELF, "TEAMS" ) == 2); } NCS V1.0B TEAMS3 "TEAMS3  "TEAMS3c    int StartingConditional() { return (GetLocalInt( OBJECT_SELF, "TEAMS" ) == 0 || GetLocalInt( OBJECT_SELF, "TEAMS" ) == 2 || GetLocalInt( OBJECT_SELF, "TEAMS" ) == 99); } NCS V1.0B8 brazierJ //:://///////////////////////////////////////////// //:: NW_O2_ONOFF.nss //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Turns the placeable object's animation on/off */ //::////////////////////////////////////////////// //:: Created By: Brent //:: Created On: January 2002 //::////////////////////////////////////////////// void main() { ActionStartConversation( GetLastUsedBy(), "brazier", TRUE ); /* if (GetLocalInt(OBJECT_SELF,"NW_L_AMION") == 0) { object oSelf = OBJECT_SELF; PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE); //DelayCommand(0.4,SetPlaceableIllumination(oSelf, TRUE)); SetLocalInt(OBJECT_SELF,"NW_L_AMION",1); //DelayCommand(0.5,RecomputeStaticLighting(GetArea(oSelf))); effect eLight = EffectVisualEffect(VFX_DUR_LIGHT_YELLOW_20); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLight, oSelf); } else { object oSelf = OBJECT_SELF; PlayAnimation(ANIMATION_PLACEABLE_DEACTIVATE); //DelayCommand(0.4,SetPlaceableIllumination(oSelf, FALSE)); SetLocalInt(OBJECT_SELF,"NW_L_AMION",0); //DelayCommand(0.9,RecomputeStaticLighting(GetArea(oSelf))); effect eEffect = GetFirstEffect(oSelf); while (GetIsEffectValid(eEffect) == TRUE) { if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT) RemoveEffect(oSelf, eEffect); eEffect = GetNextEffect(oSelf); } } */ } ITP V3.28H (  H (08@HPX`hpx (08@HPX`hpx$4DTdt%&D'()* 89:\G"H#I$J%1p23456,- . 8 ;<=>+/?/ # BDCk E!K&'(*)!+#,-    A   .A 6 = N@ W _ o@ w ~ A   A   A   A   @   &@ . 5 GA P X iA q x A   A !"#$L.MAINSTRREFLISTIDNAMERESREFCRFACTION Amazon Bluenpcblue5Blue Amazon Rednpcred5Red Assassin Bluenpcblue6Blue Assassin Rednpcred6Red Cleric Bluenpcblue4Blue Cleric Rednpcred4Red Fighter Bluenpcblue3Blue Fighter Rednpcred3Red Rogue Bluenpcblue2Blue Rogue Rednpcred2RedSorceress Bluenpcblue7Blue Sorceress Rednpcred7Red Sorceror Bluenpcblue1Blue Sorceror Rednpcred1Red  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*3G  !"  #$%&'()+,-./0124CDEF56789:;<=>?@ABITP V3.28 Xt8 (08@HP !"#$NO(PQRMAINSTRREFLISTID  ITP V3.28 Xt4 (08@HP  !"#$MAINSTRREFIDLIST   #include "NW_I0_GENERIC" #include "our_constants" #include "T1" #include "T2" #include "T3" #include "T4" #include "T5" #include "T6" #include "T7" #include "T8" #include "T9" #include "T10" #include "T11" #include "T12" #include "T13" #include "T14" #include "T15" #include "T16" #include "T17" #include "T18" #include "T19" #include "T20" #include "T21" #include "T22" #include "T23" #include "T24" #include "T25" #include "T26" #include "T27" void ActivateDetermineCombatRound( object oIntruder = OBJECT_INVALID, int nAI_Difficulty = 10 ) { int iTeam = GetTeamID( GetLocalString( OBJECT_SELF, "COLOR" ) ); if (iTeam == 1) T1_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 2) T2_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 3) T3_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 4) T4_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 5) T5_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 6) T6_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 7) T7_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 8) T8_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 9) T9_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 10) T10_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 11) T11_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 12) T12_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 13) T13_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 14) T14_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 15) T15_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 16) T16_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 17) T17_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 18) T18_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 19) T19_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 20) T20_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 21) T21_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 22) T22_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 23) T23_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 24) T24_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 25) T25_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 26) T26_DetermineCombatRound( oIntruder, nAI_Difficulty ); else if (iTeam == 27) T27_DetermineCombatRound( oIntruder, nAI_Difficulty ); else DetermineCombatRound( oIntruder, nAI_Difficulty ); } void ActivateUserDefined( int Event ) { int iTeam = GetTeamID( GetLocalString( OBJECT_SELF, "COLOR" ) ); if (iTeam == 1) T1_UserDefined( Event ); else if (iTeam == 2) T2_UserDefined( Event ); else if (iTeam == 3) T3_UserDefined( Event ); else if (iTeam == 4) T4_UserDefined( Event ); else if (iTeam == 5) T5_UserDefined( Event ); else if (iTeam == 6) T6_UserDefined( Event ); else if (iTeam == 7) T7_UserDefined( Event ); else if (iTeam == 8) T8_UserDefined( Event ); else if (iTeam == 9) T9_UserDefined( Event ); else if (iTeam == 10) T10_UserDefined( Event ); else if (iTeam == 11) T11_UserDefined( Event ); else if (iTeam == 12) T12_UserDefined( Event ); else if (iTeam == 13) T13_UserDefined( Event ); else if (iTeam == 14) T14_UserDefined( Event ); else if (iTeam == 15) T15_UserDefined( Event ); else if (iTeam == 16) T16_UserDefined( Event ); else if (iTeam == 17) T17_UserDefined( Event ); else if (iTeam == 18) T18_UserDefined( Event ); else if (iTeam == 19) T19_UserDefined( Event ); else if (iTeam == 20) T20_UserDefined( Event ); else if (iTeam == 21) T21_UserDefined( Event ); else if (iTeam == 22) T22_UserDefined( Event ); else if (iTeam == 23) T23_UserDefined( Event ); else if (iTeam == 24) T24_UserDefined( Event ); else if (iTeam == 25) T25_UserDefined( Event ); else if (iTeam == 26) T26_UserDefined( Event ); else if (iTeam == 27) T27_UserDefined( Event ); } void ActivateInitialization( string sColor ) { int iTeam = GetTeamID( sColor ); if (iTeam == 1) T1_Initialize( sColor ); else if (iTeam == 2) T2_Initialize( sColor ); else if (iTeam == 3) T3_Initialize( sColor ); else if (iTeam == 4) T4_Initialize( sColor ); else if (iTeam == 5) T5_Initialize( sColor ); else if (iTeam == 6) T6_Initialize( sColor ); else if (iTeam == 7) T7_Initialize( sColor ); else if (iTeam == 8) T8_Initialize( sColor ); else if (iTeam == 9) T9_Initialize( sColor ); else if (iTeam == 10) T10_Initialize( sColor ); else if (iTeam == 11) T11_Initialize( sColor ); else if (iTeam == 12) T12_Initialize( sColor ); else if (iTeam == 13) T13_Initialize( sColor ); else if (iTeam == 14) T14_Initialize( sColor ); else if (iTeam == 15) T15_Initialize( sColor ); else if (iTeam == 16) T16_Initialize( sColor ); else if (iTeam == 17) T17_Initialize( sColor ); else if (iTeam == 18) T18_Initialize( sColor ); else if (iTeam == 19) T19_Initialize( sColor ); else if (iTeam == 20) T20_Initialize( sColor ); else if (iTeam == 21) T21_Initialize( sColor ); else if (iTeam == 22) T22_Initialize( sColor ); else if (iTeam == 23) T23_Initialize( sColor ); else if (iTeam == 24) T24_Initialize( sColor ); else if (iTeam == 25) T25_Initialize( sColor ); else if (iTeam == 26) T26_Initialize( sColor ); else if (iTeam == 27) T27_Initialize( sColor ); } ITP V3.28WL  $08@HP\dlt| $,4<DLT\dlt| $,4<DLT\dlt|O @   ' <L L Z d qS  X z       :Tl U V W|7X ?;88<YZ[9]^_\+ab6 !"#$L5d$efg4j hikDl!m"n#o$+%p&`q'r(s)t*=w.x/yxz0{1|23v+7 ,->4MAINSTRREFLISTIDNAMERESREFSorceror Robe BluesorcerorrobeblueSorceror Robe Redsorcerorrobered Blue Plate blueplate Red Plateredplate Blue Leather blueleather Blue Robebluerobe Red Leather redleatherRed Roberedrobe wbwmxl010  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+,23  #$'()* !"%&-./01 48<CIJKOPV5679:;=>?@ABDEFGHLMNQSTURUTT V3.28DpZt>  #@@ G K       O P Q R S T U VTagTemplateResRefLocalizedNameAutoRemoveKeyFactionCursorHighlightHeightKeyNameLinkedToLinkedToFlagsLoadScreenIDPortraitIdTypeTrapDetectableTrapDetectDCTrapDisarmableDisarmDCTrapFlagTrapOneShotTrapTypeOnDisarmOnTrapTriggeredOnClickScriptHeartbeatScriptOnEnterScriptOnExitScriptUserDefinePaletteIDCommentLocationTriggerlocationtrigger Location Trigger IFO V3.28P22 1/   < F U Y HB A ? \ h i y z { |   ! " # $ % & ' ( ) * +,-. /01Mod_IDMod_MinGameVerMod_Creator_IDMod_VersionExpansion_PackMod_NameMod_TagMod_DescriptionMod_IsSaveGameMod_CustomTlkMod_Entry_AreaMod_Entry_XMod_Entry_YMod_Entry_ZMod_Entry_Dir_XMod_Entry_Dir_YMod_Expan_ListMod_DawnHourMod_DuskHourMod_MinPerHourMod_StartMonthMod_StartDayMod_StartHourMod_StartYearMod_XPScaleMod_OnHeartbeatMod_OnModLoadMod_OnModStartMod_OnClientEntrMod_OnClientLeavMod_OnActvtItemMod_OnAcquirItemMod_OnUsrDefinedMod_OnUnAqreItemMod_OnPlrDeathMod_OnPlrDyingMod_OnPlrEqItmMod_OnPlrLvlUpMod_OnSpawnBtnDnMod_OnPlrRestMod_OnPlrUnEqItmMod_OnCutsnAbortMod_OnPlrChatMod_StartMovieMod_CutSceneListMod_GVar_ListMod_Area_listArea_NameMod_HakListMod_CacheNSSListKx!'+Z J X   Y ]  !"#$%&'()*+,-./012 3 4 5 6 789:;<$=>?@2A2BACD Ea Fp G H I J K L M N O P  QRSS SSS SSS SSSSSSSSS SSSSSSSSSSSTtUUU#UUUU/U.VWXY Z [\%]^\d]^\]^\]^_\B]^\k]^\s]^\]^\]^`\b]^\x]^\s]^\]^a\:]^\N]^\e]^b\4]^\]^c\]^d  e,f g5 e=fgh iFjk iWjk ihjk iyjk ijkl0 m m mn oTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelKnownList0SpellSpellMetaMagicSpellFlagsKnownList1KnownList2KnownList3KnownList4KnownList5VarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue1 Sorceror Blue NPC_BLUE_1nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wswmdg009 nw_wambo001sorcerorrobeblue wbwmxl010 nw_wammbo004  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABUTC V3.286 g\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxypx    'O ; G U   V Z !"#$%&'()*+,- ./012 34 5 67 89:%;%</=>?@2A2B@CD E^ Fm G} H I J K L M N O P  QRSSSSSS SS S S S SS S S S SS SS SSSSSSSSTtUUUUUUU\U)UU2VWXYZ [ \)] ^2 \:]^_ `Cab `Tab `eab `vab `ab `ab `ab `abc d d d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue2 Rogue Blue NPC_BLUE_2nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wbwmsh009 nw_wammar004nw_it_mpotion008nw_it_mpotion008nw_it_mpotion008 blueleather nw_wswmss011 nw_wswmdg009 nw_wammar003  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoz{|}~   !"#$%&'()*+,-./012345UTC V3.289p gI\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxyz{|}~px    )] = I W   X \s !"#$%&'()*+,-./0123 456789:;;;<Y=>?@2A2BACD E` Fo G H I J K L M N O P  QRSSSS S SSSSSS SSSSSSSSSSSSSSSSSTtUUUUUU UDUUUUUUU UkU-U.UVWXYZ [ \+] ^4 \<]^_ `Eab `Vab `gab `xabc d d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue3 Fighter Blue NPC_BLUE_3nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 wbwmxl010 blueplate nw_wswmgs011 nw_wambo001  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRo  !"#$%&'()*+,-./012345678UTC V3.28PDo4 p\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxyz{|}p(4@LXdp|    (a < H V   W [ !"#$%&'()*+,-./01234 5 67 89:0;0<:=>?@2A2BACD E_ Fn G~ H I J K L M N O P  QRSS SSS SSSSSS SSSSSSSSSSSSSSSSSTtUUUU U>UUU U#UUUBU&U.VWXYZ [\]^\ ]^\ ]^\ ]^\ ]^\ ]^_\]^\"]^\"]^\"]^\]^`\]^\#]^\[]^\]^\]^a \]^\>]^\L]^\]^\]^b$\=]^\]^c0 d)e f2 d:efg< hCij hTij heij hvij hij hij hijk\ l l l lm nTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelMemorizedList1SpellSpellMetaMagicSpellFlagsMemorizedList2MemorizedList3MemorizedList4MemorizedList5VarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue4 Cleric Blue NPC_BLUE_4nw_c2_default1our_c2_default2our_c2_defaultbnw_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wbwmsl010 nw_wammbu005 nw_wambu001 nw_wammbu007bluerobe nw_wblmml011 nw_ashmsw002 nw_wammbu006  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRo~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOUTC V3.289p gH\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxyz{|}~px    (C < H V   W [ !"#$%&'()*+,-./0123 456789:;;;<Y=>?@2A2BACD E_ Fn G~ H I J K L M N O P  QRSSSS S SSSSSS SSSSSSSSSSSSSSSSSTtUUUUUU UDUUUUUUU UoU-U.UVWXYZ [ \*] ^3 \;]^_ `Dab `Uab `fab `wabc d d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue5 Amazon Blue NPC_BLUE_5nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 wbwmxl010 blueplate nw_waxmgr009 nw_wambo001  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRo  !"#$%&'()*+,-./012345678UTC V3.286 g  \STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxypx   *v > J X   Y ] !"#$%&'()*+,-./012 34 5 67 89:%;%</=>?@2A2B@CD Ea Fp G H I J K L M N O P  QRSSSSSS SS S S S SS S S S SS SS SSSSSSSSTtUUUUUUU\U)UU2VWXYZ [ \,] ^5 \=]^_ `Fab `Wab `hab `yab `ab `ab `ab `ab `abc d d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue6 Assassin Blue NPC_BLUE_6nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wammar004nw_it_mpotion008nw_it_mpotion008nw_it_mpotion008 nw_wswmdg009 nw_wswmss011 blueleather nw_wbwmsh009 nw_wammar003  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoz{|}~   !"#$%&'() *+,-./012345UTC V3.28C\ pG@\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwp ,8DP\ht    +F ? K Y   Z ^  !"#$%&'()*+,-./012 3 4 5 6 789:;<$=>?@2A2BACD Eb Fq G H I J K L M N O P QRSS SSS SSS SSSSSSSSS SSSSSSSSSSSTtUUU#UUUU/U.VWXY Z [\%]^\d]^\]^\]^_\]^\B]^\f]^\k]^\]^`\]^\s]^\]^\]^a\;]^\]^\]^b\w]^\]^c\c]^d  e-f g6 e>fgh iGjk iXjk iijk izjk ijkl0 m m mn oTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelKnownList0SpellSpellMetaMagicSpellFlagsKnownList1KnownList2KnownList3KnownList4KnownList5VarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcblue7Sorceress Blue NPC_BLUE_7nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORBLUEINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wswmdg009 nw_wambo001sorcerorrobeblue wbwmxl010 nw_wammbo004  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABUTC V3.28C\ pA @\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwp ,8DP\ht    (b < H U   V Z  !"#$%&'()*+,-./012 3 4 5 6 789:;<$=>?@2A2BACD E^ Fm G} H I J K L M N O P  QRSS SSS SSS SSSSSSSSS SSSSSSSSSSSTtUUU#UUUU/U.VWXY Z [\%]^\d]^\]^\]^_\B]^\k]^\s]^\]^\]^`\b]^\x]^\s]^\]^a\:]^\N]^\e]^b\4]^\]^c\]^d  e)f g2 e9fgh iBjk iSjk idjk iujk ijkl0 m m mn oTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelKnownList0SpellSpellMetaMagicSpellFlagsKnownList1KnownList2KnownList3KnownList4KnownList5VarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred1 Sorceror Red NPC_RED_1nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wswmdg009 nw_wambo001sorcerorrobered wbwmxl010 nw_wammbo004  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABUTC V3.286 g\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxypx    %O 9 E R   S W !"#$%&'()*+,- ./012 34 5 67 89:%;%</=>?@2A2B@CD E[ Fj Gz H I J K L M N O P QRSSSSSS SS S S S SS S S S SS SS SSSSSSSSTtUUUUUUU\U)UU2VWXYZ [ \&] ^/ \6]^_ `?ab `Pab `aab `rab `ab `ab `ab `abc d d d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred2 Rogue Red NPC_RED_2nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wbwmsh009 nw_wammar004nw_it_mpotion008nw_it_mpotion008nw_it_mpotion008 redleather nw_wswmss011 nw_wswmdg009 nw_wammar003  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoz{|}~   !"#$%&'()*+,-./012345UTC V3.289p gD\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxyz{|}~px    '] ; G T   U Ys !"#$%&'()*+,-./0123 456789:;;;<Y=>?@2A2BACD E] Fl G| H I J K L M N O P  QRSSSS S SSSSSS SSSSSSSSSSSSSSSSSTtUUUUUU UDUUUUUUU UkU-U.UVWXYZ [ \(] ^1 \8]^_ `Aab `Rab `cab `tabc d~ d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred3 Fighter Red NPC_RED_3nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 wbwmxl010redplate nw_wswmgs011 nw_wambo001  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRo  !"#$%&'()*+,-./012345678UTC V3.28PDo4  p\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxyz{|}p(4@LXdp|    &a : F S   T X !"#$%&'()*+,-./01234 5 67 89:0;0<:=>?@2A2BACD E\ Fk G{ H I J K L M N O P QRSS SSS SSSSSS SSSSSSSSSSSSSSSSSTtUUUU U>UUU U#UUUBU&U.VWXYZ [\]^\ ]^\ ]^\ ]^\ ]^\ ]^_\]^\"]^\"]^\"]^\]^`\]^\#]^\[]^\]^\]^a \]^\>]^\L]^\]^\]^b$\=]^\]^c0 d&e f/ d6efg< h?ij hPij haij hrij hij hij hijk\ l l l lm nTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelMemorizedList1SpellSpellMetaMagicSpellFlagsMemorizedList2MemorizedList3MemorizedList4MemorizedList5VarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred4 Cleric Red NPC_RED_4nw_c2_default1our_c2_default2our_c2_defaultbnw_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wbwmsl010 nw_wammbu005 nw_wambu001 nw_wammbu007redrobe nw_wblmml011 nw_ashmsw002 nw_wammbu006  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRo~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOUTC V3.289p gC\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxyz{|}~px    &C : F S   T X !"#$%&'()*+,-./0123 456789:;;;<Y=>?@2A2BACD E\ Fk G{ H I J K L M N O P QRSSSS S SSSSSS SSSSSSSSSSSSSSSSSTtUUUUUU UDUUUUUUU UoU-U.UVWXYZ [ \'] ^0 \7]^_ `@ab `Qab `bab `sabc d} d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred5 Amazon Red NPC_RED_5nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 wbwmxl010redplate nw_waxmgr009 nw_wambo001  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRo  !"#$%&'()*+,-./012345678UTC V3.286 g\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwxypx   (v < H U   V Z !"#$%&'()*+,-./012 34 5 67 89:%;%</=>?@2A2B@CD E^ Fm G} H I J K L M N O P  QRSSSSSS SS S S S SS S S S SS SS SSSSSSSSTtUUUUUUU\U)UU2VWXYZ [ \)] ^2 \9]^_ `Bab `Sab `dab `uab `ab `ab `ab `ab `abc d d de fTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelVarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred6 Assassin Red NPC_RED_6nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wammar004nw_it_mpotion008nw_it_mpotion008nw_it_mpotion008 nw_wswmdg009 nw_wswmss011 redleather nw_wbwmsh009 nw_wammar003  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoz{|}~   !"#$%&'() *+,-./012345UTC V3.28C\ pB @\STUVWXYZ[\]^_`abcdefghijklmnpqrstuvwp ,8DP\ht    )F = I V   W [  !"#$%&'()*+,-./012 3 4 5 6 789:;<$=>?@2A2BACD E_ Fn G~ H I J K L M N O P  QRSS SSS SSS SSSSSSSSS SSSSSSSSSSSTtUUU#UUUU/U.VWXY Z [\%]^\d]^\]^\]^_\]^\B]^\f]^\k]^\]^`\]^\s]^\]^\]^a\;]^\]^\]^b\w]^\]^c\c]^d  e*f g3 e:fgh iCjk iTjk iejk ivjk ijkl0 m m mn oTemplateResRefRaceFirstNameLastNameAppearance_TypeGenderPhenotypePortraitIdDescriptionTagConversationIsPCFactionIDDisarmableSubraceDeityWings_NewTail_NewSoundSetFilePlotIsImmortalInterruptableLootableNoPermDeathBodyBagStartingPackageDecayTimeArmorPart_RFootBodyPart_LFootBodyPart_RShinBodyPart_LShinBodyPart_LThighBodyPart_RThighBodyPart_PelvisBodyPart_TorsoBodyPart_BeltBodyPart_NeckBodyPart_RFArmBodyPart_LFArmBodyPart_RBicepBodyPart_LBicepBodyPart_RShoulBodyPart_LShoulBodyPart_RHandBodyPart_LHandAppearance_HeadColor_SkinColor_HairColor_Tattoo1Color_Tattoo2StrDexConIntWisChaWalkRateNaturalACHitPointsCurrentHitPointsMaxHitPointsrefbonuswillbonusfortbonusGoodEvilLawfulChaoticChallengeRatingCRAdjustPerceptionRangeScriptHeartbeatScriptOnNoticeScriptSpellAtScriptAttackedScriptDamagedScriptDisturbedScriptEndRoundScriptDialogueScriptSpawnScriptRestedScriptDeathScriptUserDefineScriptOnBlockedSkillListRankFeatListFeatTemplateListSpecAbilityListClassListClassClassLevelKnownList0SpellSpellMetaMagicSpellFlagsKnownList1KnownList2KnownList3KnownList4KnownList5VarTableNameTypeValueItemListInventoryResRepos_PosXRepos_PosyEquip_ItemListEquippedResPaletteIDCommentnpcred7 Sorceress Red NPC_RED_7nw_c2_default1our_c2_default2our_c2_defaultbour_c2_default5our_c2_default6our_c2_default8our_c2_default3nw_c2_default4our_c2_default9nw_c2_defaultanw_c2_default7our_c2_defaultdnw_c2_defaulteCOLORREDINDEXnw_it_mpotion001nw_it_mpotion001nw_it_mpotion001 nw_wswmdg009 nw_wambo001sorcerorrobered wbwmxl010 nw_wammbo004  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRoxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABNCS V1.0B BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&-  3    i "w " < "  " )  @ - "x|}dL-NW_I_WAS_ATTACKED +6-|Q|Z-= '- \)@!;y;0-y;0-[y;[0M-?d(?e(?f(" ~?-     $E  " NW_GENERIC_MASTER3 ,8 COLOR5 "wf- " 2- " p- "*- "D- "Db- "I.- "b- "r- "rq- "^- "*- "d- "- "l- "ƏZ- "F&- "0- "- "- "V- ""- "- "I- "?N- "?8R- "r-/ BRAZIER*",TEAM_#3 ,:  O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @]1YZ !NW_L_COMBATDIFF7* "$4 s' K(*)$(^?c $("} z' WNW_GENERIC_LAST_ATTACK_TARGET:?L UXj ,YV  J?*,-NW_ASSOCIATE_MASTER3 ,8  NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H-- gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  }!% ?*   *  * t$A 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  l-" N% - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  G  W&O-&*.:     + -   + C-= + * ,>    X0_L_NOTALLOWEDTOHAVEINVENTORY3         $   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND:  X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &* * E      - m l '  5* *    (*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2  Z3 + gd    ,2   @r-s @<-= @    W ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  " .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 * A" .#*ۚ P$   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & Kgk0"N>  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   +h kk & 5  4gkO  A! 6- " i  EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -E"  % %z %d %N %8 %" % 3E " X3Ej m   t 9    )A(!D6"Y-A66 уY- !52  %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8   ,c ,c NW_L_MEMORY3/27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT.Z ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2  p+"0Dc k *       *" i)@!H  )@@!*     *( % $(  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE( X2_L_BEH_COMPASSION( (   12 N ; ,c d  dj-){   ,c: P/[ ,c2 2  2  B NW_L_MEMORY70 ,c4 ,c; ,cB. ,cb2 2  2   NW_L_MEMORY7U       @C7,cD7 ,cEy ,c] ,c!F ,cH\ ,c_  ,cmaR ,c1b ,cr ,cx- ,ce2  NW_L_MEMORY7} ,c ,c NW_L_MEMORY7 ,c9 ,c,c ,c})N*   k k  k  k  k  k  k  k  k  1 2    3gNӋ-3gNJ   ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   A!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"*?c#A )@@!,0* ,*b ,8 *    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   pQ%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !1   S F BHA*  _ " "  ! Bp!@@! "Az    %" % &2  UUWd  Wd  g "-   "'-U W ,C  V-  a 0"x Q3> &   F    ,2  3 .8 8l9: <$0m0   ? QM ,2  $ymy  XyZy \y  y y !   t&*"O&*"H f6 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]F\ *",*"  *",ErA , 07 @ &  1 * 2Pg " 1  PO k , gPk&*k  G- '1+-1 2 " ?gP$&2 @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q1?0@p UX % %! %= %' %C % %   r N *  V1    o  ".-@vvg %?*8g&@  VX,gV,|$H &  *L " "   z"!b "  $ jk 0 ,i-  ,z2  @p(p %?*4g@7 V,gV,|$ Iԇ,A,A,xwӵ,2  " hg"i #g - T,>  g"i; g - kZ   ,,> "g"wg",jk 0" N8 Z((  g   ^ g&i 4 H- 'g&  4 -g& ' 4 $ jk o0"N&- o"NJ-U> l*)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $e*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER  ,g. g.jV  FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 l*"Byy]g*    :  h@! ; :  !--[?*)?6-6D  y4-[y4[-y4M-y4 O2Y0 t*",* %,(-6 qtg+j $k0" k" j  j ktHs gX ,/rg+j $k0" k" j  j krK- qqg+j $k0" k" j  j k}pAog+j $k0" k" j  j ko]n5gX ,D @* $@r  :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j nj $k0" k""  f`j k -   $3j nj $k0" k\"  `j kDh  j k) z  ^  C  UX 1[ ",i<-  -V0- Pf8 d*"%,*#@! @ tdg+j $k0" k" j  j kdA}9-@U | bg3j $k0" k" j  j ke,E6-augX! ,D * "  $L ^*".*@2@   t^g+j $k0" k" j  j k^F-  ]g3j $k0" k" j  j kxD?6rp-[g+j $k0" k" j  j k[N-)@!ZgX ,P &W9#/  ,7: < E A 9=; V  2  2Y  2  2    OF9&D 6*)A! #+" $$5hJ *"  "   1,*"   "   i*",1R Rwg @H <Q Qg  gmj $k0"   PPgl @ OP8gmj $k0"   j kP ,3g ,On  +3g ,N  + 3g ,Nf  +3g k0"^M ,D * ,r 1(    !  !  X*  6   &  J r>  *,*"   '" BlJ  *"  "  Wi*" @!"""    "   =,*"   "   u&L*",Ht?@!K! c8# x2_hen_valen #  @@       O.&c-   c.&xi7-  c.% -  9.%mwAAg R  PL PA6-V-/$8BN2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 * fJ)!*  )!d,n-   ,pJ ; *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3:;Sg  ;NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <(   $        " ## *  4?X2_L_WAYPOINT_SETFACING3 5,$  &,$l &wX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-wX2_S_SLEEP_AT_NIGHT_SCRIPT5 # iw** ,8 NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@ ")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@3" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-j# :}r-$ D  WP_CUR7 ,n\#6 @"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$  INDEX3COLOR5BLUEBLUE #!RED@ WP_DOUBLER% % % %x % %  % I %[Ol@ :y C0-y C0Kz-ey Ce0- ey CB0Q-@%   sy Cs0mL-ky Ck0-sy Cs0-y C0S2-NPC_#_3#N0"#@! CN0kN0"AN0NPC_#_4#N0"#@! CN0 a0 $ WP_ALTAR_#_1#!-H) GGb0,@Z  -( G<NPC_#_3# #"@( C"0 EP _ 0oA ;F ,n NPC_#_3# #5NPC_#_5# # a0I.W.I.N. Button y C0- %" %Ct0=0I  - %" %Ct0=0B0,@   -4 WP_ALTAR_#_2#!-A9W@^@ :wy Cw0- y C0 6-y C0-y C0Mz-By CB0-@   ;y C;08-sy Cs0-y C0c|-y C0-s %" %Ct0=0I Y ) "A! 1"V 8-$X)W WP_DOUBLER@!,: NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   21!d& ( U Dڢ ,  BRAZIER MY_NUMBER*3ROLE_#_#\#3 j ?!C *U ,*I".X$F- 0* 4WX$Bl-  TW=*".X$F12   ,nTARGET5 #/ *",PORTAL_Ý#_#INDEX3\# BRAZIER KEEPER_h#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_#_1#ALTAR_#_2#ALTAR_b#_1#xHALTAR_ #_2#6  WP_#  *",|*",A  &* )! \V" @1 y0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D  )@! /9     NW_L_MEMORY3)@@!3  T NW_L_MEMORY7 NW_L_MEMORY7)@@!2%(-%fA !*  INDEX3  HOME\#(  -6  PORTAL_|#_1# ROLE\#(  M3  *COLOR5 #" 1  .$1  8 =DGANKINGWP_#_5#5NO # # j MOBTARGETWP_#_1#9+e- MOBTARGETWP_z#_1#5*":-i? qi-*":+- # *cc5-9%- z-X WP_DOUBLER?! T]t-xN -Q NPC_v#_#\# #,4(-  BLUE #.BLUE5)-RED  WP_6#_7#?!FUPGANKINGWP_8#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_6#_5#5NO # FUPGANKINGWP_#_5#9GANKINGWP_#_5#5NO #@WP_%#_4#-GANKINGWP_4#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# *BLUE #-RED6*-BLUE  $ "  NPC_#_# MOBLEADERWP_~#_1#3\#    WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#C #f WP_ALTAR_j#_2#+ WP_ALTAR_#_1# #f WP_ALTAR_#_1#NPC_~#_1#@NPC_L#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_Z#_2#<*$B- WP_ALTAR_#_2#NPC_#_6#@NPC_W#_6#<*$B- WP_ALTAR_#_1#@,e WP_CENTRE_C#  *"*OWNER5RED #BLUE # *:  "  " ,4(-  NPC_7#_# MOBMEMBER1WP_ #_1#3\#  NPC_#_# MOBMEMBER2WP_#_1#3\#   E WP_ALTAR_#_1#@! {-8E WP_ALTAR_#_2#@! 8%   WP_ALTAR_ #_#\#)?!/      J2 y =0~-NF #y =w#0CX  y0" A0}-NyN0" AN05 WP_DOUBLER TQ- WP_DOUBLER@! 0)y C)0:yC:06}  y0" CK0-Ny N0" CN0  U  %N %T %Z %`vpTR8  l"TARGET5)?!.|Z # <TARGET5 U %8 % %'c0"y =0Ly=L0Z=y==0TARGET5)?!<TARGET5TARGET5?!5g+-  F #*Q WP_ALTAR_#_1# l " l8"B7o 8" =  .U (_= # &U ( # &&$j #"%%%%| #<TARGET5L b #*Q WP_ALTAR_#_2# l "y ;0- "y ;0l-"y ;0'0"(')?! y \'0'0"(')?! y \'0@a H:yy  :00;yQ;0syQs0eyQe0kyQk0yQ0 " ^ V  INDEX3 %" % ,N4  (,A vN,K% INDEX$3   ,8 4%8 a"!.?!1  8$ "&ALIVE7U-?!,ALIVE7@""@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k  "INDEX3   c NW_WBWMXL009*#*"- )?!({zY # @! $e-A G "Healing  "  _NEEDED# L ,,$  +  |bALIVE3 $$z   g_NEEDED#$m  PAh ENEMIES\#7$J  (_NEEDED#ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED# #r ,#_NEEDED#C\#$o NPC_r#_#\#   %N %Z %l %~G;X0  WP_DOUBLER#  q #*Q WP_ALTAR_#_1# q #*Q WP_ALTAR_#_2# 7 PORTAL_oI#_1# *"!ln&o # $$  >3    iTARGET6 " $$  ]aTARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6  T11_TASK3  T11_TARGET6!3 T11_TARGET6R -- Oz  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @yfsz:Kc! NW_L_COMBATDIFF7* "K s K*$uc $9 znNW_GENERIC_LAST_ATTACK_TARGET:?ec NPC_b(#_3# #3NPC_a#_5# # @ ɖ ,cJ-R ,c_,cK NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z(dTA ,cO(*+(PP -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%cX2d(((C((  (-((((H27d2  yW 0Dc wk *       *" i)@!H  )@@!*     *( % $  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSE۰ X2_L_BEH_COMPASSIONq    12 N" ,c cd  dj-b   ,c PB ,c82 2  2  B NW_L_MEMORY7y ,ct ,c8 ,c ,c2 2  2   NW_L_MEMORY7U       @,c3 ,c ,c$ ,cy ,c= ,c ,c9 ,c ,cE% ,c+ ,c2  NW_L_MEMORY70 ,c?5t ,c NW_L_MEMORY7< ,c? ,cUK,cT11_TASK3 #@! "P@E ,c*    %N %^ %n %~~X `2 n: Y[ H "5@ "nAr %Q-*=O@  " @ :m@y "6$e  S $e  $eBy "# "> " B"#&*@\@  )B !     )A ! L$cI)B !  L;F$b)A!  Le$bG)B !  LsD$a)A!  Lk$aE)A!  LB$` )A! v  L=$_#)BH!)A! 8$_h%_1hO7$^*~*""S*"$^yc $^=t^CNW_GENERIC_LAST_ATTACK_TARGET:?% ^F<!# # 8!# # 8!#] # V!8!# # V!8 " " FI    9 ]\: #]76 # -\ "  wU # $1 # $ # $u # $ ,)A!8 STONESKIN|5TRUE # TO,},)B !TZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #q"NJ a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_#_1#  NPC_#_7#  9)?!.?)?!.)?!.)?!.vd ".N8 M)?!9'2  NPC_#_2#  NPC_n#_6#  )A !:: U %N %r % %,c  ,c z 2,c @E,c b{},c d28 %N %8 %P %:bd4d")@!d $9 ,cbd P&*@@   $w ,c^ $; ,c $e ,cD $s ,c& $kK ,ct $ ,c  8  $=[ ,c " ,c   ,cZ,c&,c?,c,,cz,c>,c4  C ,c8 )@!+n  ')@!+  U PU 21d  2  m2- NPC_#_1# ""mNPC_{#_2# ""NPC_&#_3# ""NPC_#_4# ""nNPC_|#_5# ""NPC_'#_6# "MORDERS3  -NPC_#_7# ""D-& NPC_3#_1# # -NPC_#_2# #  -NPC_#_3# #  6-NPC_O#_4# # z-NPC_#_5# # -NPC_#_6# # 'R-NPC_k#_7# #  y0" ;0\-:yCBp2  "& "#Ap! Ap!Y! !U    I:0m$?)?!FINALDESTINATION7 AREASLOWER93"z WP_ALTAR_#_2A#B0  AREASLOWER8T7CTARGET8 5 " ! qCTARGET7y9& "@ey=e0-ky=k0V-sy=s0"7CTARGET59 "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET39*-CTARGET3\9 #< & " " .K- "|* ;You'll be next, mage=#- Die you mage@))@!>  !  "#d-)A ! !  % < & " " )A ! .- "'j ;You'll be next, mageY1- Die you mage*  % & "]Ly)A ! IL0-=y&@!I=0 & "y)@@! I0y#y j 2& ""F   -#08$ < & " " )A ! .~- "|  ;You'll be next, mageK#- Die you magev sJ - < & " " .|R- "|  ;You'll be next, mage=#- Die you mage@)@!>  !  "*d-)A ! !  % y0" A0 |}-cyc0" Ac0 y BH  "R& "#Ap! KAp! !   I0$Xu)?!FINALDESTINATION7 AREASLOWER"^3"z WP_ALTAR_#_1A#0  AREASLOWER!7CTARGET!g5 " ! qCTARGET 9& "y " =0-;y=;0-ky=k0V-sy=s0"7CTARGET9sb "c0yE & " ;0-%F-;y#U  =;0-x0"ky =k0V-sy=s0"7CTARGET$9*-CTARGET9 y  *|0BLINDNESS_AND_DEAFNESS at #4y  *v40SPELL_ENERVATION at #%6 w XA\yP    Ap d*Q% Melee attack #]q_-A$i*&(  % Y  vD- ,8  % yq@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 5 *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!  ey ,F;y ,AA'F@        NPC_і#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E  NPC_##_4# # NPC_̼#_1# # NPC_U#_7# # d2d'F@ iNPC_#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #dky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #!uLy L0HAMMER OF THE GODS at #|=y =FLAME STRIKE at #2   NPC_I#_#\#*") !  pNPC_F#_#\#NPC_#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 NPC_#_3# # NPC_#_5# # NPC_L#_2# # NPC_#_6# # dX2'F@ DNPC_#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"i%Ranged attack at #t W  @L-2 9@"U   ,* "1h* ."STAND #bc 2-5c A M10)?!*0 STANCE5 #.<ATTACK S ,c NW_L_MEMORY31c27 %N %z % %((d(-,(H27      *" i)@!H  ( ( *")@@! *     * % $0  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC0 X2_L_BEH_OFFENSE0 X2_L_BEH_COMPASSION0j 0 12 N; ,c id  dJ-1{ ,c2 2  2  B NW_L_MEMORY79 ,c={ ,cDU ,c|J ,c@2 2  2  # NW_L_MEMORY7U       @K,cL ,cwM ,c; ,c ,c@w ,c{N ,c?PX ,cg ,ciN ,cj ,cGz ,c) ,c2  NW_L_MEMORY7 ,cA ,c NW_L_MEMORY7 ,c ,cW,cpO ,cL-} ,c0*   l*"s"1=y:y:-y:n-y:!-y:-y:-y::-y:-y:-y:S-y:8  *"  "   1,*"   "   i+@*",xքgmj $k0"   O.g A8 <= էgmj $k0"   egXi{ , j khz ,3g ,  +3g ,Ӗ  +3g k0"^ ,D  ,c7,c NW_L_MEMORY3d27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT ,cW(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c`2((((C((  (-((((H27d2  0Dc k *       *" i)@!H  )@@!*     *( % $p  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSER X2_L_BEH_COMPASSION  12 N ,cd  dJ-$ ,c2 2  2  B NW_L_MEMORY7 ,c$ ,c" ,c)W ,cb2 2  2   NW_L_MEMORY7U       @*`,c+` ,c, ,c]7 ,c!.  ,c/ ,cF5 ,cmH{ ,c1I ,cY ,c_V ,ce2  NW_L_MEMORY7e ,c? ,c NW_L_MEMORY7q* ,c9t ,c;,ct ,c}w*   TARGET.5   NW_BEHAVIOR_MASTER3 ,8 7*"Zi*"w*" <*" *)A! "W #W  SA gI-"4   / }-gi*"w*" <*" *)@! "tW #W  " D-"/ j "1,1 @\"  WWP_NUM3 ,S-WN_NUM3 ,2  //::////////////////////////////////////////////////// //:: NW_C2_DEFAULT2 /* Default OnPerception event handler for NPCs. Handles behavior when perceiving a creature for the first time. */ //::////////////////////////////////////////////////// #include "nw_i0_generic" #include "games_and_ai" void main() { // * if not runnning normal or better Ai then exit for performance reasons // * if not runnning normal or better Ai then exit for performance reasons if (GetAILevel() == AI_LEVEL_VERY_LOW) return; object oPercep = GetLastPerceived(); int bSeen = GetLastPerceptionSeen(); int bHeard = GetLastPerceptionHeard(); if (bHeard == FALSE) { // Has someone vanished in front of me? bHeard = GetLastPerceptionVanished(); } // This will cause the NPC to speak their one-liner // conversation on perception even if they are already // in combat. if(GetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION) && GetIsPC(oPercep) && bSeen) { SpeakOneLinerConversation(); } // March 5 2003 Brent // Had to add this section back in, since modifications were not taking this specific // example into account -- it made invisibility basically useless. //If the last perception event was hearing based or if someone vanished then go to search mode if ((GetLastPerceptionVanished()) && GetIsEnemy(GetLastPerceived())) { object oGone = GetLastPerceived(); if((GetAttemptedAttackTarget() == GetLastPerceived() || GetAttemptedSpellTarget() == GetLastPerceived() || GetAttackTarget() == GetLastPerceived()) && GetArea(GetLastPerceived()) != GetArea(OBJECT_SELF)) { ClearAllActions(); ActivateDetermineCombatRound(); } } // This section has been heavily revised while keeping the // pre-existing behavior: // - If we're in combat, keep fighting. // - If not and we've perceived an enemy, start to fight. // Even if the perception event was a 'vanish', that's // still what we do anyway, since that will keep us // fighting any visible targets. // - If we're not in combat and haven't perceived an enemy, // see if the perception target is a PC and if we should // speak our attention-getting one-liner. if (GetIsInCombat(OBJECT_SELF)) { // don't do anything else, we're busy //MyPrintString("GetIsFighting: TRUE"); } // * BK FEB 2003 Only fight if you can see them. DO NOT RELY ON HEARING FOR ENEMY DETECTION else if (GetIsEnemy(oPercep) && bSeen) { // SpawnScriptDebugger(); //MyPrintString("GetIsEnemy: TRUE"); // We spotted an enemy and we're not already fighting if(!GetHasEffect(EFFECT_TYPE_SLEEP)) { if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { //MyPrintString("DetermineSpecialBehavior"); DetermineSpecialBehavior(); } else { //MyPrintString("DetermineCombatRound"); SetFacingPoint(GetPosition(oPercep)); SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK); ActivateDetermineCombatRound(); } } } else { if (bSeen) { //MyPrintString("GetLastPerceptionSeen: TRUE"); if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { DetermineSpecialBehavior(); } else if (GetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION) && GetIsPC(oPercep)) { // The NPC will speak their one-liner conversation // This should probably be: // SpeakOneLinerConversation(oPercep); // instead, but leaving it as is for now. ActionStartConversation(OBJECT_SELF); } } else // * July 14 2003: Some minor reactions based on invisible creatures being nearby if (bHeard && GetIsEnemy(oPercep)) { // SpeakString("vanished"); // * don't want creatures wandering too far after noises if (GetDistanceToObject(oPercep) <= 7.0) { // if (GetHasSpell(SPELL_TRUE_SEEING) == TRUE) if (GetHasSpell(SPELL_TRUE_SEEING)) { ActionCastSpellAtObject(SPELL_TRUE_SEEING, OBJECT_SELF); } else // if (GetHasSpell(SPELL_SEE_INVISIBILITY) == TRUE) if (GetHasSpell(SPELL_SEE_INVISIBILITY)) { ActionCastSpellAtObject(SPELL_SEE_INVISIBILITY, OBJECT_SELF); } else // if (GetHasSpell(SPELL_INVISIBILITY_PURGE) == TRUE) if (GetHasSpell(SPELL_INVISIBILITY_PURGE)) { ActionCastSpellAtObject(SPELL_INVISIBILITY_PURGE, OBJECT_SELF); } else { ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 0.5); ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_RIGHT, 0.5); ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD, 0.5); } } } // activate ambient animations or walk waypoints if appropriate if (!IsInConversation(OBJECT_SELF)) { if (GetIsPostOrWalking()) { WalkWayPoints(); } else if (GetIsPC(oPercep) && (GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN) || GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) || GetIsEncounterCreature())) { SetAnimationCondition(NW_ANIM_FLAG_IS_ACTIVE); } } } // Send the user-defined event if appropriate if(GetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT) && GetLastPerceptionSeen()) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_PERCEIVE)); } } NCS V1.0B BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&-  6-"  f@" NW_BEHAVIOR_MASTER3 ,8 7*"Zi*"w*" <*" *)A! "W #W  SA I-"4 7 / }-gi*"w*" <*" *)@! "tW #W  "DD-"/  &  O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @]1YZ !NW_L_COMBATDIFF7* "$4 s' K(*)$(^?c $("K z' WNW_GENERIC_LAST_ATTACK_TARGET:? UXj ,YV  J?*,-NW_ASSOCIATE_MASTER3 ,8  NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H-- gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  }!% ?*   *  * t$A 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  l-" N% - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  G  W&O-&*.:     + -   + C-= + * ,>    X0_L_NOTALLOWEDTOHAVEINVENTORY3         $   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND:  X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &* * E      - m l '  5* *    (*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2  Z3 + gd    ,2   @r-s @<-= @    W ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  " .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 * A" .#*ۚ P$   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & Kgk0"N>  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   +h kk & 5  4gkO  A! 6- " i  EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -E"  % %z %d %N %8 %" % 3E " X3Ej m   t 9    )A(!D6"Y-A66 уY- !52  %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8   ,c ,c NW_L_MEMORY3/27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT.Z ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2  p+"0Dc k *       *" i)@!H  )@@!*     *( % $(  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE( X2_L_BEH_COMPASSION( (   12 N ; ,c d  dj-){   ,c: P/[ ,c2 2  2  B NW_L_MEMORY707 ,c4 ,c;z ,cA ,cb2 2  2   NW_L_MEMORY7U       @B,cC ,cE ,c] ,c!F ,cH ,c^ ,cm` ,c1bn ,cr? ,cw ,ce2  NW_L_MEMORY7} ,c2 ,c NW_L_MEMORY7 ,c9 ,c,cU ,c}*   k k  k  k  k  k  k  k  k  1 2    3gNӋ-3gNJ   ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   A!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"*?c#A )@@!,0* ,*b ,8 *    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   pQ%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !1   S F BHA*  _ " "  ! Bp!@@! "Az    %" % &2  UUWd  Wd  g "-   "'-U W ,C  V-  a 0"x Q3> &   F    ,2  3 .8 8l9: <$0m0   ? QM ,2  $ymy  XyZy \y  y y !   t&*"O&*"H f6 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]F\ *",*" *",ErA , 07 @ 1 * 2g " 1  PO k ,hgPk&*k  G- '1+-1 2 " gP/$&2 @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q10@p UX % %! %= %' %C % %   r N *  V1      ".-@vv %?*8g&@  VX,gV,|$H &  *L " "   z"!b "  $ jk 0 ,i-  ,z2 5 W'@ppa %?*4g@7 V,gV,|$ I,Ԝ,AV,xw,2  }Y g"i ~g - T,>  Eg"i g - kZ   ,,> 9}g"w8g",jk 0" N,8 Z((  g    #g&i 4 H- g&  4 -wg& ' 4 $ jk o0"N- o"NJ-> l*)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $f*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER A g. g.j  FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 l*"Bytyg*    :  h@! ; :  !--[?*)?6-6D  y4-[y4[-y4M-y4 O2Y0 u)*",* %,(-6 qtg+j $k0" k" j  j kts{gX ,/rg+j $k0" k" j  j kr- qq`g+j $k0" k" j  j k}q Aog+j $k0" k" j  j kongX ,D @* $@r  :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j nj $k0" k""  f`j k -   $3j nj $k0" k\"  `j kDh  j k) z  ^  C  UX 1[ ",i<-  -V0- Pf8 e,*"%,*#@! @ tdg+j $k0" k" j  j kd}9-@U | cHg3j $k0" k" j  j ke,E6-agX! ,D * "  $L _U*".1*@2@   t^g+j $k0" k" j  j k^-  ][g3j $k0" k" j  j kxD@6rp-[g+j $k0" k" j  j k[-)@!Z^gX ,P &W:"#/  ,7: < E A 9=; V  2  2Y  2  2    OF:?&D 6y*)A! #,'" $$5J *"  "   1,*"   "   i%*",1RhRg @H <Q RKg  gmj $k0"   PQXgl @ P)Pgmj $k0"   j kPq ,3g ,O  +3g ,OE  + 3g ,N  +3g k0"^N1 ,D * ,r 1(    "J  "   *  6   &  J r>  *,*"   " BlJ  *"  " q Wi*" @!"""    "   =,*"   "   u&*",Ht?@!K! c8# x2_hen_valen #  @@       O.'Uc-   c.&i7-  c.&= J-  9.%wAsAg SC  P PB"6-V-/$B2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 * f)!*  )!d,n-   ,pJ  *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3;D;g  <#NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <(   $        " A # f# *  4A?X2_L_WAYPOINT_SETFACING3 5,$  &,$l & wX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-iwX2_S_SLEEP_AT_NIGHT_SCRIPT5 # iw** ,8 NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_GENERIC_MASTER3 ,8 NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@3K" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-9j# :}r-$ D  WP_CUR7 ,n\#6 @"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$ COLOR5 "wf- "a2- "K- "#- "<- "<b- "B.- "Z- "kb- "kL- "^- "*- "?- "e- "G- "jZ- "!&- " - "- "- "V- "v"- "- " $- "8)- "8R- "ks- BRAZIER*",TEAM_#3 ,:   INDEX3COLOR5BLUEBLUE #!RED@ WP_DOUBLER% % % %x % %  % I %[Ge@ :y C0-y C0Kz-ey Ce0- ey CB0Q-@   sy Cs0mL-ky Ck0-sy Cs0-y C0S2-NPC_#_3#N0"#@! CN0kN0"AN0NPC_#_4#N0"#@! CN0 a0 $ WP_ALTAR_#_1#!-A G@0,@Z  - @.NPC_#_3# #"@( C"0 EP _ 0g ;F ,gv NPC_#_3# #5NPC_#_5# # a0I.W.I.N. Button y C0- %" %Ct0=0  - %" %Ct0=0;v0,@   -4 WP_ALTAR_#_2#!-:~+,W9W~@ :wy Cw0- y C0 6-y C0-y C0Mz-By CB0-@@   ;y C;08-sy Cs0-y C0c|-y C0-K %" %Ct0=0x Q) "A! 1"V 8-$P)P WP_DOUBLER@!,: NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   21!d& (U Dz ,  BRAZIER MY_NUMBER*3ROLE_L#_#\#3 j ?!C *U ,*I".4X$F- 0* 4P5X$Bl-  T=*".CX$F12   %FTARGET5 #/ *",PORTAL_#_#INDEX3\# BRAZIER KEEPER_#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_1#_1#ALTAR_#_2#ALTAR_#_1#xHALTAR_#_2#6  WP_#  *",|*",A  &* )! \" @1y0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D w )@! /9     NW_L_MEMORY3)@@!+  T NW_L_MEMORY7 NW_L_MEMORY7)@@!2%(-%fA !*  INDEX3  HOME\#(  -6  PORTAL_#_1# ROLE\#(  M3  *COLOR5m #" 1  .$1  8 =DGANKINGWP_#_5#5NO # # j MOBTARGETWP_#_1#9+e- MOBTARGETWP_z#_1#5*":-i? qi-*":- # *cc5-9%- z-X WP_DOUBLER?! T]t-xN -) NPC_v#_#\# #,4(-  9BLUE #.BLUE5)-RED  WP_6#_7#?!FUPGANKINGWP_8#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_6#_5#5NO # FUPGANKINGWP_#_5#9GANKINGWP_#_5#5NO #@WP_%#_4#-GANKINGWP_4#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# BLUE #-RED6*-BLUE  $ "  NPC_#_# MOBLEADERWP_~#_1#3\#    WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#C #f WP_ALTAR_j#_2#+ WP_ALTAR_#_1# #f WP_ALTAR_#_1#NPC_~#_1#@NPC_L#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_Z#_2#<*$B- WP_ALTAR_#_2#NPC_#_6#@NPC_W#_6#<*$B- WP_ALTAR_#_1#@,e WP_CENTRE_C#  *"*OWNER5RED #BLUE # *:  "  " ,4(-  NPC_7#_# MOBMEMBER1WP_ #_1#3\#  NPC_#_# MOBMEMBER2WP_#_1#3\#   E WP_ALTAR_#_1#@! {-8E WP_ALTAR_#_2#@! 8%   WP_ALTAR_ #_#\#)?!/     o J2 y =0~-NF #y =w#0x; k y0" A0}-NyN0" AN05 WP_DOUBLER TQ- WP_DOUBLER@! 0)y C)0:yC:06u  y0" CK0-Ny N0" CN0  U  %N %T %Z %`vpTR8  ltTARGET5)?!.| # <TARGET5 U %8 % %'c0"y =0Ly=L0Z=y==0TARGET5)?!<TARGET5TARGET5?!5?+-  #*Q WP_ALTAR_#_1# l " l8k"B/ 8" =  .U ( # &U (M+ # &&$ #"%%%%|5 #<TARGET5$  #*Q WP_ALTAR_#_2# l "y ;0- "y ;0l-Z"y ;0'0"(')?! y \'0'0"(')?! y \'0@Z{ H:yy  :00;yQ;0syQs0eyQe0kyQk0yQ0 "` 6 V  INDEX3 %" % ,N4 q (,A n,K% INDEX$3   ,8 48 a"!.?!1  8$ "&ALIVE7U-?!,ALIVE7@""@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k  "INDEX3   c NW_WBWMXL009*#*"- )?!({{ # @! $e-A G ږ"Healing  "  _NEEDED# L ,,$  +  |bALIVE3 $$z   g_NEEDED#$m  PAh ENEMIES\#7$J  (_NEEDED#ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED# #r ,#_NEEDED#C\#$o NPC_s#_#\#   %N %Z %l %~G;X0  WP_DOUBLER#  s #*Q WP_ALTAR_#_1# ra #*Q WP_ALTAR_#_2# 7 PORTAL_p#_1# *"!lopc # $$  >3    iTARGET6 " $$  ]aTARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6  T11_TASK3  T11_TARGET6!3 T11_TARGET6R -- Or  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @r>ssK; NW_L_COMBATDIFF7* "# ss Kz*$Mc $k: z|FNW_GENERIC_LAST_ATTACK_TARGET:?] NPC_c#_3# #3NPC_c>#_5# # @ n ,cJ-* ,c7,cK NW_L_MEMORY3ۚ27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z(dT ,cO(*+(PP -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%cX2d(((C((  (-((((H27d2  r/0Dc wk *       *" i)@!H  )@@!*     *( % $Ԧ  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSEԈ X2_L_BEH_COMPASSIONI Ժ   12 N ,c cd  dj-:   ,c P ,c82 2  2  B NW_L_MEMORY7 ,ct ,c8# ,c ,c2 2  2   NW_L_MEMORY7U       @,c3  ,c_ ,c ,cy ,c=  ,c ,c  ,c- ,cE ,c# ,c2  NW_L_MEMORY7)W ,c?- ,c NW_L_MEMORY75e ,c8Y ,cUDv,cT11_TASK3 #@! "P8 ,cSG*    %N %^ %n %~~X `2 n: R3 H "5@ "nAJ %Q-5@  " @ :E@y "648  u?!& " #U  ,z^$  %d % % % %TB=ӛ WP_DOUBLERvIllegal waypoint index: \#A WP_DOUBLER  $v30  " "1!  8$ C % % % %  %4 %] %NPC_#_1#NPC_#_2#NPC_#_3#uNPC_#_4#6NPC_#_5#NPC_#_6#NPC_#_7#yIllegal enemy index: \# NPC_BLUE_1 )!$ &@!,X? COLOR5 # FA  "V,@Ejp" @ . "7@ "nA. %Q-(@x" @) A[ "68   ALTAR_BOY3BM B  1SKIPPERu3$    %A! 1  1" w"     "    "Found weaker enemy! Changing from # (#\#) to ## (#\#)#$SKIPPERq7  KKK)))NPC_5O#_1# # -NPC_5#_2# # L-NPC_4#_3# # -NPC_4k#_4# # -NPC_4#_5# # h-NPC_3#_6# # - % % %p % % % %9 #e_9 #V 89B GFFF))))1@!'1-B@@!'1-B@@!'1-B@ "- "-11 "- NPC_.s#_3# "9NPC_.$#_5# " Retreat3 "4 4 4 4 ^  6_ $ " )A! A _O21  %2   >$^ S $^f  $^y "# "> " B"#&*@@  )B !     )A ! L$[I)B !  L;$[i)A!r  Le$ZG)B !  Ls$Zg)A!p  Lk$YE)A!  L$Ye )A! N  L=y$X#)BH!)A! 8N$X@%X hO0$W*~*""S*"$WQc $WtV<NW_GENERIC_LAST_ATTACK_TARGET:?4 ^F<!# # 8!# # 8!#] # V!8!# # V!8 " " F!    9 ]\ #]76 # -\ "  w # $1n # $( # $u # $ ,5)A!8 STONESKIN5TRUE # T,},F)B !TZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #qZ"N" a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_3#_1#  NPC_#_7#  9)?!.?)?!.)?!.)?!.vd ".N8 M)?!9'2  NPC_#_2#  NPC_#_6#  )A !:t: U %N %r % %,c  ,c z 2,c @E,c btU,c d2 %N %8 %P %:bd4d")@!d $ ,cbd P&*@@9   $w ,c6 $;[ ,c $e ,cDf $s ,c $k# ,ct $~ ,c    $=~3 ,c "} ,c   { ,cZ,c&',c,cȩ,cz؂,c>,c    ,c8 m)@!+F  )@!+  U U 21d  2  f -  NPC_/#_1# "" ENPC_#_2# "" NPC_#_3# "" NPC_0#_4# "" FNPC_#_5# "" NPC_#_6# "MORDERS3  - qNPC_#_7# "" -  NPC_#_1# # -NPC_F#_2# #  -NPC_#_3# #  6-NPC_#_4# # z-NPC_b#_5# # -NPC_#_6# # 'R-NPC_#_7# #  y0" ;0\-:yCBp+  "& "#Ap! Ap!Y! !U    I:0m$?)?!FINALDESTINATION7 AREASLOWER93"z WP_ALTAR_#_2A#B0  AREASLOWER8T7CTARGET8 5 " ! qCTARGET7y9& "@ey=e0-ky=k0V-sy=s0"7CTARGET59 "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET39*-CTARGET3\9 < & " " .- "|* ;You'll be next, mage=#- Die you mage@!)@!>  !  "d-)A ! !  % < & " " )A ! .- "'j ;You'll be next, mageY1- Die you mage*q  % & "]Ly)A ! IL0-=y&@!I=0 & "y)@@! I0y#y j 2& ""F   -#08$  < & " " )A ! .z- "|  ;You'll be next, mageK#- Die you mage l" -< & " " .- "|  ;You'll be next, mage=#- Die you mage@)@!>  !  "קd-)A ! !  % y0" A0 |}-cyc0" Ac0 y BH  "R& "#Ap! KAp! !   I0$Xu)?!FINALDESTINATION7 AREASLOWER"^3"z WP_ALTAR_6#_1A#0  AREASLOWER!7CTARGET!g5 " ! qCTARGET 9& "y " =0-;y=;0-ky=k0V-sy=s0"7CTARGET9 "c0yE & " ;0-%F-;y#U  =;0-x0"ky =k0V-sy=s0"7CTARGET$9*-CTARGET9 y  *|0BLINDNESS_AND_DEAFNESS at #4y  *v40SPELL_ENERVATION at #%6 w XA\yP    Ap d*Q% Melee attack #]q_-A$i*&(  % Y  vD- ,8  % yq@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 5 *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!  ey ,F;y ,AA'F@        NPC_#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E  NPC_΂#_4# # NPC_#_1# # NPC_ʹ#_7# # d2d'F@ iNPC_]#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #dky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #!uLy L0HAMMER OF THE GODS at #|=y =FLAME STRIKE at #2   NPC_è#_#\#*") !  pNPC_¥#_#\#NPC_p#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 NPC_y#_3# # NPC_#_5# # NPC_#_2# # NPC_D#_6# # dX2'F@ DNPC_#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_^#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"i%Ranged attack at #t /  @L-2 9@"U   ,* " h* ."STAND #bc 2-5c  %10)?!*0 STANCE5 #.<ATTACK + ,c NW_L_MEMORY3*;27 %N %z % %((d(-,(H27      *" i)@!H  ( ( *")@@! *     * % $)  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE) X2_L_BEH_COMPASSION)B ) 12 N  ,c id  dJ-*S ,c2 2  2  B NW_L_MEMORY71 ,c5 ,c< ,c|C+ ,c@2 2  2  # NW_L_MEMORY7U       @D4,cE4 ,cwFv ,c;f ,c ,c@w ,c{G\ ,c?H ,c_ ,ca ,ccB ,cGs ,cx ,c2  NW_L_MEMORY7~l ,cA ,c NW_L_MEMORY7z ,cn ,cW,ch ,cL-vj ,cZ*   l*""1y:y:-y:n-y:!-y:-y:-y::-y:-y:-y:S-y:8  *"  "   1,*"   "   i*",x\gmj $k0"   OΜg A1| < gmj $k0"   =ͧgXa , j k`͚ ,3g ,  +3g ,n  +3g k0"^ ,D h ,c7,c NW_L_MEMORY3<27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT  ,cW(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c`2((((C((  (-((((H27d2   0Dc k *       *" i)@!H  )@@!*     *( % $H  -X2_L_STOPCASTING3   X2_L_BEH_MAGICf X2_L_BEH_OFFENSE* X2_L_BEH_COMPASSION \ 12 N ,cd  dJ- ,c2 2  2  B NW_L_MEMORY78 ,c ,c{ ,c! ,cb2 2  2   NW_L_MEMORY7U       @",c# ,c% ,c] ,c!& ,c( ,c> ,cm@ ,c1Bo ,cR@ ,cW ,ce2  NW_L_MEMORY7] ,c? ,c NW_L_MEMORY7i ,c9l ,cx,cmV ,c}*   TARGET.5  } //:://///////////////////////////////////////////// //:: Default: End of Combat Round //:: NW_C2_DEFAULT3 //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* Calls the end of combat script every round */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Oct 16, 2001 //::////////////////////////////////////////////// #include "NW_I0_GENERIC" #include "GAMES_AND_AI" void main() { if (GetBehaviorState( NW_FLAG_BEHAVIOR_SPECIAL )) { DetermineSpecialBehavior(); } else if (!GetSpawnInCondition( NW_FLAG_SET_WARNINGS )) { ActivateDetermineCombatRound(); } if (GetSpawnInCondition( NW_FLAG_END_COMBAT_ROUND_EVENT )) { SignalEvent( OBJECT_SELF, EventUserDefined( 1003 ) ); } } NCS V1.0BK BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&- B-H-$*" -~" $   #H- "& y NW_ATTACK_MY_TARGETNW_I_WAS_ATTACKED" NW_GENERIC_MASTER3 ,-@ ,- ,vD- ,8 NW_GENERIC_MASTER3   6c NW_GENERIC_START_POINT,5, & @,?@ &-@ ~EXIT_#?,? &-- EXIT_#?NW_GENERIC_START_POINT,5,V & @,? &  NW_GENERIC_MASTER3 ,8 NW_GENERIC_MASTER3 b NW_GENERIC_MASTER7n- V NW_GENERIC_MASTER7  4NW_ATTACK_MY_TARGET- <NW_GENERIC_START_POINTT- <NW_GENERIC_START_POINT iw** ,8 NW_BEHAVIOR_MASTER3 ,8 ENC_#* *"Zi*"w*" <*" *)A! "W #W  SA I-"4 7 / }-gi*"w*" <*" *)@! "tW #W  "DD-"/  &  O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @]1YZ !NW_L_COMBATDIFF7* "$4 s' K(*)$(^?c $("K z' WNW_GENERIC_LAST_ATTACK_TARGET:? UXj ,YV  J?*,-NW_ASSOCIATE_MASTER3 ,8  NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H-- gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  }!% ?*   *  * t$A 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  l-" N% - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  G  W&O-&*.:     + -   + C-= + * ,>    X0_L_NOTALLOWEDTOHAVEINVENTORY3         $   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND:  X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &* * E      - m l '  5* *    (*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2  Z3 + gd    ,2   @r-s @<-= @    W ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  " .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 * A" .#*ۚ P$   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & Kgk0"N>  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   +h kk & 5  4gkO  A! 6- " i  EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -E"  % %z %d %N %8 %" % 3E " X3Ej m   t 9    )A(!D6"Y-A66 уY- !52  %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8   ,c ,c NW_L_MEMORY3/27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT.Z ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2  p+"0Dc k *       *" i)@!H  )@@!*     *( % $(  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE( X2_L_BEH_COMPASSION( (   12 N ; ,c d  dj-){   ,c: P/[ ,c2 2  2  B NW_L_MEMORY707 ,c4 ,c;z ,cA ,cb2 2  2   NW_L_MEMORY7U       @B,cC ,cE ,c] ,c!F ,cH ,c^ ,cm` ,c1bn ,cr? ,cw ,ce2  NW_L_MEMORY7} ,c2 ,c NW_L_MEMORY7 ,c9 ,c,cU ,c}*   k k  k  k  k  k  k  k  k  1 2    3gNӋ-3gNJ   ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   A!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"*?c#A )@@!,0* ,*b ,8 *    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   pQ%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !1   S F BHA*  _ " "  ! Bp!@@! "Az    %" % &2  UUWd  Wd  g "-   "'-U W ,C  V-  a 0"x Q3> &   F    ,2  3 .8 8l9: <$0m0   ? QM ,2  $ymy  XyZy \y  y y !   t&*"O&*"H f6 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]F\ *",*" *",ErA , 07 @ 1 * 2g " 1  PO k ,hgPk&*k  G- '1+-1 2 " gP/$&2 @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q10@p UX % %! %= %' %C % %   r N *  V1      ".-@vv %?*8g&@  VX,gV,|$H &  *L " "   z"!b "  $ jk 0 ,i-  ,z2 5 W'@ppa %?*4g@7 V,gV,|$ I,Ԝ,AV,xw,2  }Y g"i ~g - T,>  Eg"i g - kZ   ,,> 9}g"w8g",jk 0" N,8 Z((  g    #g&i 4 H- g&  4 -wg& ' 4 $ jk o0"N- o"NJ-> l*)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $f*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER A g. g.j  FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 l*"Bytyg*    :  h@! ; :  !--[?*)?6-6D  y4-[y4[-y4M-y4 O2Y0 u)*",* %,(-6 qtg+j $k0" k" j  j kts{gX ,/rg+j $k0" k" j  j kr- qq`g+j $k0" k" j  j k}q Aog+j $k0" k" j  j kongX ,D @* $@r  :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j nj $k0" k""  f`j k -   $3j nj $k0" k\"  `j kDh  j k) z  ^  C  UX 1[ ",i<-  -V0- Pf8 e,*"%,*#@! @ tdg+j $k0" k" j  j kd}9-@U | cHg3j $k0" k" j  j ke,E6-agX! ,D * "  $L _U*".1*@2@   t^g+j $k0" k" j  j k^-  ][g3j $k0" k" j  j kxD@6rp-[g+j $k0" k" j  j k[-)@!Z^gX ,P &W:"#/  ,7: < E A 9=; V  2  2Y  2  2    OF:?&D 6y*)A! #,'" $$5J *"  "   1,*"   "   i%*",1RhRg @H <Q RKg  gmj $k0"   PQXgl @ P)Pgmj $k0"   j kPq ,3g ,O  +3g ,OE  + 3g ,N  +3g k0"^N1 ,D * ,r 1(    "J  "   *  6   &  J r>  *,*"   " BlJ  *"  " q Wi*" @!"""    "   =,*"   "   u&*",Ht?@!K! c8# x2_hen_valen #  @@       O.'Uc-   c.&i7-  c.&= J-  9.%wAsAg SC  P PB"6-V-/$B2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 * f)!*  )!d,n-   ,pJ  *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3;D;g  <#NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <d   $        "3 _#.# 1*  04A?X2_L_WAYPOINT_SETFACING3 5,$  &,$l &wX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-1wX2_S_SLEEP_AT_NIGHT_SCRIPT5 # NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@ ")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@3" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-j# :}r-$ D  WP_CUR7 ,n\#6 @"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$ COLOR5 "wf- "a2- "K- "#- "<- "<b- "B.- "Z- "kb- "kL- "^- "*- "?- "e- "G- "jZ- "!&- " - "- "- "V- "v"- "- " $- "8)- "8R- "ks-: BRAZIER*",TEAM_#3 ,:   INDEX3COLOR5BLUEBLUE #!RED@ WP_DOUBLER% % % %x % %  % I %[I1f@ :y C0-y C0Kz-ey Ce0- ey CB0Q-@   sy Cs0mL-ky Ck0-sy Cs0-y C0S2-NPC_#_3#N0"#@! CN0kN0"AN0NPC_#_4#N0"#@! CN0 a0 $ WP_ALTAR_#_1#!-?BYst GB70,@Z  -X AlNPC_#_3# #"@( C"0 EP _ 0i ;F ,h NPC_#_3# #5NPC_#_5# # a0I.W.I.N. Button y C0- %" %Ct0=0  - %" %Ct0=0<0,@   -4 WP_ALTAR_#_2#!-O;iW;-X@ :wy Cw0- y C0 6-y C0-y C0Mz-By CB0-@   ;y C;08-sy Cs0-y C0c|-y C0-ޣ %" %Ct0=0z S=) "A! 1"V 8-$R0)Q WP_DOUBLER@!,: NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   21!d& (<U D ,  BRAZIER MY_NUMBER*3ROLE_#_#\#3 j ?!C *U ,*I".X$F- 0* 4QX$Bl-  T,=*".X$F12   &TARGET5 #/ *",PORTAL_#_#INDEX3\# BRAZIER KEEPER_g#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_#_1#ALTAR_#_2#ALTAR_a#_1#xHALTAR_#_2#6  WP_#  *",|*",A  &* )! \g" @1Py0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D  )@! /9   ?  NW_L_MEMORY3)@@!-4  T NW_L_MEMORY7 NW_L_MEMORY7)@@!2%(-%fA !* G INDEX3  HOME\#(  -6  PORTAL_{#_1# ROLE\#(  M3  *COLOR5 #" 1  .$1  8 =DGANKINGWP_#_5#5NO # # j MOBTARGETWP_#_1#9+e- MOBTARGETWP_z#_1#5*":-i? qi-*":[- # *cc5-9%- z-X WP_DOUBLER?! T]t-xN - NPC_v#_#\# #,4(-  BLUE #.BLUE5)-RED  WP_6#_7#?!FUPGANKINGWP_8#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_6#_5#5NO # FUPGANKINGWP_#_5#9GANKINGWP_#_5#5NO #@WP_%#_4#-GANKINGWP_4#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# )BLUE #-RED6*-BLUE  $ "  NPC_#_# MOBLEADERWP_~#_1#3\#    WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#C #f WP_ALTAR_j#_2#+ WP_ALTAR_#_1# #f WP_ALTAR_#_1#NPC_~#_1#@NPC_L#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_Z#_2#<*$B- WP_ALTAR_#_2#NPC_#_6#@NPC_W#_6#<*$B- WP_ALTAR_#_1#@,e WP_CENTRE_C#  *"*OWNER5RED #BLUE # *:  "  " ,4(-  NPC_7#_# MOBMEMBER1WP_ #_1#3\#  NPC_#_# MOBMEMBER2WP_#_1#3\#   E WP_ALTAR_#_1#@! {-8E WP_ALTAR_#_2#@! 8%   WP_ALTAR_ #_#\#)?!/  E    J2 y =0~-NF #y =w#0yr=-  y0" A0}-NyN0" AN05 WP_DOUBLER TQ- WP_DOUBLER@! 0)y C)0:yC:06v J y0" CK0-Ny N0" CN0  U  %N %T %Z %`vpTR8 4 lTARGET5)?!.|Y # <TARGET5 U %8 % %'c0"y =0Ly=L0Z=y==0TARGET5)?!<TARGET5TARGET5?!5+-K E #*Q WP_ALTAR_#_1# l "4 l8"B1D 8M" =  .U (^< # &U ( # &&$i #"%%%%| #<TARGET5| a #*Q WP_ALTAR_#_2# l "y ;0- "y ;0l-"y ;0'0"(')?! y \'0'0"(')?! y \'0@[ H:yy  :00;yQ;0syQs0eyQe0kyQk0yQ0 "  V  INDEX3 %" % ,N4  (,A p#,K% INDEX$3   ,8 4U8 a"!.?!1  8$ "&ALIVE7U-?!,ALIVE7@""@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k  "INDEX3   c NW_WBWMXL009*#*"- )?!({sX # @! $e-A G "Healing  "  _NEEDED# L ,,$  +  |bALIVE3 $$z   g_NEEDED#$m  PAh ENEMIES\#7$J  (_NEEDED#ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED# #r ,#_NEEDED#C\#$o NPC_k#_#\#   %N %Z %l %~G;X0  WP_DOUBLER#  j #*Q WP_ALTAR_#_1# j #*Q WP_ALTAR_#_2# 7 PORTAL_hH#_1# *"!lg%h # $$  >3    iTARGET6 " $$  ]aTARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6  T11_TASK3  T11_TARGET6!3 T11_TARGET6R -- Ot5  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @sstjKQ NW_L_COMBATDIFF7* "{ s K*H$c $il z}NW_GENERIC_LAST_ATTACK_TARGET:?_8 NPC_['#_3# #3NPC_Z#_5# # @  ,cJ-Â ,cƏ,cK NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z(dTq ,cO(*+(PP -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%cX2d(((C((  (-((((H27d2  s90Dc wk *       *" i)@!H  )@@!*     *( % $  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSE X2_L_BEH_COMPASSIONա    12 NR ,c cd  dj-֒   ,c Pr ,c82 2  2  B NW_L_MEMORY7N ,cth ,c8{ ,cU ,c2 2  2   NW_L_MEMORY7U       @,c3  ,c ,c ,cy ,c=c ,c ,c ,c ,cEV ,c$ ,c2  NW_L_MEMORY7* ,c?/I ,c NW_L_MEMORY76 ,c9 ,cUE,cT11_TASK3 #@! "P: ,cT*   3 %N %^ %n %~~X `2 n: S H "5@ "nAĢ %Q-Z7$@  " @ :Ý@y "66-8  u?!& " #U  ,z^$  %d % % % %TB=ӛ WP_DOUBLERvIllegal waypoint index: \#A WP_DOUBLER  $v30  " "1!  8$ ;y % % % %  %4 %] %NPC_#_1#NPC_#_2#NPC_#_3#uNPC_#_4#6NPC_#_5#NPC_#_6#NPC_#_7#yIllegal enemy index: \# NPC_BLUE_1 )!$ &@!,X6COLOR5 # FA  "V@Ejp" @ . "7@ "nA %Q->*@x" @ A[ "68   ALTAR_BOY3C Cb 1SKIPPERu3$    %A! 1  1" w"     "    "Found weaker enemy! Changing from # (#\#) to ## (#\#)#$SKIPPERq7  MJMLp)))NPC_,#_1# # -NPC_,#_2# # L-NPC_,W#_3# # -NPC_, #_4# # -NPC_+#_5# # h-NPC_+s#_6# # - % % %p % % % %C9 #e_9 #V 8: HhH8HG))))1@!'1-B@@!'1-B@@!'1-B@ "- "-11 "- NPC_&#_3# "9NPC_%#_5# " Retreat3 "6S 6/ 6 5 `  6a $ " )A! A `21  %2   >$`< S $_  $_ry "# "> " B"#&*@1@  )B !     )A ! L$]BI)B !K  L;v$\)A!  Le$\@G)B !I  Lst$[)A!  Lk$[>E)A!G  Lr$Z )A!   L=$Z#)BH!)A! 8ʦ$Y%YahO1$Y#*~*""S*"$Xc $XmtXO=NW_GENERIC_LAST_ATTACK_TARGET:? ^F<!# # 8!# # 8!#] # V!8!# # V!8 " " Fy M   9 ]\9 #]76 # -\ "  wT # $1 # $ # $u # $ ,)A!8 STONESKINQ5TRUE # T$,},)B !TuZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #q"Nz a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_#_1#  NPC_#_7#  9)?!.?)?!.)?!.)?!.vd ".N8 M)?!9'2  NPC_ #_2#  NPC_ m#_6#  )A !:: U %N %r % %,c  ,c z 2,c @E,c bu,c d2h %N %8 %P %:bd4d")@!dD $i ,cbd P&*@@   $w ,c $; ,c& $eK ,cD $s ,cV $k{ ,ct $ ,c  h  $= ,c "% ,ct d  ,cZ,c&,c,c,cz,c>u,ce  l  ,c8 )@!+  W)@!+0  U %U 21d  2  gb- NPC_#_1# ""NPC_z#_2# ""HNPC_%#_3# "" NPC_#_4# "" NPC_{#_5# "" INPC_&#_6# "MORDERS3  - NPC_#_7# "" t- V NPC_2#_1# # -NPC_#_2# #  -NPC_#_3# #  6-NPC_N#_4# # z-NPC_#_5# # -NPC_#_6# # 'R-NPC_j#_7# #  y0" ;0\-:yCBp-# * "& "#Ap! Ap!Y! !U    I:0m$?)?!FINALDESTINATION7 AREASLOWER93"z WP_ALTAR_#_2A#B0  AREASLOWER8T7CTARGET8 5 " ! qCTARGET7y9& "@ey=e0-ky=k0V-sy=s0"7CTARGET59U "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET39*-CTARGET3\9 S< & " " . - "|* ;You'll be next, mage=#- Die you mage@#C)@!>  !  "d-)A ! !  % < & " " )A ! .^- "'j ;You'll be next, mageY1- Die you mage*  % & "]Ly)A ! IL0-=y&@!I=0 & "y)@@! I0y#y j 2& ""F   -#08$  K< & " " )A ! .- "|  ;You'll be next, mageK#- Die you mageK m z -E< & " " .- "|  ;You'll be next, mage=#- Die you mage@J)@!>  !  "d-)A ! !  % y0" A0 |}-cyc0" Ac0 y BH1 8 "R& "#Ap! KAp! !   I0$Xu)?!FINALDESTINATION7 AREASLOWER"^3"z WP_ALTAR_#_1A#0  AREASLOWER!7CTARGET!g5 " ! qCTARGET 9& "y " =0-;y=;0-ky=k0V-sy=s0"7CTARGET9$ "c0yE & " ;0-%F-;y#U  =;0-x0"ky =k0V-sy=s0"7CTARGET$9*-CTARGET9 y  *|0BLINDNESS_AND_DEAFNESS at #4y  *v40SPELL_ENERVATION at #%6 w XA\yP    Ap d*Q% Melee attack #]q_-A$i*&(  % Y  vD- ,8  % y q@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 5 *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!  ey ,F;y ,AA'F@        NPC_ʕ#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E  NPC_"#_4# # NPC_Ż#_1# # NPC_T#_7# # d2d'F@ iNPC_#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #dky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #!uLy L0HAMMER OF THE GODS at #|=y =FLAME STRIKE at #2   NPC_H#_#\#*") !  pNPC_E#_#\#NPC_#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 NPC_#_3# # NPC_#_5# # NPC_K#_2# # NPC_#_6# # dX2'F@ DNPC_#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"i%Ranged attack at #t   @,L-2 9@"U   ,* " ah* ."STAND #bc 2-5c D }10)?!*0 STANCE5 #.<ATTACK  ,c NW_L_MEMORY3+27 %N %z % %((d(-,(H27      *" i)@!H  ( ( *")@@! *     * % $*  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC+ X2_L_BEH_OFFENSE* X2_L_BEH_COMPASSION* +  12 N k ,c id  dJ-+ ,c2 2  2  B NW_L_MEMORY72 ,c7P ,c>* ,c|D ,c@2 2  2  # NW_L_MEMORY7U       @E,cF ,cwG ,c;ھ ,c ,c@w ,c{H ,c?J- ,c` ,cc# ,cd ,cGtk ,cy ,c2  NW_L_MEMORY7 ,cA ,c NW_L_MEMORY7 ,c ,cW,cj$s ,cL-w ,c*   l*""1my:y:-y:n-y:!-y:-y:-y::-y:-y:-y:S-y:8  *"  "   1,*"   "   i*",xдgmj $k0"   O^g A2 <m gmj $k0"   ΕgXcP , j kbO ,3g ,J  +3g ,  +3g k0"^6 ,D  ,c7,c NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT ,cW(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c`2((((C((  (-((((H27d2  ) 0Dc k *       *" i)@!H  )@@!*     *( % $   -X2_L_STOPCASTING3   X2_L_BEH_MAGIC  X2_L_BEH_OFFENSE  X2_L_BEH_COMPASSION C   12 N ,cd  dJ- T ,c2 2  2  B NW_L_MEMORY7 ,c ,c ,c#, ,cb2 2  2   NW_L_MEMORY7U       @$5,c%5 ,c&w ,c]g ,c!' ,c)Z ,c@  ,cmBP ,c1C ,cS ,cY+ ,ce2  NW_L_MEMORY7^ ,c? ,c NW_L_MEMORY7j ,c9m ,cz,cn ,c}9*   TARGET.5   //:://///////////////////////////////////////////// //:: Default On Attacked //:: NW_C2_DEFAULT5 //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* If already fighting then ignore, else determine combat round */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Oct 16, 2001 //::////////////////////////////////////////////// #include "nw_i0_generic" #include "games_and_ai" void main() { if(GetFleeToExit()) { // Run away! ActivateFleeToExit(); } else if (GetSpawnInCondition(NW_FLAG_SET_WARNINGS)) { // We give an attacker one warning before we attack // This is not fully implemented yet SetSpawnInCondition(NW_FLAG_SET_WARNINGS, FALSE); //Put a check in to see if this attacker was the last attacker //Possibly change the GetNPCWarning function to make the check } else { object oAttacker = GetLastAttacker(); if (!GetIsObjectValid(oAttacker)) { // Don't do anything, invalid attacker } else if (!GetIsFighting(OBJECT_SELF)) { // We're not fighting anyone else, so // start fighting the attacker if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { SetSummonHelpIfAttacked(); DetermineSpecialBehavior(oAttacker); } else if (GetArea(oAttacker) == GetArea(OBJECT_SELF)) { SetSummonHelpIfAttacked(); ActivateDetermineCombatRound(oAttacker); } //Shout Attack my target, only works with the On Spawn In setup SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK); //Shout that I was attacked SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK); } } if(GetSpawnInCondition(NW_FLAG_ATTACK_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_ATTACKED)); } } NCS V1.0B BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&-  - v-Z*" 8-J"y-!"" " M, % &- P-<*"i*"w*" "dY2  *        x" NW_GENERIC_MASTER3 ,-@ ,- ,vD- ,8 NW_GENERIC_MASTER3 ,8 iw** ,8 NW_BEHAVIOR_MASTER3 ,8 7*"Zi*"w*" <*" *)A! "W #W  SA I-"4 7 / }-gi*"w*" <*" *)@! "tW #W  "DD-"/  &  O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @]1YZ !NW_L_COMBATDIFF7* "$4 s' K(*)$(^?c $("K z' WNW_GENERIC_LAST_ATTACK_TARGET:? UXj ,YV  J?*,-NW_ASSOCIATE_MASTER3 ,8  NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H-- gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  }!% ?*   *  * t$A 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  l-" N% - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  G  W&O-&*.:     + -   + C-= + * ,>    X0_L_NOTALLOWEDTOHAVEINVENTORY3         $   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND:  X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &* * E      - m l '  5* *    (*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2  Z3 + gd    ,2   @r-s @<-= @    W ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  " .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 * A" .#*ۚ P$   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & Kgk0"N>  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   +h kk & 5  4gkO  A! 6- " i  EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -E"  % %z %d %N %8 %" % 3E " X3Ej m   t 9    )A(!D6"Y-A66 уY- !52  %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8   ,c ,c NW_L_MEMORY3/27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT.Z ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2  p+"0Dc k *       *" i)@!H  )@@!*     *( % $(  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE( X2_L_BEH_COMPASSION( (   12 N ; ,c d  dj-){   ,c: P/[ ,c2 2  2  B NW_L_MEMORY707 ,c4 ,c;z ,cA ,cb2 2  2   NW_L_MEMORY7U       @B,cC ,cE ,c] ,c!F ,cH ,c^ ,cm` ,c1bn ,cr? ,cw ,ce2  NW_L_MEMORY7} ,c2 ,c NW_L_MEMORY7 ,c9 ,c,cU ,c}*   k k  k  k  k  k  k  k  k  1 2    3gNӋ-3gNJ   ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   A!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"*?c#A )@@!,0* ,*b ,8 *    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   pQ%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !1   S F BHA*  _ " "  ! Bp!@@! "Az    %" % &2  UUWd  Wd  g "-   "'-U W ,C  V-  a 0"x Q3> &   F    ,2  3 .8 8l9: <$0m0   ? QM ,2  $ymy  XyZy \y  y y !   t&*"O&*"H f6 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]F\ *",*" *",ErA , 07 @ 1 * 2g " 1  PO k ,hgPk&*k  G- '1+-1 2 " gP/$&2 @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q10@p UX % %! %= %' %C % %   r N *  V1      ".-@vv %?*8g&@  VX,gV,|$H &  *L " "   z"!b "  $ jk 0 ,i-  ,z2 5 W'@ppa %?*4g@7 V,gV,|$ I,Ԝ,AV,xw,2  }Y g"i ~g - T,>  Eg"i g - kZ   ,,> 9}g"w8g",jk 0" N,8 Z((  g    #g&i 4 H- g&  4 -wg& ' 4 $ jk o0"N- o"NJ-> l*)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $f*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER A g. g.j  FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 l*"Bytyg*    :  h@! ; :  !--[?*)?6-6D  y4-[y4[-y4M-y4 O2Y0 u)*",* %,(-6 qtg+j $k0" k" j  j kts{gX ,/rg+j $k0" k" j  j kr- qq`g+j $k0" k" j  j k}q Aog+j $k0" k" j  j kongX ,D @* $@r  :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j nj $k0" k""  f`j k -   $3j nj $k0" k\"  `j kDh  j k) z  ^  C  UX 1[ ",i<-  -V0- Pf8 e,*"%,*#@! @ tdg+j $k0" k" j  j kd}9-@U | cHg3j $k0" k" j  j ke,E6-agX! ,D * "  $L _U*".1*@2@   t^g+j $k0" k" j  j k^-  ][g3j $k0" k" j  j kxD@6rp-[g+j $k0" k" j  j k[-)@!Z^gX ,P &W:"#/  ,7: < E A 9=; V  2  2Y  2  2    OF:?&D 6y*)A! #,'" $$5J *"  "   1,*"   "   i%*",1RhRg @H <Q RKg  gmj $k0"   PQXgl @ P)Pgmj $k0"   j kPq ,3g ,O  +3g ,OE  + 3g ,N  +3g k0"^N1 ,D * ,r 1(    "J  "   *  6   &  J r>  *,*"   " BlJ  *"  " q Wi*" @!"""    "   =,*"   "   u&*",Ht?@!K! c8# x2_hen_valen #  @@       O.'Uc-   c.&i7-  c.&= J-  9.%wAsAg SC  P PB"6-V-/$B2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 * f)!*  )!d,n-   ,pJ  *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3;D;g  <#NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <   $        "3 ## 1*  04A?X2_L_WAYPOINT_SETFACING3 5,$  &,$l &KwX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-wX2_S_SLEEP_AT_NIGHT_SCRIPT5 # NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@!3" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-j# :}r-$ D  WP_CUR7 ,n\#6 @,"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$ COLOR5 "wf- "a2- "K- "#- "<- "<b- "B.- "Z- "kb- "kL- "^- "*- "?- "e- "G- "jZ- "!&- " - "- "- "V- "v"- "- " $- "8)- "8R- "ks-: BRAZIER*",TEAM_#3 ,:   INDEX3COLOR5BLUEBLUE #!RED@ WP_DOUBLER% % % %x % %  % I %[I1f@ :y C0-y C0Kz-ey Ce0- ey CB0Q-@   sy Cs0mL-ky Ck0-sy Cs0-y C0S2-NPC_#_3#N0"#@! CN0kN0"AN0NPC_#_4#N0"#@! CN0 a0 $ WP_ALTAR_#_1#!-?BYst GB70,@Z  -X AlNPC_#_3# #"@( C"0 EP _ 0i ;F ,h NPC_#_3# #5NPC_#_5# # a0I.W.I.N. Button y C0- %" %Ct0=0  - %" %Ct0=0<0,@   -4 WP_ALTAR_#_2#!-O;iW;-X@ :wy Cw0- y C0 6-y C0-y C0Mz-By CB0-@   ;y C;08-sy Cs0-y C0c|-y C0-ޣ %" %Ct0=0z S=) "A! 1"V 8-$R0)Q WP_DOUBLER@!,: NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   21!d& (<U D ,  BRAZIER MY_NUMBER*3ROLE_Ǵ#_#\#3 j ?!C *U ,*I".X$F- 0* 4QX$Bl-  T,=*".X$F12   &TARGET5 #/ *",PORTAL_d#_#INDEX3\# BRAZIER KEEPER_/#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_#_1#ALTAR_W#_2#ALTAR_)#_1#xHALTAR_#_2#6  WP_#  *",|*",A  &* )! \" @1Py0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D  )@! /9   ?  NW_L_MEMORY3)@@!-4  T NW_L_MEMORY7 NW_L_MEMORY7)@@!2%(-%fA !* G INDEX3  HOME\#(  -6  PORTAL_C#_1# ROLE\#(  M3  *COLOR5 #" 1  .$1  8 =DGANKINGWP_#_5#5NO # # j MOBTARGETWP_#_1#9+e- MOBTARGETWP_z#_1#5*":-i? qi-*":[- # *cc5-9%- z-X WP_DOUBLER?! T]t-xN - NPC_v#_#\# #,4(-  BLUE #.BLUE5)-RED  WP_6#_7#?!FUPGANKINGWP_8#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_6#_5#5NO # FUPGANKINGWP_#_5#9GANKINGWP_#_5#5NO #@WP_%#_4#-GANKINGWP_4#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# BLUE #-RED6*-BLUE  $ "  NPC_#_# MOBLEADERWP_~#_1#3\#    WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#C #f WP_ALTAR_j#_2#+ WP_ALTAR_#_1# #f WP_ALTAR_#_1#NPC_~#_1#@NPC_L#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_Z#_2#<*$B- WP_ALTAR_#_2#NPC_#_6#@NPC_W#_6#<*$B- WP_ALTAR_#_1#@,e WP_CENTRE_C#  *"*OWNER5RED #BLUE # *:  "  " ,4(-  NPC_7#_# MOBMEMBER1WP_ #_1#3\#  NPC_#_# MOBMEMBER2WP_#_1#3\#   E WP_ALTAR_#_1#@! {-8E WP_ALTAR_#_2#@! 8%   WP_ALTAR_ #_#\#)?!/  E    J2 y =0~-NF #y =w#0yr=-  y0" A0}-NyN0" AN05 WP_DOUBLER TQ- WP_DOUBLER@! 0)y C)0:yC:06v J y0" CK0-Ny N0" CN0  U  %N %T %Z %`vpTR8 4 lTARGET5)?!.|! # <TARGET5 U %8 % %'c0"y =0Ly=L0Z=y==0TARGET5)?!<TARGET5TARGET5?!5+-K   #*Q WP_ALTAR_#_1# l "4 l8"B1D 8M" =  .U (& # &U ( # &&$S1 #"%%%%| #<TARGET5| ) #*Q WP_ALTAR_#_2# l "y ;0- "y ;0l-"y ;0'0"(')?! y \'0'0"(')?! y \'0@[ H:yy  :00;yQ;0syQs0eyQe0kyQk0yQ0 "  V  INDEX3 %" % ,N4  (,A p#,K% INDEX$3   ,8 4U8 a"!.?!1  8$ "&ALIVE7U-?!,ALIVE7@""@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k  "INDEX3   c NW_WBWMXL009*#*"- )?!({x # @! $e-A G "Healing  "  _NEEDED# L ,,$  +  |bALIVE3 $$z   g_NEEDED#$m  PAh ENEMIES\#7$J  (_NEEDED#ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED# #r ,#_NEEDED#C\#$o NPC_pQ#_#\#   %N %Z %l %~G;X0  WP_DOUBLER#  oh #*Q WP_ALTAR_#_1# n #*Q WP_ALTAR_#_2# 7 PORTAL_m#_1# *"!lkl # $$  >3    iTARGET6 " $$  ]aTARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6  T11_TASK3  T11_TARGET6!3 T11_TARGET6R -- Ot5  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @sstjKQ NW_L_COMBATDIFF7* "{ s K*H$c $il z}NW_GENERIC_LAST_ATTACK_TARGET:?_8 NPC__#_3# #3NPC__#_5# # @  ,cJ-Â ,cƏ,cK NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z(dTq ,cO(*+(PP -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%cX2d(((C((  (-((((H27d2  s90Dc wk *       *" i)@!H  )@@!*     *( % $  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSE X2_L_BEH_COMPASSIONա    12 NR ,c cd  dj-֒   ,c Pr ,c82 2  2  B NW_L_MEMORY7N ,cth ,c8{ ,cU ,c2 2  2   NW_L_MEMORY7U       @,c3  ,c ,c ,cy ,c=c ,c ,c ,c ,cEV ,c$ ,c2  NW_L_MEMORY7* ,c?/I ,c NW_L_MEMORY76 ,c9 ,cUE,cT11_TASK3 #@! "P: ,cT*   3 %N %^ %n %~~X `2 n: S H "5@ "nAĢ %Q-Z7$@  " @ :Ý@y "66-8  u?!& " #U  ,z^$  %d % % % %TB=ӛ WP_DOUBLERvIllegal waypoint index: \#A WP_DOUBLER  $v30  " "1!  8$ @A % % % %  %4 %] %NPC_#_1#NPC_#_2#NPC_#_3#uNPC_#_4#6NPC_#_5#NPC_#_6#NPC_#_7#yIllegal enemy index: \# NPC_BLUE_1 )!$ &@!,X;rCOLOR5 # FA  "V@Ejp" @ . "7@ "nA %Q->*@x" @ A[ "68   ALTAR_BOY3C Cb 1SKIPPERu3$    %A! 1  1" w"     "    "Found weaker enemy! Changing from # (#\#) to ## (#\#)#$SKIPPERq7  MJMLp)))NPC_1#_1# # -NPC_1k#_2# # L-NPC_1#_3# # -NPC_0#_4# # -NPC_0#_5# # h-NPC_0;#_6# # - % % %p % % % %C9 #e_9 #V 8: HhH8HG))))1@!'1-B@@!'1-B@@!'1-B@ "- "-11 "- NPC_*#_3# "9NPC_*#_5# " Retreat3 "6S 6/ 6 5 `  6a $ " )A! A `21  %2   >$`< S $_  $_ry "# "> " B"#&*@1@  )B !     )A ! L$]BI)B !K  L;v$\)A!  Le$\@G)B !I  Lst$[)A!  Lk$[>E)A!G  Lr$Z )A!   L=$Z#)BH!)A! 8ʦ$Y%YahO1$Y#*~*""S*"$Xc $XmtXO=NW_GENERIC_LAST_ATTACK_TARGET:? ^F<!# # 8!# # 8!#] # V!8!# # V!8 " " Fy M   9 ]\ #]76 # -\ "  w # $1 # $ # $uJ # $ ,)A!8 STONESKINQ5TRUE # T$,},)B !TuZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #q"Nz a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_#_1#  NPC_T#_7#  9)?!.?)?!.)?!.)?!.vd ".N8 M)?!9'2  NPC_|#_2#  NPC_5#_6#  )A !:: U %N %r % %,c  ,c z 2,c @E,c bu,c d2h %N %8 %P %:bd4d")@!dD $i ,cbd P&*@@   $w ,c $; ,c& $eK ,cD $s ,cV $k{ ,ct $ ,c  h  $= ,c "% ,ct d  ,cZ,c&,c,c,cz,c>u,ce  l  ,c8 )@!+  W)@!+0  U %U 21d  2  gb- NPC_#_1# ""NPC_B#_2# ""HNPC_#_3# "" NPC_#_4# "" NPC_C#_5# "" INPC_#_6# "MORDERS3  - NPC_n#_7# "" t- V NPC_#_1# # -NPC_#_2# #  -NPC_b#_3# #  6-NPC_#_4# # z-NPC_#_5# # -NPC_~#_6# # 'R-NPC_2#_7# #  y0" ;0\-:yCBp-# * "& "#Ap! Ap!Y! !U    I:0m$?)?!FINALDESTINATION7 AREASLOWER93"z WP_ALTAR_W#_2A#B0  AREASLOWER8T7CTARGET8 5 " ! qCTARGET7y9& "@ey=e0-ky=k0V-sy=s0"7CTARGET59U "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET39*-CTARGET3\9 S< & " " . - "|* ;You'll be next, mage=#- Die you mage@#C)@!>  !  "d-)A ! !  % < & " " )A ! .^- "'j ;You'll be next, mageY1- Die you mage*  % & "]Ly)A ! IL0-=y&@!I=0 & "y)@@! I0y#y j 2& ""F   -#08$  K< & " " )A ! .- "|  ;You'll be next, mageK#- Die you mageK m z -E< & " " .- "|  ;You'll be next, mage=#- Die you mage@J)@!>  !  "d-)A ! !  % y0" A0 |}-cyc0" Ac0 y BH1 8 "R& "#Ap! KAp! !   I0$Xu)?!FINALDESTINATION7 AREASLOWER"^3"z WP_ALTAR_#_1A#0  AREASLOWER!7CTARGET!g5 " ! qCTARGET 9& "y " =0-;y=;0-ky=k0V-sy=s0"7CTARGET9$ "c0yE & " ;0-%F-;y#U  =;0-x0"ky =k0V-sy=s0"7CTARGET$9*-CTARGET9 y  *|0BLINDNESS_AND_DEAFNESS at #4y  *v40SPELL_ENERVATION at #%6 w XA\yP    Ap d*Q% Melee attack #]q_-A$i*&(  % Y  vD- ,8  % y q@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 5 *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!  ey ,F;y ,AA'F@        NPC_]#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E  NPC_#_4# # NPC_ʃ#_1# # NPC_#_7# # d2d'F@ iNPC_#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #dky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #!uLy L0HAMMER OF THE GODS at #|=y =FLAME STRIKE at #2   NPC_#_#\#*") !  pNPC_ #_#\#NPC_#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 NPC_#_3# # NPC_z#_5# # NPC_#_2# # NPC_#_6# # dX2'F@ DNPC_U#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"i%Ranged attack at #t   @,L-2 9@"U   ,* " ah* ."STAND #bc 2-5c D }10)?!*0 STANCE5 #.<ATTACK  ,c NW_L_MEMORY3+27 %N %z % %((d(-,(H27      *" i)@!H  ( ( *")@@! *     * % $*  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC+ X2_L_BEH_OFFENSE* X2_L_BEH_COMPASSION* +  12 N k ,c id  dJ-+ ,c2 2  2  B NW_L_MEMORY72 ,c7P ,c>* ,c|D ,c@2 2  2  # NW_L_MEMORY7U       @E,cF ,cwG ,c;ھ ,c ,c@w ,c{H ,c?J- ,c` ,cc# ,cd ,cGtk ,cy ,c2  NW_L_MEMORY7 ,cA ,c NW_L_MEMORY7 ,c ,cW,cj$s ,cL-w ,c*   l*""1my:y:-y:n-y:!-y:-y:-y::-y:-y:-y:S-y:8  *"  "   1,*"   "   i*",xдgmj $k0"   O^g A2 <m gmj $k0"   ΕgXcP , j kbO ,3g ,J  +3g ,  +3g k0"^6 ,D  ,c7,c NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT ,cW(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c`2((((C((  (-((((H27d2  ) 0Dc k *       *" i)@!H  )@@!*     *( % $   -X2_L_STOPCASTING3   X2_L_BEH_MAGIC  X2_L_BEH_OFFENSE  X2_L_BEH_COMPASSION C   12 N ,cd  dJ- T ,c2 2  2  B NW_L_MEMORY7 ,c ,c ,c#, ,cb2 2  2   NW_L_MEMORY7U       @$5,c%5 ,c&w ,c]g ,c!' ,c)Z ,c@  ,cmBP ,c1C ,cS ,cY+ ,ce2  NW_L_MEMORY7^ ,c? ,c NW_L_MEMORY7j ,c9m ,cz,cn ,c}9*   TARGET.5   //::////////////////////////////////////////////////// //:: NW_C2_DEFAULT6 //:: Default OnDamaged handler /* If already fighting then ignore, else determine combat round */ //::////////////////////////////////////////////////// //:: Copyright (c) 2002 Floodgate Entertainment //:: Created By: Naomi Novik //:: Created On: 12/22/2002 //::////////////////////////////////////////////////// #include "nw_i0_generic" #include "games_and_ai" void main() { if (GetFleeToExit()) { // We're supposed to run away, do nothing } else if (GetSpawnInCondition(NW_FLAG_SET_WARNINGS)) { // don't do anything? } else { object oDamager = GetLastDamager(); if (!GetIsObjectValid(oDamager)) { // don't do anything, we don't have a valid damager } else if (!GetIsFighting(OBJECT_SELF)) { // If we're not fighting, determine combat round if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { DetermineSpecialBehavior(oDamager); } else { if(!GetObjectSeen(oDamager) && GetArea(OBJECT_SELF) == GetArea(oDamager)) { // We don't see our attacker, go find them ActionMoveToLocation(GetLocation(oDamager), TRUE); ActionDoCommand(ActivateDetermineCombatRound()); } else { ActivateDetermineCombatRound(); } } } else { // We are fighting already -- consider switching if we've been // attacked by a more powerful enemy object oTarget = GetAttackTarget(); if (!GetIsObjectValid(oTarget)) oTarget = GetAttemptedAttackTarget(); if (!GetIsObjectValid(oTarget)) oTarget = GetAttemptedSpellTarget(); // If our target isn't valid // or our damager has just dealt us 25% or more // of our hp in damager // or our damager is more than 2HD more powerful than our target // switch to attack the damager. if (!GetIsObjectValid(oTarget) || ( oTarget != oDamager && ( GetTotalDamageDealt() > (GetMaxHitPoints(OBJECT_SELF) / 4) || (GetHitDice(oDamager) - 2) > GetHitDice(oTarget) ) ) ) { // Switch targets ActivateDetermineCombatRound(oDamager); } } } // Send the user-defined event signal if(GetSpawnInCondition(NW_FLAG_DAMAGED_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_DAMAGED)); } } NCS V1.0B BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&- \*b"    " iw** ,8 COLOR5 "wf- " f2- " P- "*- "C- "Cb- "I.- "a- "rg- "rQ- "^- "*- "D- "j- "L- "oZ- "&&- "- "- "- "V- "{"- "- ")- "?.- "?R- "rx-/ BRAZIER*",TEAM_#3 ,:  O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @]1YZ !NW_L_COMBATDIFF7* "$4 s' K(*)$(^?c $("} z' WNW_GENERIC_LAST_ATTACK_TARGET:?L UXj ,YV  J?*,-NW_ASSOCIATE_MASTER3 ,8  NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H-- gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  }!% ?*   *  * t$A 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  l-" N% - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  G  W&O-&*.:     + -   + C-= + * ,>    X0_L_NOTALLOWEDTOHAVEINVENTORY3         $   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND:  X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &* * E      - m l '  5* *    (*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2  Z3 + gd    ,2   @r-s @<-= @    W ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  " .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 * A" .#*ۚ P$   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & Kgk0"N>  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   +h kk & 5  4gkO  A! 6- " i  EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -E"  % %z %d %N %8 %" % 3E " X3Ej m   t 9    )A(!D6"Y-A66 уY- !52  %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8   ,c ,c NW_L_MEMORY3/27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT.Z ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2  p+"0Dc k *       *" i)@!H  )@@!*     *( % $(  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE( X2_L_BEH_COMPASSION( (   12 N ; ,c d  dj-){   ,c: P/[ ,c2 2  2  B NW_L_MEMORY70 ,c4 ,c; ,cB. ,cb2 2  2   NW_L_MEMORY7U       @C7,cD7 ,cEy ,c] ,c!F ,cH\ ,c_  ,cmaR ,c1b ,cr ,cx- ,ce2  NW_L_MEMORY7} ,c ,c NW_L_MEMORY7 ,c9 ,c,c ,c})N*   k k  k  k  k  k  k  k  k  1 2    3gNӋ-3gNJ   ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   A!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"*?c#A )@@!,0* ,*b ,8 *    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   pQ%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !1   S F BHA*  _ " "  ! Bp!@@! "Az    %" % &2  UUWd  Wd  g "-   "'-U W ,C  V-  a 0"x Q3> &   F    ,2  3 .8 8l9: <$0m0   ? QM ,2  $ymy  XyZy \y  y y !   t&*"O&*"H f6 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]F\ *",*"  *",ErA , 07 @ &  1 * 2Pg " 1  PO k , gPk&*k  G- '1+-1 2 " ?gP$&2 @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q1?0@p UX % %! %= %' %C % %   r N *  V1    o  ".-@vvg %?*8g&@  VX,gV,|$H &  *L " "   z"!b "  $ jk 0 ,i-  ,z2  @p(p %?*4g@7 V,gV,|$ Iԇ,A,A,xwӵ,2  " hg"i #g - T,>  g"i; g - kZ   ,,> "g"wg",jk 0" N8 Z((  g   ^ g&i 4 H- 'g&  4 -g& ' 4 $ jk o0"N&- o"NJ-U> l*)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $e*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER  ,g. g.jV  FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 l*"Byy]g*    :  h@! ; :  !--[?*)?6-6D  y4-[y4[-y4M-y4 O2Y0 t*",* %,(-6 qtg+j $k0" k" j  j ktHs gX ,/rg+j $k0" k" j  j krK- qqg+j $k0" k" j  j k}pAog+j $k0" k" j  j ko]n5gX ,D @* $@r  :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j nj $k0" k""  f`j k -   $3j nj $k0" k\"  `j kDh  j k) z  ^  C  UX 1[ ",i<-  -V0- Pf8 d*"%,*#@! @ tdg+j $k0" k" j  j kdA}9-@U | bg3j $k0" k" j  j ke,E6-augX! ,D * "  $L ^*".*@2@   t^g+j $k0" k" j  j k^F-  ]g3j $k0" k" j  j kxD?6rp-[g+j $k0" k" j  j k[N-)@!ZgX ,P &W9#/  ,7: < E A 9=; V  2  2Y  2  2    OF9&D 6*)A! #+" $$5hJ *"  "   1,*"   "   i*",1R Rwg @H <Q Qg  gmj $k0"   PPgl @ OP8gmj $k0"   j kP ,3g ,On  +3g ,N  + 3g ,Nf  +3g k0"^M ,D * ,r 1(    !  !  X*  6   &  J r>  *,*"   '" BlJ  *"  "  Wi*" @!"""    "   =,*"   "   u&L*",Ht?@!K! c8# x2_hen_valen #  @@       O.&c-   c.&xi7-  c.% -  9.%mwAAg R  PL PA6-V-/$8BN2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 * fJ)!*  )!d,n-   ,pJ ; *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3:;Sg  ;NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <`   $        "3  # # *  4?X2_L_WAYPOINT_SETFACING3 5,$  &,$l &KwX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-wX2_S_SLEEP_AT_NIGHT_SCRIPT5 # NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_GENERIC_MASTER3 ,8 NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@3K" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-9j# :}r-$ D  WP_CUR7 ,n\#6 @"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$  INDEX3COLOR5BLUEBLUE #!RED@ WP_DOUBLER% % % %x % %  % I %[O!l@? :y C0-y C0Kz-ey Ce0- ey CB0Q-@E   sy Cs0mL-ky Ck0-sy Cs0-y C0S2-NPC_#_3#N0"#@! CN0kN0"AN0NPC_#_4#N0"#@! CN0 a0 $ WP_ALTAR_#_1#!-/HI GH 0,@Z  -H G\NPC_#_3# #"@( C"0 EP _ 0oa ;F ,o NPC_#_3# #5NPC_#_5# # a0I.W.I.N. Button y C0- %" %Ct0=0i  - %" %Ct0=0B30,@   -4 WP_ALTAR_#_2#!-?AYWA^@; :wy Cw0- y C0 6-y C0-y C0Mz-By CB0-@   ;y C;08-sy Cs0-y C0c|-y C0- %" %Ct0=0i Y-) "A! 1"V 8-$X )W WP_DOUBLER@!,: NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   21!d& (,U D ,  BRAZIER MY_NUMBER*3ROLE_ϡ#_#\#3 j ?!C *U ,*I".X$F- 0* 4WX$Bl-  Tw=*".X$F12   ,TARGET5 #/ *",PORTAL_Q#_#INDEX3\# BRAZIER KEEPER_#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_dž#_1#ALTAR_D#_2#ALTAR_#_1#xHALTAR_#_2#6  WP_#  *",|*",A  &* )! \Ʈ" @1@y0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D  )@! /9   /  NW_L_MEMORY3)@@!3$  T NW_L_MEMORY7& NW_L_MEMORY7)@@!2%(-%fA !* 7 INDEX3  HOME\#(  -6  PORTAL_0#_1# ROLE\#(  M3  *COLOR5 #" 1  .$1  8 =DGANKINGWP_#_5#5NO # # j MOBTARGETWP_#_1#9+e- MOBTARGETWP_z#_1#5*":-i? qi-*":K- # *cc5-9%- z-X WP_DOUBLER?! T]t-xN -q NPC_v#_#\# #,4(-  BLUE #.BLUE5)-RED  WP_6#_7#?!FUPGANKINGWP_8#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_6#_5#5NO # FUPGANKINGWP_#_5#9GANKINGWP_#_5#5NO #@WP_%#_4#-GANKINGWP_4#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# BLUE #-RED6*-BLUE  $ "  NPC_#_# MOBLEADERWP_~#_1#3\#    WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#C #f WP_ALTAR_j#_2#+ WP_ALTAR_#_1# #f WP_ALTAR_#_1#NPC_~#_1#@NPC_L#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_Z#_2#<*$B- WP_ALTAR_#_2#NPC_#_6#@NPC_W#_6#<*$B- WP_ALTAR_#_1#@,e WP_CENTRE_C#  *"*OWNER5RED #BLUE # *:  "  " ,4(-  NPC_7#_# MOBMEMBER1WP_ #_1#3\#  NPC_#_# MOBMEMBER2WP_#_1#3\#   E WP_ALTAR_#_1#@! {-8E WP_ALTAR_#_2#@! 8%   WP_ALTAR_ #_#\#)?!/  5    J2 y =0~-NF #y =w#0Cx  y0" A0}-NyN0" AN05 WP_DOUBLER TQ- WP_DOUBLER@! 0)y C)0:yC:06}6 : y0" CK0-Ny N0" CN0  U  %N %T %Z %`vpTR8 $ l#TARGET5)?!.| # <TARGET5 U %8 % %'c0"y =0Ly=L0Z=y==0TARGET5)?!<TARGET5TARGET5?!5+- ;  #*Q WP_ALTAR_#_1# l "$ l8"B7 8=" =  .U ( # &U ( # &&$@ #"%%%%| #<TARGET5l  #*Q WP_ALTAR_#_2# l "y ;0- "y ;0l-"y ;0'0"(')?! y \'0'0"(')?! y \'0@b H:yy  :00;yQ;0syQs0eyQe0kyQk0yQ0 " ~ V  INDEX3 %" % ,N4  (,A vn,K% INDEX$3   ,8 4E8 a"!.?!1  8$ "&ALIVE7U-?!,ALIVE7@""@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k  "INDEX3   c NW_WBWMXL009*#*"- )?!({ # @! $e-A G "Healing  "  _NEEDED# L ,,$  +  |bALIVE3 $$z   g_NEEDED#$m  PAh ENEMIES\#7$J  (_NEEDED#ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED# #r ,#_NEEDED#C\#$o NPC_x>#_#\#   %N %Z %l %~G;X0  WP_DOUBLER#  wU #*Q WP_ALTAR_#_1# v #*Q WP_ALTAR_#_2# 7 PORTAL_t#_1# *"!lst # $$  >3    iTARGET6 " $$  ]aTARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6  T11_TASK3  T11_TARGET6!3 T11_TARGET6R -- Oz%  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @yszZKA NW_L_COMBATDIFF7* "k s K*8$c $Y zNW_GENERIC_LAST_ATTACK_TARGET:?e NPC_g#_3# #3NPC_g#_5# # @ ɶ ,cJ-r ,c,cK NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z(dTa ,cO(*+(PP -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%cX2d(((C((  (-((((H27d2  yw)0Dc wk *       *" i)@!H  )@@!*     *( % $  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC  X2_L_BEH_OFFENSE X2_L_BEH_COMPASSIONۑ    12 NB ,c cd  dj-܂   ,c Pb ,c82 2  2  B NW_L_MEMORY7 ,ct ,c8 ,c ,c2 2  2   NW_L_MEMORY7U       @>,c3? ,c ,cD ,cy ,c= ,c' ,cY ,c ,cE% ,c+4 ,c2  NW_L_MEMORY70 ,c?5 ,c NW_L_MEMORY7= ,c? ,cUL,cT11_TASK3 #@! "P@e ,c*   # %N %^ %n %~~X `2 n: Y{ H "5@ "nAʒ %Q-J=o@  " @ :ɍ@y "6$f, S $e  $eby "# "> " B"#&*@|@0  )B !     )A ! L$c2I)B !;  L;f$b)A!  Le$b0G)B !9  Lsd$a)A!  Lk$a.E)A!7  Lb$` )A!   L=$` #)BH!)A! 8$_%_QhO7$_*~*""S*"$^c $^]t^?CNW_GENERIC_LAST_ATTACK_TARGET:?% ^F<!# # 8!# # 8!#] # V!8!# # V!8 " " Fi =   9 ]\# #]76 # -\ "  w# # $1" # $"} # $u"7 # $ ,)A!8 STONESKIN5TRUE # To,},)B !TZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #q"Nj a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_#_1#  NPC_A#_7#  9)?!.?)?!.)?!.)?!.vd ".N8 M)?!9'2  NPC_i#_2#  NPC_"#_6#  )A !:: U %N %r % %,c  ,c z 2,c @E,c b{,c d2X %N %8 %P %:bd4d")@!d4 $Y ,cbd P&*@(@   $w  ,c~ $; ,c $e; ,cD $s ,cF $kk ,ct $ ,c  X  $={ ,c " ,c>   ,cZ(,c&,c_,cL,cz%,c>,cT  c ,c8 )@!+  G)@!+   U pU 21d  2  mR-7 NPC_ #_1# ""NPC_ /#_2# ""8NPC_ #_3# ""NPC_ #_4# ""NPC_ 0#_5# ""9NPC_#_6# "MORDERS3  -NPC_[#_7# ""d-F NPC_#_1# # -NPC_#_2# #  -NPC_O#_3# #  6-NPC_#_4# # z-NPC_#_5# # -NPC_k#_6# # 'R-NPC_#_7# #  y0" ;0\-:yCBp3  "& "#Ap! Ap!Y! !U    I:0m$?)?!FINALDESTINATION7 AREASLOWER93"z WP_ALTAR_D#_2A#B0  AREASLOWER8T7CTARGET8 5 " ! qCTARGET7y9& "@ey=e0-ky=k0V-sy=s0"7CTARGET59 "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET39*-CTARGET3\9 C< & " " .k- "|* ;You'll be next, mage=#- Die you mage@)3)@!>  !  "Cd-)A ! !  % < & " " )A ! .- "'j ;You'll be next, mageY1- Die you mage*  % & "]Ly)A ! IL0-=y&@!I=0 & "y)@@! I0y#y j 2& ""F   -#08$ ;< & " " )A ! .~0- "|  ;You'll be next, mageK#- Die you mage sj - 5< & " " .|r- "|  ;You'll be next, mage=#- Die you mage@:)@!>  !  "Jd-)A ! !  % y0" A0 |}-cyc0" Ac0 y BH! ( "R& "#Ap! KAp! !   I0$Xu)?!FINALDESTINATION7 AREASLOWER"^3"z WP_ALTAR_#_1A#0  AREASLOWER!7CTARGET!g5 " ! qCTARGET 9& "y  " =0-;y=;0-ky=k0V-sy=s0"7CTARGET9s "c0yE & " ;0-%F-;y#U  =;0-x0"ky =k0V-sy=s0"7CTARGET$9*-CTARGET9 y  *|0BLINDNESS_AND_DEAFNESS at #4y  *v40SPELL_ENERVATION at #%6 w XA\yP    Ap d*Q% Melee attack #]q_-A$i*&(  % Y  vD- ,8  % yq@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 5 *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!  ey ,F;y ,AA'F@        NPC_J#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E  NPC_#_4# # NPC_p#_1# # NPC_ #_7# # d2d'F@ iNPC_Ѳ#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #dky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #!uLy L0HAMMER OF THE GODS at #|=y =FLAME STRIKE at #2   NPC_#_#\#*") !  pNPC_#_#\#NPC_#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 NPC_#_3# # NPC_g#_5# # NPC_#_2# # NPC_™#_6# # dX2'F@ DNPC_B#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"i%Ranged attack at #t w  @L-2 9@"U   ,* "Qh* ."STAND #bc 2-5c A m10)?!*0 STANCE5 #.<ATTACK s ,c NW_L_MEMORY3127 %N %z % %((d(-,(H27      *" i)@!H  ( ( *")@@! *     * % $0  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC1 X2_L_BEH_OFFENSE0 X2_L_BEH_COMPASSION0 0 12 N[ ,c id  dJ-1 ,c2 2  2  B NW_L_MEMORY792 ,c= ,cDu ,c|J ,c@2 2  2  # NW_L_MEMORY7U       @K,cL ,cwN ,c; ,c ,c@w ,c{N ,c?Px ,cg( ,cin ,cj ,cGz ,cI ,c2  NW_L_MEMORY7 ,cA ,c NW_L_MEMORY7 ,c ,cW.,cpo ,cL-~  ,c1*   l*""1]y:y:-y:n-y:!-y:-y:-y::-y:-y:-y:S-y:8  *"  "   1,*"   "   i+`*",x֤gmj $k0"   ONg A9 <] gmj $k0"   ԅgXi , j kh ,3g ,:  +3g ,Ӷ  +3g k0"^& ,D  ,c7,c NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT ,cW(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c`2((((C((  (-((((H27d2  0Dc k *       *" i)@!H  )@@!*     *( % $  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSEr X2_L_BEH_COMPASSION3  12 N ,cd  dJ-D ,c2 2  2  B NW_L_MEMORY7 ,cD ,c# ,c)w ,cb2 2  2   NW_L_MEMORY7U       @*,c+ ,c, ,c]W ,c!., ,c/ ,cFU ,cmH ,c1J ,cY ,c_v ,ce2  NW_L_MEMORY7e< ,c? ,c NW_L_MEMORY7qJ ,c9t> ,c[,ct ,c}*   TARGET.5   //::////////////////////////////////////////////////// //:: NW_C2_DEFAULT8 /* Default OnDisturbed event handler for NPCs. */ //::////////////////////////////////////////////////// //:: Copyright (c) 2002 Floodgate Entertainment //:: Created By: Naomi Novik //:: Created On: 12/22/2002 //::////////////////////////////////////////////////// #include "nw_i0_generic" #include "games_and_ai" void main() { object oTarget = GetLastDisturbed(); // If we've been disturbed and are not already fighting, // attack our disturber. if (GetIsObjectValid(oTarget) && !GetIsFighting(OBJECT_SELF)) { ActivateDetermineCombatRound(oTarget); } // Send the disturbed flag if appropriate. if(GetSpawnInCondition(NW_FLAG_DISTURBED_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_DISTURBED)); } } NCS V1.0B X0_MOD_TREASURE_LOWX0_MOD_TREASURE_MEDX0_MOD_TREASURE_HIGHX0_MOD_TREASURE_UNIQX0_TREASURE_LOWX0_TREASURE_MEDX0_TREASURE_HIGHX0_TREASURE_UNIQX0_TREASURE_MONSTER NW_IT_GOLD001X0_NUM_TREASURE_ITEMSX0_BASE_TYPE_TREASUREX0_TREASURE_ITEMX0_TREASURE_HAS_BEEN_GENERATED222222F#?BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* + *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&- X2_L_SPAWN_USE_STEALTH X2_L_SPAWN_USE_SEARCH: oX2_L_SPAWN_USE_AMBIENT_IMMOBILE  X2_L_SPAWN_USE_AMBIENT | j@XRX2_L_IS_INCORPOREAL 2rr  3 NW_GENERIC_MASTER3 b NW_GENERIC_MASTER7n- V NW_GENERIC_MASTER7  4NW_ATTACK_MY_TARGET- <NW_GENERIC_START_POINTT- <NW_GENERIC_START_POINT LNW_I_WAS_ATTACKEDW . NW_MOB_ATTACK NW_I_AM_DEADe inventoryNW_BLOCKER_BLK_#NW_CALL_TO_ARMS NW_GENERIC_MASTER3 ,8 COLOR5 ~- aR- & &- - -  - ۤv- bJ- - @i- W- w"- n- B- b-  '- L- X;- zf- (:- - - S- 5-- ^- 2-  BRAZIER*",TEAM_#3 ,:  % % % %v %l %\ %L %<B<60>$ @TARGET5 #6*")*j 2D!@!"@TARGET5 #&T$TARGET9*"s)?!$  *",|*",A   %d %v % % %  }bj4_< WP_DOUBLER#   #*Q WP_ALTAR_#_1# ; #*Q WP_ALTAR_#_2#  #*Q WP_ALTAR_#_2#  #*Q WP_ALTAR_#_1# TARGET9  % % % %v %l %\ %L %<B<60>$Z N T2_FORMATION'X3GB3"^ %" %  ID3 ID3LRBACKUP\#SRBACKUP\# R)A!        ,$e)A ! ,$$'X7'X7   ,: *",PORTAL_#_#INDEX3\# U U\ /CLASS_TYPE_CLERIC .CLASS_TYPE_ROGUE 0CLASS_TYPE_FIGHTER 1CLASS_TYPE_SORCERER 1CLASS_TYPE_ASSASSIN movingto6* "@" 6  &"bID3LRBACKUP\#'X3SRBACKUP\#'X3GB3       &                 >%" 8%p" >%"" 8% ==0$GB7$ - &  ID3iV  % % % %- %W % %#'\'\ST_POS9movingto:'`'`ST_POS9'd'dST_POS9D'h'hST_POS9't'tST_POS9'l'lST_POS9movingto:e'p'pST_POS9movingto: T2_FORMATION'X7  T2_FORMATION'X3ID3 % ST_POS5 #,@!   o WP_ENTRY_'T#_3#  "bID3 ;ID7$$  % % % %v %l %\ %L %<B<60>$\ INDEX3COLOR5BLUEBLUE #!RED@ % %  %~ %[ % %  % p  WP_ALTAR_#_2# WP_ALTAR_#_1#t3_jp3N0";N0 0";0x0";x0N0 (t3_jp7A  %! :6- , WP_ALTAR_#_1#;I  WP_FRONT_#_1#A !+wp_check7wp_check3 > WP_FRONT_#_1#:- WP_ALTAR_#_2# WP_ALTAR_#_1#Ay %! :?-NPC_#_1#!$A c! b-WP_#_6#PlNPC_#_3#>0"=>0O@ WP_FRONT_#_2#A !, wp_check27 wp_check23 > WP_FRONT_#_2#:- WP_ALTAR_#_1# WP_ALTAR_#_2#A %! :?-NPC_#_7#!$A c! b-WP_#_2# WP_ALTAR_#_2#3Zt3_jp23 0";0c0";c00 )t3_jp27 WP_ALTAR_#_1# WP_ALTAR_#_2#2hA %! :6-  NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   k k  k  k  k  k  k  k  k  1 2    3gN-3gNrJ   +   kk & 4gkO  A! 6- " ij EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -EV"  % %z %d %N %8 %" % 3E " X3Ej  j  t 9    )A(!D6"Y-A66 Y- !52    J?*,-NW_ASSOCIATE_MASTER3 ,8  ?*   *  * t$ 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  W-" N%P - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  2  W&O-&*.:     + -   + C-= + * ,>  X0_L_NOTALLOWEDTOHAVEINVENTORY3         $d   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND: V X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &L* * E      - m l '  5* *    (L*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2   %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8  r% Z((  g    &g& 4 H- g& 4 - z g&q 4 $ jk o0"N- o"NEJ-> *)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $1*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER D g. g.j  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 1 * 2;g " 1  PO k ,gPk&*k  G- '1+-1 2 " *gP$&2 INDEX3COLOR5BLUEBLUE #!REDN % % % % % % %t3_jp7zwp_check7wAc wp_check27=)t3_jp27  % % % % %~ %t %j %Z`nT9~H9z<9v0\$\\  ,   BRAZIER MY_NUMBER3ROLE_n#_#\#3  ?!CcU ,*".jX$F- 0*~`4X$Bl-  T=Z*|"."SX$F12   TARGET5 #/ BRAZIER KEEPER_gY#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_f#_1#ALTAR_f#_2#ALTAR_eS#_1#xHALTAR_e#_2#6  WP_#  *"  "   Wi*" @!"""    "   =,*"   "   u*",Ht?@!K! c8# x2_hen_valen #  @@       O.c-   c.si7-  c. -  9.w7ޡg   \ P(6-͒V-/B<2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 h* f))!*  )!d,n-   ,pJ z l*"B~g*    :  h@! ; :  !--?*)?6-6D  BHA*  _ " "  ! Bp!@@! "Az &* )! \ " @1y0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D iw** ,8 *"  "   1,*"   "   iv*",1Rżg @ < 5g  gmj $k0"   Bgl @ }gmj $k0"   j k  ,3g ,  +3g ,q  + 3g ,  +3g k0"^] ,D &  *L " "   z"!b "  $ j nj $k0" k"  `j k -   $3j nj $k0" k"  `j k>Dh   :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7, 4NW_GENERIC_LAST_SPELL7 A j k) z  ^  C  UX 1[ ",i<-  -V0- P}8    MY_NUMBERT3BRAZIER*"ROLE_5 #_#\#3 )K#%-R# HEARTBEAT_NUM_4F#3 HEARTBEAT_NUM_3#7  (3$-4J XALTAR_SCORE_TRACKER_2#_## r #  ALTAR_SCORE_TRACKER_1#_##  #\#$lALTAR_SCORE_TRACKER_12#_## Y  # ALTAR_SCORE_TRACKER_0#_##  #\##$P  :ALTAR_INFLUENCE_TRACKER_/#_#own# 9  own# # \##opp#y  opp# c \##$- thinks: #\# ## @IC# #  #U-; A\#*"F)*j 2D!@!>"@TARGET5 #&T$<  ROLE_*#_#\#7{ Role to raid \# target: ##*"9) -@! ; AKEEPER_(#_#\#3 ROLE_(#_#\#7' _RAID_TARGET#7KEEPER_'#_#\#7Role to keeper \# for ##?!AM#-D# c@I#  \#3  *"*OWNER5RED #BLUE # *: \#7 *AG!6 $-$$.:  BRAZIER MY_NUMBER@3ROLE_!#_#\#3U PE- 0 2?-  y KEEPER_ 4#_#\#3 IKEEPER_#_#\#7,$ #fROLE_#_#\#7  RKEEPER_#_#\#7rTARGET9 BRAZIER MY_NUMBER<3ROLE_=#_#\#3U _RAID_TARGET#3 |p #2- 7S . (/ .`m _RAID_TARGET#7  9O. # 8$ EHA  l !V!8$EH$  ^ #j ,#:,$  W #.,$ DOUBLER #,ALTAR_#_1# #,:ALTAR_Q#_2# #,ALTAR_ #_1# #,ALTAR_#_2# #,2  t BRAZIER*"NSPAWNS_#3 kTEAM_z#5 will be fought#$NSPAWNS_ #7 MY_NUMBER/}3  GROUP_SIZE_#3  GROUP_SIZE_:#7 MY_NUMBER.7$:U  ROLE__#_#\#3  $$J NROLE_#_#\#7J-ROLE_I#_#\#7Spawn with target \#: ## (#\#)#2TARGET9  % % % %| %r %b %R %B~ firstSpawnBRAZIER3 r firstSpawnBRAZIER3  firstSpawnBRAZIER7- ' #~'A !L'TARGET9' 3@@!/2? ! ' #' # ' #  .2+@cTARGET5 #*")''x''!"'x&''|''!"'|&''''!"'&''''!"'&''''!"'&' #c 'TARGET9'{*r 2L!B!"@TARGET5 #&T$TARGET9*"s)?!$  l*"1 2 ,    # f  2       ", j*    :  h@! ; :  0yb 0yb hyb Eyb Eyb {yb {yb )yb Dyb DCyb `yb `]]yb ]yb wyb yb yb yb yb 8 UXj ,YV 'x #,@@-'| #,@@_-' #,@L-' #,@-' #,@-' #,@}K-' #,?8@  QsupportWaiting7-'1d '2 '1d '2 'x1d 'x2 '1d '2 '|1d '|2 '1d '2 '1d '2     supportWaitingNPC_#_#\#3  $$dF o supportWaitingNPC_#_#\#3 supportWaitingNPC_#_#\#7NPC_#_#\#$X- ' #'x # '| # A  supportWaitingNPC_#_#\#3 supportWaitingNPC_#_#\#7NPC_#_#\#$+-supportWaiting7 ' #{ WP_ALTAR_#_1#TARGET9-' #{ WP_ALTAR_#_2#TARGET9--' #| WP_ALTAR_#_1C#TARGET9-' #| WP_ALTAR_#_2C#TARGET9-'x #  t WP_CENTRE_#TARGET9V-'| #  t WP_CENTRE_#TARGET9-' #  j WP_DOUBLERTARGET9 c) % % % % % % %\ %LRv@"# $4@"# $Ya " " G@"    INDEX3  HOME\#(  -6  PORTAL_#_1# $ ""U7*2 U !U  (X$* @ hA!?,   $ * ,U       ,8 )@! B)   x%  NW_L_MEMORY3)@@!  T NW_L_MEMORY7 NW_L_MEMORY7)@@!2%(-%fA !* F ROLE\#(  p3  *COLOR5ލ #" 1  .$1  8 UUWd  Wd  g "-   "'-U O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @+sYd ! 2NW_L_COMBATDIFF7* " s K*M$ c $n  z(NW_GENERIC_LAST_ATTACK_TARGET:?I NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H--D@ gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  Z3 + gd    ,2  $ @r-# @<-# @ [+   ؕ ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  h" .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 p* " .*  P$L   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-, 2X2_L_MUTEXCOMBATROUND7 & D}Dgk0"N >  ,c,c NW_L_MEMORY3u27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT' ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2   0Dc k *       *" i)@!H  )@@!*     *( % $!F  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC!d X2_L_BEH_OFFENSE!( X2_L_BEH_COMPASSION  !Z   12 N ,c d  dj-!   ,c: P' ,c2 2  2  B NW_L_MEMORY7= ,c(Z ,c/4 ,c3 ,cb2 2  2   NW_L_MEMORY7U       @4,c5 ,c6 ,c]O ,c!8L ,c! ,cW ,cm9M ,c1: ,cC ,cI# ,ce2  NW_L_MEMORY7N ,ch% ,c NW_L_MEMORY7S ,c9V  ,cW,cIn ,c}n*    ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   Aޤ!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"?c#A )@@!,0* ,*b ,8  6*    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   p%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~, ;0 2  )@!< "E* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !   S F     %" % &2  W ,C  V-  a 0"x Q30>  F    ,2  3 .8 89Z <$0m0   ? Qm ,2  $ymy  XyZy \y  y y !   t&*"O&*"* f8 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]<\ *",*" M*",EtA , 09 @ @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q1A0@p UX % %! %= %' %C % %   r N *  V1     3 ".-@ջ %?*8g&@D  Vb,gV,|$H &  jk 0 ,i-  ,zn2 N p@@rP %?*4g@@! V,gV,|$ I,{,A5,xw,2  r g"i- g - T,>  ^g"i g - kZ   ,,> Rg"wQg",jk 0" N8 y4-[y4[-y4M-y4 O20 *",* %,(-6 qjg+j $k0" k:|" j  j k:lgX6G ,/mg+j $k0" k8" j  j k8o- qg+j $k0" k6" j  j k7`Ag+j $k0" k5" j  j k5gX1\ ,D @* $@r *"%,*#@! @-  thg+j $k0" k1z" j  j k1j}9-@U | g3j $k0" k/" j  j k0M, 6-\gX+ ,D * "  $L *".'M*@2@'E   tmg+j $k0" k+" j  j k+o-  g3j $k0" k)" j  j k*`D6rp-ug+j $k0" k(" j  j k(w-)@!gX$/ ,P &W#h  ,7: < E A 9=; V  2  2Y  2  2    OFO&D %*)A! #dU" $$oJ * ,r 1(    bV  b  *  6   &  J r>  5*,*"  " BJ  *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3>g  NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <    $        "3 Z#Ze# 1*  04U?X2_L_WAYPOINT_SETFACING3 5, $  &, $l &YwX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-XhwX2_S_SLEEP_AT_NIGHT_SCRIPT5 # NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@TD")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@O3" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-j# :}r-$ D  WP_CUR7 ,n\#6 @K"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$ ZuZ )Z Y  " 5Y Yl  Y>  l "O's bat#l>l "'s pet#l>X=`$ ?! / -W_ @" ?! , .WS_: W7   " >x " 0  ALTARKEEPER_#WINDEX3)@!R*"#@!  * ]    U  ALTARKEEPER_#  #&  " )?! ; s@P ##  # FT( *89 #w 2K!@!L"@INDEX3R "&T$Qg  Q H)?!0-Q Y G #&n " XZ $7    P1 P] is empty, trying to grab it!# l BO :)/)Ap! Bastard going to #, dist # # e@A ! E@ SBastard fighting i# near #))!# d}- \MT Bastard going behind # -ML M   S@"" ^Bastard going to #, dist # #    #(2H  # $H [ # $IJ  # $I  # $ GVG))!"H))!"G))!"kE))!" ROLE\# I#7 H: "H   NPC_.^#_#\#$ "GT  NPC_-#_#\#!"$ HOME\# B, # 9B9  4 " 9Aw@. B   " %d %{ % % %@3@AZA-?Uj   WP_)#_#\# ""))! "$$ NPC_(#_#\#$ NPC_(#_#\#!"$A b@ C4!(  C !*C! Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!   &#z  ; % % % % % % %;-m7:47x8Sr:%:T:>-: % %z %d % %n %X %B9n69R    68<88-8 8WC8p % % %  %r %\ %L %66yZ, 9 A ONy)A !, 9N0 A , 7N0 AT-, 7N0 ApOyZ, 9 A    ALTAR_RED_1  ALTAR_RED_2  ALTAR_BLUE_1~  ALTAR_BLUE_2F  *",SSCORE_#3 @  % % % %| %r %b %R %BHB<J0$ B:(  :11 4! Fy:j-11 F1p $ "  NPC_m#_# MOBLEADERWP_B#_1#3\#  BLUE #.BLUE5)-RED  21!d& NPC_#_# MOBMEMBER1WP_#_1#3\#  NPC_L#_# MOBMEMBER2WP_ #_1#3\#   MOBLEADERWP_#_1#3   MOBMEMBER1WP_o#_1#3   MOBLEADERWP_#_1#7  MOBMEMBER1WP_#_1#7  MOBMEMBER2WP_#_1#3   MOBMEMBER2WP_4#_1#7 @tDGANKINGWP_#_5#5NO # <  VK--h-Z.F-'"- C  NPC_d#_#\# #,4(-  WP_6#_7#?!FUPGANKINGWP_#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_#_5#5NO # FUPGANKINGWP_E#_5#9GANKINGWP_ #_5#5NO #@WP_%#_4#-GANKINGWP_#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7#  BLUE #-RED6*-BLUE    WP_ALTAR_#_#\#)?!/  y0" A0}-NyN0" AN05 WP_DOUBLER   WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#0 #f WP_ALTAR_#_2#+ WP_ALTAR_Z#_1#c #f WP_ALTAR_#_1#NPC_#_1#@NPC_#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_#_2#<*$B- WP_ALTAR_*#_2#NPC_#_6#@NPC_#_6#<*$B- WP_ALTAR_'#_1#@,e WP_CENTRE_#  J "  " ,4(-   n)@!0 ?!-?~ yP0" C0-NyN0" CN0  Stephen>aFNOGANKINGWP_#_5#9*":*"Y*"  % % % %v %l %\ %L %<B<60>$ @U  ' # x T8_STARTEDPORTAL_=#_1#3"I + BUFF_ROUTINE3   N' #+ BUFF_ROUTINE3   N' #+ BUFF_ROUTINE3    ' #.)?! K-' #.)?! K)?!P2 BUFF_ROUTINE3  BUFF_ROUTINE7-' #0SPAWNBUFF_ROUTINE3  S' #0SPAWNBUFF_ROUTINE3   S' #0SPAWNBUFF_ROUTINE3   fSPAWNBUFF_ROUTINE3 SPAWNBUFF_ROUTINE7OTARGET5 #*" %N %D %: %06 * w  U 7 BUFF_ROUTINE3 ;0- BUFF_ROUTINE3 H'0f- BUFF_ROUTINE3 ;0  BUFF_ROUTINE3 ' #;N00G' # BUFF_ROUTINE3 T'0W- BUFF_ROUTINE3 T'0<- BUFF_ROUTINE3 G0r- BUFF_ROUTINE3 Gx0dI- BUFF_ROUTINE3 '0f0- BUFF_ROUTINE3 v0c0 BUFF_ROUTINE'3 8 BUFF_ROUTINE'3  8 BUFF_ROUTINE'3  S T8_STARTEDPORTAL_#_1#7 lU SPAWNBUFF_ROUTINE3 G0' #]SPAWNBUFF_ROUTINE3 G0 -SPAWNBUFF_ROUTINE3 Gf0w-SPAWNBUFF_ROUTINE3 Gx0+-SPAWNBUFF_ROUTINE3 vN00w-SPAWNBUFF_ROUTINE3 Gf0 SPAWNBUFF_ROUTINE3 G0w-SPAWNBUFF_ROUTINE3 G0 TARGET5y" CYCLE3 #'?!9N'?!   5 CYCLE3" #?'?!  ;[''@!'1'1 ZCYCLE'7CYCLE'7V-CYCLE'7CYCLE'70"CYCLE3 L'yC' $'Ap! 6?'-'yC' 'Ap! 6?'*CYCLE3TARGET5)@!*f- WP_FRONT_#_1#  WP_CENTRE_J# #K WP_FRONT_%#_2#\2- WP_FRONT_#_2# #K WP_FRONT_#_1#- WP_CENTRE_Y#_1# #D WP_CENTRE_+#j@- WP_CENTRE_#*  R #(')?! ' # F WP_FRONT_ #_2#TARGET9- #(')?! ' # F WP_FRONT_J#_2#TARGET9+-TARGET9TARGET5 TARGET5 U $ɺ  K T8_STARTEDPORTAL_#_1#3" S T8_STARTEDPORTAL_E#_1#7 %N %$ %M %uSPAWNBUFF_ROUTINE7h $A.  - BUFF_ROUTINE7$TARGET9TARGET9JSPAWNBUFF_ROUTINE7d= $  - BUFF_ROUTINE7TARGET9d' "v WP_FRONT_x#_1#TARGET9CYCLE7k- WP_CENTRE_#TARGET9CYCLE7' #"'" )CYCLE'3 &CYCLE7-' #&CYCLE7-'")CYCLE'3 &CYCLE7"-CYCLE7  % % % % %~ %n % %owq ;_Y$62,STATE7& STATE3 ,%-STATE3 {%-STATE3 <TARGET5.-STATE7 1 5TARGET5)?! # )?! PTARGET5-hBp!{  A!F"0 ~A!"y ;"0C-STATE3 % &v" " d  q &= T9_#_DIPS#7Free T9_٦#_DIPS#3\#0 21!d& d020 /)1 A ! L  y;0y  O0y  O0y  O0 STATE3TEAMMATE5 ## " 'TEAMMATE9TARGET5@)@@! >STATE7   9f)@@!Y')} !  TARGET9STATE7 #]8TARGET9STATE7STATE3 % % % %- %( % % %Q )@!:y TA ! =:0~-9y PAp! =90 -ta% ~TARGET5)@`!@ 5TARGET5ϕ # / -TARGET5r! #&STATE7-?!+TARGET5 # @" >STATE7TARGET5)?!$"-?!5W͟ # $-?!5 i # 2STATE7.-STATE7 TARGET5)?!$"-STATE7 , TURNS_WAITED3  TURNS_WAITED7 TURNS_WAITED3 2STATE7>)@! =" , 4sd  A$5TARGET9TARGETTEAMMATE59STATE7STATETEAMMATE57-  "d  A Q$)?!FTARGET9i-?!QA!%TEAMMATE5 # HSTATE7STATETEAMMATE57  +d  A $TARGET5TARGETTEAMMATE59--A!%TEAMMATE5 # eSTATE7 WP_DOUBLERTEAMMATE5 #gJTEAMMATE5 #   &M " d  q &? 3 #  DyDy ALTAR_BLUE_1WP_ALTAR_BLUE_1)WP_ALTAR_BLUE_2)!K ALTAR_BLUE_2WP_ALTAR_RED_1)!J ALTAR_RED_1WP_ALTAR_RED_2)!J ALTAR_RED_2 WP_DOUBLER)?!!FDOUBLER DyDy NPC_;#\#!"$U WP_#  WP_ALTAR_BLUE_1 #* ALTAR_BLUE_1-WP_ALTAR_BLUE_2 #* ALTAR_BLUE_2-WP_ALTAR_RED_1 #) ALTAR_RED_1-WP_ALTAR_RED_2 #) ALTAR_RED_2E- WP_DOUBLER #%DOUBLER TEAMMATE5 #,2  TEAMMATE9TEAMMATE9STATE3 4TARGET5" VSTATE7TARGET5TARGET9@-STATE7STATE7 T9_#_DIPS#3\0T9_#_DIPS#3    % % % % % %. %@ %X %jyjr<MDАϙ\Cj4"< T9_#_DIPS#7Call T9_#_DIPS#3\#0 T9_I# _SPAWNCOUNT#DOUBLER3 T9_# _SPAWNCOUNT#DOUBLER7T9_# _SPAWNCOUNT#DOUBLER3 STATE3 zSTATE7 WP_ENTRY_#_2#TARGET9STATE7 STATE3 ' #+'-' #+'K-' #+'w -' #&STATE7-' #+'-' #+'H-' #+'t  % % % % % % %z %jjdDAMAGED_SECOND7<J0>$2  |"&ALIVE7U-?!,ALIVE7@"@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k "INDEX3   c NW_WBWMXL009*#*"-)?!( # @! $e-A G "Healing  "  }_NEEDED#  J ,,$    |bALIVE3 $$z   g_NEEDED# $m  PA ENEMIES\#7$J  (_NEEDED#2ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED##r ,#_NEEDED#\#$o NPC_#_#\#   %N %Z %l %~X0  7 PORTAL_ #_1# *"!l # $$  >3 d   iTARGET6 " $$  ]TARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6   % % % %| %r %b %R %BHB<J0|$N NPC_#_3# #3NPC_a#_5# #  WV?!T-6T11_MELEE_WEAPON6   T11_TARGET6*"\ T11_TARGET:T11_TASK7R)T11_TASK3 F?!(4!  *J T11_TARGET:T11_TASK7d-*] T11_TARGET6 T11_TARGET:T11_TASK7-*J T11_TARGET:T11_TASK7-R #U T11_TARGET:T11_TASK7 T11_TARGET6)y0" ;0-fyf0" ;f0o-xyx0" ;x0-NyN0" ;N0->y>0" ;>0-T?!$   WP_DOUBLER WP_ALTAR_7#_1# WP_ALTAR_#_2# WP_ALTAR_#_1# WP_ALTAR_c#_2#7 WP_DOUBLER8 WP_ALTAR_#_1#8 WP_ALTAR_#_2#8p WP_ALTAR_L#_1#8& WP_ALTAR_#_2#8jD WP_DOUBLER# #p ALTAR_RED_1kA #*?! ALTAR_RED_2j #*?! ALTAR_BLUE_1ja #*?! ALTAR_BLUE_2jL #*?!@@!- WP_ALTAR_#_1# #*@!(- WP_ALTAR_5#_2# #*@!- WP_ALTAR_#_1# #*@!h- WP_ALTAR_a#_2# #*@!- DAp!I2?!!-SB P?&!!$@ $;Af} # $`-;Af` # #$@!Bp! Bp?Bp!!%!*@!*@!"  *@@! " *>! *@!  *@! Ap!d   WP_ALTAR_BLUE_1 ##WP_ALTAR_BLUE_2 # "WP_ALTAR_RED_1 # "WP_ALTAR_RED_2 #  WP_DOUBLER # wAp!d   "T11_TASK3 2 T11_TARGET6 # ,k*-A-qT11_TASK3 0 T11_TARGET6 #  ,~$$ @!d  T11_TASK3 ( T11_TARGET6* .X$ '@!d  ."dB * `1 =1$ P WP_DOUBLER4!UWP_CENTRE_BLUE WP_DOUBLER4WP_ALTAR_BLUE_14![WP_FRONT_BLUE_1WP_ALTAR_BLUE_14WP_ALTAR_BLUE_24![WP_FRONT_BLUE_2WP_ALTAR_BLUE_24WP_ALTAR_RED_14!YWP_FRONT_RED_1WP_ALTAR_RED_14WP_ALTAR_RED_24!YWP_FRONT_RED_2WP_ALTAR_RED_24 T11_TASK7T11_MELEE_WEAPON:TARGET9 T11_TARGET:  % % % % % % %p %`f hN P60$$. * %N %^ %n %~~X `2 n:  H "5@ "nAt %Q-,@  " @ :o@y "68  u?!& " #U  ,z^$  %d % % % %=BkC WP_DOUBLERvIllegal waypoint index: \#A WP_DOUBLER  $v30  " "1!  8$ t< % % % %  %4 %] %NPC_#_1#NPC_#_2#NPC_#_3#uNPC_#_4#6NPC_#_5#NPC_#_6#NPC_#_7#yIllegal enemy index: \# NPC_BLUE_1 )!$ &@!,XomCOLOR5 # FA  "V'@Ejp" @ . "7@ "nAX %Q-~@x" @S A[ "68 @TARGET5 #M*"& "1 TARGET:)?!$  ,,,7 %N % % %=cy c0" [c04y 0" [0_D 7J  l "y;0-y;0-y;0v-y;0(-  'l " 7O2  12 48 ? u!8$\ )W!L! 1 ",@@B ",@@ ",@e ",@v! ",@2?   *"w??12 &!A !hs_&! !-r)TARGET6 " '! ,!$$! !,@ !?! ,@@O !G& " ,=?!!,=~@!!,=8?  %* %G %d % % % % % % %- %I %e % % NPC_BLUE_1 NPC_BLUE_2 NPC_BLUE_3 NPC_BLUE_4m NPC_BLUE_5: NPC_BLUE_6 NPC_BLUE_7 NPC_RED_1 NPC_RED_2p NPC_RED_3> NPC_RED_4  NPC_RED_5 NPC_RED_6 NPC_RED_7vIllegal creature index: \#q NPC_BLUE_1  JTARGET9  % % % % % %z %j %Z`ZT IN_COMBAT70>$,5 WP_'#_1#& ALTAR_BOY7@ ALLY_BUSY_; A#'7BUFFING3(BUFFING7 JUST_SPAWNED3 ) JUST_SPAWNED3   JUST_SPAWNED3  JUST_SPAWNED7U %8 %" % &Q ALLY_BUSY_; A#'7z- JUST_SPAWNED3  ALLY_BUSY_; A#'7 JUST_SPAWNED3  JUST_SPAWNED7- JUST_SPAWNED3  JUST_SPAWNED3  JUST_SPAWNED7 ALLY_BUSY_; A#'7 IN_COMBAT3@" * IN_COMBAT7 t13_stamp'3'k  $@ TNPCS_AT_ALTAR_\#'7$ uNPC_'#_#\#CH ALTAR_\#'6!8$+NPC_\#_NEAREST_ALTAR#'7ALTAR_\#'6A!pNPCS_AT_ALTAR_\#'3 NPCS_AT_ALTAR_\#'7$ NPC_'#_#\#CH ALTAR_\#'6!8$+ALLY_\#_NEAREST_ALTAR#'7ALTAR_\#'6?! $" t13_stamp'7   {NPCS_AT_ALTAR_\#'3 % NPC_'#_#\# ALLY_BUSY_\#'3"MNPC_'#_#\#ALTAR_\#'6 ALTAR_BOY3 2! 6#$  ALLY_BUSY_\#'7 ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7$[    NPCS_AT_ALTAR_\#'3  c NPC_'#_#\# ALLY_BUSY_\#'3"{NPC_'#_#\#U ALTAR_\#'6 2! %BH! 6#$  ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7- NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F f- ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7 NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F - ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7$    gNPCS_AT_ALTAR_\#'3   NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F   ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7 NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F b ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7 NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F  ALLY_ACTION_\#'5ALTAR_\# #V,   NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9, >ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7$o   ALLY_BUSY_\#'3" ALTAR_BOYNPC_'#_#\#3m$EALTAR_5 ALLY_ACTION_\#'9 ALLY_BUSY_\#'7,   NPC_'#_#\#, + NPC_'#_#\#$ WP_'#_1#&U %N %~ %n %O]BUFFING7BUFFING3  y0" ;0-y;0V-N0";N0 ALLY_BUSY_; A#'70"0 ALLY_BUSY_; A#'7   < <  <      JUST_SPAWNED7   % % % %| %r %M %= %-3-'L=" !   !   ,Ͼ j BX  >1 # >7 # 8casterL->2 # >6 # 7rogue->3 # >5 # 9warrior4-cleric>     !  %" %AR<)A !#  @TARGETPORTAL_% #_#>#5 #"1*")* 2!R@!#6"@TARGETPORTAL_"#_#>#5 #&T$PTARGETPORTAL_!#_#>#9*")?!$6 # T  CPEPEPORTAL_ #_1#3  LEAVING DOUBLER, OWNED ALTARS :  \# TARGETPORTAL_ #_#>#9  =!5!!F!4!!@!4g!!F!6! !F! 5 NEWTARGET: #CL: # !#CR: # !#FL: # !#FR: # ! #DB: # !#  NEW TARGET: # MAX: # # ===L2e %1%31(&%2QX(&%0%!!!!! !!!!!0n4$/l4$0y"4$04$.} @-!  &" I-PEPEPORTAL_#_1#7  %A ! *"" 11&$<# !  #,! #,A !,A(W",@,TARGETPORTAL_-#_#>#5 #,8  *'Z # $)BQ # $*  # $) # $  FIRST_ROUNDPORTAL_ #_1#3SKIPPER0f7 >1 #('e->7 #('-'# FIRST_ROUNDPORTAL_#_1#7P-"TARGETPORTAL_)#_#>#9  % % % %| %r %b %R %BHB<J0$` NPC_#_1# # NPC_P#_2# #*NPC_ #_3# # NPC_ #_4# # NPC_ #_5# # NPC_ j#_6# #DNPC_ &#_7# #   @TARGET5 #*"U)*j 2D!@!"@TARGET5 #&T$ETARGET9*")?!$ 8NPC_ %#_1# #SPELL3 FNkSPELL7B-jSPELL7NPC_Q#_2# #B2  LNPC_#_3# #BF2  L"NPC_y#_4# #SPELL3 FiZSPELL7B-iSPELL7NPC_#_5# #B2  JNPC_9#_6# #B2  JvNPC_#_7# #SPELL3 FgSPELL7B-glSPELL7  NPC_#_1# #"-NPC_r#_2# #"V-NPC_$#_3# #" R-NPC_#_4# #" -NPC_#_5# #" zl-NPC_:#_6# #"-W  #(-܋N #(n-j; #(@- NPC_^#_1#)NPC_#_7#)C WP_#_4#)WP_[#_4#)Q))3))o)  # l # ؠ # 2d # . # It$ g!"{ g!" g!" g!" a!C{Is!.P: WP_#_4#)WP_#_4#)))p)))!!! -4v-!3/--!! -[v-!3/-   #( -х4 #( -d5 #(:n- #(- ^     #( w- p #( - ?q4 #( n- P! #( &-  NPC_D#_1#)NPC_#_7#))  X #( .- ix; #( ?n- ( #( - DSPELL7NPC_#_1# # -NPC_#_2# # L-NPC_z#_3# # -NPC_.#_4# # -NPC_#_5# # h-NPC_#_6# # - % %6 % % %\ % %* #(n-u8 #(-n  #(on-ȹ| #(-2 (-\ (-ǡd #(h$-/ #($-"TARGET9 .= # $ # $űt # $9k. # $  % % % %| %r %b %R %BHB<J0/j$?  GroupStrength8 5NearbyEnemyStrength8Retreat7 F: Z * GroupStrength4y!  n @  $TARGET5*"+ #S #  # % #  # )*j 2D!@!x"@TARGET5 #&T$-# TARGET9*")@!5?ff$i  M2  "  kA !4!-,$ 21NPC_#_1# #0NPC_{#_1# #  ?333-NPC_A#_2# #0NPC_#_2# #  ?ffg"-NPC_#_3# #0NPC_S#_3# #  ?-NPC_#_4# #0NPC_#_4# #  ?-NPC_߅#_5# #0NPC_+#_5# #  ?f-NPC_#_6# #0NPC_ߗ#_6# #  ?ffg-NPC_]#_7# #0NPC_#_7# #  ?333>-k ?!! 2  " [" iA !4!-,$ F<! !8$X  % % % % %+ %C %Z %r % % % % % % % %, %B %Y %p % % % % % % % %) %@ %R %i % %! %WP_ALTAR_BLUE_1WP_ALTAR_BLUE_1AWP_ALTAR_BLUE_1BsWP_ALTAR_BLUE_1CEWP_ALTAR_BLUE_1DWP_ALTAR_BLUE_2WP_ALTAR_BLUE_2AWP_ALTAR_BLUE_2BWP_ALTAR_BLUE_2C`WP_ALTAR_BLUE_2D2WP_ALTAR_RED_1WP_ALTAR_RED_1AWP_ALTAR_RED_1BWP_ALTAR_RED_1CWP_ALTAR_RED_1DRWP_ALTAR_RED_2&WP_ALTAR_RED_2AWP_ALTAR_RED_2BWP_ALTAR_RED_2CWP_ALTAR_RED_2DrWP_CENTRE_BLUE_1DWP_CENTRE_BLUE_2WP_CENTRE_BLUE_3 WP_CENTRE_REDWP_CENTRE_RED_1WP_CENTRE_RED_2cWP_CENTRE_RED_36 WP_DOUBLERWP_FRONT_BLUE_1WP_FRONT_BLUE_2WP_FRONT_RED_1WP_FRONT_RED_2\WP_CENTRE_BLUE0    PORTAL_ѥ#_1# MapValues_\#3 MyMapValues_\#3 !-{ MapValues_\#3 MyMapValues_\#3 5! B!,?-B@!!,?ffgdX-B@@!!,?L-B@!!,?333-B@!!,?-B@!!,?L@-B@!!,>-BA!!,>-BA!!,>Lzn-BA !!,=4(-   F<! !@@!x MyMapValues_\# 32  MyMapValues_\#7$   "%A !   ^ H$,!-  " H$!-&$I Q> hasSummonedCreature3 NPC_#_7# "T, 3 A -NPC_a#_4# "T, 3 A -NPC_#_1# "T, 3 A hasSummonedCreature7 NPC_#_4# "B*d  1A!ٸ ! t!  L? ! "-L$* y = 0s-*"y ="0 hasCastStoneSkin3 yX, 70 A0hasCastStoneSkin7 @" B*d  GA !6޹ GroupStrength4!  p! ߦ! "-L$% "  '! . 8- c=!8$ *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   }   . Ю  NPC_<#_1# ":PORTAL_#_1#$-^! *  MapValues_\#7$T c?!! -! v-?!! :-!  9 #̀ #  #d  4  *(- -a # #  #r  4  8(- - #4 #  4  (- Z(-2  # $-$Q # $-$a2 # $-$ # $-$AC # -    $!  GroupStrength4  MyMapValues_\#7$. )!"?ff!!   -!!  -!"?ff!!  Z-!!   c # # 7 # Š # c # c= #7  A ! "]  " )TARGET5 # 7NPC_#_3# # 7NPC_#_5# # rZ- ",2l-$  startl3 hKϪstart7N-:TARGET9  HPORTAL_#_1#$-! 2$ #<  MapValues_\#7-e #<  MapValues_\#7,-v #&: # <  MapValues_\#7- #<  MapValues_\#78- MapValues_\#7$  % % % %v %l %\ %L %<B<60>$  T17_HeartBeat: #*"|T17_HeartBeat: # : oTarget: ##&  T17_EvalFittnesst17TurnCounter3T17_EvalFittness: turnCounter: \#} uxQt17PrevRoundScore3t17RoundStartScore3  OT17_EvalFittness: roundScore\#_t17RoundStartScore7t17PrevRoundScore7   t17TurnCounter7 ]*(j   "  !t17TargetWeight#8^ DOUBLER #  ALTAR_BLUE_1 #   ALTAR_BLUE_2 #  ALTAR_RED_1 #  ALTAR_RED_2 # ,:(- T17_DecideTarget: #]?t17IsFollowingPartyMember7*j   " " vt17TargetWeight#4)"2t17IsFollowingPartyMember3" ? !"!! H!T17_DecideTarget: target: #T17_DecideTarget: weight:  #T17_DecideTarget: distance:  #(T17_DecideTarget: bestWeightedDistance:  #6^:t17IsFollowingPartyMember7  T17_Spawn: #U  % % % %| %r % % %   r jd^' #' # &timer7 $yU ;0yU ;0 ylNyNCxyxfyfyyyv>y>MALTAR_S#_1#qr5 #ALTAR_#_2#q8 # DOUBLERq # &-ALTAR_#_1#p #ALTAR_d#_2#pF # X-ALTAR_#_1#p- #ALTAR_#_2#o #    x  SPELL_\#3UXT1 VSPELL_\#3 L SPELL_\#7m0SPELL_\#7 timer3timer3 U0timer7,- timer7 T18_ModeY7 T18_Mode23  ' #ALTAR_?#_1#l^! #R WP_ALTAR_#_1#ALTAR_#_1#)'ALTAR_X#_1#!L WP_ALTAR_#_1#I- WP_ALTAR_#_1C#' #ALTAR_T#_1#js6 #R WP_ALTAR_#_1#ALTAR_#_1#)'ALTAR_m#_1#!L WP_ALTAR_ #_1#I- WP_ALTAR_#_1C#' #5 WP_DOUBLER' #&ALTAR_#_1#h> #R WP_ALTAR_#_1#-ALTAR_#_2#gs #R WP_ALTAR_D#_2#?' #5 WP_DOUBLER' #ALTAR_#_2#f| #S WP_ALTAR_M#_2D#G WP_ALTAR_#_2#)' WP_ALTAR_#_2#!L WP_ALTAR_K#_2#I- WP_ALTAR_#_2C#' #ALTAR_#_2#d #R WP_ALTAR_[#_2#V WP_ALTAR_#_2#)' WP_ALTAR_#_2#!L WP_ALTAR_Z#_2#I- WP_ALTAR_#_2C# ' #JALTAR_#_1#)'ALTAR_Z#_1#!L WP_ALTAR_#_1#I- WP_ALTAR_#_1C#' #JALTAR_P#_1#)'ALTAR_#_1#!L WP_ALTAR_#_1#I- WP_ALTAR_R#_1C#' #5 WP_DOUBLER' #5 WP_DOUBLER' #5 WP_DOUBLER' #P WP_ALTAR_#_2#)' WP_ALTAR_#_2#!L WP_ALTAR_W#_2#I- WP_ALTAR_#_2C#' #P WP_ALTAR_#_2#)' WP_ALTAR_S#_2#!L WP_ALTAR_#_2#I- WP_ALTAR_#_2C# ' #IALTAR_G#_1#)'ALTAR_#_1#!L WP_ALTAR_#_1#H- WP_ALTAR_5#_1#' #IALTAR_#_1#)'ALTAR_#_1#!L WP_ALTAR_3#_1#H- WP_ALTAR_#_1#' #_ WP_DOUBLER)' WP_DOUBLER' WP_DOUBLER!! 5 WP_DOUBLERH- WP_ALTAR_c#_1#' #_ WP_DOUBLER)' WP_DOUBLER' WP_DOUBLER!! 5 WP_DOUBLERH- WP_ALTAR_}#_1#' #_ WP_DOUBLER)' WP_DOUBLER' WP_DOUBLER!! 5 WP_DOUBLERH- WP_ALTAR_|{#_1#' #O WP_ALTAR_{,#_2#)' WP_ALTAR_z#_2#!L WP_ALTAR_zs#_2#H- WP_ALTAR_{#_1#' #O WP_ALTAR_y#_2#)' WP_ALTAR_yp#_2#!L WP_ALTAR_y#_2#H- WP_ALTAR_y#_1# INDEX3 rl)@ ! )- f)@ ! I- r)@ ! -@" "YNPC_v#_1#@! 2!(   5- "SNPC_u%#_4#@! 2 !(   /F- "YNPC_tO#_7#@! 21!(   5wd-   r NW_WBWMXL009#WP_CROSSROADS_r#*"6 rn # n$WP_CROSSROADS_r#!%- 5M- 5  % % % %v %l %\ %L %<B<608$v % 3     " )A!  " 5  F+ "lvI)n #5 < "5 kP6  STONESKIN5 # "C, (TRUE STONESKIN9 &@-, )FALSE STONESKIN9 &, %FALSEHASTE9 & NPC_l#_4#  ,{)A!8 STONESKIN?5TRUE # T,},)B !TcZ,8  HASTE5 #B, 'FALSEHASTE9 &HASTE5TRUE #q̉"NQ a, &TRUEHASTE9 &>  *   STONESKIN5 #F, +FALSE STONESKIN9 & STONESKIN5TRUE #7e, *TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_fm#_1#  NPC_f&#_7#  |{}t|F<!#? # 8!#>l # 8!#= # V!8!#=" # V!8 " " F     9w w;a #]wp; # -wH\ "  w:` # $v:`m # $x2:d`' # $wM:_ # $ v8upw$v\)?!.?)?!.)?!.)?!.vd ".N8 s[)?!9s52  r)A!r6 # Or2  rr(!.r>5[q # qAT_ALTAR5TRUE #D!.q4Z # qAT_ALTAR5TRUE #D>  ALTAR_RED1 ALTAR_RED2 ALTAR_BLUE1 ALTAR_BLUE1   nM2XO #Ynn2C # -+' ALTAR_RED_11W #% ALTAR_RED_11 # !1 .A!.  W ALTAR_RED_1!1 ALTAR_RED_20V #% ALTAR_RED_20 # !1 .A!"  W ALTAR_RED_2!1 ALTAR_BLUE_1/U #& ALTAR_BLUE_1/ # !1 .A!  X ALTAR_BLUE_1!1 ALTAR_BLUE_2.Tu #& ALTAR_BLUE_2.| # ! 1 .A!   X ALTAR_BLUE_2! 1AT_ALTAR5TRUE #* s ATTACKINGSTATE9ZERGING #!!# , )FALSE STONESKIN9 &, %FALSEHASTE9 &  % % % %v %l %\ %L %<B<60>$/ @!TRUE #DOUBLER@!qDOUBLERTARGET9SA9-U TRUE #%DOUBLERg-U ($-oTARGET9  NPC_O#_1# #.TRUE-NPC_N#_4# #.TRUE-NPC_NP#_3# #.TRUE7+-FALSE  MNALTAR_#_1#ALTAR_#_2#NPC_#_6#NPC_#_2# #K LASTTARGETkC9G- LASTTARGETj9 MKALTAR_#_1#ALTAR_#_2#ALTAR_#_1#ALTAR_#_2#DOUBLER%T #%DOUBLER-% #&$J # "-$ #&$iJ, # "-$# #"\-# #"- JIALTAR_#_1#ALTAR_#_2#ALTAR_#_1#ALTAR_#_2#DOUBLERU (+c-TRUE #%DOUBLER$-TARGET9   % % % %v %l %\ %L %<B<60>$C NPC_F#_1# "59>PHASEPORTAL_E#_4#3 TARGET5 #9Z\zE= #&Z>E #   #*"8y)Ap!$b-:y.[JD # k[:-:y(Y.mD # eY:PHASEPORTAL_B#_4#3 TARGET5 #6E #*"5)Ap!$ %N % % %ByXD#Bb:y.Wd5@ # kW0::y(UD@2 # eU:TARGET5 #*"c)A !$0&-NPC_=#_2# "u16HPHASEPORTAL_=d#_4#3  FR_HOSTILESPORTAL_=#_4#3 FR_FRIENDLIESPORTAL_<#_4#3S)A !hATARGET91- #*"5)Ap!$l-@TARGET9\!-NPC_(7#_5# "fPHASEPORTAL_'#_4#3 b D_HOSTILESPORTAL_'#_4#3 D_FRIENDLIESPORTAL_'T#_4#3 NR_HOSTILESPORTAL_'#_4#3 NR_FRIENDLIESPORTAL_&#_4#3 FR_HOSTILESPORTAL_&\#_4#3 FR_FRIENDLIESPORTAL_&#_4#3;% #       j;,TARGET9-:$ #      p;TARGET9-l-9TARGET9-PHASEPORTAL_#P#_4#3 lTARGET5 # WP_ENTRY_"#_3# #*"])A !h:TARGET9- FL_HOSTILESPORTAL_!#_4#3 FL_FRIENDLIESPORTAL_!=#_4#394 #  p8TARGET9- WP_ENTRY_!$#_1#TARGET9--NPC_#_6# " s5{ #"5R # "6G # "6 # 4k # LPHASEPORTAL_=#_4#3  N FL_HOSTILESPORTAL_#_4#3 NL_HOSTILESPORTAL_#_4#3 FR_HOSTILESPORTAL_9#_4#3 NR_HOSTILESPORTAL_#_4#3   NPHASEPORTAL_;#_4#7J-PHASEPORTAL_#_4#7X-PHASEPORTAL_#_4#3  PHASEPORTAL_W#_4#3 1N #p1TARGET9@-0 #  D_HOSTILESPORTAL_\#_4#3 D_FRIENDLIESPORTAL_ #_4#3 NL_HOSTILESPORTAL_#_4#3 NL_FRIENDLIESPORTAL_c#_4#3   "   j.TARGET9-0V # FL_HOSTILESPORTAL_#_4#3 p/TARGET9K-PHASEPORTAL_?#_4#3  FL_HOSTILESPORTAL_#_4#3 FL_FRIENDLIESPORTAL_#_4#3.^S #"   p-TARGET9}-WP_z#_2#TARGET9k-NPC_#_7# "0PHASEPORTAL_#_4#3 TARGET5 #Ag #*")Ap!$ %N % %p %By*D#BLwy(D#wy(HC#TARGET5 #*"c)A !$^-PHASEPORTAL_#_4#3 PREPARED3"y;0y;0PREPARED7TARGET5 # #*")Ap!$@%ORDERS3  bTARGET5 #*") #?! A! $  !""#   NPC_ #_#\#*",$]A! $A! $A! $A! $A! $$ NR_HOSTILESPORTAL_#_4#7 NL_HOSTILESPORTAL_C#_4#7 FR_HOSTILESPORTAL_#_4#7 FL_HOSTILESPORTAL_#_4#7 D_HOSTILESPORTAL_f#_4#7 VB NPC_#_#\#*",$]A! $A! $A! $A! $A! $$ NR_FRIENDLIESPORTAL_#_4#7 NL_FRIENDLIESPORTAL_x#_4#7 FR_FRIENDLIESPORTAL_,#_4#7 FL_FRIENDLIESPORTAL_#_4#7 D_FRIENDLIESPORTAL_#_4#7 NPC_W#_1# "}PHASEPORTAL_#_4#3 ORDERS7TARGET9-PHASEPORTAL_G#_4#3 ORDERS7TARGET9-PHASEPORTAL_v#_4#3 ORDERS7CTARGET9K-NPC_#_2# ",PHASEPORTAL_f#_4#3 pNTARGET9r-PHASEPORTAL_#_4#3 pTARGET9-PHASEPORTAL_#_4#3 pTARGET9-NPC_D#_3# "aPHASEPORTAL_#_4#3 wD#TARGET9-PHASEPORTAL_H#_4#3  WP_ENTRY_ #_1#TARGET9-PHASEPORTAL_{#_4#3  WP_ENTRY_<#_3#TARGET9 T-NPC_#_4# "PHASEPORTAL_o#_4#3 pWTARGET9- FL_HOSTILESPORTAL_#_4#3 NL_HOSTILESPORTAL_S#_4#3 FR_HOSTILESPORTAL_#_4#3 NR_HOSTILESPORTAL_#_4#3   NPHASEPORTAL_#_4#7J-PHASEPORTAL_#_4#7PHASEPORTAL_}#_4#3  WP_ENTRY_>#_1#TARGET9-PHASEPORTAL_#_4#3  WP_ENTRY_q#_3#TARGET9-NPC_#_5# "&PHASEPORTAL_#_4#3 j \TARGET9r-PHASEPORTAL_#_4#3 p TARGET9-PHASEPORTAL_8#_4#3 p TARGET9(-NPC_#_6# ",PHASEPORTAL_C#_4#3 p TARGET9r-PHASEPORTAL_#_4#3 p TARGET9-PHASEPORTAL_#_4#3 p^TARGET9-NPC_!#_7# ",PHASEPORTAL_#_4#3 piTARGET9r-PHASEPORTAL_,#_4#3 pTARGET9-PHASEPORTAL_v#_4#3 pTARGET9f-TARGET9 W % % % %D %: % % %12!>!0NW_IT_MPOTION001I;TARGET 5UNPC_#_1# # 2-NPC_#_2# # -NPC_#_3# # -NPC_#_4# # -NPC_#_5# # j-NPC_#_6# # 8-NPC_#_7# # -NPC_#_1# #xy  k  ;x0-NPC_#_7# #;y  k  :;0NPC_#_4# #>yk 3NPC_%#_#\#!"NPC_#_#\#tNPC_h#_#\#>0&$*   @NPC_#_1# # TARGET5FINALDESTINATION3"[((!( "$-NPC_#_2# #TARGET_5 -NPC_#_3# #SIKAMODE3"pTARGET5?3-NPC_#_4# #/TARGET5-NPC_#_5# #TARGETB5-NPC_#_6# #!TARGET5G;-NPC_#_7# #!TARGET5FINALDESTINATION3"W ((!( "$ NyN0" ;N0-yO0"A"  ;0k-R"S^U  N-)@!FINALDESTINATION7 AREASLOWER3"z WP_ALTAR_#_2A#B0  AREASLOWERT7})@! TEAM_1_TARGETPORTAL_+#_1#5TARGET9 [y",')Ap!, #,0"Z0,   , !? -0"j 08 y0" ;0\-:yCBp 1 "& "#Ap! Ap!Y! !U    I:0m$)?!FINALDESTINATION7 AREASLOWER3"z WP_ALTAR_خ#_2A#B0  AREASLOWER7CTARGET5 " ! qCTARGET#9& "@ey=e0-ky=k0V-sy=s0"7CTARGET9 "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET09*-CTARGET9 \)@!B"#Ҷ #<." X@5U )@! >  !  %TARGET9 7cTARGET90? #YNPC_#_2#@@! TTARGET9SIKAMODE7-)h+ #NTARGET9SIKAMODE7D-!ε #TTARGET$9SIKAMODE7-PORTAL_0#_6#TARGET9SIKAMODE7??PORTAL_Ν#_4#SIKAMODE3"mTARGET5 TEAM_1_TARGETPORTAL_1#_1#9SIKAMODE30But I'm going to rock ̔ # $N # $6E # $ # $ ,8 TARGET9Aj!  !  YREINFORCEDOUBLERPORTAL_h#_1#7! [y ()@@! ;[0-!>y GT>0")A! =>0y& ";04-y& ";0-y & ";0 v7TARGETn9CM-=[TARGET'9"U #YNPC_)#_6#ܿ@@! TܗTARGETc9SIKAMODE7Q-|~ #NXTARGET9SIKAMODE7-E #TTARGETw9SIKAMODE7e-PORTAL_Ń#_2#TARGET9SIKAMODE7SIKAMODE3"mTARGET5 TEAM_2_TARGETPORTAL_#_1#9SIKAMODE3-I'm going to rock! Q? # (- # ${ # $ ,8 خ)@!B"#@HU )@! >  !  %VTARGET"9 y0" ;0-cyc0" ;c0-e)@!FINALDESTINATION7 AREASLOWERݰ3"z WP_ALTAR_#_1A#0  AREASLOWER7 TEAM_2_TARGETPORTAL_#_1#5TARGET܀9 TARGET9  % % % %p %` %P %@ %0B<60*$,   8  y ) NW_WBWMXL009 NW_WBWMSL010 NW_WBWMSH009*%#*%#[*%#)  1   A A '*e#Interrupting running to cast SPELL # ~   i   A !*`Interrupting running to FIGHT #     BUFF3       bNPC_#_#\# BUFF_TARGET5 # # ?TARGET93Someone wants to buff me, closing in to fetch buff. $)5++BUFF7l!-BUFF747   g  9- NW_ANIM_CONDITION7 \ ey ,F;y ,AA'F@        NPC_#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #eky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #"uLy L0HAMMER OF THE GODS at #}=y =FLAME STRIKE at #2   NPC_8#_#\#*") !  pNPC_5#_#\#NPC_#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 dX2'F@ DNPC_#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"jiC%Ranged attack at # g)A @ #! !&I'm not being VERY STUPID, distance = # >   ׊  ؗ Q       N  c    #  "y 8F@ NPC_#_#\#*"V 90- ?%1@ff!2!!)!8$A !NPC_#_#\# BUFF_TARGET9=4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNPC_M#_#\#*"0 ^4WWWWWWWWWWWWWWTTTTTTTTTTTTTTTTFFFFFFFFFFFFFF valid: *\#]0$Ax,V BUFF_TARGET9 ҹl*"y j SUMMON 3!״_l*"\y W$y Wy WD    <ALTAR_#_1# <ALTAR_=#_2# <ALTAR_#_1# <ALTAR_#_2# %DOUBLER NPC_#_#\#TARGET5WP_# # $$=Y|+ ##TARGET5 # uWP_#TARGET9" gX~i #;%OUR ALTAR AND NO ONE IS INTERESTED??!XK #&X} # GP oNPC_}d#_#\#TARGET5 #.BUFF3  !8$NPC_{#_#\# "WP_#TARGET9- U- #TARGET5WP_# #)@!O(--TDz #TARGET5WP_# #)@!O(--TARGET5WP_# #Sx #}K"ETARGET9(-   ~*NOT* going to FUCK THEM UP: #, influence = #\# , luku = #\#zX-TARGET5 <TARGET5DOUBLERTARGET9 TARGET5 #Z$ERROR: No target string, quitting HB\*"Z$ERROR: No target object, quitting HBmOou #,L)* "p 2D!@!8"@TARGET5 #&T$m A  A 6NPC_r#_#\#NPC_q#_#\#! $! #$  % % % % % % % %v||\\<0 $    nAmazon# #%yAssassin# #%2Cleric# # %z % % % % %P0=00L0t0=0Fighter# #%Rogue# #%s Sorceress# #u %N %o % %00t0=:0Sorceror# # % % % %  %* %K %l %e0:0P040s00tk0=s0   21  1  @TARGET5 #6*")*j 2D!@!w"@TARGET5 #&T$y5TARGET9*"s)?!$  bGx/<> #(x< # ! %N %Z %f %rwZlw8Jw(w-w[: #(w7h-vr: #(vN-vTARGET9  % % % %v %l %\ %L %<B<60>$0q + deadcount#PORTAL_^e#_4#3 @  } deadcount#PORTAL_]#_4#7,{@R,z P HELPneedePORTAL_]#_4#3  0HELPPORTAL_\#_4#*B! HELPneedePORTAL_\4#_4#7HELPing:#,T#')*"o)?!$  StatePORTAL_Z#_4#5CHARGE #! ChargecounterPORTAL_Z#_4#3  ChargecounterPORTAL_Z4#_4#7qh49Y #.q4Y # 6DEFENDY+-p3Yh #. WP_DOUBLER3qY4 # 5RIGHTYf-p3X #. WP_DOUBLER2X # 4LEFTX - ChargecounterPORTAL_X7#_4#3  ChargecounterPORTAL_W#_4#7BOTTOMW 8 *DEFEND #[n1WW #.o.1`X # .m1*W # .l0V # 5RIGHTV  X-m0WD #.n/0aV$ # .l0+U # .k/V # 4LEFTU  Z-l/VF #.m1/cV # .k/-T # .j.T # . WP_DOUBLER.T # TdcounterPORTAL_TO#_4#3 dcounterPORTAL_T#_4#7dcounterPORTAL_S#_4#33 {dcounterPORTAL_Sv#_4#7BOTTOMSJ-jr-CS #.j-R # .ii,R # .h,Rf # 6CHARGERDLEFT #iV,'R #.i+R # .hM+Q # .gx+R6 # . WP_DOUBLER+QQ # TrcounterPORTAL_P#_4#3 rcounterPORTAL_P#_4#7rcounterPORTAL_PY#_4#33 {rcounterPORTAL_P#_4#7BOTTOMO_Qw-rcounterPORTAL_O#_4#7CHARGEO]RIGHT #ft)EO #.f)O # .ek(O # .d(Nh # . WP_DOUBLER(oN2 # rcounterPORTAL_M#_4#3 rcounterPORTAL_M#_4#7rcounterPORTAL_Mw#_4#33 rcounterPORTAL_M$#_4#7BOTTOMStatePORTAL_L#_4#9BOTTOML7)w-rcounterPORTAL_La#_4#7CHARGEL5BOTTOM #\cK&L #.c%L # bB%La #,aa%pL # , WP_DOUBLER%,K #  6CHARGEJPBDEFENDJ  RED #BLUE REDCHARGE #PORTAL_#_1# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_2# WP_ALTAR_#_2D#TARGET9ATTACKSTANCE9PORTAL_#_3# WP_FRONT_#_2#TARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_FRONT_#_1#TARGET9ATTACKSTANCE9PORTAL_#_6# WP_ALTAR_#_1D#TARGET9ATTACKSTANCE9PORTAL_#_7# WP_ALTAR_#_1#TARGET9STANDSTANCE9-DEFEND #PORTAL_#_1# WP_ALTAR_#_2E#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_3# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_6# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1E#TARGET9ATTACKSTANCE9)-LEFT #PORTAL_#_1# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_2# WP_FRONT_#_2#TARGET9ATTACKSTANCE9PORTAL_#_3# WP_CENTER_#_2#TARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_CENTER_#_1#TARGET9ATTACKSTANCE9PORTAL_#_6# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1C#TARGET9ATTACKSTANCE9 ?-RIGHT #PORTAL_#_1# WP_ALTAR_#_2C#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_3# WP_CENTER_#_1#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_CENTER_#_2#TARGET9STANDSTANCE9PORTAL_#_6# WP_FRONT_#_1#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1#TARGET9ATTACKSTANCE9V-BOTTOM #PORTAL_#_1# WP_ALTAR_#_1D#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_CENTER_#_2#TARGET9STANDSTANCE9PORTAL_#_3# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_6# WP_ALTAR_#_2D#TARGET9STANDSTANCE9PORTAL_#_7# WP_CENTER_#_2#TARGET9ATTACKSTANCE9k-PORTAL_#_1# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_2# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_3# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_6# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_7# WP_DOUBLERTARGET9ATTACKSTANCE9StatePORTAL_#_4#9 *? "p, )Zd% $- TARGETPY5  HELPPORTAL_1D#_4# HELPneedePORTAL_0#_4#7 @,yeSTAND #,2  STANCEN5 #.<ATTACK (#)# #Y# (# #)#  (  ! #, #  ! #, #  ! #)#  wO \event % % % % % % % %@"3INIT_HP31    "-A @@@"3INIT_HP31    "-@kweak # 6\-tank #$.6-ranged #%-%E?931INIT_HP7&:  "'role5 #.born "U "weak- $ranged- "tankk- $healer5-\BUG got class m "'role9 : ##, ##, ##, ##.#0 8'F<*)A! ;@  :"1  =1:2"%! C$6@  " lhealer #fA !6]-weak #ZA !W~-tank #"H-A !0q ! ! ! ! ?@@!!!!!!!!!!!!0?!D!!! W ?p(   '?!!!!!!!! "running away from  #,# # to # !!#,# !!##gen location failed6 shout @&\NbP } 1 @,8  *$)! 0"k1 , $  ytank # @-healer # @R-ranged # A-Atank1 #tank2 # .tank15* .tank25* Wtank25tank15A ! , tank1 #.tank15* /healer5* Xhealer5tank15A ! , tank2 #.tank25* /healer5* Xhealer5tank25A ! ,tank1 #tank2 # .tank15* .tank25* Wtank25tank15A! #tank1|-tank1 #healer # .tank1 5* /healer 5* Xhealer t5tank1 S5A! #tank1S-tank2 #healer # .tank25* /healer5* Xhealer5tank25A! #tank2*-healer #ranged1 # ranged2 # /healer5* 0ranged15* 0ranged25* Zhealer5ranged15A! Zhealer_5ranged2<5A! $healer;-tank1 #.tank15* #tank1-tank2 #.tank25* #tank2_-healer #/healer5* $healer-ranged1 #0ranged15* %ranged1z-ranged2 #0ranged25* %ranged2 #,55!,healer #?5 stank15 #/tank1tank25 #/tank2weak15 #/weak1|weak25 #/weak2-ranged15 #1ranged1ranged25 #1ranged2healer5 #0healer6 PORTAL_ W#_1#  STRATEGIC_TARGET6>!h,  &@2  ALTAR_L6ALTAR_R6weak1 ##weak2-weak15*55!"-55! JP- " -%-55! p-T2 STRATEGIC_TARGET: =STRATEGIC_TARGET6 @" K2& STRATEGIC_TARGET6>!,8  @JRF2    @:J}6-[I weak #- ` ALTAR_C96 //::////////////////////////////////////////////////// //:: NW_C2_DEFAULT9 /* * Default OnSpawn handler with XP1 revisions. * This corresponds to and produces the same results * as the default OnSpawn handler in the OC. * * This can be used to customize creature behavior in three main ways: * * - Uncomment the existing lines of code to activate certain * common desired behaviors from the moment when the creature * spawns in. * * - Uncomment the user-defined event signals to cause the * creature to fire events that you can then handle with * a custom OnUserDefined event handler script. * * - Add new code _at the end_ to alter the initial * behavior in a more customized way. */ //::////////////////////////////////////////////////// //:: Copyright (c) 2002 Floodgate Entertainment //:: Created By: Naomi Novik //:: Created On: 12/11/2002 //::////////////////////////////////////////////////// //:: Updated 2003-08-20 Georg Zoeller: Added check for variables to active spawn in conditions without changing the spawnscript #include "x0_i0_anims" // #include "x0_i0_walkway" - in x0_i0_anims #include "x0_i0_treasure" #include "x2_inc_switches" #include "games_and_ai" void main() { // ***** Spawn-In Conditions ***** // // * REMOVE COMMENTS (// ) before the "Set..." functions to activate // * them. Do NOT touch lines commented out with // *, those are // * real comments for information. // * This causes the creature to say a one-line greeting in their // * conversation file upon perceiving the player. Put [NW_D2_GenCheck] // * in the "Text Seen When" field of the greeting in the conversation // * file. Don't attach any player responses. // * // SetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION); // * Same as above, but for hostile creatures to make them say // * a line before attacking. // * // SetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION); // * This NPC will attack when its allies call for help // * // SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET); // * If the NPC has the Hide skill they will go into stealth mode // * while doing WalkWayPoints(). // * // SetSpawnInCondition(NW_FLAG_STEALTH); //-------------------------------------------------------------------------- // Enable stealth mode by setting a variable on the creature // Great for ambushes // See x2_inc_switches for more information about this //-------------------------------------------------------------------------- if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_STEALTH) == TRUE) { SetSpawnInCondition(NW_FLAG_STEALTH); } // * Same, but for Search mode // * // SetSpawnInCondition(NW_FLAG_SEARCH); //-------------------------------------------------------------------------- // Make creature enter search mode after spawning by setting a variable // Great for guards, etc // See x2_inc_switches for more information about this //-------------------------------------------------------------------------- if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_SEARCH) == TRUE) { SetSpawnInCondition(NW_FLAG_SEARCH); } // * This will set the NPC to give a warning to non-enemies // * before attacking. // * NN -- no clue what this really does yet // * // SetSpawnInCondition(NW_FLAG_SET_WARNINGS); // * Separate the NPC's waypoints into day & night. // * See comment on WalkWayPoints() for use. // * // SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING); // * If this is set, the NPC will appear using the "EffectAppear" // * animation instead of fading in, *IF* SetListeningPatterns() // * is called below. // * //SetSpawnInCondition(NW_FLAG_APPEAR_SPAWN_IN_ANIMATION); // * This will cause an NPC to use common animations it possesses, // * and use social ones to any other nearby friendly NPCs. // * // SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS); //-------------------------------------------------------------------------- // Enable immobile ambient animations by setting a variable // See x2_inc_switches for more information about this //-------------------------------------------------------------------------- if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_AMBIENT_IMMOBILE) == TRUE) { SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS); } // * Same as above, except NPC will wander randomly around the // * area. // * // SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS); //-------------------------------------------------------------------------- // Enable mobile ambient animations by setting a variable // See x2_inc_switches for more information about this //-------------------------------------------------------------------------- if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_USE_SPAWN_AMBIENT) == TRUE) { SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS); } // **** Animation Conditions **** // // * These are extra conditions you can put on creatures with ambient // * animations. // * Civilized creatures interact with placeables in // * their area that have the tag "NW_INTERACTIVE" // * and "talk" to each other. // * // * Humanoid races are civilized by default, so only // * set this flag for monster races that you want to // * behave the same way. // SetAnimationCondition(NW_ANIM_FLAG_IS_CIVILIZED); // * If this flag is set, this creature will constantly // * be acting. Otherwise, creatures will only start // * performing their ambient animations when they // * first perceive a player, and they will stop when // * the player moves away. // SetAnimationCondition(NW_ANIM_FLAG_CONSTANT); // * Civilized creatures with this flag set will // * randomly use a few voicechats. It's a good // * idea to avoid putting this on multiple // * creatures using the same voiceset. // SetAnimationCondition(NW_ANIM_FLAG_CHATTER); // * Creatures with _immobile_ ambient animations // * can have this flag set to make them mobile in a // * close range. They will never leave their immediate // * area, but will move around in it, frequently // * returning to their starting point. // * // * Note that creatures spawned inside interior areas // * that contain a waypoint with one of the tags // * "NW_HOME", "NW_TAVERN", "NW_SHOP" will automatically // * have this condition set. // SetAnimationCondition(NW_ANIM_FLAG_IS_MOBILE_CLOSE_RANGE); // **** Special Combat Tactics *****// // * These are special flags that can be set on creatures to // * make them follow certain specialized combat tactics. // * NOTE: ONLY ONE OF THESE SHOULD BE SET ON A SINGLE CREATURE. // * Ranged attacker // * Will attempt to stay at ranged distance from their // * target. // SetCombatCondition(X0_COMBAT_FLAG_RANGED); // * Defensive attacker // * Will use defensive combat feats and parry // SetCombatCondition(X0_COMBAT_FLAG_DEFENSIVE); // * Ambusher // * Will go stealthy/invisible and attack, then // * run away and try to go stealthy again before // * attacking anew. // SetCombatCondition(X0_COMBAT_FLAG_AMBUSHER); // * Cowardly // * Cowardly creatures will attempt to flee // * attackers. // SetCombatCondition(X0_COMBAT_FLAG_COWARDLY); // **** Escape Commands ***** // // * NOTE: ONLY ONE OF THE FOLLOWING SHOULD EVER BE SET AT ONE TIME. // * NOTE2: Not clear that these actually work. -- NN // * Flee to a way point and return a short time later. // * // SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN); // * Flee to a way point and do not return. // * // SetSpawnInCondition(NW_FLAG_ESCAPE_LEAVE); // * Teleport to safety and do not return. // * // SetSpawnInCondition(NW_FLAG_TELEPORT_LEAVE); // * Teleport to safety and return a short time later. // * // SetSpawnInCondition(NW_FLAG_TELEPORT_RETURN); // ***** CUSTOM USER DEFINED EVENTS ***** / /* If you uncomment any of these conditions, the creature will fire a specific user-defined event number on each event. That will then allow you to write custom code in the "OnUserDefinedEvent" handler script to go on top of the default NPC behaviors for that event. Example: I want to add some custom behavior to my NPC when they are damaged. I uncomment the "NW_FLAG_DAMAGED_EVENT", then create a new user-defined script that has something like this in it: if (GetUserDefinedEventNumber() == 1006) { // Custom code for my NPC to execute when it's damaged } These user-defined events are in the range 1001-1007. */ // * Fire User Defined Event 1001 in the OnHeartbeat // * SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT); // * Fire User Defined Event 1002 // * SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT); // * Fire User Defined Event 1005 // * SetSpawnInCondition(NW_FLAG_ATTACK_EVENT); // * Fire User Defined Event 1006 // * SetSpawnInCondition(NW_FLAG_DAMAGED_EVENT); // * Fire User Defined Event 1008 // * SetSpawnInCondition(NW_FLAG_DISTURBED_EVENT); // * Fire User Defined Event 1003 // * SetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT); // * Fire User Defined Event 1004 // * // SetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT); // ***** DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) ***** // // * Goes through and sets up which shouts the NPC will listen to. // * SetListeningPatterns(); // * Walk among a set of waypoints. // * 1. Find waypoints with the tag "WP_" + NPC TAG + "_##" and walk // * among them in order. // * 2. If the tag of the Way Point is "POST_" + NPC TAG, stay there // * and return to it after combat. // // * Optional Parameters: // * void WalkWayPoints(int nRun = FALSE, float fPause = 1.0) // // * If "NW_FLAG_DAY_NIGHT_POSTING" is set above, you can also // * create waypoints with the tags "WN_" + NPC Tag + "_##" // * and those will be walked at night. (The standard waypoints // * will be walked during the day.) // * The night "posting" waypoint tag is simply "NIGHT_" + NPC tag. //WalkWayPoints(); //* Create a small amount of treasure on the creature //if ((GetLocalInt(GetModule(), "X2_L_NOTREASURE") == FALSE) && // (GetLocalInt(OBJECT_SELF, "X2_L_NOTREASURE") == FALSE) ) //{ // CTG_GenerateNPCTreasure(TREASURE_TYPE_MONSTER, OBJECT_SELF); //} // ***** ADD ANY SPECIAL ON-SPAWN CODE HERE ***** // // * If Incorporeal, apply changes if (GetCreatureFlag(OBJECT_SELF, CREATURE_VAR_IS_INCORPOREAL) == TRUE) { effect eConceal = EffectConcealment(50, MISS_CHANCE_TYPE_NORMAL); eConceal = ExtraordinaryEffect(eConceal); effect eGhost = EffectCutsceneGhost(); eGhost = ExtraordinaryEffect(eGhost); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eConceal, OBJECT_SELF); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eGhost, OBJECT_SELF); } ActivateUserDefined( EVENT_SPAWN ); } NCS V1.0BE nw_campaign_db_defaultnw_campaign_db_xp1BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +L *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&- }  ,1,  & ? y"e}* W^ %) %z %zC %d %N % %K %;, &3A@,3, Z & ?K, &" J - 'NW_ATTACK_MY_TARGETNW_I_WAS_ATTACKED-}~* @    J" COLOR5 "wf- ""2- " - "+m- "D- "Db- "J}.- "b- "s#- "s - "F^- "*- "- "&- "- "+Z- "&- "- "Ƕ- "Ǡ- "GV- "7"- "- "- "?- "?R- "s4-/ BRAZIER*",TEAM_#3 ,:  O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @]1YZ !NW_L_COMBATDIFF7* "$4 s' K(*)$(^?c $("} z' WNW_GENERIC_LAST_ATTACK_TARGET:?L UXj ,YV  J?*,-NW_ASSOCIATE_MASTER3 ,8  NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H-- gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  }!% ?*   *  * t$A 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  l-" N% - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  G  W&O-&*.:     + -   + C-= + * ,>    X0_L_NOTALLOWEDTOHAVEINVENTORY3         $   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND:  X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &* * E      - m l '  5* *    (*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2  Z3 + gd    ,2   @r-s @<-= @    W ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  " .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 * A" .#*ۚ P$   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & Kgk0"N>  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   +h kk & 5  4gkO  A! 6- " i  EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -E"  % %z %d %N %8 %" % 3E " X3Ej m   t 9    )A(!D6"Y-A66 уY- !52  %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8   ,c ,c NW_L_MEMORY3/27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT.Z ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2  p+"0Dc k *       *" i)@!H  )@@!*     *( % $(  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC) X2_L_BEH_OFFENSE( X2_L_BEH_COMPASSION( (   12 N ; ,c d  dj-){   ,c: P/[ ,c2 2  2  B NW_L_MEMORY70 ,c4 ,c; ,cB. ,cb2 2  2   NW_L_MEMORY7U       @C7,cD7 ,cEy ,c] ,c!F ,cH\ ,c_  ,cmaR ,c1b ,cr ,cx- ,ce2  NW_L_MEMORY7} ,c ,c NW_L_MEMORY7 ,c9 ,c,c ,c})N*   k k  k  k  k  k  k  k  k  1 2    3gNӋ-3gNJ   ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   A!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"*?c#A )@@!,0* ,*b ,8 *    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   pQ%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !1   S F BHA*  _ " "  ! Bp!@@! "Az    %" % &2  UUWd  Wd  g "-   "'-U W ,C  V-  a 0"x Q3> &   F    ,2  3 .8 8l9: <$0m0   ? QM ,2  $ymy  XyZy \y  y y !   t&*"O&*"H f6 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]F\ *",*"  *",ErA , 07 @ &  1 * 2Pg " 1  PO k , gPk&*k  G- '1+-1 2 " ?gP$&2 @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q1?0@p UX % %! %= %' %C % %   r N *  V1    o  ".-@vvg %?*8g&@  VX,gV,|$H &  *L " "   z"!b "  $ jk 0 ,i-  ,z2  @p(p %?*4g@7 V,gV,|$ Iԇ,A,A,xwӵ,2  " hg"i #g - T,>  g"i; g - kZ   ,,> "g"wg",jk 0" N8 Z((  g   ^ g&i 4 H- 'g&  4 -g& ' 4 $ jk o0"N&- o"NJ-U> l*)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $e*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER  ,g. g.jV  FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 l*"Byy]g*    :  h@! ; :  !--[?*)?6-6D  y4-[y4[-y4M-y4 O2Y0 t*",* %,(-6 qtg+j $k0" k" j  j ktHs gX ,/rg+j $k0" k" j  j krK- qqg+j $k0" k" j  j k}pAog+j $k0" k" j  j ko]n5gX ,D @* $@r  :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j nj $k0" k""  f`j k -   $3j nj $k0" k\"  `j kDh  j k) z  ^  C  UX 1[ ",i<-  -V0- Pf8 d*"%,*#@! @ tdg+j $k0" k" j  j kdA}9-@U | bg3j $k0" k" j  j ke,E6-augX! ,D * "  $L ^*".*@2@   t^g+j $k0" k" j  j k^F-  ]g3j $k0" k" j  j kxD?6rp-[g+j $k0" k" j  j k[N-)@!ZgX ,P &W9#/  ,7: < E A 9=; V  2  2Y  2  2    OF9&D 6*)A! #+" $$5hJ *"  "   1,*"   "   i*",1R Rwg @H <Q Qg  gmj $k0"   PPgl @ OP8gmj $k0"   j kP ,3g ,On  +3g ,N  + 3g ,Nf  +3g k0"^M ,D * ,r 1(    !  !  X*  6   &  J r>  *,*"   '" BlJ  *"  "  Wi*" @!"""    "   =,*"   "   u&L*",Ht?@!K! c8# x2_hen_valen #  @@       O.&c-   c.&xi7-  c.% -  9.%mwAAg R  PL PA6-V-/$8BN2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 * fJ)!*  )!d,n-   ,pJ ; *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3:;Sg  ;NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <(   $        " A # f# *  4?X2_L_WAYPOINT_SETFACING3 5,$  &,$l & wX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-iwX2_S_SLEEP_AT_NIGHT_SCRIPT5 # iw** ,8 NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_GENERIC_MASTER3 ,8 NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@3K" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-9j# :}r-$ D  WP_CUR7 ,n\#6 @"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$ / INDEX3COLOR5BLUEBLUE #!RED@ WP_DOUBLER% % % %x % %  % I %[Nel@ƒ :y C0-y C0Kz-ey Ce0- ey CB0Q-@   sy Cs0mL-ky Ck0-sy Cs0-y C0S2-NPC_#_3#N0"#@! CN0kN0"AN0NPC_#_4#N0"#@! CN0 a0 $ WP_ALTAR_#_1#!-sG GGQ0,@Z  - FNPC_#_3# #"@( C"0 EP _ 0n ;F ,n] NPC_#_3# #5NPC_#_5# # a0I.W.I.N. Button y C0- %" %Ct0=0í  - %" %Ct0=0Bw0,@   -*4 WP_ALTAR_#_2#!-@W@a^ @ :wy Cw0- y C0 6-y C0-y C0Mz-By CB0-@'   ;y C;08-sy Cs0-y C0c|-y C0- %" %Ct0=0 Xq) "A! 1"V 8-$Wd)W WP_DOUBLER@!,: NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   21!d& (pU D ,  BRAZIER MY_NUMBER*3ROLE_#_#\#3 j ?!C *U ,*I".X$F- 0* 4WX$Bl-  T=*".*X$F12   +TARGET5 #/ *",PORTAL_Ę#_#INDEX3\# BRAZIER KEEPER_c#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_#_1#ALTAR_‹#_2#ALTAR_]#_1#xHALTAR_#_2#6  WP_#  *",|*",A  &* )! \ź" @1ބy0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D  )@! /9   s  NW_L_MEMORY3)@@!2h  T NW_L_MEMORY7j NW_L_MEMORY7)@@!2%(-%fA !* { INDEX3  HOME\#(  -6  PORTAL_w#_1# ROLE\#(  M3  *COLOR5 #" 1  .$1  8 =DGANKINGWP_#_5#5NO # # j9 MOBTARGETWP_#_1#9+e- MOBTARGETWP_z#_1#5*":.-i? qi-*":Ə- # *cc5-9%- z-X WP_DOUBLER?! T]t-xN - NPC_v#_#\# #,4(-  BLUE #.BLUE5)-RED  WP_6#_7#?!FUPGANKINGWP_8#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_6#_5#5NO # FUPGANKINGWP_#_5#9GANKINGWP_#_5#5NO #@WP_%#_4#-GANKINGWP_4#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# %BLUE #-RED6*-BLUE  $ "  NPC_#_# MOBLEADERWP_~#_1#3\#    WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#C #f WP_ALTAR_j#_2#+ WP_ALTAR_#_1# #f WP_ALTAR_#_1#NPC_~#_1#@NPC_L#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_Z#_2#<*$B- WP_ALTAR_#_2#NPC_#_6#@NPC_W#_6#<*$B- WP_ALTAR_#_1#@,e WP_CENTRE_C#  *"*OWNER5RED #BLUE # *:  "  " ,4(-  NPC_7#_# MOBMEMBER1WP_ #_1#3\#  NPC_#_# MOBMEMBER2WP_#_1#3\#   E WP_ALTAR_#_1#@! {-8E WP_ALTAR_#_2#@! 8%   WP_ALTAR_ #_#\#)?!/  y   V J2 y =0~-NF #y =w#0B  y0" A0}-NyN0" AN05 WP_DOUBLER TQ- WP_DOUBLER@! 0)y C)0:yC:06|z ~ y0" CK0-Ny N0" CN0  U  %N %T %Z %`vpTR8 h l"[TARGET5)?!.|U # <TARGET5 U %8 % %'c0"y =0Ly=L0Z=y==0TARGET5)?!<TARGET5TARGET5?!5+-  A #*Q WP_ALTAR_#_1# l "h l8"B6 8" =  .U (Z8 # &U ( # &&$e #"%%%%| #<TARGET5 ] #*Q WP_ALTAR_#_2# l "y ;0- "y ;0l-"y ;0'0"(')?! y \'0'0"(')?! y \'0@ab H:yy  :00;yQ;0syQs0eyQe0kyQk0yQ0 "  V  INDEX3 %" % ,N4  (,A u,K% INDEX$3   ,8 48 a"!.?!1  8$ D"&ALIVE7U-?!,ALIVE7@""@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k  "INDEX3   c NW_WBWMXL009*#*"- )?!({{T # @! $e-A G ""Healing  "  _NEEDED# L ,,$  +  |bALIVE3 $$z   g_NEEDED#$m  PAh ENEMIES\#7$J  (_NEEDED#ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED# #r ,#_NEEDED#C\#$o NPC_s#_#\#   %N %Z %l %~G;X0  WP_DOUBLER#  r #*Q WP_ALTAR_#_1# q #*Q WP_ALTAR_#_2# 7 PORTAL_pD#_1# *"!lo!o # $$  >3    iTARGET6 " $$  ]aTARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]"%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6  T11_TASK3  T11_TARGET6!3 T11_TARGET6R -- Oyi  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @xsyK NW_L_COMBATDIFF7* " s K*|$c $4 z/NW_GENERIC_LAST_ATTACK_TARGET:?d NPC_c##_3# #3NPC_b#_5# # @  ,cJ-ȶ ,c,cK NW_L_MEMORY3&27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z(dT ,cO(*+(PP -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%cX2d(((C((  (-((((H27d2  xm0Dc wk *       *" i)@!H  )@@!*     *( % $2  -X2_L_STOPCASTING3   X2_L_BEH_MAGICP X2_L_BEH_OFFENSE X2_L_BEH_COMPASSION F   12 N ,c cd  dj-   ,c P ,c82 2  2  B NW_L_MEMORY7 ,ct ,c8  ,c ,c2 2  2   NW_L_MEMORY7U       @,c3 ,cF ,c ,cy ,c= ,ck ,c ,c ,cE$ ,c*x ,c2  NW_L_MEMORY70> ,c?4 ,c NW_L_MEMORY7COLOR5 # FA  "V%@Ejp" @ . "7@ "nA %Q-r/@x" @ A[ "6L8   ALTAR_BOY3H H 1SKIPPERu3$    %A! 1  1" w"     "    "Found weaker enemy! Changing from # (#\#) to ## (#\#)#$SKIPPERq7  R~RNR)))NPC_4#_1# # -NPC_4#_2# # L-NPC_4S#_3# # -NPC_4#_4# # -NPC_3#_5# # h-NPC_3o#_6# # - % % %p % % % %w9 #e_$9 #V 8? MMlM<M ))))1@!'1-B@@!'1-B@@!'1-B@ "- "-11 "- NPC_.#_3# "9NPC_-#_5# " Retreat3 "; ;c ;E ;' e8  6fE $ " )A! A e21  %2   >*$eDp S $d$  $dy "# "> " B"#&*@@t  )B !   %  )A ! L+$bvI)B !  L;$a)A!  Le)$atG)B !}  Ls$`)A!  Lk'$`rE)A!{  L$_ )A!   L=$_P#)BH!)A! 85$^%^hO7$^W*~*""S*"$]c $]t]C&NW_GENERIC_LAST_ATTACK_TARGET:?% ^F<!# # 8!# # 8!#] # V!8!# # V!8 " " F    9 ]\5 #]76 # -\ "  wP # $1 # $ # $u~ # $ ,)A!8 STONESKIN5TRUE # T,},-)B !TZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #q"N a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7&e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_#_1#  NPC_#_7#  9)?!.?)?!.)?!.)?!.vd ".N8 M)?!9'2  NPC_#_2#  NPC_i#_6#  B)A !:: U %N %r % %,c  ,c z 2,c @E,c bz,c d2 %N %8 %P %:bd4d")@!dx $ ,cbd P&*@l@  ,  $wO ,c $; ,cZ $e ,cD $s ,c $k ,ct" $G ,c    $= ,c2 "Y ,c  b ,cZl,c&,c,cϐ,czi,c>,c   ,c8 )@!+  )@!+d  U ȴU 21d  2  l-{( NPC_#_1# ""NPC_v#_2# ""|NPC_!#_3# ""'NPC_#_4# ""NPC_w#_5# ""}NPC_"#_6# "MORDERS3  -NPC_#_7# ""- NPC_.#_1# # -NPC_#_2# #  -NPC_#_3# #  6-NPC_J#_4# # z-NPC_#_5# # -NPC_#_6# # 'R-NPC_f#_7# #  y0" ;0\-:yCBp2W ^ "& "#Ap! Ap!Y! !U    I:0m$?)?!FINALDESTINATION7 AREASLOWER93"z WP_ALTAR_#_2A#B0  AREASLOWER8T7CTARGET8 5 " ! qCTARGET7y9& "@ey=e0-ky=k0V-sy=s0"7CTARGET59 "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET39*-CTARGET3\9 < & " " .- "|* ;You'll be next, mage=#- Die you mage@(w)@!>  !  "d-)A ! !  %  < & " " )A ! .- "'j ;You'll be next, mageY1- Die you mage*X  % & "]Ly)A ! IL0-=y&@!I=0 & "y)@@! I0y#y j 2& ""F   -#08$ < & " " )A ! .}t- "|  ;You'll be next, mageK#- Die you mage s! - y< & " " .{- "|  ;You'll be next, mage=#- Die you mage@~)@!>  !  "ގd-)A ! !  % y0" A0 |}-cyc0" Ac0 y BHe l "R& "#Ap! KAp! !   I0$Xu)?!FINALDESTINATION7 AREASLOWER"^3"z WP_ALTAR_#_1A#0  AREASLOWER!7CTARGET!g5 " ! qCTARGET 9& "y N" =0-;y=;0-ky=k0V-sy=s0"7CTARGET9r "c0yE & " ;0-%F-;y#U  =;0-x0"ky =k0V-sy=s0"7CTARGET$9*-CTARGET9 y  *|0BLINDNESS_AND_DEAFNESS at #4y  *v40SPELL_ENERVATION at #%6 w XA\yP    Ap d*Q% Melee attack #]q_-A$i*&(  % Y  vD- ,8  % y=q@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 5 *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!  ey ,F;y ,AA'F@        NPC_ґ#_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E  NPC_#_4# # NPC_ͷ#_1# # NPC_P#_7# # d2d'F@ iNPC_#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #dky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #!uLy L0HAMMER OF THE GODS at #|=y =FLAME STRIKE at #2   NPC_D#_#\#*") !  pNPC_A#_#\#NPC_ #_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 NPC_#_3# # NPC_#_5# # NPC_G#_2# # NPC_#_6# # dX2'F@ DNPC_#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"i%Ranged attack at #t   @`L-2 9@"U   ,/* "Th* ."STAND #bc 2-5c @ 10)?!*0 STANCE5 #.<ATTACK  ,c NW_L_MEMORY3027 %N %z % %((d(-,(H27      *" i)@!H  ( ( *")@@! *     * % $0+  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC0I X2_L_BEH_OFFENSE0  X2_L_BEH_COMPASSION/ 0? 12 N ,c id  dJ-0 ,c2 2  2  B NW_L_MEMORY78v ,c< ,cC ,c|J ,c@2 2  2  # NW_L_MEMORY7U       @K,cL ,cwM] ,c; ,c ,c@w ,c{NC ,c?O ,cfl ,ch ,cj) ,cGy ,c ,c2  NW_L_MEMORY7S ,cA ,c NW_L_MEMORY7a ,cU ,cWr,co ,cL-}Q ,c0T*   l*""1y:y:-y:n-y:!-y:-y:-y::-y:-y:-y:S-y:8  *"  "   1,*"   "   i**",xRgmj $k0"   O(Ւg A8c <ԡ  gmj $k0"   3gXh , j kg& ,3g ,~  +3g ,  +3g k0"^j ,D  ,c7 ,c NW_L_MEMORY327 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dTG ,cW(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c`2((((C((  (-((((H27d2  ]0Dc k *       *" i)@!H  )@@!*     *( % $  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC X2_L_BEH_OFFENSE X2_L_BEH_COMPASSIONw  12 NH ,cd  dJ- ,c2 2  2  B NW_L_MEMORY7 ,c ,c"b ,c( ,cb2 2  2   NW_L_MEMORY7U       @),c* ,c, ,c] ,c!-p ,c. ,cE ,cmG ,c1IV ,cY' ,c^ ,ce2  NW_L_MEMORY7d ,c? ,c NW_L_MEMORY7p ,c9s ,c,ct= ,c}*   TARGET.5     %v % %B %l % % % % % %Y %5 %w %9 %# % % % % %  % %(rX>$ nT:  B F,Ky,X2_L_AI_NO_AOE_DISPEL @gX2_L_AI_AOE_DISPEL_CHANCE3 ^y,^)y,)Cy,C{zy,z>  A % % %4 %5 %v %| %f7 %Pd %:i %$g %j %k %l %m %n %r %p %to %^q %Hs %2h % % % % %t % %z %y %l} %V %@~ %* %{ %x % %| %E %D % %z %d %N %8 %" %  3 NW_BEHAVIOR_MASTER3 ,8 "7*"Zi*"w*" <*" *)A! "W #W  SA I-"4 1 /  }-gi*"w*" <*" *)@! "tW #W  ">D-"/  //:://///////////////////////////////////////////// //:: Default: On Spell Cast At //:: NW_C2_DEFAULTB //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /* This determines if the spell just cast at the target is harmful or not. GZ 2003-Oct-02 : - New AoE Behavior AI. Will use Dispel Magic against AOES - Flying Creatures will ignore Grease */ //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Dec 6, 2001 //:: Last Modified On: 2003-Oct-13 //::////////////////////////////////////////////// #include "nw_i0_generic" #include "x2_i0_spells" #include "games_and_ai" void main() { object oCaster = GetLastSpellCaster(); if(GetLastSpellHarmful()) { SetCommandable(TRUE); // ------------------------------------------------------------------ // If I was hurt by someone in my own faction // Then clear any hostile feelings I have against them // After all, we're all just trying to do our job here // if we singe some eyebrow hair, oh well. // ------------------------------------------------------------------ if (GetFactionEqual(oCaster, OBJECT_SELF) == TRUE) { ClearPersonalReputation(oCaster, OBJECT_SELF); ClearAllActions(TRUE); DelayCommand(1.2, ActionDoCommand(ActivateDetermineCombatRound(OBJECT_INVALID))); // Send the user-defined event as appropriate if(GetSpawnInCondition(NW_FLAG_SPELL_CAST_AT_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_SPELL_CAST_AT)); } return; } int bAttack = TRUE; // ------------------------------------------------------------------ // GZ, 2003-Oct-02 // Try to do something smart if we are subject to an AoE Spell. // ------------------------------------------------------------------ if (MatchAreaOfEffectSpell(GetLastSpell()) == TRUE) { int nAI = (GetBestAOEBehavior(GetLastSpell())); // from x2_i0_spells switch (nAI) { case X2_SPELL_AOEBEHAVIOR_DISPEL_L: case X2_SPELL_AOEBEHAVIOR_DISPEL_N: case X2_SPELL_AOEBEHAVIOR_DISPEL_M: case X2_SPELL_AOEBEHAVIOR_DISPEL_G: case X2_SPELL_AOEBEHAVIOR_DISPEL_C: bAttack = FALSE; ActionCastSpellAtLocation(nAI, GetLocation(OBJECT_SELF)); ActionDoCommand(SetCommandable(TRUE)); SetCommandable(FALSE); break; case X2_SPELL_AOEBEHAVIOR_FLEE: ClearActions(CLEAR_NW_C2_DEFAULTB_GUSTWIND); oCaster = GetLastSpellCaster(); ActionForceMoveToObject(oCaster, TRUE, 2.0); DelayCommand(1.2, ActionDoCommand(ActivateDetermineCombatRound(oCaster))); bAttack = FALSE; break; case X2_SPELL_AOEBEHAVIOR_IGNORE: // well ... nothing break; case X2_SPELL_AOEBEHAVIOR_GUST: ActionCastSpellAtLocation(SPELL_GUST_OF_WIND, GetLocation(OBJECT_SELF)); ActionDoCommand(SetCommandable(TRUE)); SetCommandable(FALSE); bAttack = FALSE; break; } } // --------------------------------------------------------------------- // Not an area of effect spell, but another hostile spell. // If we're not already fighting someone else, // attack the caster. // --------------------------------------------------------------------- if( !GetIsFighting(OBJECT_SELF) && bAttack) { if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL)) { DetermineSpecialBehavior(oCaster); } else { ActivateDetermineCombatRound(oCaster); } } // We were attacked, so yell for help SetCommandable(TRUE); //Shout Attack my target, only works with the On Spawn In setup SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK); //Shout that I was attacked SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK); } else { // --------------------------------------------------------------------- // July 14, 2003 BK // If there is a valid enemy nearby and a NON HARMFUL spell has been // cast on me I should call DetermineCombatRound // I may be invisible and casting spells on myself to buff myself up // --------------------------------------------------------------------- // Fix: JE - let's only do this if I'm currently in combat. If I'm not // in combat, and something casts a spell on me, it'll make me search // out the nearest enemy, no matter where they are on the level, which // is kinda dumb. object oEnemy =GetNearestEnemy(); if ((GetIsObjectValid(oEnemy) == TRUE) && (GetIsInCombat() == TRUE)) { // SpeakString("keep me in combat"); ActivateDetermineCombatRound(oEnemy); } } // Send the user-defined event as appropriate if(GetSpawnInCondition(NW_FLAG_SPELL_CAST_AT_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(EVENT_SPELL_CAST_AT)); } } NCS V1.0B BRAZIER WP_ALTAR_#_2# WP_DOUBLER WP_DOUBLER WP_ALTAR_#_1#NPC_#_3#NPC_#_5#NPC_j#_2#NPC_:#_6#NPC_ #_1#NPC_#_7#NPC_#_4# WP_DOUBLERNPC_D#_4#NPC_#_2#NPC_#_1#NPC_#_7#NPC_#_3#NPC_T#_5#NPC_$#_6#NPC_#_1#NPC_#_2#NPC_~#_3#NPC_N#_4#NPC_#_5#NPC_#_6#NPC_#_7#vNPC_P#_4#NPC_ #_6#NPC_#_1#NPC_#_7#NPC_#_3#NPC_`#_5#NPC_0#_2#* +T *"*COLOR5RED #BLUE # *: *"*COLOR5BLUE #-REDyg-RED #.BLUE8&-  COLOR5 ~- aR- & &- - -  - @v- J- - A- W- w- ,n- dB- -  - MS- X- {f- :- j- T- - 5- }^- -2- ċ BRAZIER*",TEAM_#3 ,:  % % % %v %l %\ %L %<B<60>$ @TARGET5 #6*")*j 2D!@!"@TARGET5 #&T$TARGET9*"s)?!$  *",|*",A   %d %v % % %  }bj4_< WP_DOUBLER#   #*Q WP_ALTAR_#_1# N #*Q WP_ALTAR_#_2#  #*Q WP_ALTAR_#_2#  #*Q WP_ALTAR_#_1# TARGET9  % % % %v %l %\ %L %<B<60>$Z N T2_FORMATION'X3GB3"^ %" %  ID3 ID3LRBACKUP\#SRBACKUP\# R)A!        ,$e)A ! ,$$'X7'X7   ,: *",PORTAL_$#_#INDEX3\# U U\ /CLASS_TYPE_CLERIC .CLASS_TYPE_ROGUE 0CLASS_TYPE_FIGHTER 1CLASS_TYPE_SORCERER 1CLASS_TYPE_ASSASSIN movingto6* "@" 6  &"bID3LRBACKUP\#'X3SRBACKUP\#'X3GB3       &                 >%" 8%p" >%"" 8% ==0$GB7$ - &  ID3iV  % % % %- %W % %#'\'\ST_POS9movingto:'`'`ST_POS9'd'dST_POS9D'h'hST_POS9't'tST_POS9'l'lST_POS9movingto:e'p'pST_POS9movingto: T2_FORMATION'X7  T2_FORMATION'X3ID3 % ST_POS5 #,@!   o WP_ENTRY_'T#_3#  "bID3 ;ID7$$  % % % %v %l %\ %L %<B<60>$\ INDEX3COLOR5BLUEBLUE #!RED@ % %  %~ %[ % %  % p  WP_ALTAR_#_2# WP_ALTAR_#_1#t3_jp3N0";N0 0";0x0";x0N0 (t3_jp7A  %! :6- , WP_ALTAR_#_1#;I  WP_FRONT_#_1#A !+wp_check7wp_check3 > WP_FRONT_#_1#:- WP_ALTAR_#_2# WP_ALTAR_#_1#Ay %! :?-NPC_#_1#!$A c! b-WP_#_6#PlNPC_#_3#>0"=>0O@ WP_FRONT_#_2#A !, wp_check27 wp_check23 > WP_FRONT_#_2#:- WP_ALTAR_#_1# WP_ALTAR_#_2#A %! :?-NPC_#_7#!$A c! b-WP_#_2# WP_ALTAR_#_2#3Zt3_jp23 0";0c0";c00 )t3_jp27 WP_ALTAR_#_1# WP_ALTAR_#_2#2hA %! :6-  NPC_#_1#NPC_#_2#NPC_#_3#NPC_#_4#NPC_#_5#NPC_#_6#NPC_#_7#!! #  !! #  !! #  !! #  !! #  !! #  !! #   k k  k  k  k  k  k  k  k  1 2    3gN-3gNrJ   +   kk & 4gkO  A! 6- " ij EE"3  ! GE"Fr s     GE "  EE %" % EE " 1d E4g -EV"  % %z %d %N %8 %" % 3E " X3Ej  j  t 9    )A(!D6"Y-A66 Y- !52    J?*,-NW_ASSOCIATE_MASTER3 ,8  ?*   *  * t$ 2       @@!    =X0_L_NOTALLOWEDTOHAVEINVENTORY3  W-" N%P - =X0_L_NOTALLOWEDTOHAVEINVENTORY3  2  W&O-&*.:     + -   + C-= + * ,>  X0_L_NOTALLOWEDTOHAVEINVENTORY3         $d   X0_L_RIGHTHAND6 "* 1X0_L_RIGHTHAND: V X0_L_NOTALLOWEDTOHAVEINVENTORY3  ?*" B*    j! S*N$ "<- "-N-6T*       &L* * E      - m l '  5* *    (L*  <-*  %  % % %& %l( %V) %@* %* %% % % %/ % %3 %< %zl %d5 %No %8 %" % ,>    %88 %"9 % &2  ) ,2   %z %d %N %8 %"M %    %l% %VQ %@R %*S % % % %o %+ %, %- %z %d %N %8v %"9 % ,>    %8 %" %   S %8 %"- % ,>   k '  k       ,:--k ,-k ,D j k   ,?*  d   ,** *" ,-*" ,(-`(-8  r% Z((  g    &g& 4 H- g& 4 - z g&q 4 $ jk o0"N- o"NEJ-> *)B ! U                               Z(!( (!( -   Z(!( (!(   -       Z(!( (!( *-         Z(!( (!( (!(  (!($ $1*(x( (!(    (!(  (!( f(!( %FIGHTER!-MONSTERg-(!((!( "MAGE!-MONSTER-(!( (!( m(!( (!( $CLERIC!-MONSTERg-(!((!( "MAGE!-MONSTER D g. g.j  ,L@-NW_L_COMBATDIFF3   8X2_SPELL_RANDOM3 C4C7-3   FIGHTER #< ?-MAGE #np 8- -CLERIC #MONSTER # n 8-  k /  J    y    x        ,8 kI   c    A  w  y  x      }  ,8 kq     2  ,8 1 * 2;g " 1  PO k ,gPk&*k  G- '1+-1 2 " *gP$&2 INDEX3COLOR5BLUEBLUE #!REDN % % % % % % %t3_jp7zwp_check7wAc wp_check27=)t3_jp27  % % % % %~ %t %j %Z`nT9~H9z<9v0\$\\  ,  BRAZIER MY_NUMBER3ROLE_u*#_#\#3  ?!CcU ,*".jX$F- 0*~`4X$Bl-  T=Z*|"."SX$F12   TARGET5 #/ BRAZIER KEEPER_nl#_#\#3 .,$  %d %y % % %9DOUBLER>ALTAR_m#_1#ALTAR_m#_2#ALTAR_lf#_1#xHALTAR_l$#_2#6  WP_#  *"  "   Wi*" @!"""    "   =,*"   "   u*",Ht?@!K! c8# x2_hen_valen #  @@       O.c-   c.si7-  c. -  9.w7ޡg   \ P(6-͒V-/B<2 X2_WHIRLPERCENT3 d  ,Q-d  ,8 h* f))!*  )!d,n-   ,pJ z l*"B~g*    :  h@! ; :  !--?*)?6-6D  BHA*  _ " "  ! Bp!@@! "Az &* )! \ " @1y0" =0-JyJ0" =J0y-y0" =0y0" =0-yyy0" =y0y-xyx0" =x0IyI0" =I0-y0" =0y-byb0" =b0AyA0" =A0y-wyw0" =w0/y/0" =/0- y 0" = 0y-y0" =0y0" =0-y0" =0y-2y20" =20uyu0" =u0-_y_0" =_0y-y0" =0y<-y<~-y</-y<-y<-y<B-y<-y<-y<U-y<D iw** ,8 *"  "   1,*"   "   iv*",1Rżg @ < 5g  gmj $k0"   Bgl @ }gmj $k0"   j k  ,3g ,  +3g ,q  + 3g ,  +3g k0"^] ,D &  *L " "   z"!b "  $ j nj $k0" k"  `j k -   $3j nj $k0" k"  `j k>Dh   :Fz NW_GENERIC_LAST_SPELL3  NW_GENERIC_LAST_SPELL7,4NW_GENERIC_LAST_SPELL7 A j k) z  ^  C  UX 1[ ",i<-  -V0- P}8    MY_NUMBERT3BRAZIER*"ROLE_<#_#\#3 )K#%-R# HEARTBEAT_NUM_;Y#3 HEARTBEAT_NUM_; #7  (:$-;] XALTAR_SCORE_TRACKER_9#_## r #  ALTAR_SCORE_TRACKER_8#_##  #\#$lALTAR_SCORE_TRACKER_8E#_## Y  # ALTAR_SCORE_TRACKER_7#_##  #\##$P  :ALTAR_INFLUENCE_TRACKER_6#_#own# 9  own# # \##opp#y  opp# c \##$4 thinks: #\# ## @IC# #  #U-; A\#*"F)*j 2D!@!>"@TARGET5 #&T$<  ROLE_1'#_#\#7{ Role to raid \# target: ##*"9) -@! ; AKEEPER_/#_#\#3 ROLE_/(#_#\#7. _RAID_TARGET#7KEEPER_.#_#\#7Role to keeper \# for ##?!AM#-D# c@I#  \#3  *"*OWNER5RED #BLUE # *: \#7 *AG!6 $-$$.:  BRAZIER MY_NUMBER@3ROLE_(#_#\#3U PE- 0 2?-  y KEEPER_'G#_#\#3 IKEEPER_&#_#\#7,$ #fROLE_&#_#\#7  RKEEPER_%#_#\#7rTARGET9 BRAZIER MY_NUMBER<3ROLE_$P#_#\#3U# _RAID_TARGET#3 |# #2- 7S . (/ .`m" _RAID_TARGET#7  9O.! # 8$ EHA  l !V!8$EH$  ^2 #j ,#:,$  W #.,$ DOUBLER #,ALTAR_#_1# #,:ALTAR_d#_2# #,ALTAR_ #_1# #,ALTAR_#_2# #,2  t BRAZIER*"NSPAWNS_#3 kTEAM_#5 will be fought#$NSPAWNS_#7 MY_NUMBER/}3  GROUP_SIZE_#3  GROUP_SIZE_M#7 MY_NUMBER.7$:U  ROLE_r#_#\#3  $$J NROLE_#_#\#7J-ROLE_\#_#\#7Spawn with target \#: ## (#\#)#2TARGET9  % % % %| %r %b %R %B~ firstSpawnBRAZIER3 r firstSpawnBRAZIER3  firstSpawnBRAZIER7- ' #~'A !L'TARGET9' 3@@!/2? ! ' #' # ' #  .2+@cTARGET5 #*")''x''!"'x&''|''!"'|&''''!"'&''''!"'&''''!"'&' #c 'TARGET9'{*r 2L!B!"@TARGET5 #&T$TARGET9*"s)?!$  l*"1 2 ,    # f  2       ", j*    :  h@! ; :  0yb 0yb hyb Eyb Eyb {yb {yb )yb Dyb DCyb `yb `]]yb ]yb wyb yb yb yb yb 8 UXj ,YV )'x #,@@-'| #,@@_-' #,@L-' #,@-' #,@-' #,@}K-' #,?8@  QsupportWaiting7-'1d '2 '1d '2 'x1d 'x2 '1d '2 '|1d '|2 '1d '2 '1d '2     supportWaitingNPC_#_#\#3  $$dF o supportWaitingNPC_#_#\#3 supportWaitingNPC_#_#\#7NPC_#_#\#$X- ' #'x # '| # A  supportWaitingNPC_#_#\#3 supportWaitingNPC_#_#\#7NPC_#_#\#$+-supportWaiting7 ' #{ WP_ALTAR_#_1#TARGET9-' #{ WP_ALTAR_#_2#TARGET9--' #| WP_ALTAR_#_1C#TARGET9-' #| WP_ALTAR_#_2C#TARGET9-'x #  t WP_CENTRE_#TARGET9V-'| #  t WP_CENTRE_#TARGET9-' #  j WP_DOUBLERTARGET9 c) % % % % % % %\ %LRv@"# $4@"# $Y " " G@"  ģ  INDEX3  HOME\#(  -6  PORTAL_#_1# $ ""U7*2 U !U  (X$* @ hA!?,  $ * ,U       ,8 )@! B)   x%  NW_L_MEMORY3)@@!  T NW_L_MEMORY7 NW_L_MEMORY7)@@!2%(-%fA !* F ROLE\#(  p3  *COLOR5 #" 1  .$1  8 UUWd  Wd  g "-   "'-U O  +  X2_SPECIAL_COMBAT_AI_SCRIPT5 #X2_NW_I0_GENERIC_INTRUDER:X2_SPECIAL_COMBAT_AI_SCRIPT_OK3EX2_SPECIAL_COMBAT_AI_SCRIPT_OK @+sYd ! 2NW_L_COMBATDIFF7* " s K*M$ c $n  z(NW_GENERIC_LAST_ATTACK_TARGET:?I NW_GENERIC_DOOR_TO_BASH6',*21NW_GENERIC_DOOR_TO_BASH_HP3&*"7*"?*"  *E Q$NW_GENERIC_DOOR_TO_BASH_HP7 H--D@ gNW_GENERIC_DOOR_TO_BASH NW_GENERIC_DOOR_TO_BASH_HP  Z3 + gd    ,2  $ @r-# @<-# @ [+   ؕ ,*",?*? " ,8  ,Ab!!! ! .        *   .  12  *   *! 9! :-! !$- 9!  :-!  !$  <*  h" .-*";?*  NW_L_BEHAVIOUR13  LNW_L_BEHAVIOUR13 p* " .*  P$L   NW_L_BEHAVIOUR17       ,X2_L_MUTEXCOMBATROUND3 ,8  6X2_L_MUTEXCOMBATROUND7I-,2X2_L_MUTEXCOMBATROUND7 & D}Dgk0"N >  ,c,c NW_L_MEMORY3u27 %H" %t %^ %H %t %^% %H % %# % % % %! %; %% % %$ % % % % % % % %D %. %Z((dT' ,c(*+(-, -2 W(2  x0_hen_xan #! x2_hen_daelan # % b% =%c2((((C((  (-((((H27d2   0Dc k *       *" i)@!H  )@@!*     *( % $!F  -X2_L_STOPCASTING3   X2_L_BEH_MAGIC!d X2_L_BEH_OFFENSE!( X2_L_BEH_COMPASSION  !Z   12 N ,c d  dj-!   ,c: P' ,c2 2  2  B NW_L_MEMORY7= ,c(Z ,c/4 ,c3 ,cb2 2  2   NW_L_MEMORY7U       @4,c5 ,c6 ,c]O ,c!8L ,c! ,cW ,cm9M ,c1: ,cC ,cI# ,ce2  NW_L_MEMORY7N ,ch% ,c NW_L_MEMORY7S ,c9V  ,cW,cIn ,c}n*    ,R:  ,h ,z ,2  X0_COMBAT_CONDITION3   Aޤ!  !  8! !   ,,,* < " 6NW_SAFE*! L$NW_SAFE*W"?c#A )@@!,0* ,*b ,8  6*    %! % % % %# %- %z2 %d7 %N: %8 %"_ % &2   4$9- %   " 6  t  R  -B-     [,*< "   "  ;t   p%D !X0_TRIED_TO_HIDE3" 8!A) ) X ",ZX0_TRIED_TO_HIDE7")A ! 1X0_TRIED_TO_HIDE7 y0" ~,;0 2  )@!< "E* " 6"X0_MOVE_AWAY_ATTEMPTS3 iA $X0_MOVE_AWAY_ATTEMPTS7(-"2-X0_MOVE_AWAY_ATTEMPTS7")   -  !   S F     %" % &2  W ,C  V-  a 0"x Q30>  F    ,2  3 .8 89Z <$0m0   ? Qm ,2  $ymy  XyZy \y  y y !   t&*"O&*"* f8 m0$0Xy]X0@-Zy]Z0$-\y]\0\-y]0@-y]0x-]<\ *",*" M*",EtA , 09 @ @p* \Q$~y ~Q$y DQ$y  Q$y v* 6*  Fy Fl-y 9-ay a q1A0@p UX % %! %= %' %C % %   r N *  V1     3 ".-@ջ %?*8g&@D  Vb,gV,|$H &  jk 0 ,i-  ,zn2 N p@@rP %?*4g@@! V,gV,|$ I,{,A5,xw,2  r g"i- g - T,>  ^g"i g - kZ   ,,> Rg"wQg",jk 0" N8 y4-[y4[-y4M-y4 O20 *",* %,(-6 qjg+j $k0" k:|" j  j k:lgX6G ,/mg+j $k0" k8" j  j k8o- qg+j $k0" k6" j  j k7`Ag+j $k0" k5" j  j k5gX1\ ,D @* $@r *"%,*#@! @-  thg+j $k0" k1z" j  j k1j}9-@U | g3j $k0" k/" j  j k0M, 6-\gX+ ,D * "  $L *".'M*@2@'E   tmg+j $k0" k+" j  j k+o-  g3j $k0" k)" j  j k*`D6rp-ug+j $k0" k(" j  j k(w-)@!gX$/ ,P &W#h  ,7: < E A 9=; V  2  2Y  2  2    OFO&D %*)A! #dU" $$oJ * ,r 1(    bV  b  *  6   &  J r>  5*,*"  " BJ  *"-i*" ,*" u*",NW_GENERIC_DRAGONS_BREATH3>g  NW_GENERIC_DRAGONS_BREATH7|$NW_GENERIC_DRAGONS_BREATH7 &* ?! <    $        "3  # # *  4U?X2_L_WAYPOINT_SETFACING3 5,$  &,$l &KwX2_S_SLEEP_AT_NIGHT_SCRIPT5 #-wX2_S_SLEEP_AT_NIGHT_SCRIPT5 # NW_WALK_CONDITION3   !X2_SWITCH_CROSSAREA_WALKWAYPOINTS3 WP_CUR7WP_#_#"E#;-E#*""APOST_#7-POST_#*BWP_NUM7WP_1:%-WP_NUM7-*WP_\#:$"E#;-j#,#WP_NUM7@")WN_NUM7-WN_#_#"Er#;-7#*""BNIGHT_#8-NIGHT_#*BWN_NUM7WN_1:%-WN_NUM7-*WN_\#:$"E#;-Z#,#WN_NUM7   :0\#9\  NW_GENERIC_MASTER3 ,8 NW_WALK_CONDITION3@ NW_WALK_CONDITION7>- NW_WALK_CONDITION7 WP_@3K" %"   w"u+ WP_CUR7"!WN_NUM#3 B1#6:WP_CUR3 *-9j# :}r-$ D  WP_CUR7 ,n\#6 @"  FWP_NUM3WP_B-WN_NUM3WN_ .sIt$ \#6 !! 8$ YZ )Yt YH  9" ƙX X  X  l "O's bat#l>l "/'s pet#l>W_ ?! / -W8_ @" ?! , .V^ V   " D " 0  ALTARKEEPER_#ViINDEX3)@!R*"#@!  * ]    T  ALTARKEEPER_# d #&  " )?! ; s@P ##n # FS *@r #w 2K!@!LC"@INDEX3Q "&T$Qg  Q H)?!0-PXk G #&n " XZ $>Q    O O] is empty, trying to grab it!# l BN :)/)Ap! Bastard going to #, dist # # e@A ! E@ S5Bastard fighting i# near #))!# d}- \MT Bastard going behind # -L L  S@"b" Bastard going to #, dist # #    #(9 G  # $HO  # $H  # $I  ? # $ FG0))!"H ))!"G))!"kE*))!" ROLE\# H7 Hb: "Gs   NPC_4#_#\#$ "F  NPC_4&#_#\#!"$ HOME\# A$2 # 9A  4 " 9@@. B   " %d %{ % % %?@ @{Z@->j   WP_0 #_#\# ""))! "$$ NPC_.#_#\#$ NPC_.#_#\#!"$A b@ C4!(  C !*C! Y    !  ! ! ! !, !  ! ! ! !, !    D!  E!   &)  ;? % % % % % % %:m6:X46x7gSr9%99-9 % %z %d % %n %X %B868&B'   68`<8J8-8. 8WC7 % % %  %r %\ %L %66yZ,9 A ONy)A !,9N0 A ,7N0 AT-,7N0 ApOyZ,9 A    ALTAR_RED_1  ALTAR_RED_2  ALTAR_BLUE_1~  ALTAR_BLUE_2F  *",SSCORE_#3 @  % % % %| %r %b %R %BHB<J0$ B:(  :11 4! Fy:j-11 F1p $ "  NPC_m#_# MOBLEADERWP_B#_1#3\#  YBLUE #.BLUE5)-RED  21!d& NPC_#_# MOBMEMBER1WP_#_1#3\#  NPC_L#_# MOBMEMBER2WP_ #_1#3\#   MOBLEADERWP_#_1#3   MOBMEMBER1WP_o#_1#3   MOBLEADERWP_#_1#7  MOBMEMBER1WP_#_1#7  MOBMEMBER2WP_#_1#3   MOBMEMBER2WP_4#_1#7 @tDGANKINGWP_#_5#5NO # <  V&K--h-Z.F-'"- C  NPC_d#_#\# #,4(-  WP_6#_7#?!FUPGANKINGWP_#_5#9R-WP_#_1#?!HDOWNGANKINGWP_#_5#9-WP_6#_4#?!DGANKINGWP_#_5#5NO # FUPGANKINGWP_E#_5#9GANKINGWP_ #_5#5NO #@WP_%#_4#-GANKINGWP_#_5#5UP #@WP_#_1#-GANKINGWP_#_5#5DOWN #@WP_'#_7# BLUE #-RED6*-BLUE    WP_ALTAR_#_#\#)?!/  y0" A0}-NyN0" AN05 WP_DOUBLER   WP_DOUBLER #U WP_DOUBLER WP_ALTAR_#_2#^0 #f WP_ALTAR_#_2#+ WP_ALTAR_Z#_1# #f WP_ALTAR_#_1#NPC_#_1#@NPC_#_1#<*$1- WP_DOUBLERNPC_#_2#@NPC_#_2#<*$B- WP_ALTAR_*#_2#NPC_#_6#@NPC_#_6#<*$B- WP_ALTAR_'#_1#@,e WP_CENTRE_#  J "  " ,4(-   n)@!0 ?!-?~ yP0" C0-NyN0" CN0  Stephen>aFNOGANKINGWP_#_5#9*":*"Y*"  % % % %v %l %\ %L %<B<60>$ @U   ' # x T8_STARTEDPORTAL_#_1#3"I + BUFF_ROUTINE3   N' #+ BUFF_ROUTINE3   N' #+ BUFF_ROUTINE3    ' #.%)?! K-' #.,)?! K)?!P2 BUFF_ROUTINE3  BUFF_ROUTINE7-' #0SPAWNBUFF_ROUTINE3  S' #0SPAWNBUFF_ROUTINE3   S' #0SPAWNBUFF_ROUTINE3   fSPAWNBUFF_ROUTINE3 SPAWNBUFF_ROUTINE7OTARGET5 #*" %N %D %: %06 * w  U 7 BUFF_ROUTINE3 ;0- BUFF_ROUTINE3 H'0f- BUFF_ROUTINE3 ;0  BUFF_ROUTINE3 ' #;N00G' # BUFF_ROUTINE3 T'0W- BUFF_ROUTINE3 T'0<- BUFF_ROUTINE3 G0r- BUFF_ROUTINE3 Gx0dI- BUFF_ROUTINE3 '0f0- BUFF_ROUTINE3 v0c0 BUFF_ROUTINE'3 8 BUFF_ROUTINE'3  8 BUFF_ROUTINE'3  S T8_STARTEDPORTAL_|#_1#7 lU SPAWNBUFF_ROUTINE3 G0' #]SPAWNBUFF_ROUTINE3 G0 -SPAWNBUFF_ROUTINE3 Gf0w-SPAWNBUFF_ROUTINE3 Gx0+-SPAWNBUFF_ROUTINE3 vN00w-SPAWNBUFF_ROUTINE3 Gf0 SPAWNBUFF_ROUTINE3 G0w-SPAWNBUFF_ROUTINE3 G0 TARGET5x CYCLE3AɀV #'?!9'?!   5mCYCLE3"N]3 #?'?!  ;''@!'1'1 ZCYCLE'7CYCLE'7V-CYCLE'7CYCLE'70"CYCLE3 L'yC' 'Ap! 6?'-'yC' 'Ap! 6?'*CYCLE3TARGET5)@!*f- WP_FRONT_(#_1#  WP_CENTRE_# #K WP_FRONT_#_2#\2- WP_FRONT_M#_2# #K WP_FRONT_ #_1#- WP_CENTRE_#_1# #D WP_CENTRE_#j@- WP_CENTRE_b#*  & #(')?! ' # F WP_FRONT_#_2#TARGET9-c9 #(')?! ' # F WP_FRONT_#_2#TARGET9+-2TARGET9TARGET5 TARGET5 U $Dɺ  K T8_STARTEDPORTAL_ #_1#3" S T8_STARTEDPORTAL_#_1#7 %N %$ %M %uSPAWNBUFF_ROUTINE7h $.  - BUFF_ROUTINE7TARGET9TARGET9JSPAWNBUFF_ROUTINE7= $  - BUFF_ROUTINE73TARGET9d' "v WP_FRONT_#_1#TARGET9CYCLE7k- WP_CENTRE_|#TARGET9CYCLE7' #"'" )CYCLE'3 &CYCLE7-' #&CYCLE7-'")CYCLE'3 &CYCLE7"-CYCLE7  % % % % %~ %n % %owq ;_Y$62,STATE7& STATE3 ,%-STATE3 {%-STATE3 <TARGET5.-STATE7 1 5TARGET5)?! # )?! PTARGET5-hBp!{  A!F"0 ~A!"y ;"0C-STATE3 % &" " d  q &= T9_U#_DIPS#7Free T9_#_DIPS#3\#0 21!d& d//f / )1 A ! L  y;0y  O0y  O0y  O0 STATE3TEAMMATE5 ## " 'TEAMMATE9TARGET5@)@@! >STATE7   9f)@@!Y')} !  TARGET9STATE7 #]8TARGET9STATE7STATE3 % % % %- %( % % %Q )@!:y TA ! =:0~-9y PAp! =90 -ta% ~TARGET5)@`!@ 5TARGET56 # / -TARGET5֘ #&STATE7-?!+TARGET5c # @" >STATE7TARGET5)?!$"-?!5W@ # $-?!5 ԏ # 2STATE7.-STATE7 TARGET5)?!$"-STATE7 , TURNS_WAITED3  TURNS_WAITED7 TURNS_WAITED3 2STATE7>)@! =" , 4sd  A$5TARGET9TARGETTEAMMATE59STATE7STATETEAMMATE57-  "d  A Q$)?!FTARGET9i-?!QA!%TEAMMATE5 # HSTATE7STATETEAMMATE57  +d  A $TARGET5TARGETTEAMMATE59--A!%TEAMMATE5 # eSTATE7 WP_DOUBLERTEAMMATE5 #gJTEAMMATE5 #   &ױ " d  q &? 3P #  DyDy ALTAR_BLUE_1WP_ALTAR_BLUE_1)WP_ALTAR_BLUE_2)!K ALTAR_BLUE_2WP_ALTAR_RED_1)!J ALTAR_RED_1WP_ALTAR_RED_2)!J ALTAR_RED_2 WP_DOUBLER)?!!FDOUBLER DyDy NPC_Ʋ#\#!"$U WP_#  WP_ALTAR_BLUE_1 #* ALTAR_BLUE_1-WP_ALTAR_BLUE_2 #* ALTAR_BLUE_2-WP_ALTAR_RED_1 #) ALTAR_RED_1-WP_ALTAR_RED_2 #) ALTAR_RED_2E- WP_DOUBLER #%DOUBLER TEAMMATE5 #,2  TEAMMATE9TEAMMATE9STATE3 4TARGET5" VSTATE7TARGET5TARGET9@-STATE7STATE7 T9_r#_DIPS#3\0T9_9#_DIPS#3    % % % % % %. %@ %X %jj~r<ϱDσ=\Χj4І< T9_;#_DIPS#7Call T9_#_DIPS#3\#0 T9_# _SPAWNCOUNT#DOUBLER3 T9_u# _SPAWNCOUNT#DOUBLER7T9_2# _SPAWNCOUNT#DOUBLER3 STATE3 zSTATE7 WP_ENTRY_u#_2#TARGET9STATE7 STATE3 ' #+'-' #+'K-' #+'w -' #&STATE7-' #+'-' #+'H-' #+'t  % % % % % % %z %jjdDAMAGED_SECOND7<J0>$2  "&ALIVE7U-'?!,ALIVE7@"@V)A!}DAMAGED_SECOND3 /DAMAGED_SECOND7DAMAGED_SECOND3 "    }k "INDEX3   c NW_WBWMXL009*#*"-k)?!(L" # @! $e-A G "Healing  "  }_NEEDED#  J ,,$    |bALIVE3 $$z   g_NEEDED# $m  PA ENEMIES\#7$J  (_NEEDED#2ENEMIES\#3 6!O- 7@ =!!!V $Ay_NEEDED##r ,#_NEEDED#\#$o NPC_S#_#\#   %N %Z %l %~}$]XK0  7 PORTAL_#_1# *"!l]; # $$  >3 d   iTARGET6 " $$  ]TARGET $ FTJ\#7$` _NEEDED# ,TJ\#3$" $"*]."%TARGET6 "  .    *j$ _NEEDED#TARGET:TJ\#7$ ,$ INDEX3    TARGET6   % % % %| %r %b %R %BHB<J0|$N NPC_!#_3# #3NPC_#_5# #  V ?!T-6T11_MELEE_WEAPON6   T11_TARGET6*"\ T11_TARGET:T11_TASK7R)T11_TASK3 F?!(4!  *J T11_TARGET:T11_TASK7d-*] T11_TARGET6 T11_TARGET:T11_TASK7-*J T11_TARGET:T11_TASK7-R #U T11_TARGET:T11_TASK7 T11_TARGET6)y0" ;0-fyf0" ;f0o-xyx0" ;x0-NyN0" ;N0->y>0" ;>0-ٸ?!$   WP_DOUBLER WP_ALTAR_#_1# WP_ALTAR_n#_2# WP_ALTAR_#_1# WP_ALTAR_#_2#7 WP_DOUBLER8 WP_ALTAR_k#_1#8 WP_ALTAR_!#_2#8p WP_ALTAR_#_1#8& WP_ALTAR_y#_2#8jD WP_DOUBLER# #p ALTAR_RED_1j{ #*?! ALTAR_RED_2jT* #*?! ALTAR_BLUE_1j #*?! ALTAR_BLUE_2i #*?!@@!- WP_ALTAR_ #_1# #*@!(- WP_ALTAR_#_2# #*@!- WP_ALTAR_8#_1# #*@!h- WP_ALTAR_#_2# #*@!- DAp!2?!!-B P?&!!$@ $;Af # $`-;Ae # #$@!Bp! Bp?Bp!!%!*@!*@!"  *@@! " *>! *@!  *@! Ap!d   WP_ALTAR_BLUE_1 ##WP_ALTAR_BLUE_2 # "WP_ALTAR_RED_1 # "WP_ALTAR_RED_2 #  WP_DOUBLER # wAp!d   "T11_TASK3 2 T11_TARGET6 # ,k*-A-qT11_TASK3 0 T11_TARGET6 #  ,~$$ @!d  5T11_TASK3 ( T11_TARGET6* .X$ '@!d  "B * `1 =1$ P WP_DOUBLER4!UWP_CENTRE_BLUE WP_DOUBLER4WP_ALTAR_BLUE_14![WP_FRONT_BLUE_1WP_ALTAR_BLUE_14WP_ALTAR_BLUE_24![WP_FRONT_BLUE_2WP_ALTAR_BLUE_24WP_ALTAR_RED_14!YWP_FRONT_RED_1WP_ALTAR_RED_14WP_ALTAR_RED_24!YWP_FRONT_RED_2WP_ALTAR_RED_24 T11_TASK7T11_MELEE_WEAPON:TARGET9 T11_TARGET:  % % % % % % %p %`f hN P60$$.  %N %^ %n %~~X `2 n: A H "5@ "nA %Q-@  " @ :@y "68  u?!& " #U  ,z^$  %d % % % %By WP_DOUBLERvIllegal waypoint index: \#A WP_DOUBLER  $v30  " "1!  8$ z % % % %  %4 %] %NPC_#_1#NPC_#_2#NPC_#_3#uNPC_#_4#6NPC_#_5#NPC_#_6#NPC_#_7#yIllegal enemy index: \# NPC_BLUE_1 )!$ &@!,XuCOLOR5 # FA  "V'8@Ejp" @ . "7@ "nAӼ %Q-t@x" @ҷ A[ "6|8 @TARGET5 #M*"& "1 TARGET:)?!$  ,,, %N % % %-=cy c0" [c04y 0" [0_ͨ 7J  l "y;0-y;0-y;0v-y;0(-p 'l " 7O2  12 4.8 ? u!8$\ )W!L! 1 ",@@B ",@@ ",@e ",@v! ",@2?   *"w??12 &!A !hr&! !-r_)TARGET6 " '! ,!$$! !,@ !?! ,@@O !G& " ,=?!!,=~@!!,=8?  %* %G %d % % % % % % %- %I %e % % NPC_BLUE_1 NPC_BLUE_2 NPC_BLUE_3 NPC_BLUE_4m NPC_BLUE_5: NPC_BLUE_6 NPC_BLUE_7 NPC_RED_1 NPC_RED_2p NPC_RED_3> NPC_RED_4  NPC_RED_5 NPC_RED_6 NPC_RED_7vIllegal creature index: \#q NPC_BLUE_1  JTARGET9  % % % % % %z %j %Z`ZT IN_COMBAT70>$,5 WP_'#_1#& ALTAR_BOY7@ ALLY_BUSY_; A#'7BUFFING3(BUFFING7 JUST_SPAWNED3 ) JUST_SPAWNED3   JUST_SPAWNED3  JUST_SPAWNED7U %8 %" % &Q ALLY_BUSY_; A#'7z- JUST_SPAWNED3  ALLY_BUSY_; A#'7 JUST_SPAWNED3  JUST_SPAWNED7- JUST_SPAWNED3  JUST_SPAWNED3  JUST_SPAWNED7 ALLY_BUSY_; A#'7 IN_COMBAT3@" * IN_COMBAT7 t13_stamp'3'k  $@ TNPCS_AT_ALTAR_\#'7$ uNPC_'#_#\#CH ALTAR_\#'6!8$+NPC_\#_NEAREST_ALTAR#'7ALTAR_\#'6A!pNPCS_AT_ALTAR_\#'3 NPCS_AT_ALTAR_\#'7$ NPC_'#_#\#CH ALTAR_\#'6!8$+ALLY_\#_NEAREST_ALTAR#'7ALTAR_\#'6?! $" t13_stamp'7   {NPCS_AT_ALTAR_\#'3 % NPC_'#_#\# ALLY_BUSY_\#'3"MNPC_'#_#\#ALTAR_\#'6 ALTAR_BOY3 2! 6#$  ALLY_BUSY_\#'7 ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7$[    NPCS_AT_ALTAR_\#'3  c NPC_'#_#\# ALLY_BUSY_\#'3"{NPC_'#_#\#U ALTAR_\#'6 2! %BH! 6#$  ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7- NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F f- ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7 NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F - ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7$    gNPCS_AT_ALTAR_\#'3   NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F   ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7 NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F b ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7 NPC_'#_#\# ALLY_BUSY_\#'3"NPC_'#_#\#ALTAR_\#'6 2! 6#$F  ALLY_ACTION_\#'5ALTAR_\# #V,  NPC_'#_#\#ALTAR_\# ALLY_ACTION_\#'9,>ALTAR_\#'6 NPC_'#_#\# ALLY_BUSY_\#'7$o   ALLY_BUSY_\#'3" ALTAR_BOYNPC_'#_#\#3m$DALTAR_5 ALLY_ACTION_\#'9 ALLY_BUSY_\#'7,  NPC_'#_#\#,+ NPC_'#_#\#$ WP_'#_1#&U %N %~ %n %OBUFFING7BUFFING3  y0" ;0-y;0V-N0";N0 ALLY_BUSY_; A#'70"0 ALLY_BUSY_; A#'7   < <  <      JUST_SPAWNED7   % % % %| %r %M %= %-3-'L<|" !   !   ,"F j BX  >1 # >7 # 8casterL->2 # >6 # 7rogue->3 # >5 # 9warrior4-cleric>     !  %" %AR<)A !#  @TARGETPORTAL_+#_#>#5 #"1*")* 2!R@!#6&"@TARGETPORTAL_)C#_#>#5 #&T$PTARGETPORTAL_(I#_#>#9*")?!$6H # T  CPEPEPORTAL_'#_1#3  LEAVING DOUBLER, OWNED ALTARS :  \# TARGETPORTAL_&~#_#>#9  =!5N!!F!4U!!@!3!!F!5x! !F! 4y NEWTARGET: #CL: # !#CR: # !#FL: # !#FR: # ! #DB: # !#  NEW TARGET: # MAX: # # ===L1 %0%2(&%1X(&%0 %!!!!! !!!!!/4$.l4$/"4$024$- @-!  &" I-PEPEPORTAL_Q#_1#7  %A ! )"" 11&$<# ! X #,! #,A !,A'",@,TARGETPORTAL_#_#>#5 #,8  ) # $( # $*=oE # $)X) # $  FIRST_ROUNDPORTAL_#_1#3SKIPPER/7 >1 #(&e->7 #('Q-&d# FIRST_ROUNDPORTAL_5#_1#7P-"TARGETPORTAL_#_#>#9  % % % %| %r %b %R %BHB<J0$` NPC_#_1# # NPC_#_2# #NPC_#_3# # NPC_M#_4# # NPC_#_5# # NPC_#_6# #NPC_#_7# #   @TARGET5 #*"U)*j 2D!@!"@TARGET5 #&T$ETARGET9*")?!$ 8NPC_#_1# #SPELL3 FNjjSPELL7B-j(SPELL7NPC_#_2# #B2  KNPC_\#_3# #BF2  KNPC_ #_4# #SPELL3 FhSPELL7B-h|SPELL7NPC_ #_5# #B2  JFNPC_ #_6# #B2  INPC_ D#_7# #SPELL3 FgSPELL7B-fSPELL7  NPC_ 7#_1# #"-NPC_ #_2# #"V-NPC_ #_3# #" R-NPC_ M#_4# #" -NPC_ #_5# #" zl-NPC_ #_6# #"-W 0?  #(- #(Un-۟u #(- NPC_#_1#)NPC_#_7#)C WP_%#_4#)WP_#_4#))&))))m| # @ # 3 #  # Sג # It$ g!" g!" g!"/ g!"W a!CIs!.P: WP_b#_4#)WP_#_4#))c))E))!!! -v-!3/--!! - v-!3/-V  *9 #( - y #( O- Йo #( n-I #( -     u7 #( - % #( -  #( yn- ΅[ #( -  NPC_#_1#)NPC_{#_7#))  , #( - #(n- Žb #( 0- SPELL7NPC_#_1# # -NPC_=#_2# # L-NPC_#_3# # -NPC_#_4# # -NPC_Y#_5# # h-NPC_ #_6# # - % %6 % % %\ % %*) #(n-i #(?-RnmC #(n- #(- (-@\ (- #($-#Ɠi #($-"TARGET9 šw # $[1 # $D # $ # $  % % % %| %r %b %R %BHB<J0/j$?  GroupStrength8 5NearbyEnemyStrength8Retreat7 F: Z * GroupStrength4y!  n @  $TARGET5*"+L # #  #  # L # )*j 2D!@!"@TARGET5 #&T$-# TARGET9*")@!5?ff$i  M2  " % kA !4!-,$ 21NPC_L#_1# #0NPC_#_1# #  ?333-NPC_#_2# #0NPC_^#_2# #  ?ffg"-NPC_$#_3# #0NPC_#_3# #  ?-NPC_#_4# #0NPC_6#_4# #  ?-NPC_#_5# #0NPC_#_5# #  ?f-NPC_h#_6# #0NPC_#_6# #  ?ffg-NPC_#_7# #0NPC_z#_7# #  ?333>- ?!! 2  " " iA !4!-,$ F<! !8$X  % % % % %+ %C %Z %r % % % % % % % %, %B %Y %p % % % % % % % %) %@ %R %i % %! %WP_ALTAR_BLUE_1WP_ALTAR_BLUE_1AWP_ALTAR_BLUE_1BsWP_ALTAR_BLUE_1CEWP_ALTAR_BLUE_1DWP_ALTAR_BLUE_2WP_ALTAR_BLUE_2AWP_ALTAR_BLUE_2BWP_ALTAR_BLUE_2C`WP_ALTAR_BLUE_2D2WP_ALTAR_RED_1WP_ALTAR_RED_1AWP_ALTAR_RED_1BWP_ALTAR_RED_1CWP_ALTAR_RED_1DRWP_ALTAR_RED_2&WP_ALTAR_RED_2AWP_ALTAR_RED_2BWP_ALTAR_RED_2CWP_ALTAR_RED_2DrWP_CENTRE_BLUE_1DWP_CENTRE_BLUE_2WP_CENTRE_BLUE_3 WP_CENTRE_REDWP_CENTRE_RED_1WP_CENTRE_RED_2cWP_CENTRE_RED_36 WP_DOUBLERWP_FRONT_BLUE_1WP_FRONT_BLUE_2WP_FRONT_RED_1WP_FRONT_RED_2\WP_CENTRE_BLUE0    PORTAL_#_1# MapValues_\#3 MyMapValues_\#23 !- MapValues_\#3 MyMapValues_\#z3 5! B!,?-B@!!,?ffgdX-B@@!!,?L-B@!!,?333-B@!!,?-B@!!,?L@-B@!!,>-BA!!,>-BA!!,>Lzn-BA !!,=4(-   F<! !@@!x MyMapValues_\#n32  MyMapValues_\#47$   "%A !    H$,!-  B" H$!-&$I Q> hasSummonedCreature3 NPC_a#_7# "T,3 A -NPC_#_4# "T,3 A -NPC_O#_1# "T,3 A hasSummonedCreature7 NPC_͒#_4# "B*d  1A! ! t!  L? ! "-L$* y = 0s-*"y ="0 hasCastStoneSkin3 yX,70 A0hasCastStoneSkin7 @" B*d  GA !6޹ GroupStrength4! N p! ߦ! "-L$% "  '! . 8- c=!8$ *"*#- ! %8 %< %@T@:A  A( h F@F@]*W  ! !* !  ! !* !  ! !* !  ! !* ! ^!@!!@!   }   . Ю  NPC_#_1# ":PORTAL_k#_1#$-! *  MapValues_\#7$T c?!! -! v-?!! :-!  9y # # @ #d  4  *(- - #0 # N$ #r  4  8(- -k #n #  4  (- Z(-2 ?N$ # $-$ɂ # $-$l # $-$i: # $-$ǥ # -    ψ!  GroupStrength4  MyMapValues_\#7$. )!"?ff!!   -!!  -!"?ff!!  Z-!!    #2 # ě #  #  # c #7  A ! "]o " )TARGET5 # 7NPC_f#_3# # 7NPC_'#_5# # rZ- ",2l-$  start3 hKϪstartf7N-:TARGET9  HPORTAL_ #_1#$-c! 2 #<  MapValues_\#7- #<  MapValues_\#7,-v #&:m # <  MapValues_\#7- #<  MapValues_\#78- MapValues_\#7$  % % % %v %l %\ %L %<B<60>$  T17_HeartBeat: #*"|T17_HeartBeat: # : oTarget: ##&  T17_EvalFittnesst17TurnCounter3T17_EvalFittness: turnCounter: \#} uQt17PrevRoundScore3t17RoundStartScore3  OT17_EvalFittness: roundScore\#_t17RoundStartScore7t17PrevRoundScore7   t17TurnCounter7 ]*(j   "  !t17TargetWeight#8^ DOUBLER #  ALTAR_BLUE_1 #   ALTAR_BLUE_2 #  ALTAR_RED_1 #  ALTAR_RED_2 # ,:(- T17_DecideTarget: #]?t17IsFollowingPartyMember7*j   " " vt17TargetWeight#4)7"2t17IsFollowingPartyMember3" ? !"!! H!T17_DecideTarget: target: #T17_DecideTarget: weight:  #T17_DecideTarget: distance:  #(T17_DecideTarget: bestWeightedDistance:  #6^:t17IsFollowingPartyMember7  T17_Spawn: #U  % % % %| %r % % %   r jd^' #' # &timer7 $yU ;0yU ;0 ylNyNCxyxfyfyyyv>y>MALTAR_#_1#p #ALTAR_#_2#pr # DOUBLERpwM # &-ALTAR_#_1#p! #ALTAR_#_2#o # X-ALTAR_#_1#og #ALTAR_K#_2#oW- #    x  SPELL_\#3UXT1 VSPELL_\#3 L SPELL_\#7m0SPELL_\#7 timer3timer3 U0timer7,- timer7 T18_Mode7 T18_Mode3  ' #ALTAR_#_1#k #R WP_ALTAR_i#_1#ALTAR_$#_1#)'ALTAR_#_1#!L WP_ALTAR_n#_1#I- WP_ALTAR_&#_1C#' #ALTAR_#_1#i #R WP_ALTAR_~#_1#ALTAR_9#_1#)'ALTAR_#_1#!L WP_ALTAR_#_1#I- WP_ALTAR_;#_1C#' #5 WP_DOUBLER' #&ALTAR_#_1#gx #R WP_ALTAR_I#_1#-ALTAR_#_2#g #R WP_ALTAR_#_2#?' #5 WP_DOUBLER' #ALTAR_#_2#f #S WP_ALTAR_#_2D#G WP_ALTAR_{#_2#)' WP_ALTAR_##_2#!L WP_ALTAR_#_2#I- WP_ALTAR_z#_2C#' #ALTAR_#_2#d+ #R WP_ALTAR_#_2#V WP_ALTAR_#_2#)' WP_ALTAR_2#_2#!L WP_ALTAR_#_2#I- WP_ALTAR_#_2C# ' #JALTAR_&#_1#)'ALTAR_#_1#!L WP_ALTAR_p#_1#I- WP_ALTAR_(#_1C#' #JALTAR_#_1#)'ALTAR_r#_1#!L WP_ALTAR_#_1#I- WP_ALTAR_#_1C#' #5 WP_DOUBLER' #5 WP_DOUBLER' #5 WP_DOUBLER' #P WP_ALTAR_#_2#)' WP_ALTAR_/#_2#!L WP_ALTAR_#_2#I- WP_ALTAR_#_2C#' #P WP_ALTAR_"#_2#)' WP_ALTAR_#_2#!L WP_ALTAR_i#_2#I- WP_ALTAR_!#_2C# ' #IALTAR_#_1#)'ALTAR_i#_1#!L WP_ALTAR_#_1#H- WP_ALTAR_#_1#' #IALTAR_`#_1#)'ALTAR_ #_1#!L WP_ALTAR_#_1#H- WP_ALTAR_N#_1#' #_ WP_DOUBLER)' WP_DOUBLER' WP_DOUBLER!! 5 WP_DOUBLERH- WP_ALTAR_#_1#' #_ WP_DOUBLER)' WP_DOUBLER' WP_DOUBLER!! 5 WP_DOUBLERH- WP_ALTAR_f#_1#' #_ WP_DOUBLER)' WP_DOUBLER' WP_DOUBLER!! 5 WP_DOUBLERH- WP_ALTAR_#_1#' #O WP_ALTAR_#_2#)' WP_ALTAR_K#_2#!L WP_ALTAR_#_2#H- WP_ALTAR_#_1#' #O WP_ALTAR_?#_2#)' WP_ALTAR_#_2#!L WP_ALTAR_#_2#H- WP_ALTAR_*#_1# INDEX3 r)@ ! - f")@ ! I- rs)@ ! 0-@"K| "YNPC_|~#_1#b@! 2M!(   5- "SNPC_{#_4#V@! 2q!(   /F- "YNPC_z#_7#I@! 2!(   5d-   r NW_WBWMXL009#WP_CROSSROADS_yt#*" x # n$WP_CROSSROADS_x#!%- 5M- 5"  % % % %v %l %\ %L %<B<608$v %N 3     " )A!  " 5  F+ "lvHuc #5 < "5 kP6  STONESKIN5 # "C,(TRUE STONESKIN9 &@-,)FALSE STONESKIN9 &,%FALSEHASTE9 & NPC_sr#_4#  ,)A!8 STONESKIN5TRUE # Tv,},)B !TZ,8  HASTE5 #B,'FALSEHASTE9 &HASTE5TRUE #q"N˵ a,&TRUEHASTE9 &>  *   STONESKIN5 #F,+FALSE STONESKIN9 & STONESKIN5TRUE #7-e,*TRUE STONESKIN9 &>   STONESKIN5TRUE #4N))! !)@!%? -- )@!%? -2  NPC_l#_1#  NPC_l#_7#  {{$||F<!#>f # 8!#= # 8!#=: # V!8!#< # V!8 " " Fp D   9w? v;9h #]v; # -v\ "  v:Tg* # $u:f # $w9f # $v9fX # $ utvu)?!.?)?!.)?!.)?!.vd ".N8 r)?!9r2  rD)A!r6Y # Oq2  rTq!.q5a # qAT_ALTAR5TRUE #D!.p4Ya/ # qAT_ALTAR5TRUE #D>  ALTAR_RED1 ALTAR_RED2 ALTAR_BLUE1 ALTAR_BLUE1   m1^ #Ymmh1 # -+' ALTAR_RED_11>^ #% ALTAR_RED_11  # !1 .A!  W ALTAR_RED_1!1 ALTAR_RED_202] #% ALTAR_RED_2/ # !1 .A!  W ALTAR_RED_2!1 ALTAR_BLUE_1/%[ #& ALTAR_BLUE_1. # !1 .A!x  X ALTAR_BLUE_1!1 ALTAR_BLUE_2.Z #& ALTAR_BLUE_2- # ! 1 .A! i  X ALTAR_BLUE_2! 1AT_ALTAR5TRUE #* s ATTACKINGSTATE9ZERGING #!!# ,)FALSE STONESKIN9 &,%FALSEHASTE9 &  % % % %v %l %\ %L %<B<60>$/ @!TRUE #DOUBLER@!qDOUBLERTARGET9SA9-U TRUE #%DOUBLERg-U ($-oTARGET9  NPC_U#_1# #.TRUE-NPC_U&#_4# #.TRUE-NPC_T#_3# #.TRUE7+-FALSE  TLUALTAR_#_1#ALTAR_#_2#NPC_#_6#NPC_#_2# #K LASTTARGETj9G- LASTTARGETj`9 SyRmALTAR_#_1#ALTAR_#_2#ALTAR_#_1#ALTAR_#_2#DOUBLER$ #%DOUBLER-$w #&$EQ # "-# #&#P # "-# #"\-#I #"- POALTAR_#_1#ALTAR_#_2#ALTAR_#_1#ALTAR_#_2#DOUBLERU (+c-TRUE #%DOUBLER$-TARGET9   % % % %v %l %\ %L %<B<60>$C NPC_L#_1# "59>PHASEPORTAL_LE#_4#3 TARGET5 #9Z\ K #&ZcKx #  i #*"8y)Ap!$b-:y.ZKA # kZz:-:y(XJ # eXd:PHASEPORTAL_I #_4#3 TARGET5 #6 #*"5)Ap!$ %N % % %ByWwD#Bb:y.VG[ # kV::y(TF # eTz:TARGET5 #*"c)A !$0&-NPC_D&#_2# "u16HPHASEPORTAL_C#_4#3  FR_HOSTILESPORTAL_C#_4#3 FR_FRIENDLIESPORTAL_C5#_4#3SHB #"   pRTARGET9}-WP_C#_6#TARGET9 -PHASEPORTAL_A#_4#3 Pkz #pPITARGET9@-O #  D_HOSTILESPORTAL_@#_4#3 D_FRIENDLIESPORTAL_@H#_4#3 NR_HOSTILESPORTAL_?#_4#3 NR_FRIENDLIESPORTAL_?#_4#3   "   jMTARGET9-N # FR_HOSTILESPORTAL_>\#_4#3 pNYTARGET9-)|-NPC_=|#_3# "r*/PHASEPORTAL_=1#_4#3 lTARGET5 #*F WP_ENTRY_<#_1# #*"))A !hLITARGET9- FR_HOSTILESPORTAL_;r#_4#3 FR_FRIENDLIESPORTAL_;#_4#3K1: #  pJTARGET9- WP_ENTRY_;#_3#TARGET9-PHASEPORTAL_9#_4#3 b D_HOSTILESPORTAL_9.#_4#3 D_FRIENDLIESPORTAL_8#_4#3 NL_HOSTILESPORTAL_8#_4#3 NL_FRIENDLIESPORTAL_85#_4#3 FL_HOSTILESPORTAL_7#_4#3 FL_FRIENDLIESPORTAL_7#_4#3G s7I #       jETARGET9-E: y6O #      pFTARGET9-l-ETARGET9- -NPC_4#_4# "PHASEPORTAL_4#_4#3 TARGET5 #! WP_ENTRY_4#_1# #*"!,)A !hCTARGET91- #*" #)Ap!$l-BwTARGET9-PHASEPORTAL_1#_4#3 TARGET5 # WP_ENTRY_1#_3# #*">)A !hA_TARGET91-% #*"5)Ap!$l-@(TARGET9\!-NPC_.#_5# "fPHASEPORTAL_.o#_4#3 b D_HOSTILESPORTAL_.#_4#3 D_FRIENDLIESPORTAL_-#_4#3 NR_HOSTILESPORTAL_-y#_4#3 NR_FRIENDLIESPORTAL_-%#_4#3 FR_HOSTILESPORTAL_,#_4#3 FR_FRIENDLIESPORTAL_,#_4#3;Tc,9 #       j:TARGET9-:*i+? #      p; TARGET9-l-9XTARGET9-PHASEPORTAL_)#_4#3 lTARGET5 # WP_ENTRY_)7#_3# #*"])A !h9~TARGET9- FL_HOSTILESPORTAL_(#_4#3 FL_FRIENDLIESPORTAL_'#_4#38f'n #  p8 TARGET9- WP_ENTRY_'#_1#TARGET9--NPC_&#_6# " s4 #"5F # "5| # "6B # 3 # LPHASEPORTAL_$#_4#3  N FL_HOSTILESPORTAL_$T#_4#3 NL_HOSTILESPORTAL_$#_4#3 FR_HOSTILESPORTAL_##_4#3 NR_HOSTILESPORTAL_#^#_4#3   NPHASEPORTAL_"#_4#7J-PHASEPORTAL_"h#_4#7X-PHASEPORTAL_"#_4#3  PHASEPORTAL_!#_4#3 1B #p1 TARGET9@-/* #  D_HOSTILESPORTAL_ #_4#3 D_FRIENDLIESPORTAL_ #_4#3 NL_HOSTILESPORTAL_ .#_4#3 NL_FRIENDLIESPORTAL_#_4#3   "   j.%TARGET9-/ # FL_HOSTILESPORTAL_#_4#3 p/0TARGET9K-PHASEPORTAL_#_4#3  FL_HOSTILESPORTAL_d#_4#3 FL_FRIENDLIESPORTAL_#_4#3- #"   p-\TARGET9}-WP_#_2#TARGET9k-NPC_k#_7# "0PHASEPORTAL_,#_4#3 TARGET5 #A #*")Ap!$ %N % %p %By*8D#BLwy(SD#wy'C#TARGET5 #*"c)A !$^-PHASEPORTAL_^#_4#3 PREPARED3"y;0y;0PREPARED7TARGET5 #  #*")Ap!$@%ORDERS3  bTARGET5 #*"): #?! A! $  ! !!"m = NPC_#_#\#*",$]A! $A! $A! $A! $A! $$ NR_HOSTILESPORTAL_#_4#7 NL_HOSTILESPORTAL_#_4#7 FR_HOSTILESPORTAL_p#_4#7 FL_HOSTILESPORTAL_&#_4#7 D_HOSTILESPORTAL_ #_4#7 D0v NPC_ H#_#\#*",$]A! $A! $A! $A! $A! $$ NR_FRIENDLIESPORTAL_ ;#_4#7 NL_FRIENDLIESPORTAL_ #_4#7 FR_FRIENDLIESPORTAL_ #_4#7 FL_FRIENDLIESPORTAL_ W#_4#7 D_FRIENDLIESPORTAL_ #_4#7 NPC_#_1# "}PHASEPORTAL_#_4#3 ORDERS7ITARGET9-PHASEPORTAL_#_4#3 ORDERS7xTARGET9-PHASEPORTAL_#_4#3 ORDERS7TARGET9K-NPC_#_2# ",PHASEPORTAL_#_4#3 pTARGET9r-PHASEPORTAL_'#_4#3 pTARGET9-PHASEPORTAL_q#_4#3 pFTARGET9-NPC_#_3# "aPHASEPORTAL_|#_4#3 wQD#TARGET9-PHASEPORTAL_#_4#3  WP_ENTRY_#_1#TARGET9-PHASEPORTAL_#_4#3  WP_ENTRY_#_3#TARGET9 T-NPC_%#_4# "PHASEPORTAL_#_4#3 pTARGET9- FL_HOSTILESPORTAL_#_4#3 NL_HOSTILESPORTAL_#_4#3 FR_HOSTILESPORTAL_x#_4#3 NR_HOSTILESPORTAL_&#_4#3   NPHASEPORTAL_z#_4#7J-PHASEPORTAL_0#_4#7PHASEPORTAL_#_4#3  WP_ENTRY_#_1#TARGET9-PHASEPORTAL_'#_4#3  WP_ENTRY_#_3#TARGET9-NPC_T#_5# "&PHASEPORTAL_#_4#3 j TARGET9r-PHASEPORTAL_e#_4#3 p :TARGET9-PHASEPORTAL_#_4#3 p #TARGET9(-NPC_#_6# ",PHASEPORTAL_#_4#3 p .TARGET9r-PHASEPORTAL_#_4#3 pxTARGET9-PHASEPORTAL_N#_4#3 pTARGET9-NPC_#_7# ",PHASEPORTAL_Y#_4#3 pTARGET9r-PHASEPORTAL_#_4#3 pTARGET9-PHASEPORTAL_#_4#3 paTARGET9f-TARGET9  % % % %D %: % % %12!>!0NW_IT_MPOTION001I;TARGET 5UNPC_#_1# # 2-NPC_#_2# # -NPC_#_3# # -NPC_#_4# # -NPC_#_5# # j-NPC_#_6# # 8-NPC_#_7# # -NPC_#_1# #xy  k  ;x0-NPC_#_7# #;y  k  :;0NPC_#_4# #>yk 3NPC_#_#\#!"NPC_H#_#\#*tNPC_#_#\#>0&$*   @NPC_#_1# # TARGET5FINALDESTINATION3"[((!( "$-NPC_#_2# #TARGET5 -NPC_#_3# #SIKAMODE3"pTARGET5?3-NPC_#_4# #/TARGETN5-NPC_#_5# #TARGET5-NPC_#_6# #!TARGET5G;-NPC_#_7# #!TARGETV5FINALDESTINATION3"Vq((!( "$ NyN0" ;N0-yO0"A"  ;0k-R"S]U  N)@!FINALDESTINATION7 AREASLOWER{3"z WP_ALTAR_{#_2A#B0  AREASLOWER7)@! TEAM_1_TARGETPORTAL_#_1#5TARGET9 [9y",')Ap!, #,0"Y0,  ,!? -0"j 08 y0" ;0\-:yCBp  1D "& "#Ap! Ap!Y! !U    I:0m$;)?!FINALDESTINATION7 AREASLOWER%3"z WP_ALTAR_%#_2A#B0  AREASLOWERb7CTARGET.5 " ! qCTARGET9& "@ey=e0-ky=k0V-sy=s0"7CTARGET9% "Xc0yE & " ;0-%-x0"ky =k0-ey=e0V-sy=s0"7CTARGET9*-CTARGETj9 )@!B"#\k- #;" W@EU )@! >  !  %TARGETs9 7TARGET29y #YNPC_M#_2#1@@! T TARGETt9SIKAMODE7-բ #NiTARGET9SIKAMODE7D-V, #T[TARGET9SIKAMODE7-PORTAL_է#_6#TARGET#9SIKAMODE7?4?PORTAL_#_4#SIKAMODE3"mTARGETg5 TEAM_1_TARGETPORTAL_Ө#_1#9SIKAMODE30But I'm going to rock 5 # $ # $ # $c9 # $ ,8 TARGET9A!  !  YREINFORCEDOUBLERPORTAL_#_1#7! [y (G)@@! ;[0-!>y F>0")A! =>0y& ";04-y& ";0-y & ";0 v77TARGET9CM-=ܿTARGET9܆ #YNPC_̠#_6##@@! TTARGET9SIKAMODE7Q- #NڼTARGETW9SIKAMODE7-w #TMTARGET9SIKAMODE7e-PORTAL_#_2#TARGETv9SIKAMODE7SIKAMODE3"mTARGET5 TEAM_2_TARGETPORTAL_^#_1#9SIKAMODE3-I'm going to rock! صʶ # (-Dv8 # $_0 # $ ,8 )@!B"#@XU )@! >  !  %ֺTARGETކ9 y0" ;0-cyc0" ;c0-)@!FINALDESTINATION7 AREASLOWER3"z WP_ALTAR_#_1A#0  AREASLOWERQ7 TEAM_2_TARGETPORTAL_Ć#_1#5TARGET9 }TARGET9  % % % %p %` %P %@ %0B<60*$,   8  y ) NW_WBWMXL009 NW_WBWMSL010 NW_WBWMSH009*%#*%#[*%#)  1   A A '*e#Interrupting running to cast SPELL # ~   i   A !*`Interrupting running to FIGHT #     BUFF3       bNPC_8#_#\# BUFF_TARGET5 # # ?TARGET93Someone wants to buff me, closing in to fetch buff. $)5++BUFF7l!-BUFF747   g  9;% BuffSelf! 7y l*"W WOOOT, mayra?y l*"W WOOOT, myyra?1v2"" 2" "   NPC_#_3# # NPC_#_5# # NPC_G#_2# # NPC_#_6# # NPC_y#_1# # NPC_#_7# # NPC_#_4# # d2d'F@ iNPC_T#_#\#*") !!"Y1  , c0, 0, N0, 0,  : !  N$ #,E  y 0*|0BLINDNESS_AND_DEAFNESS at #64y d*v40SPELL_ENERVATION at #p%/= ~ XA4 y\   Ap&*Q% Melee attack #q_-A+*&  % Y  vD- ,8  % yq@@@2  NW_ANIM_CONDITION3@ NW_ANIM_CONDITION7>- NW_ANIM_CONDITION7 \ ey ,F;y ,AA'F@        NPC_ #_#\#*"d)! !1 c0m0B0, N0,  : !  N$4 #,E *",T!"(DONT SEE OPPONENT!:y A A FIREBALL_TARGET5:0 FIREBALL at # ey e0LIGHTNING BOLT at #V;y ;0FLAME ARROW at #eky k0MAGIC MISSILE at #sy s0MELFS ACID_ARROW at #"uLy L0HAMMER OF THE GODS at #}=y =FLAME STRIKE at #2   NPC_#_#\#*") !  pNPC_#_#\#NPC_w#_#\#*'!  $*'!  #$ 8$ 2FIREBALL_TARGET9 dX2'F@ DNPC_#_#\#*") !a1 d  , c0, N0, 0, 0,  : !  N$ #,E d22'F@ qNPC_#_#\#*") !!"a1 d  , c0, 0, N0, 0,  : !  N$ #,E *"jiC%Ranged attack at # ft)A @ #! !&I'm not being VERY STUPID, distance = # >   ׊  ؗ Q       N  c    #  "y 8F@ NPC_P#_#\#*"V 90- ?%1@ff!2!!)!8$A !NPC_P#_#\# BUFF_TARGET9=4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNPC_#_#\#*"0 ^4WWWWWWWWWWWWWWTTTTTTTTTTTTTTTTFFFFFFFFFFFFFF valid: *\#]0$Ax,V BUFF_TARGET9 ҹl*"y j SUMMON 3!״_l*"\y W$y Wy WD    <ALTAR_#_1# <ALTAR_#_2# <ALTAR_T#_1# <ALTAR_#_2# %DOUBLER NPC_o#_#\#TARGET5WP_# # $$=X ##TARGET5 # uWP_#TARGET9" gX  #;%OUR ALTAR AND NO ONE IS INTERESTED??!W #&W}S # GP oNPC_#_#\#TARGET5 #.BUFF3  !8$NPC_r#_#\# "WP_#TARGET9- T #TARGET5WP_# #)@!O(--S~ #TARGET5WP_# #)@!O(--TARGET5WP_# #RW #}K"ETARGET9(-   ~*NOT* going to FUCK THEM UP: #, influence = #\# , luku = #\#zX-TARGET5 <TARGET5DOUBLERTARGET9 TARGET5 #Z$ERROR: No target string, quitting HB\*"Z$ERROR: No target object, quitting HBmN{ #,L)* "p 2D!@!"@TARGET5 #&T$m A  A 6NPC_yG#_#\#NPC_x#_#\#! $! #$  % % % % % % % %v||\\<0 $  &  u]Amazon# #%yAssassin# #%2Cleric# # %z % % % % %P0=00L0t0=0Fighter# #%Rogue# #%s Sorceress# #u %N %o % %00t0=:0Sorceror# # % % % %  %* %K %l %e0:0P040s00tk0=s0   21  1 | @TARGET5 #6*")*j 2D!@!w!"@TARGET5 #&T$xTARGET9*"s)?!$  hw; #(x;t # ! %N %Z %f %rvlvJw(v-v:/ #(vh-u9 #(u-udTARGET9  % % % %v %l %\ %L %<B<60>$0q + deadcount#PORTAL_d#_4#3 @  } deadcount#PORTAL_d0#_4#7,{@R,z P HELPneedePORTAL_c#_4#3  0HELPPORTAL_c8#_4#*B! HELPneedePORTAL_b#_4#7HELPing:#,T#')*"o)?!$  StatePORTAL_ac#_4#5CHARGE #! ChargecounterPORTAL_`#_4#3  ChargecounterPORTAL_`#_4#7p3`s #.q73i`? # 6DEFEND`+-p83 _ #. WP_DOUBLER2_ # 5RIGHT_f-pD2v_L #. WP_DOUBLER2B_ # 4LEFT^ - ChargecounterPORTAL_^#_4#3  ChargecounterPORTAL_^V#_4#7BOTTOM^* 8 *DEFEND #[n'0] #.n0^ # .m0^P # .lI0X]. # 5RIGHT]   X-m(/] #.m/\ # .l/\e # .kJ/Y] # 4LEFT\  Z-l*.\ #.l.\ # .k!.[g # .jL.[[1 # . WP_DOUBLER.%Z # TdcounterPORTAL_Z#_4#3 dcounterPORTAL_Z#_4#7dcounterPORTAL_Z@#_4#33 {dcounterPORTAL_Y#_4#7BOTTOMY-i,Y} #.jA,sYI # .h,=Y # .g,X # 6CHARGEXLEFT #h+YM #.i%+WY # .g+!W # .f*X # . WP_DOUBLER*W # TrcounterPORTAL_WV#_4#3 rcounterPORTAL_W#_4#7rcounterPORTAL_V#_4#33 {rcounterPORTAL_V}#_4#7BOTTOMVQ_Qw-rcounterPORTAL_V#_4#7CHARGEURIGHT #e(Vk #.fC(uV7 # .d(?V # .c( T # . WP_DOUBLER'T # rcounterPORTAL_Tt#_4#3 rcounterPORTAL_T-#_4#7rcounterPORTAL_S#_4#33 rcounterPORTAL_S#_4#7BOTTOMStatePORTAL_SU#_4#9BOTTOMS)7)w-rcounterPORTAL_R#_4#7CHARGERBOTTOM #\b%SB #.c%LS # a%R #,`$R # , WP_DOUBLER$RR #  6CHARGEQBPBDEFENDQ   RED #BLUE REDCHARGE #PORTAL_#_1# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_2# WP_ALTAR_#_2D#TARGET9ATTACKSTANCE9PORTAL_#_3# WP_FRONT_#_2#TARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_FRONT_#_1#TARGET9ATTACKSTANCE9PORTAL_#_6# WP_ALTAR_#_1D#TARGET9ATTACKSTANCE9PORTAL_#_7# WP_ALTAR_#_1#TARGET9STANDSTANCE9-DEFEND #PORTAL_#_1# WP_ALTAR_#_2E#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_3# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_6# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1E#TARGET9ATTACKSTANCE9)-LEFT #PORTAL_#_1# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_2# WP_FRONT_#_2#TARGET9ATTACKSTANCE9PORTAL_#_3# WP_CENTER_#_2#TARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_CENTER_#_1#TARGET9ATTACKSTANCE9PORTAL_#_6# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1C#TARGET9ATTACKSTANCE9 ?-RIGHT #PORTAL_#_1# WP_ALTAR_#_2C#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_3# WP_CENTER_#_1#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_CENTER_#_2#TARGET9STANDSTANCE9PORTAL_#_6# WP_FRONT_#_1#TARGET9STANDSTANCE9PORTAL_#_7# WP_ALTAR_#_1#TARGET9ATTACKSTANCE9V-BOTTOM #PORTAL_#_1# WP_ALTAR_#_1D#TARGET9ATTACKSTANCE9PORTAL_#_2# WP_CENTER_#_2#TARGET9STANDSTANCE9PORTAL_#_3# WP_ALTAR_#_1#TARGET9STANDSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_ALTAR_#_2#TARGET9STANDSTANCE9PORTAL_#_6# WP_ALTAR_#_2D#TARGET9STANDSTANCE9PORTAL_#_7# WP_CENTER_#_2#TARGET9ATTACKSTANCE9k-PORTAL_#_1# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_2# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_3# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_4# WP_DOUBLERTARGET9STANDSTANCE9PORTAL_#_5# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_6# WP_DOUBLERTARGET9ATTACKSTANCE9PORTAL_#_7# WP_DOUBLERTARGET9ATTACKSTANCE9StatePORTAL_#_4#9 *? "p, )Y% $- TARGETO5  HELPPORTAL_7#_4# HELPneedePORTAL_7u#_4#7 @,yeSTAND #,2  STANCEN5 #.<ATTACK (#)# #Y# (# #)#  (  ! #, #  ! #, #  ! #)#  wO \event % % % % % % % %@"3INIT_HP31    "-Am@@@"3INIT_HP31    "-@weak # 6\-tank #$.6-ranged #%-%E?931INIT_HP7&:  "'role5 #.born "U "weak- $ranged- "tankk- $healer5-\BUG got class m "'role9 : ##, ##, ##, ##.#0 8'F<*)A! :e@  :"1  =19"%! C$6@  " lhealer #fA !6-weak #ZA !˻S~-tank #"PH-A !0 ! ! ! ! ?@@!!!!!!!!!!!!0?!D!!! W ?p(   '?!!!!!!!! "running away from  #,# # to # !!#,# !!##gen location failed6 shout @&\NbaP } 1 @,8  *$)! 0#"k1 , $  ytank # @-healer # @R-ranged # A-Atank1 #tank2 # .tank15* .tank25* Wtank25tank15A ! , tank1 #.tank15* /healer5* Xhealer5tank15A ! , tank2 #.tank25* /healer5* Xhealer5tank25A ! ,tank1 #tank2 # .tank15* .tank25* Wtank25tank15A! #tank1|-tank1 #healer # .tank1 5* /healer 5* Xhealer t5tank1 S5A! #tank1S-tank2 #healer # .tank25* /healer5* Xhealer5tank25A! #tank2*-healer #ranged1 # ranged2 # /healer5* 0ranged15* 0ranged25* Zhealer5ranged15A! Zhealer_5ranged2<5A! $healer;-tank1 #.tank15* #tank1-tank2 #.tank25* #tank2_-healer #/healer5* $healer-ranged1 #0ranged15* %ranged1z-ranged2 #0ranged25* %ranged2 #,55!,healer #?5 stank15 #/tank1tank25 #/tank2weak15 #/weak1|weak25 #/weak2-ranged15 #1ranged1ranged25 #1ranged2healer5 #0healer6 PORTAL_#_1#  STRATEGIC_TARGET6>!h, &@v2  ALTAR_L6ALTAR_R6weak1 ##weak2-weak15*55!"-55! JP- " -%-55! p-T2 STRATEGIC_TARGET: =STRATEGIC_TARGET6 @" KI2& STRATEGIC_TARGET6>!,8  @JFRF2    @:I6-I/ weak #- ` ALTAR_C96 //:://///////////////////////////////////////////// //:: Default: On User Defined //:: NW_C2_DEFAULTD //:: Copyright (c) 2002 Bioware Corp. //::////////////////////////////////////////////// /* Determines the course of action to be taken on a user defined event. */ //::////////////////////////////////////////////// //:: Created By: Don Moar //:: Created On: April 28, 2002 //::////////////////////////////////////////////// #include "games_and_ai" void main() { ActivateUserDefined( GetUserDefinedEventNumber() ); return; } const int EVENT_SPAWN = 3500; const string COLOR_BLUE = "BLUE"; const string COLOR_RED = "RED"; const string DOUBLER = "DOUBLER"; const string ALTAR_BLUE_1 = "ALTAR_BLUE_1"; const string ALTAR_BLUE_2 = "ALTAR_BLUE_2"; const string ALTAR_RED_1 = "ALTAR_RED_1"; const string ALTAR_RED_2 = "ALTAR_RED_2"; // Return the color of oObject, either COLOR_RED or COLOR_BLUE. If oObject // belongs to neither team, return an empty string. string MyColor( object oObject = OBJECT_SELF ) { if (!GetIsObjectValid( oObject )) return ""; string sColor = GetLocalString( oObject, "COLOR" ); if (sColor != COLOR_RED && sColor != COLOR_BLUE) return ""; return sColor; } // Return the color of the opponent team of oObject. string OpponentColor( object oObject = OBJECT_SELF ) { if (!GetIsObjectValid( oObject )) return ""; string sColor = GetLocalString( oObject, "COLOR" ); if (sColor == COLOR_BLUE) { return COLOR_RED; } else if (sColor == COLOR_RED) { return COLOR_BLUE; } else return ""; } // Return the tag of the waypoint that identifies the doubler space. string WpDoubler() { return "WP_" + DOUBLER; } // Return the tag of the waypoint that identifies the altar that is at the side // of the oObject starting area, to the right. If the function is called with // an oObject that belongs to neither team, return an empty string. string WpClosestAltarRight( object oObject = OBJECT_SELF ) { string sColor = MyColor( oObject ); if (sColor == "") return ""; return "WP_ALTAR_" + sColor + "_1"; } // Return the tag of the waypoint that identifies the altar that is at the side // of the oObject starting area, to the left. If the function is called with // an oObject that belongs to neither team, return an empty string. string WpClosestAltarLeft( object oObject = OBJECT_SELF ) { string sColor = MyColor( oObject ); if (sColor == "") return ""; return "WP_ALTAR_" + sColor + "_2"; } // Return the tag of the waypoint that identifies the altar that is at the opposite side // of the oObject starting area, to the right. If the function is called with // an oObject that belongs to neither team, return an empty string. string WpFurthestAltarRight( object oObject = OBJECT_SELF ) { string sColor = OpponentColor( oObject ); if (sColor == "") return ""; return "WP_ALTAR_" + sColor + "_2"; } // Return the tag of the waypoint that identifies the altar that is at the opposite side // of the oObject starting area, to the left. If the function is called with // an oObject that belongs to neither team, return an empty string. string WpFurthestAltarLeft( object oObject = OBJECT_SELF ) { string sColor = OpponentColor( oObject ); if (sColor == "") return ""; return "WP_ALTAR_" + sColor + "_1"; } // Return the color that identifies the team that has claimed a certain altar. // Call with ALTAR_RED_1, ALTAR_RED_2, ALTAR_BLUE_1, ALTAR_BLUE_2, or DOUBLER. // Returns either COLOR_RED or COLOR_BLUE, or an empty string if called with a // wrong parameter. string ClaimerOf( string sAltar ) { object oAltar = GetObjectByTag( sAltar ); if (!GetIsObjectValid( oAltar )) return ""; string sOwner = GetLocalString( oAltar, "OWNER" ); if (sOwner != COLOR_RED && sOwner != COLOR_BLUE) return ""; return sOwner; } // Return the Portal object for oObject. This portal is indestructable, and can // be used to store any variables that the object wants to keep track of. Note // that the object is a creature, and can be destroyed, and thus cannot store // its own knowledge. The function returns OBJECT_INVALID if the oObject has // no portal (i.e., is not on a team). object MyPortal( object oObject = OBJECT_SELF ) { if (!GetIsObjectValid( oObject )) return OBJECT_INVALID; string sPortal = "PORTAL_" + MyColor( oObject ) + "_" + IntToString( GetLocalInt( oObject, "INDEX" ) ); return GetObjectByTag( sPortal ); } // Return the score achieved by the team with color sColor, for altar sAltar. // Call with ALTAR_RED_1, ALTAR_RED_2, ALTAR_BLUE_1, ALTAR_BLUE_2, or DOUBLER // for sAltar, and COLOR_RED or COLOR_BLUE for sColor. int GetAltarScore( string sColor, string sAltar ) { object oAltar = GetObjectByTag( sAltar ); if (!GetIsObjectValid( oAltar )) return 0; return GetLocalInt( oAltar, "SCORE_" + sColor ); } // Get the total score for the team with color sColor. Call with COLOR_RED or // COLOR_BLUE. int GetScore( string sColor ) { int iScore = 0; iScore = iScore + GetAltarScore( sColor, ALTAR_RED_1 ); iScore = iScore + GetAltarScore( sColor, ALTAR_RED_2 ); iScore = iScore + GetAltarScore( sColor, ALTAR_BLUE_1 ); iScore = iScore + GetAltarScore( sColor, ALTAR_BLUE_2 ); return iScore; } // Sets the name of a team, call this with your color as // first parameter, and the desired name as second parameter. void SetTeamName( string sColor, string sName ) { object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return; SetLocalString( oBrazier, "TEAM_" + sColor, sName ); return; } // Gets the name of a team, by color string GetTeamName( string sColor ) { object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return sColor; string sName = GetLocalString( oBrazier, "TEAM_" + sColor ); if (sName == "") return sColor; return sName; } // Returns TRUE if both objects belong to the same faction. int SameTeam( object oTarget, object oMe = OBJECT_SELF ) { if (!GetIsObjectValid( oTarget )) return FALSE; if (!GetIsObjectValid( oMe )) return FALSE; return GetFactionEqual( oTarget, oMe ); } // Get a random target waypoint, with a choice between the four altars and the // doubler. string GetRandomTarget() { // The next line moves to the spawn location of the similar opponent // ActionMoveToLocation( GetLocation( GetObjectByTag( "WP_" + OpponentColor( OBJECT_SELF ) + "_" + IntToString( GetLocalInt( OBJECT_SELF, "INDEX" ) ) ) ), TRUE ); int iTarget = Random( 5 ); switch (iTarget) { case 0: return WpDoubler(); break; case 1: return WpClosestAltarRight(); break; case 2: return WpClosestAltarLeft(); break; case 3: return WpFurthestAltarRight(); break; case 4: return WpFurthestAltarLeft(); break; } return ""; } // Return the ID of the team with the specified color. int GetTeamID( string sColor ) { object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return 1; int iTeam = GetLocalInt( oBrazier, "TEAM_" + sColor ); if (iTeam == 0) return 1; return iTeam; } ITP V3.28d2l (08@HPX`hpx/~8    ##< !"#$ T<}MAINSTRREFIDLIST  !"#$%&'()*+,-./01  UTI V3.28h?\1lT*   * 6 BC      !$"%#$$%%&'()*+,-.d()*+,-.d(() *+,-.d/ 0PTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDComment redleather Red Leather RedLeather  !"#$%&'=>()*+,-./0123456789:;<UTI V3.28h?\1lN*   & 2 >I      !$"%#$$%%&'()*+,-.d()*+,-.d())*+,-.d/ 0JTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDCommentredplate Red PlateRedPlate  !"#$%&'=>()*+,-./0123456789:;<UTI V3.28h?\1lK*   $ 0 <\4    !%"$#$$%%&'()*+,-.d()*+,-.d()*+,-.d/ 0GTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDCommentredrobeRed RobeRedRobe  !"#$%&'=>()*+,-./0123456789:;<FAC V3.285  D xX T $0<H\ht     (4@LXdp| !"#$ %&$'0(<)H*T+`,l     ) 5 < 22222dd22d2d222dd222dd22ddddddFactionListFactionParentIDFactionNameFactionGlobalRepListFactionID1FactionID2FactionRepPCHostileCommonerMerchantDefenderRedBlue  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~-  !"#$%&'()*+,-./01234void SetTeamID( string sColor, int iTeam ) { object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return; SetLocalInt( oBrazier, "TEAM_" + sColor, iTeam ); return; } UTI V3.28\81 q}] *   7 K W2   ' !"#$% &!'()*+,-.d()*+,-.d/ 0mTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDCommentsorcerorrobeblue"Sorceror Robe BlueSORCEROR_ROBE_BLUE  !"#$%&'67()*+,-./012345UTI V3.28\81 nzZ *   5 I U2   ' !$"%#$$%%&'()*+,-.d()*+,-.d/ 0jTemplateResRefBaseItemLocalizedNameDescriptionDescIdentifiedTagChargesCostStolenStackSizePlotAddCostIdentifiedCursedArmorPart_RFootArmorPart_LFootArmorPart_RShinArmorPart_LShinArmorPart_LThighArmorPart_RThighArmorPart_PelvisArmorPart_TorsoArmorPart_BeltArmorPart_NeckArmorPart_RFArmArmorPart_LFArmArmorPart_RBicepArmorPart_LBicepArmorPart_RShoulArmorPart_LShoulArmorPart_RHandArmorPart_LHandArmorPart_RobeLeather1ColorLeather2ColorCloth1ColorCloth2ColorMetal1ColorMetal2ColorPropertiesListPropertyNameSubtypeCostTableCostValueParam1Param1ValueChanceAppearPaletteIDCommentsorcerorrobered!Sorceror Robe RedSORCEROR_ROBE_RED  !"#$%&'67()*+,-./012345ITP V3.28 @@`8 (08@HPX&9    !"#$MAINSTRREFIDLIST   #include "our_constants" // Removes area effects void RemoveEffects() { object oTmp = GetFirstObjectInArea(); while (GetIsObjectValid( oTmp )) { if (GetObjectType( oTmp ) == OBJECT_TYPE_AREA_OF_EFFECT) ActionDoCommand( DestroyObject( oTmp, 0.0 ) ); oTmp = GetNextObjectInArea(); } } void StopCompetition() { effect eVis = EffectVisualEffect( VFX_IMP_FLAME_M ); int i; int j; for (i = 1; i <= 7; ++i) { for (j = 0; j < 2; ++j) { string sColor = COLOR_RED; if (j == 1) sColor = COLOR_BLUE; string sLowerCaseColor = GetStringLowerCase( sColor ); object oNPC = GetObjectByTag( "NPC_" + sColor + "_" + IntToString( i ) ); if (GetIsObjectValid( oNPC )) { AssignCommand( oNPC, ClearAllActions() ); ApplyEffectAtLocation( DURATION_TYPE_INSTANT, eVis, GetLocation( oNPC ) ); DestroyObject( oNPC, 0.0 ); } } } RemoveEffects(); object oBrazier = GetObjectByTag( "BRAZIER" ); if (!GetIsObjectValid( oBrazier )) return; PlayAnimation( ANIMATION_PLACEABLE_DEACTIVATE ); SetLocalInt( oBrazier, "NW_L_AMION", 0 ); effect eEffect = GetFirstEffect( oBrazier ); while (GetIsEffectValid(eEffect) == TRUE) { if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT) RemoveEffect( oBrazier, eEffect ); eEffect = GetNextEffect( oBrazier ); } string sScore = "The competition is over. The final scores are as follows: " + GetTeamName( COLOR_RED ) + ":" + IntToString( GetScore( COLOR_RED ) ) + " " + GetTeamName( COLOR_BLUE ) + ":" + IntToString( GetScore( COLOR_BLUE ) ); AssignCommand( oBrazier, SpeakString( sScore, TALKVOLUME_SHOUT ) ); } ITP V3.28L8$ (0  !"#$MAINSTRREFIDLIST #include "NW_I0_GENERIC" #include "our_constants" // Called every time that the AI needs to take a combat decision. The default is // a call to the NWN DetermineCombatRound. void T1_DetermineCombatRound( object oIntruder = OBJECT_INVALID, int nAI_Difficulty = 10 ) { DetermineCombatRound( oIntruder, nAI_Difficulty ); } // Called every heartbeat (i.e., every six seconds). void T1_HeartBeat() { if (GetIsInCombat()) return; string sTarget = GetLocalString( OBJECT_SELF, "TARGET" ); if (sTarget == "") return; object oTarget = GetObjectByTag( sTarget ); if (!GetIsObjectValid( oTarget )) return; // If there is a member of my own team close to the target and closer than me, // and no enemy is closer and this other member is not in combat and // has the same target, then choose a new target. float fToTarget = GetDistanceToObject( oTarget ); int i = 1; int bNewTarget = FALSE; object oCreature = GetNearestObjectToLocation( OBJECT_TYPE_CREATURE, GetLocation( oTarget ), i ); while (GetIsObjectValid( oCreature )) { if (GetLocation( oCreature ) == GetLocation( OBJECT_SELF )) break; if (GetDistanceBetween( oCreature, oTarget ) > fToTarget) break; if (GetDistanceBetween( oCreature, oTarget ) > 5.0) break; if (!SameTeam( oCreature )) break; if (GetIsInCombat( oCreature )) break; if (GetLocalString( oCreature, "TARGET" ) == sTarget) { bNewTarget = TRUE; break; } ++i; oCreature = GetNearestObjectToLocation( OBJECT_TYPE_CREATURE, GetLocation( oTarget ), i ); } if (bNewTarget) { sTarget = GetRandomTarget(); SetLocalString( OBJECT_SELF, "TARGET", sTarget ); oTarget = GetObjectByTag( sTarget ); if (!GetIsObjectValid( oTarget )) return; fToTarget = GetDistanceToObject( oTarget ); } if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); return; } // Called when the NPC is spawned. void T1_Spawn() { string sTarget = GetRandomTarget(); SetLocalString( OBJECT_SELF, "TARGET", sTarget ); ActionMoveToLocation( GetLocation( GetObjectByTag( sTarget ) ), TRUE ); } // This function is called when certain events take place, after the standard // NWN handling of these events has been performed. void T1_UserDefined( int Event ) { switch (Event) { // The NPC has just been attacked. case EVENT_ATTACKED: break; // The NPC was damaged. case EVENT_DAMAGED: break; // At the end of one round of combat. case EVENT_END_COMBAT_ROUND: break; // Every heartbeat (i.e., every six seconds). case EVENT_HEARTBEAT: T1_HeartBeat(); break; // Whenever the NPC perceives a new creature. case EVENT_PERCEIVE: break; // When a spell is cast at the NPC. case EVENT_SPELL_CAST_AT: break; // Whenever the NPC's inventory is disturbed. case EVENT_DISTURBED: break; // When the NPC has just been spawned. case EVENT_SPAWN: T1_Spawn(); break; } return; } // Called when the fight starts, just before the initial spawning. void T1_Initialize( string sColor ) { SetTeamName( sColor, "Default-" + GetStringLowerCase( sColor ) ); } // T10: Sukka Warriors // Mikko Sysikaski // Aleksi Hartikainen #include "NW_I0_GENERIC" #include "nw_i0_plot" #include "our_constants" object T10_GetTarget(float dist, object obj=OBJECT_SELF) { int i; object best; int bestCost=9999999; for(i=1; ; ++i) { object o = GetNearestObject(OBJECT_TYPE_CREATURE, obj, i); if (!GetIsEnemy(o)) continue; float d = GetDistanceBetween(o, obj); if (d > dist) return best; int cost=FloatToInt(d*1.5) + GetCurrentHitPoints(o); if (cost dist) break; if (MyColor(o)==OpponentColor()) ++count; } return count; } object T10_NthMember(int n) { return GetObjectByTag("NPC_"+MyColor()+"_"+IntToString(n)); } int T10_AssignedCount(object obj) { int i, count=0; for(i=1; i<8; ++i) { if (GetLocalObject(T10_NthMember(i), "TARGET") == obj) ++count; } return count; } void T10_SetNeeded() { //LEVEL 1 one guy per altar int i; int alive=0; for(i=1;i<8;++i) { object guy = T10_NthMember(i); if(GetLocalInt(guy,"ALIVE")) { ++alive; } } for( i=0;(i<3)&&(i0) { float best = 0.0; int addAltar = 0; int newValue = 0 ; for(i=0;i<5;i++) { string tag = T10_GetAltarName(i); int assigned = T10_GetGlobalInt(tag+"_NEEDED"); int enemies = GetLocalInt(OBJECT_SELF,"ENEMIES"+IntToString(i)); float f = 0.0; if(i<3){ f= IntToFloat(enemies)/IntToFloat(assigned); } else { if(assigned==0) f = (2.5)/(0.1+IntToFloat(enemies)); } if(f>best) { best = f; addAltar = i; newValue = assigned+1; } } string tag = T10_GetAltarName(addAltar); T10_SetGlobalInt(tag+"_NEEDED",newValue); assignable--; } string speak = ""; for(i=0;i<5;i++) { string tag = T10_GetAltarName(i); speak = speak+","+ IntToString(T10_GetGlobalInt(tag+"_NEEDED")) ; } // DebugSpeak(speak); } void T10_CalcDestRec(int n, float dist) { if (dist > GetLocalFloat(OBJECT_SELF, "BEST_VALUE")) return; if (n==0) { SetLocalFloat(OBJECT_SELF, "BEST_VALUE", dist); int i; for(i=1; i<8; ++i) { object pl = T10_NthMember(i); if (GetIsObjectValid(pl)) SetLocalObject(pl, "TARGET", GetLocalObject(pl, "TMP_TARGET")); } return; } object player = T10_NthMember(n); if (!GetIsObjectValid(player)) { T10_CalcDestRec(n-1, dist); return; } int i; for(i=0; i<3; ++i) { object altar = (T10_GetAltar(i)); string name = GetTag(altar); int count = T10_GetGlobalInt(name+"_NEEDED"); string str = name+"_HAVE"; int cur = GetLocalInt(OBJECT_SELF, str); if (cur >= count) continue; SetLocalInt(OBJECT_SELF, str, cur+1); SetLocalObject(player, "TMP_TARGET", altar); T10_CalcDestRec(n-1, dist+GetDistanceBetween(player, altar)); SetLocalInt(OBJECT_SELF, str, cur); } } int T10_GetIsRanged(object o = OBJECT_SELF) { int idx = GetLocalInt(o,"INDEX"); return idx!=3&&idx!=5; } void T10_CalcDestApprox() { int i; for(i=1; i<8; ++i) { object guy = T10_NthMember(i); DeleteLocalObject(guy,"TARGET"); } for(i=0; i<5; ++i) SetLocalInt(OBJECT_SELF, "TJ"+IntToString(i), 1); int round = 1; while(TRUE) { int set = 0; for(i=0;i<5;i++) { string name = T10_GetAltarName(i); object altar = GetObjectByTag(name); int needs = T10_GetGlobalInt(name+"_NEEDED"); if(needs==0)continue; int j = GetLocalInt(OBJECT_SELF, "TJ"+IntToString(i)); object guy; int bRight; do { guy = GetNearestObject(OBJECT_TYPE_CREATURE, altar, j++); bRight = !T10_GetIsRanged(guy); if(i>2)bRight = !bRight; } while(GetIsObjectValid(guy) && (!SameTeam(guy) || GetLocalObject(guy, "TARGET")!=OBJECT_INVALID)||(round==1 && bRight)); if(GetIsObjectValid(guy)) { set++; T10_SetGlobalInt(name+"_NEEDED",needs-1); SetLocalObject(guy,"TARGET",altar); } SetLocalInt(OBJECT_SELF, "TJ"+IntToString(i), j); } if(set==0) break; round++; } } void T10_CalculateDestinations() { int i; int needRecalc = FALSE; T10_SetNeeded(); for(i=0;i<3;i++) { object oAltar = T10_GetAltar(i); string sAltar = GetTag(oAltar); int needed = T10_GetGlobalInt(sAltar+"_NEEDED"); if(needed!=T10_AssignedCount(oAltar)) { needRecalc = TRUE; break; } } if(needRecalc) { T10_CalcDestApprox(); } } // Called every heartbeat (i.e., every six seconds). void T10_HeartBeat() { if(!GetHasEffect(EFFECT_TYPE_PARALYZE)) { SetLocalInt(OBJECT_SELF,"ALIVE",1); }else if(GetDistanceBetween(OBJECT_SELF,MyPortal())<1.0) { SetLocalInt(OBJECT_SELF,"ALIVE",0); return; } if(!GetIsInCombat()) T10_CalculateDestinations(); object oTarget = T10_MyAltar(); string sTarget = GetTag(oTarget); if (GetIsInCombat()) { if ((GetDistanceToObject(oTarget)<20.0)) { return; } // DebugSpeak(GetTag(OBJECT_SELF)+" is in combat"); int second = GetTimeSecond(); int lastHit = GetLocalInt(OBJECT_SELF,"DAMAGED_SECOND"); if(lastHit>second) SetLocalInt(OBJECT_SELF,"DAMAGED_SECOND",0); lastHit = GetLocalInt(OBJECT_SELF,"DAMAGED_SECOND"); if(lastHit!=0 && (second-lastHit<10)) { return; } // ASD return; ClearAllActions(); } // ClearAllActions(); if (!T10_GetIsRanged()) ActionEquipMostDamagingMelee(); int idx = GetLocalInt(OBJECT_SELF, "INDEX"); if (idx==3 || idx==5) { object obj = GetItemPossessedBy(OBJECT_SELF, "NW_WBWMXL009"); if (GetIsObjectValid(obj)) ActionPutDownItem(obj); } if (!GetIsObjectValid( oTarget )) { // DebugSpeak("INVALID!!!"+sTarget); // return; oTarget = GetObjectByTag(WpDoubler()); } float fToTarget = GetDistanceToObject(oTarget); if ((fToTarget > 0.5 && ClaimerOf(sTarget)!=MyColor())||fToTarget>5.0){ // ClearAllActions(); ActionMoveToLocation( GetLocation( oTarget ), TRUE ); }else{ if(GetPercentageHPLoss(OBJECT_SELF)<65) { ClearAllActions(); if(TalentHealingSelf()) { SpeakString("Healing"); } } } // DebugSpeak(GetTag(OBJECT_SELF)+" going to "+GetTag(GetLocalObject(OBJECT_SELF, "TARGET")) ); return; } // Called when the NPC is spawned. void T10_Spawn() { // string sTarget = T10_GetTarget(); // SetLocalString( OBJECT_SELF, "TARGET", sTarget ); // ActionMoveToLocation( GetLocation( GetObjectByTag( sTarget ) ), TRUE ); // T10_HeartBeat(); } // This function is called when certain events take place, after the standard // NWN handling of these events has been performed. void T10_UserDefined( int Event ) { switch (Event) { // The NPC has just been attacked. case EVENT_ATTACKED: break; // The NPC was damaged. case EVENT_DAMAGED: SetLocalInt(OBJECT_SELF,"DAMAGED_SECOND",GetTimeSecond()); break; // At the end of one round of combat. case EVENT_END_COMBAT_ROUND: T10_HeartBeat(); break; // Every heartbeat (i.e., every six seconds). case EVENT_HEARTBEAT: T10_HeartBeat(); break; // Whenever the NPC perceives a new creature. case EVENT_PERCEIVE: T10_HeartBeat(); break; // When a spell is cast at the NPC. case EVENT_SPELL_CAST_AT: break; // Whenever the NPC's inventory is disturbed. case EVENT_DISTURBED: break; // When the NPC has just been spawned. case EVENT_SPAWN: // T10_Spawn(); // T10_HeartBeat(); break; } return; } // Called when the fight starts, just before the initial spawning. void T10_Initialize( string sColor ) { SetTeamName( sColor, "Sukka Warriors-" + GetStringLowerCase( sColor ) ); } #include "NW_I0_GENERIC" #include "our_constants" /* Group number: T11 Group name: Team Ykstoista Group members: Tommi Sankola, Timo Korkama */ const string T11_TASK_TEXT = "T11_TASK"; const string T11_TARGET_TEXT = "T11_TARGET"; const int T11_TASK_NOTASK = 0; const int T11_TASK_ATTACK_POINT = 1; const int T11_TASK_CAPTURE_POINT = 2; const int T11_TASK_COMBAT = 3; const int T11_CHARACTERCOUNT = 14; const float T11_POINTRADIUS = 15.0; const float T11_VERYLONGDISTANCE = 60.0; const float T11_LONGDISTANCE = 40.0; const float T11_SHORTDISTANCE = 15.0; const float T11_VERYSHORTDISTANCE = 7.5; const float T11_ENEMYMODIFIER = -1.0; const float T11_FRIENDMODIFIER = 0.0; const float T11_CAPTUREMODIFIER = 2.0; const float T11_NEARDISTANCEMODIFIER = 2.0; const float T11_FARDISTANCEMODIFIER = 0.5; const float T11_COMBATMODIFIER = 2.0; const float T11_FREEALTARMODIFIER = 3.0; const float T11_OWNCAPTUREMODIFIER = 0.3; const float T11_OWN_CAPTURE_UNDER_ATTACK_MODIFIER = 2.0; const float T11_CHARACTERVALUE = 1.0; const float T11_ATTRACTIVECAPTURETHRESHOLD = 0.0; const float T11_INITIAL_DOUBLERVALUE = 3.0; const float T11_INITIAL_OWN_1_VALUE = 5.0; const float T11_INITIAL_OWN_2_VALUE = 5.0; const float T11_INITIAL_OPP_1_VALUE = 2.0; const float T11_INITIAL_OPP_2_VALUE = 2.0; struct T11_AltarValues { float doubler; float own1; float own2; float opp1; float opp2; }; float T11_CalculateAltarValue( object oSelf, object oAltar ){ float points = 0.0; float distanceToAltar = GetDistanceBetween (oSelf, oAltar); int i = 0; int combat = 0; int capture = 0; int enemies = 0; int mycapture = 0; int oppcapture = 0; if (GetTag(oAltar) == "WP_"+DOUBLER) { if (ClaimerOf(ALTAR_RED_1) == MyColor()) points += 0.5; if (ClaimerOf(ALTAR_RED_2) == MyColor()) points += 0.5; if (ClaimerOf(ALTAR_BLUE_1) == MyColor()) points += 0.5; if (ClaimerOf(ALTAR_BLUE_2) == MyColor()) points += 0.5; points += T11_INITIAL_DOUBLERVALUE; } else if (GetTag(oAltar) == "WP_ALTAR_"+MyColor()+"_1") { points += T11_INITIAL_OWN_1_VALUE; } else if (GetTag(oAltar) == "WP_ALTAR_"+MyColor()+"_2") { points += T11_INITIAL_OWN_2_VALUE; } else if (GetTag(oAltar) == "WP_ALTAR_"+OpponentColor()+"_1") { points += T11_INITIAL_OPP_1_VALUE; } else if (GetTag(oAltar) == "WP_ALTAR_"+OpponentColor()+"_2") { points += T11_INITIAL_OPP_2_VALUE; } else { // Shouldn't be here // SpeakString("Uh oh, altar value system is bugged.", TALKVOLUME_SHOUT); } for (i = 0; i < T11_CHARACTERCOUNT; ++i) { object o = GetNearestObject(OBJECT_TYPE_CREATURE, oAltar, i); if ( GetDistanceBetween(oAltar, o) < T11_POINTRADIUS) { if (SameTeam(o)) points += T11_FRIENDMODIFIER * T11_CHARACTERVALUE; else if (FindSubString (GetTag(o), OpponentColor(), 0) >= 0) { // Can't use SameTeam here, because player character might interfere(?) points += T11_ENEMYMODIFIER * (T11_CHARACTERVALUE + enemies); enemies++; } if (GetIsInCombat(o)) combat++; string altarTag = GetTag(oAltar); if (ClaimerOf(GetSubString(altarTag, 3, GetStringLength(altarTag))) == MyColor()) capture++; else if (ClaimerOf(GetSubString(altarTag, 3, GetStringLength(altarTag))) == OpponentColor()) capture--; } } if (distanceToAltar > T11_VERYSHORTDISTANCE) { // This math might be a bit off, needs checking float remainingDistance = distanceToAltar; // - T11_VERYSHORTDISTANCE; if (remainingDistance > T11_VERYLONGDISTANCE) remainingDistance = T11_VERYLONGDISTANCE; // int intDist = FloatToInt(remainingDistance); // intDist = intDist % T11_VERYLONGDISTANCE; float distanceFactor = 1 - (0.5 * (remainingDistance / T11_VERYLONGDISTANCE)); points *= distanceFactor; } /* points *= T11_NEARDISTANCEMODIFIER; else if (distanceToAltar > T11_LONGDISTANCE) points *= T11_FARDISTANCEMODIFIER; */ if (combat) points *= T11_COMBATMODIFIER; if (capture) points += T11_CAPTUREMODIFIER; if (!enemies && (capture == 0)) points *= T11_FREEALTARMODIFIER; if ((capture > 0) && !enemies) points *= T11_OWNCAPTUREMODIFIER; if (capture < 0) points += T11_CAPTUREMODIFIER; if ((capture > 0) && enemies) points *= T11_OWN_CAPTURE_UNDER_ATTACK_MODIFIER; return points; } int T11_chooseTactics(object oIntruder) { // SELF PRESERVATION: Always attempt to heal self first if(GetTag(OBJECT_SELF) == "NPC_" + MyColor() + "_3" || GetTag(OBJECT_SELF) == "NPC_" + MyColor() + "_5") if(GetIsInCombat() == FALSE) if(TalentHealingSelf() == TRUE) return 99; //Use spells and potions else if(TalentHealingSelf() == TRUE) return 99; // Next, try the special tactics routines // specific to XP1 if (SpecialTactics(oIntruder)) return 99; // * These constants in ChooseTactics routine // * remember previous rounds choices //moved to top of script, made into real constants int T11_MEMORY_OFFENSE_MELEE = 0; int T11_MEMORY_DEFENSE_OTHERS = 1; int T11_MEMORY_DEFENSE_SELF = 2; int T11_MEMORY_OFFENSE_SPELL = 3; // * If defensive last round, try to be offensive this round // * this is to prevent wasting time on multiple protections int nPreviousMemory = GetLocalInt(OBJECT_SELF, "NW_L_MEMORY"); int nClass = DetermineClassToUse(); //This does not seem to be used, so no point declaring it... //int nCrazy = 0; // * Defaulted high so unspecified classes will not be cowards int nOffense = 50; int nCompassion = 25; // * Defaulted this high because non standard creatures // * with spells should try and use them. int nMagic = 55; // * setup base BEHAVIOR switch (nClass) { case CLASS_TYPE_COMMONER: // Commoners should run away from fights //SpawnScriptDebugger(); nOffense = 0; nCompassion = 0; nMagic = 0; break; case CLASS_TYPE_PALEMASTER: case CLASS_TYPE_WIZARD: case CLASS_TYPE_SORCERER: // SpawnScriptDebugger(); nOffense = 40; nCompassion = 0; nMagic = 100; break; case CLASS_TYPE_BARD: case CLASS_TYPE_HARPER: case CLASS_TYPE_DRAGONDISCIPLE: { if(TalentBardSong() == TRUE) return 99; nOffense = 40; nCompassion = 42; nMagic = 43; break; } case CLASS_TYPE_CLERIC: case CLASS_TYPE_DRUID: case CLASS_TYPE_SHIFTER: { nOffense = 40; nCompassion = 80/*45*/; nMagic = 80/*44*/; // * Clerics shouldn't constantly cast spells if (nPreviousMemory != chooseTactics_MEMORY_OFFENSE_MELEE) nMagic = Random(50) + 1; break; } case CLASS_TYPE_PALADIN : case CLASS_TYPE_RANGER : nOffense = 40; nCompassion = 25; nMagic = Random(50) + 1; break; case CLASS_TYPE_BARBARIAN: { // SpawnScriptDebugger(); // * GetHasFeat(...) does not work correctly with no-leveled up // * characters. So for now, only Xanos gets to do this. string sTag = GetTag(OBJECT_SELF); if (sTag == "x0_hen_xan" || sTag == "x2_hen_daelan") { if (GetHasFeatEffect(FEAT_BARBARIAN_RAGE) == FALSE) { if (GetHasFeat(FEAT_BARBARIAN_RAGE) == TRUE) { ActionUseFeat(FEAT_BARBARIAN_RAGE, OBJECT_SELF); return 99; } } } nOffense = 50; nCompassion = 25; nMagic = 20; break; // * set high magic to use rage // * suggestion don't give barbarians lots of magic or else they will fight oddly } case CLASS_TYPE_WEAPON_MASTER: case CLASS_TYPE_ARCANE_ARCHER: case CLASS_TYPE_BLACKGUARD: case CLASS_TYPE_SHADOWDANCER: case CLASS_TYPE_DWARVENDEFENDER: case CLASS_TYPE_ASSASSIN: case CLASS_TYPE_FIGHTER: case CLASS_TYPE_ROGUE : //SpawnScriptDebugger(); case CLASS_TYPE_MONK : nOffense = 100/*40*/; nCompassion = 0; nMagic = 0; break; case CLASS_TYPE_UNDEAD: nOffense = 40; nCompassion = 40; nMagic = 40; break; case CLASS_TYPE_OUTSIDER: { nOffense = 40; nMagic = 40; if (GetAlignmentGoodEvil(OBJECT_SELF) == ALIGNMENT_GOOD) { nCompassion = 40; } else nCompassion = 0; break; } case CLASS_TYPE_CONSTRUCT: case CLASS_TYPE_ELEMENTAL: nOffense = 40; nCompassion = 0; nMagic = 40; break; case CLASS_TYPE_DRAGON: nOffense = 40; nCompassion = 20; nMagic = 40; break; default: nOffense = 50; nCompassion = 25; nMagic = 55; break; } //really minor optimization - since this bit doesn't rely on the variables set //below, might as well check it before we do all those calculations // * Dragon Disciple Breath if (GetHasFeat(FEAT_DRAGON_DIS_BREATH) && Random(100) > 50) { ClearActions(2000); ActionCastSpellAtObject(690, GetNearestEnemy(), METAMAGIC_ANY, TRUE); DecrementRemainingFeatUses(OBJECT_SELF, FEAT_DRAGON_DIS_BREATH); return 99; } // MyPrintString("Made it past the class-specific settings"); // ************************************ // * MODIFY BEHAVIOR FOR SPECIAL CASES // ************************************ if (GetRacialType(OBJECT_SELF) == RACIAL_TYPE_UNDEAD) nCompassion = nCompassion - 20; // Randomize things a bit //seems that nCrazy is always 0, so might as well comment them out nOffense = Random(10 /*+ nCrazy*/) + nOffense; nMagic = Random(10 /*+ nCrazy*/) + nMagic; nCompassion = Random(10 /*+ nCrazy*/) + nCompassion; // * if your opponent is close to you, then increase offense // * as casting defensive abilities when enemies are close // * is generally not a good idea. // * Dec 18 2002: If you have Combat Casting, you'll still be more // * liable to use defensive abilities if (GetIsObjectValid(oIntruder) && !GetHasFeat(FEAT_COMBAT_CASTING)) { if (GetDistanceToObject(oIntruder) <= 5.0) { nOffense = nOffense + 20; nMagic = nMagic - 20; } } // * If enemies are further away, more chance of doing magic if (GetDistanceToObject(oIntruder) > 3.0) nMagic = nMagic + 15; // * Dec 18 2002: Add your level to your magic rating nMagic = nMagic + GetHitDice(OBJECT_SELF); // ************************************** // * CHOOSE TALENT TO USE // ************************************** //SpawnScriptDebugger(); // * If defensive last round, try to be offensive this round // * this is to prevent wasting time on multiple protections if ((nPreviousMemory == chooseTactics_MEMORY_DEFENSE_OTHERS) || (nPreviousMemory == chooseTactics_MEMORY_DEFENSE_SELF)) { nOffense = nOffense + 40; } // April 2003 // If in rage should be almost no chance of doing magic // * June 2003 // * If has more than 5% chance of spell failure don't try casting // 5% chance changed to 15% if (GetHasFeatEffect(FEAT_BARBARIAN_RAGE)== TRUE || GetShouldNotCastSpellsBecauseofArmor(OBJECT_SELF, nClass) == TRUE || GetLocalInt(OBJECT_SELF, "X2_L_STOPCASTING") == 10) { nMagic = 0; } // ************** // * JULY 12 2003 // * Overriding "behavior" variables. // * If a variable has been stored on the creature it overrides the above // * class defaults // * JULY 28 2003 // * changed this so that its an additive process, not an overrwrite. // * gives more flexiblity. // ************** nMagic = nMagic + AdjustBehaviorVariable(nMagic, "X2_L_BEH_MAGIC"); nOffense = nOffense + AdjustBehaviorVariable(nOffense, "X2_L_BEH_OFFENSE"); nCompassion = nCompassion + AdjustBehaviorVariable(nCompassion, "X2_L_BEH_COMPASSION"); // * If invisbile of any sort, become Defensive and // * magical to use any buffs you may have // * This behavior variable setting should override all others // * October 22 2003 - Lines 690 and 713 modified to only work if magic // * setting has not been turned off. Nathyrra always going invisible // * can be annoying. if (InvisibleTrue(OBJECT_SELF) == TRUE && nMagic > 0) { // SpawnScriptDebugger(); // * if wounded at all take this time to heal self // * since I am invisible there is little danger from doing this if (GetCurrentHitPoints(OBJECT_SELF) < GetMaxHitPoints(OBJECT_SELF)) { if(TalentHealingSelf(TRUE) == TRUE) return 99; } nOffense = 7; nMagic = 100; if (GetActionMode(OBJECT_SELF, ACTION_MODE_STEALTH) == TRUE) { nOffense = 100; // * if in stealth attempt sneak attacks } } else // ************** // * JULY 14 2003 // * Attempt To Go Invisible // ************** if (InvisibleBecome() == TRUE && nMagic > 0) return 99; // PHYSICAL, NO OFFENSE if (nOffense <= 5) { //SpawnScriptDebugger(); //SpeakString("fleeing"); if (TalentFlee(oIntruder) == TRUE) return 99; } // protect others: MAGICAL, DEFENSE, COMPASSION if ((nOffense<= 50) && (nMagic > 50) && (nCompassion > 50)) { SetLocalInt(OBJECT_SELF, "NW_L_MEMORY", chooseTactics_MEMORY_DEFENSE_OTHERS); if (TalentHeal() == TRUE) return 99; if (TalentEnhanceOthers() == TRUE) return 99; if (TalentCureCondition() == TRUE) return 99; if (TalentUseProtectionOthers() == TRUE) return 99; // * Temporarily be non-compassionate to buff self // * if we got to this point. nCompassion = 0; } // protectself: MAGICAL, DEFENSE, NO COMPASSION if ((nOffense<= 50) && (nMagic > 50) && (nCompassion <=50)) { SetLocalInt(OBJECT_SELF, "NW_L_MEMORY", chooseTactics_MEMORY_DEFENSE_SELF); /* Dec 19 2002: Against spell-casters, cast protection spells more often */ int nClass = GetClassByPosition(1,oIntruder); if (nClass == CLASS_TYPE_WIZARD || nClass == CLASS_TYPE_SORCERER || nClass == CLASS_TYPE_CLERIC || nClass == CLASS_TYPE_DRUID) { if (TalentSelfProtectionMantleOrGlobe()) return 99; } if(TalentSummonAllies() == TRUE) return 99; if(TalentUseProtectionOnSelf() == TRUE) return 99; if(TalentUseEnhancementOnSelf() == TRUE) return 99; if(TalentPersistentAbilities() == TRUE) return 99; // int TalentAdvancedBuff(float fDistance); //Used for Potions of Enhancement and Protection if(TalentBuffSelf() == TRUE) return 99; if(TalentAdvancedProtectSelf() == TRUE) return 99; //if(TalentSummonAllies() == TRUE) return 99; if(TalentSeeInvisible() == TRUE) return 99; if(TalentMeleeAttacked(oIntruder) == TRUE) return 99; if(TalentRangedAttackers(oIntruder) == TRUE) return 99; if(TalentRangedEnemies(oIntruder) == TRUE) return 99; } // MAGICAL, OFFENSE if (nMagic > 50) { // // MyPrintString("in offensive spell"); // SpawnScriptDebugger(); SetLocalInt(OBJECT_SELF, "NW_L_MEMORY", chooseTactics_MEMORY_OFFENSE_SPELL); if (TalentUseTurning() == TRUE) return 99; if (TalentSpellAttack(oIntruder) == TRUE) return 99; } // If we got here, we're going to melee offense SetLocalInt(OBJECT_SELF, "NW_L_MEMORY", chooseTactics_MEMORY_OFFENSE_MELEE); // PHYSICAL, OFFENSE (if nothing else applies) if (TryKiDamage(oIntruder) == TRUE) return 99; if (TalentSneakAttack() == TRUE) return 99; if (TalentDragonCombat(oIntruder)) {return 99;} if (!((GetLocalInt(OBJECT_SELF, T11_TASK_TEXT) == T11_TASK_CAPTURE_POINT) && GetDistanceBetween(OBJECT_SELF, oIntruder) < 2.0)) if (TalentMeleeAttack(oIntruder) == TRUE) return 99; object oHostile = GetNearestSeenEnemy(); // * Feb 17 2003: This error could happen in the situation that someone // * went into combat mode and their 'hostility' ended while going through ChooseTactics if (GetIsObjectValid(oHostile) == TRUE) { // * BK if it returns this it means the AI found nothing // * Appropriate to do //SpeakString("BUG!!!!!!!!!!!!!!!!!!!!!!!! (Let Brent Knowles know about this. Supply savegame) Nothing valid to do !!!!!!!!!!!!!!!!!!!!!"); //SpeakString("BUG!! Magic " + IntToString(nMagic) + " Compassion " + IntToString(nCompassion) + " Offense " + IntToString(nOffense)); } return 1; } void T11_2_DetermineCombatRound(object oIntruder = OBJECT_INVALID, int nAI_Difficulty = 10) { // MyPrintString("************** DETERMINE COMBAT ROUND START *************"); // MyPrintString("************** " + GetTag(OBJECT_SELF) + " ************"); // ---------------------------------------------------------------------------------------- // May 2003 // Abort out of here, if petrified // ---------------------------------------------------------------------------------------- if (GetHasEffect(EFFECT_TYPE_PETRIFY, OBJECT_SELF) == TRUE) { return; } // ---------------------------------------------------------------------------------------- // Oct 06/2003 - Georg Zoeller, // Fix for ActionRandomWalk blocking the action queue under certain circumstances // ---------------------------------------------------------------------------------------- if (GetCurrentAction() == ACTION_RANDOMWALK) { ClearAllActions(); } // ---------------------------------------------------------------------------------------- // July 27/2003 - Georg Zoeller, // Added to allow a replacement for determine combat round // If a creature has a local string variable named X2_SPECIAL_COMBAT_AI_SCRIPT // set, the script name specified in the variable gets run instead // see x2_ai_behold for details: // ---------------------------------------------------------------------------------------- string sSpecialAI = GetLocalString(OBJECT_SELF,"X2_SPECIAL_COMBAT_AI_SCRIPT"); if (sSpecialAI != "") { SetLocalObject(OBJECT_SELF,"X2_NW_I0_GENERIC_INTRUDER", oIntruder); ExecuteScript(sSpecialAI, OBJECT_SELF); if (GetLocalInt(OBJECT_SELF,"X2_SPECIAL_COMBAT_AI_SCRIPT_OK")) { DeleteLocalInt(OBJECT_SELF,"X2_SPECIAL_COMBAT_AI_SCRIPT_OK"); return; } } // ---------------------------------------------------------------------------------------- // DetermineCombatRound: EVALUATIONS // ---------------------------------------------------------------------------------------- if(GetAssociateState(NW_ASC_IS_BUSY)) { return; } if(BashDoorCheck(oIntruder)) {return;} // ---------------------------------------------------------------------------------------- // BK: stop fighting if something bizarre that shouldn't happen, happens // ---------------------------------------------------------------------------------------- if (bkEvaluationSanityCheck(oIntruder, GetFollowDistance()) == TRUE) return; // ** Store HOw Difficult the combat is for this round int nDiff = 20; //GetCombatDifficulty(); SetLocalInt(OBJECT_SELF, "NW_L_COMBATDIFF", nDiff); // MyPrintString("COMBAT: " + IntToString(nDiff)); // ---------------------------------------------------------------------------------------- // If no special target has been passed into the function // then choose an appropriate target // ---------------------------------------------------------------------------------------- if (GetIsObjectValid(oIntruder) == FALSE) oIntruder = bkAcquireTarget(); if (GetIsDead(oIntruder) == TRUE) { // ---------------------------------------------------------------------------------------- // If for some reason my target is dead, then leave // the poor guy alone. Jeez. What kind of monster am I? // ---------------------------------------------------------------------------------------- return; } // ---------------------------------------------------------------------------------------- /* JULY 11 2003 If in combat round already (variable set) do not enter it again. This is meant to prevent multiple calls to DetermineCombatRound from happening during the *same* round. This variable is turned on at the start of this function call. It is turned off at each "return" point for this function */ // ---------------------------------------------------------------------------------------- if (__InCombatRound() == TRUE) { return; } __TurnCombatRoundOn(TRUE); // ---------------------------------------------------------------------------------------- // DetermineCombatRound: ACTIONS // ---------------------------------------------------------------------------------------- if(GetIsObjectValid(oIntruder)) { if(TalentPersistentAbilities()) // * Will put up things like Auras quickly { __TurnCombatRoundOn(FALSE); return; } // ---------------------------------------------------------------------------------------- // BK September 2002 // If a succesful tactic has been chosen then // exit this function directly // ---------------------------------------------------------------------------------------- if (T11_chooseTactics(oIntruder) == 99) { __TurnCombatRoundOn(FALSE); /*if(GetTag(OBJECT_SELF) == "NPC_" + MyColor() + "_3" || GetTag(OBJECT_SELF) == "NPC_" + MyColor() + "_5") if(GetWeaponRanged(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND))) if(GetHasEffect(EFFECT_TYPE_ENTANGLE, OBJECT_SELF) == FALSE) bkEquipMelee(); else if(GetDistanceBetween(OBJECT_SELF, GetNearestEnemy()) < 1.0) bkEquipMelee();*/ return; } // ---------------------------------------------------------------------------------------- // This check is to make sure that people do not drop out of // combat before they are supposed to. // ---------------------------------------------------------------------------------------- object oNearEnemy = GetNearestSeenEnemy(); T11_2_DetermineCombatRound(oNearEnemy); return; } __TurnCombatRoundOn(FALSE); // ---------------------------------------------------------------------------------------- // This is a call to the function which determines which // way point to go back to. // ---------------------------------------------------------------------------------------- ClearActions(CLEAR_NW_I0_GENERIC_658); SetLocalObject(OBJECT_SELF, "NW_GENERIC_LAST_ATTACK_TARGET", OBJECT_INVALID); WalkWayPoints(); } struct T11_AltarValues T11_GetT11_AltarValues( object oSelf ) { struct T11_AltarValues altars; object doubler = GetObjectByTag("WP_DOUBLER"); object own1 = GetObjectByTag("WP_ALTAR_"+MyColor()+"_1"); object own2 = GetObjectByTag("WP_ALTAR_"+MyColor()+"_2"); object opp1 = GetObjectByTag("WP_ALTAR_"+OpponentColor()+"_1"); object opp2 = GetObjectByTag("WP_ALTAR_"+OpponentColor()+"_2"); SetLocalFloat(oSelf, "WP_DOUBLER", T11_CalculateAltarValue( oSelf, doubler )); SetLocalFloat(oSelf, "WP_ALTAR_"+MyColor()+"_1", T11_CalculateAltarValue( oSelf, own1 )); SetLocalFloat(oSelf, "WP_ALTAR_"+MyColor()+"_2", T11_CalculateAltarValue( oSelf, own2 )); SetLocalFloat(oSelf, "WP_ALTAR_"+OpponentColor()+"_1", T11_CalculateAltarValue( oSelf, opp1 )); SetLocalFloat(oSelf, "WP_ALTAR_"+OpponentColor()+"_2", T11_CalculateAltarValue( oSelf, opp2 )); altars.doubler = T11_CalculateAltarValue ( oSelf, doubler); altars.own1 = T11_CalculateAltarValue ( oSelf, own1); altars.own2 = T11_CalculateAltarValue ( oSelf, own2); altars.opp1 = T11_CalculateAltarValue ( oSelf, opp1); altars.opp2 = T11_CalculateAltarValue ( oSelf, opp2); return altars; } void T11_ShoutT11_AltarValues( object oSelf, struct T11_AltarValues altars) { /* SpeakString("Doubler: "+FloatToString(altars.doubler), TALKVOLUME_SHOUT); SpeakString(MyColor()+" 1: "+FloatToString(altars.own1), TALKVOLUME_SHOUT); SpeakString(MyColor()+" 2: "+FloatToString(altars.own2), TALKVOLUME_SHOUT); SpeakString(OpponentColor()+" 1: "+FloatToString(altars.opp1), TALKVOLUME_SHOUT); SpeakString(OpponentColor()+" 2: "+FloatToString(altars.opp2), TALKVOLUME_SHOUT); */ /* SpeakString("\nDoubler: "+FloatToString(altars.doubler)+"\n"+ MyColor()+" 1: "+FloatToString(altars.own1)+"\n"+ MyColor()+" 2: "+FloatToString(altars.own2)+"\n"+ OpponentColor()+" 1: "+FloatToString(altars.opp1)+"\n"+ OpponentColor()+" 2: "+FloatToString(altars.opp2), TALKVOLUME_SHOUT); */ SpeakString("\nDoubler: "+FloatToString(GetLocalFloat(OBJECT_SELF, "WP_DOUBLER"))+"\n"+ MyColor()+" 1: "+FloatToString(GetLocalFloat(OBJECT_SELF, "WP_ALTAR_"+MyColor()+"_1"))+"\n"+ MyColor()+" 2: "+FloatToString(GetLocalFloat(OBJECT_SELF, "WP_ALTAR_"+MyColor()+"_2"))+"\n"+ OpponentColor()+" 1: "+FloatToString(GetLocalFloat(OBJECT_SELF, "WP_ALTAR_"+OpponentColor()+"_1"))+"\n"+ OpponentColor()+" 2: "+FloatToString(GetLocalFloat(OBJECT_SELF, "WP_ALTAR_"+OpponentColor()+"_2")), TALKVOLUME_SHOUT); } // Called every time that the AI needs to take a combat decision. The default is // a call to the NWN DetermineCombatRound. void T11_DetermineCombatRound( object oIntruder = OBJECT_INVALID, int nAI_Difficulty = 10 ) { /* if (GetLocalInt(OBJECT_SELF, T11_TASK_TEXT) == T11_TASK_CAPTURE_POINT) return; else*/ if (GetLocalInt(OBJECT_SELF, T11_TASK_TEXT) == T11_TASK_COMBAT) { object target = GetLocalObject(OBJECT_SELF, T11_TARGET_TEXT); if (GetObjectSeen(target)) T11_2_DetermineCombatRound( GetLocalObject(OBJECT_SELF, T11_TARGET_TEXT), nAI_Difficulty ); else ActionMoveToLocation( GetLocation( target ), TRUE ); } else T11_2_DetermineCombatRound( oIntruder, nAI_Difficulty ); } void T11_HeartBeat_1( object oTarget, float fToTarget ){ if( GetIsInCombat() ) return; if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); } void T11_HeartBeat_2( object oTarget, float fToTarget ){ if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); } void T11_HeartBeat_3( object oTarget, float fToTarget ){ struct T11_AltarValues altars = T11_GetT11_AltarValues( OBJECT_SELF ); // T11_ShoutT11_AltarValues(OBJECT_SELF, altars); if( GetIsInCombat() ) return; if( altars.own1 > altars.doubler ) { SetLocalString( OBJECT_SELF, "TARGET", WpClosestAltarRight() ); ActionMoveToLocation( GetLocation( GetObjectByTag( WpClosestAltarRight() ) ), TRUE ); } else if( altars.own1 < altars.doubler ) { SetLocalString( OBJECT_SELF, "TARGET", WpDoubler() ); ActionMoveToLocation( GetLocation( GetObjectByTag( WpDoubler() ) ), TRUE ); } else { SetLocalString( OBJECT_SELF, "TARGET", "WP_ALTAR_" + MyColor() + "_2C" ); ActionMoveToLocation( GetLocation( GetObjectByTag( "WP_ALTAR_" + MyColor() + "_2C" ) ), TRUE ); } } void T11_HeartBeat_4( object oTarget, float fToTarget ){ if( GetIsInCombat() ) return; if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); } void T11_HeartBeat_5( object oTarget, float fToTarget ){ struct T11_AltarValues altars = T11_GetT11_AltarValues( OBJECT_SELF ); // T11_ShoutT11_AltarValues(OBJECT_SELF, altars); if( GetIsInCombat() ) return; if( altars.own2 > altars.doubler ) { SetLocalString( OBJECT_SELF, "TARGET", WpClosestAltarLeft() ); ActionMoveToLocation( GetLocation( GetObjectByTag( WpClosestAltarLeft() ) ), TRUE ); } else if( altars.own2 < altars.doubler ) { SetLocalString( OBJECT_SELF, "TARGET", WpDoubler() ); ActionMoveToLocation( GetLocation( GetObjectByTag( WpDoubler() ) ), TRUE ); } else { SetLocalString( OBJECT_SELF, "TARGET", "WP_ALTAR_" + MyColor() + "_1C" ); ActionMoveToLocation( GetLocation( GetObjectByTag( "WP_ALTAR_" + MyColor() + "_1C" ) ), TRUE ); } } void T11_HeartBeat_6( object oTarget, float fToTarget ){ if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); } void T11_HeartBeat_7( object oTarget, float fToTarget ){ if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); } object T11_CheckCombattingFriends() { object friend = OBJECT_SELF; int i; for(i = 1; (GetDistanceBetween(OBJECT_SELF, friend) < T11_VERYSHORTDISTANCE) && (i<100); i++) { friend = GetNearestObject(OBJECT_TYPE_CREATURE, OBJECT_SELF, i); if (SameTeam(friend, OBJECT_SELF)) { if (GetLocalInt(friend, T11_TASK_TEXT) == T11_TASK_COMBAT && GetIsObjectValid(GetLocalObject(friend, T11_TARGET_TEXT))) return friend; } } return OBJECT_INVALID; } object T11_FindLocalEnemy() { object enemy = OBJECT_SELF; object weakestEnemy = OBJECT_INVALID; int lowestHp = 9999; int i; for(i = 1; (GetDistanceBetween(OBJECT_SELF, enemy) < T11_VERYSHORTDISTANCE) && (i<100); i++) { enemy = GetNearestObject(OBJECT_TYPE_CREATURE, OBJECT_SELF, i); if (!SameTeam(enemy, OBJECT_SELF)) { if ((FindSubString(GetTag(enemy), OpponentColor()) >= 0) && GetIsObjectValid(enemy)) if (lowestHp > GetCurrentHitPoints(enemy)) { weakestEnemy = enemy; lowestHp = GetCurrentHitPoints(enemy); // return enemy; } } } // return OBJECT_INVALID; return weakestEnemy; } object T11_FindLocalUncapturedAltar() { object altar = OBJECT_SELF; int i; for(i = 1; (GetDistanceBetween(OBJECT_SELF, altar) < T11_SHORTDISTANCE) && (i<100); i++) { altar = GetNearestObject(OBJECT_TYPE_WAYPOINT, OBJECT_SELF, i); string objectName = GetTag(altar); if (objectName == "WP_ALTAR_BLUE_1" || objectName == "WP_ALTAR_BLUE_2" || objectName == "WP_ALTAR_RED_1" || objectName == "WP_ALTAR_RED_2" || objectName == "WP_DOUBLER") { // Check for capturing friends int j; object friend = OBJECT_SELF; // float lowestdistance = GetDistanceBetween(altar,friend); for (j = 1; (GetDistanceBetween(altar, friend) < T11_SHORTDISTANCE) && (j<100); j++) { friend = GetNearestObject(OBJECT_TYPE_CREATURE, altar, j); if (friend == OBJECT_SELF){ object secondNearestFriend = GetNearestObject(OBJECT_TYPE_CREATURE, OBJECT_SELF, j); if ((GetLocalInt(secondNearestFriend, T11_TASK_TEXT) == T11_TASK_CAPTURE_POINT) && (GetTag(GetLocalObject(secondNearestFriend, T11_TARGET_TEXT)) == objectName)) { return OBJECT_INVALID; } else return altar; } else if (SameTeam(friend) && ((GetLocalInt(friend, T11_TASK_TEXT) == T11_TASK_CAPTURE_POINT) || (GetTag(GetLocalObject(friend, T11_TARGET_TEXT)) == objectName))) return OBJECT_INVALID; } // if (GetDistanceBetween( GetNearestObject(OBJECT_TYPE_CREATURE, altar), altar ) > 0.5) //Need to check if the creature is a member of a team // return altar; } } return OBJECT_INVALID; } string T11_GetMostAttractivePoint( object oSelf = OBJECT_SELF ) { float value = -9999999999.0; float tempvalue = 0.0; string pointTag = ""; if (GetLocalFloat (oSelf, "WP_DOUBLER") > value){ pointTag = "WP_CENTRE_BLUE"; value = GetLocalFloat (oSelf, "WP_DOUBLER"); } if (GetLocalFloat (oSelf, "WP_ALTAR_BLUE_1") > value) { pointTag = "WP_FRONT_BLUE_1"; value = GetLocalFloat (oSelf, "WP_ALTAR_BLUE_1"); } if (GetLocalFloat (oSelf, "WP_ALTAR_BLUE_2") > value) { pointTag = "WP_FRONT_BLUE_2"; value = GetLocalFloat (oSelf, "WP_ALTAR_BLUE_2"); } if (GetLocalFloat (oSelf, "WP_ALTAR_RED_1") > value) { pointTag = "WP_FRONT_RED_1"; value = GetLocalFloat (oSelf, "WP_ALTAR_RED_1"); } if (GetLocalFloat (oSelf, "WP_ALTAR_RED_2") > value) { pointTag = "WP_FRONT_RED_2"; value = GetLocalFloat (oSelf, "WP_ALTAR_RED_2"); } return pointTag; } // Called every heartbeat (i.e., every six seconds). void T11_HeartBeat() { // debug // SpeakString(IntToString(GetLocalInt( OBJECT_SELF, T11_TASK_TEXT )) + ": " + GetTag(GetLocalObject( OBJECT_SELF, T11_TARGET_TEXT)), TALKVOLUME_SHOUT); object oTarget = GetLocalObject( OBJECT_SELF, T11_TARGET_TEXT ); if (!GetIsObjectValid(oTarget)) { oTarget = OBJECT_INVALID; SetLocalObject(OBJECT_SELF, T11_TARGET_TEXT, OBJECT_INVALID); // SpeakString("object is invalid", TALKVOLUME_SHOUT); SetLocalInt(OBJECT_SELF, T11_TASK_TEXT, T11_TASK_NOTASK); } struct T11_AltarValues altars = T11_GetT11_AltarValues( OBJECT_SELF ); float fToTarget = GetDistanceToObject( oTarget ); // T11_ShoutT11_AltarValues(OBJECT_SELF, altars); // object oTarget = GetObjectByTag( sTarget ); /* if (GetLocalInt( OBJECT_SELF, T11_TASK_TEXT ) == T11_TASK_CAPTURE_POINT ) { if (fToTarget > 0.5 && GetLocalFloat(OBJECT_SELF, GetTag(oTarget)) >= T11_ATTRACTIVECAPTURETHRESHOLD) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); SpeakString("Capturing point!", TALKVOLUME_SHOUT); return; } else if (GetLocalInt( OBJECT_SELF, T11_TASK_TEXT) == T11_TASK_ATTACK_POINT ) { if (fToTarget > 0.5) ActionMoveToLocation( GetLocation( oTarget ), TRUE ); } */ if (GetLocalInt( OBJECT_SELF, T11_TASK_TEXT ) != T11_TASK_CAPTURE_POINT || (fToTarget > 0.5 && GetLocalFloat(OBJECT_SELF, GetTag(oTarget)) < T11_ATTRACTIVECAPTURETHRESHOLD) ) { object temporaryobjectname; if (GetIsObjectValid(temporaryobjectname = T11_FindLocalUncapturedAltar()) ) { // SpeakString("I am capturing!", TALKVOLUME_SHOUT); SetLocalObject(OBJECT_SELF, T11_TARGET_TEXT, temporaryobjectname); SetLocalInt(OBJECT_SELF, T11_TASK_TEXT, T11_TASK_CAPTURE_POINT); } else if (GetIsObjectValid(temporaryobjectname = T11_CheckCombattingFriends())) { SetLocalObject(OBJECT_SELF, T11_TARGET_TEXT, GetLocalObject(temporaryobjectname, T11_TARGET_TEXT)); SetLocalInt(OBJECT_SELF, T11_TASK_TEXT, T11_TASK_COMBAT); } else if ( GetIsObjectValid(temporaryobjectname = T11_FindLocalEnemy()) ) { SetLocalObject(OBJECT_SELF, T11_TARGET_TEXT, temporaryobjectname); SetLocalInt(OBJECT_SELF, T11_TASK_TEXT, T11_TASK_COMBAT); } else { string targetTag = T11_GetMostAttractivePoint(OBJECT_SELF); if (targetTag != "") { SetLocalObject(OBJECT_SELF, T11_TARGET_TEXT, GetObjectByTag(targetTag)); SetLocalInt(OBJECT_SELF, T11_TASK_TEXT, T11_TASK_ATTACK_POINT); } // SpeakString("Eror 1: no attractive points", TALKVOLUME_SHOUT); } } oTarget = GetLocalObject( OBJECT_SELF, T11_TARGET_TEXT ); fToTarget = GetDistanceToObject( oTarget ); if (GetHasSpell(SPELL_STONESKIN) && !GetHasSpellEffect(SPELL_STONESKIN)) { ActionCastSpellAtObject(