mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
102 lines
3.1 KiB
Plaintext
102 lines
3.1 KiB
Plaintext
include library.locations;
|
|
include library.quests;
|
|
include library.create;
|
|
include library.factions;
|
|
|
|
trigger OnAttach ()
|
|
{
|
|
string datatable = getStringObjVar (self, "quest_table");
|
|
|
|
string gatingString = dataTableGetString (datatable, 2, 1);
|
|
string questID = dataTableGetString (datatable, 3, 1);
|
|
int questNum = getIntObjVar (self, questID + ".questNum");
|
|
|
|
location questLoc = getLocationObjVar (self, questID + ".questLoc");
|
|
quests.addQuestLocationTarget ( self, null, "quest", questLoc, 15);
|
|
addLocationTarget ("spawnGuy", questLoc, 100);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
trigger OnArrivedAtLocation( string name )
|
|
{
|
|
string datatable = getStringObjVar (self, "quest_table");
|
|
|
|
string gatingString = dataTableGetString (datatable, 2, 1);
|
|
int gating = getIntObjVar (self, gatingString);
|
|
string questID = dataTableGetString (datatable, 3, 1);
|
|
int questNum = getIntObjVar (self, questID + ".questNum");
|
|
|
|
if (name == "quest")
|
|
{
|
|
quests.clearQuestLocationTarget (self, null, name);
|
|
}
|
|
|
|
if (name == "spawnGuy")
|
|
{
|
|
removeLocationTarget(name);
|
|
location spawn = getLocationObjVar (self, questID + ".questLoc" );
|
|
string toSpawn = dataTableGetString (datatable, 7, questNum);
|
|
string bldgName = dataTableGetString (datatable, 8, questNum);
|
|
string bldgScript = dataTableGetString (datatable, 9, questNum);
|
|
obj_id bldg = createObject (toSpawn, spawn);
|
|
attachScript (bldg, bldgScript);
|
|
setObjVar (bldg, "player", self);
|
|
setObjVar (self, questID + ".bldg", bldg);
|
|
setObjVar (bldg, "quest_table", datatable);
|
|
setObjVar (bldg, "questNum", questNum);
|
|
setName (bldg, bldgName);
|
|
createGuards(bldg);
|
|
}
|
|
if (name == "home")
|
|
{
|
|
quests.clearQuestLocationTarget (self, null, name);
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler finishQuest()
|
|
{
|
|
string datatable = getStringObjVar (self, "quest_table");
|
|
string gatingString = dataTableGetString (datatable, 2, 1);
|
|
int gating = getIntObjVar (self, gatingString);
|
|
string questID = dataTableGetString (datatable, 3, 1);
|
|
int questNum = getIntObjVar (self, questID + ".questNum");
|
|
location home = getLocationObjVar (self, questID + ".home");
|
|
setObjVar (self, questID + ".done", 1);
|
|
quests.addQuestLocationTarget ( self, null, "home", home, 10);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
void createGuards(obj_id bldg)
|
|
{
|
|
location g1 = getLocation(bldg);
|
|
g1.x = g1.x + 10;
|
|
location g2 = getLocation(bldg);
|
|
g2.x = g2.x - 10;
|
|
location g3 = getLocation (bldg);
|
|
g3.z = g3.z - 10;
|
|
location g4 = getLocation (bldg);
|
|
g4.z = g4.z + 10;
|
|
obj_id guard1 = create.object ("thug", g1);
|
|
obj_id guard2 = create.object ("thug", g2);
|
|
obj_id guard3 = create.object ("thug", g3);
|
|
obj_id guard4 = create.object ("thug", g4);
|
|
setUpNpc (guard1);
|
|
setUpNpc (guard2);
|
|
setUpNpc (guard3);
|
|
setUpNpc (guard4);
|
|
factions.setFaction (guard1, "valarian");
|
|
factions.setFaction (guard2, "valarian");
|
|
factions.setFaction (guard3, "valarian");
|
|
factions.setFaction (guard4, "valarian");
|
|
setObjVar (bldg, "guard1", guard1);
|
|
setObjVar (bldg, "guard2", guard2);
|
|
setObjVar (bldg, "guard3", guard3);
|
|
setObjVar (bldg, "guard4", guard4);
|
|
return;
|
|
}
|
|
|
|
void setUpNpc (obj_id newNpc)
|
|
{
|
|
return;
|
|
} |