summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/Changelog.txt2
-rw-r--r--npc/kafras/cool_event_corp.txt127
-rw-r--r--npc/kafras/dts_warper.txt (renamed from npc/other/dts_warper.txt)1930
-rw-r--r--npc/scripts_athena.conf5
4 files changed, 1097 insertions, 967 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index 9b5beb808..fded7eee3 100644
--- a/npc/Changelog.txt
+++ b/npc/Changelog.txt
@@ -26,6 +26,8 @@ KarLaeda
Date Added
======
+2007/02/22
+ * Added official Hugel Cool Event Corp. Staff, thanks to Gepard [Lupus]
2007/02/21
* Fixed a parenthesis typo in the dance quest [ultramage]
* Dancer Job Quest v 3.0. Optimized, fixed typos, added missing dialogues [Lupus]
diff --git a/npc/kafras/cool_event_corp.txt b/npc/kafras/cool_event_corp.txt
new file mode 100644
index 000000000..935f72d72
--- /dev/null
+++ b/npc/kafras/cool_event_corp.txt
@@ -0,0 +1,127 @@
+//===== eAthena Script =======================================
+//= Cool Event Corp. Staff
+//===== By: ==================================================
+//= Gepard
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= eAthena
+//===== Description: =========================================
+//= Cool Event Corp. Staff (Save, Storage & Pushcart Service)
+//= in Hugel
+//===== Additional Comments: =================================
+//= 1.0 First version, iRO Sakray X.4 [Gepard]
+//= 1.1 Optimized, fixed a conditional bug [Lupus]
+//============================================================
+
+hugel.gat,88,168,4 script Cool Event Corp. Staff#hk 874,{
+
+ mes "[Cool Event Corp. Staff]";
+ mes "Welcome to Cool Event Corp.";
+ mes "Our staff is always working";
+ mes "to surpass your expactations";
+ mes "for quality service. So how";
+ mes "may I assist you today?";
+ next;
+
+ switch(select("Save:Use Storage:Rent a Pushcart:Cancel")){
+ case 1:
+ mes "[Cool Event Corp. Staff]";
+ mes "Your Respawn Point";
+ mes "has been saved here";
+ mes "in the village of Hugel.";
+ mes "Thank you for using the";
+ mes "Cool Event Corp. service~";
+ emotion e_thx;
+ savepoint "hugel.gat",96,155;
+ close;
+ case 2:
+ mes "[Cool Event Corp. Staff]";
+ if(basicskillcheck() || getskilllv(1) < 6){
+ mes "I'm sorry, but you";
+ mes "need the Novice's";
+ mes "Basic Skill Level 6 to";
+ mes "use the Storage Service.";
+ emotion e_sry;
+ close;
+ }
+ if(Zeny < 40){
+ mes "I'm sorry, but you don't";
+ mes "have enough Zeny to use";
+ mes "the Storage Service. Our";
+ mes "Storage access fee is 40 Zeny.";
+ emotion e_cash;
+ close;
+ }
+ set Zeny, Zeny - 40;
+ set RESRVPTS, RESRVPTS + 4;
+ mes "Let me open your personal";
+ mes "storage for you right away.";
+ mes "Thanks for supporting Cool";
+ mes "Event Corp. by using our";
+ mes "services. Have a good day~";
+ close2;
+ openstorage;
+ end;
+ case 3:
+ mes "[Cool Event Corp. Staff]";
+ if(baseClass != Job_Merchant){
+ mes "I'm sorry, but the";
+ mes "Pushcart rental service";
+ mes "is only available to Merchants,";
+ mes "Blacksmiths, White Smiths,";
+ mes "Alchemists and Creators.";
+ emotion e_sry;
+ close;
+ }
+ if(getskilllv(39) == 0){
+ mes "You can only rent a cart after";
+ mes "learning the Pushcart Skill.";
+ close;
+ }
+ if(checkcart() == 1){
+ mes "You already have";
+ mes "a Pushcart equipped.";
+ mes "Unfortunately, we can't";
+ mes "rent more than one to";
+ mes "each customer at a time.";
+ close;
+ }
+ if(countitem(7061)){
+ delitem 7061,1;
+ setcart;
+ close;
+ }
+ mes "The Pushcart rental";
+ mes "fee is 800 Zeny. Would";
+ mes "you like to rent a Pushcart?";
+ next;
+ if(select("Rent a Pushcart:Cancel") == 1){
+ if(Zeny < 800){
+ mes "[Cool Event Corp. Staff]";
+ mes "I'm sorry, but you";
+ mes "don't have enough";
+ mes "Zeny to pay the Pushcart";
+ mes "rental fee of 800 Zeny.";
+ emotion e_cash;
+ close;
+ } else {
+ set Zeny, Zeny - 800;
+ set RESRVPTS, RESRVPTS + 80;
+ setcart;
+ close;
+ }
+ }
+ close;
+ case 4:
+ default:
+ mes "[Cool Event Corp. Staff]";
+ mes "Cool Event Corp. is always";
+ mes "striving to provide the best";
+ mes "services for our customers.";
+ mes "Help us become the best by";
+ mes "providing us with your opinions";
+ mes "and honest feedback. Thank you.";
+ close;
+ }
+} \ No newline at end of file
diff --git a/npc/other/dts_warper.txt b/npc/kafras/dts_warper.txt
index 446b0de31..6eae8fe34 100644
--- a/npc/other/dts_warper.txt
+++ b/npc/kafras/dts_warper.txt
@@ -1,966 +1,966 @@
-//===== eAthena Script =======================================
-//= Dungeon Teleport Service
-//===== By: ==================================================
-//= Evera
-//===== Current Version: =====================================
-//= 2.3c
-//===== Compatible With: =====================================
-//= eAthena
-//===== Description: =========================================
-//= Cool Event Corp NPCs vs. Kafra Dungeon Teleport Service and voting system.
-//= This is a special event on official servers where there's a
-//= big competition between Kafra Corp. and Cool Event Corp.
-//= To warp to selected levels of certain dungeons.
-//= Also includes Cool Event Corp HQ NPCs.
-//===== Variables: ===========================================
-//=Server - $dtsvote = Variable for # of votes
-//= = Positive = Cool Corp winning
-//= = Negative = Kafra Corp winning
-//= $dts = Variable for DTS status
-//= = (1<<0) Election
-//= = (1<<1) Cool Corp Enabled
-//= = (1<<2) Kafra Enabled
-//= = (1<<3) No winner last election
-//= = (1<<4) Cool Corp won last election
-//= = (1<<5) Kafra won last election
-//= $dtsday = Week count for dts vote count, used for resetting players' votes
-//=Character - dtseligible = eligibility status, 0 not eligible yet, 1 eligible.
-//= = $dtsday used when MISC_QUEST|128, and signifies that person already voted.
-//= MISC_QUEST = |128 = eligible and voted.
-//=NPC Func. - arg(0) = 0, Cool Event Corp Voting Staff; 1, Kafra Corp Voting Staff
-//= arg(1) = Kafra only, Cool Corp script does not use. Changes illus for different sprites.
-//= = 0 = 4_f_kafra6 (yellow ponytail, classic outfit, spr 112)
-//= = 1 = 4_f_kafra5 (pink hair, classic outfit, spr 113)
-//= = 2 = 4_f_kafra4 (orange short hair, classic outfit, spr 114)
-//= = 3 = 4_f_kafra3 (brown bangs, classic outfit, spr 115)
-//= = 4 = 4_f_kafra2 (brown ponytale, classic outfit, spr 116)
-//= = 5 = 4_f_kafra1 (blue hair, classic outfit, spr 117)
-//= = 6 = 4_f_agentkafra (purp hair, black outfit, spr 859)
-//= = 7 = 4_f_kafra8 (blue hair, brown outfit, spr 860)
-//= = 8 = 4_f_kafra9 (red hair, brown outfit, spr 861)
-//=Temporary - @dtstemp = Temporary buffer, used in GM vote-fixing
-//= @dtstemps$ = Temporary buffer, like above, but a string.
-//= $@dtstempg = Temporary buffer, but global
-//===== Additional Comments: =================================
-//= Some unofficial translations, some unofficial dungeon warps
-//= Also includes unofficial GM-enabled tweaking for script
-//= Includes NPCs in Cool Event Corp headquarters
-//= If new locations are found of this NPC, please report on forums
-//= http://www.eathena.ws/board/index.php?showforum=106
-//= Base level 60 required to vote
-//===== Version History: ====================================
-//= 1.0 Initial release [Evera]
-//= 1.1 SVN release, removed from major town (found true info after research),
-//= put more arg(2) parameters, fixed a few bugs [Evera]
-//= 1.2 Mushed some variables together, optimized a bit [Evera]
-//= 1.3 Removed selfconfig [Evera]
-//= 1.4 Changed global variables to read from 3 global variables, updated names,
-//= fixed array bug [Evera]
-//= 1.5 Mushed voting varialbes into 1 variable. [Evera]
-//= 1.6 Removed Duplicates [Silent]
-//= 1.7 Fixed bug of DTS_Admin not running by itself [Evera]
-//= 1.8 Changed requirement to lvl 60 [Evera]
-//= 1.9 Removed global eligibility option [Evera]
-//= 2.0 Fixed zeny bug [Evera]
-//= 2.1 Fixed headers with and updated with newer information [Evera]
-//= 2.2 Changed dtseligible 2 to MISC_QUEST|128, to clean up variable usage. [Evera]
-//= Also added F_ClearGarbage function to the scripts. [Evera]
-//= 2.3 Changed dtseligible to be $dtsday when MISC_QUEST|128
-//= Added $dtsday for vote session counter
-//= Fixed bug that involved having both warpers enabled at the same time. [Evera]
-//= New $dtsday system and bug fix[Evera]
-//= 2.3a fixed 2 bugs with comparision [Lupus]
-//= 2.3b corrected Glast warp coords [Lupus] 2.3c Bailand -> Bayalan
-//============================================================
-
-//Yuno
-yuno.gat,153,191,4 script Cool Event Voting Staff::CoolEventVotingStaff01 874,{
- callfunc "F_DTS_Warp",0,0;
-}
-yuno.gat,162,191,6 script Kafra Voting Staff#01 861,{
- callfunc "F_DTS_Warp",1,8;
-}
-//Lighthalzen
-lighthalzen.gat,154,60,6 script Cool Event Voting Staff::CoolEventVotingStaff02 874,{
- callfunc "F_DTS_Warp",0,0;
-}
-//Prontera
-prontera.gat,147,125,4 script Cool Event Voting Staff::CoolEventVotingStaff03 874,{
- callfunc "F_DTS_Warp",0,0;
-}
-prontera.gat,164,125,6 script Kafra Voting Staff#02 115,{
- callfunc "F_DTS_Warp",1,3;
-}
-
-//Cool Event Staff Headquarters NPCs
-//Kudiuu (Maintenance Guy)
-lhz_in02.gat,20,274,6 script Maintenance Guy 851,{
- mes "[Kudiuu]";
- mes "Holy...!";
- mes "Will this place";
- mes "ever get cleaned up?!";
- mes "*Cough cough* There's";
- mes "so much dust here, it's";
- mes "almost a health hazard!";
- close;
-}
-//Cesuna (Zondaman at desk)
-lhz_in02.gat,36,284,1 script Cool Event Staff#01 874,{
- mes "[Cesuna]";
- mes "Ack! I'm totally";
- mes "swamped with all this";
- mes "work! But I don't wannna";
- mes "do any of it. That's it!";
- mes "I totally need a break";
- next;
- mes "[Cesuna]";
- mes "*Sigh...*";
- mes "I wonder if Saera";
- mes "would ever consider";
- mes "going out with me?";
- mes "That would be nice~";
- close;
-}
-//Jellarin (Event planner)
-lhz_in02.gat,40,279,3 script Event Planner 833,{
- mes "[Jellarin]";
- mes "I don't like this.";
- mes "But I don't like that";
- mes "idea either. What will";
- mes "I do for a new event, eh?";
- next;
- mes "[Jellarin]";
- mes "I need something";
- mes "major, something that'll";
- mes "really shake up the world,";
- mes "something epochal, but what?";
- mes "Hey, do you have any ideas";
- close;
-}
-//Baoto (Cool Event Manager)
-lhz_in02.gat,110,283,5 script Cool Event Manager 853,{
- mes "[Baoto]";
- mes "Hmmm...";
- mes "The employees seem";
- mes "to be having too much";
- mes "fun amongst themselves";
- mes "recently. This does not";
- mes "bode well at all...";
- next;
- mes "[Baoto]";
- mes "It looks like I'm";
- mes "just going to have to";
- mes "start cracking that whip";
- mes "more often and much";
- mes "harder. Ha ha ha ha!";
- close;
-}
-//Saera (Secretary), contains GM menu
-lhz_in02.gat,36,274,3 script Cool Event Staff#02 831,{
- callfunc "F_ClearGarbage"; //Clear outdated, unused variables
- if($dts == 0){
- set $dts,$dts|(1<<0); //Sets NPCs to election mode if first time running
- set $dts,$dts|(1<<3);
- }
- if($dts&(1<<1) && $dts&(1<<2) || $dts&(1<<0) && $dts&(1<<1) || $dts&(1<<0) && $dts&(1<<2)){
- if($dts&(1<<0)) set $dts,$dts&~(1<<0);
- if($dts&(1<<1)) set $dts,$dts&~(1<<1);
- if($dts&(1<<2)) set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<0);
- }
- if($dts&(1<<4) && $dts&(1<<5) || $dts&(1<<3) && $dts&(1<<4) || $dts&(1<<3) && $dts&(1<<5)){
- if($dts&(1<<3)) set $dts,$dts&~(1<<3);
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- set $dts,$dts|(1<<3);
- }
- mes "[Saera]";
- mes "Welcome to the";
- mes "temporary headquarters";
- mes "of Cool Event Corporation";
- mes "How may I help you today?";
- next;
- if(getgmlevel()>=40){ //Unofficial Text, GM-configurable settings for Event (GM level above 40 required)
- mes "[Saera]";
- mes "Why, I didn't even";
- mes "notice you there,";
- mes strcharinfo(0)+". What would";
- mes "you like to do today?";
- next;
- menu "Fix Vote",Lfixvote,
- "Set current teleporter",Lsettele,
- "Set last election winner",Lsetlast,
- "Manually run vote check",Lmanuvotecheck,
- "Normal menu please",-;
- mes "[Saera]";
- mes "Ok";
- next;
- }
- menu "Temporary headquarters?",Ltemphead,
- "Voting",Lvoting,"No, thanks.",Lnothx;
-
- Ltemphead:
- mes "[Saera]";
- mes "Our headquarters building";
- mes "is currently undergoing";
- mes "reconstruction, so we are";
- mes "basing our operations in";
- mes "this place for the meantime";
- close;
-
- Lvoting:
- mes "[Saera]";
- mes "Currently, Kafra Corporation";
- mes "and Cool Event Corp are working";
- mes "on a collaborative program that";
- mes "will provide direct teleport";
- mes "services to dungeons.";
- next;
- mes "[Saera]";
- mes "Due to technical issues,";
- mes "both companies cannot provide";
- mes "teleport services to the same";
- mes "dungeon. Therefore, we will be";
- mes "selecting our valued customers";
- mes "to choose the company they want.";
- next;
- if((dtseligible == 0 || dtseligible == 3) && baselevel >= 60 && MISC_QUEST&128 == 0) set dtseligible,1;
- //Clear previous var of dtseligible,3 being tried for eligibility already
- if(dtseligible != $dtsday && baselevel >= 60 && MISC_QUEST&128){
- set MISC_QUEST,MISC_QUEST&~128;
- set dtseligible,1;
- }
- switch(dtseligible){
- default:
- mes "[Saera]";
- mes "Only a limited number of";
- mes "voters will be chosen, so";
- mes "you can check your voting";
- mes "eligibility at the headquarters";
- mes "of both participating companies.";
- mes "Thank you for your patronage~";
- close;
- break;
- case 1:
- mes "[Saera]";
- mes "It appears that you are";
- mes "eligible to vote";
- mes "so please cast your";
- mes "vote at any Voting Staff";
- mes "representative. Thank you~";
- close;
- break;
- case 2:
- mes "[Saera]";
- mes "You are eligible to vote, but";
- mes "you have already voted. Thank";
- mes "you for your participation";
- close;
- break;
- }
-
- Lnothx:
- mes "[Saera]";
- mes "Thank you.";
- mes "Have a good day.";
- close;
- //GM options start
- Lfixvote: //Fix Vote
- mes "[Saera]";
- mes "Umm, sure..";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
- if($dtsv == 0) mes "The vote is currently tied.";
- mes "To who would you like to give votes to?";
- next;
- menu "Kafra",-,"Cool Event Corp",Lfixcool;
-
- Lfixkafra: //Fixing vote for Kafra
- mes "[Saera]";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes."; //multiplied by -1 because var is negative
- if($dtsv == 0) mes "The vote is currently tied.";
- mes "Please input the amount you wish to give to Kafra Corp";
- input @dtstemp; //Set buffer for Kafra vote
- next;
- mes "[Saera]";
- mes "You inputted "+@dtstemp+" for Kafra";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
- if($dtsv == 0) mes "The vote is currently tied.";
- mes "Are you sure you would like to";
- mes "make these changes?";
- next;
- menu "Yes",-,"No",Lnothx;
- set $dtsv,$dtsv-@dtstemp; //Set buffer to Kafra vote
- mes "[Saera]";
- mes "Okay, you fixed the vote";
- mes "of Kafra Corp.";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
- if($dtsv == 0) mes "The vote is currently tied.";
- close;
-
- Lfixcool: //Fixing vote for cool corp
- mes "[Saera]";
- mes "Let me find the papers...";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
- if($dtsv == 0) mes "The vote is currently tied.";
- mes "Please input new vote for Cool Event Corp";
- input @dtstemp; //Set buffer for Cool vote
- next;
- mes "[Saera]";
- mes "You inputted "+@dtstemp+" for Cool Event Corp";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
- if($dtsv == 0) mes "The vote is currently tied.";
- mes "Are you sure you would like to";
- mes "make these changes?";
- next;
- menu "Yes",-,"No",Lnothx; //Confirmaiton
- set $dtsv,@dtsv+@dtstemp; //Set buffer to Cool vote
- mes "[Saera]";
- mes "Okay, you fixed the vote";
- mes "of Cool Event Corp.";
- if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
- if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
- if($dtsv == 0) mes "The vote is currently tied.";
- close;
-
- Lsettele: //Set current DTS tele
- mes "[Saera]";
- mes "Type Kafra for Kafra-enabled warp,";
- mes "Cool for Cool Event Corp-enabled";
- mes "warp ,Election for election mode,";
- mes "or Cancel to cancel.";
- if($dts&(1<<0)) mes "The election is currently in election mode.";
- if($dts&(1<<1)) mes "Cool Event Corp is currently the DTS warper.";
- if($dts&(1<<2)) mes "Kafra Corp is currently the DTS warper.";
- next;
- input @dtstemps$; //Typed in choices to prevent mistakes
- mes "Let me find the papers...";
- next;
- if(@dtstemps$ == "Election" || @dtstemps$ == "election"){
- if($dts&(1<<1)){
- set $dts,$dts&~(1<<1); //Removes previous winner
- set $dts,$dts|(1<<0); //Changes status to election
- }
- if($dts&(1<<2)){
- set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<0);
- }
- mes "[Saera]";
- mes "Set to election mode.";
- close;
- }
- if(@dtstemps$ == "Cool" || @dtstemps$ == "cool"){
- if($dts&(1<<0)){
- set $dts,$dts&~(1<<0);
- set $dts,$dts|(1<<1);
- }
- if($dts&(1<<2)){
- set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<1);
- }
- mes "[Saera]";
- mes "Cool Event Corp. is now the DTS warper.";
- close;
- }
- if(@dtstemps$ == "Kafra" || @dtstemps$ == "kafra"){
- if($dts&(1<<1)){
- set $dts,$dts&~(1<<1);
- set $dts,$dts|(1<<2);
- }
- if($dts&(1<<0)){
- set $dts,$dts&~(1<<0);
- set $dts,$dts|(1<<2);
- }
- mes "[Saera]";
- mes "Kafra Corp. is now the DTS warper.";
- close;
- }
- if(@dtstemps$ == "Cancel" || @dtstemps$ == "cancel") goto Lnothx;
- mes "[Saera]";
- mes "Please input a correct name for the election";
- next;
- goto Lsettele;
-
- Lsetlast: //Set last winner
- mes "[Saera]";
- mes "Type Kafra for election records to show Kafra,";
- mes "Cool for Cool for election records to show Cool Event Corp,";
- mes "None for no winner in election records,";
- mes "or Cancel to cancel.";
- if($dts&(1<<3)) mes "There was no previous winner";
- if($dts&(1<<4)) mes "Cool Event Corp was the last winner";
- if($dts&(1<<5)) mes "Kafra Corp was the last winner";
- next;
- input @dtstemps$;
- mes "[Saera]";
- mes "Let me find the papers...";
- next;
- if(@dtstemps$ == "None" || @dtstemps$ == "none"){
- if($dts&(1<<4)){
- set $dts,$dts&~(1<<4); //removes last winner
- set $dts,$dts|(1<<3); //sets current last winner
- }
- if($dts&(1<<5)){
- set $dts,$dts&~(1<<5);
- set $dts,$dts|(1<<3);
- }
- mes "[Saera]";
- mes "Set records to show no previous winner.";
- close;
- }
- if(@dtstemps$ == "Cool" || @dtstemps$ == "cool"){
- if($dts&(1<<3)){
- set $dts,$dts&~(1<<3);
- set $dts,$dts|(1<<4);
- }
- if($dts&(1<<5)){
- set $dts,$dts&~(1<<5);
- set $dts,$dts|(1<<4);
- }
- mes "[Saera]";
- mes "Cool Event Corp. is now the previous winner.";
- close;
- }
- if(@dtstemps$ == "Kafra" || @dtstemps$ == "kafra"){
- if($dts&(1<<3)){
- set $dts,$dts&~(1<<3);
- set $dts,$dts|(1<<5);
- }
- if($dts&(1<<4)){
- set $dts,$dts&~(1<<4);
- set $dts,$dts|(1<<5);
- }
- mes "[Saera]";
- mes "Kafra Corp. is now the previous winner.";
- close;
- }
- if(@dtstemps$ == "Cancel" || @dtstemps$ == "cancel") goto Lnothx;
- mes "[Saera]";
- mes "Please input a correct name";
- mes "for previous winner";
- next;
- goto Lsetlast;
-
- Lmanuvotecheck:
- mes "[Saera]";
- mes "Are you sure you would like to run";
- mes "the vote check again?";
- next;
- menu "Yes",Lmanuvoteyes,"No",Lnothx;
-
- Lmanuvoteyes:
- if($dtsday<4 || $dtsday>=100) set $dtsday,4;
- else set $dtsday,$dtsday+1;
- if($dts&(1<<1) && $dts&(1<<2) || $dts&(1<<0) && $dts&(1<<1) || $dts&(1<<0) && $dts&(1<<2)){
- if($dts&(1<<0)) set $dts,$dts&~(1<<0);
- if($dts&(1<<1)) set $dts,$dts&~(1<<1);
- if($dts&(1<<2)) set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<0);
- }
- if($dts&(1<<4) && $dts&(1<<5) || $dts&(1<<3) && $dts&(1<<4) || $dts&(1<<3) && $dts&(1<<5)){
- if($dts&(1<<3)) set $dts,$dts&~(1<<3);
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- set $dts,$dts|(1<<3);
- }
- if($dtsv == 0){
- set $@dtstemp,rand(1,2);
- if($@dtstemp == 1) set $dtsv,$dtsv+100;
- else set $dtsv,$dtsv-100;
- }
- if($dtsv > 0){
- if($dts&(1<<3)) set $dts,$dts&~(1<<3); //removes last winner varialbes
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- if($dts&(1<<0)){
- set $dts,$dts&~(1<<0); //removes winner variable
- set $dts,$dts|(1<<3); //sets last winner varialbe
- set $dts,$dts|(1<<1); //sets current winner variable
- }
- if($dts&(1<<1)) set $dts,$dts|(1<<4);
- if($dts&(1<<2)){
- set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<1);
- set $dts,$dts|(1<<5);
- }
- set $dtsv,0;
- }
- else{
- if($dts&(1<<3)) set $dts,$dts&~(1<<3);
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- if($dts&(1<<0)){
- set $dts,$dts&~(1<<0);
- set $dts,$dts|(1<<2);
- set $dts,$dts|(1<<3);
- }
- if($dts&(1<<1)){
- set $dts,$dts&~(1<<1);
- set $dts,$dts|(1<<2);
- set $dts,$dts|(1<<4);
- }
- if($dts&(1<<2)) set $dts,$dts|(1<<5);
- set $dtsv,0;
- }
- mes "[Saera]";
- mes "Vote check run again.";
- if($dts&(1<<0)) mes "The election is currently in election mode.";
- if($dts&(1<<1)) mes "Cool Event Corp is currently the DTS warper.";
- if($dts&(1<<2)) mes "Kafra Corp is currently the DTS warper.";
- close;
-}
-
-//Function for Voting Staff NPC
-function script F_DTS_Warp {
- callfunc "F_ClearGarbage"; //Clear outdated, unused variables
- if($dts == 0){ //Sets NPCs to election mode if first time running
- set $dts,$dts|(1<<0);
- set $dts,$dts|(1<<3);
- }
- if((dtseligible == 0 || dtseligible == 3) && baselevel >= 60 && MISC_QUEST&128 == 0) set dtseligible,1; //Clear previous var of dtseligible,3 being tried for eligibility already
- if(dtseligible != $dtsday && baselevel >= 60 && MISC_QUEST&128){
- set MISC_QUEST,MISC_QUEST&~128;
- set dtseligible,1;
- }
- switch(getarg(0)){
- case 0:
- cutin "zonda_01",2;
- mes "[Cool Event Corp. Voting Staff]";
- mes "Hello! Don't forget to make";
- mes "your voice be heard and make";
- mes "sure you vote in the elections";
- mes "between Cool Event Corp. and";
- mes "Kafra Corporation for control of";
- mes "the Dungeon Teleport Service!";
- break;
- case 1:
- switch(getarg(1)){
- case 0: cutin "kafra_06",2; break; //Finding arguments to find which illust to use
- case 1: cutin "kafra_05",2; break; //Used Red hair "kafra_09" for black outfit kafra
- case 2: cutin "kafra_04",2; break; //because I couldn't find a suitable illust
- case 3: cutin "kafra_03",2; break;
- case 4: cutin "kafra_02",2; break;
- case 5: cutin "kafra_01",2; break;
- case 6: cutin "kafra_09",2; break;
- case 7: cutin "kafra_08",2; break;
- case 8: cutin "kafra_09",2; break;
- default: cutin "kafra_09",2; break;
- }
- mes "[Kafra Voting Staff]";
- mes "Greetings, adventurer.";
- mes "As you may be aware, we";
- mes "are holding an election to";
- mes "provide the Dungeon Teleport";
- mes "Service. How may I help you?";
- break;
- }
- next;
- menu "Reason for Election",Lelection,"Cast a Vote",Lvote,
- "Use Teleport Service",Lteleport,"Cancel",Lcancel;
-
- Lelection: //Reason for election explanation
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]";
- mes "Cool Event Corp. has been";
- mes "planning to provide a new";
- mes "Dungeon Teleport Service to";
- mes "its customers, a service not";
- mes "already provided by the Kafra";
- mes "Corporation. However...";
- next;
- mes "[Cool Event Corp. Voting Staff]";
- mes "Kafra Corporation, which";
- mes "already monopolizes the";
- mes "public teleportation market,";
- mes "actually also had plans to";
- mes "provide a similar service.";
- next;
- mes "[Cool Event Corp. Voting Staff]";
- mes "Because of technological";
- mes "limitations, only one company";
- mes "can be chosen as the provider";
- mes "of this Dungeon Teleport Service.";
- mes "Hence, we will let the customers";
- mes "decide through these elections.";
- next;
- mes "[Cool Event Corp. Voting Staff]";
- mes "Multiple elections will be";
- mes "held so that our customers";
- mes "can test out the special services";
- mes "of each company for themselves.";
- mes "However, keep in mind that you";
- mes "must be eligible in order to vote.";
- next;
- mes "[Cool Event Corp. Voting Staff]";
- mes "For voter eligibility";
- mes "details, please visit our";
- mes "headquarters in the city of";
- mes "Lighthalzen located in the";
- mes "Schwarzwald Republic.";
- mes "Thank you for your time.";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "Cool Event Corp and the";
- mes "Kafra Corporation have both";
- mes "been planning to provide a";
- mes "Teleport Service to dungeons.";
- next;
- mes "[Kafra Voting Staff]";
- mes "But due to technological";
- mes "limitations, only one company";
- mes "can serve as provider for this";
- mes "Dungeon Teleport Service at a";
- mes "time. There, both companies have";
- mes "agreed to hold special elections";
- next;
- mes "[Kafra Voting Staff]";
- mes "Each company has its own";
- mes "policies and guarantees in";
- mes "regards to the Dungeon Teleport";
- mes "Service, and in this election, the";
- mes "customers will ultimately decide";
- mes "and choose what's best for them.";
- next;
- mes "[Kafra Voting Staff]";
- mes "For now, the Dungeon";
- mes "Teleport Service will be";
- mes "provided in a series of trial";
- mes "periods. This way, customers can";
- mes "see the benefits of both companies";
- mes "before making the final decision";
- next;
- mes "[Kafra Voting Staff]";
- mes "If you are qualified,";
- mes "please vote in each election";
- mes "to decide which company will";
- mes "provide the Dungeon Teleport";
- mes "Service for the next trial period.";
- mes "Thank you for your support~";
- break;
- }
- goto Lend;
-
- Lvote: //If you clicked you wanted to vote
- if(dtseligible == 1) goto Leligible; //Var check if eligible
-
- Lnoteligible: //Text displayed if wanted to vote, but not eligible/voted
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]";
- mes "I'm sorry, but you are not";
- mes "eligible to vote at this time.";
- mes "Please visit our headquarters";
- mes "in Lighthalzen for information";
- mes "related to acquiring voting";
- mes "rights. Thank you for your time.";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "Oh, I'm so sorry, but you";
- mes "are currently not qualified to";
- mes "vote. For voting qualification";
- mes "information, please visit the";
- mes "Al De Baran Kafra Headquarters.";
- mes "Thank you and have a nice day.";
- break;
- }
- goto Lend;
-
- Leligible: //Text displayed if eligible to vote
- if(MISC_QUEST&128 && $dtsday == dtseligible) goto Lnoteligible; //Var check if voted
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]"; //Unofficial text
- mes "Checking your credentials, you";
- mes "are able to vote for the";
- mes "Dungeon Teleport Service";
- mes "elections. Who would you like";
- mes "to vote for?";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "It appears that you qualify";
- mes "to vote for the Dungeon";
- mes "Teleport Service elections.";
- mes "Who would you like to vote for"; //End Unofficial text
- break;
- }
- next;
- menu "Cool Event Corp.",Lvotecool,"Kafra Corp.",Lvotekafra;
-
- Lvotecool:
- set $dtsv,$dtsv+1; //Adds 1 to cool count
- set MISC_QUEST,MISC_QUEST|128; //Sets var so that you can't vote over and over
- set dtseligible,$dtsday;
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]";
- mes "Thank you for voting for us.";
- mes "Your vote has been counted,";
- mes "and we appreciate your input";
- mes "Thank you and have a good day.";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "We thank you for your vote.";
- mes "Your opinion matters very much";
- mes "and has been counted for Cool";
- mes "Event Corp.";
- break;
- }
- goto Lend;
-
- Lvotekafra:
- setd $dtsv,$dtsv-1; //Adds 1 to kafra count
- set MISC_QUEST,MISC_QUEST|128; //Sets var to prevent cheating
- set dtseligible,$dtsday;
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]"; //Unofficial Text
- mes "Thank you for your opinion.";
- mes "Your vote for Kafra corp.";
- mes "has been counted. Thank";
- mes "you and have a good day.";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "Your vote for us has been";
- mes "counted. We thank you very";
- mes "much for your input, and";
- mes "we hope that we meet your";
- mes "adventuring needs and";
- mes "standards of excellence.";
- break;
- }
- goto Lend; //End Unofficial text
-
- Lteleport: //Selected Teleport
- switch(getarg(0)){
- case 0:
- if($dts&(1<<0)){
- mes "[Cool Event Corp. Voting Staff]";
- mes "I'm sorry, but the";
- mes "Dungeon Teleport Service is";
- mes "unavailable during elections";
- mes "and will be reactivated after the";
- mes "election results are announced.";
- mes "Thank you and have a nice day.";
- goto Lend;
- }
- if($dts&(1<<1)) goto Lteleenabled;
- mes "[Cool Event Corp. Voting Staff]"; //Text if Kafra won DTS elect.
- mes "I'm sorry, but Cool Event";
- mes "Corp. does not currently offer";
- mes "the Dungeon Teleport Service";
- mes "due to the results of the last";
- mes "election. Please vote for us";
- mes "next time, alright? Good day~";
- break;
- case 1:
- if($dts&(1<<0)){
- mes "[Kafra Voting Staff]";
- mes "Sorry, but the elections for";
- mes "which Dungeon Teleport System";
- mes "to use is currently going on";
- mes "right now. We are unable to";
- mes "vote until results are announced";
- goto Lend;
- }
- if($dts&(1<<2)) goto Lteleenabled;
- mes "[Kafra Voting Staff]";
- mes "We're sorry, but Kafra Corp";
- mes "doesn't currently offer the";
- mes "Dungeon Teleport System due";
- mes "to last election's results,";
- mes "Please vote for Kafra Corp";
- mes "next time~";
- break;
- }
- goto Lend;
-
- Lteleenabled: //Shows DTS tele selections
- cleararray @dtswarpmap$[0],"",getarraysize(@dtswarpmap$);
- cleararray @dtswarp$[0],"",getarraysize(@dtswarp$);
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]";
- mes "Please remember that we";
- mes "cannot accept Free Warp Tickets";
- mes "or award Special Reserve Points";
- mes "for this service. Now, please";
- mes "choose your destination.";
- setarray @dtswarpmap$[0],"Byalan, Level 4","Clock Tower, Basement 3";
- setarray @dtswarp$[0],@dtswarpmap$[0]+" -> 4,000z",
- @dtswarpmap$[1]+" -> 4,000z","Cancel";
- if($dts&(1<<4)){
- set @dtswarpmap$[2],"Glastheim Entrance";
- setarray @dtswarp$[2],@dtswarpmap$[2]+" -> 4,000z","Cancel";
- }
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "Thank you for choosing the";
- mes "Dungeon Teleport Service";
- mes "Please keep in mind that the";
- mes "Free Warp Tickets and Kafra";
- mes "Special Reserve Points do not";
- mes "apply in this special service.";
- setarray @dtswarpmap$[0],"Toy Factory, Level 2","Clock Tower, Level 3";
- setarray @dtswarp$[0],@dtswarpmap$[0]+" -> 4,000z",
- @dtswarpmap$[1]+" -> 4,000z","Cancel";
- if($dts&(1<<5)){
- set @dtswarpmap$[2],"Lava Dungeon, Level 2";
- setarray @dtswarp$[2],@dtswarpmap$[2]+" -> 4,000z","Cancel";
- }
- break;
- }
- next;
- switch(select(@dtswarp$[0],@dtswarp$[1],@dtswarp$[2],@dtswarp$[3])){
- case 1:
- set @num, 0;
- break;
- case 2:
- set @num, 1;
- break;
- case 3:
- set @num, 2;
- break;
- case 4:
- set @num, 3;
- break;
- }
- Lwarp:
- if (@dtswarp$[@num] == "Cancel") goto Lcancel;
- if (Zeny<4000) goto Lnomoney;
- set Zeny, Zeny-4000;
- if (@dtswarpmap$[@num] == "Toy Factory, Level 2") warp "xmas_dun02.gat",130,123;
- //Maps to warp to
- if (@dtswarpmap$[@num] == "Clock Tower, Level 3") warp "alde_dun03.gat",265,22;
-
- if (@dtswarpmap$[@num] == "Lava Dungeon, Level 2") warp "mag_dun02.gat",47,40;
-
- if (@dtswarpmap$[@num] == "Byalan, Level 4") warp "iz_dun03.gat",32,63;
-
- if (@dtswarpmap$[@num] == "Clock Tower, Basement 3") warp "alde_dun03.gat",277,178;
-
- if (@dtswarpmap$[@num] == "Glastheim Entrance") warp "glast_01.gat",370,304;
-
- cutin "", 255;
- end;
- Lnomoney:
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]"; //Unofficial Text
- mes "Umm, apparently you don't have";
- mes "adequate funds for your";
- mes "selected warp. Please check";
- mes "that you have the correct amount";
- mes "of money, and try again later";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "It appears as if you don't";
- mes "have enough zeny for the warp";
- mes "Please check your funds and";
- mes "try again.";
- break;
- }
- goto Lend; //End unofficial text
-
- Lcancel: //Selected Cancel on first menu
- switch(getarg(0)){
- case 0:
- mes "[Cool Event Corp. Voting Staff]";
- mes "Cool Event Corp. is always";
- mes "working to make sure that";
- mes "not only are our customers";
- mes "satisfied, but that we also";
- mes "exceed your utmost standards.";
- mes "Thank you and have a good day.";
- break;
- case 1:
- mes "[Kafra Voting Staff]";
- mes "We, here at Kafra Corporation,";
- mes "are alwyas endeavoring to provide";
- mes "you with the best services. We hope";
- mes "that we meet your adventuring needs";
- mes "and the standards of excellence.";
- break;
- }
- goto Lend;
- Lend:
- close2;
- cutin "", 255;
- end;
-
-}
-
-//Elections administration NPC (hidden)
-- script DTS_Admin -1,{
- OnSun0100: //Works only at 1am on sunday
- if($dtsday<4 || $dtsday>=100) set $dtsday,4;
- else set $dtsday,$dtsday+1;
- if($dts == 0){
- set $dts,$dts|(1<<0);
- set $dts,$dts|(1<<3);
- }
- if($dts&(1<<1) && $dts&(1<<2) || $dts&(1<<0) && $dts&(1<<1) || $dts&(1<<0) && $dts&(1<<2)){
- if($dts&(1<<0)) set $dts,$dts&~(1<<0);
- if($dts&(1<<1)) set $dts,$dts&~(1<<1);
- if($dts&(1<<2)) set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<0);
- }
- if($dts&(1<<4) && $dts&(1<<5) || $dts&(1<<3) && $dts&(1<<4) || $dts&(1<<3) && $dts&(1<<5)){
- if($dts&(1<<3)) set $dts,$dts&~(1<<3);
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- set $dts,$dts|(1<<3);
- }
- if($dtsv == 0){ //If tied, gives random side 100 votes
- set $@dtstemp,rand(1,2);
- if($@dtstemp == 1) set $dtsv,$dtsv+100;
- else set $dtsv,$dtsv-100;
- }
- if($dtsv > 0){
- if($dts&(1<<3)) set $dts,$dts&~(1<<3);
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- if($dts&(1<<0)){
- set $dts,$dts&~(1<<0);
- set $dts,$dts|(1<<1);
- set $dts,$dts|(1<<3);
- }
- if($dts&(1<<1)) set $dts,$dts|(1<<4);
- if($dts&(1<<2)){
- set $dts,$dts&~(1<<2);
- set $dts,$dts|(1<<1);
- set $dts,$dts|(1<<5);
- }
- set $dtsv,0;
- }
- else{
- if($dts&(1<<3)) set $dts,$dts&~(1<<3);
- if($dts&(1<<4)) set $dts,$dts&~(1<<4);
- if($dts&(1<<5)) set $dts,$dts&~(1<<5);
- if($dts&(1<<0)){
- set $dts,$dts&~(1<<0);
- set $dts,$dts|(1<<2);
- set $dts,$dts|(1<<3);
- }
- if($dts&(1<<1)){
- set $dts,$dts&~(1<<1);
- set $dts,$dts|(1<<2);
- set $dts,$dts|(1<<4);
- }
- if($dts&(1<<2)) set $dts,$dts|(1<<5);
- set $dtsv,0;
- }
- end;
+//===== eAthena Script =======================================
+//= Dungeon Teleport Service
+//===== By: ==================================================
+//= Evera
+//===== Current Version: =====================================
+//= 2.3c
+//===== Compatible With: =====================================
+//= eAthena
+//===== Description: =========================================
+//= Cool Event Corp NPCs vs. Kafra Dungeon Teleport Service and voting system.
+//= This is a special event on official servers where there's a
+//= big competition between Kafra Corp. and Cool Event Corp.
+//= To warp to selected levels of certain dungeons.
+//= Also includes Cool Event Corp HQ NPCs.
+//===== Variables: ===========================================
+//=Server - $dtsvote = Variable for # of votes
+//= = Positive = Cool Corp winning
+//= = Negative = Kafra Corp winning
+//= $dts = Variable for DTS status
+//= = (1<<0) Election
+//= = (1<<1) Cool Corp Enabled
+//= = (1<<2) Kafra Enabled
+//= = (1<<3) No winner last election
+//= = (1<<4) Cool Corp won last election
+//= = (1<<5) Kafra won last election
+//= $dtsday = Week count for dts vote count, used for resetting players' votes
+//=Character - dtseligible = eligibility status, 0 not eligible yet, 1 eligible.
+//= = $dtsday used when MISC_QUEST|128, and signifies that person already voted.
+//= MISC_QUEST = |128 = eligible and voted.
+//=NPC Func. - arg(0) = 0, Cool Event Corp Voting Staff; 1, Kafra Corp Voting Staff
+//= arg(1) = Kafra only, Cool Corp script does not use. Changes illus for different sprites.
+//= = 0 = 4_f_kafra6 (yellow ponytail, classic outfit, spr 112)
+//= = 1 = 4_f_kafra5 (pink hair, classic outfit, spr 113)
+//= = 2 = 4_f_kafra4 (orange short hair, classic outfit, spr 114)
+//= = 3 = 4_f_kafra3 (brown bangs, classic outfit, spr 115)
+//= = 4 = 4_f_kafra2 (brown ponytale, classic outfit, spr 116)
+//= = 5 = 4_f_kafra1 (blue hair, classic outfit, spr 117)
+//= = 6 = 4_f_agentkafra (purp hair, black outfit, spr 859)
+//= = 7 = 4_f_kafra8 (blue hair, brown outfit, spr 860)
+//= = 8 = 4_f_kafra9 (red hair, brown outfit, spr 861)
+//=Temporary - @dtstemp = Temporary buffer, used in GM vote-fixing
+//= @dtstemps$ = Temporary buffer, like above, but a string.
+//= $@dtstempg = Temporary buffer, but global
+//===== Additional Comments: =================================
+//= Some unofficial translations, some unofficial dungeon warps
+//= Also includes unofficial GM-enabled tweaking for script
+//= Includes NPCs in Cool Event Corp headquarters
+//= If new locations are found of this NPC, please report on forums
+//= http://www.eathena.ws/board/index.php?showforum=106
+//= Base level 60 required to vote
+//===== Version History: ====================================
+//= 1.0 Initial release [Evera]
+//= 1.1 SVN release, removed from major town (found true info after research),
+//= put more arg(2) parameters, fixed a few bugs [Evera]
+//= 1.2 Mushed some variables together, optimized a bit [Evera]
+//= 1.3 Removed selfconfig [Evera]
+//= 1.4 Changed global variables to read from 3 global variables, updated names,
+//= fixed array bug [Evera]
+//= 1.5 Mushed voting varialbes into 1 variable. [Evera]
+//= 1.6 Removed Duplicates [Silent]
+//= 1.7 Fixed bug of DTS_Admin not running by itself [Evera]
+//= 1.8 Changed requirement to lvl 60 [Evera]
+//= 1.9 Removed global eligibility option [Evera]
+//= 2.0 Fixed zeny bug [Evera]
+//= 2.1 Fixed headers with and updated with newer information [Evera]
+//= 2.2 Changed dtseligible 2 to MISC_QUEST|128, to clean up variable usage. [Evera]
+//= Also added F_ClearGarbage function to the scripts. [Evera]
+//= 2.3 Changed dtseligible to be $dtsday when MISC_QUEST|128
+//= Added $dtsday for vote session counter
+//= Fixed bug that involved having both warpers enabled at the same time. [Evera]
+//= New $dtsday system and bug fix[Evera]
+//= 2.3a fixed 2 bugs with comparision [Lupus]
+//= 2.3b corrected Glast warp coords [Lupus] 2.3c Bailand -> Bayalan
+//============================================================
+
+//Yuno
+yuno.gat,153,191,4 script Cool Event Voting Staff::CoolEventVotingStaff01 874,{
+ callfunc "F_DTS_Warp",0,0;
+}
+yuno.gat,162,191,6 script Kafra Voting Staff#01 861,{
+ callfunc "F_DTS_Warp",1,8;
+}
+//Lighthalzen
+lighthalzen.gat,154,60,6 script Cool Event Voting Staff::CoolEventVotingStaff02 874,{
+ callfunc "F_DTS_Warp",0,0;
+}
+//Prontera
+prontera.gat,147,125,4 script Cool Event Voting Staff::CoolEventVotingStaff03 874,{
+ callfunc "F_DTS_Warp",0,0;
+}
+prontera.gat,164,125,6 script Kafra Voting Staff#02 115,{
+ callfunc "F_DTS_Warp",1,3;
+}
+
+//Cool Event Staff Headquarters NPCs
+//Kudiuu (Maintenance Guy)
+lhz_in02.gat,20,274,6 script Maintenance Guy 851,{
+ mes "[Kudiuu]";
+ mes "Holy...!";
+ mes "Will this place";
+ mes "ever get cleaned up?!";
+ mes "*Cough cough* There's";
+ mes "so much dust here, it's";
+ mes "almost a health hazard!";
+ close;
+}
+//Cesuna (Zondaman at desk)
+lhz_in02.gat,36,284,1 script Cool Event Staff#01 874,{
+ mes "[Cesuna]";
+ mes "Ack! I'm totally";
+ mes "swamped with all this";
+ mes "work! But I don't wannna";
+ mes "do any of it. That's it!";
+ mes "I totally need a break";
+ next;
+ mes "[Cesuna]";
+ mes "*Sigh...*";
+ mes "I wonder if Saera";
+ mes "would ever consider";
+ mes "going out with me?";
+ mes "That would be nice~";
+ close;
+}
+//Jellarin (Event planner)
+lhz_in02.gat,40,279,3 script Event Planner 833,{
+ mes "[Jellarin]";
+ mes "I don't like this.";
+ mes "But I don't like that";
+ mes "idea either. What will";
+ mes "I do for a new event, eh?";
+ next;
+ mes "[Jellarin]";
+ mes "I need something";
+ mes "major, something that'll";
+ mes "really shake up the world,";
+ mes "something epochal, but what?";
+ mes "Hey, do you have any ideas";
+ close;
+}
+//Baoto (Cool Event Manager)
+lhz_in02.gat,110,283,5 script Cool Event Manager 853,{
+ mes "[Baoto]";
+ mes "Hmmm...";
+ mes "The employees seem";
+ mes "to be having too much";
+ mes "fun amongst themselves";
+ mes "recently. This does not";
+ mes "bode well at all...";
+ next;
+ mes "[Baoto]";
+ mes "It looks like I'm";
+ mes "just going to have to";
+ mes "start cracking that whip";
+ mes "more often and much";
+ mes "harder. Ha ha ha ha!";
+ close;
+}
+//Saera (Secretary), contains GM menu
+lhz_in02.gat,36,274,3 script Cool Event Staff#02 831,{
+ callfunc "F_ClearGarbage"; //Clear outdated, unused variables
+ if($dts == 0){
+ set $dts,$dts|(1<<0); //Sets NPCs to election mode if first time running
+ set $dts,$dts|(1<<3);
+ }
+ if($dts&(1<<1) && $dts&(1<<2) || $dts&(1<<0) && $dts&(1<<1) || $dts&(1<<0) && $dts&(1<<2)){
+ if($dts&(1<<0)) set $dts,$dts&~(1<<0);
+ if($dts&(1<<1)) set $dts,$dts&~(1<<1);
+ if($dts&(1<<2)) set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<0);
+ }
+ if($dts&(1<<4) && $dts&(1<<5) || $dts&(1<<3) && $dts&(1<<4) || $dts&(1<<3) && $dts&(1<<5)){
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3);
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ set $dts,$dts|(1<<3);
+ }
+ mes "[Saera]";
+ mes "Welcome to the";
+ mes "temporary headquarters";
+ mes "of Cool Event Corporation";
+ mes "How may I help you today?";
+ next;
+ if(getgmlevel()>=40){ //Unofficial Text, GM-configurable settings for Event (GM level above 40 required)
+ mes "[Saera]";
+ mes "Why, I didn't even";
+ mes "notice you there,";
+ mes strcharinfo(0)+". What would";
+ mes "you like to do today?";
+ next;
+ menu "Fix Vote",Lfixvote,
+ "Set current teleporter",Lsettele,
+ "Set last election winner",Lsetlast,
+ "Manually run vote check",Lmanuvotecheck,
+ "Normal menu please",-;
+ mes "[Saera]";
+ mes "Ok";
+ next;
+ }
+ menu "Temporary headquarters?",Ltemphead,
+ "Voting",Lvoting,"No, thanks.",Lnothx;
+
+ Ltemphead:
+ mes "[Saera]";
+ mes "Our headquarters building";
+ mes "is currently undergoing";
+ mes "reconstruction, so we are";
+ mes "basing our operations in";
+ mes "this place for the meantime";
+ close;
+
+ Lvoting:
+ mes "[Saera]";
+ mes "Currently, Kafra Corporation";
+ mes "and Cool Event Corp are working";
+ mes "on a collaborative program that";
+ mes "will provide direct teleport";
+ mes "services to dungeons.";
+ next;
+ mes "[Saera]";
+ mes "Due to technical issues,";
+ mes "both companies cannot provide";
+ mes "teleport services to the same";
+ mes "dungeon. Therefore, we will be";
+ mes "selecting our valued customers";
+ mes "to choose the company they want.";
+ next;
+ if((dtseligible == 0 || dtseligible == 3) && baselevel >= 60 && MISC_QUEST&128 == 0) set dtseligible,1;
+ //Clear previous var of dtseligible,3 being tried for eligibility already
+ if(dtseligible != $dtsday && baselevel >= 60 && MISC_QUEST&128){
+ set MISC_QUEST,MISC_QUEST&~128;
+ set dtseligible,1;
+ }
+ switch(dtseligible){
+ default:
+ mes "[Saera]";
+ mes "Only a limited number of";
+ mes "voters will be chosen, so";
+ mes "you can check your voting";
+ mes "eligibility at the headquarters";
+ mes "of both participating companies.";
+ mes "Thank you for your patronage~";
+ close;
+ break;
+ case 1:
+ mes "[Saera]";
+ mes "It appears that you are";
+ mes "eligible to vote";
+ mes "so please cast your";
+ mes "vote at any Voting Staff";
+ mes "representative. Thank you~";
+ close;
+ break;
+ case 2:
+ mes "[Saera]";
+ mes "You are eligible to vote, but";
+ mes "you have already voted. Thank";
+ mes "you for your participation";
+ close;
+ break;
+ }
+
+ Lnothx:
+ mes "[Saera]";
+ mes "Thank you.";
+ mes "Have a good day.";
+ close;
+ //GM options start
+ Lfixvote: //Fix Vote
+ mes "[Saera]";
+ mes "Umm, sure..";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
+ if($dtsv == 0) mes "The vote is currently tied.";
+ mes "To who would you like to give votes to?";
+ next;
+ menu "Kafra",-,"Cool Event Corp",Lfixcool;
+
+ Lfixkafra: //Fixing vote for Kafra
+ mes "[Saera]";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes."; //multiplied by -1 because var is negative
+ if($dtsv == 0) mes "The vote is currently tied.";
+ mes "Please input the amount you wish to give to Kafra Corp";
+ input @dtstemp; //Set buffer for Kafra vote
+ next;
+ mes "[Saera]";
+ mes "You inputted "+@dtstemp+" for Kafra";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
+ if($dtsv == 0) mes "The vote is currently tied.";
+ mes "Are you sure you would like to";
+ mes "make these changes?";
+ next;
+ menu "Yes",-,"No",Lnothx;
+ set $dtsv,$dtsv-@dtstemp; //Set buffer to Kafra vote
+ mes "[Saera]";
+ mes "Okay, you fixed the vote";
+ mes "of Kafra Corp.";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
+ if($dtsv == 0) mes "The vote is currently tied.";
+ close;
+
+ Lfixcool: //Fixing vote for cool corp
+ mes "[Saera]";
+ mes "Let me find the papers...";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
+ if($dtsv == 0) mes "The vote is currently tied.";
+ mes "Please input new vote for Cool Event Corp";
+ input @dtstemp; //Set buffer for Cool vote
+ next;
+ mes "[Saera]";
+ mes "You inputted "+@dtstemp+" for Cool Event Corp";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
+ if($dtsv == 0) mes "The vote is currently tied.";
+ mes "Are you sure you would like to";
+ mes "make these changes?";
+ next;
+ menu "Yes",-,"No",Lnothx; //Confirmaiton
+ set $dtsv,@dtsv+@dtstemp; //Set buffer to Cool vote
+ mes "[Saera]";
+ mes "Okay, you fixed the vote";
+ mes "of Cool Event Corp.";
+ if($dtsv > 0) mes "Cool Event Corp is currently winning by "+$dtsv+" votes.";
+ if($dtsv < 0) mes "Kafra Corp is currently winning by "+$dtsv*-1+" votes.";
+ if($dtsv == 0) mes "The vote is currently tied.";
+ close;
+
+ Lsettele: //Set current DTS tele
+ mes "[Saera]";
+ mes "Type Kafra for Kafra-enabled warp,";
+ mes "Cool for Cool Event Corp-enabled";
+ mes "warp ,Election for election mode,";
+ mes "or Cancel to cancel.";
+ if($dts&(1<<0)) mes "The election is currently in election mode.";
+ if($dts&(1<<1)) mes "Cool Event Corp is currently the DTS warper.";
+ if($dts&(1<<2)) mes "Kafra Corp is currently the DTS warper.";
+ next;
+ input @dtstemps$; //Typed in choices to prevent mistakes
+ mes "Let me find the papers...";
+ next;
+ if(@dtstemps$ == "Election" || @dtstemps$ == "election"){
+ if($dts&(1<<1)){
+ set $dts,$dts&~(1<<1); //Removes previous winner
+ set $dts,$dts|(1<<0); //Changes status to election
+ }
+ if($dts&(1<<2)){
+ set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<0);
+ }
+ mes "[Saera]";
+ mes "Set to election mode.";
+ close;
+ }
+ if(@dtstemps$ == "Cool" || @dtstemps$ == "cool"){
+ if($dts&(1<<0)){
+ set $dts,$dts&~(1<<0);
+ set $dts,$dts|(1<<1);
+ }
+ if($dts&(1<<2)){
+ set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<1);
+ }
+ mes "[Saera]";
+ mes "Cool Event Corp. is now the DTS warper.";
+ close;
+ }
+ if(@dtstemps$ == "Kafra" || @dtstemps$ == "kafra"){
+ if($dts&(1<<1)){
+ set $dts,$dts&~(1<<1);
+ set $dts,$dts|(1<<2);
+ }
+ if($dts&(1<<0)){
+ set $dts,$dts&~(1<<0);
+ set $dts,$dts|(1<<2);
+ }
+ mes "[Saera]";
+ mes "Kafra Corp. is now the DTS warper.";
+ close;
+ }
+ if(@dtstemps$ == "Cancel" || @dtstemps$ == "cancel") goto Lnothx;
+ mes "[Saera]";
+ mes "Please input a correct name for the election";
+ next;
+ goto Lsettele;
+
+ Lsetlast: //Set last winner
+ mes "[Saera]";
+ mes "Type Kafra for election records to show Kafra,";
+ mes "Cool for Cool for election records to show Cool Event Corp,";
+ mes "None for no winner in election records,";
+ mes "or Cancel to cancel.";
+ if($dts&(1<<3)) mes "There was no previous winner";
+ if($dts&(1<<4)) mes "Cool Event Corp was the last winner";
+ if($dts&(1<<5)) mes "Kafra Corp was the last winner";
+ next;
+ input @dtstemps$;
+ mes "[Saera]";
+ mes "Let me find the papers...";
+ next;
+ if(@dtstemps$ == "None" || @dtstemps$ == "none"){
+ if($dts&(1<<4)){
+ set $dts,$dts&~(1<<4); //removes last winner
+ set $dts,$dts|(1<<3); //sets current last winner
+ }
+ if($dts&(1<<5)){
+ set $dts,$dts&~(1<<5);
+ set $dts,$dts|(1<<3);
+ }
+ mes "[Saera]";
+ mes "Set records to show no previous winner.";
+ close;
+ }
+ if(@dtstemps$ == "Cool" || @dtstemps$ == "cool"){
+ if($dts&(1<<3)){
+ set $dts,$dts&~(1<<3);
+ set $dts,$dts|(1<<4);
+ }
+ if($dts&(1<<5)){
+ set $dts,$dts&~(1<<5);
+ set $dts,$dts|(1<<4);
+ }
+ mes "[Saera]";
+ mes "Cool Event Corp. is now the previous winner.";
+ close;
+ }
+ if(@dtstemps$ == "Kafra" || @dtstemps$ == "kafra"){
+ if($dts&(1<<3)){
+ set $dts,$dts&~(1<<3);
+ set $dts,$dts|(1<<5);
+ }
+ if($dts&(1<<4)){
+ set $dts,$dts&~(1<<4);
+ set $dts,$dts|(1<<5);
+ }
+ mes "[Saera]";
+ mes "Kafra Corp. is now the previous winner.";
+ close;
+ }
+ if(@dtstemps$ == "Cancel" || @dtstemps$ == "cancel") goto Lnothx;
+ mes "[Saera]";
+ mes "Please input a correct name";
+ mes "for previous winner";
+ next;
+ goto Lsetlast;
+
+ Lmanuvotecheck:
+ mes "[Saera]";
+ mes "Are you sure you would like to run";
+ mes "the vote check again?";
+ next;
+ menu "Yes",Lmanuvoteyes,"No",Lnothx;
+
+ Lmanuvoteyes:
+ if($dtsday<4 || $dtsday>=100) set $dtsday,4;
+ else set $dtsday,$dtsday+1;
+ if($dts&(1<<1) && $dts&(1<<2) || $dts&(1<<0) && $dts&(1<<1) || $dts&(1<<0) && $dts&(1<<2)){
+ if($dts&(1<<0)) set $dts,$dts&~(1<<0);
+ if($dts&(1<<1)) set $dts,$dts&~(1<<1);
+ if($dts&(1<<2)) set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<0);
+ }
+ if($dts&(1<<4) && $dts&(1<<5) || $dts&(1<<3) && $dts&(1<<4) || $dts&(1<<3) && $dts&(1<<5)){
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3);
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ set $dts,$dts|(1<<3);
+ }
+ if($dtsv == 0){
+ set $@dtstemp,rand(1,2);
+ if($@dtstemp == 1) set $dtsv,$dtsv+100;
+ else set $dtsv,$dtsv-100;
+ }
+ if($dtsv > 0){
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3); //removes last winner varialbes
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ if($dts&(1<<0)){
+ set $dts,$dts&~(1<<0); //removes winner variable
+ set $dts,$dts|(1<<3); //sets last winner varialbe
+ set $dts,$dts|(1<<1); //sets current winner variable
+ }
+ if($dts&(1<<1)) set $dts,$dts|(1<<4);
+ if($dts&(1<<2)){
+ set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<1);
+ set $dts,$dts|(1<<5);
+ }
+ set $dtsv,0;
+ }
+ else{
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3);
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ if($dts&(1<<0)){
+ set $dts,$dts&~(1<<0);
+ set $dts,$dts|(1<<2);
+ set $dts,$dts|(1<<3);
+ }
+ if($dts&(1<<1)){
+ set $dts,$dts&~(1<<1);
+ set $dts,$dts|(1<<2);
+ set $dts,$dts|(1<<4);
+ }
+ if($dts&(1<<2)) set $dts,$dts|(1<<5);
+ set $dtsv,0;
+ }
+ mes "[Saera]";
+ mes "Vote check run again.";
+ if($dts&(1<<0)) mes "The election is currently in election mode.";
+ if($dts&(1<<1)) mes "Cool Event Corp is currently the DTS warper.";
+ if($dts&(1<<2)) mes "Kafra Corp is currently the DTS warper.";
+ close;
+}
+
+//Function for Voting Staff NPC
+function script F_DTS_Warp {
+ callfunc "F_ClearGarbage"; //Clear outdated, unused variables
+ if($dts == 0){ //Sets NPCs to election mode if first time running
+ set $dts,$dts|(1<<0);
+ set $dts,$dts|(1<<3);
+ }
+ if((dtseligible == 0 || dtseligible == 3) && baselevel >= 60 && MISC_QUEST&128 == 0) set dtseligible,1; //Clear previous var of dtseligible,3 being tried for eligibility already
+ if(dtseligible != $dtsday && baselevel >= 60 && MISC_QUEST&128){
+ set MISC_QUEST,MISC_QUEST&~128;
+ set dtseligible,1;
+ }
+ switch(getarg(0)){
+ case 0:
+ cutin "zonda_01",2;
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Hello! Don't forget to make";
+ mes "your voice be heard and make";
+ mes "sure you vote in the elections";
+ mes "between Cool Event Corp. and";
+ mes "Kafra Corporation for control of";
+ mes "the Dungeon Teleport Service!";
+ break;
+ case 1:
+ switch(getarg(1)){
+ case 0: cutin "kafra_06",2; break; //Finding arguments to find which illust to use
+ case 1: cutin "kafra_05",2; break; //Used Red hair "kafra_09" for black outfit kafra
+ case 2: cutin "kafra_04",2; break; //because I couldn't find a suitable illust
+ case 3: cutin "kafra_03",2; break;
+ case 4: cutin "kafra_02",2; break;
+ case 5: cutin "kafra_01",2; break;
+ case 6: cutin "kafra_09",2; break;
+ case 7: cutin "kafra_08",2; break;
+ case 8: cutin "kafra_09",2; break;
+ default: cutin "kafra_09",2; break;
+ }
+ mes "[Kafra Voting Staff]";
+ mes "Greetings, adventurer.";
+ mes "As you may be aware, we";
+ mes "are holding an election to";
+ mes "provide the Dungeon Teleport";
+ mes "Service. How may I help you?";
+ break;
+ }
+ next;
+ menu "Reason for Election",Lelection,"Cast a Vote",Lvote,
+ "Use Teleport Service",Lteleport,"Cancel",Lcancel;
+
+ Lelection: //Reason for election explanation
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Cool Event Corp. has been";
+ mes "planning to provide a new";
+ mes "Dungeon Teleport Service to";
+ mes "its customers, a service not";
+ mes "already provided by the Kafra";
+ mes "Corporation. However...";
+ next;
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Kafra Corporation, which";
+ mes "already monopolizes the";
+ mes "public teleportation market,";
+ mes "actually also had plans to";
+ mes "provide a similar service.";
+ next;
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Because of technological";
+ mes "limitations, only one company";
+ mes "can be chosen as the provider";
+ mes "of this Dungeon Teleport Service.";
+ mes "Hence, we will let the customers";
+ mes "decide through these elections.";
+ next;
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Multiple elections will be";
+ mes "held so that our customers";
+ mes "can test out the special services";
+ mes "of each company for themselves.";
+ mes "However, keep in mind that you";
+ mes "must be eligible in order to vote.";
+ next;
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "For voter eligibility";
+ mes "details, please visit our";
+ mes "headquarters in the city of";
+ mes "Lighthalzen located in the";
+ mes "Schwarzwald Republic.";
+ mes "Thank you for your time.";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "Cool Event Corp and the";
+ mes "Kafra Corporation have both";
+ mes "been planning to provide a";
+ mes "Teleport Service to dungeons.";
+ next;
+ mes "[Kafra Voting Staff]";
+ mes "But due to technological";
+ mes "limitations, only one company";
+ mes "can serve as provider for this";
+ mes "Dungeon Teleport Service at a";
+ mes "time. There, both companies have";
+ mes "agreed to hold special elections";
+ next;
+ mes "[Kafra Voting Staff]";
+ mes "Each company has its own";
+ mes "policies and guarantees in";
+ mes "regards to the Dungeon Teleport";
+ mes "Service, and in this election, the";
+ mes "customers will ultimately decide";
+ mes "and choose what's best for them.";
+ next;
+ mes "[Kafra Voting Staff]";
+ mes "For now, the Dungeon";
+ mes "Teleport Service will be";
+ mes "provided in a series of trial";
+ mes "periods. This way, customers can";
+ mes "see the benefits of both companies";
+ mes "before making the final decision";
+ next;
+ mes "[Kafra Voting Staff]";
+ mes "If you are qualified,";
+ mes "please vote in each election";
+ mes "to decide which company will";
+ mes "provide the Dungeon Teleport";
+ mes "Service for the next trial period.";
+ mes "Thank you for your support~";
+ break;
+ }
+ goto Lend;
+
+ Lvote: //If you clicked you wanted to vote
+ if(dtseligible == 1) goto Leligible; //Var check if eligible
+
+ Lnoteligible: //Text displayed if wanted to vote, but not eligible/voted
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "I'm sorry, but you are not";
+ mes "eligible to vote at this time.";
+ mes "Please visit our headquarters";
+ mes "in Lighthalzen for information";
+ mes "related to acquiring voting";
+ mes "rights. Thank you for your time.";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "Oh, I'm so sorry, but you";
+ mes "are currently not qualified to";
+ mes "vote. For voting qualification";
+ mes "information, please visit the";
+ mes "Al De Baran Kafra Headquarters.";
+ mes "Thank you and have a nice day.";
+ break;
+ }
+ goto Lend;
+
+ Leligible: //Text displayed if eligible to vote
+ if(MISC_QUEST&128 && $dtsday == dtseligible) goto Lnoteligible; //Var check if voted
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]"; //Unofficial text
+ mes "Checking your credentials, you";
+ mes "are able to vote for the";
+ mes "Dungeon Teleport Service";
+ mes "elections. Who would you like";
+ mes "to vote for?";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "It appears that you qualify";
+ mes "to vote for the Dungeon";
+ mes "Teleport Service elections.";
+ mes "Who would you like to vote for"; //End Unofficial text
+ break;
+ }
+ next;
+ menu "Cool Event Corp.",Lvotecool,"Kafra Corp.",Lvotekafra;
+
+ Lvotecool:
+ set $dtsv,$dtsv+1; //Adds 1 to cool count
+ set MISC_QUEST,MISC_QUEST|128; //Sets var so that you can't vote over and over
+ set dtseligible,$dtsday;
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Thank you for voting for us.";
+ mes "Your vote has been counted,";
+ mes "and we appreciate your input";
+ mes "Thank you and have a good day.";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "We thank you for your vote.";
+ mes "Your opinion matters very much";
+ mes "and has been counted for Cool";
+ mes "Event Corp.";
+ break;
+ }
+ goto Lend;
+
+ Lvotekafra:
+ setd $dtsv,$dtsv-1; //Adds 1 to kafra count
+ set MISC_QUEST,MISC_QUEST|128; //Sets var to prevent cheating
+ set dtseligible,$dtsday;
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]"; //Unofficial Text
+ mes "Thank you for your opinion.";
+ mes "Your vote for Kafra corp.";
+ mes "has been counted. Thank";
+ mes "you and have a good day.";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "Your vote for us has been";
+ mes "counted. We thank you very";
+ mes "much for your input, and";
+ mes "we hope that we meet your";
+ mes "adventuring needs and";
+ mes "standards of excellence.";
+ break;
+ }
+ goto Lend; //End Unofficial text
+
+ Lteleport: //Selected Teleport
+ switch(getarg(0)){
+ case 0:
+ if($dts&(1<<0)){
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "I'm sorry, but the";
+ mes "Dungeon Teleport Service is";
+ mes "unavailable during elections";
+ mes "and will be reactivated after the";
+ mes "election results are announced.";
+ mes "Thank you and have a nice day.";
+ goto Lend;
+ }
+ if($dts&(1<<1)) goto Lteleenabled;
+ mes "[Cool Event Corp. Voting Staff]"; //Text if Kafra won DTS elect.
+ mes "I'm sorry, but Cool Event";
+ mes "Corp. does not currently offer";
+ mes "the Dungeon Teleport Service";
+ mes "due to the results of the last";
+ mes "election. Please vote for us";
+ mes "next time, alright? Good day~";
+ break;
+ case 1:
+ if($dts&(1<<0)){
+ mes "[Kafra Voting Staff]";
+ mes "Sorry, but the elections for";
+ mes "which Dungeon Teleport System";
+ mes "to use is currently going on";
+ mes "right now. We are unable to";
+ mes "vote until results are announced";
+ goto Lend;
+ }
+ if($dts&(1<<2)) goto Lteleenabled;
+ mes "[Kafra Voting Staff]";
+ mes "We're sorry, but Kafra Corp";
+ mes "doesn't currently offer the";
+ mes "Dungeon Teleport System due";
+ mes "to last election's results,";
+ mes "Please vote for Kafra Corp";
+ mes "next time~";
+ break;
+ }
+ goto Lend;
+
+ Lteleenabled: //Shows DTS tele selections
+ cleararray @dtswarpmap$[0],"",getarraysize(@dtswarpmap$);
+ cleararray @dtswarp$[0],"",getarraysize(@dtswarp$);
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Please remember that we";
+ mes "cannot accept Free Warp Tickets";
+ mes "or award Special Reserve Points";
+ mes "for this service. Now, please";
+ mes "choose your destination.";
+ setarray @dtswarpmap$[0],"Byalan, Level 4","Clock Tower, Basement 3";
+ setarray @dtswarp$[0],@dtswarpmap$[0]+" -> 4,000z",
+ @dtswarpmap$[1]+" -> 4,000z","Cancel";
+ if($dts&(1<<4)){
+ set @dtswarpmap$[2],"Glastheim Entrance";
+ setarray @dtswarp$[2],@dtswarpmap$[2]+" -> 4,000z","Cancel";
+ }
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "Thank you for choosing the";
+ mes "Dungeon Teleport Service";
+ mes "Please keep in mind that the";
+ mes "Free Warp Tickets and Kafra";
+ mes "Special Reserve Points do not";
+ mes "apply in this special service.";
+ setarray @dtswarpmap$[0],"Toy Factory, Level 2","Clock Tower, Level 3";
+ setarray @dtswarp$[0],@dtswarpmap$[0]+" -> 4,000z",
+ @dtswarpmap$[1]+" -> 4,000z","Cancel";
+ if($dts&(1<<5)){
+ set @dtswarpmap$[2],"Lava Dungeon, Level 2";
+ setarray @dtswarp$[2],@dtswarpmap$[2]+" -> 4,000z","Cancel";
+ }
+ break;
+ }
+ next;
+ switch(select(@dtswarp$[0],@dtswarp$[1],@dtswarp$[2],@dtswarp$[3])){
+ case 1:
+ set @num, 0;
+ break;
+ case 2:
+ set @num, 1;
+ break;
+ case 3:
+ set @num, 2;
+ break;
+ case 4:
+ set @num, 3;
+ break;
+ }
+ Lwarp:
+ if (@dtswarp$[@num] == "Cancel") goto Lcancel;
+ if (Zeny<4000) goto Lnomoney;
+ set Zeny, Zeny-4000;
+ if (@dtswarpmap$[@num] == "Toy Factory, Level 2") warp "xmas_dun02.gat",130,123;
+ //Maps to warp to
+ if (@dtswarpmap$[@num] == "Clock Tower, Level 3") warp "alde_dun03.gat",265,22;
+
+ if (@dtswarpmap$[@num] == "Lava Dungeon, Level 2") warp "mag_dun02.gat",47,40;
+
+ if (@dtswarpmap$[@num] == "Byalan, Level 4") warp "iz_dun03.gat",32,63;
+
+ if (@dtswarpmap$[@num] == "Clock Tower, Basement 3") warp "alde_dun03.gat",277,178;
+
+ if (@dtswarpmap$[@num] == "Glastheim Entrance") warp "glast_01.gat",370,304;
+
+ cutin "", 255;
+ end;
+ Lnomoney:
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]"; //Unofficial Text
+ mes "Umm, apparently you don't have";
+ mes "adequate funds for your";
+ mes "selected warp. Please check";
+ mes "that you have the correct amount";
+ mes "of money, and try again later";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "It appears as if you don't";
+ mes "have enough zeny for the warp";
+ mes "Please check your funds and";
+ mes "try again.";
+ break;
+ }
+ goto Lend; //End unofficial text
+
+ Lcancel: //Selected Cancel on first menu
+ switch(getarg(0)){
+ case 0:
+ mes "[Cool Event Corp. Voting Staff]";
+ mes "Cool Event Corp. is always";
+ mes "working to make sure that";
+ mes "not only are our customers";
+ mes "satisfied, but that we also";
+ mes "exceed your utmost standards.";
+ mes "Thank you and have a good day.";
+ break;
+ case 1:
+ mes "[Kafra Voting Staff]";
+ mes "We, here at Kafra Corporation,";
+ mes "are alwyas endeavoring to provide";
+ mes "you with the best services. We hope";
+ mes "that we meet your adventuring needs";
+ mes "and the standards of excellence.";
+ break;
+ }
+ goto Lend;
+ Lend:
+ close2;
+ cutin "", 255;
+ end;
+
+}
+
+//Elections administration NPC (hidden)
+- script DTS_Admin -1,{
+ OnSun0100: //Works only at 1am on sunday
+ if($dtsday<4 || $dtsday>=100) set $dtsday,4;
+ else set $dtsday,$dtsday+1;
+ if($dts == 0){
+ set $dts,$dts|(1<<0);
+ set $dts,$dts|(1<<3);
+ }
+ if($dts&(1<<1) && $dts&(1<<2) || $dts&(1<<0) && $dts&(1<<1) || $dts&(1<<0) && $dts&(1<<2)){
+ if($dts&(1<<0)) set $dts,$dts&~(1<<0);
+ if($dts&(1<<1)) set $dts,$dts&~(1<<1);
+ if($dts&(1<<2)) set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<0);
+ }
+ if($dts&(1<<4) && $dts&(1<<5) || $dts&(1<<3) && $dts&(1<<4) || $dts&(1<<3) && $dts&(1<<5)){
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3);
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ set $dts,$dts|(1<<3);
+ }
+ if($dtsv == 0){ //If tied, gives random side 100 votes
+ set $@dtstemp,rand(1,2);
+ if($@dtstemp == 1) set $dtsv,$dtsv+100;
+ else set $dtsv,$dtsv-100;
+ }
+ if($dtsv > 0){
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3);
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ if($dts&(1<<0)){
+ set $dts,$dts&~(1<<0);
+ set $dts,$dts|(1<<1);
+ set $dts,$dts|(1<<3);
+ }
+ if($dts&(1<<1)) set $dts,$dts|(1<<4);
+ if($dts&(1<<2)){
+ set $dts,$dts&~(1<<2);
+ set $dts,$dts|(1<<1);
+ set $dts,$dts|(1<<5);
+ }
+ set $dtsv,0;
+ }
+ else{
+ if($dts&(1<<3)) set $dts,$dts&~(1<<3);
+ if($dts&(1<<4)) set $dts,$dts&~(1<<4);
+ if($dts&(1<<5)) set $dts,$dts&~(1<<5);
+ if($dts&(1<<0)){
+ set $dts,$dts&~(1<<0);
+ set $dts,$dts|(1<<2);
+ set $dts,$dts|(1<<3);
+ }
+ if($dts&(1<<1)){
+ set $dts,$dts&~(1<<1);
+ set $dts,$dts|(1<<2);
+ set $dts,$dts|(1<<4);
+ }
+ if($dts&(1<<2)) set $dts,$dts|(1<<5);
+ set $dtsv,0;
+ }
+ end;
} \ No newline at end of file
diff --git a/npc/scripts_athena.conf b/npc/scripts_athena.conf
index 8424eda78..db3b64c2e 100644
--- a/npc/scripts_athena.conf
+++ b/npc/scripts_athena.conf
@@ -143,7 +143,7 @@ npc: npc/guides/guides_umb.txt
npc: npc/guides/guides_nif.txt
npc: npc/guides/guides_hu.txt
// --------------------------------------------------------------
-// --------------------------- Kafras ---------------------------
+// ---------------- Kafras & Cool Event Corp. -------------------
npc: npc/kafras/functions_kafras.txt
npc: npc/kafras/kafras_alb.txt
npc: npc/kafras/kafras_alde.txt
@@ -156,6 +156,8 @@ npc: npc/kafras/kafras_pay.txt
npc: npc/kafras/kafras_pron.txt
npc: npc/kafras/kafras_yun.txt
npc: npc/kafras/kafras_new.txt
+npc: npc/kafras/cool_event_corp.txt
+npc: npc/kafras/dts_warper.txt
// --------------------------------------------------------------
// --------------------------- Events ---------------------------
//npc: npc/events/easter.txt
@@ -178,7 +180,6 @@ npc: npc/other/bulletin_boards.txt
npc: npc/other/monster_museum.txt
npc: npc/other/marriage.txt
npc: npc/other/divorce.txt
-npc: npc/other/dts_warper.txt
npc: npc/other/comodo_gambling.txt
npc: npc/other/lighthalzen_bank.txt
npc: npc/other/lighthalzen_prison.txt