Files
dsrc/sku.0/sys.server/compiled/game/script/library/regions.scriptlib
T
2013-09-10 23:17:15 -07:00

492 lines
12 KiB
Plaintext

/**
* 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<regions.length;i++)
{
string regionName = regions[i].getName();
if (isIdValid(gcw.getPvpRegionControllerIdByName(object, regionName)))
return true;
}
return false;
}