/** * Copyright (c)2000-2002 Sony Online Entertainment Inc. * All Rights Reserved * * Title: regions.scriptlib * Description: Base library for spawn regions * @author $Author:$ * @version $Revision:$ */ /***** INCLUDES ********************************************************/ include library.gcw; /***** CONSTANTS *******************************************************/ // GEOGRAPHICAL REGION DEFINITIONS [GEO] const int GEO_DESERT = 0; const int GEO_FOREST = 1; const int GEO_JUNGLE = 2; const int GEO_PLATEAU = 3; const int GEO_OASIS = 4; const int GEO_CANYON = 5; const int GEO_LAKE = 6; const int GEO_LAKESHORE = 7; const int GEO_BEACH = 8; const int GEO_OCEAN = 9; const int GEO_UNDERWATER = 10; const int GEO_RIVER = 11; const int GEO_VOLCANO = 12; const int GEO_SWAMP = 13; const int GEO_PLAINS = 14; const int GEO_PRAIRIE = 15; const int GEO_MOUNTAINS = 16; const int GEO_HILLS = 17; const int GEO_GRASSLAND = 18; const int GEO_WASTELAND = 19; const int GEO_CITY = 20; const int GEO_FICTIONAL = 21; const int GEO_PATHFIND = 22; const int GEO_DEFAULT = 23; const int GEO_THEATER = 24; const int GEO_OVERLOAD = 25; const int GEO_MAX = 26; //must be last const + 1 // MISSION REGION DEFINITIONS [MISSION] const int MISSION_NONE = 0; const int MISSION_DESTROY = 1; const int MISSION_OTHER = 2; const int MISSION_TATOOINE_ANCHORHEAD = 3; const int MISSION_TATOOINE_BESTINE = 4; const int MISSION_TATOOINE_MOS_EISLEY = 5; const int MISSION_TATOOINE_MOS_ENTHA = 6; const int MISSION_TATOOINE_MOS_ESPA = 7; const int MISSION_TATOOINE_MOS_TEIKE = 8; const int MISSION_TATOOINE_WAYFAR = 9; const int MISSION_NABOO_THEED =10; const int MISSION_NABOO_DEEJA_PEAK =11; const int MISSION_NABOO_KAADARA =12; const int MISSION_NABOO_MOENIA =13; const int MISSION_NABOO_KEREN =14; const int MISSION_TATOOINE_BIB_1 =15; const int MISSION_CORELLIA_CORONET =16; const int MISSION_CORELLIA_TYRENA =17; const int MISSION_CORELLIA_BELA_VISTAL =18; const int MISSION_CORELLIA_VRENI_ISLAND =19; const int MISSION_CORELLIA_KOR_VELLA =20; const int MISSION_CORELLIA_DAOBA_GUERFEL=21; const int MISSION_RORI_NARMLE =22; const int MISSION_RORI_RESTUSS =23; const int MISSION_TALUS_DEARIC =24; const int MISSION_TALUS_NASHAL =25; const int MISSION_YAVIN4_LABOR_OUTPOST = 26; const int MISSION_YAVIN4_MINING_OUTPOST =27; const int MISSION_ENDOR_NEUTRAL_OUTPOST =28; const int MISSION_DANTOOINE_MINING_OUTPOST =29; const int MISSION_DANTOOINE_PIRATE_OUTPOST =30; const int MISSION_DATHOMIR_TRADE_OUTPOST =31; const int MISSION_DATHOMIR_SURVEY_OUTPOST=32; const int MISSION_LOK_NYMS_STRONGHOLD =33; const int MISSION_MAX = 34; // DEPRACATED // REGION DIFFICULTY DEFINITIONS [RD] const int RD_NEWBIE = 0; const int RD_EASY = 1; const int RD_NORMAL = 2; const int RD_MEDIUM = 3; const int RD_HARD = 4; const int RD_EXTREME = 5; const int RD_MAX = 6; //must be last const + 1 // REGION PvP DEFINITIONS [PVP] // IMPORTANT!!! DO NOT CHANGE THE VALUES OF PVP_REGION_TYPE_BATTLEFIELD_PVP OR PVP_REGION_TYPE_BATTLEFIELD_PVE WITHOUT CHANGING serverGame/RegionMaster.h !!! const int PVP_REGION_TYPE_NORMAL = 0; const int PVP_REGION_TYPE_TRUCE = 1; const int PVP_REGION_TYPE_BATTLEFIELD_PVP = 2; const int PVP_REGION_TYPE_BATTLEFIELD_PVE = 3; const int PVP_REGION_TYPE_ADVANCED = 4; const int PVP_REGION_TYPE_MAX = 5; //must be last const + 1 depracated? // REGION BUILDABLE DEFINITIONS [BUILD] const int BUILD_FALSE = 0; const int BUILD_TRUE = 1; const int BUILD_MAX = 2; //must be last const + 1 depracated // REGION MUNICIPAL DEFINITIONS [MUNI] const int MUNI_FALSE = 0; const int MUNI_TRUE = 1; const int MUNI_MAX = 2; //must be last const + 1 depracated // REGION SPAWNABLE DEFINITIONS [SPAWN] const int SPAWN_FALSE = 0; const int SPAWN_TRUE = 1; const int SPAWN_MISSION = 2; const int SPAWN_DEFAULT = 3; const int SPAWN_MAX = 4;// potentiall depracated const int SPAWN_DIFFICULTY = 5; /****************** Seperator *************************************/ // BIT CONSTANTS - FOR REGION TESTING [BIT] const int BIT_PVP = 0; //set for PVP > 0 const int BIT_BUILD = 1; //set for BUILD > 0 const int BIT_MUNICIPAL = 2; //set for MUNI > 0 const int BIT_SPAWNABLE = 3; //set for SPAWN > 0 const int BIT_MISSION = 4; //set for MISSION > 0 /***** FUNCTIONS ****************************************************/ /***************************************************************** * @brief returns an identifier string for the associate geo type * * @param int geo * * @return string; null on error *****************************************************************/ string translateGeoToString(int geo) { if ( ( geo >= GEO_MAX ) || ( geo < 0) ) { return null; } switch ( geo ) { case GEO_DESERT: return "desert"; case GEO_FOREST: return "forest"; case GEO_JUNGLE: return "jungle"; case GEO_PLATEAU: return "plateau"; case GEO_OASIS: return "oasis"; case GEO_CANYON: return "canyon"; case GEO_LAKE: return "lake"; case GEO_LAKESHORE: return "lakeshore"; case GEO_BEACH: return "beach"; case GEO_OCEAN: return "ocean"; case GEO_UNDERWATER: return "underwater"; case GEO_RIVER: return "river"; case GEO_VOLCANO: return "volcano"; case GEO_SWAMP: return "swamp"; case GEO_PLAINS: return "plains"; case GEO_PRAIRIE: return "prairie"; case GEO_MOUNTAINS: return "mountains"; case GEO_HILLS: return "hills"; case GEO_GRASSLAND: return "grassland"; case GEO_WASTELAND: return "wasteland"; case GEO_CITY: return "city"; case GEO_FICTIONAL: return "fictional"; case GEO_OVERLOAD: return "overload"; case GEO_DEFAULT: return "default"; case GEO_THEATER: return "theater"; } return null; } int getDeliverMissionRegionType(string strRegionName) { /* switch(strRegionName) { case "anchorhead" : return MISSION_TATOOINE_ANCHORHEAD; case "bestine" : return MISSION_TATOOINE_BESTINE; case "mos_eisley" : return MISSION_TATOOINE_MOS_EISLEY; case "mos_entha" : return MISSION_TATOOINE_MOS_ENTHA; case "mos_espa" : return MISSION_TATOOINE_MOS_ESPA; case "mos_teike" : return MISSION_TATOOINE_MOS_TEIKE; case "wayfar" : return MISSION_TATOOINE_WAYFAR; } return 0; */ if(strRegionName=="anchorhead") { return MISSION_TATOOINE_ANCHORHEAD; } else if(strRegionName=="bestine") { return MISSION_TATOOINE_BESTINE; } else if(strRegionName=="mos_eisley") { return MISSION_TATOOINE_MOS_EISLEY; } else if(strRegionName=="mos_entha") { return MISSION_TATOOINE_MOS_ENTHA; } else if(strRegionName=="mos_espa") { return MISSION_TATOOINE_MOS_ESPA; } else if(strRegionName=="mos_teike") { return MISSION_TATOOINE_MOS_TEIKE; } else if (strRegionName=="wayfar") { return MISSION_TATOOINE_WAYFAR; } else if (strRegionName=="deeja_peak") { return MISSION_NABOO_DEEJA_PEAK; } else if (strRegionName=="theed") { return MISSION_NABOO_THEED; } else if(strRegionName=="keren") { return MISSION_NABOO_KEREN; } else if(strRegionName=="kaadara") { return MISSION_NABOO_KAADARA; } else if (strRegionName=="moenia") { return MISSION_NABOO_MOENIA; } else if(strRegionName=="coronet") { return MISSION_CORELLIA_CORONET; } else if(strRegionName=="tyrena") { return MISSION_CORELLIA_TYRENA; } else if(strRegionName=="bela_vistal") { return MISSION_CORELLIA_BELA_VISTAL; } else if(strRegionName=="vreni_island") { return MISSION_CORELLIA_VRENI_ISLAND; } else if(strRegionName=="kor_vella") { return MISSION_CORELLIA_KOR_VELLA; } else if(strRegionName=="daoba_guerfel") { return MISSION_CORELLIA_DAOBA_GUERFEL; } else if(strRegionName=="doaba_guerfel") { return MISSION_CORELLIA_DAOBA_GUERFEL; } else if(strRegionName=="narmle") { return MISSION_RORI_NARMLE; } else if(strRegionName=="restuss") { return MISSION_RORI_RESTUSS; } else if(strRegionName=="dearic") { return MISSION_TALUS_DEARIC; } else if(strRegionName=="nashal") { return MISSION_TALUS_NASHAL; } else if(strRegionName=="yavin4_labor_outpost") { return MISSION_YAVIN4_LABOR_OUTPOST; } else if(strRegionName=="yavin4_mining_outpost") { return MISSION_YAVIN4_MINING_OUTPOST; } else if(strRegionName=="endor_neutral_outpost") { return MISSION_ENDOR_NEUTRAL_OUTPOST; } else if(strRegionName=="dantooine_mining_outpost") { return MISSION_DANTOOINE_MINING_OUTPOST; } else if(strRegionName=="dantooine_pirate_outpost") { return MISSION_DANTOOINE_PIRATE_OUTPOST; } else if(strRegionName=="dathomir_trade_outpost") { return MISSION_DATHOMIR_TRADE_OUTPOST; } else if(strRegionName=="dathomir_survey_outpost") { return MISSION_DATHOMIR_SURVEY_OUTPOST; } else if(strRegionName=="lok_nyms_stronghold") { return MISSION_LOK_NYMS_STRONGHOLD; } return 0; } // hack remove later string getPlanetNameByObjId(obj_id objPlanet) { // naboo // tatooine // corellia // lok // dathomir //endor //yavin4 LOG("regions_spam", "objPlanet is "+objPlanet); obj_id objNamedPlanet = getPlanetByName("naboo"); LOG("regions_spam", "naboo is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "naboo"; } objNamedPlanet = getPlanetByName("tatooine"); LOG("regions_spam", "tatooine is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "tatooine"; } objNamedPlanet = getPlanetByName("dathomir"); LOG("regions_spam", "dathomir is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "dathomir"; } objNamedPlanet = getPlanetByName("corellia"); LOG("regions_spam", "corellia is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "corellia"; } objNamedPlanet = getPlanetByName("endor"); LOG("regions_spam", "endor is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "endor"; } objNamedPlanet = getPlanetByName("yavin"); LOG("regions_spam", "yavin is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "yavin"; } objNamedPlanet = getPlanetByName("lok"); LOG("regions_spam", "lok is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "lok"; } objNamedPlanet = getPlanetByName("tanaab"); LOG("regions_spam", "tanaab is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "tanaab"; } objNamedPlanet = getPlanetByName("talus"); LOG("regions_spam", "talus is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "talus"; } objNamedPlanet = getPlanetByName("rori"); LOG("regions_spam", "rori is "+objNamedPlanet); if(objNamedPlanet==objPlanet) { return "rori"; } return null; } // end hack //It's later, oh look... hack still here. boolean isInPvPRegion(obj_id object) { //Check the planet tables here for pvp region if you wish, but setting a region to //pvp enabled "Battlefield Region" breaks all combat. If that is ever fixed, feel free //to come back here and add that check in. Until then, we are just looking for registered //regions as that is what the GCW tracking does. location loc = getLocation(object); region[] regions = getRegionsAtPoint(loc); if (regions == null || regions.length == 0) return false; for (int i=0;i