Files
dsrc/sku.0/sys.server/compiled/game/script/working/cthurow/veterantest.script
T
2013-09-10 23:17:15 -07:00

183 lines
5.5 KiB
Plaintext

// ======================================================================
include library.features;
include library.sui;
include library.utils;
// ======================================================================
const string ANNOUNCEMENT_BOX_TITLE = "Announcement Box Title";
// ======================================================================
trigger OnAttach()
{
debugSpeakMsg(self, "veteran test script attached. Say \"lewt\" to get stuff.");
return SCRIPT_CONTINUE;
}
// ----------------------------------------------------------------------
trigger OnHearSpeech(obj_id speaker, string text)
{
if ( text == "lewt" )
{
checkForVeteranRewards(self);
}
return SCRIPT_CONTINUE;
}
// ----------------------------------------------------------------------
void checkForVeteranRewards(obj_id self)
{
/*
int nextPromptTime = getIntObjVar(self,"veteran_rewards.nextPromptTime");
debugSpeakMsg(self,"Game time: " + getGameTime() + " Next prompt time: " + nextPromptTime);
if (nextPromptTime==0 || nextPromptTime < getGameTime())
{
removeObjVar(self,"veteran_rewards.nextPromptTime");
string event = veteranGetNextEvent(self);
if (event != "")
{
utils.setScriptVar(self,"veteran_rewards.event",event);
Vector choices = new Vector();
choices.addElement("@veteran:claim_now");
choices.addElement("@veteran:launch_web_browser_for_event");
choices.addElement("@veteran:ask_next_login");
choices.addElement("@veteran:ask_one_day");
choices.addElement("@veteran:ask_one_week");
int pid = sui.listbox(self, self, veteranGetEventAnnouncement(event), sui.OK_ONLY, ANNOUNCEMENT_BOX_TITLE, choices, "handleRewardAnnouncement", true, true);
}
}
else
debugSpeakMsg(self,"Not ready to prompt");
*/
}
// ----------------------------------------------------------------------
messageHandler handleRewardAnnouncement()
{
string event = utils.getStringScriptVar(self, "veteran_rewards.event");
int rowSelected = sui.getListboxSelectedRow(params);
debugSpeakMsg(self,"In handleRewardAnnouncement. Row selected is " + rowSelected);
if (rowSelected==0)
chooseRewardForEvent(self, event);
else
{
if (rowSelected==1)
{
launchClientWebBrowser(self, veteranGetEventUrl(event));
checkForVeteranRewards(self);
}
if (rowSelected==2)
return SCRIPT_CONTINUE;
int waitForNextPrompt=0;
if (rowSelected==3)
waitForNextPrompt=24*60*60;
if (rowSelected==4)
waitForNextPrompt=7*24*60*60;
int gameTime = getGameTime();
int nextPromptTime = gameTime + waitForNextPrompt;
setObjVar(self,"veteran_rewards.nextPromptTime",nextPromptTime);
}
return SCRIPT_CONTINUE;
}
// ----------------------------------------------------------------------
void chooseRewardForEvent(obj_id self, string event)
{
//TODO: remove from ignored events
string[] rewardChoices = veteranGetRewardChoicesDescriptions( self, event );
string[] rewardChoicesTags = veteranGetRewardChoicesTags( self, event );
utils.setScriptVar(self,"veteran_rewards.event",event);
utils.setScriptVar(self, "veteran_rewards.rewardTags", rewardChoicesTags);
//TODO: what abour events that let you claim more than one reward
if (rewardChoices.length==0)
{
//TODO: what?
}
else if (rewardChoices.length==1)
{
veteranClaimReward(self, event, rewardChoicesTags[0]);
}
else
{
// multiple possibilities, display a list box with the choices
string[] choicesWithLaunchWeb = new string[rewardChoices.length+1];
choicesWithLaunchWeb[0] = "@veteran:launch_web_browser_for_event";
for (int i=0; i<rewardChoices.length; ++i)
choicesWithLaunchWeb[i+1]=rewardChoices[i];
int pid = sui.listbox(self, self, veteranGetEventDescription(event), sui.OK_CANCEL, sui.DEFAULT_TITLE, choicesWithLaunchWeb, "rewardSelectHandler", true, true);
if ( pid < 0 )
{
debugSpeakMsg(self, "Could not create sui reward list for player, error = " + pid);
}
}
}
// ----------------------------------------------------------------------
messageHandler rewardSelectHandler()
{
debugSpeakMsg(self, "In rewardSelectHandler message handler");
if ( (params == null) || (params.isEmpty()) )
{
return SCRIPT_CONTINUE;
}
int bp = sui.getIntButtonPressed(params);
int rowSelected = sui.getListboxSelectedRow(params);
if ( bp == sui.BP_CANCEL || rowSelected < 0)
{
debugSpeakMsg(self, "Cancel was pressed or no row was picked.");
return SCRIPT_CONTINUE;
}
string event = utils.getStringScriptVar(self, "veteran_rewards.event");
if (rowSelected==0)
{
launchClientWebBrowser(self, veteranGetEventUrl(event));
checkForVeteranRewards(self);
}
else
{
string[] rewardChoicesTags = utils.getStringArrayScriptVar(self, "veteran_rewards.rewardTags");
//TODO: range checking (how?)
debugSpeakMsg(self, "Choice is " + event + ":" + rewardChoicesTags[rowSelected-1]);
veteranClaimReward(self, event, rewardChoicesTags[rowSelected-1]);
}
return SCRIPT_CONTINUE;
// veteranGrantReward( self,
}
// ----------------------------------------------------------------------
messageHandler veteranItemGrantSucceeded()
{
debugSpeakMsg(self, "In veteranItemGrantSucceeded message handler");
sendSystemMessage(self, new string_id("veteran","item_grant_succeeded"));
checkForVeteranRewards(self);
return SCRIPT_CONTINUE;
}
// ----------------------------------------------------------------------
messageHandler veteranItemGrantFailed()
{
debugSpeakMsg(self, "In veteranItemGrantFailed message handler");
sendSystemMessage(self, new string_id("veteran","item_grant_failed"));
return SCRIPT_CONTINUE;
}
// ======================================================================