Files
dsrc/sku.0/sys.server/compiled/game/script/library/fs_quests_sad.java
2018-06-07 00:32:29 +01:00

278 lines
9.6 KiB
Java
Executable File

package script.library;
import script.obj_id;
public class fs_quests_sad extends script.base_script
{
public fs_quests_sad()
{
}
public static final String SAD_OBJVAR_TASK_ACTIVE = "fs_quest_sad.task_active";
public static final String SAD_OBJVAR_TIMESTAMP = "fs_quest_sad.timestamp";
public static final String SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP = "fs_quest_sad.taken_since_timestamp";
public static final int SAD_MAX_IN_TIME_PERIOD = 3;
public static final String SAD_OBJVAR_WAYPOINT = "fs_quest_sad.waypoint";
public static final String SAD_OBJVAR_MASTER_THEATER = "fs_quest_sad.theater";
public static final String SAD_OBJVAR_KILLABLE = "fs_quest_sad.quantity_killable";
public static int getTimePeriod() throws InterruptedException
{
int timePeriod;
String setting = getConfigSetting("GameServer", "forceSensitiveSadTimeRestrict");
if (setting != null)
{
timePeriod = Integer.parseInt(setting);
}
else
{
timePeriod = 24 * 60 * 60;
}
return timePeriod;
}
public static boolean hasTask(obj_id player) throws InterruptedException
{
for (int i = 0; i < 8; i++)
{
if (quests.isActive("fs_quests_sad_task" + i, player))
{
return true;
}
}
return false;
}
public static boolean hasTask2(obj_id player) throws InterruptedException
{
for (int i = 0; i < 8; i++)
{
if (quests.isActive("fs_quests_sad2_task" + i, player))
{
return true;
}
}
return false;
}
public static boolean hasExceededTaskLimit(obj_id player) throws InterruptedException
{
if (hasObjVar(player, SAD_OBJVAR_TIMESTAMP))
{
int lastTimestamp = utils.getIntObjVar(player, SAD_OBJVAR_TIMESTAMP);
int takenSinceTimestamp = utils.getIntObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP);
int curTime = getGameTime();
if ((curTime - lastTimestamp < getTimePeriod()) && (takenSinceTimestamp >= SAD_MAX_IN_TIME_PERIOD))
{
return true;
}
}
return false;
}
public static void recordTookTask(obj_id player) throws InterruptedException
{
LOG("newquests", "recordTookTask");
int curTime = getGameTime();
if (hasObjVar(player, SAD_OBJVAR_TIMESTAMP))
{
int lastTimestamp = utils.getIntObjVar(player, SAD_OBJVAR_TIMESTAMP);
int takenSinceTimestamp = utils.getIntObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP);
if (curTime - lastTimestamp > getTimePeriod())
{
utils.setObjVar(player, SAD_OBJVAR_TIMESTAMP, curTime);
utils.setObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP, 1);
}
else
{
utils.setObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP, ++takenSinceTimestamp);
}
}
else
{
utils.setObjVar(player, SAD_OBJVAR_TIMESTAMP, curTime);
utils.setObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP, 1);
}
return;
}
public static void recordTaskSuccess(obj_id player) throws InterruptedException
{
LOG("newquests", "recordTaskSuccess");
return;
}
public static void recordTaskFailure(obj_id player) throws InterruptedException
{
LOG("newquests", "recordTaskFailure");
return;
}
public static boolean hasCompletedAllTasks(obj_id player) throws InterruptedException
{
LOG("newquests", "hasCompletedAllTasks");
return (quests.isComplete("fs_quests_sad_finish", player));
}
public static boolean hasCompletedAllTasks2(obj_id player) throws InterruptedException
{
LOG("newquests", "hasCompletedAllTasks");
return (quests.isComplete("fs_quests_sad2_finish", player));
}
public static int getNumberTasksCompleted(obj_id player) throws InterruptedException
{
LOG("newquests", "getNumberTasksCompleted");
if (quests.isComplete("fs_quests_sad_task8", player))
{
return 7;
}
else if (quests.isComplete("fs_quests_sad_task7", player))
{
return 6;
}
else if (quests.isComplete("fs_quests_sad_task6", player))
{
return 5;
}
else if (quests.isComplete("fs_quests_sad_task5", player))
{
return 4;
}
else if (quests.isComplete("fs_quests_sad_task4", player))
{
return 3;
}
else if (quests.isComplete("fs_quests_sad_task3", player))
{
return 2;
}
else if (quests.isComplete("fs_quests_sad_task2", player))
{
return 1;
}
else if (quests.isComplete("fs_quests_sad_task1", player))
{
return 0;
}
else
{
return -1;
}
}
public static int getNumberTasksCompleted2(obj_id player) throws InterruptedException
{
LOG("newquests", "getNumberTasksCompleted");
if (quests.isComplete("fs_quests_sad2_task8", player))
{
return 7;
}
else if (quests.isComplete("fs_quests_sad2_task7", player))
{
return 6;
}
else if (quests.isComplete("fs_quests_sad2_task6", player))
{
return 5;
}
else if (quests.isComplete("fs_quests_sad2_task5", player))
{
return 4;
}
else if (quests.isComplete("fs_quests_sad2_task4", player))
{
return 3;
}
else if (quests.isComplete("fs_quests_sad2_task3", player))
{
return 2;
}
else if (quests.isComplete("fs_quests_sad2_task2", player))
{
return 1;
}
else if (quests.isComplete("fs_quests_sad2_task1", player))
{
return 0;
}
else
{
return -1;
}
}
public static void performEndOfQuest(obj_id player) throws InterruptedException
{
cleanup(player);
fs_quests.unlockBranch(player, "force_sensitive_combat_prowess_melee_speed");
fs_quests.setQuestCompleted(player, "force_sensitive_combat_prowess_melee_speed");
}
public static void performEndOfQuest2(obj_id player) throws InterruptedException
{
cleanup(player);
fs_quests.unlockBranch(player, "force_sensitive_combat_prowess_ranged_defense");
fs_quests.setQuestCompleted(player, "force_sensitive_combat_prowess_ranged_defense");
}
public static void cleanup(obj_id player) throws InterruptedException
{
int x = 0;
for (x = 1; x < 9; x++)
{
if (hasObjVar(player, "quest.fs_quests_sad2_return" + x + ".waypoint"))
{
obj_id point = getObjIdObjVar(player, "quest.fs_quests_sad2_return" + x + ".waypoint");
destroyWaypointInDatapad(point, player);
removeObjVar(player, "quest.fs_quests_sad2_return" + x + ".waypoint");
}
}
for (x = 1; x < 9; x++)
{
if (hasObjVar(player, "quest.fs_quests_sad_return" + x + ".waypoint"))
{
obj_id point2 = getObjIdObjVar(player, "quest.fs_quests_sad_return" + x + ".waypoint");
destroyWaypointInDatapad(point2, player);
removeObjVar(player, "quest.fs_quests_sad_return" + x + ".waypoint");
}
}
if (hasObjVar(player, SAD_OBJVAR_WAYPOINT))
{
obj_id wp = getObjIdObjVar(player, SAD_OBJVAR_WAYPOINT);
destroyWaypointInDatapad(wp, player);
removeObjVar(player, SAD_OBJVAR_WAYPOINT);
}
if (hasObjVar(player, SAD_OBJVAR_TASK_ACTIVE))
{
removeObjVar(player, SAD_OBJVAR_TASK_ACTIVE);
}
if (hasObjVar(player, SAD_OBJVAR_TIMESTAMP))
{
removeObjVar(player, SAD_OBJVAR_TIMESTAMP);
}
if (hasObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP))
{
removeObjVar(player, SAD_OBJVAR_TAKEN_SINCE_TIMESTAMP);
}
if (hasObjVar(player, SAD_OBJVAR_KILLABLE))
{
removeObjVar(player, SAD_OBJVAR_KILLABLE);
}
if (hasObjVar(player, geiger.OBJVAR_GEIGER_FACTOR))
{
removeObjVar(player, geiger.OBJVAR_GEIGER_FACTOR);
}
if (hasObjVar(player, geiger.OBJVAR_GEIGER_PID))
{
removeObjVar(player, geiger.OBJVAR_GEIGER_PID);
}
if (utils.hasScriptVar(player, geiger.SCRIPTVAR_GEIGER_LAST))
{
utils.removeScriptVar(player, geiger.SCRIPTVAR_GEIGER_LAST);
}
if (hasObjVar(player, SAD_OBJVAR_MASTER_THEATER))
{
removeObjVar(player, SAD_OBJVAR_MASTER_THEATER);
}
if (hasObjVar(player, geiger.OBJVAR_GEIGER_LOCATION))
{
removeObjVar(player, geiger.OBJVAR_GEIGER_LOCATION);
}
if (hasObjVar(player, geiger.OBJVAR_GEIGER_PID))
{
removeObjVar(player, geiger.OBJVAR_GEIGER_PID);
}
if (hasObjVar(player, geiger.OBJVAR_GEIGER_OBJECT))
{
removeObjVar(player, geiger.OBJVAR_GEIGER_OBJECT);
}
geiger.removeGeiger(player);
}
}