Files
dsrc/sku.0/sys.server/compiled/game/script/quest/task/survey.java
T

77 lines
3.5 KiB
Java
Executable File

package script.quest.task;
import script.dictionary;
import script.library.quests;
import script.library.utils;
import script.obj_id;
public class survey extends script.base_script
{
public survey()
{
}
public int surveyComplete(obj_id self, dictionary params) throws InterruptedException
{
LOG("newquests", "survey - surveyComplete()");
String resourceType = params.getString("resource_type");
String resourceClass = params.getString("resource_class");
float efficiency = params.getFloat("efficiency");
obj_id resource = params.getObjId("resource_type_object");
String[] activeTasks = quests.getActiveQuestsWithScript("quest.task.survey", self);
LOG("newquests", "checking " + activeTasks.length + " tasks for completion");
if (activeTasks != null && activeTasks.length > 0)
{
int iter = 0;
for (iter = 0; iter < activeTasks.length; ++iter)
{
LOG("newquests", "survey - Checking task " + activeTasks[iter] + " for completion");
float efficiencyParameter = 0.0f;
String objvarname = "quest." + activeTasks[iter] + ".parameter";
if (hasObjVar(self, objvarname))
{
efficiencyParameter = getFloatObjVar(self, objvarname);
}
else
{
String efficiencyParameterString = quests.getDataEntry(activeTasks[iter], "PARAMETER");
if (efficiencyParameterString != null && efficiencyParameterString.length() > 0)
{
efficiencyParameter = utils.stringToFloat(efficiencyParameterString);
}
}
LOG("newquests", "survey - " + activeTasks[iter] + " - efficiency=" + efficiency + " efficienty required=" + efficiencyParameter);
if (efficiency > efficiencyParameter)
{
String resourceTarget = null;
objvarname = "quest." + activeTasks[iter] + ".target";
if (hasObjVar(self, objvarname))
{
resourceTarget = getStringObjVar(self, objvarname);
}
else
{
resourceTarget = quests.getDataEntry(activeTasks[iter], "TARGET");
LOG("newquests", "survey - " + activeTasks[iter] + " efficiency qualifies, validating resource type " + getResourceName(resource) + " against target " + resourceTarget);
}
if (resourceTarget != null && resourceTarget.length() > 0)
{
if (isResourceDerivedFrom(resource, resourceTarget))
{
LOG("newquests", "survey - " + activeTasks[iter] + " qualifies! Completing task!");
objvarname = "quest.survey.efficency";
setObjVar(self, objvarname, efficiency);
quests.complete(activeTasks[iter], self, true);
break;
}
else
{
LOG("newquests", "survey - " + getResourceName(resource) + " does not match target " + resourceTarget);
}
}
}
}
}
return SCRIPT_CONTINUE;
}
}