// ====================================================================== 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