mirror of
https://bitbucket.org/seefoe/dsrc.git
synced 2026-07-31 01:15:55 -04:00
113 lines
3.5 KiB
Plaintext
113 lines
3.5 KiB
Plaintext
include library.locations;
|
|
include library.quests;
|
|
include library.create;
|
|
|
|
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");
|
|
string target = dataTableGetString (datatable, 8, questNum);
|
|
int totalQuestNum = getIntObjVar (self, gatingString);
|
|
|
|
string file = "theme_park_jabba/quest_details";
|
|
string entry = questID + "_" + totalQuestNum;
|
|
location questLoc = getLocationObjVar (self, questID + ".questLoc");
|
|
quests.addThemeParkWaypoint( self, null, "quest", questLoc, 15, target, file, entry );
|
|
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);
|
|
obj_id vip = getObjIdObjVar (self, questID + ".vip");
|
|
messageTo (vip, "saySomething", null, 0, true);
|
|
}
|
|
|
|
if (name == "spawnGuy")
|
|
{
|
|
removeLocationTarget(name);
|
|
location spawn = getLocationObjVar (self, questID + ".questLoc");
|
|
string npcToSpawn = dataTableGetString (datatable, 7, questNum);
|
|
if (npcToSpawn == null)
|
|
{
|
|
debugSpeakMsg (self, "Can't find anyone to spawn");
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
string npcName = dataTableGetString (datatable, 8, questNum);
|
|
string npcScript = dataTableGetString (datatable, 9, questNum);
|
|
obj_id npc = create.object (npcToSpawn, spawn);
|
|
attachScript (npc, npcScript);
|
|
setObjVar (npc, "player", self);
|
|
setObjVar (self, questID + ".vip", npc);
|
|
setObjVar (npc, "quest_table", datatable);
|
|
setObjVar (npc, "questNum", questNum);
|
|
attachScript (npc, npcScript);
|
|
if (npcName != null)
|
|
{
|
|
setName (npc, npcName);
|
|
}
|
|
spawnExtras(self, spawn);
|
|
}
|
|
|
|
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");
|
|
string file = "theme_park_jabba/quest_details";
|
|
string entry = questID + "_return";
|
|
setObjVar (self, questID + ".done", 1);
|
|
quests.addThemeParkWaypoint( self, null, "home", home, 190, questID, file, entry );
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
void spawnExtras(obj_id self, location spawn)
|
|
{
|
|
string datatable = getStringObjVar (self, "quest_table");
|
|
|
|
string gatingString = dataTableGetString (datatable, 2, 1);
|
|
string questID = dataTableGetString (datatable, 3, 1);
|
|
int questNum = getIntObjVar (self, questID + ".questNum");
|
|
|
|
string[] max = dataTableGetStringColumnNoDefaults (datatable, questNum);
|
|
int maxTotal = max.length;
|
|
int x = 10;
|
|
|
|
while (x <= maxTotal)
|
|
{
|
|
string extra = dataTableGetString (datatable, x, questNum);
|
|
spawn.x = spawn.x + rand(1f,3f);
|
|
spawn.z = spawn.z + rand(1f,3f);
|
|
obj_id npc = create.object (extra, spawn);
|
|
x = x + 1;
|
|
}
|
|
}
|
|
|
|
|
|
trigger OnIncapacitated (obj_id killer)
|
|
{
|
|
return SCRIPT_CONTINUE;
|
|
} |