cmorgan Posted March 29, 2009 Share Posted March 29, 2009 AreaCheck resources, formatted and commented: /* SoA Area Checks */ AreaCheck("AR0011") // Candlekeep Dream 1 (Do you remember Candlekeep?) AreaCheck("AR0012") // Candlekeep Library (Main Door Trigger) AreaCheck("AR0013") // Candlekeep Library (Stairway Triggers Up and Down) AreaCheck("AR0014") // Candlekeep Library (Stairway Trigger Down) AreaCheck("AR0015") // Baldur's Gate Estate (Tutorial starts here) AreaCheck("AR0016") // Baldur's Gate Estate (Tutorial area) AreaCheck("AR0017") // Baldur's Gate Estate (Tutorial area) AreaCheck("AR0018") // Baldur's Gate Estate Cellar (Tutorial area) AreaCheck("AR0020") // City Gates AreaCheck("AR0021") // Crooked Crane 1st Floor AreaCheck("AR0022") // Crooked Crane 2nd Floor AreaCheck("AR0028") // Candlekeep Dream (After PC Soultheft) AreaCheck("AR0041") // Random Encounter City AreaCheck("AR0042") // Random Encounter Outdoor AreaCheck("AR0043") // Random Encounter Outdoor (With rocks) AreaCheck("AR0044") // Random Encounter Outdoor (sand) AreaCheck("AR0045") // Random Encounter City AreaCheck("AR0046") // Random Encounter City (bridge) AreaCheck("AR0069") // Government Building (Cowled Cutscene -- "Why is this man not gagged?") AreaCheck("AR0070") // Spellhold (Irenicus Cutscene -- "I cannot be caged...") AreaCheck("AR0071") // Spellhold (Imoen Soultheft Cutscene -- "Silence do, you have no purpose...") AreaCheck("AR0072") // Ust Natha Temple (Irenicus/Bodhi, Ardula/Phaere Cutscene) AreaCheck("AR0082") // Lich Grave in Bridge District Inn AreaCheck("AR0083") // Candlekeep Library (Dream: PC learns to control the Slayer) AreaCheck("AR0084") // Candlekeep Library (Stairway trigger down) AreaCheck("AR0085") // Tree of Life AreaCheck("AR0086") // Wooded Area AreaCheck("AR0087") // Elven Dining Room AreaCheck("AR0201") // Ghouls village under Temple District AreaCheck("AR0202") // The Unseeing Eye Cult Hideout AreaCheck("AR0203") // Temple of the Forgotten God -- Amaunator (Unseeing Eye Plot) AreaCheck("AR0204") // The Forgotten Believers -- Temple City (Unseeing Eye Plot) AreaCheck("AR0205") // The Beholder Hideout (Unseeing Eye Plot) AreaCheck("AR0206") // The Halfling Village in the Sphere AreaCheck("AR0300") // The Docks AreaCheck("AR0301") // Mae'Var's Hide Out AreaCheck("AR0302") // Mae'Var's Inn 1st Floor -- Entrance AreaCheck("AR0303") // Mae'Var's Inn 2nd Floor -- Training Area AreaCheck("AR0304") // Mae'Var's Inn 3rd Floor -- Edwin AreaCheck("AR0305") // Shadow Thieves Guild Entrance AreaCheck("AR0306") // Renal Bloodscalp's Hideout AreaCheck("AR0307") // Aran Linvail's Hideout AreaCheck("AR0308") // Harper's 1st Floor AreaCheck("AR0309") // Harper's 2nd Floor AreaCheck("AR0310") // Pirates' Hideout in Sea Bouny Tavern AreaCheck("AR0311") // Living Room (Entry points outside and up) -- Gaelan? AreaCheck("AR0312") // Sleeping Room (Entry poin down) -- Arledrian AreaCheck("AR0313") // Sea Bounty Tavern 1st Floor AreaCheck("AR0314") // Sea Bounty Tavern 2nd Floor AreaCheck("AR0315") // Living Room (Favour for Edwin -- Mae'Var Plot) AreaCheck("AR0316") // Sleeping Room (Favour for Edwin -- Mae'Var Plot) AreaCheck("AR0317") // Sleeping Room (Favour for Edwin -- Mae'Var Plot) AreaCheck("AR0318") // Storage Room AreaCheck("AR0319") // Temple of Oghma AreaCheck("AR0321") // Thief Stronghold (Hideout) AreaCheck("AR0322") // Thief Stronghold (1st Floor) AreaCheck("AR0323") // Thief Stronghold (2nd Floor) AreaCheck("AR0324") // Thief Stronghold (3rd Floor) AreaCheck("AR0325") // Corthala House 1st Floor AreaCheck("AR0326") // Corthala House 2nd Floor AreaCheck("AR0327") // Shadow Thief Entrance (sided with Bodhi) AreaCheck("AR0328") // Shadow Thief 1st Floor (sided with Bodhi) AreaCheck("AR0329") // Aran's Hideout (sided with Bodhi) AreaCheck("AR0330") // House 1st Floor (Kangaxx) AreaCheck("AR0331") // House Cellar (Kangaxx) AreaCheck("AR0332") // Barracks in the Docks AreaCheck("AR0333") // Barracks in the Docks AreaCheck("AR0334") // Cromwell's Shop AreaCheck("AR0335") // Sleeping Room AreaCheck("AR0400") // Slums AreaCheck("AR0401") // Jansen Cellar AreaCheck("AR0402") // Jansen 1st Floor AreaCheck("AR0403") // Jansen 2nd Floor AreaCheck("AR0404") // Sewers beneath Coronet -- Lilarcor AreaCheck("AR0405") // Slaver's Ship Building AreaCheck("AR0406") // Copper Coronet AreaCheck("AR0407") // Prebek's House AreaCheck("AR0408") // Temple of Ilmater AreaCheck("AR0409") // Living Room (Ployer's home) AreaCheck("AR0410") // Sphere: Navigator's room -- Lavok's Hideout AreaCheck("AR0411") // Sphere: Entrance floor AreaCheck("AR0412") // Sphere: Ice and Fire Room AreaCheck("AR0413") // Sphere: Enginge Room AreaCheck("AR0414") // Sphere: Demon Plane AreaCheck("AR0415") // Living Room 1st Floor AreaCheck("AR0416") // Living Room 2nd Floor AreaCheck("AR0417") // Living Room AreaCheck("AR0418") // Myconids AreaCheck("AR0419") // Myconid AreaCheck("AR0420") // Sphere: Lizardmen Hideout AreaCheck("AR0500") // Bridge District AreaCheck("AR0501") // Tanner's Hideout 1st Floor AreaCheck("AR0502") // Tanner's Hideout Cellar AreaCheck("AR0503") // Tanner's Hideout Dock AreaCheck("AR0504") // Saerk's House 1st Floor AreaCheck("AR0505") // Saerk's House 2nd Floor AreaCheck("AR0506") // Noble House 1st Floor AreaCheck("AR0507") // Kidnappers' Hideout 1st Floor AreaCheck("AR0508") // Kidnappers' Hideout 2nd Floor AreaCheck("AR0509") // Five Flagons Inn 1st Floor AreaCheck("AR0510") // Five Flagons Inn Theater AreaCheck("AR0511") // Five Flagons Inn 2nd Floor AreaCheck("AR0512") // Temple of Helm AreaCheck("AR0513") // Calbor's Inn at Bridge District 1st Floor AreaCheck("AR0514") // Inn at Bridge District 2nd Floor AreaCheck("AR0515") // Inn at Bridge District 3rd Floor AreaCheck("AR0516") // Planar Prison AreaCheck("AR0517") // Planar Prison Cell AreaCheck("AR0518") // Planar Prison Cell AreaCheck("AR0519") // Planar Prison Cell AreaCheck("AR0520") // Planar Prison Cell AreaCheck("AR0521") // Planar Prison Cell AreaCheck("AR0522") // Five Flagons Inn (Stronghold) AreaCheck("AR0523") // Five Flagons Theater (Stronghold) AreaCheck("AR0525") // House 1st Floor AreaCheck("AR0526") // Sarcophagus Cellar AreaCheck("AR0527") // House 1st Floor AreaCheck("AR0528") // House 2nd Floor AreaCheck("AR0529") // Neb's Hideout AreaCheck("AR0530") // Storehouse AreaCheck("AR0531") // Commoner House AreaCheck("AR0600") // Circus Tent (phased) AreaCheck("AR0601") // Air Plane in Irenicus's Dungeon AreaCheck("AR0602") // Irenicus's Dungeon 1st Floor AreaCheck("AR0603") // Irenicus's Dungeon 2nd Floor AreaCheck("AR0604") // Circus Tent 1st Floor AreaCheck("AR0605") // Circus Tent 2nd Floor AreaCheck("AR0606") // Circus Tent 3rd Floor AreaCheck("AR0607") // Circus Tent restored AreaCheck("AR0700") // Waukeen's Promenade AreaCheck("AR0701") // The Sewers AreaCheck("AR0702") // Adventurer's Mart AreaCheck("AR0703") // Temple of Ilmater AreaCheck("AR0704") // Mithrest Inn AreaCheck("AR0705") // Mekrath's Hideout in the Sewers (Haer'Dalis Plot) AreaCheck("AR0706") // Armourer/Fletcher AreaCheck("AR0707") // Enge's Shop AreaCheck("AR0708") // Cernd's former home AreaCheck("AR0709") // Den of the Seven Vales 1st Floor AreaCheck("AR0710") // Fennecia's Home AreaCheck("AR0711") // Illithid Hideout in the Sewers (The Hidden Plot) AreaCheck("AR0712") // Den of the Seven Vales 2nd Floor AreaCheck("AR0713") // Store or Inn at Promenade AreaCheck("AR0714") // Debris at Waukeen's Promenade (Irenicus Cutscene in the beginning) AreaCheck("AR0800") // Graveyard AreaCheck("AR0801") // Bodhi's Hideout (sided with Aran) AreaCheck("AR0802") // Netherscroll, Korgan's Book, Edwin AreaCheck("AR0803") // Bodhi's Lair (sided with Aran) AreaCheck("AR0804") // Pai'Na's Hideout AreaCheck("AR0805") // Crypt AreaCheck("AR0806") // Crypt AreaCheck("AR0807") // Crypt AreaCheck("AR0808") // Bodhi's Hideout (Abduction Plot, getting Imoen's soul) AreaCheck("AR0809") // Bodhi's Lair (Abduction Plot, getting Imoen's soul) AreaCheck("AR0810") // Crypt AreaCheck("AR0811") // Crypt AreaCheck("AR0812") // Crypt AreaCheck("AR0813") // Crypt AreaCheck("AR0900") // Temple District AreaCheck("AR0901") // Temple of Helm AreaCheck("AR0902") // Temple of Lathander AreaCheck("AR0903") // Order of the Radiant Heart AreaCheck("AR0904") // Temple of Talos AreaCheck("AR0905") // Pimlico's Estate AreaCheck("AR0906") // Guarded Compound 1st Floor AreaCheck("AR0907") // Guarded Compound 2nd Floor AreaCheck("AR1000") // Government District AreaCheck("AR1001") // Delryn's Estate AreaCheck("AR1002") // Councel Building AreaCheck("AR1003") // Firecam's Estate AreaCheck("AR1004") // Deril's Estate (Cernd Plot) AreaCheck("AR1005") // Prison AreaCheck("AR1006") // Jysstev's Estate (Oisig Plot) AreaCheck("AR1007") // Noble House AreaCheck("AR1008") // Twisted Rune AreaCheck("AR1009") // Noble House (Isaea Roenall's) AreaCheck("AR1010") // Temple of Waukeen AreaCheck("AR1100") // Umar Hills AreaCheck("AR1101") // Valygar's Cabin AreaCheck("AR1102") // Merella's Cabin AreaCheck("AR1103") // Jermien's Cabin AreaCheck("AR1104") // Mayor Lloyd's Cabin AreaCheck("AR1105") // Imnesvale Inn AreaCheck("AR1106") // Umar's Cave AreaCheck("AR1107") // Ranger-Protector's Cabin (Stronghold) AreaCheck("AR1200") // Windspear Hills AreaCheck("AR1201") // Firkraarg's Entrance AreaCheck("AR1202") // Firkaarg's Maze AreaCheck("AR1203") // Firkraag's Hideout AreaCheck("AR1204") // Garren Windspear's Cabin AreaCheck("AR1300") // De'Arnise Keep Destroyed AreaCheck("AR1301") // De'Arnise Cellar AreaCheck("AR1302") // De'Arnise Keep 1st Floor AreaCheck("AR1303") // De'Arnise Keep 2nd Floor (Destroyed) AreaCheck("AR1304") // De'Arnise Keep (Restored, Stronghold) AreaCheck("AR1305") // De'Arnise Keep (Stronghold) AreaCheck("AR1306") // De'Arnise Keep (Stronghold) AreaCheck("AR1307") // De'Arnise Keep (Stronghold) AreaCheck("AR1400") // Shadow Temple Land (restored, Ranger) AreaCheck("AR1401") // Shadow Temple AreaCheck("AR1402") // Shadow Dragon Hideout AreaCheck("AR1403") // Wolfwere Hideout AreaCheck("AR1404") // Shadow Temple Land shadowed AreaCheck("AR1500") // Spellhold AreaCheck("AR1501") // Cave (Spellhold Test) AreaCheck("AR1502") // Fire Room (Spellhold Test) AreaCheck("AR1503") // Spore Room (Spellhold Test) AreaCheck("AR1504") // Crushing Trap Room (Spellhold Test) AreaCheck("AR1505") // Lever Room (Spellhold Test) AreaCheck("AR1506") // Troll Cave (Spellhold Test) AreaCheck("AR1507") // Kobold Room (Spellhold Test) AreaCheck("AR1508") // Final Judgement Spellhold Test AreaCheck("AR1509") // Myconid Room (Spellhold Test) AreaCheck("AR1510") // Sahuagin Room (Spellhold Test) AreaCheck("AR1511") // Elven Table while Spellhold Test AreaCheck("AR1512") // Bodhi's Hunt Level 1 AreaCheck("AR1513") // Bodhi's Hunt Level 2 AreaCheck("AR1514") // Bodhi's Hunt Level 3 (1st Slayer Change Happens here) AreaCheck("AR1515") // Spellhold (Irenicus' Living Room) AreaCheck("AR1516") // Spellhold (Soultheft Level) AreaCheck("AR1600") // Brynnlaw AreaCheck("AR1601") // Desharik's Estate AreaCheck("AR1602") // Brynnlaw's Inn AreaCheck("AR1603") // Brynnlaw's Shop AreaCheck("AR1604") // Temple of Umberlee AreaCheck("AR1605") // CW's House AreaCheck("AR1606") // House of Desharik's Lover AreaCheck("AR1607") // Githyanki Assault AreaCheck("AR1608") // Cellar of Brothel AreaCheck("AR1609") // Courtesan Room AreaCheck("AR1610") // Brothel Prison AreaCheck("AR1611") // Brothel AreaCheck("AR1612") // Brothel Kitchen AreaCheck("AR1613") // Brothel HQ AreaCheck("AR1700") // Small Teeth Pass AreaCheck("AR1800") // North Forest AreaCheck("AR1900") // Druid Grove Area AreaCheck("AR1901") // Druid Grove AreaCheck("AR1902") // Storehouse (Ihtafeer's Storehouse) AreaCheck("AR1904") // Troll Hill AreaCheck("AR1905") // Store Tower AreaCheck("AR2000") // Trademeet AreaCheck("AR2001") // The Smithy AreaCheck("AR2002") // Fentan's House AreaCheck("AR2006") // Tiri's Home AreaCheck("AR2007") // High Merchant's Estate AreaCheck("AR2008") // Temple of Waukeen AreaCheck("AR2009") // High Merchant Prison AreaCheck("AR2010") // Trademeet's Inn AreaCheck("AR2011") // Alibakkar's Estate AreaCheck("AR2012") // Lurraxol's Estate AreaCheck("AR2013") // Trademeet Crypt AreaCheck("AR2014") // Djinni's Tent AreaCheck("AR2015") // Merchant Tent AreaCheck("AR2016") // Raffee's Tent AreaCheck("AR2017") // Courtesan Tent AreaCheck("AR2018") // Tent (no exit) AreaCheck("AR2100") // Underdark AreaCheck("AR2101") // Beholder Cave in Underdark AreaCheck("AR2102") // Adalon's Cave AreaCheck("AR2200") // Ust Natha AreaCheck("AR2201") // Temple in Ust Natha AreaCheck("AR2202") // Inn in Ust Natha 1st Floor AreaCheck("AR2203") // Inn in Ust Natha; 2nd Floor AreaCheck("AR2204") // House in Ust Natha AreaCheck("AR2205") // House in Ust Natha AreaCheck("AR2206") // Qilue's House in Ust Natha AreaCheck("AR2207") // Deirex's Tower in Ust Natha AreaCheck("AR2208") // Jarlaxle's House wherever AreaCheck("AR2209") // Jae'llat's House AreaCheck("AR2210") // Deirex's Cave AreaCheck("AR2300") // Sahuagin City AreaCheck("AR2400") // Mind Flayers in Underdark AreaCheck("AR2401") // Cave Between Underdark and Exit from Underdark AreaCheck("AR2402") // Kuo Toa in Underdark AreaCheck("AR2500") // Elven Temple at Underdark Exit AreaCheck("AR2600") // Thetyr Wood AreaCheck("AR2601") // Meet Drizzt Do'Urden AreaCheck("AR2602") // Cave in Woods to Suldanesselar AreaCheck("AR2603") // Coran's Cabin AreaCheck("AR2700") // Ancient Spirits? AreaCheck("AR2800") // Suldanesselar AreaCheck("AR2801") // House of High Priestess of Suldanesselar AreaCheck("AR2802") // House in Suldanesselar AreaCheck("AR2803") // Rillifane Temple AreaCheck("AR2804") // To the Tree of Life (Entrance Hidden) AreaCheck("AR2805") // To the Tree of Life (Entrance Revealed) AreaCheck("AR2806") // Tree of Life AreaCheck("AR2807") // Black Dragon's Hideout AreaCheck("AR2808") // House in Suldanesselar AreaCheck("AR2810") // House in Suldanesselar AreaCheck("AR2811") // House in Suldanesselar AreaCheck("AR2812") // Temple of Rillifane after the Battle AreaCheck("AR2900") // The Abyss AreaCheck("AR2901") // Fear (Abyss) AreaCheck("AR2902") // Pride (Abyss) AreaCheck("AR2903") // Greed (Abyss) AreaCheck("AR2904") // Selfish (Abyss) AreaCheck("AR2905") // Sarevok (Abyss) AreaCheck("AR2906") // Jon Battle ? /* ToB Area List */ AreaCheck("AR3000") // Watcher's Keep AreaCheck("AR3001") // Watcher's Keep -- Altar level AreaCheck("AR3003") // Watcher's Keep -- Compass level AreaCheck("AR3004") // Watcher's Keep AreaCheck("AR3005") // Watcher's Keep -- tieflings AreaCheck("AR3006") // Watcher's Keep -- Succubus AreaCheck("AR3007") // Watcher's Keep --Cambion AreaCheck("AR3008") // Watcher's Keep -- Baalor (Paladin Sword) AreaCheck("AR3009") // Watcher's Keep -- Wild Magic ? AreaCheck("AR3010") // Watcher's Keep -- Tanar'ri -- Obelisk AreaCheck("AR3011") // Watcher's Keep -- Bard's Gloves, Manman's Journal AreaCheck("AR3012") // Watcher's Keep -- Tahazzar AreaCheck("AR3013") // Watcher's Keep -- Ka'rashur AreaCheck("AR3014") // Watcher's Keep -- White Dragon Scales AreaCheck("AR3015") // Watcher's Keep -- Aesgareth AreaCheck("AR3016") // Watcher's Keep -- Chromatic Demon; Elementalist Level AreaCheck("AR3017") // Watcher's Keep -- Carston and the machine AreaCheck("AR3018") // Watcher's Keep -- Saladrex (Dragon) AreaCheck("AR3019") // Watcher's Keep -- Helmite Level -- Last Seals AreaCheck("AR3020") // Watcher's Keep -- Imprisoned One AreaCheck("AR3021") // Watcher's Keep -- Ilithids AreaCheck("AR3022") // Watcher's Keep -- Anti-Paladins AreaCheck("AR3023") // Watcher's Keep -- "Adventure Level" (Mini Map!!!) AreaCheck("AR3024") // Watcher's Keep -- Dragon -- Fear Challenge AreaCheck("AR3025") // Watcher's Keep -- Orcs -- Ixil's Nail AreaCheck("AR3026") // Watcher's Keep -- Imp -- Game AreaCheck("AR3027") // Watcher's Keep -- Crypt -- Demi-Lich AreaCheck("AR4000") // Spirit Heads AreaCheck("AR4500") // Pocket Plane AreaCheck("AR5000") // Saradush AreaCheck("AR5001") // Gromnir 1st Level AreaCheck("AR5002") // Gromnir's Hideout AreaCheck("AR5003") // Saradush Tavern (Tankard Tree) AreaCheck("AR5004") // Temple of Waukeen AreaCheck("AR5005") // Gromnir's Barracks AreaCheck("AR5006") // Saradush Prison AreaCheck("AR5007") // Basement Entrance to Gromnir's Hideout AreaCheck("AR5008") // Kiser's Home AreaCheck("AR5009") // House (no exit?) AreaCheck("AR5010") // Countess Santele's Home AreaCheck("AR5011") // Arcana Archives AreaCheck("AR5012") // House AreaCheck("AR5013") // Sewers beneath Saradush AreaCheck("AR5014") // Kiser's Home -- Cellar AreaCheck("AR5015") // Saradush Militia Entrance AreaCheck("AR5016") // Saradush Castle Jail (Kiser Plot) AreaCheck("AR5200") // Fire Giant Entrance Area AreaCheck("AR5201") // Fire Giant Keep AreaCheck("AR5202") // Nyalee's Hideout; Gorion Wraith AreaCheck("AR5203") // Yaga-Shura's Camp AreaCheck("AR5204") // Yaga-Shura's Keep AreaCheck("AR5500") // Amkethran AreaCheck("AR5501") // Amkethran Inn AreaCheck("AR5502") // Kerrick the Smith's House AreaCheck("AR5503") // Chyil's House AreaCheck("AR5504") // Smuggler Cave AreaCheck("AR5505") // Balthazar's Home AreaCheck("AR5506") // Commoner's Home AreaCheck("AR5507") // Empty Home AreaCheck("AR5508") // Faheed's Home AreaCheck("AR5509") // Amkethran Crypt AreaCheck("AR6000") // Abazigal's Entrance AreaCheck("AR6001") // Abazigal's Lair Entrance Hall AreaCheck("AR6002") // Abazigal's Lair -- Cells AreaCheck("AR6003") // Abazigal's Lair -- Iycanth the Mad, Bondari AreaCheck("AR6004") // Abazigal's Lair -- Fll'Yissetat AreaCheck("AR6005") // Abazigal's Hideout AreaCheck("AR6008") // Frost Salamander Cave AreaCheck("AR6011") // Orbs and Gauth AreaCheck("AR6012") // Pool Home -- breath under water AreaCheck("AR6100") // Area outside Sendai's Hideout AreaCheck("AR6101") // Main Entrance Sendai's Lair AreaCheck("AR6102") // Sendai's Lair -- Slavemaster AreaCheck("AR6103") // Sendai's Lair -- Spiders AreaCheck("AR6104") // Sendai's Lair -- Crossway AreaCheck("AR6105") // Sendai's Lair -- Diaytha, Abishai AreaCheck("AR6106") // Sendai's Lair -- Captain Egeissag AreaCheck("AR6107") // Sendai's Lair -- Mithykyl AreaCheck("AR6108") // Sendai's Lair -- Sendai AreaCheck("AR6109") // Sendai's Lair -- Drow AreaCheck("AR6110") // Sendai's Lair -- Odamaron AreaCheck("AR6111") // Woodcutter's House -- Sendai's Area AreaCheck("AR6200") // The Throne of Bhaal AreaCheck("AR6300") // Oasis in Tethyr AreaCheck("AR6400") // River Area Link to comment
cmorgan Posted January 23, 2011 Author Share Posted January 23, 2011 Notes to self: As the bigg mentioned in ToBEX thread at SHS: "Cleric/Rangers aren't detected by CLERIC_ALL (fixable by manually checking for C/R when checking for C_A, but error prone)." I am definitely an inattentive modder - need to recheck places where I have slapped C_A, F_A, etc. to look for loopholes. May need to revise those sections to specifically look fro individual classes. Wildmages and barbarians I remembered had problems, but with ToBEX, they now can be detected - before now, their class detection stuff simply did not work. Recheck the order of transition code - EscapeArea() block further commands in the sequence,; from BG1NPC research, it is possible that RealSetGlobalTimer() does in some circumstances as well. Test anything that uses these carefully... May need to recheck USING and see if it is indeed possible to construct a mod that has only one big .tra file for .bcs as well as .d compilation using USING and COMPILE EVALUATE_BUFFER for evaluation of variables within compiled files. Link to comment
erik Posted January 23, 2011 Share Posted January 23, 2011 [*]Wildmages and barbarians I remembered had problems, but with ToBEX, they now can be detected - before now, their class detection stuff simply did not work. Checking for their special abilities via HaveSpell might work, no? (for non-ToBEX users, I mean) Link to comment
cmorgan Posted January 24, 2011 Author Share Posted January 24, 2011 (Side notes from researching this - http://forums.gibberlings3.net/index.php?s...ost&p=20916 - may want to use Smoketest's TimeGT(5) // at least dawn TimeLT(12) // not yet noon instead of timeoDay or TimeofDay... in general, when devSin, CamDawg, or Smoketest are in the same thread, it is a good idea to take serious note. 0x401E Time(I:Time*Time)Returns true only if the period of day matches the period in the 2nd parameter (taken from Time.ids). Hours are offset by 30 minutes, e.g. Time(1) is true between 00:30 and 01:29. Correlates a general time of day, to a specific hour. Used by the Time(I:Time*Time) trigger. As can be seen from the file, midnight is defined as 0, and time builds from there, wrapping from 23 back to 0. The file is extensible, and new entries can be added for example, adding 4 MYTIME will allow MYTIME to be used in scripts, giving the time 3am. 15 0 MIDNIGHT 12 NOON 6 DAWN_START 7 DAWN_END 21 DUSK_START 22 DUSK_END So a check for NIGHT using TIME() is a little more complicated but doable, if we get persnickety, using 'hunt and pack" methods. Need to recheck the incidence of failure that prompted this, rather than trusting TimeoDay/TimeOfDay.ids files. 22 23 0 1 2 3 4 5 6 Link to comment
cmorgan Posted January 24, 2011 Author Share Posted January 24, 2011 .. and an old but good idea i had forgotten to steal for my outdoor/area things that might have weather dependencies, so that I don't have that swordfight happening while it is raining... )and NO I AM NOT REWRITING A WEATHER DEPENDENT ONE. NO. Stp. Step away from the keyboard... must actually finish mod.... must actually finish mod... adapted from Cam & Jastey... IF (conditions for dialogue) Global("BanterVar","GLOBAL",0) TimeOfDay(Day) !AreaType(DUNGEON) !AreaType(EXTENDEDNIGHT) OR(3) AreaType(OUTDOOR) AreaType(CITY) AreaType(FOREST) THEN RESPONSE #100 SetGlobal("BanterVar","GLOBAL",1) Weather(NOWEATHER) SetGlobalTimer("WeatherChange","GLOBAL",10) END IF (conditions for dialogue) Global("BanterVar","GLOBAL",1) TimeOfDay(Day) !AreaType(DUNGEON) !AreaType(EXTENDEDNIGHT) OR(3) AreaType(OUTDOOR) AreaType(CITY) AreaType(FOREST) GlobalTimerExpired("WeatherChange","GLOBAL") THEN RESPONSE #100 SetGlobal("BanterVar","GLOBAL",2) StartDialogueNoSet(PLAYER1) END Link to comment
Miloch Posted January 25, 2011 Share Posted January 25, 2011 so that I don't have that swordfight happening while it is raining... )and NO I AM NOT REWRITING A WEATHER DEPENDENT ONE. NO. Stp. Step away from the keyboard... must actually finish mod.... must actually finish mod... Why not have a swordfight where they fight only with weapons in their off-hands, and then have a showdown where they reveal that they are not actually left-handed, then swap the weapons to their other hands (um no... don't actually do that...). Link to comment
cmorgan Posted January 25, 2011 Author Share Posted January 25, 2011 LOCALS, GLOBAL, AREA... recheck reminders - it looks like if i want to, i might be able to unload a few variables onto an AREA based on older research - but I will need to recheck. Basics, from both moketest and devSin: Area and info point objects cannot set or get LOCALS variables. Using LOCALS outside an actor script (or SetGlobal() outside ActionOverride() on a valid actor) does nothing (this should be true for any other AI object I forgot). my summary / recheck - /* In a mythical AR0100.BAF, set up to EXTEND_BOTTOM ~AR0100.are~ */ IF InParty("imoen") // should work Global("Garbage1","AR0100",1) // should work Global("Garbage2","MYAREA",1) // should work Global("Garbage3","LOCALS",1) // can't work as it is not being run on a specific object Global("Garbage4","GLOBAL",1) // works everywhere THEN RESPONSE #100 SetGlobal("Garbage1","AR0100",2)//works SetGlobal("Garbage1","AR0200",1)// we don't think works SetGlobal("Garbage2","MYAREA",2) // will work SetGlobal("Garbage3","LOCALS",1) // can't work as it is not run on specific object ActionOverride("imoen",SetGlobal("Garbage3","LOCALS",1)) // should work fine to set a LOCALS value on imoen SetGlobal("Garbage4","GLOBAL",1) // works everywhere Continue() //keep on going; use with caution via EXTEND_TOP END The question that i tam not sure if it was resolved or not - in that thread was conflicting data on the use of another area's script to store variables. SmokeTest: I know. That's because setting a LOCALS creates an EFF attached to the creature running the script, and such a mechanism doesn't work on areas. cmorgan, The area referenced in a variable must match an actual area resource name, though MYAREA will work in any given area since it's a context mask. That is, if MYAREA is set/modified in AR0300 the game will attach the variable to AR0300.ARE; if set/modified in AR0400 it will be attached to AR0400.ARE, and so on. Thus you could use MYAREA in all your area scripts if you wanted, but only in scripts working on variables in the area they are attached to. If you need to reference another area's variable you need to use that area's resource name. devSin: Do you know the exact limitations of referencing external (currently unloaded resource) variables? E.g., I don't think the game successfully checks if Global("MyVar","AR0204",1) when you're in AR1000? Smoketest I can't vouch for area scripts because I haven't tested them, but I know the global script, BALDUR.BCS, can do it. It sets variables in at least one area. Sub-areas might be able to read/modify variables in their master area, but again, I haven't tested it yet. Or if I did, it was months/years ago and I've forgotten. so, I need to recheck IESDP and see if there is new info on this, or test. Only because I keep seeing folks use BWP stuff with thousands of variables, all added as .eff, and i just know someday someone's install is going to create a virtual black hole in their VM, thus causing the end of the universe as we know it. Side note - why I completely avoid using OnCreation() even though it has some uses: Smoketest, Nah, just avoid using non-instant actions in your OnCreation() block and you'll be fine. Bioware does it all the time in their area scripts, and so do I. There is often a variable set to prevent the block from executing again, but this variable isn't typically used in the rest of the script so if a Continue() is used there's no problem. (The variable is usually named EnteredARxxxx or similar.) OnCreation() is handy for doing things like Explore() and DisplayStringHead() and anything else you want done at the moment of area entry, and that might look odd if it took place several seconds later. If you use multiple OnCreation() blocks in an area script, it's good to chain them together with Continue() or they might not execute properly. Edit: OnCreation() is an instance trigger, like Die(). If it doesn't get a chance to execute in a timely fashion, it won't execute at all. This is why Bioware universally places it at the top of their scripts. If you're going to EXTEND_BOTTOM, you probably shouldn't use OnCreation(). Link to comment
cmorgan Posted January 25, 2011 Author Share Posted January 25, 2011 so that I don't have that swordfight happening while it is raining... )and NO I AM NOT REWRITING A WEATHER DEPENDENT ONE. NO. Stp. Step away from the keyboard... must actually finish mod.... must actually finish mod... Why not have a swordfight where they fight only with weapons in their off-hands, and then have a showdown where they reveal that they are not actually left-handed, then swap the weapons to their other hands (um no... don't actually do that...). Only if I get to plagarize/paraphrase the whole thing, including "'Allo. My name be Aran Whitehand. You blighted well drank my Gogondy. Prepare to have th' collups kicked out o' you." Link to comment
Miloch Posted January 25, 2011 Share Posted January 25, 2011 "'Allo. My name be Aran Whitehand. You blighted well drank my Gogondy. Prepare to have th' collups kicked out o' you."Lol, you should slip that line in anyway. It's different enough as to not be plagiarising. Link to comment
CamDawg Posted January 25, 2011 Share Posted January 25, 2011 See, this is why there's a STATE_REALLY_DEAD. To make sure you don't catch creatures that are only mostly dead. LOCALS, GLOBAL, AREA... recheck reminders - it looks like if i want to, i might be able to unload a few variables onto an AREA based on older research - but I will need to recheck. Long story short, only use area variable if all the action is going to be in that area. Checking an area var from a different area will get a return as if the var doesn't exist, and a SetGlobal will simply fail. I think you can check and set variables in a master area if you're in a sub-area, but I wouldn't count on it. LOCALS are only available to the creature running them. As I recall even an ActionOverride("bob",SetGlobal("BobVar","LOCALS",1)) fails, but it's been a while. Avoid triggers like OnCreation() and Die(). It's too easy for them to fail, and I can't think of any situation where they can't be done just as timely with a different trigger. Personally, if you've already got something working I wouldn't bother to recode it as you're likely to introduce new bugs for a very limited return. Link to comment
cmorgan Posted January 25, 2011 Author Share Posted January 25, 2011 @Camdawg - Cool, thanks! The fuzziness was on using AREA scope to handle more of the load, and that turns out to be kaput. (I'll have fun storming the castle!) The "check against LOCALS Lovetalks" stuff is a good reminder on this sort of thing, too - to actually get a script or dialog to fire based on another NPC's LOCALS scope; c.f any mod that tries to detect and work off of Solaufein's materials. Personally, if you've already got something working I wouldn't bother to recode it as you're likely to introduce new bugs for a very limited return. Very true indeed. This is the "pre-flight checklist" stuff I want to doublecheck before in-game test. Mostly, rechecks on logic or research. From GeN1e, on getting a "muttering to self" start to dialog... With ActionOverride(PlayerX,StartDialog("xxxx",Myself)), do you get a speaker id?You mean, that it is Haerdalis talking to Haerdalis (with his portrait and name displayed)? Yes. In fact, soon after I compiled that, I've discovered the very same line in ar1514.bcs - when PC talks to self after scaring Bodhi away. At first I intended to use another creature with preset dialog (as appending dlg for each and every joinable NPC would hardly be passable), but then recalled, with some help from your side, that StartDialog allows for temporary substitution. Link to comment
cmorgan Posted January 28, 2011 Author Share Posted January 28, 2011 Clipped out the whole "Figure Out How to make Dialogs in Inns Work Correctly", and discussion of extending new AreaType() materilas to this thread here. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.