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; }