From 1d8592b23ce221f543fb9978c88620f70280c885 Mon Sep 17 00:00:00 2001 From: brianluau Date: Sun, 25 Dec 2011 06:54:26 +0000 Subject: - Standardized script headers, starting with /npc/custom/ http://rathena.org/wiki/Script_header git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15262 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/2-2shop.txt | 16 +- npc/custom/Lance/FR_HallOfFame.c | 302 ------ npc/custom/Lance/FR_HallOfFame.txt | 299 ++++++ npc/custom/Lance/FR_MailSystem.c | 118 --- npc/custom/Lance/FR_MailSystem.txt | 99 ++ npc/custom/Lance/FR_WeatherController.c | 403 -------- npc/custom/Lance/FR_WeatherController.txt | 415 ++++++++ npc/custom/MVP_arena/amvp_func.txt | 79 +- npc/custom/MVP_arena/arena_mvp.txt | 93 +- npc/custom/WoE_Setter.txt | 19 +- npc/custom/airplane.txt | 501 +++++----- npc/custom/ayothaya.txt | 724 -------------- npc/custom/banks/bank.txt | 3 +- npc/custom/banks/kafra_bank.txt | 4 +- npc/custom/blackjack.txt | 380 ++++--- npc/custom/breeder.txt | 78 +- npc/custom/card_remover.txt | 192 ++-- npc/custom/dye.txt | 301 +++--- npc/custom/eAAC_Scripts/DonationGirl/donate.txt | 597 ++++++----- .../eAAC_Scripts/DonationGirl/sql/donate.sql | 8 +- .../DonationGirl/sql/donate_item_db.sql | 8 +- npc/custom/eAAC_Scripts/Kafra_Express_files.conf | 4 +- npc/custom/eAAC_Scripts/banker.txt | 92 +- npc/custom/eAAC_Scripts/kafraExpress/Changelog.txt | 2 +- npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt | 1 - npc/custom/eAAC_Scripts/messageboards.txt | 646 ++++++------ npc/custom/eAAC_Scripts/quest_warper.txt | 5 +- npc/custom/eAAC_Scripts/roll_a_dice.txt | 45 +- npc/custom/eAAC_Scripts/vendmachine.txt | 69 +- npc/custom/events/2006_dogs_year.txt | 9 +- npc/custom/events/draculax.txt | 5 +- npc/custom/events/hallow06.txt | 5 +- npc/custom/events/hyegun_event.txt | 24 +- npc/custom/events/kings_items.txt | 2 +- npc/custom/events/p_track/p_track_core.txt | 9 +- npc/custom/events/p_track/p_track_warpers.txt | 93 +- npc/custom/events/uneasy_cemetery.txt | 5 +- npc/custom/events/valentinesdayexp.txt | 3 +- npc/custom/events/xmas_rings_event.txt | 3 +- npc/custom/floating_rates.txt | 25 +- npc/custom/healers/heal.txt | 22 +- npc/custom/healers/heal_payment.txt | 104 +- npc/custom/jobs/jobmaster.txt | 299 +++--- npc/custom/jobs/reset.txt | 79 +- npc/custom/lottery.txt | 673 +++++++------ npc/custom/market.txt | 22 +- npc/custom/marriage.txt | 34 +- npc/custom/morroc_raceway.txt | 281 +++--- npc/custom/mvm.txt | 1052 ++++++++++---------- npc/custom/penal_servitude.txt | 15 +- npc/custom/platinum_skills.txt | 37 +- npc/custom/quests/bandit_beard.txt | 2 +- npc/custom/quests/berzebub.txt | 105 +- npc/custom/quests/bongunsword.txt | 6 +- npc/custom/quests/bookofthedevil.txt | 13 +- npc/custom/quests/dead_branch.txt | 3 +- npc/custom/quests/elvenear.txt | 4 +- npc/custom/quests/event_6_new_hats.txt | 25 +- npc/custom/quests/fashion.txt | 6 +- npc/custom/quests/ironcane.txt | 4 +- npc/custom/quests/kaho_balmung.txt | 18 +- npc/custom/quests/kahohorn.txt | 96 +- npc/custom/quests/kiel_quest.txt | 4 +- npc/custom/quests/lvl99_quest.txt | 3 +- npc/custom/quests/magicalhatquest.txt | 4 +- npc/custom/quests/may_hats.txt | 302 +++--- npc/custom/quests/sphinx_mask.txt | 104 +- npc/custom/quests/sunglasses.txt | 10 +- npc/custom/quests/tha_statues.txt | 20 +- npc/custom/quests/thq/THQS_ChatingNPC.txt | 24 +- npc/custom/quests/thq/THQS_GuildNPC.txt | 25 +- npc/custom/quests/thq/THQS_QuestNPC.txt | 22 +- npc/custom/quests/thq/THQS_Quests.txt | 22 +- npc/custom/quests/thq/THQS_TTShop.txt | 27 +- npc/custom/quests/umbalian_language.txt | 13 +- npc/custom/quests/valhallen.txt | 2 +- npc/custom/rpsroulette.txt | 8 +- npc/custom/shifty_assassin.txt | 300 +++--- npc/custom/sign_your_items.txt | 158 +-- npc/custom/stock_market.txt | 794 ++++++++------- npc/custom/wandering_poets.txt | 712 +++++++++++++ npc/custom/warper.txt | 275 +++-- npc/other/Global_Functions.txt | 13 +- npc/scripts_custom.conf | 8 +- 84 files changed, 5649 insertions(+), 5787 deletions(-) delete mode 100644 npc/custom/Lance/FR_HallOfFame.c create mode 100644 npc/custom/Lance/FR_HallOfFame.txt delete mode 100644 npc/custom/Lance/FR_MailSystem.c create mode 100644 npc/custom/Lance/FR_MailSystem.txt delete mode 100644 npc/custom/Lance/FR_WeatherController.c create mode 100644 npc/custom/Lance/FR_WeatherController.txt delete mode 100644 npc/custom/ayothaya.txt create mode 100644 npc/custom/wandering_poets.txt (limited to 'npc') diff --git a/npc/custom/2-2shop.txt b/npc/custom/2-2shop.txt index 905a1a826..c6880d2d6 100644 --- a/npc/custom/2-2shop.txt +++ b/npc/custom/2-2shop.txt @@ -1 +1,15 @@ -prontera,155,211,5 shop 2-2 Class Shop 86,1950:-1,1952:-1,1954:-1,1956:-1,1958:-1,1960:-1,1801:-1,1803:-1,1805:-1,1811:-1,1809:-1,1901:-1,1903:-1,1905:-1,1909:-1,1911:-1,1907:-1,1550:-1,1551:-1,1552:-1,1553:-1,1554:-1,1555:-1,1556:-1,1557:-1,1558:-1,2341:-1,2343:-1 \ No newline at end of file +//===== RAthena Script ======================================= +//= 2-2 Class Shop +//===== By: ================================================== +//= DracoRPG +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= RAthena SVN +//===== Description: ========================================= +//= Sells items useful for 2-2 Classes +//===== Additional Comments: ================================= +//= +//============================================================ + +prontera,155,211,5 shop 2-2 Class Shop 86,1950:-1,1952:-1,1954:-1,1956:-1,1958:-1,1960:-1,1801:-1,1803:-1,1805:-1,1811:-1,1809:-1,1901:-1,1903:-1,1905:-1,1909:-1,1911:-1,1907:-1,1550:-1,1551:-1,1552:-1,1553:-1,1554:-1,1555:-1,1556:-1,1557:-1,1558:-1,2341:-1,2343:-1 diff --git a/npc/custom/Lance/FR_HallOfFame.c b/npc/custom/Lance/FR_HallOfFame.c deleted file mode 100644 index 18f8361dc..000000000 --- a/npc/custom/Lance/FR_HallOfFame.c +++ /dev/null @@ -1,302 +0,0 @@ -//===== eAthena Script ====================================== -//= Hall of Fame -//=========================================================== -//===== By ================================================== -//= [Lance] -//= Idea from emilylee78 -//===== Version ============================================= -//= 2.4 FINAL -//===== Compatible With ===================================== -//= eAthena SVN and Freya SVN -//===== Description ========================================= -//= A Hall of Fame framework. Will update the list on every -//= login and logout in a safe manner. -//= -//= Usage: callfunc "printHallOfFame", $; -//= $ - Can be either 0 or 1. -//= 0 - Display the current rankings. -//= 1 - Display last week's rankings. -//= Note : Remember to put a close; after calling it. -//===== Comments ============================================ -//= 1.0 - Initial beta release [Lance] -//= 1.1 - Fixed typos. Optimized a teeny bit. [Lance] -//= 1.2 - Bug fixes. [Lance] -//= 1.3 - Added a more realistic shuffling. [Lance] -//= 1.4 - Added Weekly Top 10 list. [Lance] -//= 1.5 - Friggin typos =< + Better shuffling [Lance] -//= 1.6 - Bugfixes [Lance] -//= 1.7 - More bugfixes. Type mismatch =P [Lance] -//= 2.0 - Exclude GMs and add recovery plan. -//= Suggested by EvilPoringOfDooom. [Lance] -//= 2.1 - Typo.. again.. T_T [Lance] -//= 2.2 - Minor updates and added Jury [Lance] -//= 2.3 - Utilizing eAthena's new scripting engine [Lance] -//= 2.4 - Minor bug fix with event script label (bugport:722) [Samura22] -//=========================================================== - -prontera,0,0,0 script OnPCLoginEvent -1,{ -OnPCLoginEvent: - callfunc "HallOfFameInit"; - end; - -OnInit: - // Total Number of Players in Hall of Fame - // ======================================= - set $HoF_totalCount, 10; - // Reshuffle (Will affect perfomance) ==== - set $HoF_reshuffle, 1; - // Minimum GM Lvl to be excluded from HoF= - set $HoF_minGMLvl, 99; - // Recovery Plan to Remove GMs ============ - set $@HoF_recovery, 0; - // ======================================= - - //set $HoF_totalCount, $HoF_totalCount - 1; - set $@FebruaryD, 28; - if((gettime(7) % 4) == 0) { - set $@FebruaryD, 29; - } - setarray $@MonthDayThing[1],31, $@FebruaryD,31,30,31,30,31,31,30,31,30,31; - set $@HoF_TimeUpdateD, $HoF_LastUpdateD; - set $@HoF_TimeUpdateM, $HoF_LastUpdateM; - set $@HoF_TimeUpdateY, $HoF_LastUpdateY; - // Time to do some maths - set $@TimeNowD, gettime(5); - set $@TimeNowM, gettime(6); - set $@TimeNowY, gettime(7); - // Debug Message -- - debugmes "[Hall of Fame] Last Update is Year " + $@HoF_TimeUpdateY + " Month " + $@HoF_TimeUpdateM + " Day " + $@HoF_TimeUpdateD; - debugmes "[Hall of Fame] Today is Year " + $@TimeNowY + " Month " + $@TimeNowM + " Day " + $@TimeNowD; - if(($@TimeNowD - $@HoF_TimeUpdateD) < 0){ - set $@TimeNowD, $@TimeNowD + $@MonthDayThing[$@TimeNowM]; - set $@TimeNowM, $@TimeNowM - 1; - } - set $@GapD, $@TimeNowD - $@HoF_TimeUpdateD; - if(($@TimeNowM - $@HoF_TimeUpdateM) < 0){ - set $@TimeNowM, $@TimeNowM + 12; - set $@TimeNowY, $@TimeNowY - 1; - } - set $@GapM, $@TimeNowM - $@HoF_TimeUpdateM; - set $@GapY, $@TimeNowY - $@HoF_TimeUpdateY; - debugmes "[Hall of Fame] Gap is " + $@GapY + " Years " + $@GapM + " Months " + $@GapD + " Days."; - if($@GapY > 0 || $@GapM > 0 || $@GapD >= 7) { - callfunc "hallOfFameReset"; // Phew.. - } - end; - -OnClock0000: - set $HoF_UpdateCount, $HoF_UpdateCount + 1; - if($HoF_UpdateCount == 7) { - callfunc "hallOfFameReset"; - } - end; -} - -prontera,0,0,0 script PCLogoutEvent -1,{ -OnPCLogoutEvent: - callfunc "HallOfFameInit"; - end; -} - -function script hallOfFameReset { - copyarray $HoF_LadderNameO$[0], $HoF_LadderName$[0], $HoF_totalCount; - copyarray $HoF_LadderBLevelO[0], $HoF_LadderBLevel[0], $HoF_totalCount; - copyarray $HoF_LadderJLevelO[0], $HoF_LadderJLevel[0], $HoF_totalCount; - copyarray $HoF_LadderZenyO[0], $HoF_LadderZeny[0], $HoF_totalCount; - deletearray $HoF_LadderName$[0], $HoF_totalCount; - deletearray $HoF_LadderBLevel[0], $HoF_totalCount; - deletearray $HoF_LadderJLevel[0], $HoF_totalCount; - deletearray $HoF_LadderZeny[0], $HoF_totalCount; - set $HoF_LastUpdateD, gettime(5); - set $HoF_LastUpdateM, gettime(6); - set $HoF_LastUpdateY, gettime(7); - set $HoF_UpdateCount, 0; - debugmes "[Hall of Fame] System Reset Invoked!"; - return; -} - -function script HallOfFameInit { - if(getgmlevel() >= $HoF_minGMLvl && $@HoF_recovery != 1) { - set PCLogoutEvent, 0; - } else { - set PCLogoutEvent, 1; - callfunc "updateHallofFame", $HoF_reshuffle; - } - return; -} - -function script updateHallofFame { - set @i, 0; - if(getarg(0) == 1){ - goto L_ShuffleName; - } - if(BaseLevel >= $HoF_LadderBLevel[$HoF_totalCount-1]){ - goto L_checkBase; - } - goto L_End; - -L_ShuffleName: - if($HoF_LadderName$[@i] == strcharinfo(0)) { - goto L_ShuffleScore; - } - if(@i == $HoF_totalCount-1) { - goto L_checkEntry; - } - set @i, @i + 1; - goto L_ShuffleName; - -L_ShuffleScore: - deletearray $HoF_LadderName$[@i],1; - deletearray $HoF_LadderZeny[@i],1; - deletearray $HoF_LadderJLevel[@i],1; - deletearray $HoF_LadderBLevel[@i],1; - goto L_ShuffleName; - -L_checkEntry: - if(getgmlevel() >= $HoF_minGMLvl){ - end; - } - set @i, 0; - goto L_checkBase; - -L_checkBase: - if(BaseLevel >= $HoF_LadderBLevel[@i]) { - goto L_BaseOK; - } else { - goto L_Increment; - } - -L_BaseOK: - if(BaseLevel == $HoF_LadderBLevel[@i]){ - goto L_BaseSameLoop; - } else { - goto L_NewEntry; - } - -L_BaseSameLoop: - if(JobLevel >= $HoF_LadderJLevel[@i]) { - goto L_JobOK; - } else if(Zeny >= $HoF_LadderZeny[@i]) { - goto L_ZenyOK; - } - goto L_Increment; - -L_JobOK: - if(JobLevel == $HoF_LadderJLevel[@i]) { - goto L_JobSame; - } else { - goto L_NewEntry; - } - -L_ZenyOK: - if(Zeny == $HoF_LadderZeny[@i]){ - goto L_Increment; - } else { - goto L_NewEntry; - } - -L_JobSame: - if(Zeny >= $HoF_LadderZeny[@i]) { - goto L_ZenyOK; - } else { - goto L_Increment; - } - -L_NewEntry: - callfunc "hallOfFameNewEntry", @i, strcharinfo(0), BaseLevel, JobLevel, Zeny; - end; - -L_Increment: - if(@i == $HoF_totalCount-1) { - goto L_End; - } else { - set @i, @i + 1; - goto L_checkBase; - } - -L_End: - return; - -} - - -function script hallOfFameNewEntry { - if(getarg(0) == 0) goto L_New_Entry; - else if(getarg(1) != $HoF_LadderName$[getarg(0) - 1]) goto L_New_Entry; - return; - -L_New_Entry: - set @startPos, getarg(0); - copyarray @HoF_LadderNameB$[0], $HoF_LadderName$[@startPos], $HoF_totalCount; - copyarray @HoF_LadderBLevelB[0], $HoF_LadderBLevel[@startPos], $HoF_totalCount; - copyarray @HoF_LadderJLevelB[0], $HoF_LadderJLevel[@startPos], $HoF_totalCount; - copyarray @HoF_LadderZenyB[0], $HoF_LadderZeny[@startPos], $HoF_totalCount; - setarray $HoF_LadderName$[@startPos], getarg(1); - setarray $HoF_LadderBLevel[@startPos], getarg(2); - setarray $HoF_LadderJLevel[@startPos], getarg(3); - setarray $HoF_LadderZeny[@startPos], getarg(4); - set @startPos, @startPos + 1; - set @limitPos, $HoF_totalCount - @startPos; - copyarray $HoF_LadderName$[@startPos], @HoF_LadderNameB$[0], @limitPos; - copyarray $HoF_LadderBLevel[@startPos], @HoF_LadderBLevelB[0], @limitPos; - copyarray $HoF_LadderJLevel[@startPos], @HoF_LadderJLevelB[0], @limitPos; - copyarray $HoF_LadderZeny[@startPos], @HoF_LadderZenyB[0], @limitPos; - announce "[Hall of Fame] " + getarg(1) + " has made his/herself onto the No. " + @startPos + " ranking in Hall of Fame!", bc_all; - return; -} - -function script printHallOfFame { - if(getarg(0) == 1) { - mes "[Hall of Fame] - Last Week's Rankings"; - for(set @loop, 0; @loop < $HoF_totalCount; set @loop, @loop + 1){ - mes "^ff0000"; - mes "Position No. " + (@loop + 1) + ":^0000ff"; - mes "+================================+"; - mes "^000000Name :" + $HoF_LadderNameO$[@loop]; - mes "BLvl :" + $HoF_LadderBLevelO[@loop]; - mes "JLvl :" + $HoF_LadderJLevelO[@loop]; - mes "Zeny :" + $HoF_LadderZenyO[@loop] + "^0000ff"; - mes "+================================+^000000"; - } - } else { - mes "[Hall of Fame] - Current Rankings"; - for(set @loop, 0; @loop < $HoF_totalCount; set @loop, @loop + 1){ - mes "^ff0000"; - mes "Position No. " + (@loop + 1) + ":^0000ff"; - mes "+================================+"; - mes "^000000Name :" + $HoF_LadderName$[@loop]; - mes "BLvl :" + $HoF_LadderBLevel[@loop]; - mes "JLvl :" + $HoF_LadderJLevel[@loop]; - mes "Zeny :" + $HoF_LadderZeny[@loop] + "^0000ff"; - mes "+================================+^000000"; - } - } - return; -} - -prontera,164,134,2 script Jury 109,{ - mes "[Jury]"; - mes "Good day. Would you like to view the Hall of Fame?"; - next; - menu "Yes",L_OK,"No",L_QUIT; - -L_OK: - mes "[Jury]"; - mes "Would you like to view the current or the past rankings?"; - -L_MENU: - next; - menu "Current", L_CUR, "Past", -,"Nevermind",L_QUIT; - callfunc "printHallOfFame",1; - goto L_MENU; - -L_CUR: - callfunc "printHallOfFame",0; - goto L_MENU; - -L_QUIT: - mes "[Jury]"; - mes "Have a nice day then."; - close; - -} diff --git a/npc/custom/Lance/FR_HallOfFame.txt b/npc/custom/Lance/FR_HallOfFame.txt new file mode 100644 index 000000000..1c8b2c79f --- /dev/null +++ b/npc/custom/Lance/FR_HallOfFame.txt @@ -0,0 +1,299 @@ +//===== rAthena Script ======================================= +//= Hall of Fame +//===== By: ================================================== +//= Lance (idea from emilylee78) +//===== Current Version: ===================================== +//= 2.4 FINAL +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= A Hall of Fame framework. Will update the list on every +//= login and logout in a safe manner. +//= +//= Usage: callfunc "printHallOfFame", $; +//= $ - Can be either 0 or 1. +//= 0 - Display the current rankings. +//= 1 - Display last week's rankings. +//= Note : Remember to put a close; after calling it. +//===== Additional Comments: ================================= +//= 1.0 - Initial beta release [Lance] +//= 1.1 - Fixed typos. Optimized a teeny bit. [Lance] +//= 1.2 - Bug fixes. [Lance] +//= 1.3 - Added a more realistic shuffling. [Lance] +//= 1.4 - Added Weekly Top 10 list. [Lance] +//= 1.5 - Friggin typos =< + Better shuffling [Lance] +//= 1.6 - Bugfixes [Lance] +//= 1.7 - More bugfixes. Type mismatch =P [Lance] +//= 2.0 - Exclude GMs and add recovery plan. +//= Suggested by EvilPoringOfDooom. [Lance] +//= 2.1 - Typo.. again.. T_T [Lance] +//= 2.2 - Minor updates and added Jury [Lance] +//= 2.3 - Utilizing eAthena's new scripting engine [Lance] +//= 2.4 - Minor bug fix with event script label (bugport:722) [Samura22] +//============================================================ + +prontera,0,0,0 script OnPCLoginEvent -1,{ +OnPCLoginEvent: + callfunc "HallOfFameInit"; + end; + +OnInit: + // Total Number of Players in Hall of Fame + // ======================================= + set $HoF_totalCount, 10; + // Reshuffle (Will affect perfomance) ==== + set $HoF_reshuffle, 1; + // Minimum GM Lvl to be excluded from HoF= + set $HoF_minGMLvl, 99; + // Recovery Plan to Remove GMs ============ + set $@HoF_recovery, 0; + // ======================================= + + //set $HoF_totalCount, $HoF_totalCount - 1; + set $@FebruaryD, 28; + if((gettime(7) % 4) == 0) { + set $@FebruaryD, 29; + } + setarray $@MonthDayThing[1],31, $@FebruaryD,31,30,31,30,31,31,30,31,30,31; + set $@HoF_TimeUpdateD, $HoF_LastUpdateD; + set $@HoF_TimeUpdateM, $HoF_LastUpdateM; + set $@HoF_TimeUpdateY, $HoF_LastUpdateY; + // Time to do some maths + set $@TimeNowD, gettime(5); + set $@TimeNowM, gettime(6); + set $@TimeNowY, gettime(7); + // Debug Message -- + debugmes "[Hall of Fame] Last Update is Year " + $@HoF_TimeUpdateY + " Month " + $@HoF_TimeUpdateM + " Day " + $@HoF_TimeUpdateD; + debugmes "[Hall of Fame] Today is Year " + $@TimeNowY + " Month " + $@TimeNowM + " Day " + $@TimeNowD; + if(($@TimeNowD - $@HoF_TimeUpdateD) < 0){ + set $@TimeNowD, $@TimeNowD + $@MonthDayThing[$@TimeNowM]; + set $@TimeNowM, $@TimeNowM - 1; + } + set $@GapD, $@TimeNowD - $@HoF_TimeUpdateD; + if(($@TimeNowM - $@HoF_TimeUpdateM) < 0){ + set $@TimeNowM, $@TimeNowM + 12; + set $@TimeNowY, $@TimeNowY - 1; + } + set $@GapM, $@TimeNowM - $@HoF_TimeUpdateM; + set $@GapY, $@TimeNowY - $@HoF_TimeUpdateY; + debugmes "[Hall of Fame] Gap is " + $@GapY + " Years " + $@GapM + " Months " + $@GapD + " Days."; + if($@GapY > 0 || $@GapM > 0 || $@GapD >= 7) { + callfunc "hallOfFameReset"; // Phew.. + } + end; + +OnClock0000: + set $HoF_UpdateCount, $HoF_UpdateCount + 1; + if($HoF_UpdateCount == 7) { + callfunc "hallOfFameReset"; + } + end; +} + +prontera,0,0,0 script PCLogoutEvent -1,{ +OnPCLogoutEvent: + callfunc "HallOfFameInit"; + end; +} + +function script hallOfFameReset { + copyarray $HoF_LadderNameO$[0], $HoF_LadderName$[0], $HoF_totalCount; + copyarray $HoF_LadderBLevelO[0], $HoF_LadderBLevel[0], $HoF_totalCount; + copyarray $HoF_LadderJLevelO[0], $HoF_LadderJLevel[0], $HoF_totalCount; + copyarray $HoF_LadderZenyO[0], $HoF_LadderZeny[0], $HoF_totalCount; + deletearray $HoF_LadderName$[0], $HoF_totalCount; + deletearray $HoF_LadderBLevel[0], $HoF_totalCount; + deletearray $HoF_LadderJLevel[0], $HoF_totalCount; + deletearray $HoF_LadderZeny[0], $HoF_totalCount; + set $HoF_LastUpdateD, gettime(5); + set $HoF_LastUpdateM, gettime(6); + set $HoF_LastUpdateY, gettime(7); + set $HoF_UpdateCount, 0; + debugmes "[Hall of Fame] System Reset Invoked!"; + return; +} + +function script HallOfFameInit { + if(getgmlevel() >= $HoF_minGMLvl && $@HoF_recovery != 1) { + set PCLogoutEvent, 0; + } else { + set PCLogoutEvent, 1; + callfunc "updateHallofFame", $HoF_reshuffle; + } + return; +} + +function script updateHallofFame { + set @i, 0; + if(getarg(0) == 1){ + goto L_ShuffleName; + } + if(BaseLevel >= $HoF_LadderBLevel[$HoF_totalCount-1]){ + goto L_checkBase; + } + goto L_End; + +L_ShuffleName: + if($HoF_LadderName$[@i] == strcharinfo(0)) { + goto L_ShuffleScore; + } + if(@i == $HoF_totalCount-1) { + goto L_checkEntry; + } + set @i, @i + 1; + goto L_ShuffleName; + +L_ShuffleScore: + deletearray $HoF_LadderName$[@i],1; + deletearray $HoF_LadderZeny[@i],1; + deletearray $HoF_LadderJLevel[@i],1; + deletearray $HoF_LadderBLevel[@i],1; + goto L_ShuffleName; + +L_checkEntry: + if(getgmlevel() >= $HoF_minGMLvl){ + end; + } + set @i, 0; + goto L_checkBase; + +L_checkBase: + if(BaseLevel >= $HoF_LadderBLevel[@i]) { + goto L_BaseOK; + } else { + goto L_Increment; + } + +L_BaseOK: + if(BaseLevel == $HoF_LadderBLevel[@i]){ + goto L_BaseSameLoop; + } else { + goto L_NewEntry; + } + +L_BaseSameLoop: + if(JobLevel >= $HoF_LadderJLevel[@i]) { + goto L_JobOK; + } else if(Zeny >= $HoF_LadderZeny[@i]) { + goto L_ZenyOK; + } + goto L_Increment; + +L_JobOK: + if(JobLevel == $HoF_LadderJLevel[@i]) { + goto L_JobSame; + } else { + goto L_NewEntry; + } + +L_ZenyOK: + if(Zeny == $HoF_LadderZeny[@i]){ + goto L_Increment; + } else { + goto L_NewEntry; + } + +L_JobSame: + if(Zeny >= $HoF_LadderZeny[@i]) { + goto L_ZenyOK; + } else { + goto L_Increment; + } + +L_NewEntry: + callfunc "hallOfFameNewEntry", @i, strcharinfo(0), BaseLevel, JobLevel, Zeny; + end; + +L_Increment: + if(@i == $HoF_totalCount-1) { + goto L_End; + } else { + set @i, @i + 1; + goto L_checkBase; + } + +L_End: + return; + +} + + +function script hallOfFameNewEntry { + if(getarg(0) == 0) goto L_New_Entry; + else if(getarg(1) != $HoF_LadderName$[getarg(0) - 1]) goto L_New_Entry; + return; + +L_New_Entry: + set @startPos, getarg(0); + copyarray @HoF_LadderNameB$[0], $HoF_LadderName$[@startPos], $HoF_totalCount; + copyarray @HoF_LadderBLevelB[0], $HoF_LadderBLevel[@startPos], $HoF_totalCount; + copyarray @HoF_LadderJLevelB[0], $HoF_LadderJLevel[@startPos], $HoF_totalCount; + copyarray @HoF_LadderZenyB[0], $HoF_LadderZeny[@startPos], $HoF_totalCount; + setarray $HoF_LadderName$[@startPos], getarg(1); + setarray $HoF_LadderBLevel[@startPos], getarg(2); + setarray $HoF_LadderJLevel[@startPos], getarg(3); + setarray $HoF_LadderZeny[@startPos], getarg(4); + set @startPos, @startPos + 1; + set @limitPos, $HoF_totalCount - @startPos; + copyarray $HoF_LadderName$[@startPos], @HoF_LadderNameB$[0], @limitPos; + copyarray $HoF_LadderBLevel[@startPos], @HoF_LadderBLevelB[0], @limitPos; + copyarray $HoF_LadderJLevel[@startPos], @HoF_LadderJLevelB[0], @limitPos; + copyarray $HoF_LadderZeny[@startPos], @HoF_LadderZenyB[0], @limitPos; + announce "[Hall of Fame] " + getarg(1) + " has made his/herself onto the No. " + @startPos + " ranking in Hall of Fame!", bc_all; + return; +} + +function script printHallOfFame { + if(getarg(0) == 1) { + mes "[Hall of Fame] - Last Week's Rankings"; + for(set @loop, 0; @loop < $HoF_totalCount; set @loop, @loop + 1){ + mes "^ff0000"; + mes "Position No. " + (@loop + 1) + ":^0000ff"; + mes "+================================+"; + mes "^000000Name :" + $HoF_LadderNameO$[@loop]; + mes "BLvl :" + $HoF_LadderBLevelO[@loop]; + mes "JLvl :" + $HoF_LadderJLevelO[@loop]; + mes "Zeny :" + $HoF_LadderZenyO[@loop] + "^0000ff"; + mes "+================================+^000000"; + } + } else { + mes "[Hall of Fame] - Current Rankings"; + for(set @loop, 0; @loop < $HoF_totalCount; set @loop, @loop + 1){ + mes "^ff0000"; + mes "Position No. " + (@loop + 1) + ":^0000ff"; + mes "+================================+"; + mes "^000000Name :" + $HoF_LadderName$[@loop]; + mes "BLvl :" + $HoF_LadderBLevel[@loop]; + mes "JLvl :" + $HoF_LadderJLevel[@loop]; + mes "Zeny :" + $HoF_LadderZeny[@loop] + "^0000ff"; + mes "+================================+^000000"; + } + } + return; +} + +prontera,164,134,2 script Jury 109,{ + mes "[Jury]"; + mes "Good day. Would you like to view the Hall of Fame?"; + next; + menu "Yes",L_OK,"No",L_QUIT; + +L_OK: + mes "[Jury]"; + mes "Would you like to view the current or the past rankings?"; + +L_MENU: + next; + menu "Current", L_CUR, "Past", -,"Nevermind",L_QUIT; + callfunc "printHallOfFame",1; + goto L_MENU; + +L_CUR: + callfunc "printHallOfFame",0; + goto L_MENU; + +L_QUIT: + mes "[Jury]"; + mes "Have a nice day then."; + close; +} diff --git a/npc/custom/Lance/FR_MailSystem.c b/npc/custom/Lance/FR_MailSystem.c deleted file mode 100644 index 26f9d90b1..000000000 --- a/npc/custom/Lance/FR_MailSystem.c +++ /dev/null @@ -1,118 +0,0 @@ -//(=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=) -//( (c)2005 RagMods Modification Team presents ) -//( ______ __ __ ) -//( /\ _ \/\ \__/\ \ v 1.00.00 ) -//( __\ \ \_\ \ \ ,_\ \ \___ __ ___ __ ) -//( /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ ) -//( /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \_\.\_ ) -//( \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ ) -//( \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ ) -//( ) -//( -- [s] [c] [r] [i] [p] [t] [s] -- ) -//( _ _ _ _ _ _ _ _ _ _ _ _ _ ) -//( / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ ) -//( ( e | n | g | l | i | s | h ) ( A | t | h | e | n | a ) ) -//( \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ ) -//( ) -//( Advanced Fusion Maps (c) 2003-2005 The Fusion Project ) -//(=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=) -//===== eAthena Script ====================================== -//= Mail System (using built in mail function) -//=========================================================== -//===== By ================================================== -//= [Lance] -//===== Version ============================================= -//= 1.0 -//===== Compatible With ===================================== -//= Any flavours of Athena SQL -//===== Description ========================================= -//= Allows players to send and receive mails without GM lvl. -//===== Comments ============================================ -//= 1.0 - Initial release [Lance] -//=========================================================== -prontera,143,171,3 script Messenger 738,1,1,{ - mes "[Messenger Deviruchi]"; - mes "Hiya! I'm the fastest messenger in Rune Midgard!"; - next; - mes "[Messenger Deviruchi]"; - mes "I can send your friends messages even if he or she is offline!"; - next; - mes "[Messenger Deviruchi]"; - mes "Wanna try?"; - menu "Yes", MENUSYS, "No", -; - close; - -MENUSYS: - next; - mes "[Messenger Deviruchi]"; - mes "What can I do for ya?"; - emotion e_what; - menu "Check Mail",L_CHECK,"Send Mail",L_SEND, "Leave", -; - next; - mes "[Messenger Deviruchi]"; - mes "Do come again!"; - emotion e_no1; - close; - -L_CHECK: - atcommand strcharinfo(0) + ":@listnewmail"; - menu "Read Mail", L_READ, "Check All Mails",CHKALLMAIL,"Send Mail",L_SEND, "Delete Mail", DELMAIL, "Back", MENUSYS; - close; - -CHKALLMAIL: - atcommand strcharinfo(0) + ":@listmail"; - menu "Read Mail", L_READ, "Delete Mail", DELMAIL, "Back", MENUSYS; - close; - -L_READ: - next; - mes "[Messenger Deviruchi]"; - mes "Please tell me the message number you want to read."; - input @msgnum; - next; - mes "[Messenger Deviruchi]"; - mes "Here it is!"; - emotion e_no1; - atcommand strcharinfo(0) + ":@readmail " + @msgnum; - menu "Reply Mail", L_SEND, "Back", MENUSYS; - close; - -L_SEND: - next; - mes "[Messenger Deviruchi]"; - mes "Who do you want to send this message to?"; - input @rcpt$; - next; - mes "[Messenger Deviruchi]"; - mes "What message do you want to send to him?"; - input @body$; - next; - atcommand strcharinfo(0) + ":@sendmail " + @rcpt$ + " " + @body$; - mes "[Messenger Deviruchi]"; - mes "All done!"; - emotion e_no1; - menu "Send another mail", L_SEND, "Back", MENUSYS; - close; - -DELMAIL: - next; - mes "[Messenger Deviruchi]"; - mes "Which message number do you want me to delete?"; - input @msgnum; - next; - mes "[Messenger Deviruchi]"; - mes "Are you sure you want to delete mail no. " + @msgnum + "?"; - menu "Yes",-,"No",DELMAIL, "Back", MENUSYS; - atcommand strcharinfo(0) + ":@deletemail " + @msgnum; - mes "[Messenger Deviruchi]"; - mes "All done!"; - - emotion e_no1; - menu "Delete another mail", DELMAIL, "Back", MENUSYS; - close; - -OnTouch: - npctalk "Relax.. I'm no bad guy.."; - emotion e_heh; - end; -} \ No newline at end of file diff --git a/npc/custom/Lance/FR_MailSystem.txt b/npc/custom/Lance/FR_MailSystem.txt new file mode 100644 index 000000000..e6b931167 --- /dev/null +++ b/npc/custom/Lance/FR_MailSystem.txt @@ -0,0 +1,99 @@ +//===== rAthena Script ======================================= +//= Custom Mail System +//===== By: ================================================== +//= Lance +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN; prior to new Mail System +//===== Description: ========================================= +//= Allows players to send and receive mails without GM lvl. +//===== Additional Comments: ================================= +//= 1.0 - Initial release [Lance] +//============================================================ + +prontera,143,171,3 script Messenger 738,1,1,{ + mes "[Messenger Deviruchi]"; + mes "Hiya! I'm the fastest messenger in Rune Midgard!"; + next; + mes "[Messenger Deviruchi]"; + mes "I can send your friends messages even if he or she is offline!"; + next; + mes "[Messenger Deviruchi]"; + mes "Wanna try?"; + menu "Yes", MENUSYS, "No", -; + close; + +MENUSYS: + next; + mes "[Messenger Deviruchi]"; + mes "What can I do for ya?"; + emotion e_what; + menu "Check Mail",L_CHECK,"Send Mail",L_SEND, "Leave", -; + next; + mes "[Messenger Deviruchi]"; + mes "Do come again!"; + emotion e_no1; + close; + +L_CHECK: + atcommand strcharinfo(0) + ":@listnewmail"; + menu "Read Mail", L_READ, "Check All Mails",CHKALLMAIL,"Send Mail",L_SEND, "Delete Mail", DELMAIL, "Back", MENUSYS; + close; + +CHKALLMAIL: + atcommand strcharinfo(0) + ":@listmail"; + menu "Read Mail", L_READ, "Delete Mail", DELMAIL, "Back", MENUSYS; + close; + +L_READ: + next; + mes "[Messenger Deviruchi]"; + mes "Please tell me the message number you want to read."; + input @msgnum; + next; + mes "[Messenger Deviruchi]"; + mes "Here it is!"; + emotion e_no1; + atcommand strcharinfo(0) + ":@readmail " + @msgnum; + menu "Reply Mail", L_SEND, "Back", MENUSYS; + close; + +L_SEND: + next; + mes "[Messenger Deviruchi]"; + mes "Who do you want to send this message to?"; + input @rcpt$; + next; + mes "[Messenger Deviruchi]"; + mes "What message do you want to send to him?"; + input @body$; + next; + atcommand strcharinfo(0) + ":@sendmail " + @rcpt$ + " " + @body$; + mes "[Messenger Deviruchi]"; + mes "All done!"; + emotion e_no1; + menu "Send another mail", L_SEND, "Back", MENUSYS; + close; + +DELMAIL: + next; + mes "[Messenger Deviruchi]"; + mes "Which message number do you want me to delete?"; + input @msgnum; + next; + mes "[Messenger Deviruchi]"; + mes "Are you sure you want to delete mail no. " + @msgnum + "?"; + menu "Yes",-,"No",DELMAIL, "Back", MENUSYS; + atcommand strcharinfo(0) + ":@deletemail " + @msgnum; + mes "[Messenger Deviruchi]"; + mes "All done!"; + emotion e_no1; + menu "Delete another mail", DELMAIL, "Back", MENUSYS; + close; + +OnTouch: + npctalk "Relax.. I'm no bad guy.."; + emotion e_heh; + end; +} diff --git a/npc/custom/Lance/FR_WeatherController.c b/npc/custom/Lance/FR_WeatherController.c deleted file mode 100644 index 506f6d41f..000000000 --- a/npc/custom/Lance/FR_WeatherController.c +++ /dev/null @@ -1,403 +0,0 @@ -- script dayNight -1,{ - end; - -OnInit: - if(gettime(3) > 7 && gettime(3) < 19) { - goto L_Day; - } else { - goto L_Night; - } - -L_Day: - day; - callfunc "RcloudFlag"; - end; - -L_Night: - night; - callfunc "cloudFlag"; - end; - -OnClock1900: - goto L_Night; - -OnClock0700: - goto L_Day; -} - -function script cloudFlag { -setmapflag "alb2trea",mf_clouds; -setmapflag "alberta",mf_clouds; -setmapflag "aldebaran",mf_clouds; -setmapflag "gef_fild00",mf_clouds; -setmapflag "gef_fild01",mf_clouds; -setmapflag "gef_fild02",mf_clouds; -setmapflag "gef_fild03",mf_clouds; -setmapflag "gef_fild04",mf_clouds; -setmapflag "gef_fild05",mf_clouds; -setmapflag "gef_fild06",mf_clouds; -setmapflag "gef_fild07",mf_clouds; -setmapflag "gef_fild08",mf_clouds; -setmapflag "gef_fild09",mf_clouds; -setmapflag "gef_fild10",mf_clouds; -setmapflag "gef_fild11",mf_clouds; -setmapflag "geffen",mf_clouds; -setmapflag "gl_church",mf_clouds; -setmapflag "gl_chyard",mf_clouds; -setmapflag "gl_knt01",mf_clouds; -setmapflag "gl_knt02",mf_clouds; -setmapflag "gl_step",mf_clouds; -setmapflag "glast_01",mf_clouds; -//setmapflag "hunter_1-1",mf_clouds; -//setmapflag "hunter_2-1",mf_clouds; -//setmapflag "hunter_3-1",mf_clouds; -setmapflag "izlude",mf_clouds; -setmapflag "job_thief1",mf_clouds; -//setmapflag "knight_1-1",mf_clouds; -//setmapflag "knight_2-1",mf_clouds; -//setmapflag "knight_3-1",mf_clouds; -setmapflag "mjolnir_01",mf_clouds; -setmapflag "mjolnir_02",mf_clouds; -setmapflag "mjolnir_03",mf_clouds; -setmapflag "mjolnir_04",mf_clouds; -setmapflag "mjolnir_05",mf_clouds; -setmapflag "mjolnir_06",mf_clouds; -setmapflag "mjolnir_07",mf_clouds; -setmapflag "mjolnir_08",mf_clouds; -setmapflag "mjolnir_09",mf_clouds; -setmapflag "mjolnir_10",mf_clouds; -setmapflag "mjolnir_11",mf_clouds; -setmapflag "mjolnir_12",mf_clouds; -setmapflag "moc_fild01",mf_clouds; -setmapflag "moc_fild02",mf_clouds; -setmapflag "moc_fild03",mf_clouds; -setmapflag "moc_fild04",mf_clouds; -setmapflag "moc_fild05",mf_clouds; -setmapflag "moc_fild06",mf_clouds; -setmapflag "moc_fild07",mf_clouds; -setmapflag "moc_fild08",mf_clouds; -setmapflag "moc_fild09",mf_clouds; -setmapflag "moc_fild10",mf_clouds; -setmapflag "moc_fild11",mf_clouds; -setmapflag "moc_fild12",mf_clouds; -setmapflag "moc_fild13",mf_clouds; -setmapflag "moc_fild14",mf_clouds; -setmapflag "moc_fild15",mf_clouds; -setmapflag "moc_fild16",mf_clouds; -setmapflag "moc_fild17",mf_clouds; -setmapflag "moc_fild18",mf_clouds; -setmapflag "moc_fild19",mf_clouds; -setmapflag "moc_pryd01",mf_clouds; -setmapflag "moc_pryd02",mf_clouds; -setmapflag "moc_pryd03",mf_clouds; -setmapflag "moc_pryd04",mf_clouds; -setmapflag "moc_pryd05",mf_clouds; -setmapflag "moc_pryd06",mf_clouds; -setmapflag "moc_prydb1",mf_clouds; -setmapflag "moc_ruins",mf_clouds; -setmapflag "morocc",mf_clouds; -//setmapflag "new_1-1",mf_clouds; -//setmapflag "new_1-2",mf_clouds; -//setmapflag "new_1-3",mf_clouds; -//setmapflag "new_1-4",mf_clouds; -setmapflag "pay_arche",mf_clouds; -setmapflag "pay_fild01",mf_clouds; -setmapflag "pay_fild02",mf_clouds; -setmapflag "pay_fild03",mf_clouds; -setmapflag "pay_fild04",mf_clouds; -setmapflag "pay_fild05",mf_clouds; -setmapflag "pay_fild06",mf_clouds; -setmapflag "pay_fild07",mf_clouds; -setmapflag "pay_fild08",mf_clouds; -setmapflag "pay_fild09",mf_clouds; -setmapflag "pay_fild10",mf_clouds; -setmapflag "pay_fild11",mf_clouds; -//setmapflag "priest_1-1",mf_clouds; -//setmapflag "priest_2-1",mf_clouds; -//setmapflag "priest_3-1",mf_clouds; -setmapflag "prontera",mf_clouds; -setmapflag "prt_are01",mf_clouds; -setmapflag "prt_fild00",mf_clouds; -setmapflag "prt_fild01",mf_clouds; -setmapflag "prt_fild02",mf_clouds; -setmapflag "prt_fild03",mf_clouds; -setmapflag "prt_fild04",mf_clouds; -setmapflag "prt_fild05",mf_clouds; -setmapflag "prt_fild06",mf_clouds; -setmapflag "prt_fild07",mf_clouds; -setmapflag "prt_fild08",mf_clouds; -setmapflag "prt_fild09",mf_clouds; -setmapflag "prt_fild10",mf_clouds; -setmapflag "prt_fild11",mf_clouds; -setmapflag "prt_maze01",mf_clouds; -setmapflag "prt_maze02",mf_clouds; -setmapflag "prt_maze03",mf_clouds; -setmapflag "prt_monk",mf_clouds; -setmapflag "cmd_fild01",mf_clouds; -setmapflag "cmd_fild02",mf_clouds; -setmapflag "cmd_fild03",mf_clouds; -setmapflag "cmd_fild04",mf_clouds; -setmapflag "cmd_fild05",mf_clouds; -setmapflag "cmd_fild06",mf_clouds; -setmapflag "cmd_fild07",mf_clouds; -setmapflag "cmd_fild08",mf_clouds; -setmapflag "cmd_fild09",mf_clouds; -setmapflag "cmd_in01",mf_clouds; -setmapflag "cmd_in02",mf_clouds; -setmapflag "gef_fild12",mf_clouds; -setmapflag "gef_fild13",mf_clouds; -setmapflag "gef_fild14",mf_clouds; -setmapflag "alde_gld",mf_clouds; -setmapflag "pay_gld",mf_clouds; -setmapflag "prt_gld",mf_clouds; -setmapflag "alde_alche",mf_clouds; -setmapflag "yuno",mf_clouds; -setmapflag "yuno_fild01",mf_clouds; -setmapflag "yuno_fild02",mf_clouds; -setmapflag "yuno_fild03",mf_clouds; -setmapflag "yuno_fild04",mf_clouds; -setmapflag "ama_fild01",mf_clouds; -setmapflag "ama_test",mf_clouds; -setmapflag "amatsu",mf_clouds; -setmapflag "gon_fild01",mf_clouds; -setmapflag "gon_test",mf_clouds; -setmapflag "gonryun",mf_clouds; -setmapflag "umbala",mf_clouds; -setmapflag "um_fild01",mf_clouds; -setmapflag "um_fild02",mf_clouds; -setmapflag "um_fild03",mf_clouds; -setmapflag "um_fild04",mf_clouds; -setmapflag "niflheim",mf_clouds; -setmapflag "nif_fild01",mf_clouds; -setmapflag "nif_fild02",mf_clouds; -setmapflag "nif_in",mf_clouds; -setmapflag "yggdrasil01",mf_clouds; -setmapflag "valkyrie",mf_clouds; -setmapflag "lou_fild01",mf_clouds; -setmapflag "louyang",mf_clouds; -setmapflag "nguild_gef",mf_clouds; -setmapflag "nguild_prt",mf_clouds; -setmapflag "nguild_pay",mf_clouds; -setmapflag "nguild_alde",mf_clouds; -setmapflag "jawaii",mf_clouds; -setmapflag "jawaii_in",mf_clouds; -setmapflag "gefenia01",mf_clouds; -setmapflag "gefenia02",mf_clouds; -setmapflag "gefenia03",mf_clouds; -setmapflag "gefenia04",mf_clouds; -setmapflag "payon",mf_clouds; -setmapflag "ayothaya",mf_clouds; -setmapflag "ayo_in01",mf_clouds; -setmapflag "ayo_in02",mf_clouds; -setmapflag "ayo_fild01",mf_clouds; -setmapflag "ayo_fild02",mf_clouds; -setmapflag "que_god01",mf_clouds; -setmapflag "que_god02",mf_clouds; -setmapflag "yuno_fild05",mf_clouds; -setmapflag "yuno_fild07",mf_clouds; -setmapflag "yuno_fild08",mf_clouds; -setmapflag "yuno_fild09",mf_clouds; -setmapflag "yuno_fild11",mf_clouds; -setmapflag "yuno_fild12",mf_clouds; -setmapflag "alde_tt02",mf_clouds; -setmapflag "einbech",mf_clouds; -setmapflag "einbroch",mf_clouds; -setmapflag "ein_fild06",mf_clouds; -setmapflag "ein_fild07",mf_clouds; -setmapflag "ein_fild08",mf_clouds; -setmapflag "ein_fild09",mf_clouds; -setmapflag "ein_fild10",mf_clouds; -setmapflag "que_sign01",mf_clouds; -setmapflag "ein_fild03",mf_clouds; -setmapflag "ein_fild04",mf_clouds; -setmapflag "lhz_fild02",mf_clouds; -setmapflag "lhz_fild03",mf_clouds; -return; -} - -function script RcloudFlag { -removemapflag "alb2trea",mf_clouds; -removemapflag "alberta",mf_clouds; -removemapflag "aldebaran",mf_clouds; -removemapflag "gef_fild00",mf_clouds; -removemapflag "gef_fild01",mf_clouds; -removemapflag "gef_fild02",mf_clouds; -removemapflag "gef_fild03",mf_clouds; -removemapflag "gef_fild04",mf_clouds; -removemapflag "gef_fild05",mf_clouds; -removemapflag "gef_fild06",mf_clouds; -removemapflag "gef_fild07",mf_clouds; -removemapflag "gef_fild08",mf_clouds; -removemapflag "gef_fild09",mf_clouds; -removemapflag "gef_fild10",mf_clouds; -removemapflag "gef_fild11",mf_clouds; -removemapflag "geffen",mf_clouds; -removemapflag "gl_church",mf_clouds; -removemapflag "gl_chyard",mf_clouds; -removemapflag "gl_knt01",mf_clouds; -removemapflag "gl_knt02",mf_clouds; -removemapflag "gl_step",mf_clouds; -removemapflag "glast_01",mf_clouds; -removemapflag "hunter_1-1",mf_clouds; -removemapflag "hunter_2-1",mf_clouds; -removemapflag "hunter_3-1",mf_clouds; -removemapflag "izlude",mf_clouds; -removemapflag "mjolnir_01",mf_clouds; -removemapflag "mjolnir_02",mf_clouds; -removemapflag "mjolnir_03",mf_clouds; -removemapflag "mjolnir_04",mf_clouds; -removemapflag "mjolnir_05",mf_clouds; -removemapflag "mjolnir_06",mf_clouds; -removemapflag "mjolnir_07",mf_clouds; -removemapflag "mjolnir_08",mf_clouds; -removemapflag "mjolnir_09",mf_clouds; -removemapflag "mjolnir_10",mf_clouds; -removemapflag "mjolnir_11",mf_clouds; -removemapflag "mjolnir_12",mf_clouds; -removemapflag "moc_fild01",mf_clouds; -removemapflag "moc_fild02",mf_clouds; -removemapflag "moc_fild03",mf_clouds; -removemapflag "moc_fild04",mf_clouds; -removemapflag "moc_fild05",mf_clouds; -removemapflag "moc_fild06",mf_clouds; -removemapflag "moc_fild07",mf_clouds; -removemapflag "moc_fild08",mf_clouds; -removemapflag "moc_fild09",mf_clouds; -removemapflag "moc_fild10",mf_clouds; -removemapflag "moc_fild11",mf_clouds; -removemapflag "moc_fild12",mf_clouds; -removemapflag "moc_fild13",mf_clouds; -removemapflag "moc_fild14",mf_clouds; -removemapflag "moc_fild15",mf_clouds; -removemapflag "moc_fild16",mf_clouds; -removemapflag "moc_fild17",mf_clouds; -removemapflag "moc_fild18",mf_clouds; -removemapflag "moc_fild19",mf_clouds; -removemapflag "moc_pryd01",mf_clouds; -removemapflag "moc_pryd02",mf_clouds; -removemapflag "moc_pryd03",mf_clouds; -removemapflag "moc_pryd04",mf_clouds; -removemapflag "moc_pryd05",mf_clouds; -removemapflag "moc_pryd06",mf_clouds; -removemapflag "moc_prydb1",mf_clouds; -removemapflag "moc_ruins",mf_clouds; -removemapflag "morocc",mf_clouds; -removemapflag "new_1-1",mf_clouds; -removemapflag "new_1-2",mf_clouds; -removemapflag "new_1-3",mf_clouds; -removemapflag "new_1-4",mf_clouds; -removemapflag "pay_arche",mf_clouds; -removemapflag "pay_fild01",mf_clouds; -removemapflag "pay_fild02",mf_clouds; -removemapflag "pay_fild03",mf_clouds; -removemapflag "pay_fild04",mf_clouds; -removemapflag "pay_fild05",mf_clouds; -removemapflag "pay_fild06",mf_clouds; -removemapflag "pay_fild07",mf_clouds; -removemapflag "pay_fild08",mf_clouds; -removemapflag "pay_fild09",mf_clouds; -removemapflag "pay_fild10",mf_clouds; -removemapflag "pay_fild11",mf_clouds; -removemapflag "priest_1-1",mf_clouds; -removemapflag "priest_2-1",mf_clouds; -removemapflag "priest_3-1",mf_clouds; -removemapflag "prontera",mf_clouds; -removemapflag "prt_are01",mf_clouds; -removemapflag "prt_fild00",mf_clouds; -removemapflag "prt_fild01",mf_clouds; -removemapflag "prt_fild02",mf_clouds; -removemapflag "prt_fild03",mf_clouds; -removemapflag "prt_fild04",mf_clouds; -removemapflag "prt_fild05",mf_clouds; -removemapflag "prt_fild06",mf_clouds; -removemapflag "prt_fild07",mf_clouds; -removemapflag "prt_fild08",mf_clouds; -removemapflag "prt_fild09",mf_clouds; -removemapflag "prt_fild10",mf_clouds; -removemapflag "prt_fild11",mf_clouds; -removemapflag "prt_maze01",mf_clouds; -removemapflag "prt_maze02",mf_clouds; -removemapflag "prt_maze03",mf_clouds; -removemapflag "prt_monk",mf_clouds; -removemapflag "cmd_fild01",mf_clouds; -removemapflag "cmd_fild02",mf_clouds; -removemapflag "cmd_fild03",mf_clouds; -removemapflag "cmd_fild04",mf_clouds; -removemapflag "cmd_fild05",mf_clouds; -removemapflag "cmd_fild06",mf_clouds; -removemapflag "cmd_fild07",mf_clouds; -removemapflag "cmd_fild08",mf_clouds; -removemapflag "cmd_fild09",mf_clouds; -removemapflag "gef_fild12",mf_clouds; -removemapflag "gef_fild13",mf_clouds; -removemapflag "gef_fild14",mf_clouds; -removemapflag "alde_gld",mf_clouds; -removemapflag "pay_gld",mf_clouds; -removemapflag "prt_gld",mf_clouds; -removemapflag "alde_alche",mf_clouds; -removemapflag "yuno",mf_clouds; -removemapflag "yuno_fild01",mf_clouds; -removemapflag "yuno_fild02",mf_clouds; -removemapflag "yuno_fild03",mf_clouds; -removemapflag "yuno_fild04",mf_clouds; -removemapflag "ama_fild01",mf_clouds; -removemapflag "ama_test",mf_clouds; -removemapflag "amatsu",mf_clouds; -removemapflag "gon_fild01",mf_clouds; -removemapflag "gon_in",mf_clouds; -removemapflag "gon_test",mf_clouds; -removemapflag "gonryun",mf_clouds; -removemapflag "umbala",mf_clouds; -removemapflag "um_fild01",mf_clouds; -removemapflag "um_fild02",mf_clouds; -removemapflag "um_fild03",mf_clouds; -removemapflag "um_fild04",mf_clouds; -removemapflag "niflheim",mf_clouds; -removemapflag "nif_fild01",mf_clouds; -removemapflag "nif_fild02",mf_clouds; -removemapflag "nif_in",mf_clouds; -removemapflag "yggdrasil01",mf_clouds; -removemapflag "valkyrie",mf_clouds; -removemapflag "lou_fild01",mf_clouds; -removemapflag "louyang",mf_clouds; -removemapflag "nguild_gef",mf_clouds; -removemapflag "nguild_prt",mf_clouds; -removemapflag "nguild_pay",mf_clouds; -removemapflag "nguild_alde",mf_clouds; -removemapflag "jawaii",mf_clouds; -removemapflag "jawaii_in",mf_clouds; -removemapflag "gefenia01",mf_clouds; -removemapflag "gefenia02",mf_clouds; -removemapflag "gefenia03",mf_clouds; -removemapflag "gefenia04",mf_clouds; -removemapflag "payon",mf_clouds; -removemapflag "ayothaya",mf_clouds; -removemapflag "ayo_in01",mf_clouds; -removemapflag "ayo_in02",mf_clouds; -removemapflag "ayo_fild01",mf_clouds; -removemapflag "ayo_fild02",mf_clouds; -removemapflag "que_god01",mf_clouds; -removemapflag "que_god02",mf_clouds; -removemapflag "yuno_fild05",mf_clouds; -removemapflag "yuno_fild07",mf_clouds; -removemapflag "yuno_fild08",mf_clouds; -removemapflag "yuno_fild09",mf_clouds; -removemapflag "yuno_fild11",mf_clouds; -removemapflag "yuno_fild12",mf_clouds; -removemapflag "alde_tt02",mf_clouds; -removemapflag "einbech",mf_clouds; -removemapflag "einbroch",mf_clouds; -removemapflag "ein_fild06",mf_clouds; -removemapflag "ein_fild07",mf_clouds; -removemapflag "ein_fild08",mf_clouds; -removemapflag "ein_fild09",mf_clouds; -removemapflag "ein_fild10",mf_clouds; -removemapflag "que_sign01",mf_clouds; -removemapflag "ein_fild03",mf_clouds; -removemapflag "ein_fild04",mf_clouds; -removemapflag "lhz_fild02",mf_clouds; -removemapflag "lhz_fild03",mf_clouds; -return; -} - - diff --git a/npc/custom/Lance/FR_WeatherController.txt b/npc/custom/Lance/FR_WeatherController.txt new file mode 100644 index 000000000..b71a3062b --- /dev/null +++ b/npc/custom/Lance/FR_WeatherController.txt @@ -0,0 +1,415 @@ +//===== rAthena Script ======================================= +//= Weather Controller +//===== By: ================================================== +//= Lance +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= controls the weather +//===== Additional Comments: ================================= +//= +//============================================================ + +- script dayNight -1,{ + end; + +OnInit: + if(gettime(3) > 7 && gettime(3) < 19) { + goto L_Day; + } else { + goto L_Night; + } + +L_Day: + day; + callfunc "RcloudFlag"; + end; + +L_Night: + night; + callfunc "cloudFlag"; + end; + +OnClock1900: + goto L_Night; + +OnClock0700: + goto L_Day; +} + +function script cloudFlag { + setmapflag "alb2trea",mf_clouds; + setmapflag "alberta",mf_clouds; + setmapflag "aldebaran",mf_clouds; + setmapflag "gef_fild00",mf_clouds; + setmapflag "gef_fild01",mf_clouds; + setmapflag "gef_fild02",mf_clouds; + setmapflag "gef_fild03",mf_clouds; + setmapflag "gef_fild04",mf_clouds; + setmapflag "gef_fild05",mf_clouds; + setmapflag "gef_fild06",mf_clouds; + setmapflag "gef_fild07",mf_clouds; + setmapflag "gef_fild08",mf_clouds; + setmapflag "gef_fild09",mf_clouds; + setmapflag "gef_fild10",mf_clouds; + setmapflag "gef_fild11",mf_clouds; + setmapflag "geffen",mf_clouds; + setmapflag "gl_church",mf_clouds; + setmapflag "gl_chyard",mf_clouds; + setmapflag "gl_knt01",mf_clouds; + setmapflag "gl_knt02",mf_clouds; + setmapflag "gl_step",mf_clouds; + setmapflag "glast_01",mf_clouds; + //setmapflag "hunter_1-1",mf_clouds; + //setmapflag "hunter_2-1",mf_clouds; + //setmapflag "hunter_3-1",mf_clouds; + setmapflag "izlude",mf_clouds; + setmapflag "job_thief1",mf_clouds; + //setmapflag "knight_1-1",mf_clouds; + //setmapflag "knight_2-1",mf_clouds; + //setmapflag "knight_3-1",mf_clouds; + setmapflag "mjolnir_01",mf_clouds; + setmapflag "mjolnir_02",mf_clouds; + setmapflag "mjolnir_03",mf_clouds; + setmapflag "mjolnir_04",mf_clouds; + setmapflag "mjolnir_05",mf_clouds; + setmapflag "mjolnir_06",mf_clouds; + setmapflag "mjolnir_07",mf_clouds; + setmapflag "mjolnir_08",mf_clouds; + setmapflag "mjolnir_09",mf_clouds; + setmapflag "mjolnir_10",mf_clouds; + setmapflag "mjolnir_11",mf_clouds; + setmapflag "mjolnir_12",mf_clouds; + setmapflag "moc_fild01",mf_clouds; + setmapflag "moc_fild02",mf_clouds; + setmapflag "moc_fild03",mf_clouds; + setmapflag "moc_fild04",mf_clouds; + setmapflag "moc_fild05",mf_clouds; + setmapflag "moc_fild06",mf_clouds; + setmapflag "moc_fild07",mf_clouds; + setmapflag "moc_fild08",mf_clouds; + setmapflag "moc_fild09",mf_clouds; + setmapflag "moc_fild10",mf_clouds; + setmapflag "moc_fild11",mf_clouds; + setmapflag "moc_fild12",mf_clouds; + setmapflag "moc_fild13",mf_clouds; + setmapflag "moc_fild14",mf_clouds; + setmapflag "moc_fild15",mf_clouds; + setmapflag "moc_fild16",mf_clouds; + setmapflag "moc_fild17",mf_clouds; + setmapflag "moc_fild18",mf_clouds; + setmapflag "moc_fild19",mf_clouds; + setmapflag "moc_pryd01",mf_clouds; + setmapflag "moc_pryd02",mf_clouds; + setmapflag "moc_pryd03",mf_clouds; + setmapflag "moc_pryd04",mf_clouds; + setmapflag "moc_pryd05",mf_clouds; + setmapflag "moc_pryd06",mf_clouds; + setmapflag "moc_prydb1",mf_clouds; + setmapflag "moc_ruins",mf_clouds; + setmapflag "morocc",mf_clouds; + //setmapflag "new_1-1",mf_clouds; + //setmapflag "new_1-2",mf_clouds; + //setmapflag "new_1-3",mf_clouds; + //setmapflag "new_1-4",mf_clouds; + setmapflag "pay_arche",mf_clouds; + setmapflag "pay_fild01",mf_clouds; + setmapflag "pay_fild02",mf_clouds; + setmapflag "pay_fild03",mf_clouds; + setmapflag "pay_fild04",mf_clouds; + setmapflag "pay_fild05",mf_clouds; + setmapflag "pay_fild06",mf_clouds; + setmapflag "pay_fild07",mf_clouds; + setmapflag "pay_fild08",mf_clouds; + setmapflag "pay_fild09",mf_clouds; + setmapflag "pay_fild10",mf_clouds; + setmapflag "pay_fild11",mf_clouds; + //setmapflag "priest_1-1",mf_clouds; + //setmapflag "priest_2-1",mf_clouds; + //setmapflag "priest_3-1",mf_clouds; + setmapflag "prontera",mf_clouds; + setmapflag "prt_are01",mf_clouds; + setmapflag "prt_fild00",mf_clouds; + setmapflag "prt_fild01",mf_clouds; + setmapflag "prt_fild02",mf_clouds; + setmapflag "prt_fild03",mf_clouds; + setmapflag "prt_fild04",mf_clouds; + setmapflag "prt_fild05",mf_clouds; + setmapflag "prt_fild06",mf_clouds; + setmapflag "prt_fild07",mf_clouds; + setmapflag "prt_fild08",mf_clouds; + setmapflag "prt_fild09",mf_clouds; + setmapflag "prt_fild10",mf_clouds; + setmapflag "prt_fild11",mf_clouds; + setmapflag "prt_maze01",mf_clouds; + setmapflag "prt_maze02",mf_clouds; + setmapflag "prt_maze03",mf_clouds; + setmapflag "prt_monk",mf_clouds; + setmapflag "cmd_fild01",mf_clouds; + setmapflag "cmd_fild02",mf_clouds; + setmapflag "cmd_fild03",mf_clouds; + setmapflag "cmd_fild04",mf_clouds; + setmapflag "cmd_fild05",mf_clouds; + setmapflag "cmd_fild06",mf_clouds; + setmapflag "cmd_fild07",mf_clouds; + setmapflag "cmd_fild08",mf_clouds; + setmapflag "cmd_fild09",mf_clouds; + setmapflag "cmd_in01",mf_clouds; + setmapflag "cmd_in02",mf_clouds; + setmapflag "gef_fild12",mf_clouds; + setmapflag "gef_fild13",mf_clouds; + setmapflag "gef_fild14",mf_clouds; + setmapflag "alde_gld",mf_clouds; + setmapflag "pay_gld",mf_clouds; + setmapflag "prt_gld",mf_clouds; + setmapflag "alde_alche",mf_clouds; + setmapflag "yuno",mf_clouds; + setmapflag "yuno_fild01",mf_clouds; + setmapflag "yuno_fild02",mf_clouds; + setmapflag "yuno_fild03",mf_clouds; + setmapflag "yuno_fild04",mf_clouds; + setmapflag "ama_fild01",mf_clouds; + setmapflag "ama_test",mf_clouds; + setmapflag "amatsu",mf_clouds; + setmapflag "gon_fild01",mf_clouds; + setmapflag "gon_test",mf_clouds; + setmapflag "gonryun",mf_clouds; + setmapflag "umbala",mf_clouds; + setmapflag "um_fild01",mf_clouds; + setmapflag "um_fild02",mf_clouds; + setmapflag "um_fild03",mf_clouds; + setmapflag "um_fild04",mf_clouds; + setmapflag "niflheim",mf_clouds; + setmapflag "nif_fild01",mf_clouds; + setmapflag "nif_fild02",mf_clouds; + setmapflag "nif_in",mf_clouds; + setmapflag "yggdrasil01",mf_clouds; + setmapflag "valkyrie",mf_clouds; + setmapflag "lou_fild01",mf_clouds; + setmapflag "louyang",mf_clouds; + setmapflag "nguild_gef",mf_clouds; + setmapflag "nguild_prt",mf_clouds; + setmapflag "nguild_pay",mf_clouds; + setmapflag "nguild_alde",mf_clouds; + setmapflag "jawaii",mf_clouds; + setmapflag "jawaii_in",mf_clouds; + setmapflag "gefenia01",mf_clouds; + setmapflag "gefenia02",mf_clouds; + setmapflag "gefenia03",mf_clouds; + setmapflag "gefenia04",mf_clouds; + setmapflag "payon",mf_clouds; + setmapflag "ayothaya",mf_clouds; + setmapflag "ayo_in01",mf_clouds; + setmapflag "ayo_in02",mf_clouds; + setmapflag "ayo_fild01",mf_clouds; + setmapflag "ayo_fild02",mf_clouds; + setmapflag "que_god01",mf_clouds; + setmapflag "que_god02",mf_clouds; + setmapflag "yuno_fild05",mf_clouds; + setmapflag "yuno_fild07",mf_clouds; + setmapflag "yuno_fild08",mf_clouds; + setmapflag "yuno_fild09",mf_clouds; + setmapflag "yuno_fild11",mf_clouds; + setmapflag "yuno_fild12",mf_clouds; + setmapflag "alde_tt02",mf_clouds; + setmapflag "einbech",mf_clouds; + setmapflag "einbroch",mf_clouds; + setmapflag "ein_fild06",mf_clouds; + setmapflag "ein_fild07",mf_clouds; + setmapflag "ein_fild08",mf_clouds; + setmapflag "ein_fild09",mf_clouds; + setmapflag "ein_fild10",mf_clouds; + setmapflag "que_sign01",mf_clouds; + setmapflag "ein_fild03",mf_clouds; + setmapflag "ein_fild04",mf_clouds; + setmapflag "lhz_fild02",mf_clouds; + setmapflag "lhz_fild03",mf_clouds; + return; +} + +function script RcloudFlag { + removemapflag "alb2trea",mf_clouds; + removemapflag "alberta",mf_clouds; + removemapflag "aldebaran",mf_clouds; + removemapflag "gef_fild00",mf_clouds; + removemapflag "gef_fild01",mf_clouds; + removemapflag "gef_fild02",mf_clouds; + removemapflag "gef_fild03",mf_clouds; + removemapflag "gef_fild04",mf_clouds; + removemapflag "gef_fild05",mf_clouds; + removemapflag "gef_fild06",mf_clouds; + removemapflag "gef_fild07",mf_clouds; + removemapflag "gef_fild08",mf_clouds; + removemapflag "gef_fild09",mf_clouds; + removemapflag "gef_fild10",mf_clouds; + removemapflag "gef_fild11",mf_clouds; + removemapflag "geffen",mf_clouds; + removemapflag "gl_church",mf_clouds; + removemapflag "gl_chyard",mf_clouds; + removemapflag "gl_knt01",mf_clouds; + removemapflag "gl_knt02",mf_clouds; + removemapflag "gl_step",mf_clouds; + removemapflag "glast_01",mf_clouds; + removemapflag "hunter_1-1",mf_clouds; + removemapflag "hunter_2-1",mf_clouds; + removemapflag "hunter_3-1",mf_clouds; + removemapflag "izlude",mf_clouds; + removemapflag "mjolnir_01",mf_clouds; + removemapflag "mjolnir_02",mf_clouds; + removemapflag "mjolnir_03",mf_clouds; + removemapflag "mjolnir_04",mf_clouds; + removemapflag "mjolnir_05",mf_clouds; + removemapflag "mjolnir_06",mf_clouds; + removemapflag "mjolnir_07",mf_clouds; + removemapflag "mjolnir_08",mf_clouds; + removemapflag "mjolnir_09",mf_clouds; + removemapflag "mjolnir_10",mf_clouds; + removemapflag "mjolnir_11",mf_clouds; + removemapflag "mjolnir_12",mf_clouds; + removemapflag "moc_fild01",mf_clouds; + removemapflag "moc_fild02",mf_clouds; + removemapflag "moc_fild03",mf_clouds; + removemapflag "moc_fild04",mf_clouds; + removemapflag "moc_fild05",mf_clouds; + removemapflag "moc_fild06",mf_clouds; + removemapflag "moc_fild07",mf_clouds; + removemapflag "moc_fild08",mf_clouds; + removemapflag "moc_fild09",mf_clouds; + removemapflag "moc_fild10",mf_clouds; + removemapflag "moc_fild11",mf_clouds; + removemapflag "moc_fild12",mf_clouds; + removemapflag "moc_fild13",mf_clouds; + removemapflag "moc_fild14",mf_clouds; + removemapflag "moc_fild15",mf_clouds; + removemapflag "moc_fild16",mf_clouds; + removemapflag "moc_fild17",mf_clouds; + removemapflag "moc_fild18",mf_clouds; + removemapflag "moc_fild19",mf_clouds; + removemapflag "moc_pryd01",mf_clouds; + removemapflag "moc_pryd02",mf_clouds; + removemapflag "moc_pryd03",mf_clouds; + removemapflag "moc_pryd04",mf_clouds; + removemapflag "moc_pryd05",mf_clouds; + removemapflag "moc_pryd06",mf_clouds; + removemapflag "moc_prydb1",mf_clouds; + removemapflag "moc_ruins",mf_clouds; + removemapflag "morocc",mf_clouds; + removemapflag "new_1-1",mf_clouds; + removemapflag "new_1-2",mf_clouds; + removemapflag "new_1-3",mf_clouds; + removemapflag "new_1-4",mf_clouds; + removemapflag "pay_arche",mf_clouds; + removemapflag "pay_fild01",mf_clouds; + removemapflag "pay_fild02",mf_clouds; + removemapflag "pay_fild03",mf_clouds; + removemapflag "pay_fild04",mf_clouds; + removemapflag "pay_fild05",mf_clouds; + removemapflag "pay_fild06",mf_clouds; + removemapflag "pay_fild07",mf_clouds; + removemapflag "pay_fild08",mf_clouds; + removemapflag "pay_fild09",mf_clouds; + removemapflag "pay_fild10",mf_clouds; + removemapflag "pay_fild11",mf_clouds; + removemapflag "priest_1-1",mf_clouds; + removemapflag "priest_2-1",mf_clouds; + removemapflag "priest_3-1",mf_clouds; + removemapflag "prontera",mf_clouds; + removemapflag "prt_are01",mf_clouds; + removemapflag "prt_fild00",mf_clouds; + removemapflag "prt_fild01",mf_clouds; + removemapflag "prt_fild02",mf_clouds; + removemapflag "prt_fild03",mf_clouds; + removemapflag "prt_fild04",mf_clouds; + removemapflag "prt_fild05",mf_clouds; + removemapflag "prt_fild06",mf_clouds; + removemapflag "prt_fild07",mf_clouds; + removemapflag "prt_fild08",mf_clouds; + removemapflag "prt_fild09",mf_clouds; + removemapflag "prt_fild10",mf_clouds; + removemapflag "prt_fild11",mf_clouds; + removemapflag "prt_maze01",mf_clouds; + removemapflag "prt_maze02",mf_clouds; + removemapflag "prt_maze03",mf_clouds; + removemapflag "prt_monk",mf_clouds; + removemapflag "cmd_fild01",mf_clouds; + removemapflag "cmd_fild02",mf_clouds; + removemapflag "cmd_fild03",mf_clouds; + removemapflag "cmd_fild04",mf_clouds; + removemapflag "cmd_fild05",mf_clouds; + removemapflag "cmd_fild06",mf_clouds; + removemapflag "cmd_fild07",mf_clouds; + removemapflag "cmd_fild08",mf_clouds; + removemapflag "cmd_fild09",mf_clouds; + removemapflag "gef_fild12",mf_clouds; + removemapflag "gef_fild13",mf_clouds; + removemapflag "gef_fild14",mf_clouds; + removemapflag "alde_gld",mf_clouds; + removemapflag "pay_gld",mf_clouds; + removemapflag "prt_gld",mf_clouds; + removemapflag "alde_alche",mf_clouds; + removemapflag "yuno",mf_clouds; + removemapflag "yuno_fild01",mf_clouds; + removemapflag "yuno_fild02",mf_clouds; + removemapflag "yuno_fild03",mf_clouds; + removemapflag "yuno_fild04",mf_clouds; + removemapflag "ama_fild01",mf_clouds; + removemapflag "ama_test",mf_clouds; + removemapflag "amatsu",mf_clouds; + removemapflag "gon_fild01",mf_clouds; + removemapflag "gon_in",mf_clouds; + removemapflag "gon_test",mf_clouds; + removemapflag "gonryun",mf_clouds; + removemapflag "umbala",mf_clouds; + removemapflag "um_fild01",mf_clouds; + removemapflag "um_fild02",mf_clouds; + removemapflag "um_fild03",mf_clouds; + removemapflag "um_fild04",mf_clouds; + removemapflag "niflheim",mf_clouds; + removemapflag "nif_fild01",mf_clouds; + removemapflag "nif_fild02",mf_clouds; + removemapflag "nif_in",mf_clouds; + removemapflag "yggdrasil01",mf_clouds; + removemapflag "valkyrie",mf_clouds; + removemapflag "lou_fild01",mf_clouds; + removemapflag "louyang",mf_clouds; + removemapflag "nguild_gef",mf_clouds; + removemapflag "nguild_prt",mf_clouds; + removemapflag "nguild_pay",mf_clouds; + removemapflag "nguild_alde",mf_clouds; + removemapflag "jawaii",mf_clouds; + removemapflag "jawaii_in",mf_clouds; + removemapflag "gefenia01",mf_clouds; + removemapflag "gefenia02",mf_clouds; + removemapflag "gefenia03",mf_clouds; + removemapflag "gefenia04",mf_clouds; + removemapflag "payon",mf_clouds; + removemapflag "ayothaya",mf_clouds; + removemapflag "ayo_in01",mf_clouds; + removemapflag "ayo_in02",mf_clouds; + removemapflag "ayo_fild01",mf_clouds; + removemapflag "ayo_fild02",mf_clouds; + removemapflag "que_god01",mf_clouds; + removemapflag "que_god02",mf_clouds; + removemapflag "yuno_fild05",mf_clouds; + removemapflag "yuno_fild07",mf_clouds; + removemapflag "yuno_fild08",mf_clouds; + removemapflag "yuno_fild09",mf_clouds; + removemapflag "yuno_fild11",mf_clouds; + removemapflag "yuno_fild12",mf_clouds; + removemapflag "alde_tt02",mf_clouds; + removemapflag "einbech",mf_clouds; + removemapflag "einbroch",mf_clouds; + removemapflag "ein_fild06",mf_clouds; + removemapflag "ein_fild07",mf_clouds; + removemapflag "ein_fild08",mf_clouds; + removemapflag "ein_fild09",mf_clouds; + removemapflag "ein_fild10",mf_clouds; + removemapflag "que_sign01",mf_clouds; + removemapflag "ein_fild03",mf_clouds; + removemapflag "ein_fild04",mf_clouds; + removemapflag "lhz_fild02",mf_clouds; + removemapflag "lhz_fild03",mf_clouds; + return; +} diff --git a/npc/custom/MVP_arena/amvp_func.txt b/npc/custom/MVP_arena/amvp_func.txt index 02e45e45a..0e49803d6 100644 --- a/npc/custom/MVP_arena/amvp_func.txt +++ b/npc/custom/MVP_arena/amvp_func.txt @@ -1,69 +1,62 @@ -// ---- MVP ARENA!!!!!! By Darkchild with 16 diff MVP's inside -// -- Optimised The MVP arena!!!! By massdriller -// - NPC in prontera - -// --- Optimising Functions +//===== rAthena Script ======================================= +//= MVP Arena functions +//===== By: ================================================== +//= Darkchild +//===== Current Version: ===================================== +//= 1.1 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= 16 diff MVP's inside +//===== Additional Comments: ================================= +//= 1.0 first version of script +//= 1.1 Optimised The MVP arena [massdriller] +//============================================================ function script Ramvp_1 { - mes "[ ^0065DFAlpha MVP^000000 ]"; - mes "Here you go!"; - return; + mes "Here you go!"; + return; } function script Ramvp_2 { - mes "[ ^0065DFBeta MVP^000000 ]"; - mes "Here you go!"; - return; + mes "Here you go!"; + return; } function script Ramvp_3 { - mes "[ ^0065DFTheta MVP^000000 ]"; - mes "Here you go!"; - return; - + mes "Here you go!"; + return; } - function script Ramvp_4 { - mes "[ ^0065DFEpsilon MVP^000000 ]"; - mes "Here you go!"; - return; - + mes "Here you go!"; + return; } function script Ramvp_M { - mes "How do you need help?."; menu "Harder Monsters",L_Next,"Heal Please",L_Heal,"Leave",L_Leave; - - L_Next: - return; - - L_Heal: - percentheal 100,100; - close; - - L_Leave: - warp "prontera",156,179; - close; - +L_Next: + return; +L_Heal: + percentheal 100,100; + close; +L_Leave: + warp "prontera",156,179; + close; } function script Ramvp_M2 { - mes "How do you need help?."; menu "Heal Please",L_Heal,"Leave",L_Leave; - - L_Heal: - percentheal 100,100; - close; - - L_Leave: - warp "prontera",156,179; - close; - +L_Heal: + percentheal 100,100; + close; +L_Leave: + warp "prontera",156,179; + close; } diff --git a/npc/custom/MVP_arena/arena_mvp.txt b/npc/custom/MVP_arena/arena_mvp.txt index 4f77e3387..adc8b7b29 100644 --- a/npc/custom/MVP_arena/arena_mvp.txt +++ b/npc/custom/MVP_arena/arena_mvp.txt @@ -1,26 +1,35 @@ -// ---- MVP ARENA!!!!!! By Darkchild with 16 diff MVP's inside -// -- Optimised The MVP arena!!!! By massdriller -// - NPC in prontera -// - Removed Duplicates [Silent] +//===== rAthena Script ======================================= +//= MVP Arena +//===== By: ================================================== +//= Darkchild +//===== Current Version: ===================================== +//= 1.3 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= 16 diff MVP's inside +//===== Additional Comments: ================================= +//= 1.0 first version of script +//= 1.1 Optimised The MVP arena [massdriller] +//= 1.2 - NPC in prontera [Silent] +//= - Removed Duplicates +//============================================================ prontera,154,197,3 script MVP Warper 768,{ - mes "[ ^0065DFMVP Warper^000000 ]"; mes "Would you like to go to the MVP Arena ?..."; if (select("Yes!","No thanks.") == 2) - close; + close; close2; warp "quiz_00",50,24; end; } - // --- Inside the Arena -// --- NPC's That explains thigns +// --- NPC's That explains things quiz_00,49,31,4 script MVP Arena Guide 778,{ - switch(select("Intro","I want to go back","Heal me please","Cancel")) { case 1: @@ -37,19 +46,19 @@ quiz_00,49,31,4 script MVP Arena Guide 778,{ next; mes "Good luck, Live long and Prosper!."; close; - break; + break; case 2: close2; warp "prontera",156,179; end; - break; + break; case 3: percentheal 100,100; close; - break; + break; case 4: close; - break; + break; } close; } @@ -59,7 +68,7 @@ quiz_00,56,31,4 script Alpha MVP 770,{ mes "[ ^0065DFAlpha MVP^000000 ]"; mes "I am the first Keeper, are you ready?."; if (select("Yes!","Urrr No.") == 2) - close; + close; mes "[ ^0065DFAlpha MVP^000000 ]"; mes "Which Arena you want to go to??"; @@ -82,43 +91,36 @@ Larena1: callfunc "Ramvp_1"; warp "pvp_n_1-2",102,102; close; - Larena2: if (getmapusers("pvp_n_2-2") > 49) goto Lsorry; callfunc "Ramvp_1"; warp "pvp_n_2-2",102,102; close; - Larena3: if (getmapusers("pvp_n_3-2") > 14) goto Lsorry; callfunc "Ramvp_1"; warp "pvp_n_3-2",102,102; close; - Larena4: if (getmapusers("pvp_n_4-2") > 14) goto Lsorry; callfunc "Ramvp_1"; warp "pvp_n_4-2",102,102; close; - Larena5: if (getmapusers("pvp_n_5-2") > 14) goto Lsorry; callfunc "Ramvp_1"; warp "pvp_n_5-2",102,102; close; - Larena6: if (getmapusers("pvp_n_6-2") > 14) goto Lsorry; callfunc "Ramvp_1"; warp "pvp_n_6-2",102,102; close; - Larena7: if (getmapusers("pvp_n_7-2") > 14) goto Lsorry; callfunc "Ramvp_1"; warp "pvp_n_7-2",102,102; close; - Larena8: if (getmapusers("pvp_n_8-2") > 14) goto Lsorry; callfunc "Ramvp_1"; @@ -160,43 +162,36 @@ Larena1: callfunc "Ramvp_2"; warp "pvp_n_1-3",102,102; close; - Larena2: if (getmapusers("pvp_n_2-3") > 14) goto Lsorry; callfunc "Ramvp_2"; warp "pvp_n_2-3",102,102; close; - Larena3: if (getmapusers("pvp_n_3-3") > 14) goto Lsorry; callfunc "Ramvp_2"; warp "pvp_n_3-3",102,102; close; - Larena4: if (getmapusers("pvp_n_4-3") > 14) goto Lsorry; callfunc "Ramvp_2"; warp "pvp_n_4-3",102,102; close; - Larena5: if (getmapusers("pvp_n_5-3") > 14) goto Lsorry; callfunc "Ramvp_2"; warp "pvp_n_5-3",102,102; close; - Larena6: if (getmapusers("pvp_n_6-3") > 14) goto Lsorry; callfunc "Ramvp_2"; warp "pvp_n_6-3",102,102; close; - Larena7: if (getmapusers("pvp_n_7-3") > 14) goto Lsorry; callfunc "Ramvp_2"; warp "pvp_n_7-3",102,102; close; - Larena8: if (getmapusers("pvp_n_8-3") > 14) goto Lsorry; callfunc "Ramvp_2"; @@ -238,44 +233,37 @@ Larena1: callfunc "Ramvp_3"; warp "pvp_n_1-4",102,102; close; - Larena2: if (getmapusers("pvp_n_2-4") > 14) goto Lsorry; callfunc "Ramvp_3"; warp "pvp_n_2-4",102,102; close; - Larena3: if (getmapusers("pvp_n_3-4") > 14) goto Lsorry; callfunc "Ramvp_3"; warp "pvp_n_3-4",102,102; close; - Larena4: if (getmapusers("pvp_n_4-4") > 14) goto Lsorry; mes "[ ^0065DFTheta MVP^000000 ]"; mes "Here you go!"; warp "pvp_n_4-4",102,102; close; - Larena5: if (getmapusers("pvp_n_5-4") > 14) goto Lsorry; callfunc "Ramvp_3"; warp "pvp_n_5-4",102,102; close; - Larena6: if (getmapusers("pvp_n_6-4") > 14) goto Lsorry; callfunc "Ramvp_3"; warp "pvp_n_6-4",102,102; close; - Larena7: if (getmapusers("pvp_n_7-4") > 14) goto Lsorry; callfunc "Ramvp_3"; warp "pvp_n_7-4",102,102; close; - Larena8: if (getmapusers("pvp_n_8-4") > 14) goto Lsorry; callfunc "Ramvp_3"; @@ -317,43 +305,36 @@ Larena1: callfunc "Ramvp_4"; warp "pvp_n_1-5",102,102; close; - Larena2: if (getmapusers("pvp_n_2-5") > 14) goto Lsorry; callfunc "Ramvp_4"; warp "pvp_n_2-5",102,102; close; - Larena3: if (getmapusers("pvp_n_3-5") > 14) goto Lsorry; callfunc "Ramvp_4"; warp "pvp_n_3-5",102,102; close; - Larena4: if (getmapusers("pvp_n_4-5") > 14) goto Lsorry; callfunc "Ramvp_4"; warp "pvp_n_4-5",102,102; close; - Larena5: if (getmapusers("pvp_n_5-5") > 14) goto Lsorry; callfunc "Ramvp_4"; warp "pvp_n_5-5",102,102; close; - Larena6: if (getmapusers("pvp_n_6-5") > 14) goto Lsorry; callfunc "Ramvp_4"; warp "pvp_n_6-5",102,102; close; - Larena7: if (getmapusers("pvp_n_7-5") > 14) goto Lsorry; callfunc "Ramvp_4"; warp "pvp_n_7-5",102,102; close; - Larena8: if (getmapusers("pvp_n_8-5") > 14) goto Lsorry; callfunc "Ramvp_4"; @@ -372,7 +353,6 @@ Lsorry: pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_2-2",102,102; close; @@ -382,7 +362,6 @@ L_Next: pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_3-2",102,102; close; @@ -392,7 +371,6 @@ L_Next: pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_4-2",102,102; close; @@ -402,7 +380,6 @@ L_Next: pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_5-2",102,102; close; @@ -412,7 +389,6 @@ L_Next: pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_6-2",102,102; close; @@ -422,7 +398,6 @@ L_Next: pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_7-2",102,102; close; @@ -432,7 +407,6 @@ L_Next: pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_8-2",102,102; close; @@ -447,7 +421,6 @@ pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_2-3",102,102; close; @@ -456,7 +429,6 @@ L_Next: pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_3-3",102,102; close; @@ -465,7 +437,6 @@ L_Next: pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_4-3",102,102; close; @@ -474,7 +445,6 @@ L_Next: pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_5-3",102,102; close; @@ -483,7 +453,6 @@ L_Next: pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_6-3",102,102; close; @@ -492,7 +461,6 @@ L_Next: pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_7-3",102,102; close; @@ -501,7 +469,6 @@ L_Next: pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_8-3",102,102; close; @@ -516,7 +483,6 @@ pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_2-4",102,102; close; @@ -526,7 +492,6 @@ L_Next: pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_3-4",102,102; close; @@ -535,7 +500,6 @@ L_Next: pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_4-4",102,102; close; @@ -544,7 +508,6 @@ L_Next: pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_5-4",102,102; close; @@ -553,7 +516,6 @@ L_Next: pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_6-4",102,102; close; @@ -562,7 +524,6 @@ L_Next: pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_7-4",102,102; close; @@ -571,7 +532,6 @@ L_Next: pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_8-4",102,102; close; @@ -586,7 +546,6 @@ pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_2-5",102,102; close; @@ -596,7 +555,6 @@ L_Next: pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_3-5",102,102; close; @@ -605,7 +563,6 @@ L_Next: pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_4-5",102,102; close; @@ -614,7 +571,6 @@ L_Next: pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_5-5",102,102; close; @@ -623,7 +579,6 @@ L_Next: pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_6-5",102,102; close; @@ -632,7 +587,6 @@ L_Next: pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_7-5",102,102; close; @@ -641,7 +595,6 @@ L_Next: pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ mes "[ ^0065DFMVP-Protector^000000 ]"; callfunc "Ramvp_M"; - L_Next: warp "pvp_n_8-5",102,102; close; diff --git a/npc/custom/WoE_Setter.txt b/npc/custom/WoE_Setter.txt index 61d5665eb..9e5dc05c1 100644 --- a/npc/custom/WoE_Setter.txt +++ b/npc/custom/WoE_Setter.txt @@ -1,14 +1,14 @@ -//===== rAthena Script ======================================= +//===== rAthena Script ======================================= //= War of Emperium - Time Setter -//===== By: ================================================== +//===== By: ================================================== //= Fredzilla -//===== Current Version: ===================================== -//= 1.5a -//===== Compatible With: ===================================== -//= rAthena 1.0 Final TXT -//===== Description: ========================================= +//===== Current Version: ===================================== +//= 1.5 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Lets a GM set WoE times from inside the game -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= Loops used = 4 (I like loops ^_^) //= Only GM's of lvl 99 can use it //= If anyone else tries to use it they will just get a list of WoE times @@ -23,7 +23,8 @@ //= Not even the normal WoE script can do this (by dafault) //= Removed the need for disabling the normal agit_event //= 1.5a Applied Playtester's fix. [Vicious] -//============================================================ +//============================================================ + prontera,162,194,5 script WoE Setter 806,{ mes "[Woe Setter]"; if(getgmlevel()<99) goto L_NotGM; diff --git a/npc/custom/airplane.txt b/npc/custom/airplane.txt index 5bc5d419c..2469b6a24 100644 --- a/npc/custom/airplane.txt +++ b/npc/custom/airplane.txt @@ -1,12 +1,11 @@ //===== rAthena Script ======================================= //= elRO Airship //===== By: ================================================== -//= Edited And removed irrelevent comments by rAthena Dev Team -//= Draike\Bluto\Hephaestus +//= Draike, Bluto, Hephaestus //===== Current Version: ===================================== //= 2.2a //===== Compatible With: ===================================== -//= rAthena SVN 02/05/2005 + +//= rAthena SVN //===== Description: ========================================= //= It's the elRO airship. XD //===== Additional Comments: ================================= @@ -14,225 +13,226 @@ //= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue. //= 2.1 Removed Duplicates [Silent] //= 2.2 Added missing next;'s [Evera] -//============================================================ -payon,153,43,5 script itinsetter -1,{ +//============================================================ -//This is just OnInit stuff to set the hourly intinerary. +payon,153,43,5 script itinsetter -1,{ + //This is just OnInit stuff to set the hourly intinerary. OnInit: -deletearray $locationsname$[0],500; -deletearray $locationsmap$[0],500; -deletearray $locationsx[0],500; -deletearray $locationsy[0],500; -deletearray $alreadygoneto[0],500; -setarray $locationsname$[0],"Airport"; -setarray $locationsname$[1],"Prontera"; -setarray $locationsname$[2],"Payon"; -setarray $locationsname$[3],"Aldebaran"; -setarray $locationsname$[4],"Alberta"; -setarray $locationsname$[5],"Geffen"; -setarray $locationsname$[6],"Morocc"; -setarray $locationsname$[7],"Glast Heim"; -setarray $locationsname$[8],"Umbala"; -setarray $locationsname$[9],"Comodo"; -setarray $locationsname$[10],"Amatsu"; -setarray $locationsname$[11],"Niflheim"; -setarray $locationsname$[12],"Lutie"; -setarray $locationsname$[13],"Louyang"; -setarray $locationsname$[14],"Gonryun"; -setarray $locationsname$[15],"Yuno"; -setarray $locationsname$[16],"Ant Hell"; -setarray $locationsname$[17],"Jawaii"; -setarray $locationsname$[18],"Orc Village"; -setarray $locationsname$[19],"Mjolnir Coal Mines"; -setarray $locationsname$[20],"Gefenia Ruins"; -setarray $locationsname$[21],"Ayothaya"; -setarray $locationsname$[22],"Lighthalzen"; -setarray $locationsname$[23],"Juperos"; -setarray $locationsmap$[0],"airport"; -setarray $locationsmap$[1],"prt_fild08"; -setarray $locationsmap$[2],"pay_fild08"; -setarray $locationsmap$[3],"mjolnir_12"; -setarray $locationsmap$[4],"pay_fild03"; -setarray $locationsmap$[5],"gef_fild00"; -setarray $locationsmap$[6],"moc_fild10"; -setarray $locationsmap$[7],"glast_01"; -setarray $locationsmap$[8],"umbala"; -setarray $locationsmap$[9],"comodo"; -setarray $locationsmap$[10],"amatsu"; -setarray $locationsmap$[11],"niflheim"; -setarray $locationsmap$[12],"xmas"; -setarray $locationsmap$[13],"louyang"; -setarray $locationsmap$[14],"gonryun"; -setarray $locationsmap$[15],"yuno"; -setarray $locationsmap$[16],"moc_fild04"; -setarray $locationsmap$[17],"jawaii"; -setarray $locationsmap$[18],"gef_fild10"; -setarray $locationsmap$[19],"mjolnir_02"; -setarray $locationsmap$[20],"gefenia01"; -setarray $locationsmap$[21],"ayothaya"; -setarray $locationsmap$[22],"lighthalzen"; -setarray $locationsmap$[23],"jupe_gate"; -setarray $locationsx[0],148; -setarray $locationsx[1],206; -setarray $locationsx[2],159; -setarray $locationsx[3],62; -setarray $locationsx[4],194; -setarray $locationsx[5],50; -setarray $locationsx[6],163; -setarray $locationsx[7],196; -setarray $locationsx[8],187; -setarray $locationsx[9],203; -setarray $locationsx[10],115; -setarray $locationsx[11],132; -setarray $locationsx[12],232; -setarray $locationsx[13],36; -setarray $locationsx[14],82; -setarray $locationsx[15],58; -setarray $locationsx[16],209; -setarray $locationsx[17],248; -setarray $locationsx[18],158; -setarray $locationsx[19],76; -setarray $locationsx[20],98; -setarray $locationsx[21],183; -setarray $locationsx[22],99; -setarray $locationsx[23],46; -setarray $locationsy[0],45; -setarray $locationsy[1],280; -setarray $locationsy[2],92; -setarray $locationsy[3],381; -setarray $locationsy[4],182; -setarray $locationsy[5],365; -setarray $locationsy[6],172; -setarray $locationsy[7],327; -setarray $locationsy[8],98; -setarray $locationsy[9],76; -setarray $locationsy[10],79; -setarray $locationsy[11],241; -setarray $locationsy[12],308; -setarray $locationsy[13],279; -setarray $locationsy[14],96; -setarray $locationsy[15],194; -setarray $locationsy[16],326; -setarray $locationsy[17],175; -setarray $locationsy[18],95; -setarray $locationsy[19],363; -setarray $locationsy[20],21; -setarray $locationsy[21],104; -setarray $locationsy[22],240; -setarray $locationsy[23],19; -goto resetgoneto; -end; + deletearray $locationsname$[0],500; + deletearray $locationsmap$[0],500; + deletearray $locationsx[0],500; + deletearray $locationsy[0],500; + deletearray $alreadygoneto[0],500; + setarray $locationsname$[0],"Airport"; + setarray $locationsname$[1],"Prontera"; + setarray $locationsname$[2],"Payon"; + setarray $locationsname$[3],"Aldebaran"; + setarray $locationsname$[4],"Alberta"; + setarray $locationsname$[5],"Geffen"; + setarray $locationsname$[6],"Morocc"; + setarray $locationsname$[7],"Glast Heim"; + setarray $locationsname$[8],"Umbala"; + setarray $locationsname$[9],"Comodo"; + setarray $locationsname$[10],"Amatsu"; + setarray $locationsname$[11],"Niflheim"; + setarray $locationsname$[12],"Lutie"; + setarray $locationsname$[13],"Louyang"; + setarray $locationsname$[14],"Gonryun"; + setarray $locationsname$[15],"Yuno"; + setarray $locationsname$[16],"Ant Hell"; + setarray $locationsname$[17],"Jawaii"; + setarray $locationsname$[18],"Orc Village"; + setarray $locationsname$[19],"Mjolnir Coal Mines"; + setarray $locationsname$[20],"Gefenia Ruins"; + setarray $locationsname$[21],"Ayothaya"; + setarray $locationsname$[22],"Lighthalzen"; + setarray $locationsname$[23],"Juperos"; + setarray $locationsmap$[0],"airport"; + setarray $locationsmap$[1],"prt_fild08"; + setarray $locationsmap$[2],"pay_fild08"; + setarray $locationsmap$[3],"mjolnir_12"; + setarray $locationsmap$[4],"pay_fild03"; + setarray $locationsmap$[5],"gef_fild00"; + setarray $locationsmap$[6],"moc_fild10"; + setarray $locationsmap$[7],"glast_01"; + setarray $locationsmap$[8],"umbala"; + setarray $locationsmap$[9],"comodo"; + setarray $locationsmap$[10],"amatsu"; + setarray $locationsmap$[11],"niflheim"; + setarray $locationsmap$[12],"xmas"; + setarray $locationsmap$[13],"louyang"; + setarray $locationsmap$[14],"gonryun"; + setarray $locationsmap$[15],"yuno"; + setarray $locationsmap$[16],"moc_fild04"; + setarray $locationsmap$[17],"jawaii"; + setarray $locationsmap$[18],"gef_fild10"; + setarray $locationsmap$[19],"mjolnir_02"; + setarray $locationsmap$[20],"gefenia01"; + setarray $locationsmap$[21],"ayothaya"; + setarray $locationsmap$[22],"lighthalzen"; + setarray $locationsmap$[23],"jupe_gate"; + setarray $locationsx[0],148; + setarray $locationsx[1],206; + setarray $locationsx[2],159; + setarray $locationsx[3],62; + setarray $locationsx[4],194; + setarray $locationsx[5],50; + setarray $locationsx[6],163; + setarray $locationsx[7],196; + setarray $locationsx[8],187; + setarray $locationsx[9],203; + setarray $locationsx[10],115; + setarray $locationsx[11],132; + setarray $locationsx[12],232; + setarray $locationsx[13],36; + setarray $locationsx[14],82; + setarray $locationsx[15],58; + setarray $locationsx[16],209; + setarray $locationsx[17],248; + setarray $locationsx[18],158; + setarray $locationsx[19],76; + setarray $locationsx[20],98; + setarray $locationsx[21],183; + setarray $locationsx[22],99; + setarray $locationsx[23],46; + setarray $locationsy[0],45; + setarray $locationsy[1],280; + setarray $locationsy[2],92; + setarray $locationsy[3],381; + setarray $locationsy[4],182; + setarray $locationsy[5],365; + setarray $locationsy[6],172; + setarray $locationsy[7],327; + setarray $locationsy[8],98; + setarray $locationsy[9],76; + setarray $locationsy[10],79; + setarray $locationsy[11],241; + setarray $locationsy[12],308; + setarray $locationsy[13],279; + setarray $locationsy[14],96; + setarray $locationsy[15],194; + setarray $locationsy[16],326; + setarray $locationsy[17],175; + setarray $locationsy[18],95; + setarray $locationsy[19],363; + setarray $locationsy[20],21; + setarray $locationsy[21],104; + setarray $locationsy[22],240; + setarray $locationsy[23],19; + goto resetgoneto; + end; setrandomitin: -set $@settervariable,$@settervariable + 1; -setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); -if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; -if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; -setarray $alreadygoneto[$locationn[$@settervariable]], 1; -if($@settervariable<12)goto setrandomitin; -end; + set $@settervariable,$@settervariable + 1; + setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1); + if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1; + if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin; + setarray $alreadygoneto[$locationn[$@settervariable]], 1; + if($@settervariable<12)goto setrandomitin; + end; resetgoneto: -deletearray $alreadygoneto[0], 500; -set $@currenttime, 0; -goto setrandomitin; + deletearray $alreadygoneto[0], 500; + set $@currenttime, 0; + goto setrandomitin; OnMinute00: -set $@currenttime, 1; -callfunc "F_Itinreset",12,1,2; + set $@currenttime, 1; + callfunc "F_Itinreset",12,1,2; OnMinute03: -set $destination,250; -end; + set $destination,250; + end; OnMinute05: -set $@currenttime, 2; -callfunc "F_Itinreset",1,2,3; + set $@currenttime, 2; + callfunc "F_Itinreset",1,2,3; OnMinute08: -set $destination,250; -end; + set $destination,250; + end; OnMinute10: -set $@currenttime, 3; -callfunc "F_Itinreset",2,3,4; + set $@currenttime, 3; + callfunc "F_Itinreset",2,3,4; OnMinute13: -set $destination,250; -end; + set $destination,250; + end; OnMinute15: -set $@currenttime, 4; -callfunc "F_Itinreset",3,4,5; + set $@currenttime, 4; + callfunc "F_Itinreset",3,4,5; OnMinute18: -set $destination,250; -end; + set $destination,250; + end; OnMinute20: -set $@currenttime, 5; -callfunc "F_Itinreset",4,5,6; + set $@currenttime, 5; + callfunc "F_Itinreset",4,5,6; OnMinute23: -set $destination,250; -end; + set $destination,250; + end; OnMinute25: -set $@currenttime, 6; -callfunc "F_Itinreset",5,6,7; + set $@currenttime, 6; + callfunc "F_Itinreset",5,6,7; OnMinute28: -set $destination,250; -end; + set $destination,250; + end; OnMinute30: -set $@currenttime, 7; -callfunc "F_Itinreset",6,7,8; + set $@currenttime, 7; + callfunc "F_Itinreset",6,7,8; OnMinute33: -set $destination,250; -end; + set $destination,250; + end; OnMinute35: -set $@currenttime, 8; -callfunc "F_Itinreset",7,8,9; + set $@currenttime, 8; + callfunc "F_Itinreset",7,8,9; OnMinute38: -set $destination,250; -end; + set $destination,250; + end; OnMinute40: -set $@currenttime, 9; -callfunc "F_Itinreset",8,9,10; + set $@currenttime, 9; + callfunc "F_Itinreset",8,9,10; OnMinute43: -set $destination,250; -end; + set $destination,250; + end; OnMinute45: -set $@currenttime, 10; -callfunc "F_Itinreset",9,10,11; + set $@currenttime, 10; + callfunc "F_Itinreset",9,10,11; OnMinute48: -set $destination,250; -end; + set $destination,250; + end; OnMinute50: -set $@currenttime, 11; -callfunc "F_Itinreset",10,11,12; + set $@currenttime, 11; + callfunc "F_Itinreset",10,11,12; OnMinute53: -set $destination,250; -end; + set $destination,250; + end; OnMinute55: -set $@currenttime, 12; -callfunc "F_Itinreset",11,12,1; + set $@currenttime, 12; + callfunc "F_Itinreset",11,12,1; OnMinute58: -set $destination,250; -end; + set $destination,250; + end; } + function script F_Porter { if($destination==getarg(0))goto Board; if($destination!=getarg(0))goto Notime; @@ -262,85 +262,87 @@ Notime: end; Itin: -mes "^FF0000[Porter]^000000"; -callfunc "F_Itin"; + mes "^FF0000[Porter]^000000"; + callfunc "F_Itin"; } + airport,153,43,5 script Airport Porter 774,{ -callfunc "F_Porter",0; + callfunc "F_Porter",0; } prt_fild08,206,279,5 script Porter#01 774,{ -callfunc "F_Porter",1; + callfunc "F_Porter",1; } gef_fild00,50,364,5 script Porter#02 774,{ -callfunc "F_Porter",5; + callfunc "F_Porter",5; } moc_fild10,163,173,5 script Porter#03 774,{ -callfunc "F_Porter",6; + callfunc "F_Porter",6; } mjolnir_12,61,380,5 script Porter#04 774,{ -callfunc "F_Porter",3; + callfunc "F_Porter",3; } pay_fild08,159,91,5 script Porter#05 774,{ -callfunc "F_Porter",2; + callfunc "F_Porter",2; } pay_fild03,194,181,5 script Porter#06 774,{ -callfunc "F_Porter",4; + callfunc "F_Porter",4; } glast_01,196,326,1 script Porter#07 774,{ -callfunc "F_Porter",7; + callfunc "F_Porter",7; } umbala,188,98,3 script Porter#08 774,{ -callfunc "F_Porter",8; + callfunc "F_Porter",8; } comodo,203,75,8 script Porter#09 774,{ -callfunc "F_Porter",9; + callfunc "F_Porter",9; } amatsu,115,78,8 script Porter#10 774,{ -callfunc "F_Porter",10; + callfunc "F_Porter",10; } niflheim,132,242,5 script Porter#11 774,{ -callfunc "F_Porter",11; + callfunc "F_Porter",11; } xmas,232,309,5 script Porter#12 774,{ -callfunc "F_Porter",12; + callfunc "F_Porter",12; } louyang,35,279,8 script Porter#13 774,{ -callfunc "F_Porter",13; + callfunc "F_Porter",13; } gonryun,82,95,7 script Porter#14 774,{ -callfunc "F_Porter",14; + callfunc "F_Porter",14; } yuno,58,195,4 script Porter#15 774,{ -callfunc "F_Porter",15; + callfunc "F_Porter",15; } moc_fild04,210,326,2 script Porter#16 774,{ -callfunc "F_Porter",16; + callfunc "F_Porter",16; } jawaii,247,174,7 script Porter#17 774,{ -callfunc "F_Porter",17; + callfunc "F_Porter",17; } gef_fild10,159,95,2 script Porter#18 774,{ -callfunc "F_Porter",18; + callfunc "F_Porter",18; } mjolnir_02,76,364,5 script Porter#19 774,{ -callfunc "F_Porter",19; + callfunc "F_Porter",19; } gefenia01,97,22,6 script Porter#20 774,{ -callfunc "F_Porter",20; + callfunc "F_Porter",20; } ayothaya,182,105,5 script Porter#21 774,{ -callfunc "F_Porter",21; + callfunc "F_Porter",21; } lighthalzen,99,241,4 script Porter#22 774,{ -callfunc "F_Porter",22; + callfunc "F_Porter",22; } jupe_gate,46,18,7 script Porter#23 774,{ -callfunc "F_Porter",23; + callfunc "F_Porter",23; } airport,141,43,5 script Itinerary Schedule 837,{ -mes "^FF0000[Itinerary]^000000"; -callfunc "F_Itin"; + mes "^FF0000[Itinerary]^000000"; + callfunc "F_Itin"; } + airplane,102,68,5 script Docker 852,{ if($destination == 250) goto Nowhere; mes "^FF0000[Airplane Attendant]^000000"; @@ -372,68 +374,69 @@ Nowhere: mes "We're currently in air. Please wait until the pilot has announced that we have safely landed."; close; } + function script F_Itin { -//This is the itinerary's function. It should work well enough. -if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit."; -if($@currenttime==0)close; -if($@currenttime==0)end; -set @tempo, 0; -set @tempo, $@currenttime - 1; -goto seta; -close; + //This is the itinerary's function. It should work well enough. + if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit."; + if($@currenttime==0)close; + if($@currenttime==0)end; + set @tempo, 0; + set @tempo, $@currenttime - 1; + goto seta; + close; seta: -set @tempo, @tempo + 1; -set @time, gettime(3); -set @minutes, 5 * @tempo - 5; -set @minutess, 5 * @tempo - 2; -if(@minutes<10)set @minutes$, "0" + @minutes; -if(@minutes>9)set @minutes$, @minutes; -if(@minutess<10)set @minutess$, "0" + @minutess; -if(@minutess>9)set @minutess$, @minutess; -if(@time<12)set @time$,@time; -if(@time==12)set @time$,12; -if(@time>12)set @time$,@time - 12; -if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@tempo<12)goto seta; -set @tempo, 0; -goto setb; + set @tempo, @tempo + 1; + set @time, gettime(3); + set @minutes, 5 * @tempo - 5; + set @minutess, 5 * @tempo - 2; + if(@minutes<10)set @minutes$, "0" + @minutes; + if(@minutes>9)set @minutes$, @minutes; + if(@minutess<10)set @minutess$, "0" + @minutess; + if(@minutess>9)set @minutess$, @minutess; + if(@time<12)set @time$,@time; + if(@time==12)set @time$,12; + if(@time>12)set @time$,@time - 12; + if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@tempo<12)goto seta; + set @tempo, 0; + goto setb; setb: -if($@currenttime - 1==@tempo)goto setc; -set @tempo, @tempo + 1; -set @time, gettime(3) + 1; -set @minutes, 5 * @tempo - 5; -set @minutess, 5 * @tempo - 2; -if(@minutes<10)set @minutes$, "0" + @minutes; -if(@minutes>9)set @minutes$, @minutes; -if(@minutess<10)set @minutess$, "0" + @minutess; -if(@minutess>9)set @minutess$, @minutess; -if(@time<12)set @time$,@time; -if(@time==12)set @time$,12; -if(@time>12)set @time$,@time - 12; -if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; -if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; -goto setb; + if($@currenttime - 1==@tempo)goto setc; + set @tempo, @tempo + 1; + set @time, gettime(3) + 1; + set @minutes, 5 * @tempo - 5; + set @minutess, 5 * @tempo - 2; + if(@minutes<10)set @minutes$, "0" + @minutes; + if(@minutes>9)set @minutes$, @minutes; + if(@minutess<10)set @minutess$, "0" + @minutess; + if(@minutess>9)set @minutess$, @minutess; + if(@time<12)set @time$,@time; + if(@time==12)set @time$,12; + if(@time>12)set @time$,@time - 12; + if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000"; + goto setb; setc: -close; -end; + close; + end; } -function script F_Itinreset { -setarray $alreadygoneto[$locationn[getarg(0)]], 0; -goto sest; +function script F_Itinreset { + setarray $alreadygoneto[$locationn[getarg(0)]], 0; + goto sest; sest: -setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); -if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; -setarray $alreadygoneto[$locationn[getarg(0)]], 1; -set $destination,$locationn[$@currenttime]; -announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16; -end; + setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1); + if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest; + setarray $alreadygoneto[$locationn[getarg(0)]], 1; + set $destination,$locationn[$@currenttime]; + announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16; + end; } diff --git a/npc/custom/ayothaya.txt b/npc/custom/ayothaya.txt deleted file mode 100644 index 2432bc970..000000000 --- a/npc/custom/ayothaya.txt +++ /dev/null @@ -1,724 +0,0 @@ -//===== rAthena Script ======================================= -//= Wandering poet NPC -//===== By: ================================================== -//= by MouseJstr -//===== Current Version: ===================================== -//= 0.2a -//===== Compatible With: ===================================== -//= rAthena 1.0 Final + -//===== Description: ========================================= - -ayothaya,58,134,5 script Louise Gluck 763,{ - mes "[Louise Gluck]"; - mes "What is the next line? "; - close; - - OnTimer5000: - npcwalkto 65,129; - npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; - end; - - OnTimer10000: - npcwalkto 71,131; - npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; - end; - - OnTimer15000: - npcwalkto 75,127; - npctalk "Beware the Jabberwock, my son! The jaws that bite, theh claws that catch!"; - end; - - OnTimer20000: - npcwalkto 80,122; - npctalk "Beware the Jubjub bird and shun The frumious Bandersnatch!"; - end; - - OnTimer25000: - npcwalkto 82,118; - npctalk "He took his vorpal sword in hand: Long time the manxome foe he sought-"; - end; - - OnTimer30000: - npcwalkto 93,115; - npctalk "So rested he by the Tumtum tree, And stood a while in thought."; - end; - - OnTimer35000: - npcwalkto 94,112; - npctalk "And, as in uffish thought he stood, The Jabberwock, with eyes of flame,"; - end; - - OnTimer40000: - npcwalkto 88,124; - npctalk "Came whiffling through the tulgey wood, And burbled as it came!"; - end; - - OnTimer45000: - npcwalkto 81,129; - npctalk "One, two! One, two! And through and through The vorpal blade went snicker-snack!"; - end; - - OnTimer50000: - npcwalkto 76,139; - npctalk "He left it dead, and with its head He went galumphing back."; - end; - - OnTimer55000: - npcwalkto 67,138; - npctalk "And hast though slain the Jabberwock? Come to my arms beamish boy!"; - end; - - OnTimer60000: - npcwalkto 59,144; - npctalk "O frabjous day! Callooh! Callay! He chortled in his joy."; - end; - - OnTimer65000: - npcwalkto 55,124; - npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; - end; - - OnTimer70000: - npcwalkto 58,134; - npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; - setnpctimer 0; - end; - - OnInit: - npcspeed 150; - initnpctimer; - end; -} - - -ayothaya,212,276,0 script Romeo 50,{ - mes "[Romeo]"; - mes "What is the next line? "; - close; - OnTimer0: - npctalk "He jests at scars that never felt a wound."; - end; - OnTimer6000: - npctalk "But, soft! what light through yonder window breaks?"; - end; - OnTimer8000: - npctalk "It is the east, and Juliet is the sun."; - end; - OnTimer10000: - npctalk "Arise, fair sun, and kill the envious moon,"; - end; - OnTimer12000: - npctalk "Who is already sick and pale with grief,"; - end; - OnTimer14000: - npctalk "That thou her maid art far more fair than she:"; - end; - OnTimer16000: - npctalk "Be not her maid, since she is envious;"; - end; - OnTimer18000: - npctalk "Her vestal livery is but sick and green"; - end; - OnTimer20000: - npctalk "And none but fools do wear it; cast it off."; - end; - OnTimer22000: - npctalk "It is my lady, O, it is my love!"; - end; - OnTimer24000: - npctalk "O, that she knew she were!"; - end; - OnTimer26000: - npctalk "She speaks yet she says nothing: what of that?"; - end; - OnTimer28000: - npctalk "Her eye discourses; I will answer it."; - end; - OnTimer30000: - npctalk "I am too bold, tis not to me she speaks:"; - end; - OnTimer32000: - npctalk "Two of the fairest stars in all the heaven,"; - end; - OnTimer34000: - npctalk "Having some business, do entreat her eyes"; - end; - OnTimer36000: - npctalk "To twinkle in their spheres till they return."; - end; - OnTimer38000: - npctalk "What if her eyes were there, they in her head?"; - end; - OnTimer40000: - npctalk "The brightness of her cheek would shame those stars,"; - end; - OnTimer42000: - npctalk "As daylight doth a lamp; her eyes in heaven"; - end; - OnTimer44000: - npctalk "Would through the airy region stream so bright"; - end; - OnTimer46000: - npctalk "That birds would sing and think it were not night."; - end; - OnTimer48000: - npctalk "See, how she leans her cheek upon her hand!"; - end; - OnTimer50000: - npctalk "O, that I were a glove upon that hand,"; - end; - OnTimer52000: - npctalk "That I might touch that cheek!"; - end; - OnTimer56000: - npctalk "She speaks:"; - end; - OnTimer58000: - npctalk "O, speak again, bright angel! for thou art"; - end; - OnTimer60000: - npctalk "As glorious to this night, being oer my head"; - end; - OnTimer62000: - npctalk "As is a winged messenger of heaven"; - end; - OnTimer64000: - npctalk "Unto the white-upturned wondering eyes"; - end; - OnTimer66000: - npctalk "Of mortals that fall back to gaze on him"; - end; - OnTimer68000: - npctalk "When he bestrides the lazy-pacing clouds"; - end; - OnTimer70000: - npctalk "And sails upon the bosom of the air."; - end; - OnTimer80000: - npctalk "Shall I hear more, or shall I speak at this?"; - end; - OnTimer106000: - npctalk "I take thee at thy word:"; - end; - OnTimer108000: - npctalk "Call me but love, and Ill be new baptized;"; - end; - OnTimer110000: - npctalk "Henceforth I never will be Romeo."; - end; - OnTimer116000: - npctalk "By a name"; - end; - OnTimer118000: - npctalk "I know not how to tell thee who I am:"; - end; - OnTimer120000: - npctalk "My name, dear saint, is hateful to myself,"; - end; - OnTimer122000: - npctalk "Because it is an enemy to thee;"; - end; - OnTimer124000: - npctalk "Had I it written, I would tear the word."; - end; - OnTimer132000: - npctalk "Neither, fair saint, if either thee dislike."; - end; - OnTimer142000: - npctalk "With loves light wings did I oer-perch these walls;"; - end; - OnTimer144000: - npctalk "For stony limits cannot hold love out,"; - end; - OnTimer146000: - npctalk "And what love can do that dares love attempt;"; - end; - OnTimer148000: - npctalk "Therefore thy kinsmen are no let to me."; - end; - OnTimer152000: - npctalk "Alack, there lies more peril in thine eye"; - end; - OnTimer154000: - npctalk "Than twenty of their swords: look thou but sweet,"; - end; - OnTimer156000: - npctalk "And I am proof against their enmity."; - end; - OnTimer160000: - npctalk "I have nights cloak to hide me from their sight;"; - end; - OnTimer162000: - npctalk "And but thou love me, let them find me here:"; - end; - OnTimer164000: - npctalk "My life were better ended by their hate,"; - end; - OnTimer166000: - npctalk "Than death prorogued, wanting of thy love."; - end; - OnTimer170000: - npctalk "By love, who first did prompt me to inquire;"; - end; - OnTimer172000: - npctalk "He lent me counsel and I lent him eyes."; - end; - OnTimer174000: - npctalk "I am no pilot; yet, wert thou as far"; - end; - OnTimer176000: - npctalk "As that vast shore washd with the farthest sea,"; - end; - OnTimer178000: - npctalk "I would adventure for such merchandise."; - end; - OnTimer224000: - npctalk "Lady, by yonder blessed moon I swear"; - end; - OnTimer226000: - npctalk "That tips with silver all these fruit-tree tops--"; - end; - OnTimer234000: - npctalk "What shall I swear by?"; - end; - OnTimer244000: - npctalk "If my hearts dear love--"; - end; - OnTimer264000: - npctalk "O, wilt thou leave me so unsatisfied?"; - end; - OnTimer268000: - npctalk "The exchange of thy loves faithful vow for mine."; - end; - OnTimer274000: - npctalk "Wouldst thou withdraw it? for what purpose, love?"; - end; - OnTimer294000: - npctalk "O blessed, blessed night! I am afeard."; - end; - OnTimer296000: - npctalk "Being in night, all this is but a dream,"; - end; - OnTimer298000: - npctalk "Too flattering-sweet to be substantial."; - end; - OnTimer330000: - npctalk "So thrive my soul--"; - end; - OnTimer334000: - npctalk "A thousand times the worse, to want thy light."; - end; - OnTimer336000: - npctalk "Love goes toward love, as schoolboys from"; - end; - OnTimer338000: - npctalk "their books,"; - end; - OnTimer340000: - npctalk "But love from love, toward school with heavy looks."; - end; - OnTimer356000: - npctalk "It is my soul that calls upon my name:"; - end; - OnTimer358000: - npctalk "How silver-sweet sound lovers tongues by night,"; - end; - OnTimer360000: - npctalk "Like softest music to attending ears!"; - end; - OnTimer364000: - npctalk "My dear?"; - end; - OnTimer370000: - npctalk "At the hour of nine."; - end; - OnTimer376000: - npctalk "Let me stand here till thou remember it."; - end; - OnTimer382000: - npctalk "And Ill still stay, to have thee still forget,"; - end; - OnTimer384000: - npctalk "Forgetting any other home but this."; - end; - OnTimer398000: - npctalk "I would I were thy bird."; - end; - OnTimer410000: - npctalk "Sleep dwell upon thine eyes, peace in thy breast!"; - end; - OnTimer412000: - npctalk "Would I were sleep and peace, so sweet to rest!"; - end; - OnTimer414000: - npctalk "Hence will I to my ghostly fathers cell,"; - end; - OnTimer416000: - npctalk "His help to crave, and my dear hap to tell."; - end; - OnTimer538000: - setnpctimer 0; - end; - OnInit: - npcspeed 150; - initnpctimer; - end; -} - -ayothaya,214,279,3 script Juliet 53,{ - mes "[Juliet]"; - mes "What is the next line? "; - close; - OnTimer54000: - npctalk "Ay me!"; - end; - OnTimer72000: - npctalk "O Romeo, Romeo! wherefore art thou Romeo?"; - end; - OnTimer74000: - npctalk "Deny thy father and refuse thy name;"; - end; - OnTimer76000: - npctalk "Or, if thou wilt not, be but sworn my love,"; - end; - OnTimer78000: - npctalk "And Ill no longer be a Capulet."; - end; - OnTimer82000: - npctalk "Tis but thy name that is my enemy;"; - end; - OnTimer84000: - npctalk "Thou art thyself, though not a Montague."; - end; - OnTimer86000: - npctalk "Whats Montague? it is nor hand, nor foot,"; - end; - OnTimer88000: - npctalk "Nor arm, nor face, nor any other part"; - end; - OnTimer90000: - npctalk "Belonging to a man. O, be some other name!"; - end; - OnTimer92000: - npctalk "Whats in a name? that which we call a rose"; - end; - OnTimer94000: - npctalk "By any other name would smell as sweet;"; - end; - OnTimer96000: - npctalk "So Romeo would, were he not Romeo calld,"; - end; - OnTimer98000: - npctalk "Retain that dear perfection which he owes"; - end; - OnTimer100000: - npctalk "Without that title. Romeo, doff thy name,"; - end; - OnTimer102000: - npctalk "And for that name which is no part of thee"; - end; - OnTimer104000: - npctalk "Take all myself."; - end; - OnTimer112000: - npctalk "What man art thou that thus bescreend in night"; - end; - OnTimer114000: - npctalk "So stumblest on my counsel?"; - end; - OnTimer126000: - npctalk "My ears have not yet drunk a hundred words"; - end; - OnTimer128000: - npctalk "Of that tongues utterance, yet I know the sound:"; - end; - OnTimer130000: - npctalk "Art thou not Romeo and a Montague?"; - end; - OnTimer134000: - npctalk "How camest thou hither, tell me, and wherefore?"; - end; - OnTimer136000: - npctalk "The orchard walls are high and hard to climb,"; - end; - OnTimer138000: - npctalk "And the place death, considering who thou art,"; - end; - OnTimer140000: - npctalk "If any of my kinsmen find thee here."; - end; - OnTimer150000: - npctalk "If they do see thee, they will murder thee."; - end; - OnTimer158000: - npctalk "I would not for the world they saw thee here."; - end; - OnTimer168000: - npctalk "By whose direction foundst thou out this place?"; - end; - OnTimer180000: - npctalk "Thou knowst the mask of night is on my face,"; - end; - OnTimer182000: - npctalk "Else would a maiden blush bepaint my cheek"; - end; - OnTimer184000: - npctalk "For that which thou hast heard me speak to-night"; - end; - OnTimer186000: - npctalk "Fain would I dwell on form, fain, fain deny"; - end; - OnTimer188000: - npctalk "What I have spoke: but farewell compliment!"; - end; - OnTimer190000: - npctalk "Dost thou love me? I know thou wilt say Ay,"; - end; - OnTimer192000: - npctalk "And I will take thy word: yet if thou swearst,"; - end; - OnTimer194000: - npctalk "Thou mayst prove false; at lovers perjuries"; - end; - OnTimer196000: - npctalk "Then say, Jove laughs. O gentle Romeo,"; - end; - OnTimer198000: - npctalk "If thou dost love, pronounce it faithfully:"; - end; - OnTimer200000: - npctalk "Or if thou thinkst I am too quickly won,"; - end; - OnTimer202000: - npctalk "Ill frown and be perverse an say thee nay,"; - end; - OnTimer204000: - npctalk "So thou wilt woo; but else, not for the world."; - end; - OnTimer206000: - npctalk "In truth, fair Montague, I am too fond,"; - end; - OnTimer208000: - npctalk "And therefore thou mayst think my havior light:"; - end; - OnTimer210000: - npctalk "But trust me, gentleman, Ill prove more true"; - end; - OnTimer212000: - npctalk "Than those that have more cunning to be strange."; - end; - OnTimer214000: - npctalk "I should have been more strange, I must confess,"; - end; - OnTimer216000: - npctalk "But that thou overheardst, ere I was ware,"; - end; - OnTimer218000: - npctalk "My true loves passion: therefore pardon me,"; - end; - OnTimer220000: - npctalk "And not impute this yielding to light love,"; - end; - OnTimer222000: - npctalk "Which the dark night hath so discovered."; - end; - OnTimer228000: - npctalk "O, swear not by the moon, the inconstant moon,"; - end; - OnTimer230000: - npctalk "That monthly changes in her circled orb,"; - end; - OnTimer232000: - npctalk "Lest that thy love prove likewise variable."; - end; - OnTimer236000: - npctalk "Do not swear at all;"; - end; - OnTimer238000: - npctalk "Or, if thou wilt, swear by thy gracious self,"; - end; - OnTimer240000: - npctalk "Which is the god of my idolatry,"; - end; - OnTimer242000: - npctalk "And Ill believe thee."; - end; - OnTimer246000: - npctalk "Well, do not swear: although I joy in thee,"; - end; - OnTimer248000: - npctalk "I have no joy of this contract to-night:"; - end; - OnTimer250000: - npctalk "It is too rash, too unadvised, too sudden;"; - end; - OnTimer252000: - npctalk "Too like the lightning, which doth cease to be"; - end; - OnTimer254000: - npctalk "Ere one can say It lightens. Sweet, good night!"; - end; - OnTimer256000: - npctalk "This bud of love, by summers ripening breath,"; - end; - OnTimer258000: - npctalk "May prove a beauteous flower when next we meet."; - end; - OnTimer260000: - npctalk "Good night, good night! as sweet repose and rest"; - end; - OnTimer262000: - npctalk "Come to thy heart as that within my breast!"; - end; - OnTimer266000: - npctalk "What satisfaction canst thou have to-night?"; - end; - OnTimer270000: - npctalk "I gave thee mine before thou didst request it:"; - end; - OnTimer272000: - npctalk "And yet I would it were to give again."; - end; - OnTimer276000: - npctalk "But to be frank, and give it thee again."; - end; - OnTimer278000: - npctalk "And yet I wish but for the thing I have:"; - end; - OnTimer280000: - npctalk "My bounty is as boundless as the sea,"; - end; - OnTimer282000: - npctalk "My love as deep; the more I give to thee,"; - end; - OnTimer284000: - npctalk "The more I have, for both are infinite."; - end; - OnTimer288000: - npctalk "I hear some noise within; dear love, adieu!"; - end; - OnTimer290000: - npctalk "Anon, good nurse! Sweet Montague, be true."; - end; - OnTimer292000: - npctalk "Stay but a little, I will come again."; - end; - OnTimer302000: - npctalk "Three words, dear Romeo, and good night indeed."; - end; - OnTimer304000: - npctalk "If that thy bent of love be honourable,"; - end; - OnTimer306000: - npctalk "Thy purpose marriage, send me word to-morrow,"; - end; - OnTimer308000: - npctalk "By one that Ill procure to come to thee,"; - end; - OnTimer310000: - npctalk "Where and what time thou wilt perform the rite;"; - end; - OnTimer312000: - npctalk "And all my fortunes at thy foot Ill lay"; - end; - OnTimer314000: - npctalk "And follow thee my lord throughout the world."; - end; - OnTimer318000: - npctalk "I come, anon.--But if thou meanst not well,"; - end; - OnTimer320000: - npctalk "I do beseech thee--"; - end; - OnTimer324000: - npctalk "By and by, I come:--"; - end; - OnTimer326000: - npctalk "To cease thy suit, and leave me to my grief:"; - end; - OnTimer328000: - npctalk "To-morrow will I send."; - end; - OnTimer332000: - npctalk "A thousand times good night!"; - end; - OnTimer344000: - npctalk "Hist! Romeo, hist! O, for a falconers voice,"; - end; - OnTimer346000: - npctalk "To lure this tassel-gentle back again!"; - end; - OnTimer348000: - npctalk "Bondage is hoarse, and may not speak aloud;"; - end; - OnTimer350000: - npctalk "Else would I tear the cave where Echo lies,"; - end; - OnTimer352000: - npctalk "And make her airy tongue more hoarse than mine,"; - end; - OnTimer354000: - npctalk "With repetition of my Romeos name."; - end; - OnTimer362000: - npctalk "Romeo!"; - end; - OnTimer366000: - npctalk "At what oclock to-morrow"; - end; - OnTimer368000: - npctalk "Shall I send to thee?"; - end; - OnTimer372000: - npctalk "I will not fail: tis twenty years till then."; - end; - OnTimer374000: - npctalk "I have forgot why I did call thee back."; - end; - OnTimer378000: - npctalk "I shall forget, to have thee still stand there,"; - end; - OnTimer380000: - npctalk "Remembering how I love thy company."; - end; - OnTimer386000: - npctalk "Tis almost morning; I would have thee gone:"; - end; - OnTimer388000: - npctalk "And yet no further than a wantons bird;"; - end; - OnTimer390000: - npctalk "Who lets it hop a little from her hand,"; - end; - OnTimer392000: - npctalk "Like a poor prisoner in his twisted gyves,"; - end; - OnTimer394000: - npctalk "And with a silk thread plucks it back again,"; - end; - OnTimer396000: - npctalk "So loving-jealous of his liberty."; - end; - OnTimer400000: - npctalk "Sweet, so would I:"; - end; - OnTimer402000: - npctalk "Yet I should kill thee with much cherishing."; - end; - OnTimer404000: - npctalk "Good night, good night! parting is such"; - end; - OnTimer406000: - npctalk "sweet sorrow,"; - end; - OnTimer408000: - npctalk "That I shall say good night till it be morrow."; - end; - OnTimer538000: - setnpctimer 0; - end; - OnInit: - npcspeed 150; - initnpctimer; - end; -} diff --git a/npc/custom/banks/bank.txt b/npc/custom/banks/bank.txt index 71763543c..00a33b67f 100644 --- a/npc/custom/banks/bank.txt +++ b/npc/custom/banks/bank.txt @@ -13,6 +13,7 @@ //= the script. To use it simply change the first set command //= to set the cost variable to whatever you want the fee to be. //============================================================ + prontera,132,217,5 script Banker 109,{ set @cost,500; mes "[Banker]"; @@ -123,4 +124,4 @@ Lcancel: mes "[Banker]"; mes "Very well... come again soon."; close; -} +} \ No newline at end of file diff --git a/npc/custom/banks/kafra_bank.txt b/npc/custom/banks/kafra_bank.txt index 3cf851287..734c129d5 100644 --- a/npc/custom/banks/kafra_bank.txt +++ b/npc/custom/banks/kafra_bank.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= The 2nd Bank of Prontera ( with daily 0.01% income! ) +//= The 2nd Bank of Prontera (with daily 0.01% income!) //===== By: ================================================== //= Lupus (1.0) //===== Current Version: ===================================== //= 1.2a //===== Compatible With: ===================================== -//= rAthena 1.x +//= rAthena SVN //===== Description: ========================================= //= A bank which has an interest % //===== Additional Comments: ================================= diff --git a/npc/custom/blackjack.txt b/npc/custom/blackjack.txt index c3d5b8d8f..951af3f68 100644 --- a/npc/custom/blackjack.txt +++ b/npc/custom/blackjack.txt @@ -1,131 +1,129 @@ -//===== rAthena Script ======================================= +//===== rAthena Script ======================================= //= Black Jack -//===== By: ================================================== +//===== By: ================================================== //= kobra_k88 -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= -//===== Description: ========================================= +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Black Jack card game. Gameplay based off standard casino //= black jack rules. Dealer must have at least 17 to stay and will //= automatically stay at 17 and up. Player must have at least //= 13 to stay. Aces counted as 11 or 1. Option to "Double Down". //= Currently does not allow for "insurance", or "splitting" //= of pairs. -//===== Additional Comments: ================================= -//= -//============================================================ - +//===== Additional Comments: ================================= +//= +//============================================================ cmd_in02,188,89,1 script Black Jack Dealer 57,{ - mes "[Dealer]"; mes "Hello there! Would you like to play a game of Black Jack?"; - M_Menu: +M_Menu: next; menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End; - M_0: - mes "[Dealer]"; - mes "What would you like to know?"; - sM_Menu0: - next; - menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c, - "Ace value.",sM_0d, "Nothing.",M_Menu; +M_0: + mes "[Dealer]"; + mes "What would you like to know?"; +sM_Menu0: + next; + menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c, + "Ace value.",sM_0d, "Nothing.",M_Menu; - sM_0a: - mes "[Dealer]"; - mes "Black Jack is a card game in which the goal is to get 21, or as"; - mes "close to 21 points as possible, without going over 21."; - next; - mes "[Dealer]"; - mes "Before the game starts, the player must make a bet. Once the bet"; - mes "has been made, both the dealer and the player are dealt 2 cards"; - mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,"; - mes "or you can choose to ^5533FF'pull'^000000."; - next; - mes "[Dealer]"; - mes "When you choose to 'stay', you are telling the dealer that you don't"; - mes "need anymore cards. This allows the dealer to pull if he/she"; - mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The"; - mes "dealer can only stay when he/she has^FF3355 17 points or more^000000."; - next; - mes "[Dealer]"; - mes "When you choose to 'pull', you are telling the dealer that you want"; - mes "another card. By pulling more cards you can increase your point"; - mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a"; - mes "card from the deck."; - goto sM_Menu0; - sM_0b: - mes "[Dealer]"; - mes "There are 3 ways to win and loose at Black Jack."; - next; - mes "[Dealer]"; - mes "1.) At the end of a Black Jack round, if you have more points"; - mes "than the dealer you will win the round. Conversely if you have"; - mes "less points than the dealer you will loose."; - next; - mes "[Dealer]"; - mes "2.) If you pull a card that makes your point total go over 21 you"; - mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If"; - mes "the dealer busts then you will win the round."; - next; - mes "[Dealer]"; - mes "3.) If you have a point total of 21 with the first 2 cards, you"; - mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000"; - mes "and happens when you get an 'Ace' and a '10 valued' card. If the"; - mes "dealer gets a Black Jack he/she will automatically win the round."; - next; - mes "[Dealer]"; - mes "4.) Besides winning and loosing, you can tie with the dealer. If"; - mes "both you and the dealer have the same point total at the end of a"; - mes "round, this will result in a tie with no winner and no loss or gain"; - mes "in money."; - next; - mes "[Dealer]"; - mes "This is called a ^5533FF'push'^000000 with the dealer. This also"; - mes "applies to both you and the dealer having Black Jack at the same"; - mes "time."; - goto sM_Menu0; - sM_0c: - mes "[Dealer]"; - mes "The 'Double Down' option allows you to double your current bet,"; - mes "but with the drawback that you will only be able to pull one"; - mes "additional card. This option is only available at the beggining of"; - mes "each round."; - next; - mes "[Dealer]"; - mes "An example of when doubling down is useful, is when"; - mes "your first 2 cards give you a point total of 11. You have a good"; - mes "chance of getting 21 or 20 with the next card that you draw. This"; - mes "would be a good hand to double down on."; - goto sM_Menu0; - sM_0d: - mes "[Dealer]"; - mes "The 'Ace' card is a unique card in the game of Black Jack because"; - mes "it can have 2 values. An Ace can be counted as either 11 points,"; - mes "or just 1 point. For example if you had an Ace and a 4, that would"; - mes "give you either 15 or 5 points."; - next; - mes "[Dealer]"; - mes "If you decided to stay, the Ace would automatically be counted as"; - mes "11 points to give you 15 points total."; - next; - mes "[Dealer]"; - mes "If you had decided to pull and received a 9, the ace would"; - mes "automatically be counted as 1 point to give you a total of 14"; - mes "points. If the Ace was counted as 11 points, you would have a"; - mes "point total over 21 and would have lost."; - next; - mes "[Dealer]"; - mes "It is because of the flexibilty you have with the 'Ace' that makes"; - mes "it the most powerfull card in the game."; - goto sM_Menu0; - M_End: - mes "[Dealer]"; - mes "Feel free to come back anytime"; - close; +sM_0a: + mes "[Dealer]"; + mes "Black Jack is a card game in which the goal is to get 21, or as"; + mes "close to 21 points as possible, without going over 21."; + next; + mes "[Dealer]"; + mes "Before the game starts, the player must make a bet. Once the bet"; + mes "has been made, both the dealer and the player are dealt 2 cards"; + mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,"; + mes "or you can choose to ^5533FF'pull'^000000."; + next; + mes "[Dealer]"; + mes "When you choose to 'stay', you are telling the dealer that you don't"; + mes "need anymore cards. This allows the dealer to pull if he/she"; + mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The"; + mes "dealer can only stay when he/she has^FF3355 17 points or more^000000."; + next; + mes "[Dealer]"; + mes "When you choose to 'pull', you are telling the dealer that you want"; + mes "another card. By pulling more cards you can increase your point"; + mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a"; + mes "card from the deck."; + goto sM_Menu0; +sM_0b: + mes "[Dealer]"; + mes "There are 3 ways to win and loose at Black Jack."; + next; + mes "[Dealer]"; + mes "1.) At the end of a Black Jack round, if you have more points"; + mes "than the dealer you will win the round. Conversely if you have"; + mes "less points than the dealer you will loose."; + next; + mes "[Dealer]"; + mes "2.) If you pull a card that makes your point total go over 21 you"; + mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If"; + mes "the dealer busts then you will win the round."; + next; + mes "[Dealer]"; + mes "3.) If you have a point total of 21 with the first 2 cards, you"; + mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000"; + mes "and happens when you get an 'Ace' and a '10 valued' card. If the"; + mes "dealer gets a Black Jack he/she will automatically win the round."; + next; + mes "[Dealer]"; + mes "4.) Besides winning and loosing, you can tie with the dealer. If"; + mes "both you and the dealer have the same point total at the end of a"; + mes "round, this will result in a tie with no winner and no loss or gain"; + mes "in money."; + next; + mes "[Dealer]"; + mes "This is called a ^5533FF'push'^000000 with the dealer. This also"; + mes "applies to both you and the dealer having Black Jack at the same"; + mes "time."; + goto sM_Menu0; +sM_0c: + mes "[Dealer]"; + mes "The 'Double Down' option allows you to double your current bet,"; + mes "but with the drawback that you will only be able to pull one"; + mes "additional card. This option is only available at the beggining of"; + mes "each round."; + next; + mes "[Dealer]"; + mes "An example of when doubling down is useful, is when"; + mes "your first 2 cards give you a point total of 11. You have a good"; + mes "chance of getting 21 or 20 with the next card that you draw. This"; + mes "would be a good hand to double down on."; + goto sM_Menu0; +sM_0d: + mes "[Dealer]"; + mes "The 'Ace' card is a unique card in the game of Black Jack because"; + mes "it can have 2 values. An Ace can be counted as either 11 points,"; + mes "or just 1 point. For example if you had an Ace and a 4, that would"; + mes "give you either 15 or 5 points."; + next; + mes "[Dealer]"; + mes "If you decided to stay, the Ace would automatically be counted as"; + mes "11 points to give you 15 points total."; + next; + mes "[Dealer]"; + mes "If you had decided to pull and received a 9, the ace would"; + mes "automatically be counted as 1 point to give you a total of 14"; + mes "points. If the Ace was counted as 11 points, you would have a"; + mes "point total over 21 and would have lost."; + next; + mes "[Dealer]"; + mes "It is because of the flexibilty you have with the 'Ace' that makes"; + mes "it the most powerfull card in the game."; + goto sM_Menu0; +M_End: + mes "[Dealer]"; + mes "Feel free to come back anytime"; + close; //================ L_Play: @@ -134,29 +132,29 @@ L_Play: next; menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End; - M_1a: - if(Zeny < 2) goto sL_NotEnuf; - set @bet, 2; - goto L_Cont0; - M_1b: - if(Zeny < 10) goto sL_NotEnuf; - set @bet, 10; - goto L_Cont0; - M_1c: - if(Zeny < 20) goto sL_NotEnuf; - set @bet, 20; - goto L_Cont0; - M_1d: - if(Zeny < 100) goto sL_NotEnuf; - set @bet, 100; - goto L_Cont0; +M_1a: + if(Zeny < 2) goto sL_NotEnuf; + set @bet, 2; + goto L_Cont0; +M_1b: + if(Zeny < 10) goto sL_NotEnuf; + set @bet, 10; + goto L_Cont0; +M_1c: + if(Zeny < 20) goto sL_NotEnuf; + set @bet, 20; + goto L_Cont0; +M_1d: + if(Zeny < 100) goto sL_NotEnuf; + set @bet, 100; + goto L_Cont0; - sL_NotEnuf: - mes "[Dealer]"; - mes "I'm sorry but you don't have enough zeny to make that bet."; - close; +sL_NotEnuf: + mes "[Dealer]"; + mes "I'm sorry but you don't have enough zeny to make that bet."; + close; - L_Cont0: +L_Cont0: mes "(the cards are being dealt)"; next; deletearray $@card[0],13; @@ -197,35 +195,35 @@ L_Start: if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double; if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay; - M_Stay: - mes "[Dealer]"; - if(@playTot < 13) goto sL_PlayToLow; - if(@dealTot > 16) mes "The Dealer stays."; - if(@dealTot > 16 || @numD == 5) goto L_Check; - mes "The Dealer is going to pull"; - next; - callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; - set @dealerTurn, 1; - goto L_Start; +M_Stay: + mes "[Dealer]"; + if(@playTot < 13) goto sL_PlayToLow; + if(@dealTot > 16) mes "The Dealer stays."; + if(@dealTot > 16 || @numD == 5) goto L_Check; + mes "The Dealer is going to pull"; + next; + callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce; + set @dealerTurn, 1; + goto L_Start; - sL_PlayToLow: - mes "I'm sorry but you do not have a high enough total to stay. You must pull."; - next; - goto M_Hit; +sL_PlayToLow: + mes "I'm sorry but you do not have a high enough total to stay. You must pull."; + next; + goto M_Hit; - M_Hit: - if(@numP == 5) goto M_Stay; - callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; - goto L_Start; - M_Double: - mes "[Dealer]"; - mes "Player has chosen to Double Down. You're current bet will be"; - mes "doubled, and you will only be able to pull 1 extra card."; - next; - set @dealerTurn, 1; - set @bet, @bet*2; - callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; - goto L_Start; +M_Hit: + if(@numP == 5) goto M_Stay; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + goto L_Start; +M_Double: + mes "[Dealer]"; + mes "Player has chosen to Double Down. You're current bet will be"; + mes "doubled, and you will only be able to pull 1 extra card."; + next; + set @dealerTurn, 1; + set @bet, @bet*2; + callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce; + goto L_Start; //============= L_Check: @@ -233,27 +231,27 @@ L_Check: if(@playTot < @dealTot) goto sL_Lose; if(@playTot == @dealTot) goto sL_Push; - sL_Win: - mes "[Dealer]"; - mes "Congratulations, you've won!"; - next; - set Zeny, Zeny + @bet; - goto L_Play; - sL_Lose: - mes "[Dealer]"; - mes "I'm sorry but you've lost."; - set Zeny, Zeny - @bet; - next; - goto L_Play; - sL_Push: - mes "[Dealer]"; - mes "Its a push. You tied with the Dealer."; - next; - goto L_Play; +sL_Win: + mes "[Dealer]"; + mes "Congratulations, you've won!"; + next; + set Zeny, Zeny + @bet; + goto L_Play; +sL_Lose: + mes "[Dealer]"; + mes "I'm sorry but you've lost."; + set Zeny, Zeny - @bet; + next; + goto L_Play; +sL_Push: + mes "[Dealer]"; + mes "Its a push. You tied with the Dealer."; + next; + goto L_Play; //================================== -// Sub function for dealing/pulling the cards + // Sub function for dealing/pulling the cards sF_GetCards: set @rnd, rand(1,13); if($@card[@rnd] == 4) goto sF_GetCards; @@ -272,28 +270,28 @@ sF_GetCards: return; //================================== -// Sub function for getting the total score for each hand + // Sub function for getting the total score for each hand sF_GetTot: set @i, 0; set @dealTot, 0; set @playTot, 0; - GetDealTot: - set @dealTot, @dealTot + @dealCard[@i]; - set @i, @i + 1; - if(@i < @numD) goto GetDealTot; - if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10; - set @i, 0; - GetPlayTot: - set @playTot, @playTot + @playCard[@i]; - set @i, @i + 1; - if(@i < @numP) goto GetPlayTot; - if(@pAce == 1 && @playTot > 21) set @pAce, 2; - if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10; +GetDealTot: + set @dealTot, @dealTot + @dealCard[@i]; + set @i, @i + 1; + if(@i < @numD) goto GetDealTot; + if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10; + set @i, 0; +GetPlayTot: + set @playTot, @playTot + @playCard[@i]; + set @i, @i + 1; + if(@i < @numP) goto GetPlayTot; + if(@pAce == 1 && @playTot > 21) set @pAce, 2; + if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10; return; //======================================= -// Sub function for displaying the Cards + // Sub function for displaying the Cards sF_D2cards: mes " .-----. .-----. "; mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | "; diff --git a/npc/custom/breeder.txt b/npc/custom/breeder.txt index cec5fc522..580042b45 100644 --- a/npc/custom/breeder.txt +++ b/npc/custom/breeder.txt @@ -1,53 +1,53 @@ -//===== rAthena Script ======================================= -//= Custom Free Breeder aka Universal Renter (not reccomended) -//===== By: ================================================== -//= rAthena Team -//===== Current Version: ===================================== +//===== rAthena Script ======================================= +//= Universal Rental NPC +//===== By: ================================================== +//= rAthena Dev Team +//===== Current Version: ===================================== //= 1.3a -//===== Compatible With: ===================================== -//= rAthena 1.0 Final + -//===== Description: ========================================= +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= A Free PecoPeco and Falcon Breeder -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= 1.1 FIXED checkriding/cart/falcon funcs [Lupus] //= 1.2 Added Rebirth/Advanced Class support [Mass Zero] //= 1.3 Simplified the checks of job [Silentdragon] //= 1.3a Fixed a Typo Error. [Samuray22] -// -Thanks to ~AnnieRuru~. +//= Thanks to ~AnnieRuru~. //= 1.4 Optimized Script. No need for 50 million Labels. [Spre] -//============================================================ - +//============================================================ + prontera,124,201,1 script Universal Rental Npc 726,{ mes "[Universal Rental Npc]"; mes "Hi, here you can rent Carts, Falcons or Pecopecos."; next; switch(select("Cart:Falcon:Peco")) { - case 1: - if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) { - setcart; - close; - }else{ - mes "[Universal Rental Npc]"; - mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; - close; - } - case 2: - if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { - setfalcon; - close; - }else{ - mes "[Universal Rental Npc]"; - mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; - close; - } - case 3: - if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) { - setriding; - close; - }else{ - mes "[Universal Rental Npc]"; - mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; - close; - } + case 1: + if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) { + setcart; + close; + } else { + mes "[Universal Rental Npc]"; + mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; + close; + } + case 2: + if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) { + setfalcon; + close; + } else { + mes "[Universal Rental Npc]"; + mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; + close; + } + case 3: + if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) { + setriding; + close; + } else { + mes "[Universal Rental Npc]"; + mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill."; + close; + } } } diff --git a/npc/custom/card_remover.txt b/npc/custom/card_remover.txt index c336c0cda..e0b40272d 100644 --- a/npc/custom/card_remover.txt +++ b/npc/custom/card_remover.txt @@ -1,99 +1,99 @@ -//===== rAthena Script ======================================= +//===== rAthena Script ======================================= //= Card Removal NPC -//===== By: ================================================== +//===== By: ================================================== //= TyrNemesis^ -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== +//===== Compatible With: ===================================== //= rAthena SVN -//===== Description: ========================================= +//===== Description: ========================================= //= Removes cards from equipped items. -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= 1.0 First version. [TyrNemesis^] //= 1.2 Optimized and fixed getequipname menu. [Kisuka] -//============================================================ +//============================================================ prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ mes "[Wise Old Woman]"; mes "Good day, young one. I have the power to remove cards that you have compounded onto your equipment. Does this idea please you?"; next; switch(select("Yes, it does.:What do you charge?:No thanks.")) { - case 1: - mes "[Wise Old Woman]"; - mes "Very well. Which item shall I examine for you?"; - next; + case 1: + mes "[Wise Old Woman]"; + mes "Very well. Which item shall I examine for you?"; + next; - setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; - set .@menu$,""; - for( set .@i,1; .@i <= 10; set .@i,.@i+1 ) - { - if( getequipisequiped(.@i) ) - set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]"; + setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; + set .@menu$,""; + for( set .@i,1; .@i <= 10; set .@i,.@i+1 ) + { + if( getequipisequiped(.@i) ) + set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]"; - set .@menu$, .@menu$ + ":"; - } - set .@part,select(.@menu$); - if(!getequipisequiped(.@part)) { - mes "[Wise Old Woman]"; - mes "Young one... Your not wearing anything there that I can remove cards from."; - close; - } - if(getequipcardcnt(.@part) == 0) { - mes "[Wise Old Woman]"; - mes "Young one... There are no cards compounded on this item. I can do nothing with it, I'm afraid."; - close; - } - set .@cardcount,getequipcardcnt(.@part); - - if (!checkweight(1202,(.@cardcount+1))) { - mes "^3355FFJust a minute!"; - mes "I can't offer any of my"; - mes "services to you because"; - mes "you're carrying too much"; - mes "stuff. Put your extra items in"; - mes "Kafra Storage and come again~"; - close; - } + set .@menu$, .@menu$ + ":"; + } + set .@part,select(.@menu$); + if(!getequipisequiped(.@part)) { mes "[Wise Old Woman]"; - mes "This item has " + .@cardcount + " cards compounded on it. To perform my magic, I will need " + (200000+(.@cardcount * 25000)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000."; - next; - if(select("Very well. Do it.:Nevermind.") == 2) { - mes "[Wise Old Woman]"; - mes "Very well. Return at once if you seek my services."; - close; - } - if((zeny < (200000+(.@cardcount * 25000))) || (countitem(1000) < 1) || (countitem(715) < 1)) { - mes "[Wise Old Woman]"; - mes "You do not have all the items I require to work my magic, child. Come again when you do."; - close; - } + mes "Young one... Your not wearing anything there that I can remove cards from."; + close; + } + if(getequipcardcnt(.@part) == 0) { mes "[Wise Old Woman]"; - mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?"; - next; - switch(select("I changed my mind about this.:The item.:The cards.")) { - case 1: - mes "[Wise Old Woman]"; - mes "Very well. Return at once if you seek my services."; - close; - case 2: - set .@failtype,1; - break; - case 3: - set .@failtype,2; - } + mes "Young one... There are no cards compounded on this item. I can do nothing with it, I'm afraid."; + close; + } + set .@cardcount,getequipcardcnt(.@part); + + if (!checkweight(1202,(.@cardcount+1))) { + mes "^3355FFJust a minute!"; + mes "I can't offer any of my"; + mes "services to you because"; + mes "you're carrying too much"; + mes "stuff. Put your extra items in"; + mes "Kafra Storage and come again~"; + close; + } + mes "[Wise Old Woman]"; + mes "This item has " + .@cardcount + " cards compounded on it. To perform my magic, I will need " + (200000+(.@cardcount * 25000)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000."; + next; + if(select("Very well. Do it.:Nevermind.") == 2) { + mes "[Wise Old Woman]"; + mes "Very well. Return at once if you seek my services."; + close; + } + if((zeny < (200000+(.@cardcount * 25000))) || (countitem(1000) < 1) || (countitem(715) < 1)) { mes "[Wise Old Woman]"; - mes "Very well. I shall begin."; - set zeny,zeny - (200000+(.@cardcount * 25000)); - delitem 1000,1; - delitem 715,1; - - // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt - // First value = Total failure chance (item and cards destroyed) - // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe) - // Third value = Harmless failure chance (all that's lost is your investment) + mes "You do not have all the items I require to work my magic, child. Come again when you do."; + close; + } + mes "[Wise Old Woman]"; + mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?"; + next; + switch(select("I changed my mind about this.:The item.:The cards.")) { + case 1: + mes "[Wise Old Woman]"; + mes "Very well. Return at once if you seek my services."; + close; + case 2: + set .@failtype,1; + break; + case 3: + set .@failtype,2; + } + mes "[Wise Old Woman]"; + mes "Very well. I shall begin."; + set zeny,zeny - (200000+(.@cardcount * 25000)); + delitem 1000,1; + delitem 715,1; + + // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt + // First value = Total failure chance (item and cards destroyed) + // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe) + // Third value = Harmless failure chance (all that's lost is your investment) - set .@failchance,rand(100); - /* + set .@failchance,rand(100); + /* if(.@failchance < 2) { next; failedremovecards .@part,0; @@ -105,7 +105,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ if(.@failchance < 8) { if (.@failtype == 1) { next; - failedremovecards .@part,1; + failedremovecards .@part,1; mes "[Wise Old Woman]"; mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay."; close; @@ -116,30 +116,30 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ failedremovecards .@part,2; mes "[Wise Old Woman]"; mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process."; - close; + close; } } */ - if(.@failchance < 10) { - next; - failedremovecards .@part,3; - mes "[Wise Old Woman]"; - mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay."; - close; - } + if(.@failchance < 10) { next; - successremovecards .@part; + failedremovecards .@part,3; mes "[Wise Old Woman]"; - mes "The process was a success. Here are your cards and your item. Farewell."; - close; - case 2: - mes "[Wise Old Woman]"; - mes "I charge a flat fee of 200000 zeny, plus 25000 zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic."; - close; - case 3: - mes "[Wise Old Woman]"; - mes "Very well. Return at once if you seek my services."; + mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay."; close; + } + next; + successremovecards .@part; + mes "[Wise Old Woman]"; + mes "The process was a success. Here are your cards and your item. Farewell."; + close; + case 2: + mes "[Wise Old Woman]"; + mes "I charge a flat fee of 200000 zeny, plus 25000 zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic."; + close; + case 3: + mes "[Wise Old Woman]"; + mes "Very well. Return at once if you seek my services."; + close; } } diff --git a/npc/custom/dye.txt b/npc/custom/dye.txt index 33571ba19..19fd2250b 100644 --- a/npc/custom/dye.txt +++ b/npc/custom/dye.txt @@ -1,27 +1,24 @@ -//===== rAthena Script ======================================= -//= Stylist Script -//===== By: ================================================== -//= rAthena Dev team -//= Revised by Nekosume [pyRO v3.0] -//===== Current Version: ===================================== +//===== rAthena Script ======================================= +//= Stylist +//===== By: ================================================== +//= Nekosume +//===== Current Version: ===================================== //= 4.2 -//===== Compatible With: ===================================== -//= Any rAthena Version -//===== Description: ========================================= -//= Revised dye NPC +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Changes your hair style, hair color, and cloth color. //===== Additional Comments: ================================= -//= v4.2 - Renamed to avoid conflict [Paradox924X] -//= v4.1 - New hairstyles added [Mass Zero] -//= v4.0 - Refined and Combined [Darkchild] -//= v3.0 - Added the 'Browse' options -//= v2.5 - Added more hair colors -//= v2.0 - Changed palette and hair style select -//= v1.5 - Revised script / different dialog -//= v1.0 - Split into two NPCs -//============================================================ +//= 1.0 - Split into two NPCs +//= 1.5 - Revised script / different dialog +//= 2.0 - Changed palette and hair style select +//= 2.5 - Added more hair colors +//= 3.0 - Added the 'Browse' options +//= 4.0 - Refined and Combined [Darkchild] +//= 4.1 - New hairstyles added [Mass Zero] +//= 4.2 - Renamed to avoid conflict [Paradox924X] +//============================================================ - -//Stylist------------------------------------------------------------------------------------------------------------ prontera,170,180,1 script Stylist#custom_stylist 122,{ mes "[^FF8000Stylist^000000]"; mes "I'm the greatest stylist in all of Rune-Midgard~~!"; @@ -30,147 +27,147 @@ prontera,170,180,1 script Stylist#custom_stylist 122,{ next; menu "Hair style",Lstyle,"Hair color",Lcolor,"Cloth Color",Lcloth,"Nothing",LCancel; - Lstyle: - mes "[^FF8000Stylist^000000]"; - mes "Do you want to browse through the choices, or do you know what you want?"; - next; - menu "Browse",Lbrowsesty,"I know what I want",Lwantsty; +Lstyle: + mes "[^FF8000Stylist^000000]"; + mes "Do you want to browse through the choices, or do you know what you want?"; + next; + menu "Browse",Lbrowsesty,"I know what I want",Lwantsty; - Lwantsty: - mes "[^FF8000Stylist^000000]"; - mes "Great! Now just pick a style and I'll get started!"; - next; - mes "[^FF8000Stylist^000000]"; - mes "Please pick a style number ^0000FFbetween 0 and 23^000000."; - mes "Number 0, by the way, is the default style for your character."; - next; - input @sty; - if (@sty>23) close; - if (@sty<0) close; - setlook 1,@sty; - next; - mes "[^FF8000Stylist^000000]"; - mes "Is this good, or do you want a different style?"; - next; - menu "This is good",-,"Different style, please",Lwantsty; - next; - mes "[^FF8000Stylist^000000]"; - mes "You look great~! Come back again, okay?"; - close; +Lwantsty: + mes "[^FF8000Stylist^000000]"; + mes "Great! Now just pick a style and I'll get started!"; + next; + mes "[^FF8000Stylist^000000]"; + mes "Please pick a style number ^0000FFbetween 0 and 23^000000."; + mes "Number 0, by the way, is the default style for your character."; + next; + input @sty; + if (@sty>23) close; + if (@sty<0) close; + setlook 1,@sty; + next; + mes "[^FF8000Stylist^000000]"; + mes "Is this good, or do you want a different style?"; + next; + menu "This is good",-,"Different style, please",Lwantsty; + next; + mes "[^FF8000Stylist^000000]"; + mes "You look great~! Come back again, okay?"; + close; - Lbrowsesty: - set @look, -1; - mes "[^FF8000Stylist^000000]"; - mes "Okay, here we go~! Just stop me when you see something you like, okay?"; - next; +Lbrowsesty: + set @look, -1; + mes "[^FF8000Stylist^000000]"; + mes "Okay, here we go~! Just stop me when you see something you like, okay?"; + next; - Lbrowserep: - set @look,@look+1; - setlook 1,@look; - mes "This is Pallete Number^FF9009 "+@look+" ^000000!"; - if(@look == 23) menu "Back To The Begin",Lbrowsesty,"I like this one",Lstop; - if(@look != 23) menu "Keep going",Lbrowserep,"I like this one",Lstop; - - Lcolor: - mes "[^FF8000Stylist^000000]"; - mes "Do you want to browse through the choices, or do you know what you want?"; - next; - menu "Browse",Lbrowsecolor,"I know what I want",Lwantcolor; +Lbrowserep: + set @look,@look+1; + setlook 1,@look; + mes "This is Pallete Number^FF9009 "+@look+" ^000000!"; + if(@look == 23) menu "Back To The Begin",Lbrowsesty,"I like this one",Lstop; + if(@look != 23) menu "Keep going",Lbrowserep,"I like this one",Lstop; + +Lcolor: + mes "[^FF8000Stylist^000000]"; + mes "Do you want to browse through the choices, or do you know what you want?"; + next; + menu "Browse",Lbrowsecolor,"I know what I want",Lwantcolor; - Lwantcolor: - mes "[^FF8000Stylist^000000]"; - mes "Just pick a color and we can get started."; - next; - mes "[^FF8000Stylist^000000]"; - mes "Please pick a style number ^0000FFbetween 0 and 20^000000."; - mes "Number 0, by the way, is the default color for your character."; - next; - mes "[^FF8000Stylist^000000]"; - mes "0 is default..."; - mes "1 is blonde..."; - mes "2 is lavender..."; - mes "3 is brown..."; - mes "4 is green..."; - mes "5 is blue..."; - mes "6 is white..."; - mes "7 is black..."; - mes "8 is red..."; - mes "and 9-20 are new colors."; - input @color; - if (@color>20) close; - if (@color<0) close; - setlook 6,@color; - next; - mes "[^FF8000Stylist^000000]"; - mes "Is this good, or do you want a different color?"; - next; - menu "This is good",-,"Different color, please",Lwantcolor; - next; - mes "[^FF8000Stylist^000000]"; - mes "You look great~! Come back again, okay?"; - close; +Lwantcolor: + mes "[^FF8000Stylist^000000]"; + mes "Just pick a color and we can get started."; + next; + mes "[^FF8000Stylist^000000]"; + mes "Please pick a style number ^0000FFbetween 0 and 20^000000."; + mes "Number 0, by the way, is the default color for your character."; + next; + mes "[^FF8000Stylist^000000]"; + mes "0 is default..."; + mes "1 is blonde..."; + mes "2 is lavender..."; + mes "3 is brown..."; + mes "4 is green..."; + mes "5 is blue..."; + mes "6 is white..."; + mes "7 is black..."; + mes "8 is red..."; + mes "and 9-20 are new colors."; + input @color; + if (@color>20) close; + if (@color<0) close; + setlook 6,@color; + next; + mes "[^FF8000Stylist^000000]"; + mes "Is this good, or do you want a different color?"; + next; + menu "This is good",-,"Different color, please",Lwantcolor; + next; + mes "[^FF8000Stylist^000000]"; + mes "You look great~! Come back again, okay?"; + close; - Lbrowsecolor: - set @look, -1; - mes "[^FF8000Stylist^000000]"; - mes "Okay, here we go~! Just stop me when you see something you like, okay?"; - next; +Lbrowsecolor: + set @look, -1; + mes "[^FF8000Stylist^000000]"; + mes "Okay, here we go~! Just stop me when you see something you like, okay?"; + next; - Lbrowsecolorrep: - set @look,@look+1; - setlook 6,@look; - mes "This is Pallete Number^FF9009 "+@look+" ^000000!"; - if(@look == 20) menu "Back To The Begin",Lbrowsecolor,"I like this one",Lstop; - if(@look != 20) menu "Keep going",Lbrowsecolorrep,"I like this one",Lstop; +Lbrowsecolorrep: + set @look,@look+1; + setlook 6,@look; + mes "This is Pallete Number^FF9009 "+@look+" ^000000!"; + if(@look == 20) menu "Back To The Begin",Lbrowsecolor,"I like this one",Lstop; + if(@look != 20) menu "Keep going",Lbrowsecolorrep,"I like this one",Lstop; - Lstop: - mes "[^FF8000Stylist^000000]"; - mes "You look great~! I love it~! ^_^"; - close; +Lstop: + mes "[^FF8000Stylist^000000]"; + mes "You look great~! I love it~! ^_^"; + close; - LCancel: - mes "[^FF8000Stylist^000000]"; - mes "Well come again."; - close; +LCancel: + mes "[^FF8000Stylist^000000]"; + mes "Well come again."; + close; - Lcloth: - mes "[^FF8000Stylist^000000]"; - mes "Do you want to browse through the choices, or do you know what you want?"; - next; - menu "Browse",Lbrowsecloth,"I know what I want",Lwantcloth; +Lcloth: + mes "[^FF8000Stylist^000000]"; + mes "Do you want to browse through the choices, or do you know what you want?"; + next; + menu "Browse",Lbrowsecloth,"I know what I want",Lwantcloth; - Lwantcloth: - mes "[^FF8000Stylist^000000]"; - mes "Great! Now just pick a pallete and I'll get started!"; - next; - mes "[^FF8000Stylist^000000]"; - mes "Please pick a style number ^0000FFbetween 0 and 77^000000."; - mes "Number 0, by the way, is the default style for your character."; - next; - input @pal; - if (@pal>77) close; - if (@pal<0) close; - setlook 7,@pal; - next; - mes "[^FF8000Stylist^000000]"; - mes "Is this good, or do you want a different pallet"; - next; - menu "This is good",-,"Different pallet, please",Lwantcloth; - next; - mes "[^FF8000Stylist^000000]"; - mes "You look great~! Come back again, okay?"; - close; +Lwantcloth: + mes "[^FF8000Stylist^000000]"; + mes "Great! Now just pick a pallete and I'll get started!"; + next; + mes "[^FF8000Stylist^000000]"; + mes "Please pick a style number ^0000FFbetween 0 and 77^000000."; + mes "Number 0, by the way, is the default style for your character."; + next; + input @pal; + if (@pal>77) close; + if (@pal<0) close; + setlook 7,@pal; + next; + mes "[^FF8000Stylist^000000]"; + mes "Is this good, or do you want a different pallet"; + next; + menu "This is good",-,"Different pallet, please",Lwantcloth; + next; + mes "[^FF8000Stylist^000000]"; + mes "You look great~! Come back again, okay?"; + close; - Lbrowsecloth: - set @look, -1; - mes "[^FF8000Stylist^000000]"; - mes "Okay, here we go~! Just stop me when you see something you like, okay?"; - next; +Lbrowsecloth: + set @look, -1; + mes "[^FF8000Stylist^000000]"; + mes "Okay, here we go~! Just stop me when you see something you like, okay?"; + next; - Lbrowseclothrep: - set @look,@look+1; - setlook 7,@look; - mes "This is Pallete Number^FF9009 "+@look+" ^000000!"; - if(@look == 77) menu "Back To The Begin",Lbrowsecloth,"I like this one",Lstop; - if(@look != 77) menu "Keep going",Lbrowseclothrep,"I like this one",Lstop; +Lbrowseclothrep: + set @look,@look+1; + setlook 7,@look; + mes "This is Pallete Number^FF9009 "+@look+" ^000000!"; + if(@look == 77) menu "Back To The Begin",Lbrowsecloth,"I like this one",Lstop; + if(@look != 77) menu "Keep going",Lbrowseclothrep,"I like this one",Lstop; } diff --git a/npc/custom/eAAC_Scripts/DonationGirl/donate.txt b/npc/custom/eAAC_Scripts/DonationGirl/donate.txt index dc7c0bb2a..f3d25c6d2 100644 --- a/npc/custom/eAAC_Scripts/DonationGirl/donate.txt +++ b/npc/custom/eAAC_Scripts/DonationGirl/donate.txt @@ -1,300 +1,250 @@ -//===== Athena Script ======================================= +//===== rAthena Script ======================================= //= Donation NPC -//===== By ================================================== +//===== By: ================================================== //= Josh -//===== Version ============================================= -//= 1.0 - First release. Probably contains bugs/security -//= risks. -//= 1.1 - Added a check for whether the account exists when -//= adding a donator. Need to improve ordering when -//= viewing all donations. -//= 1.2 - Modified for public use. Added checkweight feature. -//= 2.0 - Many changes, especially ones I had always wanted -//= to add to this script. Includes reading items from -//= a separate SQL table and more database manipulation -//= options for GMs. -//= 2.1 - Made few changes including the add/remove items -//= feature. -//= 3.0 - All strings inputted by a user and user/char names -//= in SQL queries are now escaped. Each item has a -//= price rather than a quantity. This script can work -//= with decimals. -//= 3.1 - Added quotes to some queries, fixed a variable and -//= removed a comment. -//= 3.2 - Fixed a problem where rAthena would crash if a -//= query returned NULL. -//= 3.3 - Optimized query speeds by combining a few select -//= queries into one. Requires Trunk 7975. -//= 3.4 - Added MySQL version check. If version < 5.0.8, all -//= queries with CAST are omitted. Use 5.0.8 and up -//= when possible. SQL errors may consequent if GM's -//= input is incorrect. Added logging of claims. -//= "log_npc" in log_athena.conf must be enabled. Logs -//= will appear in the "npclog" table. Claim menu now -//= only shows items that can be afforded. -//= 3.5 - Minor change to table. -//= 3.6 - Removed name column in donate_item_db. Added -//= support for item_db2 table. -//= 3.7 - Added Zeny support. $rate must be set for it to be -//= used. Removed truncate() in a query since rAthena -//= automatically truncates floats to ints. -//= 3.8 - Fixed problem with menus and null values. -//= 3.9 - Explicit reset of @aid. -//= 3.10 - Applied previous fix to other variables and forced -//= dialogue box closure every time database is -//= modified. -//= 3.11 - Explicit reset of another variable. Fixed typo -//= - with $rate. Added logmes for GM operations. -//===== Compatible With ===================================== -//= rAthena SQL - any version with the new query_sql command -//= (Trunk 7975 and up). -//= MySQL - 5.0.8 and up highly recommended but not required. -//===== Description ========================================= +//===== Current Version: ===================================== +//= 3.11 (changelog at end of file) +//===== Compatible With: ===================================== +//= rAthena SVN; SQL only, revision 7975+ +//===== Description: ========================================= //= A script that lets a player claim an item for donating. //= Allows a GM to input each donation. -//===== Comments ============================================ +//===== Comments ============================================= //= This script uses SQL tables to store variables for the //= amount donated by users and the items claimable. -//===== Installation ======================================== +//===== Installation ========================================= //= You must import donate.sql and donate_item_db.sql (and //= item_db.sql and item_db2.sql, which comes with rAthena) //= before using this script. -//=========================================================== -//= Thanks to Vich for helping me with the SQL syntax. -//= Thanks to Lance for helping me with the the arrays and -//= for implementing query_sql. -//= Thanks to Skotlex for implementing escape_sql. -//= Thanks to Toms for implementing the new multi-column -//= query_sql command. -//=========================================================== +//============================================================ prontera,145,179,5 script Donation Girl 714,{ -if (getgmlevel() >= 80) goto L_GM; + if (getgmlevel() >= 80) goto L_GM; L_START: -mes "[Donation Girl]"; -mes "Hello! I'm the Donation Girl!"; -mes "If you have made a donation,"; -mes "you are entitled to a reward!"; -next; -menu "More info",-,"Make a claim",L_CHECK,"Statistics",L_STATS; + mes "[Donation Girl]"; + mes "Hello! I'm the Donation Girl!"; + mes "If you have made a donation,"; + mes "you are entitled to a reward!"; + next; + menu "More info",-,"Make a claim",L_CHECK,"Statistics",L_STATS; L_INFO: -mes "[Donation Girl]"; -mes "Each month, a lot of money is paid to keep this server running."; -next; -mes "[Donation Girl]"; -mes "You can support us by donating any amount of money."; -next; -mes "[Donation Girl]"; -mes "To show our appreciation, we will gladly give you a reward."; -next; -menu "Continue",L_START,"Cancel",-; + mes "[Donation Girl]"; + mes "Each month, a lot of money is paid to keep this server running."; + next; + mes "[Donation Girl]"; + mes "You can support us by donating any amount of money."; + next; + mes "[Donation Girl]"; + mes "To show our appreciation, we will gladly give you a reward."; + next; + menu "Continue",L_START,"Cancel",-; L_CHECK: -query_sql "SELECT `amount`,`claimed` FROM `donate` WHERE `account_id` = "+getcharid(3), @amount$, @claimed$; -query_sql "SELECT "+@amount$+" - "+@claimed$, @value$; -query_sql "SELECT '"+@value$+"' > 0", @enough; -if(!@enough) { - mes "[Donation Girl]"; - mes "Sorry, you do not have enough to make a claim."; - mes "If you have donated but have not made a claim,"; - mes "Please give us time to process your donation."; - close; + query_sql "SELECT `amount`,`claimed` FROM `donate` WHERE `account_id` = "+getcharid(3), @amount$, @claimed$; + query_sql "SELECT "+@amount$+" - "+@claimed$, @value$; + query_sql "SELECT '"+@value$+"' > 0", @enough; + if(!@enough) { + mes "[Donation Girl]"; + mes "Sorry, you do not have enough to make a claim."; + mes "If you have donated but have not made a claim,"; + mes "Please give us time to process your donation."; + close; } L_CLAIM: -mes "[Donation Girl]"; -mes "Thankyou for donating!"; -mes "You have $"+@value$+" worth of credit!"; -mes "What would you like to claim?"; -next; -menu "Items",L_CLAIMITEM,"Zeny",L_ZENY; + mes "[Donation Girl]"; + mes "Thankyou for donating!"; + mes "You have $"+@value$+" worth of credit!"; + mes "What would you like to claim?"; + next; + menu "Items",L_CLAIMITEM,"Zeny",L_ZENY; L_CLAIMITEM: -mes "[Donation Girl]"; -mes "Very well. Which item would you like?"; -next; -query_sql "SELECT `id` FROM `donate_item_db` WHERE `price` <= "+@value$+" ORDER BY `id`",@name; -set @menu$, getitemname(@name[0]); + mes "[Donation Girl]"; + mes "Very well. Which item would you like?"; + next; + query_sql "SELECT `id` FROM `donate_item_db` WHERE `price` <= "+@value$+" ORDER BY `id`",@name; + set @menu$, getitemname(@name[0]); for(set @i, 1; @i < getarraysize(@name); set @i, @i + 1){ set @menu$, @menu$ + ":" + getitemname(@name[@i]); } -set @m, select(@menu$)-1; + set @m, select(@menu$)-1; -query_sql "SELECT `price` FROM `donate_item_db` WHERE `id` = "+@name[@m], @price$; -query_sql "SELECT "+@value$+" / "+@price$, @max; + query_sql "SELECT `price` FROM `donate_item_db` WHERE `id` = "+@name[@m], @price$; + query_sql "SELECT "+@value$+" / "+@price$, @max; -mes "[Donation Girl]"; -mes getitemname(@name[@m])+"s cost $"+@price$+" each."; -mes "How many "+getitemname(@name[@m])+"s would you like to claim?"; -mes "Maximum: "+@max+"."; -input @quantity; -mes "[Donation Girl]"; -if(@quantity>@max) { - mes "Sorry, but you do not have enough to claim "+@quantity+" "+getitemname(@name[@m])+"s."; - next; - goto L_CLAIM; + mes "[Donation Girl]"; + mes getitemname(@name[@m])+"s cost $"+@price$+" each."; + mes "How many "+getitemname(@name[@m])+"s would you like to claim?"; + mes "Maximum: "+@max+"."; + input @quantity; + mes "[Donation Girl]"; + if(@quantity>@max) { + mes "Sorry, but you do not have enough to claim "+@quantity+" "+getitemname(@name[@m])+"s."; + next; + goto L_CLAIM; } -if(!@quantity) { - mes "You can't have 0 as an amount!"; - next; - goto L_CLAIM; + if(!@quantity) { + mes "You can't have 0 as an amount!"; + next; + goto L_CLAIM; } -if(!checkweight(@name[@m],@quantity)) { - mes "I'm sorry, but you cannot carry "+@quantity+" "+getitemname(@name[@m])+"s."; - next; - goto L_CLAIM; + if(!checkweight(@name[@m],@quantity)) { + mes "I'm sorry, but you cannot carry "+@quantity+" "+getitemname(@name[@m])+"s."; + next; + goto L_CLAIM; } -query_sql "SELECT "+@quantity+" * "+@price$, @total$; -mes "Are you sure you want to claim "+@quantity+" "+getitemname(@name[@m])+"s for $"+@total$+"?"; -next; -menu "No",L_CLAIM,"Yes",-; -query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total$+" WHERE `account_id` = "+getcharid(3); -logmes "Claimed "+@quantity+" "+getitemname(@name[@m])+"s"; -getitem @name[@m],@quantity; -mes "[Donation Girl]"; -mes "Thankyou for donating! We hope you enjoy your gift!"; -close; + query_sql "SELECT "+@quantity+" * "+@price$, @total$; + mes "Are you sure you want to claim "+@quantity+" "+getitemname(@name[@m])+"s for $"+@total$+"?"; + next; + menu "No",L_CLAIM,"Yes",-; + query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total$+" WHERE `account_id` = "+getcharid(3); + logmes "Claimed "+@quantity+" "+getitemname(@name[@m])+"s"; + getitem @name[@m],@quantity; + mes "[Donation Girl]"; + mes "Thankyou for donating! We hope you enjoy your gift!"; + close; L_ZENY: -mes "[Donation Girl]"; -if(!$rate) { - mes "Sorry, we currently do not allow claiming Zeny."; - mes "Please go back and claim an item instead."; - next; - goto L_CLAIM; + mes "[Donation Girl]"; + if(!$rate) { + mes "Sorry, we currently do not allow claiming Zeny."; + mes "Please go back and claim an item instead."; + next; + goto L_CLAIM; } -query_sql "SELECT "+@value$+" * "+$rate, @maxzeny; -mes "Very well. You can claim as much as "+@maxzeny+"Z."; -mes "How much Zeny would you like to claim?"; -input @zeny; -mes "[Donation Girl]"; -if(@zeny>@maxzeny) { - mes "Sorry, but you do not have enough to claim "+@zeny+"Z."; - next; - goto L_CLAIM; + query_sql "SELECT "+@value$+" * "+$rate, @maxzeny; + mes "Very well. You can claim as much as "+@maxzeny+"Z."; + mes "How much Zeny would you like to claim?"; + input @zeny; + mes "[Donation Girl]"; + if(@zeny>@maxzeny) { + mes "Sorry, but you do not have enough to claim "+@zeny+"Z."; + next; + goto L_CLAIM; } -if(!@zeny) { - mes "You can't have 0 as an amount!"; - next; - goto L_CLAIM; + if(!@zeny) { + mes "You can't have 0 as an amount!"; + next; + goto L_CLAIM; } -set @total, @zeny * $rate; -mes "Are you sure you want to claim "+@zeny+"Z for $"+@total+"?"; -next; -menu "No",L_CLAIM,"Yes",-; -query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total+" WHERE `account_id` = "+getcharid(3); -logmes "Claimed "+@zeny+" zenies"; -set Zeny, Zeny + @zeny; -mes "[Donation Girl]"; -mes "Thankyou for donating! We hope you enjoy your gift!"; -close; + set @total, @zeny * $rate; + mes "Are you sure you want to claim "+@zeny+"Z for $"+@total+"?"; + next; + menu "No",L_CLAIM,"Yes",-; + query_sql "UPDATE `donate` SET `claimed` = `claimed` + "+@total+" WHERE `account_id` = "+getcharid(3); + logmes "Claimed "+@zeny+" zenies"; + set Zeny, Zeny + @zeny; + mes "[Donation Girl]"; + mes "Thankyou for donating! We hope you enjoy your gift!"; + close; L_STATS: -mes "[Donation Girl]"; -query_sql "SELECT IFNULL((SELECT SUM(amount) FROM `donate`),0)", @total$; -mes "Our fund is at a total of $"+@total$; -next; -menu "More info",L_INFO,"Make a claim",L_CHECK,"Statistics",L_STATS; + mes "[Donation Girl]"; + query_sql "SELECT IFNULL((SELECT SUM(amount) FROM `donate`),0)", @total$; + mes "Our fund is at a total of $"+@total$; + next; + menu "More info",L_INFO,"Make a claim",L_CHECK,"Statistics",L_STATS; L_GM: -mes "[GM Menu]"; -mes "Hello GM!"; -mes "What would you like to do?"; -next; -query_sql "SHOW VARIABLES LIKE 'version'", @version, @valule$; -query_sql "SELECT '"+@valule$+"' >= '5.0.8'", @version; -menu "Add/Remove Donation",L_GM2,"Add/Remove Items",L_ITEM,"(Re)Set Exchange Rate",L_RATE,"Test Script",L_START; + mes "[GM Menu]"; + mes "Hello GM!"; + mes "What would you like to do?"; + next; + query_sql "SHOW VARIABLES LIKE 'version'", @version, @valule$; + query_sql "SELECT '"+@valule$+"' >= '5.0.8'", @version; + menu "Add/Remove Donation",L_GM2,"Add/Remove Items",L_ITEM,"(Re)Set Exchange Rate",L_RATE,"Test Script",L_START; L_GM2: -menu "Add a donation",L_DONATE,"Remove a donation",L_REMOVE,"View all donations",L_VIEWALL,"Return to main menu",L_GM; + menu "Add a donation",L_DONATE,"Remove a donation",L_REMOVE,"View all donations",L_VIEWALL,"Return to main menu",L_GM; L_ITEM: -menu "Add an item",L_NEWITEM,"Remove an item",L_DELITEM,"View all items",L_ALLITEMS,"Return to main menu",L_GM; + menu "Add an item",L_NEWITEM,"Remove an item",L_DELITEM,"View all items",L_ALLITEMS,"Return to main menu",L_GM; L_NEWITEM: -mes "[GM Menu]"; -mes "Please enter the item name:"; -input @itemname$; -set @iid, 0; -query_sql "SELECT `id` FROM `item_db` WHERE `name_english` = '"+escape_sql(@itemname$)+"' || `name_japanese` = '"+escape_sql(@itemname$)+"' UNION SELECT `id` FROM `item_db2` WHERE `name_english` = '"+escape_sql(@itemname$)+"' || `name_japanese` = '"+escape_sql(@itemname$)+"'", @iid; -if(!@iid) goto L_INONE; -query_sql "SELECT 1 FROM `donate_item_db` WHERE `id` = "+@iid, @check; -mes "[GM Menu]"; -mes "Please enter the cost of each "+@itemname$+":"; -input @cost$; -if(@version) query_sql "SELECT CAST('"+escape_sql(@cost$)+"' AS DECIMAL)", @cost$; -query_sql "SELECT '"+escape_sql(@cost$)+"' > 0", @valid; -if(!@valid) goto L_ZERO; -mes "[GM Menu]"; -mes "You have specified that donators can claim "+@itemname$+"s for $"+@cost$+" each."; -mes "Would you like to continue?"; -next; -menu "No",L_ITEM,"Yes",-; -mes "[GM Menu]"; -if(!@check){ - query_sql "INSERT INTO `donate_item_db` VALUES ("+@iid+",'"+@cost$+"')"; - logmes "Added "+@itemname$+"s to list of claimable items"; - mes "Item added successfully!"; - } else { - mes "Item "+@itemname$+" already exists in the database."; - mes "Would you like to replace it?"; + mes "[GM Menu]"; + mes "Please enter the item name:"; + input @itemname$; + set @iid, 0; + query_sql "SELECT `id` FROM `item_db` WHERE `name_english` = '"+escape_sql(@itemname$)+"' || `name_japanese` = '"+escape_sql(@itemname$)+"' UNION SELECT `id` FROM `item_db2` WHERE `name_english` = '"+escape_sql(@itemname$)+"' || `name_japanese` = '"+escape_sql(@itemname$)+"'", @iid; + if(!@iid) goto L_INONE; + query_sql "SELECT 1 FROM `donate_item_db` WHERE `id` = "+@iid, @check; + mes "[GM Menu]"; + mes "Please enter the cost of each "+@itemname$+":"; + input @cost$; + if(@version) query_sql "SELECT CAST('"+escape_sql(@cost$)+"' AS DECIMAL)", @cost$; + query_sql "SELECT '"+escape_sql(@cost$)+"' > 0", @valid; + if(!@valid) goto L_ZERO; + mes "[GM Menu]"; + mes "You have specified that donators can claim "+@itemname$+"s for $"+@cost$+" each."; + mes "Would you like to continue?"; next; menu "No",L_ITEM,"Yes",-; - query_sql "REPLACE INTO `donate_item_db` VALUES ("+@iid+",'"+@cost$+"')"; - logmes "Changed the price of "+@itemname$+"s"; mes "[GM Menu]"; - mes "Item replaced successfully!"; + if(!@check){ + query_sql "INSERT INTO `donate_item_db` VALUES ("+@iid+",'"+@cost$+"')"; + logmes "Added "+@itemname$+"s to list of claimable items"; + mes "Item added successfully!"; + } else { + mes "Item "+@itemname$+" already exists in the database."; + mes "Would you like to replace it?"; + next; + menu "No",L_ITEM,"Yes",-; + query_sql "REPLACE INTO `donate_item_db` VALUES ("+@iid+",'"+@cost$+"')"; + logmes "Changed the price of "+@itemname$+"s"; + mes "[GM Menu]"; + mes "Item replaced successfully!"; } -close; + close; L_INONE: -mes "[GM Menu]"; -mes "Item "+@itemname$+" does not exist."; -next; -goto L_ITEM; + mes "[GM Menu]"; + mes "Item "+@itemname$+" does not exist."; + next; + goto L_ITEM; L_DELITEM: -mes "[GM Menu]"; -mes "Please enter the item name:"; -input @itemname$; -set @iid, 0; -query_sql "SELECT `donate_item_db`.`id` FROM `donate_item_db` LEFT JOIN `item_db` ON `donate_item_db`.`id` = `item_db`.`id` LEFT JOIN `item_db2` ON `donate_item_db`.`id` = `item_db2`.`id` WHERE `item_db`.`name_english` = '"+escape_sql(@itemname$)+"' || `item_db`.`name_japanese` = '"+escape_sql(@itemname$)+"' || `item_db2`.`name_english` = '"+escape_sql(@itemname$)+"' || `item_db2`.`name_japanese` = '"+escape_sql(@itemname$)+"'", @iid; -if(!@iid) goto L_INONE; -next; -mes "[GM Menu]"; -mes "You have specified to delete "+@itemname$+" from the database."; -mes "Would you like to continue?"; -next; -menu "No",L_ITEM,"Yes",-; -query_sql "DELETE FROM `donate_item_db` WHERE `id` = "+@iid; -logmes "Deleted "+@itemname$+"s from list of claimable items"; -mes "[GM Menu]"; -mes "Item deleted successfully!"; -close; + mes "[GM Menu]"; + mes "Please enter the item name:"; + input @itemname$; + set @iid, 0; + query_sql "SELECT `donate_item_db`.`id` FROM `donate_item_db` LEFT JOIN `item_db` ON `donate_item_db`.`id` = `item_db`.`id` LEFT JOIN `item_db2` ON `donate_item_db`.`id` = `item_db2`.`id` WHERE `item_db`.`name_english` = '"+escape_sql(@itemname$)+"' || `item_db`.`name_japanese` = '"+escape_sql(@itemname$)+"' || `item_db2`.`name_english` = '"+escape_sql(@itemname$)+"' || `item_db2`.`name_japanese` = '"+escape_sql(@itemname$)+"'", @iid; + if(!@iid) goto L_INONE; + next; + mes "[GM Menu]"; + mes "You have specified to delete "+@itemname$+" from the database."; + mes "Would you like to continue?"; + next; + menu "No",L_ITEM,"Yes",-; + query_sql "DELETE FROM `donate_item_db` WHERE `id` = "+@iid; + logmes "Deleted "+@itemname$+"s from list of claimable items"; + mes "[GM Menu]"; + mes "Item deleted successfully!"; + close; L_ALLITEMS: -mes "[GM Menu]"; -query_sql "SELECT `id`,`price` FROM `donate_item_db` ORDER BY `id`", @items, @itemamount$; -for(set @i, 0; @i < getarraysize(@items); set @i, @i + 1){ + mes "[GM Menu]"; + query_sql "SELECT `id`,`price` FROM `donate_item_db` ORDER BY `id`", @items, @itemamount$; + for(set @i, 0; @i < getarraysize(@items); set @i, @i + 1){ mes getitemname(@items[@i])+" - $"+@itemamount$[@i]; } -next; -goto L_GM; + next; + goto L_GM; L_DONATE: -mes "[GM Menu]"; -mes "Please enter the donator's username:"; -input @donator$; -set @aid, 0; -query_sql "SELECT `account_id` FROM `login` WHERE `userid` = '"+escape_sql(@donator$)+"'", @aid; -if(!@aid) goto L_NONE; -set @donated$, ""; -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @donated$; -query_sql "SELECT '"+@donated$+"' > 0", @donated; -switch(@donated) { + mes "[GM Menu]"; + mes "Please enter the donator's username:"; + input @donator$; + set @aid, 0; + query_sql "SELECT `account_id` FROM `login` WHERE `userid` = '"+escape_sql(@donator$)+"'", @aid; + if(!@aid) goto L_NONE; + set @donated$, ""; + query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @donated$; + query_sql "SELECT '"+@donated$+"' > 0", @donated; + switch(@donated) { case 0: mes @donator$+" has not donated before."; break; @@ -302,19 +252,19 @@ switch(@donated) { mes @donator$+" has donated $"+@donated$+"."; break; } -next; -mes "[GM Menu]"; -mes "Please enter the amount donated by "+@donator$; -input @donating$; -if(@version) query_sql "SELECT CAST('"+escape_sql(@donating$)+"' AS DECIMAL)", @donating$; -query_sql "SELECT '"+escape_sql(@donating$)+"' > 0", @valid; -if(!@valid) goto L_ZERO; -mes "[GM Menu]"; -mes "You have specified that "+@donator$+" has donated $"+@donating$+"."; -mes "Would you like to continue?"; -next; -menu "No",L_GM,"Yes",-; -switch(@donated) { + next; + mes "[GM Menu]"; + mes "Please enter the amount donated by "+@donator$; + input @donating$; + if(@version) query_sql "SELECT CAST('"+escape_sql(@donating$)+"' AS DECIMAL)", @donating$; + query_sql "SELECT '"+escape_sql(@donating$)+"' > 0", @valid; + if(!@valid) goto L_ZERO; + mes "[GM Menu]"; + mes "You have specified that "+@donator$+" has donated $"+@donating$+"."; + mes "Would you like to continue?"; + next; + menu "No",L_GM,"Yes",-; + switch(@donated) { case 0: query_sql "INSERT INTO `donate` VALUES ("+@aid+", '"+@donating$+"', 0)"; break; @@ -322,44 +272,44 @@ switch(@donated) { query_sql "UPDATE `donate` SET `amount` = `amount` + "+@donating$+" WHERE `account_id` = "+@aid; break; } -logmes "Credited "+@donator$+" with $"+@donating$; -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @newdonated$; -mes "[GM Menu]"; -mes "Donation added successfully!"; -mes @donator$+" has donated a total of $"+@newdonated$; -close; + logmes "Credited "+@donator$+" with $"+@donating$; + query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @newdonated$; + mes "[GM Menu]"; + mes "Donation added successfully!"; + mes @donator$+" has donated a total of $"+@newdonated$; + close; L_ZERO: -mes "[GM Menu]"; -mes "You can't have 0 as an amount!"; -next; -goto L_GM; + mes "[GM Menu]"; + mes "You can't have 0 as an amount!"; + next; + goto L_GM; L_NONE: -mes "[GM Menu]"; -mes "Account name "+@donator$+" does not exist."; -next; -goto L_GM; + mes "[GM Menu]"; + mes "Account name "+@donator$+" does not exist."; + next; + goto L_GM; L_REMOVE: -mes "[GM Menu]"; -mes "Please enter the donator's username:"; -input @donator$; -set @aid, 0; -query_sql "SELECT `account_id` FROM `login` WHERE `userid` = '"+escape_sql(@donator$)+"'", @aid; -if(!@aid) goto L_NONE; -query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @donated$; -query_sql "SELECT '"+@donated$+"' > 0", @donated; -mes "[GM Menu]"; -if(!@donated) { - query_sql "DELETE FROM `donate` WHERE `account_id` = "+@aid; - logmes "Deleted "+@donator$+" from donation database"; - mes @donator$+" is not a donator and has been deleted from the donation database."; + mes "[GM Menu]"; + mes "Please enter the donator's username:"; + input @donator$; + set @aid, 0; + query_sql "SELECT `account_id` FROM `login` WHERE `userid` = '"+escape_sql(@donator$)+"'", @aid; + if(!@aid) goto L_NONE; + query_sql "SELECT `amount` FROM `donate` WHERE `account_id` = "+@aid, @donated$; + query_sql "SELECT '"+@donated$+"' > 0", @donated; + mes "[GM Menu]"; + if(!@donated) { + query_sql "DELETE FROM `donate` WHERE `account_id` = "+@aid; + logmes "Deleted "+@donator$+" from donation database"; + mes @donator$+" is not a donator and has been deleted from the donation database."; } else { - mes @donator$+" has donated $"+@donated$+"."; - next; - switch(select("Deduct an amount from "+@donator$,"Remove "+@donator$+" from the donation database")){ - mes "[GM Menu]"; + mes @donator$+" has donated $"+@donated$+"."; + next; + switch(select("Deduct an amount from "+@donator$,"Remove "+@donator$+" from the donation database")){ + mes "[GM Menu]"; case 1: mes "Please enter the amount "+@donator$+" is to be deducted by:"; input @deduct$; @@ -390,27 +340,76 @@ if(!@donated) { break; } } -close; + close; L_VIEWALL: -mes "[GM Menu]"; -query_sql "SELECT `account_id`,`amount` FROM `donate` ORDER BY `amount` DESC", @donatoraid, @donatedamount$; -for(set @i, 0; @i < getarraysize(@donatoraid); set @i, @i + 1){ - query_sql "SELECT `userid` FROM `login` WHERE `account_id` = "+@donatoraid[@i], @donateruserid$; - for(set @j, 0; @j < getarraysize(@donateruserid$); set @j, @j + 1){ - mes @donateruserid$[@j]+" - "+@donatedamount$[@i]; + mes "[GM Menu]"; + query_sql "SELECT `account_id`,`amount` FROM `donate` ORDER BY `amount` DESC", @donatoraid, @donatedamount$; + for(set @i, 0; @i < getarraysize(@donatoraid); set @i, @i + 1){ + query_sql "SELECT `userid` FROM `login` WHERE `account_id` = "+@donatoraid[@i], @donateruserid$; + for(set @j, 0; @j < getarraysize(@donateruserid$); set @j, @j + 1){ + mes @donateruserid$[@j]+" - "+@donatedamount$[@i]; + } } -} -next; -goto L_GM; + next; + goto L_GM; L_RATE: -mes "[GM Menu]"; -if($rate) mes "$1 is currently worth "+$rate+"Z."; -mes "How much Zeny is $1 worth?"; -input $rate; -mes "[GM Menu]"; -mes "The value of $1 successfully changed to "+$rate+"Z."; -next; -goto L_GM; + mes "[GM Menu]"; + if($rate) mes "$1 is currently worth "+$rate+"Z."; + mes "How much Zeny is $1 worth?"; + input $rate; + mes "[GM Menu]"; + mes "The value of $1 successfully changed to "+$rate+"Z."; + next; + goto L_GM; } + +//===== Additional Comments: ================================= +//= 1.0 - First release. Probably contains bugs/security risks. +//= 1.1 - Added a check for whether the account exists when +//= adding a donator. Need to improve ordering when +//= viewing all donations. +//= 1.2 - Modified for public use. Added checkweight feature. +//= 2.0 - Many changes, especially ones I had always wanted +//= to add to this script. Includes reading items from +//= a separate SQL table and more database manipulation +//= options for GMs. +//= 2.1 - Made few changes including the add/remove items feature. +//= 3.0 - All strings inputted by a user and user/char names +//= in SQL queries are now escaped. Each item has a +//= price rather than a quantity. This script can work +//= with decimals. +//= 3.1 - Added quotes to some queries, fixed a variable and +//= removed a comment. +//= 3.2 - Fixed a problem where rAthena would crash if a +//= query returned NULL. +//= 3.3 - Optimized query speeds by combining a few select +//= queries into one. Requires Trunk 7975. +//= 3.4 - Added MySQL version check. If version < 5.0.8, all +//= queries with CAST are omitted. Use 5.0.8 and up +//= when possible. SQL errors may consequent if GM's +//= input is incorrect. Added logging of claims. +//= "log_npc" in log_athena.conf must be enabled. Logs +//= will appear in the "npclog" table. Claim menu now +//= only shows items that can be afforded. +//= 3.5 - Minor change to table. +//= 3.6 - Removed name column in donate_item_db. Added +//= support for item_db2 table. +//= 3.7 - Added Zeny support. $rate must be set for it to be +//= used. Removed truncate() in a query since rAthena +//= automatically truncates floats to ints. +//= 3.8 - Fixed problem with menus and null values. +//= 3.9 - Explicit reset of @aid. +//= 3.10 - Applied previous fix to other variables and forced +//= dialogue box closure every time database is modified. +//= 3.11 - Explicit reset of another variable. Fixed typo +//= - with $rate. Added logmes for GM operations. +//============================================================ +//= Thanks to Vich for helping me with the SQL syntax. +//= Thanks to Lance for helping me with the the arrays and +//= for implementing query_sql. +//= Thanks to Skotlex for implementing escape_sql. +//= Thanks to Toms for implementing the new multi-column +//= query_sql command. +//============================================================ diff --git a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql index 6838297bc..b820e2605 100644 --- a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql +++ b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate.sql @@ -1,6 +1,6 @@ CREATE TABLE `donate` ( - `account_id` int(11) unsigned NOT NULL, - `amount` float(9,2) unsigned NOT NULL, - `claimed` float(9,2) unsigned NOT NULL, + `account_id` INT(11) UNSIGNED NOT NULL, + `amount` FLOAT(9,2) UNSIGNED NOT NULL, + `claimed` FLOAT(9,2) UNSIGNED NOT NULL, PRIMARY KEY (`account_id`) -) TYPE=MyISAM; \ No newline at end of file +) TYPE=MYISAM; diff --git a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql index 2b3caf104..54b4895b3 100644 --- a/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql +++ b/npc/custom/eAAC_Scripts/DonationGirl/sql/donate_item_db.sql @@ -1,8 +1,8 @@ CREATE TABLE `donate_item_db` ( - `id` smallint(5) unsigned NOT NULL default '0', - `price` float(9,2) unsigned NOT NULL, + `id` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', + `price` FLOAT(9,2) UNSIGNED NOT NULL, PRIMARY KEY (`id`) -) TYPE=MyISAM; +) TYPE=MYISAM; #(ID,Price); REPLACE INTO `donate_item_db` VALUES (601,0.06); #Wing_Of_Fly @@ -10,4 +10,4 @@ REPLACE INTO `donate_item_db` VALUES (602,0.33); #Wing_Of_Butterfly REPLACE INTO `donate_item_db` VALUES (603,10); #Old_Blue_Box REPLACE INTO `donate_item_db` VALUES (604,0.05); #Branch_Of_Dead_Tree REPLACE INTO `donate_item_db` VALUES (605,2); #Anodyne -REPLACE INTO `donate_item_db` VALUES (606,2); #Aloebera \ No newline at end of file +REPLACE INTO `donate_item_db` VALUES (606,2); #Aloebera diff --git a/npc/custom/eAAC_Scripts/Kafra_Express_files.conf b/npc/custom/eAAC_Scripts/Kafra_Express_files.conf index 1364e7479..96c5823df 100644 --- a/npc/custom/eAAC_Scripts/Kafra_Express_files.conf +++ b/npc/custom/eAAC_Scripts/Kafra_Express_files.conf @@ -1,5 +1,5 @@ //|-----------------------------------------------------------------| -//|- English Athena Approved Certified Script: Kafra Express Set -| +//|- English Athena Approved Certified Script: Kafra Express Set -| //|-----------------------------------------------------------------| //| //| The configuration file. @@ -26,4 +26,4 @@ npc: npc/custom/eAAC_Scripts/kafraExpress/ke_warp_town.txt npc: npc/custom/eAAC_Scripts/kafraExpress/ke_warp_woe.txt //| For more info referring this script, open the provided readme.txt in this folder. -//| Copyright © 2004 - 2006 Skotlex. All Rights Reserved for him (this is almost a trademark =X) \ No newline at end of file +//| Copyright © 2004 - 2006 Skotlex. All Rights Reserved for him (this is almost a trademark =X) diff --git a/npc/custom/eAAC_Scripts/banker.txt b/npc/custom/eAAC_Scripts/banker.txt index 5d46cd00b..f9111098f 100644 --- a/npc/custom/eAAC_Scripts/banker.txt +++ b/npc/custom/eAAC_Scripts/banker.txt @@ -1,40 +1,40 @@ //| ~~~~~~~~~~~ Information ~~~~~~~~~~~~~ -//| | This is a simple banking npc, | -//| | instead of using those global | -//| | variables :P | -//| | | -//| | It's fully customizable, you | -//| | can exchange the coin ID used | -//| | at will, it won't affect the | -//| | script whatsoever =3 | -//| | | -//| | The prices can also be set, the | -//| | way you like the most, as they | -//| | won't affect the script either | -//| | | -//| | No db/client files modification | -//| | needed, just "Plug&Play" ;P | +//| | This is a simple banking npc, | +//| | instead of using those global | +//| | variables :P | +//| | | +//| | It's fully customizable, you | +//| | can exchange the coin ID used | +//| | at will, it won't affect the | +//| | script whatsoever =3 | +//| | | +//| | The prices can also be set, the | +//| | way you like the most, as they | +//| | won't affect the script either | +//| | | +//| | No db/client files modification | +//| | needed, just "Plug&Play" ;P | //| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - +//| //| Revision: //| v.1.0: Released script. No problems or bugs found, at least :P -//| It's your duty to find them now if there are. -//| @minvalue must contain the coin price of the lowest coin value -//| in order for the script to work correctly. By default it's set -//| to the bronze coin - +//| It's your duty to find them now if there are. +//| @minvalue must contain the coin price of the lowest coin value +//| in order for the script to work correctly. By default it's set +//| to the bronze coin +//| //| Revision: //| v.2.0: Added a Mix option in the Zeny to Coin function, -//| where it allows you to split your desired Zeny into -//| the coins you wish to obtain, without having to go -//| through the other functions to obtain them all. That way -//| you can get them all at once ;3 +//| where it allows you to split your desired Zeny into +//| the coins you wish to obtain, without having to go +//| through the other functions to obtain them all. That way +//| you can get them all at once ;3 +//| +//| It also displays the total zeny being exchanged, +//| the total coins obtained and the difference between +//| the amount of zeny you've inputted and the sum of +//| the coin's values. //| -//| It also displays the total zeny being exchanged, -//| the total coins obtained and the difference between -//| the amount of zeny you've inputted and the sum of -//| the coin's values. - //| Revision: //| v.2.5: Replaced all the coin names with a variable that has //| getitemname( Coin Mix label. It seems you -//| can trade with negative zeny (meh...). This should prevent it. -//| Thanks to Niktout. +//| can trade with negative zeny (meh...). This should prevent it. +//| Thanks to Niktout. //| Revision: //| v.2.8: Added a n00b check for the Zeny -> Coin function. Should -//| prevent zeny overflow. Also added a variable cleaning section -//| at the beginning of the Mix function, to prevent old values -//| to be used as a payout. +//| prevent zeny overflow. Also added a variable cleaning section +//| at the beginning of the Mix function, to prevent old values +//| to be used as a payout. //| Revision: //| v.2.8.1 Removed the 'conflicting' switch with variables as case options, -//| and moved the color names to the function, so now it executes once. -//| Did other optimizations and cleanups all around the code. Meh. +//| and moved the color names to the function, so now it executes once. +//| Did other optimizations and cleanups all around the code. Meh. //| Upcomming possible updates: //| v.3.0: Adding a refining system, so you can gather ore and the likes -//| to make your own coins. They will have a failure chance -//| of course. You will need, for now: 10 ores of the type of -//| coin you wish, a mini furnace, an anvil depending on what -//| You're crafting, and a hammer according to it. +//| to make your own coins. They will have a failure chance +//| of course. You will need, for now: 10 ores of the type of +//| coin you wish, a mini furnace, an anvil depending on what +//| You're crafting, and a hammer according to it. //| Copyright © 2006-2007 erKURITA. All Rights Reserved @@ -420,4 +420,4 @@ prontera,155,188,3 script Zacariath Madhat 872,{ OnInit: setitemscript 671,"{}"; end; -} \ No newline at end of file +} diff --git a/npc/custom/eAAC_Scripts/kafraExpress/Changelog.txt b/npc/custom/eAAC_Scripts/kafraExpress/Changelog.txt index f75b01837..2f9555f1d 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/Changelog.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/Changelog.txt @@ -480,4 +480,4 @@ * Broadcast Module v1.7 - Expanded to include new PvP rooms --- Too old to remember :P \ No newline at end of file +-- Too old to remember :P diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt index 2f240b2df..d5a4093cb 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_bank.txt @@ -177,4 +177,3 @@ function SF_calcInterest { } //SF end } - diff --git a/npc/custom/eAAC_Scripts/messageboards.txt b/npc/custom/eAAC_Scripts/messageboards.txt index 7dae78cfc..c6c59edcb 100644 --- a/npc/custom/eAAC_Scripts/messageboards.txt +++ b/npc/custom/eAAC_Scripts/messageboards.txt @@ -1,421 +1,433 @@ +//===== rAthena Script ======================================= +//= Message Man +//===== By: ================================================== +//= Vicious +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= a message board where you can post and read messages +//===== Additional Comments: ================================= +//= +//============================================================ + geffen,122,102,4 script Message Man 774,{ -mes "[Robert]"; -mes "Hello, I am here to serve you. Enjoy my service. ^_-"; -next; -mes "[Robert]"; -mes "Please keep in mind, that all messages are wiped once every two days"; -mes "-Msg From Creator- In new version this will be set able, look forward to this! -End Msg From Creator-"; -next; + mes "[Robert]"; + mes "Hello, I am here to serve you. Enjoy my service. ^_-"; + next; + mes "[Robert]"; + mes "Please keep in mind, that all messages are wiped once every two days"; + mes "-Msg From Creator- In new version this will be set able, look forward to this! -End Msg From Creator-"; + next; L_Menu01: -mes "[Robert]"; -mes "What would you like to do??"; -next; -if((getgmlevel() >= 90)) menu "Public board",L_pubgmmenu,"Gm Board",L_gmmenu,"Close Public Board",L_clospub,"Open Public Board",L_openpub; -if(($messagepubclose == 1)) goto L_pubclosed; -menu "Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave; + mes "[Robert]"; + mes "What would you like to do??"; + next; + if((getgmlevel() >= 90)) menu "Public board",L_pubgmmenu,"Gm Board",L_gmmenu,"Close Public Board",L_clospub,"Open Public Board",L_openpub; + if(($messagepubclose == 1)) goto L_pubclosed; + menu "Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave; L_pubgmmenu: -if(($messagepubclose == 1)) goto L_pubclosed; -menu "Re-set the rotation",L_setrot,"Reset Message",L_Clearmsgs,"Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave; + if(($messagepubclose == 1)) goto L_pubclosed; + menu "Re-set the rotation",L_setrot,"Reset Message",L_Clearmsgs,"Read messages!",L_readmsg,"Post a message!",L_Postmsg,"Leave",L_leave; L_gmmenu: -menu "Read messages!",L_gmboardread,"Post a Message!",L_gmboardpost,"Reset Messages",L_gmboardreset; + menu "Read messages!",L_gmboardread,"Post a Message!",L_gmboardpost,"Reset Messages",L_gmboardreset; L_openpub: -mes "[Robert]"; -mes "Are you sure?"; -menu "Yes",-,"No",L_openpubn; -mes "[Robert]"; -mes "It is done."; -close2; -set $messagepubclose,0; -end; + mes "[Robert]"; + mes "Are you sure?"; + menu "Yes",-,"No",L_openpubn; + mes "[Robert]"; + mes "It is done."; + close2; + set $messagepubclose,0; + end; L_openpubn: -mes "[Robert]"; -mes "Very well it shall remain closed."; -close; + mes "[Robert]"; + mes "Very well it shall remain closed."; + close; L_pubclosed: -mes "[Robert]"; -mes "Im sorry. The public boards are currently Closed."; -close; + mes "[Robert]"; + mes "Im sorry. The public boards are currently Closed."; + close; L_clospub: -mes "[Robert]"; -mes "Are you sure?"; -next; -menu "Yes.",-,"No",L_closepubn; -mes "[Robert]"; -mes "Very well I will not allow anyone into the public board."; -close2; -set $messagepubclose,1; -end; + mes "[Robert]"; + mes "Are you sure?"; + next; + menu "Yes.",-,"No",L_closepubn; + mes "[Robert]"; + mes "Very well I will not allow anyone into the public board."; + close2; + set $messagepubclose,1; + end; L_closepubn: -mes "[Robert]"; -mes "Have a nice day"; -close; + mes "[Robert]"; + mes "Have a nice day"; + close; L_gmboardreset: -mes "[Robert]"; -mes "This will require atleast 2 GM's approval to reset the gm board."; -mes "-Msg From Creator- This is bugged same gm can vote twice. Planned to revise in next version. -End Msg From Creator-"; -next; -menu "Vote for reset.",L_gmboardresetvote,"Back to main.",L_Menu01,"Leave.",L_leave; + mes "[Robert]"; + mes "This will require atleast 2 GM's approval to reset the gm board."; + mes "-Msg From Creator- This is bugged same gm can vote twice. Planned to revise in next version. -End Msg From Creator-"; + next; + menu "Vote for reset.",L_gmboardresetvote,"Back to main.",L_Menu01,"Leave.",L_leave; L_gmboardresetvote: -callfunc "F_gmresetcheck"; -set @tempid,getcharid(0); -set $gmboardresetvotenumb,$gmboardresetvotenumb+1; -set $gmboardresetvoted[$gmboardresetvotenumb],1; -set $gmboardresetvoteid[$gmboardresetvotenumb],@tempid; -set @tempid,0; -set $gmboardreset,$gmboardreset-1; -mes "[Robert]"; -mes "Thank you."; -next; -if(($gmboardreset == 0)) goto L_gmresetdone; -if(($gmboardreset >= 1)) goto L_gmresetnotdone; -close; + callfunc "F_gmresetcheck"; + set @tempid,getcharid(0); + set $gmboardresetvotenumb,$gmboardresetvotenumb+1; + set $gmboardresetvoted[$gmboardresetvotenumb],1; + set $gmboardresetvoteid[$gmboardresetvotenumb],@tempid; + set @tempid,0; + set $gmboardreset,$gmboardreset-1; + mes "[Robert]"; + mes "Thank you."; + next; + if(($gmboardreset == 0)) goto L_gmresetdone; + if(($gmboardreset >= 1)) goto L_gmresetnotdone; + close; L_gmresetdone: -deletearray $gmmessageboardpost$[1],$gmmessageboardpostnumber; -deletearray $gmmessageboardpostdate$[1],$gmmessageboardpostnumber; -deletearray $gmmessageboardpostname$[1],$gmmessageboardpostnumber; -deletearray $gmmessageboardeditdate$[1],$gmmessageboardpostnumber; -deletearray $gmboardresetvoted[1],$gmboardresetvotenumber; -deletearray $gmboardresetvoted[1],$gmboardresetvotenumber; -deletearray $gmboardresetvoteid[1],$gmboardresetvotenumber; -set $gmboardresetvotenumber,0; -set $gmboardreset,2; -mes "[Robert]"; -mes "The reset has been done."; -close; + deletearray $gmmessageboardpost$[1],$gmmessageboardpostnumber; + deletearray $gmmessageboardpostdate$[1],$gmmessageboardpostnumber; + deletearray $gmmessageboardpostname$[1],$gmmessageboardpostnumber; + deletearray $gmmessageboardeditdate$[1],$gmmessageboardpostnumber; + deletearray $gmboardresetvoted[1],$gmboardresetvotenumber; + deletearray $gmboardresetvoted[1],$gmboardresetvotenumber; + deletearray $gmboardresetvoteid[1],$gmboardresetvotenumber; + set $gmboardresetvotenumber,0; + set $gmboardreset,2; + mes "[Robert]"; + mes "The reset has been done."; + close; L_gmresetnotdone: -mes "[Robert]"; -mes "There needs to be "+$gmboardreset+" more gm(s) approval to do the reset."; -close; + mes "[Robert]"; + mes "There needs to be "+$gmboardreset+" more gm(s) approval to do the reset."; + close; L_gmboardread: -if(($gmmessageboardpostnumber == 0)) goto L_msgno; -callfunc "F_gmmessage"; -end; + if(($gmmessageboardpostnumber == 0)) goto L_msgno; + callfunc "F_gmmessage"; + end; L_gmboardpost: -if(($gmmessageboardpostnumber >= 127)) goto L_postmsgyestm; -set @gmmessageboardpostername$,strcharinfo(0); -set @gmmessageboarddate$,gettimestr("%Y-%m/%d %H:%M:%S",21); -set $gmmessageboardpostnumber,$gmmessageboardpostnumber+1; -input @gmmsgboardmsgt$; -set $gmmessageboardpost$[$gmmessageboardpostnumber],@gmmsgboardmsgt$; -set $gmmessageboardpostdate$[$gmmessageboardpostnumber],@gmmessageboarddate$; -set $gmmessageboardpostname$[$gmmessageboardpostnumber],@gmmessageboardpostername$; -mes "[Robert]"; -mes "Here is what your message looks like"; -next; -mes "Posted by: "+$gmmessageboardpostname$[$gmmessageboardpostnumber]+"."; -mes "On: "+$gmmessageboardpostdate$[$gmmessageboardpostnumber]+"."; -mes $gmmessageboardpost$[$gmmessageboardpostnumber]; -close; + if(($gmmessageboardpostnumber >= 127)) goto L_postmsgyestm; + set @gmmessageboardpostername$,strcharinfo(0); + set @gmmessageboarddate$,gettimestr("%Y-%m/%d %H:%M:%S",21); + set $gmmessageboardpostnumber,$gmmessageboardpostnumber+1; + input @gmmsgboardmsgt$; + set $gmmessageboardpost$[$gmmessageboardpostnumber],@gmmsgboardmsgt$; + set $gmmessageboardpostdate$[$gmmessageboardpostnumber],@gmmessageboarddate$; + set $gmmessageboardpostname$[$gmmessageboardpostnumber],@gmmessageboardpostername$; + mes "[Robert]"; + mes "Here is what your message looks like"; + next; + mes "Posted by: "+$gmmessageboardpostname$[$gmmessageboardpostnumber]+"."; + mes "On: "+$gmmessageboardpostdate$[$gmmessageboardpostnumber]+"."; + mes $gmmessageboardpost$[$gmmessageboardpostnumber]; + close; L_setrot: -set $@determinedayrotation,gettime(4); //this determines the day rotation for clearing messages. -if(($@determinedayrotation == 0)) set $rotation,0; -if(($@determinedayrotation == 1)) set $rotation,1; -if(($@determinedayrotation == 2)) set $rotation,0; -if(($@determinedayrotation == 3)) set $rotation,1; -if(($@determinedayrotation == 4)) set $rotation,0; -if(($@determinedayrotation == 5)) set $rotation,1; -if(($@determinedayrotation == 6)) set $rotation,0; -mes "It is done."; -close; + set $@determinedayrotation,gettime(4); //this determines the day rotation for clearing messages. + if(($@determinedayrotation == 0)) set $rotation,0; + if(($@determinedayrotation == 1)) set $rotation,1; + if(($@determinedayrotation == 2)) set $rotation,0; + if(($@determinedayrotation == 3)) set $rotation,1; + if(($@determinedayrotation == 4)) set $rotation,0; + if(($@determinedayrotation == 5)) set $rotation,1; + if(($@determinedayrotation == 6)) set $rotation,0; + mes "It is done."; + close; L_Clearmsgs: -mes "[Robert]"; -mes "Are you sure?"; -next; -menu "Yes",L_clearmsgsy,"No thanks.",L_Menu01; + mes "[Robert]"; + mes "Are you sure?"; + next; + menu "Yes",L_clearmsgsy,"No thanks.",L_Menu01; L_clearmsgsy: -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $messageboardeditdate$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -mes "[Robert]"; -mes "It is done."; -close; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $messageboardeditdate$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + mes "[Robert]"; + mes "It is done."; + close; L_leave: -close; + close; L_Postmsg: -mes "[Robert]"; -mes "What do you want to say in your message?"; -next; -set @msgboardmsgt$,0; -input @msgboardmsgt$; -mes "[Robert]"; -mes "are you sure this is the message you want?"; -mes @msgboardmsgt$; -next; -menu "Yes!",L_postmsgyes,"No let me re-do it!",L_Postmsg,"Ive changed my mind let me leave.",lleave; + mes "[Robert]"; + mes "What do you want to say in your message?"; + next; + set @msgboardmsgt$,0; + input @msgboardmsgt$; + mes "[Robert]"; + mes "are you sure this is the message you want?"; + mes @msgboardmsgt$; + next; + menu "Yes!",L_postmsgyes,"No let me re-do it!",L_Postmsg,"Ive changed my mind let me leave.",lleave; L_postmsgyes: -if(($messageboardpostnumber >= 127)) goto L_postmsgyestm; -set @messageboardpostername$,strcharinfo(0); -set @messageboarddate$,gettimestr("%Y-%m/%d %H:%M:%S",21); -set $messageboardpostnumber,$messageboardpostnumber+1; -set @mymessage2,$messageboardpostnumber; -set $mymessage[$messageboardpostnumber],5; -set $messageboardpost$[$messageboardpostnumber],@msgboardmsgt$; -set $messageboardpostdate$[$messageboardpostnumber],@messageboarddate$; -set $messageboardpostname$[$messageboardpostnumber],@messageboardpostername$; -mes "[Robert]"; -mes "here is what your message looks like"; -next; -mes "Posted by: "+$messageboardpostname$[$messageboardpostnumber]+"."; -mes "On: "+$messageboardpostdate$[$messageboardpostnumber]+"."; -mes $messageboardpost$[$messageboardpostnumber]; -close; + if(($messageboardpostnumber >= 127)) goto L_postmsgyestm; + set @messageboardpostername$,strcharinfo(0); + set @messageboarddate$,gettimestr("%Y-%m/%d %H:%M:%S",21); + set $messageboardpostnumber,$messageboardpostnumber+1; + set @mymessage2,$messageboardpostnumber; + set $mymessage[$messageboardpostnumber],5; + set $messageboardpost$[$messageboardpostnumber],@msgboardmsgt$; + set $messageboardpostdate$[$messageboardpostnumber],@messageboarddate$; + set $messageboardpostname$[$messageboardpostnumber],@messageboardpostername$; + mes "[Robert]"; + mes "here is what your message looks like"; + next; + mes "Posted by: "+$messageboardpostname$[$messageboardpostnumber]+"."; + mes "On: "+$messageboardpostdate$[$messageboardpostnumber]+"."; + mes $messageboardpost$[$messageboardpostnumber]; + close; L_postmsgyestm: -set @mesboardmsgt$,0; -mes "[Robert]"; -mes "Im sorry your going to have to wait till more space opens up for messages, it should be in 1 or 2 days =)"; -close; + set @mesboardmsgt$,0; + mes "[Robert]"; + mes "Im sorry your going to have to wait till more space opens up for messages, it should be in 1 or 2 days =)"; + close; lleave: -deletearray $messageboardpost$[@tempview],@tempview; -deletearray $messageboardpostname$[@tempview],@tempview; -deletearray $messageboardpostdate$[@tempview],@tempview; -deletearray $mymessage[@tempview],@tempview; -set $messageboardpostnumber,$messageboardpostnumber-1; -set @msgboardmsgt$,0; -close; + deletearray $messageboardpost$[@tempview],@tempview; + deletearray $messageboardpostname$[@tempview],@tempview; + deletearray $messageboardpostdate$[@tempview],@tempview; + deletearray $mymessage[@tempview],@tempview; + set $messageboardpostnumber,$messageboardpostnumber-1; + set @msgboardmsgt$,0; + close; L_readmsg: -if(($messageboardpostnumber == 0)) goto L_msgno; -callfunc "F_message"; -end; + if(($messageboardpostnumber == 0)) goto L_msgno; + callfunc "F_message"; + end; L_msgno: -mes "[Robert]"; -mes "There are currently no messages."; -close; + mes "[Robert]"; + mes "There are currently no messages."; + close; OnInit: -set $gmboardreset,2; -set $gmboardresetvotenumb,0; -end; + set $gmboardreset,2; + set $gmboardresetvotenumb,0; + end; OnInterIfInitOnce: -set $@determinedayrotation,gettime(4); //this determines the day rotation for clearing messages. -if(($@determinedayrotation == 0)) set $rotation,0; -if(($@determinedayrotation == 1)) set $rotation,1; -if(($@determinedayrotation == 2)) set $rotation,0; -if(($@determinedayrotation == 3)) set $rotation,1; -if(($@determinedayrotation == 4)) set $rotation,0; -if(($@determinedayrotation == 5)) set $rotation,1; -if(($@determinedayrotation == 6)) set $rotation,0; -end; + set $@determinedayrotation,gettime(4); //this determines the day rotation for clearing messages. + if(($@determinedayrotation == 0)) set $rotation,0; + if(($@determinedayrotation == 1)) set $rotation,1; + if(($@determinedayrotation == 2)) set $rotation,0; + if(($@determinedayrotation == 3)) set $rotation,1; + if(($@determinedayrotation == 4)) set $rotation,0; + if(($@determinedayrotation == 5)) set $rotation,1; + if(($@determinedayrotation == 6)) set $rotation,0; + end; OnSun1200: -if(($rotation == 1)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -end; + if(($rotation == 1)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + end; OnSat1200: -if(($rotation == 0)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -end; + if(($rotation == 0)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + end; OnMon1200: -if(($rotation == 1)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -end; + if(($rotation == 1)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + end; OnTue1200: -if(($rotation == 0)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -end; + if(($rotation == 0)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + end; OnWed1200: -if(($rotation == 1)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -end; + if(($rotation == 1)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + end; OnThu1200: -if(($rotation == 0)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[1],$messageboardpostnumber; -set $messageboardpostnumber,0; -end; + if(($rotation == 0)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[1],$messageboardpostnumber; + set $messageboardpostnumber,0; + end; OnFri1200: -if(($rotation == 1)) end; -deletearray $messageboardpost$[1],$messageboardpostnumber; -deletearray $messageboardpostdate$[1],$messageboardpostnumber; -deletearray $messageboardpostname$[1],$messageboardpostnumber; -deletearray $mymessage[@tempview],@tempview; -set $messageboardpostnumber,0; -end; + if(($rotation == 1)) end; + deletearray $messageboardpost$[1],$messageboardpostnumber; + deletearray $messageboardpostdate$[1],$messageboardpostnumber; + deletearray $messageboardpostname$[1],$messageboardpostnumber; + deletearray $mymessage[@tempview],@tempview; + set $messageboardpostnumber,0; + end; } function script F_gmresetcheck { -set @tempcheck,0; + set @tempcheck,0; L_top: -set @tempcheck,@tempcheck+1; -if(($gmboardresetvoted[@tempview] == 1)) goto L_votecheck; -if(($gmboardresetvoted[@tempview] == 0)) return; -goto L_top; -end; - + set @tempcheck,@tempcheck+1; + if(($gmboardresetvoted[@tempview] == 1)) goto L_votecheck; + if(($gmboardresetvoted[@tempview] == 0)) return; + goto L_top; + end; L_votecheck: -set @tempcheckid,0; -set @tempcheckid,getcharid(0); -if(($gmboardresetvoteid[@tempview] != @tempcheckid)) goto L_top; -if(($gmboardresetvoteid[@tempview] == @tempcheckid)) goto L_voted; -end; + set @tempcheckid,0; + set @tempcheckid,getcharid(0); + if(($gmboardresetvoteid[@tempview] != @tempcheckid)) goto L_top; + if(($gmboardresetvoteid[@tempview] == @tempcheckid)) goto L_voted; + end; } function script F_gmmessage { -set @tempview,0; + set @tempview,0; L_top: -set @tempview,@tempview+1; -mes "Posted By: "+$gmmessageboardpostname$[@tempview]+"."; -mes "On: "+$gmmessageboardpostdate$[@tempview]+"."; -mes $gmmessageboardpost$[@tempview]+"."; -menu "Next Message",L_top2; - + set @tempview,@tempview+1; + mes "Posted By: "+$gmmessageboardpostname$[@tempview]+"."; + mes "On: "+$gmmessageboardpostdate$[@tempview]+"."; + mes $gmmessageboardpost$[@tempview]+"."; + menu "Next Message",L_top2; L_top2: -if(($gmmessageboardpostnumber > @tempview)) goto L_top; -close; + if(($gmmessageboardpostnumber > @tempview)) goto L_top; + close; } function script F_message { -set @tempview,0; + set @tempview,0; L_top: -set @tempview,@tempview+1; -mes "Posted By: "+$messageboardpostname$[@tempview]+"."; -mes "On: "+$messageboardpostdate$[@tempview]+"."; -mes $messageboardpost$[@tempview]+"."; -next; -if(($mymessage[@tempview] == 5) && (getgmlevel()>0)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy,"Delete This message",L_Del; -if((getgmlevel()>0)) menu "Next Message",L_top2,"Delete This message",L_Del; -if(($mymessage[@tempview] == 5)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy; -menu "Next message",L_top2; -close; + set @tempview,@tempview+1; + mes "Posted By: "+$messageboardpostname$[@tempview]+"."; + mes "On: "+$messageboardpostdate$[@tempview]+"."; + mes $messageboardpost$[@tempview]+"."; + next; + if(($mymessage[@tempview] == 5) && (getgmlevel()>0)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy,"Delete This message",L_Del; + if((getgmlevel()>0)) menu "Next Message",L_top2,"Delete This message",L_Del; + if(($mymessage[@tempview] == 5)) menu "Next Message",L_top2,"Delete My Message",L_delmy,"Edit my message",L_editmy; + menu "Next message",L_top2; + close; L_editmy: -mes "Are you sure?"; -next; -menu "Yes",L_editmyy,"No",L_editmyn; + mes "Are you sure?"; + next; + menu "Yes",L_editmyy,"No",L_editmyn; L_editmyy: -mes "what do you want your new message to be?"; -next; -mes "Current message!"; -mes $messageboardpost$[@tempview]; -set @tempeditmsg$,0; -input @tempeditmsg$; -next; -mes "is this what you want?"; -mes @tempeditmsg$; -next; -menu "Yes!",L_editmyyy,"No.",L_editmyyn; + mes "what do you want your new message to be?"; + next; + mes "Current message!"; + mes $messageboardpost$[@tempview]; + set @tempeditmsg$,0; + input @tempeditmsg$; + next; + mes "is this what you want?"; + mes @tempeditmsg$; + next; + menu "Yes!",L_editmyyy,"No.",L_editmyyn; L_editmyyy: -deletearray $messageboardpost$[@tempview],@tempview; -set $messageboardpost$[@tempview],@tempeditmsg$; -mes "Here is what your new message looks like."; -next; -mes "Posted By: "+$messageboardpostname$[@tempview]+"."; -mes "On: "+$messageboardpostdate$[@tempview]+"."; -mes $messageboardpost$[@tempview]+"."; -close2; -set @tempview,0; -end; + deletearray $messageboardpost$[@tempview],@tempview; + set $messageboardpost$[@tempview],@tempeditmsg$; + mes "Here is what your new message looks like."; + next; + mes "Posted By: "+$messageboardpostname$[@tempview]+"."; + mes "On: "+$messageboardpostdate$[@tempview]+"."; + mes $messageboardpost$[@tempview]+"."; + close2; + set @tempview,0; + end; L_editmyn: -Mes "So be it."; -set @tempview,0; -close; + Mes "So be it."; + set @tempview,0; + close; L_editmyyn: -mes "So be it!"; -set @tempeditmsg$,0; -set @tempview,0; -close; + mes "So be it!"; + set @tempeditmsg$,0; + set @tempview,0; + close; L_delmy: -mes "Are you sure...?"; -next; -menu "Yes",L_delmyy,"No thanks.",L_delmyn; + mes "Are you sure...?"; + next; + menu "Yes",L_delmyy,"No thanks.",L_delmyn; L_delmyy: -deletearray $messageboardpost$[@tempview],@tempview; -deletearray $messageboardpostname$[@tempview],@tempview; -deletearray $messageboardpostdate$[@tempview],@tempview; -deletearray $mymessage[@tempview],@tempview; -deletearray $messageboardeditdate$[@tempview],@tempview; -set $messageboardpostnumber,$messageboardpostnumber-1; -set @tempview,0; -mes "It is done."; -close; + deletearray $messageboardpost$[@tempview],@tempview; + deletearray $messageboardpostname$[@tempview],@tempview; + deletearray $messageboardpostdate$[@tempview],@tempview; + deletearray $mymessage[@tempview],@tempview; + deletearray $messageboardeditdate$[@tempview],@tempview; + set $messageboardpostnumber,$messageboardpostnumber-1; + set @tempview,0; + mes "It is done."; + close; L_delmyn: -mes "Come back soon."; -set @tempview,0; -close; + mes "Come back soon."; + set @tempview,0; + close; L_top2: -if(($messageboardpostnumber > @tempview)) goto L_top; -close; + if(($messageboardpostnumber > @tempview)) goto L_top; + close; L_Del: -mes "Are you sure?"; -next; -menu "Yes",L_Dely,"No",L_Deln; + mes "Are you sure?"; + next; + menu "Yes",L_Dely,"No",L_Deln; L_Dely: -deletearray $messageboardpost$[@tempview],@tempview; -deletearray $messageboardpostname$[@tempview],@tempview; -deletearray $messageboardpostdate$[@tempview],@tempview; -deletearray $mymessage[@tempview],@tempview; -deletearray $messageboardeditdate$[@tempview],@tempview; -set $messageboardpostnumber,$messageboardpostnumber-1; -mes "It is done."; -set @tempview,0; -close; + deletearray $messageboardpost$[@tempview],@tempview; + deletearray $messageboardpostname$[@tempview],@tempview; + deletearray $messageboardpostdate$[@tempview],@tempview; + deletearray $mymessage[@tempview],@tempview; + deletearray $messageboardeditdate$[@tempview],@tempview; + set $messageboardpostnumber,$messageboardpostnumber-1; + mes "It is done."; + set @tempview,0; + close; L_Deln: -mes "Come back soon!"; -set @tempview,0; -close; -} \ No newline at end of file + mes "Come back soon!"; + set @tempview,0; + close; +} diff --git a/npc/custom/eAAC_Scripts/quest_warper.txt b/npc/custom/eAAC_Scripts/quest_warper.txt index 427fff850..a9947ee3f 100644 --- a/npc/custom/eAAC_Scripts/quest_warper.txt +++ b/npc/custom/eAAC_Scripts/quest_warper.txt @@ -1,12 +1,11 @@ //===== rAthena Script ============================================ //= Quest Warper Script //===== By: ======================================================= -//= Old Warper 2 by Darkchild - Remade with quest format by DZeroX -//= Huge Rewrite by Neouni +//= DZeroX, Darkchild, Neouni //===== Current Version: ========================================== //= 2.2 //===== Compatible With: ========================================== -//= Any rAthena Version +//= rAthena SVN //===== Description: ============================================== //= Warper that works only after locations are unlocked //===== Additional Comments: ====================================== diff --git a/npc/custom/eAAC_Scripts/roll_a_dice.txt b/npc/custom/eAAC_Scripts/roll_a_dice.txt index 0f1fdf81b..4ba8fc827 100644 --- a/npc/custom/eAAC_Scripts/roll_a_dice.txt +++ b/npc/custom/eAAC_Scripts/roll_a_dice.txt @@ -1,23 +1,26 @@ -//========================================================== -//Roll a Dice NPC -//========================================================== -//Made by birkiczd -//========================================================== -//This game lets you and the Dicer throw 3 dices. -//Whoever get's a higher number (the player or dealer) wins. -//========================================================== -//Version:1.0 - made script public -// 1.1 - fixed a few bugs,added dice emos =) -// 1.2 - made variables for the amount of zenys for -// each bet so it is easy for people to costumize -// the script -// 1.3 - added more emoticons,made an Info menu -// option which contains explanations and rules, -// added the amount of lost/won zeny on the end -// of each game,added more colors -// 1.4 - some small code optimization thanks to Myzter -//========================================================== - +//===== rAthena Script ======================================= +//= Roll a Dice +//===== By: ================================================== +//= birkiczd +//===== Current Version: ===================================== +//= 1.4 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= This game lets you and the Dicer throw 3 dices. +//= Whoever get's a higher number (the player or dealer) wins. +//===== Additional Comments: ================================= +// 1.0 - made script public +// 1.1 - fixed a few bugs,added dice emos =) +// 1.2 - made variables for the amount of zenys for +// each bet so it is easy for people to costumize +// the script +// 1.3 - added more emoticons,made an Info menu +// option which contains explanations and rules, +// added the amount of lost/won zeny on the end +// of each game,added more colors +// 1.4 - some small code optimization thanks to Myzter +//============================================================ cmd_in02,181,98,2 script Dicer 57,{ @@ -239,6 +242,4 @@ L_againa: mes "Would you like to play again?"; next; menu "Yes",L_play,"No",L_go; - - } diff --git a/npc/custom/eAAC_Scripts/vendmachine.txt b/npc/custom/eAAC_Scripts/vendmachine.txt index bbd7602c6..17371ef9d 100644 --- a/npc/custom/eAAC_Scripts/vendmachine.txt +++ b/npc/custom/eAAC_Scripts/vendmachine.txt @@ -1,35 +1,33 @@ -//===================================== -// Vending Machine Script -// v2.4 -//===================================== -// by Celestria -//===================================== -// Changelog: -// 2.4 - Made optimizations according to suggestions made by erKURITA. Script is now significantly shorter. -// -// 2.3 - Added in "Slam" feature, as well as admin ability to turn machine on and off. -// - Added admin menu. Allows GMs to put machines in/out of service, and to clear -// all jammed items. -// -// 2.2 - Added in/Renamed some variables to allow a single machine to block on several -// items simultaneously. This fix also allows the two-item drop to work with every -// item the machine is jammed on. -// -// 2.1 - Fixed an error where if one machine jammed on a menu item (say 3 for example), -// if another machine also jammed on the same menu item (3 in this case), the original -// machine to jam would be unjammed. -// - This fix only allows a machine to jam one item at a time. Will fix in the future. -// -// 2.0 - Completely redid the script using a call-function. -// Now all replica scripts can simply be a copy of Vending Machine, -// but with variables modified to suit it''s intended use. -// -// 1.1 - Fixed $jamplayer1 not being a string, thanks to Terces. -// - Changed random number that intiates jam to 1, to allow for faster modification of jam rates. -// -// 1.0 - Creted a script for selling numerous items that would occasionally jam on players. -// - Used numbered variables to allow for multiplacation of the script. -//===================================== +//===== rAthena Script ======================================= +//= Vending Machine +//===== By: ================================================== +//= Celestria +//===== Current Version: ===================================== +//= 2.4 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= sells items to players; occasionally the machine will "jam" :P +//===== Additional Comments: ================================= +//= 1.0 - Creted a script for selling numerous items that would occasionally jam on players. +//= - Used numbered variables to allow for multiplacation of the script. +//= 1.1 - Fixed $jamplayer1 not being a string, thanks to Terces. +//= - Changed random number that intiates jam to 1, to allow for faster modification of jam rates. +//= 2.0 - Completely redid the script using a call-function. +//= Now all replica scripts can simply be a copy of Vending Machine, +//= but with variables modified to suit it''s intended use. +//= 2.1 - Fixed an error where if one machine jammed on a menu item (say 3 for example), +//= if another machine also jammed on the same menu item (3 in this case), the original +//= machine to jam would be unjammed. +//= - This fix only allows a machine to jam one item at a time. Will fix in the future. +//= 2.2 - Added in/Renamed some variables to allow a single machine to block on several +//= items simultaneously. This fix also allows the two-item drop to work with every +//= item the machine is jammed on. +//= 2.3 - Added in "Slam" feature, as well as admin ability to turn machine on and off. +//= - Added admin menu. Allows GMs to put machines in/out of service, and to clear +//= all jammed items. +//= 2.4 - Made optimizations according to suggestions made by erKURITA. Script is now significantly shorter. +//============================================================ p_track01,45,58,4 script Vending Machine#1 910,{ @@ -70,10 +68,6 @@ p_track01,45,58,4 script Vending Machine#1 910,{ - - - - //=============================================================================================== // Functions // @@ -173,7 +167,6 @@ function script F_Vend2 { goto B_Buy; - B_Cancel: mes "On second thoughts, you decide not to buy anything."; close; @@ -247,4 +240,4 @@ R_Item: close;} mes "The machine shakes, but nothing happens"; close; -} \ No newline at end of file +} diff --git a/npc/custom/events/2006_dogs_year.txt b/npc/custom/events/2006_dogs_year.txt index d9df6e373..494fbb3bc 100644 --- a/npc/custom/events/2006_dogs_year.txt +++ b/npc/custom/events/2006_dogs_year.txt @@ -5,18 +5,17 @@ //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= rAthena Version; 5xxx+ (with 'disguise' command) +//= rAthena SVN; 5000+ (with 'disguise' command) //===== Description: ========================================= //= Custom event: For 28-29 January //===== Additional Comments: ================================= //= 1.0 Tested, fully working.[Lupus] -//= Add some national info in English if you can. -//= (Mine was in Russian, and it's damn hard to translate 8) +//= Add some national info in English if you can. +//= (Mine was in Russian, and it's damn hard to translate 8) //= 1.1 Commented out monster spawn as it is a custom mob and [L0ne_W0lf] -// not in the mob database. +//= not in the mob database. //============================================================ - prontera,149,167,6 script Maria 81,{ mes "[Maria]"; //month diff --git a/npc/custom/events/draculax.txt b/npc/custom/events/draculax.txt index 1abd4e21d..13eb8fc8f 100644 --- a/npc/custom/events/draculax.txt +++ b/npc/custom/events/draculax.txt @@ -1,16 +1,15 @@ //===== rAthena Script ======================================= -//= Dracula X Script +//= Dracula X //===== By: ================================================== //= valaris (1.0) //===== Current Version: ===================================== //= 1.0a //===== Compatible With: ===================================== -//= rAthena RC4+ +//= rAthena SVN //===== Description: ========================================= //= Custom Dracula X Event //============================================================ - mag_dun02,72,182,1 script Dracula's Coffin::Dracula_Init -1,{ OnInit: diff --git a/npc/custom/events/hallow06.txt b/npc/custom/events/hallow06.txt index 9485abdc6..57c4ebdf6 100644 --- a/npc/custom/events/hallow06.txt +++ b/npc/custom/events/hallow06.txt @@ -5,15 +5,14 @@ //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= Latest Svn +//= rAthena SVN //===== Description: ========================================= //= Halloween Event Script //===== Additional Comments: ================================= -//= Version 1.1 - Added trick to script +//= 1.1 - Added trick to script //= 1.2 fixed bugs, optimized. Now uses 1 var instead of 3 [Lupus] //============================================================ - prontera,151,190,5 script Hallows' Eve Event 807,{ mes "[Hallows' Eve Event]"; if(Class == Job_Novice){ diff --git a/npc/custom/events/hyegun_event.txt b/npc/custom/events/hyegun_event.txt index 2a96dc57f..084df8eca 100644 --- a/npc/custom/events/hyegun_event.txt +++ b/npc/custom/events/hyegun_event.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any Athena Version I think +//= rAthena SVN //===== Description: ========================================= //= Event similar to iRO's Christmas event when searching for Antonios. //===== Additional Comments: ================================= @@ -20,13 +20,13 @@ in_sphinx1,0,0,0,0 monster Hyegun 1512,3,180000,30000,0 //Munak Quest pay_dun01,53,269,6 script Munak 1026,{ -if(event_hyegun==3) goto Lfinished; -mes "[^FF0000Munak^000000]"; -mes "Hello, kinda strange talking to a Munak huh?"; -mes "I'm a friendly Munak that wants to tell you something."; -menu "Listen to her story",Lok,"Leave",Lno; + if(event_hyegun==3) goto Lfinished; + mes "[^FF0000Munak^000000]"; + mes "Hello, kinda strange talking to a Munak huh?"; + mes "I'm a friendly Munak that wants to tell you something."; + menu "Listen to her story",Lok,"Leave",Lno; - Lok: +Lok: mes "[^FF0000Munak^000000]"; mes "Well see our father ^666600HyeGun^000000 has been terrible to us Munaks."; mes "We would like you to get revenge for what he has done to us."; @@ -37,7 +37,7 @@ menu "Listen to her story",Lok,"Leave",Lno; mes "Remember, you may only do this quest ^FF00003 times."; menu "Info about HyeGun",Lhyeinfo,"Give her the items",Litem,"Leave",Lno; - Lhyeinfo: +Lhyeinfo: mes "[^FF0000Munak^000000]"; mes "- HyeGun looks like us but he's a tanish color type with long hair."; mes "- He's been last seen in the first level of the 4 most popular dungeons."; @@ -45,7 +45,7 @@ menu "Listen to her story",Lok,"Leave",Lno; mes "Anything else?"; menu "Info about HyeGun",Lhyeinfo,"Give her the items",Litem,"Leave",Lno; - Litem: +Litem: mes "[^FF0000Munak^000000]"; mes "Ahh so you've completed the task so soon?"; mes "Good job"; @@ -59,17 +59,17 @@ menu "Listen to her story",Lok,"Leave",Lno; set event_hyegun,event_hyegun+1; close; - Lfinished: +Lfinished: mes "[^FF0000Munak^000000]"; mes "I'm sorry, you've already completed my task 3 times."; close; - Lno: +Lno: mes "[^FF0000Munak^000000]"; mes "Okay then, when you feel brave enough, come on back."; close; - Lnoitem: +Lnoitem: mes "[^FF0000Munak^000000]"; mes "Hey, you don't have the Yggdrasil Dew."; mes "Come back when you've gotten 3 of them."; diff --git a/npc/custom/events/kings_items.txt b/npc/custom/events/kings_items.txt index 1aed6bb1a..a706e037c 100644 --- a/npc/custom/events/kings_items.txt +++ b/npc/custom/events/kings_items.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= rAthena Version +//= rAthena SVN //===== Description: ========================================= //= Grand Circlet Quest combined with Excalibur Quest. //= Converted to rAthena format from Fusion. diff --git a/npc/custom/events/p_track/p_track_core.txt b/npc/custom/events/p_track/p_track_core.txt index 7edea017d..9b483fbf6 100644 --- a/npc/custom/events/p_track/p_track_core.txt +++ b/npc/custom/events/p_track/p_track_core.txt @@ -3,20 +3,21 @@ //===== By: ================================================== //= erKURITA //===== Current Version: ===================================== -//= 0.0000000000000002 +//= 1.2 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= NPCs that has nothing to do with the race itself, but //= has important functions on the race itself. //===== Additional Comments: ================================= -//= 0.0000000000000002 Removed Duplicates [Silent] +//= 1.2 Removed Duplicates [Silent] //============================================================ + p_track01,41,57,5 script Lady#track1::P_track 845,{ end; } -p_track01,67,34,6 script Erudite::P_Spectator1 107,{ +p_track01,67,34,6 script Erudite::P_Spectator1 107,{ end; } diff --git a/npc/custom/events/p_track/p_track_warpers.txt b/npc/custom/events/p_track/p_track_warpers.txt index 83cbfc938..e3942cbe6 100644 --- a/npc/custom/events/p_track/p_track_warpers.txt +++ b/npc/custom/events/p_track/p_track_warpers.txt @@ -3,71 +3,70 @@ //===== By: ================================================== //= erKURITA //===== Current Version: ===================================== -//= 0.0000000000000002 +//= 1.2 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= NPC's for the City of Hugel. //===== Additional Comments: ================================= -//= 0.0000000000000002 Removed Duplicates [Silent] +//= 1.2 Removed Duplicates [Silent] //============================================================ -//| Warp-in npcs + +// Warp-in npcs hugel,58,72,5 script Yan#track1 86,{ -//callfunc "P_TrackEnt",npcname,map name; -callfunc "P_TrackEnt","[Yan]","p_track01"; -end; + //callfunc "P_TrackEnt",npcname,map name; + callfunc "P_TrackEnt","[Yan]","p_track01"; + end; } hugel,62,68,1 script Yalmire#track1 86,{ -//callfunc "P_TrackEnt",npcname,map name; -callfunc "P_TrackEnt","[Yalmire]","p_track02"; -end; + //callfunc "P_TrackEnt",npcname,map name; + callfunc "P_TrackEnt","[Yalmire]","p_track02"; + end; } -//| Warp-out npcs - +// Warp-out npcs p_track01,76,36,2 script Yan#track2 86,{ -end; + end; } p_track02,76,36,2 script Yalmire#track2 86,{ -end; + end; } function script P_TrackEnt { - -mes getarg(0); -mes "Hi "+strcharinfo(0)+", Welcome to the Poring Track!"; -menu "Information",-,"I want to try it",L_Try,"Not today thanks",L_End; - next; - mes getarg(0); - mes "Bla blah, so fun"; - close; - L_Try: - next; - mes getarg(0); - mes "Ok, the entrance fee is 500z, would you like to go in?"; - menu "Yes Please",-,"No Thanks",L_End2; - if (Zeny < 500) { - next; - mes getarg(0); - mes "Sorry but you ain't got 500z, you can't enter"; - close; - } else - next; - mes getarg(0); - mes "Here we go!"; - close2; - set Zeny,Zeny-500; - warp getarg(1),75,41; - end; - L_End2: - next; - mes getarg(0); - mes "Oh well, you miss it"; - close; - L_End: + mes getarg(0); + mes "Hi "+strcharinfo(0)+", Welcome to the Poring Track!"; + menu "Information",-,"I want to try it",L_Try,"Not today thanks",L_End; + next; + mes getarg(0); + mes "Bla blah, so fun"; + close; +L_Try: + next; + mes getarg(0); + mes "Ok, the entrance fee is 500z, would you like to go in?"; + menu "Yes Please",-,"No Thanks",L_End2; + if (Zeny < 500) { next; mes getarg(0); - mes "Ok, see you later!"; + mes "Sorry but you ain't got 500z, you can't enter"; close; + } else + next; + mes getarg(0); + mes "Here we go!"; + close2; + set Zeny,Zeny-500; + warp getarg(1),75,41; + end; +L_End2: + next; + mes getarg(0); + mes "Oh well, you miss it"; + close; +L_End: + next; + mes getarg(0); + mes "Ok, see you later!"; + close; } diff --git a/npc/custom/events/uneasy_cemetery.txt b/npc/custom/events/uneasy_cemetery.txt index 570f88004..60d569483 100644 --- a/npc/custom/events/uneasy_cemetery.txt +++ b/npc/custom/events/uneasy_cemetery.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= Uneasy Prontera Cemetery Quest (original script!) +//= Uneasy Prontera Cemetery Quest //===== By: ================================================== //= Lupus //===== Current Version: ===================================== //= 1.2a (Tested and fully working!) //===== Compatible With: ===================================== -//= rAthena Version 1.0 +//= rAthena SVN //===== Description: ========================================= //= A periodical quest of the Uneasy Cemetery (Kill undead / Prevent their appearance) //= Every day, at the midnight Prontera receive a wave of Undeads. @@ -19,7 +19,6 @@ //= 1.2a Changed item names to item IDs. [Samuray22] //============================================================ - prontera,3,3,3 script Uneasy_Check -1,{ end; diff --git a/npc/custom/events/valentinesdayexp.txt b/npc/custom/events/valentinesdayexp.txt index 1b4436934..edc2bacec 100644 --- a/npc/custom/events/valentinesdayexp.txt +++ b/npc/custom/events/valentinesdayexp.txt @@ -5,11 +5,10 @@ //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= Any Athena Version 45xx+ +//= rAthena SVN; 4500+ //===== Description: ========================================= // Close to other official stValentine event (added white chocolate) // Custom: Handmade choco gives some EXP bonuses to married people -// //===== Additional Comments: ================================= //= WARNING!! To use this event, dicable original valentinesday.txt //= You can use this event from 12 till 16 February 8) [Lupus] diff --git a/npc/custom/events/xmas_rings_event.txt b/npc/custom/events/xmas_rings_event.txt index b65f77cc2..1a52fd43a 100644 --- a/npc/custom/events/xmas_rings_event.txt +++ b/npc/custom/events/xmas_rings_event.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= rAthena Version; 4880+ (with 'setItemScript' command) +//= rAthena SVN; 4880+ (with 'setItemScript' command) //===== Description: ========================================= //= Custom event: Karachun (from 8 Dec till 8 Jan), X-Mas, HNY //===== Additional Comments: ================================= @@ -14,7 +14,6 @@ //= 1.2 Fixed double quotes not being escaped [brianluau] //============================================================ - prontera,156,174,4 script Snower 713,{ mes "[Snower]"; if(Q_XMSRINGS==2){ diff --git a/npc/custom/floating_rates.txt b/npc/custom/floating_rates.txt index 26ab4a432..daa11878e 100644 --- a/npc/custom/floating_rates.txt +++ b/npc/custom/floating_rates.txt @@ -1,25 +1,22 @@ -//===== rAthena Script ====================================================================== +//===== rAthena Script ======================================= //= Floating Server Rates -//===== Original By ========================================================================= +//===== By: ================================================== //= Lupus -//===== Current Version: ==================================================================== +//===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ==================================================================== -//= Any rAthena, that has 'setbattleflag' function -//===== Description: ======================================================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= It's a simply example of setbattleflag //= This script will change your server rates from 1x to 1.5x every 6 hours //= Note: It doesn't affect Card granted drops, MVP & Treasure Chests drops ^_- -//= It also doesn't affect CARD drops, because they are just 0.01% -//===== Comments and Credits ================================================================ +//= It also doesn't affect CARD drops, because they are just 0.01% +//===== Additional Comments: ================================= //= You can make incredible scripts with 'setbattleflag'! -//=========================================================================================== +//============================================================ - -prontera,3,4,5 script FloatingRates -1,{ - end; +- script FloatingRates -1,{ OnInit: - //add any other HOURS OnHour00: OnHour06: @@ -40,7 +37,7 @@ OnHour18: setbattleflag("item_rate_equip",$@drate); //we don't change card drops rate, because these values won't change them anyway atcommand "@reloadmobdb"; - + announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060; end; } diff --git a/npc/custom/healers/heal.txt b/npc/custom/healers/heal.txt index 94d2f4f3b..09f14cb60 100644 --- a/npc/custom/healers/heal.txt +++ b/npc/custom/healers/heal.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= Heal Npc +//= Healer //===== By: ================================================== -//= Lotsa People (1.x) +//= lots of people //===== Current Version: ===================================== //= 3.1 //===== Compatible With: ===================================== -//= rAthena 0.1+; +//= rAthena SVN //===== Description: ========================================= //= Healer NPC Which Heals For Free //===== Additional Comments: ================================= @@ -16,20 +16,22 @@ //============================================================ - script Healer#h1-1::Healer 742,{ + callfunc "F_ClearGarbage",0; + mes "[Healer]"; mes "I have amazing healing powers!!"; mes "You look like a person who needs them"; mes "Want some?"; next; - if (select("Heal:No thanks") == 2) { + if (select("Heal:No thanks") == 1) { + percentheal 100,100; mes "[Healer]"; - mes "Allright, come back if you need a heal."; - close; + mes "Wonderfull, You are now healed!."; + mes "Have fun adventuring!!"; + } else { + mes "[Healer]"; + mes "Alright, come back if you need a heal."; } - percentheal 100,100; - mes "[Healer]"; - mes "Wonderfull, You are now healed!."; - mes "Have fun adventuring!!"; close; } diff --git a/npc/custom/healers/heal_payment.txt b/npc/custom/healers/heal_payment.txt index da1cd87db..0cc30e6f6 100644 --- a/npc/custom/healers/heal_payment.txt +++ b/npc/custom/healers/heal_payment.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= Healer Script (/w payments) +//= Healer (/w payments) //===== By: ================================================== //= Yor & abunch of other people //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== -//= Any Athena Version +//= rAthena SVN //===== Description: ========================================= //= NPC heals/regenerates people against zenys //===== Additional Comments: ================================= @@ -24,69 +24,69 @@ set @tempSp, ((MaxSp-Sp) * BaseLevel) / 5; if (@tempHp > 0) goto WOUNDED; if (@tempSpReal > 0) goto ONLY_REGENERATION; - + mes "[Healer]"; mes "Oh?"; mes "You do not look like a person in pain."; close; - WOUNDED: - if (@tempSp > 0) goto WITH_REGENERATION; - mes "[Healer]"; - mes "Oh dear, you look really hurt,"; - mes "I can cure you for: "+@tempHp+" z)"; - mes "Do you want me to cure you?"; - next; - menu "Healings ("+@tempHp+"z)",HEALINGS,"No, thanks",CANCEL; +WOUNDED: + if (@tempSp > 0) goto WITH_REGENERATION; + mes "[Healer]"; + mes "Oh dear, you look really hurt,"; + mes "I can cure you for: "+@tempHp+" z)"; + mes "Do you want me to cure you?"; + next; + menu "Healings ("+@tempHp+"z)",HEALINGS,"No, thanks",CANCEL; - WITH_REGENERATION: - mes "[Healer]"; - mes "Do you want only your HP to be healed? ("+@tempHp+" z)"; - mes "Do you want only your SP to be healed? ("+@tempSp+" z)?"; - mes "Or Would you like both? ("+(@tempHp+@tempSp)+" z)"; - next; - menu "Only HP ("+@tempHp+"z)",HEALINGS,"Only SP ("+@tempSp+"z)",REGENERATION,"Both HP & SP ("+(@tempHp+@tempSp)+"z)",HEALINGS_AND_REGEN,"Nothing, thanks",CANCEL; +WITH_REGENERATION: + mes "[Healer]"; + mes "Do you want only your HP to be healed? ("+@tempHp+" z)"; + mes "Do you want only your SP to be healed? ("+@tempSp+" z)?"; + mes "Or Would you like both? ("+(@tempHp+@tempSp)+" z)"; + next; + menu "Only HP ("+@tempHp+"z)",HEALINGS,"Only SP ("+@tempSp+"z)",REGENERATION,"Both HP & SP ("+(@tempHp+@tempSp)+"z)",HEALINGS_AND_REGEN,"Nothing, thanks",CANCEL; - ONLY_REGENERATION: - mes "[Healer]"; - mes "So, you only want your SP to heal? ("+@tempSp+" z)"; - mes "I need to make a living..."; - next; - menu "Regeneration ("+@tempSp+"z)",REGENERATION,"No, thanks",CANCEL; +ONLY_REGENERATION: + mes "[Healer]"; + mes "So, you only want your SP to heal? ("+@tempSp+" z)"; + mes "I need to make a living..."; + next; + menu "Regeneration ("+@tempSp+"z)",REGENERATION,"No, thanks",CANCEL; - HEALINGS: - if (Zeny < @tempHp) goto NO_ZENYS; - set Zeny, Zeny-@tempHp; - heal @tempHp,0; - goto FIN; +HEALINGS: + if (Zeny < @tempHp) goto NO_ZENYS; + set Zeny, Zeny-@tempHp; + heal @tempHp,0; + goto FIN; - REGENERATION: - if (Zeny < @tempSp) goto NO_ZENYS; - set Zeny, Zeny-@tempSp; - heal 0,@tempSpReal; - goto FIN; +REGENERATION: + if (Zeny < @tempSp) goto NO_ZENYS; + set Zeny, Zeny-@tempSp; + heal 0,@tempSpReal; + goto FIN; - HEALINGS_AND_REGEN: - if (Zeny < (@tempHp+@tempSp)) goto NO_ZENYS; - set Zeny, Zeny-(@tempHp+@tempSp); - heal @tempHp,@tempSpReal; - goto FIN; +HEALINGS_AND_REGEN: + if (Zeny < (@tempHp+@tempSp)) goto NO_ZENYS; + set Zeny, Zeny-(@tempHp+@tempSp); + heal @tempHp,@tempSpReal; + goto FIN; - NO_ZENYS: - mes "[Healer]"; - mes "Oh dear, you don't look like you have enough zeny."; - mes "Sorry, i can't help you."; - close; +NO_ZENYS: + mes "[Healer]"; + mes "Oh dear, you don't look like you have enough zeny."; + mes "Sorry, i can't help you."; + close; - FIN: - mes "[Healer]"; - mes "You are Completely Healed."; - close; +FIN: + mes "[Healer]"; + mes "You are Completely Healed."; + close; - CANCEL: - mes "[Healer]"; - mes "Allright. Please come again if you need anything."; - close; +CANCEL: + mes "[Healer]"; + mes "Allright. Please come again if you need anything."; + close; } diff --git a/npc/custom/jobs/jobmaster.txt b/npc/custom/jobs/jobmaster.txt index cfd7b83a1..15c384547 100644 --- a/npc/custom/jobs/jobmaster.txt +++ b/npc/custom/jobs/jobmaster.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= rAthena Jobchanger AKA Job Master +//= Job Master //===== By: ================================================== //= rAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance] //===== Current Version: ===================================== //= 1.5a //===== Compatible With: ===================================== -//= rAthena SVN Trunk 6674 +//= rAthena SVN; 6674+ //===== Description: ========================================= //= Changes your job without asking too much //= For other info, please contact me at Lunatikbunnie@gmail.com @@ -17,6 +17,7 @@ //= 1.5 Rewrite everything from scratch. [Lance] //= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus] //============================================================ + prontera,153,193,6 script Job Master 123,{ mes "^ff0000[Job Master]^000000"; if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq; @@ -27,165 +28,165 @@ prontera,153,193,6 script Job Master 123,{ } if(JobLevel < 10) goto L_LvError; switch(Class){ - case Job_Novice_High: - case Job_Baby: - case Job_Novice: - skill 142,1,0; - skill 143,1,0; - mes "Welcome, please select the job you wish to change into"; - if(lastJob != 0 && Class == Job_Novice_High){ - switch(lastJob){ - case Job_Knight: - case Job_Crusader: - set @target_job, Job_Swordman_High; - break; - case Job_Monk: - case Job_Priest: - set @target_job, Job_Acolyte_High; - break; - case Job_Alchemist: - case Job_Blacksmith: - set @target_job, Job_Merchant_High; - break; - case Job_Rogue: - case Job_Assassin: - set @target_job, Job_Thief_High; - break; - case Job_Wizard: - case Job_Sage: - set @target_job, Job_Mage_High; - break; - case Job_Hunter: - case Job_Bard: - case Job_Dancer: - set @target_job, Job_Archer_High; - break; - } + case Job_Novice_High: + case Job_Baby: + case Job_Novice: + skill 142,1,0; + skill 143,1,0; + mes "Welcome, please select the job you wish to change into"; + if(lastJob != 0 && Class == Job_Novice_High){ + switch(lastJob){ + case Job_Knight: + case Job_Crusader: + set @target_job, Job_Swordman_High; + break; + case Job_Monk: + case Job_Priest: + set @target_job, Job_Acolyte_High; + break; + case Job_Alchemist: + case Job_Blacksmith: + set @target_job, Job_Merchant_High; + break; + case Job_Rogue: + case Job_Assassin: + set @target_job, Job_Thief_High; + break; + case Job_Wizard: + case Job_Sage: + set @target_job, Job_Mage_High; + break; + case Job_Hunter: + case Job_Bard: + case Job_Dancer: + set @target_job, Job_Archer_High; + break; + } + } else { + switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", + "Super Novice","Taekwon","Gunslinger","Ninja")){ + case 7: + if(Class == Job_Novice_High) goto L_noReq; + if($@JC_SupNovM > BaseLevel) goto L_BvError; + if(Upper == 2) + set @target_job, Job_Super_Baby; + else + set @target_job, Job_SuperNovice; + break; + case 8: + if(Class == Job_Novice_High) goto L_noReq; + if(Upper == 2) goto L_noReq; + set @target_job, Job_Taekwon; + break; + case 9: + case 10: + if(Class == Job_Novice_High || Upper == 2) goto L_noReq; + set @target_job, @menu + 15; + break; + default: + set @target_job, @menu; + if(Class == Job_Novice_High) set @target_job, @target_job + 4001; + break; + } + } + mes "Are you sure you want to change to " + JobName(@target_job) + "?"; + if(select("No","Yes") == 2){ + callfunc "Job_Change", @target_job; + if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { + callfunc "F_ClearJobVar"; } else { - switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief", - "Super Novice","Taekwon","Gunslinger","Ninja")){ - case 7: - if(Class == Job_Novice_High) goto L_noReq; - if($@JC_SupNovM > BaseLevel) goto L_BvError; - if(Upper == 2) - set @target_job, Job_Super_Baby; - else - set @target_job, Job_SuperNovice; - break; - case 8: - if(Class == Job_Novice_High) goto L_noReq; - if(Upper == 2) goto L_noReq; - set @target_job, Job_Taekwon; - break; - case 9: - case 10: - if(Class == Job_Novice_High || Upper == 2) goto L_noReq; - set @target_job, @menu + 15; - break; - default: - set @target_job, @menu; - if(Class == Job_Novice_High) set @target_job, @target_job + 4001; - break; - } + if($@JC_Plat) goto L_GivePlat; + } + } + close; + break; + default: + if(JobLevel < $@JC_MinimumJB) goto L_LvError; + deletearray @job_opt, getarraysize(@job_opt); + if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ + if(lastJob != 0){ + set @target_job, lastJob + 4001; + } else { + switch(Class){ + case Job_Swordman_High: + case Job_Baby_Swordman: + case Job_Swordman: + set @job_opt[0], Job_Knight; + set @job_opt[1], Job_Crusader; + break; + case Job_Mage_High: + case Job_Baby_Mage: + case Job_Mage: + set @job_opt[0], Job_Wizard; + set @job_opt[1], Job_Sage; + break; + case Job_Archer_High: + case Job_Baby_Archer: + case Job_Archer: + set @job_opt[0], Job_Hunter; + if(Sex == 0) + set @job_opt[1], Job_Dancer; + else + set @job_opt[1], Job_Bard; + break; + case Job_Acolyte_High: + case Job_Baby_Acolyte: + case Job_Acolyte: + set @job_opt[0], Job_Priest; + set @job_opt[1], Job_Monk; + break; + case Job_Merchant_High: + case Job_Baby_Merchant: + case Job_Merchant: + set @job_opt[0], Job_Blacksmith; + set @job_opt[1], Job_Alchemist; + break; + case Job_Thief_High: + case Job_Baby_Thief: + case Job_Thief: + set @job_opt[0], Job_Assassin; + set @job_opt[1], Job_Rogue; + break; + default: + set @job_opt[0], Job_Star_Gladiator; + set @job_opt[1], Job_Soul_Linker; + break; + } + mes "Welcome, please select the job you wish to change into"; + set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; + if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; } mes "Are you sure you want to change to " + JobName(@target_job) + "?"; - if(select("No","Yes") == 2){ + if(select("No","Yes")==2){ callfunc "Job_Change", @target_job; - if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) { + if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { callfunc "F_ClearJobVar"; } else { if($@JC_Plat) goto L_GivePlat; } } close; - break; - default: - if(JobLevel < $@JC_MinimumJB) goto L_LvError; - deletearray @job_opt, getarraysize(@job_opt); - if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){ - if(lastJob != 0){ - set @target_job, lastJob + 4001; + } + if(checkfalcon() || checkcart() || checkriding()) goto L_remove; + if((Class >=Job_Knight) && (Class <=Job_Crusader2)){ + mes "Do you want to reborn?"; + if(select("Yes","No")==1){ + if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; + set lastJob, Class; + if(Class == Job_Knight2){ + set lastJob, Job_Knight; } else { - switch(Class){ - case Job_Swordman_High: - case Job_Baby_Swordman: - case Job_Swordman: - set @job_opt[0], Job_Knight; - set @job_opt[1], Job_Crusader; - break; - case Job_Mage_High: - case Job_Baby_Mage: - case Job_Mage: - set @job_opt[0], Job_Wizard; - set @job_opt[1], Job_Sage; - break; - case Job_Archer_High: - case Job_Baby_Archer: - case Job_Archer: - set @job_opt[0], Job_Hunter; - if(Sex == 0) - set @job_opt[1], Job_Dancer; - else - set @job_opt[1], Job_Bard; - break; - case Job_Acolyte_High: - case Job_Baby_Acolyte: - case Job_Acolyte: - set @job_opt[0], Job_Priest; - set @job_opt[1], Job_Monk; - break; - case Job_Merchant_High: - case Job_Baby_Merchant: - case Job_Merchant: - set @job_opt[0], Job_Blacksmith; - set @job_opt[1], Job_Alchemist; - break; - case Job_Thief_High: - case Job_Baby_Thief: - case Job_Thief: - set @job_opt[0], Job_Assassin; - set @job_opt[1], Job_Rogue; - break; - default: - set @job_opt[0], Job_Star_Gladiator; - set @job_opt[1], Job_Soul_Linker; - break; - } - mes "Welcome, please select the job you wish to change into"; - set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1]; - if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001; - } - mes "Are you sure you want to change to " + JobName(@target_job) + "?"; - if(select("No","Yes")==2){ - callfunc "Job_Change", @target_job; - if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) { - callfunc "F_ClearJobVar"; - } else { - if($@JC_Plat) goto L_GivePlat; + if(Class == Job_Crusader2){ + set lastJob, Job_Crusader; } } - close; - } - if(checkfalcon() || checkcart() || checkriding()) goto L_remove; - if((Class >=Job_Knight) && (Class <=Job_Crusader2)){ - mes "Do you want to reborn?"; - if(select("Yes","No")==1){ - if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh; - set lastJob, Class; - if(Class == Job_Knight2){ - set lastJob, Job_Knight; - } else { - if(Class == Job_Crusader2){ - set lastJob, Job_Crusader; - } - } - jobchange Job_Novice_High; - resetlvl(1); - skill 142,1,0; - skill 143,1,0; - } - close; + jobchange Job_Novice_High; + resetlvl(1); + skill 142,1,0; + skill 143,1,0; } + close; + } } mes "I'm sorry, there are no further classes for your job."; close; @@ -239,22 +240,18 @@ L_cantCh: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; - L_LvError: mes "I'm sorry, you do not seem to have enough Job Levels"; mes "Please come again soon!"; close; - L_BvError: mes "I'm sorry, you do not seem to have enough Base Levels"; mes "Please come again soon!"; close; - L_noReq: mes "I'm sorry, you do not meet the requirements to change"; mes "Please come again soon!"; close; - L_remove: mes "Please remove your cart,falcon or peco"; mes "Please come again soon!"; diff --git a/npc/custom/jobs/reset.txt b/npc/custom/jobs/reset.txt index 8592fc730..ab4be4353 100644 --- a/npc/custom/jobs/reset.txt +++ b/npc/custom/jobs/reset.txt @@ -1,17 +1,18 @@ //===== rAthena Script ======================================= -//= Reset NPC for Athena by Script & DB Team -//===== By: ================================================== -//= rAthena Team -//===== Current Version: ===================================== +//= Reset NPC +//===== By: ================================================== +//= rAthena Dev Team +//===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Any rAthena Version -//===== Description: ========================================= +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Resets skills, stats, or both. -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= 1.0 First Version //= 1.1 Optimized for the greater good. [Kisuka] -//============================================================ +//============================================================ + prontera,150,193,4 script Reset Girl 124,{ mes "[Reset Girl]"; mes "I am a Reset Girl."; @@ -21,38 +22,38 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) { - case 1: - mes "[Reset Girl]"; - if (Zeny < 5000) { - mes "Sorry, you don't have enough Zeny."; - close; - } - mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; - set Zeny,zeny-5000; - ResetSkill; + case 1: + mes "[Reset Girl]"; + if (Zeny < 5000) { + mes "Sorry, you don't have enough Zeny."; close; - case 2: - mes "[Reset Girl]"; - if (Zeny < 5000) { - mes "Sorry, you don't have enough Zeny."; - close; - } - mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; - set Zeny,zeny-5000; - ResetStatus; + } + mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; + set Zeny,zeny-5000; + ResetSkill; + close; + case 2: + mes "[Reset Girl]"; + if (Zeny < 5000) { + mes "Sorry, you don't have enough Zeny."; close; - case 3: - mes "[Reset Girl]"; - if (Zeny < 9000) { - mes "Sorry, you don't have enough Zeny."; - close; - } - mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; - set Zeny,zeny-9000; - ResetSkill; - ResetStatus; - close; - case 4: + } + mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; + set Zeny,zeny-5000; + ResetStatus; + close; + case 3: + mes "[Reset Girl]"; + if (Zeny < 9000) { + mes "Sorry, you don't have enough Zeny."; close; + } + mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!"; + set Zeny,zeny-9000; + ResetSkill; + ResetStatus; + close; + case 4: + close; } } diff --git a/npc/custom/lottery.txt b/npc/custom/lottery.txt index 1165e0abb..7cc9a53f1 100644 --- a/npc/custom/lottery.txt +++ b/npc/custom/lottery.txt @@ -1,13 +1,13 @@ //===== rAthena Script ======================================= -//= Lottery Script +//= Lottery //===== By: ================================================== -//= acky - god@acky.com +//= acky //===== Current Version: ===================================== //= 1.2.1a //===== Compatible With: ===================================== -//= Any rAthena Version +//= rAthena SVN //===== Description: ========================================= -//= Daily lottery draw. +//= Daily lottery draw //===== Additional Comments: ================================= //= Numbers drawn daily (Time is configured line 29) //= *Added GM-Riggability @@ -17,441 +17,438 @@ //= 1.2.1a fix due to new script engine //============================================================ -prontera,1,1,1 script lotterygenerator 111,{ +- script lotterygenerator -1,{ OnInit: -set $L_TicketPrice,4750; // TICKET COST -set $L_Prize_Money,5000000; // JACKPOT AMOUNT -set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE -if ($LID == 0) goto L_GenID; -end; + set $L_TicketPrice,4750; // TICKET COST + set $L_Prize_Money,5000000; // JACKPOT AMOUNT + set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE + if ($LID == 0) goto L_GenID; + end; -//Modify for own time + //Modify for own time OnClock2045: -// CHECKS IF LOTTERY IS RIGGED -if ($L_Rigged == 1) goto L_Rigged_Draw; -// GENERATES RANDOM NUMBERS 1-40 + // CHECKS IF LOTTERY IS RIGGED + if ($L_Rigged == 1) goto L_Rigged_Draw; + // GENERATES RANDOM NUMBERS 1-40 Pick1: -set $LW1,rand (1,40); + set $LW1,rand (1,40); Pick2: -set $LW2,rand (1,40); -if ($LW2 == $LW1) goto Pick2; + set $LW2,rand (1,40); + if ($LW2 == $LW1) goto Pick2; Pick3: -set $LW3,rand (1,40); -if ($LW3 == $LW2) goto Pick3; -if ($LW3 == $LW1) goto Pick3; + set $LW3,rand (1,40); + if ($LW3 == $LW2) goto Pick3; + if ($LW3 == $LW1) goto Pick3; Pick4: -set $LW4,rand (1,40); -if ($LW4 == $LW2) goto Pick4; -if ($LW4 == $LW1) goto Pick4; -if ($LW4 == $LW3) goto Pick4; + set $LW4,rand (1,40); + if ($LW4 == $LW2) goto Pick4; + if ($LW4 == $LW1) goto Pick4; + if ($LW4 == $LW3) goto Pick4; Pick5: -set $LW5,rand (1,40); -if ($LW5 == $LW1) goto Pick5; -if ($LW5 == $LW2) goto Pick5; -if ($LW5 == $LW3) goto Pick5; -if ($LW5 == $LW4) goto Pick5; + set $LW5,rand (1,40); + if ($LW5 == $LW1) goto Pick5; + if ($LW5 == $LW2) goto Pick5; + if ($LW5 == $LW3) goto Pick5; + if ($LW5 == $LW4) goto Pick5; Pick6: -set $LW6,rand (1,40); -if ($LW6 == $LW1) goto Pick6; -if ($LW6 == $LW2) goto Pick6; -if ($LW6 == $LW3) goto Pick6; -if ($LW6 == $LW4) goto Pick6; -if ($LW6 == $LW5) goto Pick6; - -// BROADCASTS DRAW + set $LW6,rand (1,40); + if ($LW6 == $LW1) goto Pick6; + if ($LW6 == $LW2) goto Pick6; + if ($LW6 == $LW3) goto Pick6; + if ($LW6 == $LW4) goto Pick6; + if ($LW6 == $LW5) goto Pick6; + + // BROADCASTS DRAW L_Broadcast: -Announce "Lottery: Welcome to tonight's lotto draw!",8; -Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; -Announce "Congratulations to the winners of tonight!",8; + Announce "Lottery: Welcome to tonight's lotto draw!",8; + Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; + Announce "Congratulations to the winners of tonight!",8; -// GENERATES DRAW ID CODE + // GENERATES DRAW ID CODE L_GenID: -set $LID2,$LID; -// SETS TOMORROW'S ID NUMBER -set $LID,rand (100000,999999); -end; + set $LID2,$LID; + // SETS TOMORROW'S ID NUMBER + set $LID,rand (100000,999999); + end; -// SETS DRAW TO RIGGED NUMBERS + // SETS DRAW TO RIGGED NUMBERS L_Rigged_Draw: -set $LW1,$LR1; -set $LW2,$LR2; -set $LW3,$LR3; -set $LW4,$LR4; -set $LW5,$LR5; -set $LW6,$LR6; -set $L_Rigged,0; -goto L_Broadcast; + set $LW1,$LR1; + set $LW2,$LR2; + set $LW3,$LR3; + set $LW4,$LR4; + set $LW5,$LR5; + set $LW6,$LR6; + set $L_Rigged,0; + goto L_Broadcast; } -// BEGIN LOTTERY SCRIPT -- script lottery 76,{ +prontera,141,182,5 script Lottery 76,{ L_Begin: -mes "[Lottery]"; -mes "Winning Lotto Numbers ("+$LID2+"):"; -mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000"; -if ($LID > 99999) mes "Your Ticket ("+#LID+"):"; -if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000"; -mes "Next Draw-ID: ^FF0000" + $LID + "^000000."; -next; -if (getgmlevel() > 90) goto L_GM; -menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel; + mes "[Lottery]"; + mes "Winning Lotto Numbers ("+$LID2+"):"; + mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000"; + if ($LID > 99999) mes "Your Ticket ("+#LID+"):"; + if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000"; + mes "Next Draw-ID: ^FF0000" + $LID + "^000000."; + next; + if (getgmlevel() > 90) goto L_GM; + menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel; // PURCHASE TICKET L_Buy: -if (#LID == $LID && #L1 != 0) goto L_DoubleTicket; -mes "[Lottery]"; -mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000."; -mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000."; -next; -menu "Buy Ticket",-,"Cancel",L_Cancel; -if (zeny < $L_TicketPrice) goto L_NoZeny; -set zeny,zeny-$L_TicketPrice; -mes "[Lottery]"; -mes "Would you like your numbers hand picked or computer generated?"; -next; -menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew; + if (#LID == $LID && #L1 != 0) goto L_DoubleTicket; + mes "[Lottery]"; + mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000."; + mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000."; + next; + menu "Buy Ticket",-,"Cancel",L_Cancel; + if (zeny < $L_TicketPrice) goto L_NoZeny; + set zeny,zeny-$L_TicketPrice; + mes "[Lottery]"; + mes "Would you like your numbers hand picked or computer generated?"; + next; + menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew; // RENEW LAST TICKET L_Renew: -if ($LID < 99999) goto L_Invalid; -set #LID,$LID; -goto L_Confirm2; + if ($LID < 99999) goto L_Invalid; + set #LID,$LID; + goto L_Confirm2; L_ComputerGen: // SELECTS RANDOM NUMBERS -set @L1,0; -set @L2,0; -set @L3,0; -set @L4,0; -set @L5,0; -set @L6,0; + set @L1,0; + set @L2,0; + set @L3,0; + set @L4,0; + set @L5,0; + set @L6,0; Pick1: -set @L1,rand (1,40); + set @L1,rand (1,40); Pick2: -set @L2,rand (1,40); -if (@L2 == @L1) goto Pick2; + set @L2,rand (1,40); + if (@L2 == @L1) goto Pick2; Pick3: -set @L3,rand (1,40); -if (@L3 == @L2) goto Pick3; -if (@L3 == @L1) goto Pick3; + set @L3,rand (1,40); + if (@L3 == @L2) goto Pick3; + if (@L3 == @L1) goto Pick3; Pick4: -set @L4,rand (1,40); -if (@L4 == @L2) goto Pick4; -if (@L4 == @L1) goto Pick4; -if (@L4 == @L3) goto Pick4; + set @L4,rand (1,40); + if (@L4 == @L2) goto Pick4; + if (@L4 == @L1) goto Pick4; + if (@L4 == @L3) goto Pick4; Pick5: -set @L5,rand (1,40); -if (@L5 == @L1) goto Pick5; -if (@L5 == @L2) goto Pick5; -if (@L5 == @L3) goto Pick5; -if (@L5 == @L4) goto Pick5; + set @L5,rand (1,40); + if (@L5 == @L1) goto Pick5; + if (@L5 == @L2) goto Pick5; + if (@L5 == @L3) goto Pick5; + if (@L5 == @L4) goto Pick5; Pick6: -set @L6,rand (1,40); -if (@L6 == @L1) goto Pick6; -if (@L6 == @L2) goto Pick6; -if (@L6 == @L3) goto Pick6; -if (@L6 == @L4) goto Pick6; -if (@L6 == @L5) goto Pick6; -mes "[Lottery]"; -mes "The computer has selected the following numbers:"; -mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; -next; -menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen; + set @L6,rand (1,40); + if (@L6 == @L1) goto Pick6; + if (@L6 == @L2) goto Pick6; + if (@L6 == @L3) goto Pick6; + if (@L6 == @L4) goto Pick6; + if (@L6 == @L5) goto Pick6; + mes "[Lottery]"; + mes "The computer has selected the following numbers:"; + mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; + next; + menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen; // HAND PICK LOTTERY NUMBERS L_HandPick: -mes "[Lottery]"; -mes "Please pick your numbers (1-40):"; -set @L1,0; -set @L2,0; -set @L3,0; -set @L4,0; -set @L5,0; -set @L6,0; + mes "[Lottery]"; + mes "Please pick your numbers (1-40):"; + set @L1,0; + set @L2,0; + set @L3,0; + set @L4,0; + set @L5,0; + set @L6,0; Input1: -input @L1; -if (@L1 < 1 || @L1 > 40) goto Input1; -mes @L1; + input @L1; + if (@L1 < 1 || @L1 > 40) goto Input1; + mes @L1; Input2: -input @L2; -if (@L2 < 1 || @L2 > 40) goto Input2; -if (@L2 == @L1) goto Input2; -mes @L2; + input @L2; + if (@L2 < 1 || @L2 > 40) goto Input2; + if (@L2 == @L1) goto Input2; + mes @L2; Input3: -input @L3; -if (@L3 < 1 || @L3 > 40) goto Input3; -if (@L3 == @L1) goto Input3; -if (@L3 == @L2) goto Input3; -mes @L3; + input @L3; + if (@L3 < 1 || @L3 > 40) goto Input3; + if (@L3 == @L1) goto Input3; + if (@L3 == @L2) goto Input3; + mes @L3; Input4: -input @L4; -if (@L4 < 1 || @L4 > 40) goto Input4; -if (@L4 == @L1) goto Input4; -if (@L4 == @L2) goto Input4; -if (@L4 == @L3) goto Input4; -mes @L4; + input @L4; + if (@L4 < 1 || @L4 > 40) goto Input4; + if (@L4 == @L1) goto Input4; + if (@L4 == @L2) goto Input4; + if (@L4 == @L3) goto Input4; + mes @L4; Input5: -input @L5; -if (@L5 < 1 || @L5 > 40) goto Input5; -if (@L5 == @L1) goto Input5; -if (@L5 == @L2) goto Input5; -if (@L5 == @L3) goto Input5; -if (@L5 == @L4) goto Input5; -mes @L5; + input @L5; + if (@L5 < 1 || @L5 > 40) goto Input5; + if (@L5 == @L1) goto Input5; + if (@L5 == @L2) goto Input5; + if (@L5 == @L3) goto Input5; + if (@L5 == @L4) goto Input5; + mes @L5; Input6: -input @L6; -if (@L6 < 1 || @L6 > 40) goto Input6; -if (@L6 == @L1) goto Input6; -if (@L6 == @L2) goto Input6; -if (@L6 == @L3) goto Input6; -if (@L6 == @L4) goto Input6; -if (@L6 == @L5) goto Input6; -mes @L6; -next; -mes "[Lottery]"; -mes "Your numbers are:"; -mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; -next; -menu "Confirm",L_Confirm,"Re-Pick",L_HandPick; + input @L6; + if (@L6 < 1 || @L6 > 40) goto Input6; + if (@L6 == @L1) goto Input6; + if (@L6 == @L2) goto Input6; + if (@L6 == @L3) goto Input6; + if (@L6 == @L4) goto Input6; + if (@L6 == @L5) goto Input6; + mes @L6; + next; + mes "[Lottery]"; + mes "Your numbers are:"; + mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000"; + next; + menu "Confirm",L_Confirm,"Re-Pick",L_HandPick; L_Confirm: -set #LW1,@L1; -set #LW2,@L2; -set #LW3,@L3; -set #LW4,@L4; -set #LW5,@L5; -set #LW6,@L6; -set #LID,$LID; + set #LW1,@L1; + set #LW2,@L2; + set #LW3,@L3; + set #LW4,@L4; + set #LW5,@L5; + set #LW6,@L6; + set #LID,$LID; L_Confirm2: -mes "[Lottery]"; -mes "The live broadcasted draw is at 9pm."; -mes "You can claim your ticket between then and the next draw."; -next; -mes "[Lottery]"; -mes "Good luck!"; -close; + mes "[Lottery]"; + mes "The live broadcasted draw is at 9pm."; + mes "You can claim your ticket between then and the next draw."; + next; + mes "[Lottery]"; + mes "Good luck!"; + close; L_Claim: -// CHECKS TICKET VALIDILITY -if (#LID != $LID2) goto L_Invalid; -// CHECKS HOW MANY NUMBERS MATCHED -set @LPrize,0; -if (#LW1 == $LW1) set @LPrize,@LPrize+1; -if (#LW1 == $LW2) set @LPrize,@LPrize+1; -if (#LW1 == $LW3) set @LPrize,@LPrize+1; -if (#LW1 == $LW4) set @LPrize,@LPrize+1; -if (#LW1 == $LW5) set @LPrize,@LPrize+1; -if (#LW1 == $LW6) set @LPrize,@LPrize+1; -if (#LW2 == $LW1) set @LPrize,@LPrize+1; -if (#LW2 == $LW2) set @LPrize,@LPrize+1; -if (#LW2 == $LW3) set @LPrize,@LPrize+1; -if (#LW2 == $LW4) set @LPrize,@LPrize+1; -if (#LW2 == $LW5) set @LPrize,@LPrize+1; -if (#LW2 == $LW6) set @LPrize,@LPrize+1; -if (#LW3 == $LW1) set @LPrize,@LPrize+1; -if (#LW3 == $LW2) set @LPrize,@LPrize+1; -if (#LW3 == $LW3) set @LPrize,@LPrize+1; -if (#LW3 == $LW4) set @LPrize,@LPrize+1; -if (#LW3 == $LW5) set @LPrize,@LPrize+1; -if (#LW3 == $LW6) set @LPrize,@LPrize+1; -if (#LW4 == $LW1) set @LPrize,@LPrize+1; -if (#LW4 == $LW2) set @LPrize,@LPrize+1; -if (#LW4 == $LW3) set @LPrize,@LPrize+1; -if (#LW4 == $LW4) set @LPrize,@LPrize+1; -if (#LW4 == $LW5) set @LPrize,@LPrize+1; -if (#LW4 == $LW6) set @LPrize,@LPrize+1; -if (#LW5 == $LW1) set @LPrize,@LPrize+1; -if (#LW5 == $LW2) set @LPrize,@LPrize+1; -if (#LW5 == $LW3) set @LPrize,@LPrize+1; -if (#LW5 == $LW4) set @LPrize,@LPrize+1; -if (#LW5 == $LW5) set @LPrize,@LPrize+1; -if (#LW5 == $LW6) set @LPrize,@LPrize+1; -if (#LW6 == $LW1) set @LPrize,@LPrize+1; -if (#LW6 == $LW2) set @LPrize,@LPrize+1; -if (#LW6 == $LW3) set @LPrize,@LPrize+1; -if (#LW6 == $LW4) set @LPrize,@LPrize+1; -if (#LW6 == $LW5) set @LPrize,@LPrize+1; -if (#LW6 == $LW6) set @LPrize,@LPrize+1; - -if (@LPrize == 6) goto LWinBig; -if (@LPrize > 3 && @LPrize < 6) goto LWinSmall; + // CHECKS TICKET VALIDILITY + if (#LID != $LID2) goto L_Invalid; + // CHECKS HOW MANY NUMBERS MATCHED + set @LPrize,0; + if (#LW1 == $LW1) set @LPrize,@LPrize+1; + if (#LW1 == $LW2) set @LPrize,@LPrize+1; + if (#LW1 == $LW3) set @LPrize,@LPrize+1; + if (#LW1 == $LW4) set @LPrize,@LPrize+1; + if (#LW1 == $LW5) set @LPrize,@LPrize+1; + if (#LW1 == $LW6) set @LPrize,@LPrize+1; + if (#LW2 == $LW1) set @LPrize,@LPrize+1; + if (#LW2 == $LW2) set @LPrize,@LPrize+1; + if (#LW2 == $LW3) set @LPrize,@LPrize+1; + if (#LW2 == $LW4) set @LPrize,@LPrize+1; + if (#LW2 == $LW5) set @LPrize,@LPrize+1; + if (#LW2 == $LW6) set @LPrize,@LPrize+1; + if (#LW3 == $LW1) set @LPrize,@LPrize+1; + if (#LW3 == $LW2) set @LPrize,@LPrize+1; + if (#LW3 == $LW3) set @LPrize,@LPrize+1; + if (#LW3 == $LW4) set @LPrize,@LPrize+1; + if (#LW3 == $LW5) set @LPrize,@LPrize+1; + if (#LW3 == $LW6) set @LPrize,@LPrize+1; + if (#LW4 == $LW1) set @LPrize,@LPrize+1; + if (#LW4 == $LW2) set @LPrize,@LPrize+1; + if (#LW4 == $LW3) set @LPrize,@LPrize+1; + if (#LW4 == $LW4) set @LPrize,@LPrize+1; + if (#LW4 == $LW5) set @LPrize,@LPrize+1; + if (#LW4 == $LW6) set @LPrize,@LPrize+1; + if (#LW5 == $LW1) set @LPrize,@LPrize+1; + if (#LW5 == $LW2) set @LPrize,@LPrize+1; + if (#LW5 == $LW3) set @LPrize,@LPrize+1; + if (#LW5 == $LW4) set @LPrize,@LPrize+1; + if (#LW5 == $LW5) set @LPrize,@LPrize+1; + if (#LW5 == $LW6) set @LPrize,@LPrize+1; + if (#LW6 == $LW1) set @LPrize,@LPrize+1; + if (#LW6 == $LW2) set @LPrize,@LPrize+1; + if (#LW6 == $LW3) set @LPrize,@LPrize+1; + if (#LW6 == $LW4) set @LPrize,@LPrize+1; + if (#LW6 == $LW5) set @LPrize,@LPrize+1; + if (#LW6 == $LW6) set @LPrize,@LPrize+1; + + if (@LPrize == 6) goto LWinBig; + if (@LPrize > 3 && @LPrize < 6) goto LWinSmall; // NO WINNER -mes "[Lottery]"; -mes "Bad luck, it appears you do not hold a winning ticket."; -next; -mes "[Lottery]"; -mes "Better luck next time!."; -close; + mes "[Lottery]"; + mes "Bad luck, it appears you do not hold a winning ticket."; + next; + mes "[Lottery]"; + mes "Better luck next time!."; + close; // MATCHED ALL SIX LWinBig: -mes "[Lottery]"; -mes "You have matched all six numbers!"; -mes "Jackpot!"; -mes "You've won ^0000FF" + $L_Prize_Money + "z^000000."; -set zeny,zeny+$L_Prize_Money; -Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8; -set #LID,0; -close; + mes "[Lottery]"; + mes "You have matched all six numbers!"; + mes "Jackpot!"; + mes "You've won ^0000FF" + $L_Prize_Money + "z^000000."; + set zeny,zeny+$L_Prize_Money; + Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8; + set #LID,0; + close; // MATCHED AT LEAST 4 LWinSmall: -mes "[Lottery]"; -mes "You have matched at least 4 numbers!"; -mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000."; -set zeny,zeny+$L_Prize_Money_Small; -Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8; -set #LID,0; -close; + mes "[Lottery]"; + mes "You have matched at least 4 numbers!"; + mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000."; + set zeny,zeny+$L_Prize_Money_Small; + Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8; + set #LID,0; + close; // NO ZENY L_NoZeny: -mes "[Lottery]"; -mes "You can't afford a lottery ticket."; -close; + mes "[Lottery]"; + mes "You can't afford a lottery ticket."; + close; // INVALID TICKET L_Invalid: -mes "[Lottery]"; -mes "I'm sorry but it appears that you have an invalid ticket."; -close; + mes "[Lottery]"; + mes "I'm sorry but it appears that you have an invalid ticket."; + close; // DOUBLE TICKET L_DoubleTicket: -mes "[Lottery]"; -mes "It appears that you already have a ticket for today."; -mes "You may only purchase one ticket per draw."; -close; + mes "[Lottery]"; + mes "It appears that you already have a ticket for today."; + mes "You may only purchase one ticket per draw."; + close; L_Cancel: -mes "[Lottery]"; -mes "Come back soon!"; -close; + mes "[Lottery]"; + mes "Come back soon!"; + close; // GM MENU (Lets you manually do draws) L_GM: -menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",L_Cancel; + menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",L_Cancel; -// CHECKS IF LOTTERY IS RIGGED -if ($L_Rigged == 1) goto L_Rigged_Draw; -// GENERATES RANDOM NUMBERS 1-40 + // CHECKS IF LOTTERY IS RIGGED + if ($L_Rigged == 1) goto L_Rigged_Draw; + // GENERATES RANDOM NUMBERS 1-40 GMPick1: -set $LW1,rand (1,40); + set $LW1,rand (1,40); GMPick2: -set $LW2,rand (1,40); -if ($LW2 == $LW1) goto GMPick2; + set $LW2,rand (1,40); + if ($LW2 == $LW1) goto GMPick2; GMPick3: -set $LW3,rand (1,40); -if ($LW3 == $LW2) goto GMPick3; -if ($LW3 == $LW1) goto GMPick3; + set $LW3,rand (1,40); + if ($LW3 == $LW2) goto GMPick3; + if ($LW3 == $LW1) goto GMPick3; GMPick4: -set $LW4,rand (1,40); -if ($LW4 == $LW2) goto GMPick4; -if ($LW4 == $LW1) goto GMPick4; -if ($LW4 == $LW3) goto GMPick4; + set $LW4,rand (1,40); + if ($LW4 == $LW2) goto GMPick4; + if ($LW4 == $LW1) goto GMPick4; + if ($LW4 == $LW3) goto GMPick4; GMPick5: -set $LW5,rand (1,40); -if ($LW5 == $LW1) goto GMPick5; -if ($LW5 == $LW2) goto GMPick5; -if ($LW5 == $LW3) goto GMPick5; -if ($LW5 == $LW4) goto GMPick5; + set $LW5,rand (1,40); + if ($LW5 == $LW1) goto GMPick5; + if ($LW5 == $LW2) goto GMPick5; + if ($LW5 == $LW3) goto GMPick5; + if ($LW5 == $LW4) goto GMPick5; GMPick6: -set $LW6,rand (1,40); -if ($LW6 == $LW1) goto GMPick6; -if ($LW6 == $LW2) goto GMPick6; -if ($LW6 == $LW3) goto GMPick6; -if ($LW6 == $LW4) goto GMPick6; -if ($LW6 == $LW5) goto GMPick6; + set $LW6,rand (1,40); + if ($LW6 == $LW1) goto GMPick6; + if ($LW6 == $LW2) goto GMPick6; + if ($LW6 == $LW3) goto GMPick6; + if ($LW6 == $LW4) goto GMPick6; + if ($LW6 == $LW5) goto GMPick6; // BROADCASTS DRAW L_Broadcast: -Announce "Lottery: Welcome to the special GM's lotto draw!",8; -Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; -Announce "Congratulations to the winners!",8; + Announce "Lottery: Welcome to the special GM's lotto draw!",8; + Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; + Announce "Congratulations to the winners!",8; // GENERATES DRAW ID CODE L_GenID: -set $LID2,$LID; -// SETS TOMORROW'S ID NUMBER -set $LID,rand (100000,999999); -close; + set $LID2,$LID; + // SETS TOMORROW'S ID NUMBER + set $LID,rand (100000,999999); + close; // SETS DRAW TO RIGGED NUMBERS L_Rigged_Draw: -set $LW1,$LR1; -set $LW2,$LR2; -set $LW3,$LR3; -set $LW4,$LR4; -set $LW5,$LR5; -set $LW6,$LR6; -set $L_Rigged,0; -goto L_Broadcast; + set $LW1,$LR1; + set $LW2,$LR2; + set $LW3,$LR3; + set $LW4,$LR4; + set $LW5,$LR5; + set $LW6,$LR6; + set $L_Rigged,0; + goto L_Broadcast; // ALLOWS GM TO DO A RIGGED DRAW L_GM_Rig: -mes "[Lottery]"; -mes "Please pick your numbers (1-40):"; -set $LR1,0; -set $LR2,0; -set $LR3,0; -set $LR4,0; -set $LR5,0; -set $LR6,0; + mes "[Lottery]"; + mes "Please pick your numbers (1-40):"; + set $LR1,0; + set $LR2,0; + set $LR3,0; + set $LR4,0; + set $LR5,0; + set $LR6,0; GMInput1: -Input $LR1; -if ($LR1 < 1 || $LR1 > 40) goto GMInput1; -mes $LR1; + Input $LR1; + if ($LR1 < 1 || $LR1 > 40) goto GMInput1; + mes $LR1; GMInput2: -Input $LR2; -if ($LR2 < 1 || $LR2 > 40) goto GMInput2; -if ($LR2 == $LR1) goto GMInput2; -mes $LR2; + Input $LR2; + if ($LR2 < 1 || $LR2 > 40) goto GMInput2; + if ($LR2 == $LR1) goto GMInput2; + mes $LR2; GMInput3: -Input $LR3; -if ($LR3 < 1 || $LR3 > 40) goto GMInput3; -if ($LR3 == $LR1) goto GMInput3; -if ($LR3 == $LR2) goto GMInput3; -mes $LR3; + Input $LR3; + if ($LR3 < 1 || $LR3 > 40) goto GMInput3; + if ($LR3 == $LR1) goto GMInput3; + if ($LR3 == $LR2) goto GMInput3; + mes $LR3; GMInput4: -Input $LR4; -if ($LR4 < 1 || $LR4 > 40) goto GMInput4; -if ($LR4 == $LR1) goto GMInput4; -if ($LR4 == $LR2) goto GMInput4; -if ($LR4 == $LR3) goto GMInput4; -mes $LR4; + Input $LR4; + if ($LR4 < 1 || $LR4 > 40) goto GMInput4; + if ($LR4 == $LR1) goto GMInput4; + if ($LR4 == $LR2) goto GMInput4; + if ($LR4 == $LR3) goto GMInput4; + mes $LR4; GMInput5: -Input $LR5; -if ($LR5 < 1 || $LR5 > 40) goto GMInput5; -if ($LR5 == $LR1) goto GMInput5; -if ($LR5 == $LR2) goto GMInput5; -if ($LR5 == $LR3) goto GMInput5; -if ($LR5 == $LR4) goto GMInput5; -mes $LR5; + Input $LR5; + if ($LR5 < 1 || $LR5 > 40) goto GMInput5; + if ($LR5 == $LR1) goto GMInput5; + if ($LR5 == $LR2) goto GMInput5; + if ($LR5 == $LR3) goto GMInput5; + if ($LR5 == $LR4) goto GMInput5; + mes $LR5; GMInput6: -Input $LR6; -if ($LR6 < 1 || $LR6 > 40) goto GMInput6; -if ($LR6 == $LR1) goto GMInput6; -if ($LR6 == $LR2) goto GMInput6; -if ($LR6 == $LR3) goto GMInput6; -if ($LR6 == $LR4) goto GMInput6; -if ($LR6 == $LR5) goto GMInput6; -mes $LR6; -next; -mes "[Lottery]"; -mes "Lottery rigged for next draw."; -set $L_Rigged,1; -close; + Input $LR6; + if ($LR6 < 1 || $LR6 > 40) goto GMInput6; + if ($LR6 == $LR1) goto GMInput6; + if ($LR6 == $LR2) goto GMInput6; + if ($LR6 == $LR3) goto GMInput6; + if ($LR6 == $LR4) goto GMInput6; + if ($LR6 == $LR5) goto GMInput6; + mes $LR6; + next; + mes "[Lottery]"; + mes "Lottery rigged for next draw."; + set $L_Rigged,1; + close; } - -prontera,141,182,5 duplicate(lottery) Lottery 76 diff --git a/npc/custom/market.txt b/npc/custom/market.txt index b6eb18532..d07eabac8 100644 --- a/npc/custom/market.txt +++ b/npc/custom/market.txt @@ -1,37 +1,35 @@ //===== rAthena Script ======================================= //= Market Place -//===== By =================================================== +//===== By: ================================================== //= Lupus -//===== Version ============================================== +//===== Current Version: ===================================== //= 1.1 -//===== Compatible With ====================================== -//= rAthena 5760+ -//===== Description ========================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= This script should move vending crowds from Prontera //= streets to a suitable market place. Save your traffic 8) -//===== Comments ============================================= -//=1.0 unknown -//=1.1 Optimized it, Removed labels. [Spre] +//===== Additional Comments: ================================= +//= 1.1 Optimized it, Removed labels. [Spre] //============================================================ - prontera,144,174,3 script Market Place 722,{ mes"[Market Place]"; mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; next; - if (select("Yes Please:No") == 2) { + if (select("Yes Please:No") == 2) { close; } // I didn't see the need to check and show venders.... Since it didnt even work warp "gon_test",27+rand(5),98; end; } - + gon_test,73,103,0 script MarketExit 45,1,2,{ warp "prontera",155,177-rand(10); end; } - + //disable vending in Prontera prontera mapflag novending prt_in mapflag novending diff --git a/npc/custom/marriage.txt b/npc/custom/marriage.txt index ed06b4abf..0ca3fb069 100644 --- a/npc/custom/marriage.txt +++ b/npc/custom/marriage.txt @@ -1,22 +1,18 @@ -////////////////////////////////////////////////////////// -// Marriage Script // -////////////////////////////////////////////////////////// -// -//=====rAthena Script==================================== -// Wedding Script -//=====By================================================ -// AppleGirl and Evera(version 1.0) -//=====Current Version=================================== -// 2.9 -//=====Compatible With:================================== -// rAthena Version SVN-R8637 and up; RO Episode 6+ -//=====Description======================================= -// Fully working wedding script for all kind of weddings -//=====Additional Comments:============================== -// Lesbian and Gay Weddings by ShadowLady (version 1.1) -// Complete Rewrite by Skotlex (version 2.0->2.8) -// 2.9 : Somewhat iRO-official NPC names [DracoRPG] -//======================================================= +//===== rAthena Script ======================================= +//= Wedding Script +//===== By: ================================================== +//= AppleGirl, Evera +//===== Current Version: ===================================== +//= 2.9 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Fully working wedding script for all kind of weddings +//===== Additional Comments: ================================= +// 1.1 Lesbian and Gay Weddings [ShadowLady] +// 2.0 Complete Rewrite [Skotlex] +// 2.9 Somewhat iRO-official NPC names [DracoRPG] +//============================================================ // Configuration Variables: - script marriage_init -1,{ diff --git a/npc/custom/morroc_raceway.txt b/npc/custom/morroc_raceway.txt index b81c7aca6..768084173 100644 --- a/npc/custom/morroc_raceway.txt +++ b/npc/custom/morroc_raceway.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= Morroc Raceway Script +//= Morroc Raceway //===== By: ================================================== -//= acky (god@acky.com) +//= acky //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== -//= Any rAthena Version +//= rAthena SVN //===== Description: ========================================= //= Lets players race around Morroc (pvp_y_1-5) //===== Additional Comments: ================================= @@ -22,226 +22,217 @@ //Warps you into race way morocc,166,105,6 script Race Girl#01 116,{ -mes "[Race Girl]"; -mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; -next; -menu "Yes",L_Warp,"No",-; -mes "[Race Girl]"; -mes "Alright, talk to me again when you want to go."; -close; - + mes "[Race Girl]"; + mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; + next; + menu "Yes",L_Warp,"No",-; + mes "[Race Girl]"; + mes "Alright, talk to me again when you want to go."; + close; L_Warp: -warp "pvp_y_1-5",165,256; -close; + warp "pvp_y_1-5",165,256; + close; } //Warps you out of raceway pvp_y_1-5,169,265,5 script Race Girl#02 116,{ -mes "[Race Girl]"; -mes "Welcome to Morroc Raceway!"; -next; -menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel; -mes "[Race Girl]"; -mes "Someone must click on the Starter NPC to start the race."; -next; -mes "[Race Girl]"; -mes "Once the race is started, run around Morroc anti-clockwise."; -next; -mes "[Race Girl]"; -mes "You must reach all the checkpoints - No cheating!"; -close; - + mes "[Race Girl]"; + mes "Welcome to Morroc Raceway!"; + next; + menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel; + mes "[Race Girl]"; + mes "Someone must click on the Starter NPC to start the race."; + next; + mes "[Race Girl]"; + mes "Once the race is started, run around Morroc anti-clockwise."; + next; + mes "[Race Girl]"; + mes "You must reach all the checkpoints - No cheating!"; + close; L_Warp: -warp "morocc",165,101; - + warp "morocc",165,101; L_Cancel: -mes "[Race Girl]"; -mes "Come again soon!"; -close; + mes "[Race Girl]"; + mes "Come again soon!"; + close; } //Counts down and starts race pvp_y_1-5,145,269,5 script Starter 733,{ -if ($@race != 0) goto L_Started; -if ($@counting != 0) goto L_Started; -if ($@racecount == 1) goto L_Started; + if ($@race != 0) goto L_Started; + if ($@counting != 0) goto L_Started; + if ($@racecount == 1) goto L_Started; L_Menu: -mes "[Race Starter]"; -mes "Please stay on the Eastern side of me."; -menu "Start Race",L_Count,"Cancel",-; -close; - - L_Count: - set $@counting,1; - mes "Counting down..."; - addtimer 1000, "Starter::OnCount1000"; - addtimer 2000, "Starter::OnCount2000"; - addtimer 3000, "Starter::OnCount3000"; - addtimer 4000, "Starter::OnCount4000"; - announce strcharinfo(0) + "Started a countdown",1; - announce "Get ready to race!",1; - close; - - - OnCount1000: - announce "[3]",1; - end; - - OnCount2000: - announce "[2]",1; - end; - - OnCount3000: - announce "[1]",1; - end; - - OnCount4000: - emotion 27; - specialeffect EF_CHIMTO; - announce "[GO!]",1; - set $@race,1; - set $@position,0; - set $@counting,0; - set $@raceid,rand(100000,999999); - end; - + mes "[Race Starter]"; + mes "Please stay on the Eastern side of me."; + menu "Start Race",L_Count,"Cancel",-; + close; +L_Count: + set $@counting,1; + mes "Counting down..."; + addtimer 1000, "Starter::OnCount1000"; + addtimer 2000, "Starter::OnCount2000"; + addtimer 3000, "Starter::OnCount3000"; + addtimer 4000, "Starter::OnCount4000"; + announce strcharinfo(0) + "Started a countdown",1; + announce "Get ready to race!",1; + close; + +OnCount1000: + announce "[3]",1; + end; +OnCount2000: + announce "[2]",1; + end; +OnCount3000: + announce "[1]",1; + end; +OnCount4000: + emotion 27; + specialeffect EF_CHIMTO; + announce "[GO!]",1; + set $@race,1; + set $@position,0; + set $@counting,0; + set $@raceid,rand(100000,999999); + end; L_Started: -if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu; -if ($@position > 2) goto L_Menu; -mes "[Starter]"; -mes "Race in progress"; -close; + if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu; + if ($@position > 2) goto L_Menu; + mes "[Starter]"; + mes "Race in progress"; + close; OnInit: -set $@race,0; -set $@position,0; -set $@racecount,0; -end; + set $@race,0; + set $@position,0; + set $@racecount,0; + end; } //Checkpoint 1 pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{ -end; + end; OnTouch: -if (@raceid != $@raceid) goto L_Started; -if (@race == 6) goto L_Finished; -if ($@race == 1) goto L_Started; -mes "The race has not started, please move back."; -close; + if (@raceid != $@raceid) goto L_Started; + if (@race == 6) goto L_Finished; + if ($@race == 1) goto L_Started; + mes "The race has not started, please move back."; + close; L_Started: -set @race,1; -set @raceid,$@raceid; -end; + set @race,1; + set @raceid,$@raceid; + end; L_Finished: -mes "You have already completed the race."; -close; + mes "You have already completed the race."; + close; } //Checkpoint 2 pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{ -end; + end; OnTouch: -if (@race != 1) goto L_Miss; -set @race,2; -announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1; -end; + if (@race != 1) goto L_Miss; + set @race,2; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1; + end; L_Miss: -mes "You have missed a Checkpoint. Please go back."; -close; + mes "You have missed a Checkpoint. Please go back."; + close; } //Checkpoint 3 pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{ -end; + end; OnTouch: -if (@race != 2) goto L_Miss; -set @race,3; -announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1; -end; + if (@race != 2) goto L_Miss; + set @race,3; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1; + end; L_Miss: -mes "You have missed a Checkpoint. Please go back."; -close; + mes "You have missed a Checkpoint. Please go back."; + close; } //Checkpoint 3 pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{ -end; + end; OnTouch: -if (@race != 3) goto L_Miss; -set @race,4; -announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1; -end; + if (@race != 3) goto L_Miss; + set @race,4; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1; + end; L_Miss: -mes "You have missed a Checkpoint. Please go back."; -close; + mes "You have missed a Checkpoint. Please go back."; + close; } //Checkpoint 4 pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{ -end; + end; OnTouch: -if (@race != 4) goto L_Miss; -set @race,5; -announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1; -end; + if (@race != 4) goto L_Miss; + set @race,5; + announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1; + end; L_Miss: -mes "You have missed a Checkpoint. Please go back."; -close; + mes "You have missed a Checkpoint. Please go back."; + close; } //Finish Line pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{ -end; + end; OnTouch: -if (@raceid != $@raceid) goto L_WrongRace; -if (@race != 5) goto L_Miss; -set @race,6; -set $@position,$@position+1; -announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1; -end; + if (@raceid != $@raceid) goto L_WrongRace; + if (@race != 5) goto L_Miss; + set @race,6; + set $@position,$@position+1; + announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1; + end; L_Miss: -mes "You have missed a Checkpoint. Please go back."; -close; + mes "You have missed a Checkpoint. Please go back."; + close; L_WrongRace: -mes "You are not in this race."; -close; + mes "You are not in this race."; + close; } //Check Point Marker Flags pvp_y_1-5,144,267,4 script Check Point 1#01 722,{ -end; + end; } pvp_y_1-5,144,257,4 script Check Point 1#02 722,{ -end; + end; } pvp_y_1-5,70,252,3 script Check Point 2#01 722,{ -end; + end; } pvp_y_1-5,77,243,3 script Check Point 2#02 722,{ -end; + end; } pvp_y_1-5,81,48,1 script Check Point 3#01 722,{ -end; + end; } pvp_y_1-5,72,40,1 script Check Point 3#02 722,{ -end; + end; } pvp_y_1-5,244,65,7 script Check Point 4#01 722,{ -end; + end; } pvp_y_1-5,252,57,7 script Check Point 4#02 722,{ -end; + end; } pvp_y_1-5,259,260,5 script Check Point 5#01 722,{ -end; + end; } pvp_y_1-5,251,252,5 script Check Point 5#02 722,{ -end; + end; } pvp_y_1-5,174,249,4 script Finish Line#01 722,{ -end; + end; } pvp_y_1-5,174,238,4 script Finish Line#02 722,{ -end; + end; } diff --git a/npc/custom/mvm.txt b/npc/custom/mvm.txt index 42891324f..251759a7c 100644 --- a/npc/custom/mvm.txt +++ b/npc/custom/mvm.txt @@ -1,7 +1,7 @@ //===== rAthena Script ======================================= //= Monster vs Monster //===== By: ================================================== -//= acky - god@acky.com +//= acky //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== @@ -21,542 +21,542 @@ //= 1.1.4 Fixed SummonPad syntax. [KarLaeda] //= 1.1.5 Some cleanup & optimization [KarLaeda] //= 1.2 Replaced effect numerics with constants. [Samuray22] -//============================================================ +//============================================================ // Entrance // prontera,158,193,6 script Monster Arena 702,{ -mes "[Monster Arena]"; -mes "Would you like to enter the Monster Arena?"; -mes "Currently ^FF0000" + getmapusers("gon_test") + "^000000 players"; -mes "^FF0000Note:^000000 Pecos, Falcons and Carts will be lost on entry."; + mes "[Monster Arena]"; + mes "Would you like to enter the Monster Arena?"; + mes "Currently ^FF0000" + getmapusers("gon_test") + "^000000 players"; + mes "^FF0000Note:^000000 Pecos, Falcons and Carts will be lost on entry."; L_Menu: -next; -menu "Enter",-,"Information",L_Info,"Cancel",L_Exit; + next; + menu "Enter",-,"Information",L_Info,"Cancel",L_Exit; -set @marena,1; -savepoint "gon_test",56,99; -set @battle,0; -warp "gon_test",57,99; -close; + set @marena,1; + savepoint "gon_test",56,99; + set @battle,0; + warp "gon_test",57,99; + close; L_Exit: -mes "[Monster Arena]"; -mes "Come back any time."; -close; + mes "[Monster Arena]"; + mes "Come back any time."; + close; L_Info: -mes "[Monster Arena]"; -mes "You must purchase a pet from the Monster Tamer to start fighting."; -next; -mes "[Monster Arena]"; -mes "Then talk to the Usher and tell him you would like to compete."; -next; -mes "[Monster Arena]"; -mes "Talk to the referee to summon your monster."; -mes "Once your monster has fought, you must talk to the Usher again and choose to spectate."; -next; -mes "[Monster Arena]"; -mes "Talk to the Monster Trainer, he will ask you to heal your pet."; -next; -mes "[Monster Arena]"; -mes "To do this, click the Nurse repearedly until it says your pet is healed."; -next; -mes "[Monster Arena]"; -mes "The more monsters you kill, the more exp you get and the quicker you can upgrade."; -next; -mes "[Monster Arena]"; -mes "The stronger your monster is, the longer it will take to summon again."; - -goto L_Menu; + mes "[Monster Arena]"; + mes "You must purchase a pet from the Monster Tamer to start fighting."; + next; + mes "[Monster Arena]"; + mes "Then talk to the Usher and tell him you would like to compete."; + next; + mes "[Monster Arena]"; + mes "Talk to the referee to summon your monster."; + mes "Once your monster has fought, you must talk to the Usher again and choose to spectate."; + next; + mes "[Monster Arena]"; + mes "Talk to the Monster Trainer, he will ask you to heal your pet."; + next; + mes "[Monster Arena]"; + mes "To do this, click the Nurse repearedly until it says your pet is healed."; + next; + mes "[Monster Arena]"; + mes "The more monsters you kill, the more exp you get and the quicker you can upgrade."; + next; + mes "[Monster Arena]"; + mes "The stronger your monster is, the longer it will take to summon again."; + + goto L_Menu; } // Monster Summon Function // function script monstersummon { -// 1. ---Change to Add Monsters--- // -if (#monster == 10) summon strcharinfo(0) + "'s Poring",1002, "OnPoringKilled"; -if (#monster == 20) summon strcharinfo(0) + "'s Fabre",1007, "OnFaberKilled"; -if (#monster == 30) summon strcharinfo(0) + "'s Lunatic",1063, "OnLunaticKilled"; -if (#monster == 31) summon strcharinfo(0) + "'s Drops",1113, "OnDropsKilled"; -if (#monster == 32) summon strcharinfo(0) + "'s Picky",1049, "OnPickyKilled"; -if (#monster == 40) summon strcharinfo(0) + "'s ChonChon",1011, "OnChonChonKilled"; -if (#monster == 41) summon strcharinfo(0) + "'s Super Picky",1050, "OnSPickyKilled"; -if (#monster == 42) summon strcharinfo(0) + "'s Willow",1010, "OnWillowKilled"; -if (#monster == 50) summon strcharinfo(0) + "'s Roda Frog",1012, "OnRodaKilled"; -if (#monster == 51) summon strcharinfo(0) + "'s Condor",1009, "OnCondorKilled"; -if (#monster == 60) summon strcharinfo(0) + "'s Thief Bug Larva",1051, "OnThiefKilled"; -if (#monster == 70) summon strcharinfo(0) + "'s Savage Babe",1167, "OnSavageKilled"; -if (#monster == 80) summon strcharinfo(0) + "'s Familiar",1005, "OnFamiliarKilled"; -if (#monster == 81) summon strcharinfo(0) + "'s Hornet",1004, "OnHornetKilled"; -if (#monster == 90) summon strcharinfo(0) + "'s Desert Wolf Puppy",1107, "OnPuppyKilled"; -if (#monster == 91) summon strcharinfo(0) + "'s Spore",1014, "OnSporeKilled"; -if (#monster == 92) summon strcharinfo(0) + "'s Rocker",1052, "OnRockerKilled"; -if (#monster == 100) summon strcharinfo(0) + "'s Skeleton",1076, "OnSkeletonKilled"; -if (#monster == 101) summon strcharinfo(0) + "'s Plankton",1161, "OnPlanktonKilled"; -if (#monster == 102) summon strcharinfo(0) + "'s Antonio",1247, "OnAntonioKilled"; -if (#monster == 103) summon strcharinfo(0) + "'s Thief Bug Female",1053, "OnThiefFemaleKilled"; -close; + // 1. ---Change to Add Monsters--- // + if (#monster == 10) summon strcharinfo(0) + "'s Poring",1002, "OnPoringKilled"; + if (#monster == 20) summon strcharinfo(0) + "'s Fabre",1007, "OnFaberKilled"; + if (#monster == 30) summon strcharinfo(0) + "'s Lunatic",1063, "OnLunaticKilled"; + if (#monster == 31) summon strcharinfo(0) + "'s Drops",1113, "OnDropsKilled"; + if (#monster == 32) summon strcharinfo(0) + "'s Picky",1049, "OnPickyKilled"; + if (#monster == 40) summon strcharinfo(0) + "'s ChonChon",1011, "OnChonChonKilled"; + if (#monster == 41) summon strcharinfo(0) + "'s Super Picky",1050, "OnSPickyKilled"; + if (#monster == 42) summon strcharinfo(0) + "'s Willow",1010, "OnWillowKilled"; + if (#monster == 50) summon strcharinfo(0) + "'s Roda Frog",1012, "OnRodaKilled"; + if (#monster == 51) summon strcharinfo(0) + "'s Condor",1009, "OnCondorKilled"; + if (#monster == 60) summon strcharinfo(0) + "'s Thief Bug Larva",1051, "OnThiefKilled"; + if (#monster == 70) summon strcharinfo(0) + "'s Savage Babe",1167, "OnSavageKilled"; + if (#monster == 80) summon strcharinfo(0) + "'s Familiar",1005, "OnFamiliarKilled"; + if (#monster == 81) summon strcharinfo(0) + "'s Hornet",1004, "OnHornetKilled"; + if (#monster == 90) summon strcharinfo(0) + "'s Desert Wolf Puppy",1107, "OnPuppyKilled"; + if (#monster == 91) summon strcharinfo(0) + "'s Spore",1014, "OnSporeKilled"; + if (#monster == 92) summon strcharinfo(0) + "'s Rocker",1052, "OnRockerKilled"; + if (#monster == 100) summon strcharinfo(0) + "'s Skeleton",1076, "OnSkeletonKilled"; + if (#monster == 101) summon strcharinfo(0) + "'s Plankton",1161, "OnPlanktonKilled"; + if (#monster == 102) summon strcharinfo(0) + "'s Antonio",1247, "OnAntonioKilled"; + if (#monster == 103) summon strcharinfo(0) + "'s Thief Bug Female",1053, "OnThiefFemaleKilled"; + close; } // Referee // - script monsterreferee 61,{ -if (@fighting == 1) end; -if (@battle == 1) goto L_Start; -end; + if (@fighting == 1) end; + if (@battle == 1) goto L_Start; + end; L_Start: -mes "[Referee]"; -mes "Your monster is:"; - -// 2. ---Change to Add Monsters--- // -if (#monster == 10) mes "Poring"; -if (#monster == 20) mes "Faber"; -if (#monster == 30) mes "Lunatic"; -if (#monster == 31) mes "Drops"; -if (#monster == 32) mes "Picky"; -if (#monster == 40) mes "ChonChon"; -if (#monster == 41) mes "Super Picky"; -if (#monster == 42) mes "Willow"; -if (#monster == 50) mes "Roda Frog"; -if (#monster == 51) mes "Condor"; -if (#monster == 60) mes "Thief Bug Larva"; -if (#monster == 70) mes "Savage Babe"; -if (#monster == 80) mes "Familiar"; -if (#monster == 81) mes "Hornet"; -if (#monster == 90) mes "Desert Wolf Puppy"; -if (#monster == 91) mes "Spore"; -if (#monster == 92) mes "Rocker"; -if (#monster == 100) mes "Skeleton"; -if (#monster == 101) mes "Plankton"; -if (#monster == 102) mes "Antonio"; -if (#monster == 103) mes "Thief Bug Female"; - -mes "Would you like to fight?"; -next; -menu "Fight",-,"Cancel",L_Exit; - -set @fighting,1; -set #heal,1; -set @special,rand (100); // Chance of special summon -if (@special == 1) goto Special1; -if (@special == 2) goto Special2; -if (@special == 3) goto Special3; -if (@special == 4) goto Special4; -if (@special == 5) goto Special5; - -callfunc "monstersummon"; -close; - -// Special Summons // + mes "[Referee]"; + mes "Your monster is:"; + + // 2. ---Change to Add Monsters--- // + if (#monster == 10) mes "Poring"; + if (#monster == 20) mes "Faber"; + if (#monster == 30) mes "Lunatic"; + if (#monster == 31) mes "Drops"; + if (#monster == 32) mes "Picky"; + if (#monster == 40) mes "ChonChon"; + if (#monster == 41) mes "Super Picky"; + if (#monster == 42) mes "Willow"; + if (#monster == 50) mes "Roda Frog"; + if (#monster == 51) mes "Condor"; + if (#monster == 60) mes "Thief Bug Larva"; + if (#monster == 70) mes "Savage Babe"; + if (#monster == 80) mes "Familiar"; + if (#monster == 81) mes "Hornet"; + if (#monster == 90) mes "Desert Wolf Puppy"; + if (#monster == 91) mes "Spore"; + if (#monster == 92) mes "Rocker"; + if (#monster == 100) mes "Skeleton"; + if (#monster == 101) mes "Plankton"; + if (#monster == 102) mes "Antonio"; + if (#monster == 103) mes "Thief Bug Female"; + + mes "Would you like to fight?"; + next; + menu "Fight",-,"Cancel",L_Exit; + + set @fighting,1; + set #heal,1; + set @special,rand (100); // Chance of special summon + if (@special == 1) goto Special1; + if (@special == 2) goto Special2; + if (@special == 3) goto Special3; + if (@special == 4) goto Special4; + if (@special == 5) goto Special5; + + callfunc "monstersummon"; + close; + + // Special Summons // Special1: -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; -close; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + summon strcharinfo(0) + "'s Assault Team",1002, "OnPoringKilled"; + close; Special2: -summon strcharinfo(0) + "'s Mastering",1090, "OnSpecialKilled"; -close; + summon strcharinfo(0) + "'s Mastering",1090, "OnSpecialKilled"; + close; Special3: -summon strcharinfo(0) + "'s Eclipse",1093, "OnSpecialKilled"; -close; + summon strcharinfo(0) + "'s Eclipse",1093, "OnSpecialKilled"; + close; Special4: -summon strcharinfo(0) + "'s Dragon Fly",1091, "OnSpecialKilled"; -close; + summon strcharinfo(0) + "'s Dragon Fly",1091, "OnSpecialKilled"; + close; Special5: -summon strcharinfo(0) + "'s Toad",1089, "OnSpecialKilled"; -close; + summon strcharinfo(0) + "'s Toad",1089, "OnSpecialKilled"; + close; L_Exit: -mes "[Referee]"; -mes "Alright"; -close; + mes "[Referee]"; + mes "Alright"; + close; } gon_test,56,91,6 duplicate(monsterreferee) Referee#01 61 // Usher // gon_test,58,94,6 script Usher 86,{ -set @marena,1; -mes "[Usher]"; -mes "What would you like to do?"; -next; -menu "^0000FFSpectate",L_Spec,"^FF0000Compete^000000",-,"Return to Town",L_Exit,"Cancel",L_Cancel; + set @marena,1; + mes "[Usher]"; + mes "What would you like to do?"; + next; + menu "^0000FFSpectate",L_Spec,"^FF0000Compete^000000",-,"Return to Town",L_Exit,"Cancel",L_Cancel; -if (#monster == 0) goto L_NoMon; -if (#heal == 1) goto L_Heal; + if (#monster == 0) goto L_NoMon; + if (#heal == 1) goto L_Heal; -if (#monster < 40) goto L_Low; -if (#monster > 30 && #monster < 80) goto L_Med; -if (#monster > 70) goto L_High; + if (#monster < 40) goto L_Low; + if (#monster > 30 && #monster < 80) goto L_Med; + if (#monster > 70) goto L_High; L_Low: -menu "Level 1-3",L_1to3,"^FF0000All Levels",L_High; -close; + menu "Level 1-3",L_1to3,"^FF0000All Levels",L_High; + close; L_Med: -menu "Level 4-7",L_4to6,"^FF0000All Levels",L_High; -close; + menu "Level 4-7",L_4to6,"^FF0000All Levels",L_High; + close; L_High: -close2; -savepoint "gon_test",56,99; -set @battle,1; -atcommand strcharinfo(0) + "@option 64 0 64"; -warp "gon_test",72,87; -end; + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",72,87; + end; L_4to6: -close2; -savepoint "gon_test",56,99; -set @battle,1; -atcommand strcharinfo(0) + "@option 64 0 64"; -warp "gon_test",57,86; -end; + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",57,86; + end; L_1to3: -close2; -savepoint "gon_test",56,99; -set @battle,1; -atcommand strcharinfo(0) + "@option 64 0 64"; -warp "gon_test",43,87; -end; + close2; + savepoint "gon_test",56,99; + set @battle,1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",43,87; + end; L_Exit: -close2; -savepoint "prontera",149,186; -set @battle,0; -atcommand strcharinfo(0) + "@option 0 0 0"; -warp "prontera",149,186; -end; + close2; + savepoint "prontera",149,186; + set @battle,0; + atcommand strcharinfo(0) + "@option 0 0 0"; + warp "prontera",149,186; + end; L_Spec: -close2; -savepoint "gon_test",56,99; -set @battle,0; -atcommand strcharinfo(0) + "@option 0 0 0"; -warp "gon_test",57,99; -end; + close2; + savepoint "gon_test",56,99; + set @battle,0; + atcommand strcharinfo(0) + "@option 0 0 0"; + warp "gon_test",57,99; + end; L_NoMon: -mes "[Usher]"; -mes "You haven't got a monster, you can only spectate."; -close; + mes "[Usher]"; + mes "You haven't got a monster, you can only spectate."; + close; L_Heal: -mes "[Usher]"; -mes "You have to heal your monster before you can fight again."; -close; + mes "[Usher]"; + mes "You have to heal your monster before you can fight again."; + close; L_Cancel: -close; + close; } // Monster Trainer // gon_test,52,103,6 script Monster Trainer 87,{ -mes "[Monster Trainer]"; -if (#monster != 0) goto L_Mon; - -mes "Welcome to the monster arena, would you like to start training?"; -next; -menu "Yes",-,"No",L_Exit; - -mes "[Monster Trainer]"; -mes "New trainers may only start with Porings."; -mes "They cost 1000z, Would you like to buy one?"; -next; -menu "Yes",-,"No",L_Exit; - -if (zeny < 1000) goto L_NoZeny; -set zeny,zeny-1000; -set #monster,10; -mes "[Monster Trainer]"; -mes "Congratulations!"; -mes "When your Poring earns enough experience, talk to me to upgrade."; -close; + mes "[Monster Trainer]"; + if (#monster != 0) goto L_Mon; + + mes "Welcome to the monster arena, would you like to start training?"; + next; + menu "Yes",-,"No",L_Exit; + + mes "[Monster Trainer]"; + mes "New trainers may only start with Porings."; + mes "They cost 1000z, Would you like to buy one?"; + next; + menu "Yes",-,"No",L_Exit; + + if (zeny < 1000) goto L_NoZeny; + set zeny,zeny-1000; + set #monster,10; + mes "[Monster Trainer]"; + mes "Congratulations!"; + mes "When your Poring earns enough experience, talk to me to upgrade."; + close; L_Mon: -mes "Welcome back, " + strcharinfo(0) + "."; -mes "Your monster has " + #monpoints + " exp points."; -next; -if (@fighting == 1) goto L_Heal; -menu "Upgrade Monster",L_Upgrade,"Sell Experience",L_Sell,"^FF0000Abandon Monster^000000",L_Abandon,"Cancel",L_Exit; + mes "Welcome back, " + strcharinfo(0) + "."; + mes "Your monster has " + #monpoints + " exp points."; + next; + if (@fighting == 1) goto L_Heal; + menu "Upgrade Monster",L_Upgrade,"Sell Experience",L_Sell,"^FF0000Abandon Monster^000000",L_Abandon,"Cancel",L_Exit; L_Abandon: -mes "[Monster Trainer]"; -mes "Are you sure you want to abandon your monster?"; -next; -menu "Yes",-,"No",L_Exit; -set #monster,0; -set #monpoints,0; -mes "[Monster Trainer]"; -mes "Monster released into the wild."; -close; + mes "[Monster Trainer]"; + mes "Are you sure you want to abandon your monster?"; + next; + menu "Yes",-,"No",L_Exit; + set #monster,0; + set #monpoints,0; + mes "[Monster Trainer]"; + mes "Monster released into the wild."; + close; L_Sell: -mes "[Monster Trainer]"; -mes "You can sell your monster's experience for 100z each."; -next; -menu "Sell",-,"Cancel",L_Exit; -mes "[Monster Trainer]"; -mes "You have: ^FF0000" + #monpoints + "^000000 experience points"; -mes "How many would you like to sell?"; -next; -input @sellexp; -if (@sellexp > #monpoints) goto L_NoExp; -set #monpoints,#monpoints-@sellexp; -set @sellearn,100*@sellexp; // Price of exp -set zeny,zeny+@sellearn; -mes "[Monster Trainer]"; -mes "You earned ^0000FF" + @sellearn + "^000000z."; -close; + mes "[Monster Trainer]"; + mes "You can sell your monster's experience for 100z each."; + next; + menu "Sell",-,"Cancel",L_Exit; + mes "[Monster Trainer]"; + mes "You have: ^FF0000" + #monpoints + "^000000 experience points"; + mes "How many would you like to sell?"; + next; + input @sellexp; + if (@sellexp > #monpoints) goto L_NoExp; + set #monpoints,#monpoints-@sellexp; + set @sellearn,100*@sellexp; // Price of exp + set zeny,zeny+@sellearn; + mes "[Monster Trainer]"; + mes "You earned ^0000FF" + @sellearn + "^000000z."; + close; L_NoExp: -mes "[Monster Trainer]"; -mes "You do not have enough experience."; -next; -goto L_Exit; + mes "[Monster Trainer]"; + mes "You do not have enough experience."; + next; + goto L_Exit; -// Monster Upgrades // + // Monster Upgrades // L_Upgrade: -mes "[Monster Trainer]"; -// 3. ---Change to Add Monsters - May not be required--- // -if (#monster > 1 && #monster < 20) mes "You need 10 exp points to upgrade your monster."; -if (#monster > 19 && #monster < 30) mes "You need 20 exp points to upgrade your monster."; -if (#monster > 29 && #monster < 40) mes "You need 40 exp points to upgrade your monster."; -if (#monster > 39 && #monster < 50) mes "You need 80 exp points to upgrade your monster."; -if (#monster > 49 && #monster < 60) mes "You need 160 exp points to upgrade your monster."; -if (#monster > 59 && #monster < 70) mes "You need 320 exp points to upgrade your monster."; -if (#monster > 69 && #monster < 80) mes "You need 640 exp points to upgrade your monster."; -if (#monster > 79 && #monster < 90) mes "You need 1280 exp points to upgrade your monster."; -if (#monster > 89 && #monster < 100) mes "You need 2560 exp points to upgrade your monster."; -next; -menu "Continue",-,"Cancel",L_Exit; -mes "[Monster Trainer]"; - -// 4. ---Change to Add Monsters - May not be required--- // -if (#monster > 1 && #monster < 20 && #monpoints > 9) goto L_Up1; -if (#monster > 19 && #monster < 30 && #monpoints > 19) goto L_Up2; -if (#monster > 29 && #monster < 40 && #monpoints > 39) goto L_Up3; -if (#monster > 39 && #monster < 50 && #monpoints > 79) goto L_Up4; -if (#monster > 49 && #monster < 60 && #monpoints > 159) goto L_Up5; -if (#monster > 59 && #monster < 70 && #monpoints > 319) goto L_Up6; -if (#monster > 69 && #monster < 80 && #monpoints > 639) goto L_Up7; -if (#monster > 79 && #monster < 90 && #monpoints > 1279) goto L_Up8; -if (#monster > 89 && #monster < 100 && #monpoints > 2559) goto L_Up9; - -mes "Unable to upgrade."; -close; - -// 5. ---Change to Add Monsters--- // - L_Up1: + mes "[Monster Trainer]"; + // 3. ---Change to Add Monsters - May not be required--- // + if (#monster > 1 && #monster < 20) mes "You need 10 exp points to upgrade your monster."; + if (#monster > 19 && #monster < 30) mes "You need 20 exp points to upgrade your monster."; + if (#monster > 29 && #monster < 40) mes "You need 40 exp points to upgrade your monster."; + if (#monster > 39 && #monster < 50) mes "You need 80 exp points to upgrade your monster."; + if (#monster > 49 && #monster < 60) mes "You need 160 exp points to upgrade your monster."; + if (#monster > 59 && #monster < 70) mes "You need 320 exp points to upgrade your monster."; + if (#monster > 69 && #monster < 80) mes "You need 640 exp points to upgrade your monster."; + if (#monster > 79 && #monster < 90) mes "You need 1280 exp points to upgrade your monster."; + if (#monster > 89 && #monster < 100) mes "You need 2560 exp points to upgrade your monster."; + next; + menu "Continue",-,"Cancel",L_Exit; + mes "[Monster Trainer]"; + + // 4. ---Change to Add Monsters - May not be required--- // + if (#monster > 1 && #monster < 20 && #monpoints > 9) goto L_Up1; + if (#monster > 19 && #monster < 30 && #monpoints > 19) goto L_Up2; + if (#monster > 29 && #monster < 40 && #monpoints > 39) goto L_Up3; + if (#monster > 39 && #monster < 50 && #monpoints > 79) goto L_Up4; + if (#monster > 49 && #monster < 60 && #monpoints > 159) goto L_Up5; + if (#monster > 59 && #monster < 70 && #monpoints > 319) goto L_Up6; + if (#monster > 69 && #monster < 80 && #monpoints > 639) goto L_Up7; + if (#monster > 79 && #monster < 90 && #monpoints > 1279) goto L_Up8; + if (#monster > 89 && #monster < 100 && #monpoints > 2559) goto L_Up9; + + mes "Unable to upgrade."; + close; + + // 5. ---Change to Add Monsters--- // +L_Up1: set #monster,20; set #monpoints,#monpoints-10; mes "Upgraded to Fabre!"; close; - L_Up2: +L_Up2: mes "Which monster would you like to upgrade to?"; next; menu "Lunatic",U_Lunatic,"Drops",U_Drops,"Picky",U_Picky; - U_Drops: - set #monster,31; - set #monpoints,#monpoints-20; - mes "[Monster Trainer]"; - mes "Upgraded to Drops!"; - close; - - U_Picky: - set #monster,32; - set #monpoints,#monpoints-20; - mes "[Monster Trainer]"; - mes "Upgraded to Picky!"; - close; - - U_Lunatic: - set #monster,30; - set #monpoints,#monpoints-20; - mes "[Monster Trainer]"; - mes "Upgraded to Lunatic!"; - close; - - L_Up3: +U_Drops: + set #monster,31; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Drops!"; + close; + +U_Picky: + set #monster,32; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Picky!"; + close; + +U_Lunatic: + set #monster,30; + set #monpoints,#monpoints-20; + mes "[Monster Trainer]"; + mes "Upgraded to Lunatic!"; + close; + +L_Up3: mes "Which monster would you like to upgrade to?"; next; menu "ChonChon",U_ChonChon,"Super Picky",U_SPicky,"Willow",U_Willow; - U_ChonChon: - set #monster,40; - set #monpoints,#monpoints-40; - mes "[Monster Trainer]"; - mes "Upgraded to ChonChon!"; - close; - - U_SPicky: - set #monster,41; - set #monpoints,#monpoints-40; - mes "[Monster Trainer]"; - mes "Upgraded to Super Picky!"; - close; - - U_Willow: - set #monster,42; - set #monpoints,#monpoints-40; - mes "[Monster Trainer]"; - mes "Upgraded to Willow!"; - close; - - L_Up4: +U_ChonChon: + set #monster,40; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to ChonChon!"; + close; + +U_SPicky: + set #monster,41; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to Super Picky!"; + close; + +U_Willow: + set #monster,42; + set #monpoints,#monpoints-40; + mes "[Monster Trainer]"; + mes "Upgraded to Willow!"; + close; + +L_Up4: mes "Which monster would you like to upgrade to?"; next; menu "Condor",U_Condor,"Roda Frog",U_Roda; - U_Condor: - set #monster,51; - set #monpoints,#monpoints-80; - mes "[Monster Trainer]"; - mes "Upgraded to Condor!"; - close; - - U_Roda: - set #monster,50; - set #monpoints,#monpoints-80; - mes "[Monster Trainer]"; - mes "Upgraded to Roda Frog!"; - close; - - L_Up5: +U_Condor: + set #monster,51; + set #monpoints,#monpoints-80; + mes "[Monster Trainer]"; + mes "Upgraded to Condor!"; + close; + +U_Roda: + set #monster,50; + set #monpoints,#monpoints-80; + mes "[Monster Trainer]"; + mes "Upgraded to Roda Frog!"; + close; + +L_Up5: set #monster,60; set #monpoints,#monpoints-160; mes "Upgraded to Thief Bug Larva!"; close; - L_Up6: +L_Up6: set #monster,70; set #monpoints,#monpoints-320; mes "Upgraded to Savage Babe!"; close; - L_Up7: +L_Up7: mes "Which monster would you like to upgrade to?"; next; menu "Familiar",U_Familiar,"Hornet",U_Hornet; - U_Hornet: - set #monster,81; - set #monpoints,#monpoints-640; - mes "[Monster Trainer]"; - mes "Upgraded to Hornet!"; - close; +U_Hornet: + set #monster,81; + set #monpoints,#monpoints-640; + mes "[Monster Trainer]"; + mes "Upgraded to Hornet!"; + close; - U_Familiar: - set #monster,80; - set #monpoints,#monpoints-640; - mes "[Monster Trainer]"; - mes "Upgraded to Familiar!"; - close; +U_Familiar: + set #monster,80; + set #monpoints,#monpoints-640; + mes "[Monster Trainer]"; + mes "Upgraded to Familiar!"; + close; - L_Up8: +L_Up8: mes "[Monster Trainer]"; mes "Which monster would you like to upgrade to?"; next; menu "Desert Wolf Puppy",U_Puppy,"Spore",U_Spore,"Rocker",U_Rocker; - U_Spore: - set #monster,91; - set #monpoints,#monpoints-1280; - mes "[Monster Trainer]"; - mes "Upgraded to Spore!"; - close; - - U_Rocker: - set #monster,92; - set #monpoints,#monpoints-1280; - mes "[Monster Trainer]"; - mes "Upgraded to Rocker!"; - close; - - U_Puppy: - set #monster,90; - set #monpoints,#monpoints-1280; - mes "[Monster Trainer]"; - mes "Upgraded to Desert Wolf Puppy!"; - close; - - L_Up9: +U_Spore: + set #monster,91; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Spore!"; + close; + +U_Rocker: + set #monster,92; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Rocker!"; + close; + +U_Puppy: + set #monster,90; + set #monpoints,#monpoints-1280; + mes "[Monster Trainer]"; + mes "Upgraded to Desert Wolf Puppy!"; + close; + +L_Up9: mes "Which monster would you like to upgrade to?"; next; menu "Skeleton",U_Skeleton,"Antonio",U_Antonio,"Plankton",U_Plankton,"Thief Bug Female",U_ThiefFemale; - U_Plankton: - set #monster,101; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Plankton!"; - close; - - U_Antonio: - set #monster,102; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Antonio!"; - close; - - U_ThiefFemale: - set #monster,103; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Thief Bug Female!"; - close; - - U_Skeleton: - set #monster,100; - set #monpoints,#monpoints-2560; - mes "[Monster Trainer]"; - mes "Upgraded to Skeleton!"; - close; +U_Plankton: + set #monster,101; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Plankton!"; + close; + +U_Antonio: + set #monster,102; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Antonio!"; + close; + +U_ThiefFemale: + set #monster,103; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Thief Bug Female!"; + close; + +U_Skeleton: + set #monster,100; + set #monpoints,#monpoints-2560; + mes "[Monster Trainer]"; + mes "Upgraded to Skeleton!"; + close; L_NoZeny: -mes "[Monster Trainer]"; -mes "You don't have enough zeny!"; -close; + mes "[Monster Trainer]"; + mes "You don't have enough zeny!"; + close; L_Exit: -mes "[Monster Trainer]"; -mes "Goodbye."; -close; + mes "[Monster Trainer]"; + mes "Goodbye."; + close; L_Heal: -mes "[Monster Trainer]"; -mes "Your monster needs to heal."; -mes "It will heal faster if you click the nurse faster."; -set #heal,1; -close; + mes "[Monster Trainer]"; + mes "Your monster needs to heal."; + mes "It will heal faster if you click the nurse faster."; + set #heal,1; + close; } // Kill Trigger // @@ -716,9 +716,9 @@ gon_test,56,91,6 script OnSpecialKilled -1,{ } function script duelkill { -if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal; -end; - L_Heal: + if (strcharinfo(0) == $@duelist1$ || strcharinfo(0) == $@duelist2$) goto L_Heal; + end; +L_Heal: announce strcharinfo(0) + " won the Duel",1; set @fighting,0; set #heal,0; @@ -727,38 +727,38 @@ end; } function script illegalkill { -announce "Illegal Kill by " + strcharinfo(0) + " Detected",1; -percentheal -100,-100; -end; + announce "Illegal Kill by " + strcharinfo(0) + " Detected",1; + percentheal -100,-100; + end; } // Healer // gon_test,55,103,6 script Nurse 90,{ -if (@battle == 1 || #heal == 0) goto L_NoHeal; -if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required -set @fighting,0; -set #heal,0; -set @healing,0; -specialeffect2 EF_VALLENTINE2; -announce "Your monster has healed.",19; -end; - - L_Heal: + if (@battle == 1 || #heal == 0) goto L_NoHeal; + if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required + set @fighting,0; + set #heal,0; + set @healing,0; + specialeffect2 EF_VALLENTINE2; + announce "Your monster has healed.",19; + end; + +L_Heal: set @healrate,140 / #monster; //Rate of heal per click set @healing,@healing + @healrate; end; - L_NoHeal: +L_NoHeal: announce "Your monster does not need healing yet.",19; end; } // Warps players // gon_test,57,86,5 script Summon Pad 1::SummonPad 111,2,2,{ -end; + end; OnTouch: -set @marena,1; -warp "gon_test",57,99; + set @marena,1; + warp "gon_test",57,99; } gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 111,2,2 gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 @@ -767,98 +767,98 @@ gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 // Skill Disabler // gon_test,57,99,5 script Skill Disable 111,3,3,{ -atcommand strcharinfo(0) + "@skilloff"; -disablenpc "Skill Disable"; -end; + atcommand strcharinfo(0) + "@skilloff"; + disablenpc "Skill Disable"; + end; } // Duel Arena // gon_test,58,103,5 script Duel Master#01 92,{ -if ($@duelist1$ == "") set @duel,0; -if ($@monster1 == "") set @duel,0; -set @marena,1; -if (#monster == 0) goto L_NoMon; -mes "[Duel Master]"; -if ($@duel == 1) goto L_Waiting; -if ($@duel == 2) goto L_Dueling; - -mes "There are currently no players dueling."; -next; -menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; - -// Player 1 Enters Duel Area // -if (#heal == 1) goto L_NeedHeal; -if ($@duel == 1) goto L_Duel2; -set $@duel,1; -if (#monster > 1 && #monster < 20) set $@monster1,1; -if (#monster > 19 && #monster < 30) set $@monster1,2; -if (#monster > 29 && #monster < 40) set $@monster1,3; -if (#monster > 39 && #monster < 50) set $@monster1,4; -if (#monster > 49 && #monster < 60) set $@monster1,5; -if (#monster > 59 && #monster < 70) set $@monster1,6; -if (#monster > 69 && #monster < 80) set $@monster1,7; -if (#monster > 79 && #monster < 90) set $@monster1,8; -if (#monster > 89 && #monster < 100) set $@monster1,9; -if (#monster > 99 && #monster < 110) set $@monster1,10; -set $@duelist1$,strcharinfo(0); -set @battle,1; -announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1; -atcommand strcharinfo(0) + "@option 64 0 64"; -warp "gon_test",49,5; -close; + if ($@duelist1$ == "") set @duel,0; + if ($@monster1 == "") set @duel,0; + set @marena,1; + if (#monster == 0) goto L_NoMon; + mes "[Duel Master]"; + if ($@duel == 1) goto L_Waiting; + if ($@duel == 2) goto L_Dueling; + + mes "There are currently no players dueling."; + next; + menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; + + // Player 1 Enters Duel Area // + if (#heal == 1) goto L_NeedHeal; + if ($@duel == 1) goto L_Duel2; + set $@duel,1; + if (#monster > 1 && #monster < 20) set $@monster1,1; + if (#monster > 19 && #monster < 30) set $@monster1,2; + if (#monster > 29 && #monster < 40) set $@monster1,3; + if (#monster > 39 && #monster < 50) set $@monster1,4; + if (#monster > 49 && #monster < 60) set $@monster1,5; + if (#monster > 59 && #monster < 70) set $@monster1,6; + if (#monster > 69 && #monster < 80) set $@monster1,7; + if (#monster > 79 && #monster < 90) set $@monster1,8; + if (#monster > 89 && #monster < 100) set $@monster1,9; + if (#monster > 99 && #monster < 110) set $@monster1,10; + set $@duelist1$,strcharinfo(0); + set @battle,1; + announce strcharinfo(0) + " [Monster Level: " + $@monster1 + "] is waiting for a duel",1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; L_Waiting: -mes "^0000FF " + $@duelist1$ + "^000000 [Monster Level: ^FF0000" + $@monster1 + "^000000]"; -mes "Is waiting for an opponent"; -next; -menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; + mes "^0000FF " + $@duelist1$ + "^000000 [Monster Level: ^FF0000" + $@monster1 + "^000000]"; + mes "Is waiting for an opponent"; + next; + menu "Join",-,"Spectate",L_Spec,"Cancel",L_Exit; -// Player 2 Enters Duel Area // -if (#heal == 1) goto L_NeedHeal; + // Player 2 Enters Duel Area // + if (#heal == 1) goto L_NeedHeal; L_Duel2: -if ($@duel == 2) goto L_Spec; -set $@duel,2; -if (#monster > 1 && #monster < 20) set $@monster2,1; -if (#monster > 19 && #monster < 30) set $@monster2,2; -if (#monster > 29 && #monster < 40) set $@monster2,3; -if (#monster > 39 && #monster < 50) set $@monster2,4; -if (#monster > 49 && #monster < 60) set $@monster2,5; -if (#monster > 59 && #monster < 70) set $@monster2,6; -if (#monster > 69 && #monster < 80) set $@monster2,7; -if (#monster > 79 && #monster < 90) set $@monster2,8; -if (#monster > 89 && #monster < 100) set $@monster2,9; -if (#monster > 99 && #monster < 110) set $@monster2,10; -set $@duelist2$,strcharinfo(0); -set @battle,1; -announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1; -atcommand strcharinfo(0) + "@option 64 0 64"; -warp "gon_test",49,5; -close; - - L_Dueling: + if ($@duel == 2) goto L_Spec; + set $@duel,2; + if (#monster > 1 && #monster < 20) set $@monster2,1; + if (#monster > 19 && #monster < 30) set $@monster2,2; + if (#monster > 29 && #monster < 40) set $@monster2,3; + if (#monster > 39 && #monster < 50) set $@monster2,4; + if (#monster > 49 && #monster < 60) set $@monster2,5; + if (#monster > 59 && #monster < 70) set $@monster2,6; + if (#monster > 69 && #monster < 80) set $@monster2,7; + if (#monster > 79 && #monster < 90) set $@monster2,8; + if (#monster > 89 && #monster < 100) set $@monster2,9; + if (#monster > 99 && #monster < 110) set $@monster2,10; + set $@duelist2$,strcharinfo(0); + set @battle,1; + announce strcharinfo(0) + " [Monster Level: " + $@monster2 + "] has joined the duel",1; + atcommand strcharinfo(0) + "@option 64 0 64"; + warp "gon_test",49,5; + close; + +L_Dueling: mes "^0000FF" + $@duelist1$ + "^000000 [Monster Level: ^0000FF" + $@monster1 + "^000000]"; mes " VS."; mes "^FF0000" + $@duelist2$ + "^000000 [Monster Level: ^FF0000" + $@monster2 + "^000000]"; next; menu "Spectate",L_Spec,"Cancel",L_Exit; - L_Spec: +L_Spec: set @battle,0; atcommand strcharinfo(0) + "@option 64 0 64"; warp "gon_test",49,5; close; - L_Exit: +L_Exit: mes "[Duel Master]"; mes "Goodbye."; close; - L_NoMon: +L_NoMon: mes "[Duel Master]"; mes "You haven't got a monster, you can't participate."; close; - L_NeedHeal: +L_NeedHeal: mes "[Duel Master]"; mes "You need to heal before you can join."; close; @@ -866,35 +866,35 @@ close; // Duel Exit // gon_test,42,8,5 script Duel Master#02 92,{ -mes "[Duel Master]"; -mes "Would you like to return?"; -menu "Yes",L_Leave,"No",-; -mes "Alright"; -close; + mes "[Duel Master]"; + mes "Would you like to return?"; + menu "Yes",L_Leave,"No",-; + mes "Alright"; + close; - L_Leave: +L_Leave: if ($@duelist1$ == strcharinfo(0)) goto L_Leave1; if ($@duelist2$ == strcharinfo(0)) goto L_Leave2; - L_Leave3: - atcommand strcharinfo(0) + "@option 0 0 0"; - set @battle,0; - warp "gon_test",57,99; - close; - - L_Leave1: - set $@duelist1$,$@duelist2$; - set $@monster1,$@monster2; - set $@duel,$@duel-1; - announce strcharinfo(0) + " stopped dueling",1; - goto L_Leave3; - - L_Leave2: - set $@duelist2$,""; - set $@monster2,0; - set $@duel,$@duel-1; - announce strcharinfo(0) + " stopped dueling",1; - goto L_Leave3; +L_Leave3: + atcommand strcharinfo(0) + "@option 0 0 0"; + set @battle,0; + warp "gon_test",57,99; + close; + +L_Leave1: + set $@duelist1$,$@duelist2$; + set $@monster1,$@monster2; + set $@duel,$@duel-1; + announce strcharinfo(0) + " stopped dueling",1; + goto L_Leave3; + +L_Leave2: + set $@duelist2$,""; + set $@monster2,0; + set $@duel,$@duel-1; + announce strcharinfo(0) + " stopped dueling",1; + goto L_Leave3; } gon_test,49,5,5 duplicate(SummonPad) Summon Pad 4 111,2,2 diff --git a/npc/custom/penal_servitude.txt b/npc/custom/penal_servitude.txt index 725e32ddc..bfbd39c63 100644 --- a/npc/custom/penal_servitude.txt +++ b/npc/custom/penal_servitude.txt @@ -1,15 +1,15 @@ //===== rAthena Script ======================================= -//= Penal Servitude Script -//===== By =================================================== +//= Penal Servitude +//===== By: ================================================== //= Lupus -//===== Version ============================================== +//===== Current Version: ===================================== //= 1.2 -//===== Compatible With ====================================== -//= rAthena Final (SVN) -//===== Description ========================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= A simple Penal Servitude Script. //= It could cheer up your prisoners a bit. -//===== Comments ============================================= +//===== Additional Comments: ================================= // This script uses CHEQUES of the 2nd KAFRA_BANK.TXT // var PRISON - it counts number of your imprisonments. // 1.1 English translation @@ -80,7 +80,6 @@ L_RELEASE: close; M_Q1: -//�E��E1 mes "[Saddeus]"; mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?"; next; diff --git a/npc/custom/platinum_skills.txt b/npc/custom/platinum_skills.txt index dcaf25162..2a30e00f1 100644 --- a/npc/custom/platinum_skills.txt +++ b/npc/custom/platinum_skills.txt @@ -1,23 +1,24 @@ -//===== rAthena Script ====================================================================== -//= Platinum Skills NPC -//===== By: ================================================================================= -//= Keichii and edited by DarkChild -//===== Current Version: ==================================================================== +//===== rAthena Script ======================================= +//= Platinum Skills +//===== By: ================================================== +//= Keichii, DarkChild +//===== Current Version: ===================================== //= 2.7 -//===== Compatible With: ==================================================================== -//= Any rAthena Version -//===== Description: ======================================================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Single NPC that assigns quests skills for all classes -//===== Additional Comments: ================================================================ -//=2.0 Added advanced classes by ShadowLady. -//=2.1 Added baby clases by Midas -//=2.2 Simplified Job Checks [Silentdragon] -//=2.3 Thehell? Cleaned up script removed the nastiness. Also added rebirth skills. [Spre] -//=2.4 Added Advanced skills. [Spre] -//=2.5 Added dialog for if the user is none of the listed jobs. [Kisuka] -//=2.6 Fixed 2nd advanced classes not being able to get their advanced skills. [Ancyker] -//=2.7 Rewrote to give all correct skills to all proper classes. [Paradox924X] -//=========================================================================================== +//===== Additional Comments: ================================= +//= 2.0 Added advanced classes by ShadowLady. +//= 2.1 Added baby clases by Midas +//= 2.2 Simplified Job Checks [Silentdragon] +//= 2.3 Thehell? Cleaned up script removed the nastiness. Also added rebirth skills. [Spre] +//= 2.4 Added Advanced skills. [Spre] +//= 2.5 Added dialog for if the user is none of the listed jobs. [Kisuka] +//= 2.6 Fixed 2nd advanced classes not being able to get their advanced skills. [Ancyker] +//= 2.7 Rewrote to give all correct skills to all proper classes. [Paradox924X] +//============================================================ + prontera,128,200,6 script Platinum Skill NPC 94,{ mes "[Platinum Skill NPC]"; mes "I can give you the special skills available to your job."; diff --git a/npc/custom/quests/bandit_beard.txt b/npc/custom/quests/bandit_beard.txt index a4e3bab27..0fba60f2f 100644 --- a/npc/custom/quests/bandit_beard.txt +++ b/npc/custom/quests/bandit_beard.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.3 //===== Compatible With: ===================================== -//= rAthena 0.5.2 + +//= rAthena SVN //===== Description: ========================================= //= A harmless quest for a simply item w/o any bonuses "Bandit Beard" //===== Additional Comments: ================================= diff --git a/npc/custom/quests/berzebub.txt b/npc/custom/quests/berzebub.txt index 04d31d05c..6fbb60960 100644 --- a/npc/custom/quests/berzebub.txt +++ b/npc/custom/quests/berzebub.txt @@ -1,16 +1,17 @@ //===== rAthena Script ======================================= -//= Berzebub Card Quest Script +//= Berzebub Card Quest //===== By: ================================================== //= jabs //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= Any rAthena Version; RO Episode XX +//= rAthena SVN //===== Description: ========================================= //= Quest to get the Berzebub Card //===== Additional Comments: ================================= //= 1.1 Fixed ingredients. Was too exploitable [Lupus] //============================================================ + prontera,165,178,8 script Old Woman 103,{ mes "[Old Woman]"; if(BerzQuest == 1) goto L_Already; @@ -18,57 +19,55 @@ prontera,165,178,8 script Old Woman 103,{ next; menu "Keep talking",-, "Leave", M_Leave; - mes "[Old Woman]"; - mes "I have never seen an item like this before. I am told it can be placed inside am accessory that has a slot avaiable in it."; - next; - mes "[Old Woman]"; - mes "If you're interested in this item, tell me and I'll tell you what you need for me to make you one of your own. I can only give one of these to each player, so once you finish this quest once, you may not do it again."; - next; - menu "Tell me more about it",-, "Nah, I don't care about it", M_Leave; - - mes "[Old Woman]"; - mes "I believe the item is called a ^FF0000Berzebub Card^000000. It can make any spell caster cast spells really fast!"; - next; - mes "[Old Woman]"; - mes "I need all of the following items:"; - mes "^0080FF25^000000 Emperiums"; - mes "^0080FF100^000000 Witched Starsands"; - mes "^0080FF200^000000 Needles of Alarm"; - mes "^0080FF10^000000 Worn Out Scrolls"; - mes "^0080FF2^000000 Biblies"; - mes "^0080FF1^000000 Wand of the Occult"; - mes "^0080FF20^000000 Opals"; - next; - menu "I have all that!",-, "I'll get those ASAP", M_Leave; - - mes "[Old Woman]"; - mes "Anyone can say they have the items, but do they really have them? Let's take a look here..."; - next; - mes "[Old Woman]"; - if(countitem(714) < 25 || countitem(1061) < 100 || countitem(1095) < 200 || countitem(618) < 10 || countitem(1551) < 2 || countitem(1614) < 1 || countitem(727) < 20) goto L_noItems; - delitem 714, 25; - delitem 1061, 100; - delitem 1095, 200; - delitem 618, 10; - delitem 1551, 2; - delitem 1614, 1; - delitem 727, 20; - getitem 4145, 1; - set BerzQuest, 1; - mes "Well congratulations! You have all the items. Here is your ^FF0000Berzebub Card^000000, just as I promised."; - emotion e_grat; - close; + mes "[Old Woman]"; + mes "I have never seen an item like this before. I am told it can be placed inside am accessory that has a slot avaiable in it."; + next; + mes "[Old Woman]"; + mes "If you're interested in this item, tell me and I'll tell you what you need for me to make you one of your own. I can only give one of these to each player, so once you finish this quest once, you may not do it again."; + next; + menu "Tell me more about it",-, "Nah, I don't care about it", M_Leave; - M_Leave: - mes "[Old Woman]"; - mes "Such a great item I have right here..."; - close; - - L_noItems: - mes "I knew you were lying! Get out of here and get those items you sorry excuse for a rock star."; - close; + mes "[Old Woman]"; + mes "I believe the item is called a ^FF0000Berzebub Card^000000. It can make any spell caster cast spells really fast!"; + next; + mes "[Old Woman]"; + mes "I need all of the following items:"; + mes "^0080FF25^000000 Emperiums"; + mes "^0080FF100^000000 Witched Starsands"; + mes "^0080FF200^000000 Needles of Alarm"; + mes "^0080FF10^000000 Worn Out Scrolls"; + mes "^0080FF2^000000 Biblies"; + mes "^0080FF1^000000 Wand of the Occult"; + mes "^0080FF20^000000 Opals"; + next; + menu "I have all that!",-, "I'll get those ASAP", M_Leave; - L_Already: - mes "Hey I remember you! I already told you that you may only complete this quest once."; - close; + mes "[Old Woman]"; + mes "Anyone can say they have the items, but do they really have them? Let's take a look here..."; + next; + mes "[Old Woman]"; + if(countitem(714) < 25 || countitem(1061) < 100 || countitem(1095) < 200 || countitem(618) < 10 || countitem(1551) < 2 || countitem(1614) < 1 || countitem(727) < 20) goto L_noItems; + delitem 714, 25; + delitem 1061, 100; + delitem 1095, 200; + delitem 618, 10; + delitem 1551, 2; + delitem 1614, 1; + delitem 727, 20; + getitem 4145, 1; + set BerzQuest, 1; + mes "Well congratulations! You have all the items. Here is your ^FF0000Berzebub Card^000000, just as I promised."; + emotion e_grat; + close; + +M_Leave: + mes "[Old Woman]"; + mes "Such a great item I have right here..."; + close; +L_noItems: + mes "I knew you were lying! Get out of here and get those items you sorry excuse for a rock star."; + close; +L_Already: + mes "Hey I remember you! I already told you that you may only complete this quest once."; + close; } diff --git a/npc/custom/quests/bongunsword.txt b/npc/custom/quests/bongunsword.txt index a7bc05dc5..2ca68fd90 100644 --- a/npc/custom/quests/bongunsword.txt +++ b/npc/custom/quests/bongunsword.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= Quest itms:Sword o'Chinese Exorcist,No Recipient,Her Heart //===== Additional Comments: ================================= @@ -14,7 +14,6 @@ //= 1.2 Added another missing next; [Evera] //============================================================ - comodo,135,227,5 script Sherri 93,{ mes "[Sherri]"; mes " "; @@ -107,14 +106,12 @@ ExCreate: mes " "; mes "Here is lover's lost letter as promised! Again - Thank you!"; close; - L_NoItem: mes "[Evan]"; mes "Waahhhh, stop playing with my feelings!"; mes " "; mes "Go away!"; close; - ExEnd: mes "[Evan]"; mes "*sighs*"; @@ -148,7 +145,6 @@ L_NoItem: mes "[Old Smith]"; mes "Hmm, you seem to be missing something... probably that 'Oridecon'."; close; - L_NoItemS: ExEnd: mes "[Old Smith]"; diff --git a/npc/custom/quests/bookofthedevil.txt b/npc/custom/quests/bookofthedevil.txt index 165c1a3db..5933e71d0 100644 --- a/npc/custom/quests/bookofthedevil.txt +++ b/npc/custom/quests/bookofthedevil.txt @@ -1,22 +1,19 @@ //===== rAthena Script ======================================= -//= Baphomet Jr. taming item quest. +//= Quest for Book of Devil (Baphomet Jr. taming item) //===== By: ================================================== //= rAthena Dev Team //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= -//= Book of Devil (MISC_QUEST | 256) +//= Book of Devil (MISC_QUEST | 256) //===== Additional Comments: ================================= //= 1.0 ???? //= 1.1 Optimized Book of Devil quest. used bit-wise var. [Lupus] //= 1.2 Fixed name collision with 'Little Boy' in cities/lutie.txt [Ai4rei] -//============================================================ +//============================================================ -//============================================================= -//Quest for Book of Devil -//============================================================= niflheim,184,199,5 script Little Girl#02 793,{ mes "[Sairin]"; if(MISC_QUEST & 256){ @@ -85,7 +82,7 @@ L_PART2: mes "I am a little slow, and its very important that she knows."; next; menu "Yes",L_DONE, "No",-; - close; + close; } mes "[Marius]"; mes "Sairin... where are you?"; diff --git a/npc/custom/quests/dead_branch.txt b/npc/custom/quests/dead_branch.txt index 891b061d2..505da6c0a 100644 --- a/npc/custom/quests/dead_branch.txt +++ b/npc/custom/quests/dead_branch.txt @@ -5,13 +5,12 @@ //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= rAthena 0.5.2 + +//= rAthena SVN //===== Description: ========================================= // Simple item trade-in quest, a person can get a Dead Branch // by simply providing the items: Log x3 (7201), Wooden Heart x1 (7189), // Trunk x5 (1019), and Wooden Gnarl x1 (7222). //===== Additional Comments: ================================= -//= Fully working. //= 1.1 Optimized, added Bloody Branch with 0.01% chance [Lupus] //============================================================ diff --git a/npc/custom/quests/elvenear.txt b/npc/custom/quests/elvenear.txt index 188e9cf3d..c547bf524 100644 --- a/npc/custom/quests/elvenear.txt +++ b/npc/custom/quests/elvenear.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= //= Daily Job Quest For Elven Ears //===== By: ================================================== -//= Someone +//= someone //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= Elven Ears (require 75+ Base Level) //===== Additional Comments: ================================= diff --git a/npc/custom/quests/event_6_new_hats.txt b/npc/custom/quests/event_6_new_hats.txt index 17503c470..56edaed19 100644 --- a/npc/custom/quests/event_6_new_hats.txt +++ b/npc/custom/quests/event_6_new_hats.txt @@ -5,10 +5,10 @@ //===== Current Version: ===================================== //= 1.4b //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= 4 brothers give you quests to get 6 new hats (missing -//= from official quests) +//= from official quests) //= Use this custom quest instead of event_32_new_hats.txt //= -Bongun Hat //= -Poring Hat, Sphinx Hat @@ -24,7 +24,6 @@ //= 1.4 Fixed exploits. 1.4a fixed wrong item ID [Lupus] //============================================================ - prt_in,130,66,5 script Zac 704,{ mes "[Zac]"; mes "I am the oldest and strongest of the 4 brothers that makes all the newer hats. You will need to bring me the correct items for each hat, so I can make them."; @@ -33,7 +32,7 @@ prt_in,130,66,5 script Zac 704,{ mes "I provide 1 hat and my brothers provides the other 5."; next; menu "Join",L1,"Information",L2,"Cancel",L3; -L1: +L1: mes "[Zac]"; mes "What hat do you want me to make?"; next; @@ -70,7 +69,7 @@ L_ITEM_3c: mes "[Zac]"; mes "Oh, dear. You need 1 Munak Hat..."; close; -L2: +L2: mes "[Zac]"; mes "Which hat materials do you wish to know?"; next; @@ -93,7 +92,7 @@ prt_in,162,131,5 script Blac 732,{ mes "I provide 1 hat and my brothers provides the other 5."; next; menu "Join",L1,"Information",L2,"Cancel",L3; -L1: +L1: mes "[Blac]"; mes "What hat do you want me to make?"; next; @@ -124,7 +123,7 @@ L_ITEM_2: mes "[Blac]"; mes "Oh, dear. You need 10 Steels..."; close; -L2: +L2: mes "[Blac]"; mes "Which hat materials do you wish to know?"; next; @@ -147,7 +146,7 @@ prt_in,53,56,5 script Jac 107,{ mes "I provide 2 hats and my brothers provides the other 4."; next; menu "Join",L1,"Information",L2,"Cancel",L3; -L1: +L1: mes "[Jac]"; mes "What hat do you want me to make?"; next; @@ -203,8 +202,8 @@ L_ITEM_1g: L_ITEM_2g: mes "[Jac]"; mes "Oh, dear. You need 200 Bear Footskins..."; - close; -L2: + close; +L2: mes "[Jac]"; mes "Which hat materials do you wish to know?"; next; @@ -216,7 +215,7 @@ L2_19: L2_24: mes "[Jac]"; mes "You need 10 Steels and 200 Bear Footskins for Panda Hat."; - close; + close; L3: mes "[Jac]"; mes "Stop by some other time with the right materials, so I can make the hats for you."; @@ -231,7 +230,7 @@ prt_in,45,113,5 script Pac 705,{ mes "I provide 2 hats and my brothers provides the other 4."; next; menu "Join",L1,"Information",L2,"Cancel",L3; -L1: +L1: mes "[Pac]"; mes "What hat do you want me to make?"; next; @@ -306,7 +305,7 @@ L_ITEM_5d: mes "[Pac]"; mes "Oh, dear. You need 2 Gold Bar's..."; close; -L2: +L2: mes "[Pac]"; mes "Which hat materials do you wish to know?"; next; diff --git a/npc/custom/quests/fashion.txt b/npc/custom/quests/fashion.txt index 82920c804..5027bf8e8 100644 --- a/npc/custom/quests/fashion.txt +++ b/npc/custom/quests/fashion.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= //= Quest for Fashion Glasses (Daily Job Quest) //===== By: ================================================== -//= 1.1 None +//= //===== Current Version: ===================================== -//= Any +//= 1.1 //===== Compatible With: ===================================== -//= rAthena +//= rAthena SVN //===== Description: ========================================= //= Quest for Fashion Glasses //===== Additional Comments: ================================= diff --git a/npc/custom/quests/ironcane.txt b/npc/custom/quests/ironcane.txt index e0520765f..9ae299fab 100644 --- a/npc/custom/quests/ironcane.txt +++ b/npc/custom/quests/ironcane.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= -//= Quest For Iron Cain +//= Iron Cain Quest //===== By: ================================================== //= eA Dev Team //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= Iron Cain (lower part of a full helmet) //===== Additional Comments: ================================= diff --git a/npc/custom/quests/kaho_balmung.txt b/npc/custom/quests/kaho_balmung.txt index edeabc847..11ef0442a 100644 --- a/npc/custom/quests/kaho_balmung.txt +++ b/npc/custom/quests/kaho_balmung.txt @@ -1,6 +1,16 @@ -// $Id: kaho_balmung.txt,v 1.1.1.1 2004/09/10 17:26:46 MagicalTux Exp $ -//-------------------- 'Balmung & Lord Kaho's Horns' Quest -------------------- -// Warning! Don't use this quest 8) +//===== rAthena Script ======================================= +//= Balmung & Lord Kaho's Horns Quest +//===== By: ================================================== +//= MagicalTux +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= +//===== Additional Comments: ================================= +//= Warning! Don't use this quest 8) +//============================================================ prontera,158,356,4 script Royal Messenger 105,{ mes "[Royal Messenger]"; @@ -73,4 +83,4 @@ NoItems: mes "Sorry you don't have all the items or zeny I need."; mes "Come back when you have them all"; close; -} \ No newline at end of file +} diff --git a/npc/custom/quests/kahohorn.txt b/npc/custom/quests/kahohorn.txt index 4cd7b503c..7b3d7b50b 100644 --- a/npc/custom/quests/kahohorn.txt +++ b/npc/custom/quests/kahohorn.txt @@ -1,4 +1,16 @@ -//This quest is custom. Don't use it. +//===== rAthena Script ======================================= +//= Lord Kaho's Horns Quest +//===== By: ================================================== +//= +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= +//===== Additional Comments: ================================= +//= This quest is custom. Don't use it. +//============================================================ geffen,115,107,5 script Lord Kaho's Servant 61,{ mes "[Lord Kaho's Servant]"; @@ -39,46 +51,46 @@ geffen,115,107,5 script Lord Kaho's Servant 61,{ next; menu "Sure am!",-,"These requirements are unfathomable!",LUnfathomable; - mes "[Lord Kaho's Servant]"; - if(countitem(754) < 1 || countitem(753) < 1 || countitem(752) < 1 || countitem(751) < 1 || countitem(750) < 1 - || countitem(743) < 1 || countitem(742) < 1 || countitem(741) < 1 || countitem(2613) < 1 - || countitem(5053) < 1 || countitem(7020) < 1 || countitem(7036) < 1 || countitem(2268) < 1 - || countitem(734) < 1 || countitem(923) < 1 || countitem(968) < 1 || countitem(7005) < 1 - || countitem(714) < 3 || Zeny < 5000000) goto LNotEnough; - delitem 754,1; - delitem 753,1; - delitem 752,1; - delitem 751,1; - delitem 750,1; - delitem 743,1; - delitem 742,1; - delitem 741,1; - delitem 2613,1; - delitem 5053,1; - delitem 7020,1; - delitem 7036,1; - delitem 2268,1; - delitem 734,1; - delitem 923,1; - delitem 968,1; - delitem 7005,1; - delitem 714,3; - set Zeny,Zeny-5000000; - mes "Wow! You are brave indeed!"; - getitem 5013,1; - mes ". . . . ."; - mes "Enjoy being God of Rune Midgard!"; - close; + mes "[Lord Kaho's Servant]"; + if(countitem(754) < 1 || countitem(753) < 1 || countitem(752) < 1 || countitem(751) < 1 || countitem(750) < 1 + || countitem(743) < 1 || countitem(742) < 1 || countitem(741) < 1 || countitem(2613) < 1 + || countitem(5053) < 1 || countitem(7020) < 1 || countitem(7036) < 1 || countitem(2268) < 1 + || countitem(734) < 1 || countitem(923) < 1 || countitem(968) < 1 || countitem(7005) < 1 + || countitem(714) < 3 || Zeny < 5000000) goto LNotEnough; + delitem 754,1; + delitem 753,1; + delitem 752,1; + delitem 751,1; + delitem 750,1; + delitem 743,1; + delitem 742,1; + delitem 741,1; + delitem 2613,1; + delitem 5053,1; + delitem 7020,1; + delitem 7036,1; + delitem 2268,1; + delitem 734,1; + delitem 923,1; + delitem 968,1; + delitem 7005,1; + delitem 714,3; + set Zeny,Zeny-5000000; + mes "Wow! You are brave indeed!"; + getitem 5013,1; + mes ". . . . ."; + mes "Enjoy being God of Rune Midgard!"; + close; - LNotEnough: - mes ". . . . ."; - mes ". . .I'm sorry .. You don't have enough money and items .."; - mes "I can't afford to make this if you don't bring all materials needed. Please understand this is to benefit heroes such as yourself!"; - close; +LNotEnough: + mes ". . . . ."; + mes ". . .I'm sorry .. You don't have enough money and items .."; + mes "I can't afford to make this if you don't bring all materials needed. Please understand this is to benefit heroes such as yourself!"; + close; - LUnfathomable: - mes ". . . . ."; - mes "What I had to go through was more unfathomable.."; - mes "If you succeed in getting these items, you will have incredible strength!"; - close; -} \ No newline at end of file +LUnfathomable: + mes ". . . . ."; + mes "What I had to go through was more unfathomable.."; + mes "If you succeed in getting these items, you will have incredible strength!"; + close; +} diff --git a/npc/custom/quests/kiel_quest.txt b/npc/custom/quests/kiel_quest.txt index a672fd45b..d9a496a84 100644 --- a/npc/custom/quests/kiel_quest.txt +++ b/npc/custom/quests/kiel_quest.txt @@ -5,9 +5,9 @@ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= -//= I't custom 8) But you have to pay every time u enter +//= I't custom 8) But you have to pay every time you enter //===== Additional Comments: ================================= //= //============================================================ diff --git a/npc/custom/quests/lvl99_quest.txt b/npc/custom/quests/lvl99_quest.txt index 214580971..7cee1a481 100644 --- a/npc/custom/quests/lvl99_quest.txt +++ b/npc/custom/quests/lvl99_quest.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= Any rAthena Version +//= rAthena SVN //===== Description: ========================================= //= It makes players stay longer at 99th level and get a //= Jewel Case as a reward @@ -13,7 +13,6 @@ //= //============================================================ - lighthalzen,108,229,2 script La Fenn 766,{ mes "[La Fenn]"; if(BaseLevel<99) { diff --git a/npc/custom/quests/magicalhatquest.txt b/npc/custom/quests/magicalhatquest.txt index 6191cf903..145ea0f27 100644 --- a/npc/custom/quests/magicalhatquest.txt +++ b/npc/custom/quests/magicalhatquest.txt @@ -5,12 +5,12 @@ //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= rAthena +//= rAthena SVN //===== Description: ========================================= //= Wizard Hat quest. Harmless, doesn't screw game balance. //===== Additional Comments: ================================= //= 1.1 Reversed ingreadients and the quest result due to -//= treasue boxes drops fix [Lupus] +//= treasue boxes drops fix [Lupus] //============================================================ geffen,126,107,5 script Wizard Hat Dude 51,{ diff --git a/npc/custom/quests/may_hats.txt b/npc/custom/quests/may_hats.txt index dc28a185f..10319ae6a 100644 --- a/npc/custom/quests/may_hats.txt +++ b/npc/custom/quests/may_hats.txt @@ -1,12 +1,12 @@ //===== rAthena Script ======================================= //= Quests: Bird Nest, Lion Mask, Skeleton Manteau, -//= Fashion Hip Sack & Sales Banner +//= Fashion Hip Sack & Sales Banner //===== By: ================================================== //= Lupus //===== Current Version: ===================================== //= 1.01 //===== Compatible With: ===================================== -//= rAthena 1.0 +//= rAthena SVN //===== Description: ========================================= //= Custom quest for some RO mobile game bonus items //===== Additional Comments: ================================= @@ -15,166 +15,166 @@ //============================================================ gonryun,187,140,4 script Yakima 850,{ - mes "[Yakima]"; - mes callfunc("F_Hi"); - mes "I can make some items for you."; - mes "They are quite rare novadays..."; - specialeffect 417; - next; - menu "Bird Nest",-,"Lion Mask",M_2,"Skeleton Manteau",M_3,"Fashion Hip Sack",M_4,"Sales Banner",M_5,"Leave",M_EXIT; + mes "[Yakima]"; + mes callfunc("F_Hi"); + mes "I can make some items for you."; + mes "They are quite rare novadays..."; + specialeffect 417; + next; + menu "Bird Nest",-,"Lion Mask",M_2,"Skeleton Manteau",M_3,"Fashion Hip Sack",M_4,"Sales Banner",M_5,"Leave",M_EXIT; - mes "[Yakima]"; - mes "Oh.. it's an excellent item for any beast hunter."; - emotion e_rock; - next; - mes "[Yakima]"; - mes "For the hat I'll need:"; - mes "1 Sombrero,"; - mes "920 Feathers of Birds and"; - mes "310 Bills of Birds."; - next; - mes "[Yakima]"; - mes "Do you have all the items?"; - next; - menu "Yeah.",-,"Nay.",M_EXIT; - - if(countitem(5067) < 1 || countitem(916) < 920 || countitem(925) < 310) GOTO L_NOITEM;//Items: Sombrero, Feather_of_Birds, Bill_of_Birds, - delitem 5067,1;//Items: Sombrero, - delitem 916,920;//Items: Feather_of_Birds, - delitem 925,310;//Items: Bill_of_Birds, - getitem 5129,1;//Items: Bird_Nest, - mes "[Yakima]"; - mes "Thank you very very much!"; - mes callfunc("F_Bye"); - close; + mes "[Yakima]"; + mes "Oh.. it's an excellent item for any beast hunter."; + emotion e_rock; + next; + mes "[Yakima]"; + mes "For the hat I'll need:"; + mes "1 Sombrero,"; + mes "920 Feathers of Birds and"; + mes "310 Bills of Birds."; + next; + mes "[Yakima]"; + mes "Do you have all the items?"; + next; + menu "Yeah.",-,"Nay.",M_EXIT; + + if(countitem(5067) < 1 || countitem(916) < 920 || countitem(925) < 310) GOTO L_NOITEM;//Items: Sombrero, Feather_of_Birds, Bill_of_Birds, + delitem 5067,1;//Items: Sombrero, + delitem 916,920;//Items: Feather_of_Birds, + delitem 925,310;//Items: Bill_of_Birds, + getitem 5129,1;//Items: Bird_Nest, + mes "[Yakima]"; + mes "Thank you very very much!"; + mes callfunc("F_Bye"); + close; M_2: - mes "[Yakima]"; - mes "Bingo! Many people are afraid of lions... to the muteness..."; - emotion e_slur; - next; - mes "[Yakima]"; - mes "For the hat I'll need:"; - mes "1 Tiger Mask,"; - mes "10 Tiger's Footskins,"; - mes "30 Tiger Skins and"; - mes "300 Tiger Panties."; - next; - mes "[Yakima]"; - mes "Do you have all the items?"; - next; - menu "Yeah.",-,"Nay.",M_EXIT; - - if(countitem(5098) < 1 || countitem(1030) < 10 || countitem(1029) < 30 || countitem(7267) < 300) GOTO L_NOITEM;//Items: Tiger_Mask, Tiger_Skin, Tiger's_Footskin, Tiger_Panty, - delitem 5098,1;//Items: Tiger_Mask, - delitem 1030,10;//Items: Tiger's_Footskin, - delitem 1029,30;//Items: Tiger_Skin, - delitem 7267,300;//Items: Tiger_Panty, - getitem 5130,1;//Items: Lion_Mask, - mes "[Yakima]"; - mes "Thank you very very much!"; - mes callfunc("F_Bye"); - close; + mes "[Yakima]"; + mes "Bingo! Many people are afraid of lions... to the muteness..."; + emotion e_slur; + next; + mes "[Yakima]"; + mes "For the hat I'll need:"; + mes "1 Tiger Mask,"; + mes "10 Tiger's Footskins,"; + mes "30 Tiger Skins and"; + mes "300 Tiger Panties."; + next; + mes "[Yakima]"; + mes "Do you have all the items?"; + next; + menu "Yeah.",-,"Nay.",M_EXIT; + + if(countitem(5098) < 1 || countitem(1030) < 10 || countitem(1029) < 30 || countitem(7267) < 300) GOTO L_NOITEM;//Items: Tiger_Mask, Tiger_Skin, Tiger's_Footskin, Tiger_Panty, + delitem 5098,1;//Items: Tiger_Mask, + delitem 1030,10;//Items: Tiger's_Footskin, + delitem 1029,30;//Items: Tiger_Skin, + delitem 7267,300;//Items: Tiger_Panty, + getitem 5130,1;//Items: Lion_Mask, + mes "[Yakima]"; + mes "Thank you very very much!"; + mes callfunc("F_Bye"); + close; M_3: - mes "[Yakima]"; - mes "I wish I sold this filthy manteau faster..."; - mes "Guess it isn't so plain as it looks... Hmm."; - emotion e_wah; - next; - mes "[Yakima]"; - mes "I'm giving it almost for free:"; - mes "10 Old Manteaus,"; - mes "3 Skull Rings,"; - mes "2 Manteau[1] and"; - mes "1 Ragamuffin Manteau."; - next; - mes "[Yakima]"; - mes "Do you have all the items?"; - next; - menu "Yeah.",-,"Nay.",M_EXIT; - - if(countitem(2508) < 1 || countitem(2506) < 2 || countitem(2609) < 3 || countitem(7207) < 10) GOTO L_NOITEM;//Items: Ragamuffin_Manteau, Manteau_, Skull_Ring, Old_Manteau, - delitem 2508,1;//Items: Ragamuffin_Manteau, - delitem 2506,2;//Items: Manteau_, - delitem 2609,3;//Items: Skull_Ring, - delitem 7207,10;//Items: Old_Manteau, - getitem 2511,1;//Items: Skeleton_Manteau, - mes "[Yakima]"; - mes "Thank you very very much!"; - mes callfunc("F_Bye"); - close; + mes "[Yakima]"; + mes "I wish I sold this filthy manteau faster..."; + mes "Guess it isn't so plain as it looks... Hmm."; + emotion e_wah; + next; + mes "[Yakima]"; + mes "I'm giving it almost for free:"; + mes "10 Old Manteaus,"; + mes "3 Skull Rings,"; + mes "2 Manteau[1] and"; + mes "1 Ragamuffin Manteau."; + next; + mes "[Yakima]"; + mes "Do you have all the items?"; + next; + menu "Yeah.",-,"Nay.",M_EXIT; + + if(countitem(2508) < 1 || countitem(2506) < 2 || countitem(2609) < 3 || countitem(7207) < 10) GOTO L_NOITEM;//Items: Ragamuffin_Manteau, Manteau_, Skull_Ring, Old_Manteau, + delitem 2508,1;//Items: Ragamuffin_Manteau, + delitem 2506,2;//Items: Manteau_, + delitem 2609,3;//Items: Skull_Ring, + delitem 7207,10;//Items: Old_Manteau, + getitem 2511,1;//Items: Skeleton_Manteau, + mes "[Yakima]"; + mes "Thank you very very much!"; + mes callfunc("F_Bye"); + close; M_4: - mes "[Yakima]"; - mes "It's a fresh style! Ancessory and a bag all in one! You'd get +2 STR... It's different from that sabby nest!"; - mes "It fits to Merchant classonly."; - emotion e_heh; - next; - mes "[Yakima]"; - mes "Now my stock is full of those bags... So I'll make it from 3 flower things and a rough piece of clothes:"; - mes "3 Romantic Flowers,"; - mes "3 Fancy Flowers,"; - mes "2 Flower Rings and"; - mes "3 Pirate Bandanas."; - next; - mes "[Yakima]"; - mes "Do you have all the items?"; - next; - menu "Yeah.",-,"Nay.",M_EXIT; - - if(countitem(2269) < 3 || countitem(2207) < 3 || countitem(2612) < 2 || countitem(2287)<3 ) GOTO L_NOITEM;//Items: Romantic_Flower, Fancy_Flower, Flower_Ring, - delitem 2269,3;//Items: Romantic_Flower, - delitem 2207,3;//Items: Fancy_Flower, - delitem 2612,2;//Items: Flower_Ring, - delitem 2287,3;//Items: Pirate_Bandana - getitem 2641,1;//Items: Fashion_Hip_Sack, - mes "[Yakima]"; - mes "Thank you very very much!"; - mes callfunc("F_Bye"); - close; + mes "[Yakima]"; + mes "It's a fresh style! Ancessory and a bag all in one! You'd get +2 STR... It's different from that sabby nest!"; + mes "It fits to Merchant classonly."; + emotion e_heh; + next; + mes "[Yakima]"; + mes "Now my stock is full of those bags... So I'll make it from 3 flower things and a rough piece of clothes:"; + mes "3 Romantic Flowers,"; + mes "3 Fancy Flowers,"; + mes "2 Flower Rings and"; + mes "3 Pirate Bandanas."; + next; + mes "[Yakima]"; + mes "Do you have all the items?"; + next; + menu "Yeah.",-,"Nay.",M_EXIT; + + if(countitem(2269) < 3 || countitem(2207) < 3 || countitem(2612) < 2 || countitem(2287)<3 ) GOTO L_NOITEM;//Items: Romantic_Flower, Fancy_Flower, Flower_Ring, + delitem 2269,3;//Items: Romantic_Flower, + delitem 2207,3;//Items: Fancy_Flower, + delitem 2612,2;//Items: Flower_Ring, + delitem 2287,3;//Items: Pirate_Bandana + getitem 2641,1;//Items: Fashion_Hip_Sack, + mes "[Yakima]"; + mes "Thank you very very much!"; + mes callfunc("F_Bye"); + close; M_5: - mes "[Yakima]"; - mes "Well, well, well... this sign fits any class from a certain level!"; - mes "Your foes'd be dazzled!"; - emotion e_no1; - next; - mes "[Yakima]"; - mes "Well... we construct it from some common items:"; - mes "1 Scarlet Dyestuffs,"; - mes "1 Orange Dyestuffs,"; - mes "2 Stop Posts,"; - mes "3 Clown Noses,"; - mes "180 Fig Leaves and"; - mes "20 Solid Peaches."; - next; - mes "[Yakima]"; - mes "Do you have all the items?"; - next; - menu "Yeah.",-,"Nay.",M_EXIT; - - if(countitem(975) < 1 || countitem(980) < 1 || countitem(2272) < 2 || countitem(2262) < 3 || countitem(7298) < 180 || countitem(7164) < 20) GOTO L_NOITEM;//Items: Scarlet_Dyestuff, Orange_Dyestuff, Stop_Post, Clown_Nose, Fig_Leaf, Solid_Peach, - delitem 975,1;//Items: Scarlet_Dyestuff, - delitem 980,1;//Items: Orange_Dyestuff, - delitem 2272,2;//Items: Stop_Post, - delitem 2262,3;//Items: Clown_Nose, - delitem 7298,180;//Items: Fig_Leaf, - delitem 7164,20;//Items: Solid_Peach, - getitem 5100,1;//Items: Sales_Banner, - mes "[Yakima]"; - mes "Thank you very very much!"; - mes callfunc("F_Bye"); - close; + mes "[Yakima]"; + mes "Well, well, well... this sign fits any class from a certain level!"; + mes "Your foes'd be dazzled!"; + emotion e_no1; + next; + mes "[Yakima]"; + mes "Well... we construct it from some common items:"; + mes "1 Scarlet Dyestuffs,"; + mes "1 Orange Dyestuffs,"; + mes "2 Stop Posts,"; + mes "3 Clown Noses,"; + mes "180 Fig Leaves and"; + mes "20 Solid Peaches."; + next; + mes "[Yakima]"; + mes "Do you have all the items?"; + next; + menu "Yeah.",-,"Nay.",M_EXIT; + + if(countitem(975) < 1 || countitem(980) < 1 || countitem(2272) < 2 || countitem(2262) < 3 || countitem(7298) < 180 || countitem(7164) < 20) GOTO L_NOITEM;//Items: Scarlet_Dyestuff, Orange_Dyestuff, Stop_Post, Clown_Nose, Fig_Leaf, Solid_Peach, + delitem 975,1;//Items: Scarlet_Dyestuff, + delitem 980,1;//Items: Orange_Dyestuff, + delitem 2272,2;//Items: Stop_Post, + delitem 2262,3;//Items: Clown_Nose, + delitem 7298,180;//Items: Fig_Leaf, + delitem 7164,20;//Items: Solid_Peach, + getitem 5100,1;//Items: Sales_Banner, + mes "[Yakima]"; + mes "Thank you very very much!"; + mes callfunc("F_Bye"); + close; L_NOITEM: - mes "[Yakima]"; - mes "You are lack of items. Please, get all the items."; - emotion e_sry; - close; + mes "[Yakima]"; + mes "You are lack of items. Please, get all the items."; + emotion e_sry; + close; M_EXIT: - mes "[Yakima]"; - mes callfunc("F_Bye"); - close; + mes "[Yakima]"; + mes callfunc("F_Bye"); + close; } diff --git a/npc/custom/quests/sphinx_mask.txt b/npc/custom/quests/sphinx_mask.txt index 059e69408..8c1a42072 100644 --- a/npc/custom/quests/sphinx_mask.txt +++ b/npc/custom/quests/sphinx_mask.txt @@ -1,19 +1,17 @@ //===== rAthena Script ======================================= //= Sphinx Mask Quest (custom) //===== By: ================================================== -//= sabernet09 & rAthena Team +//= sabernet09 //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= rAthena 7.15 + +//= rAthena SVN //===== Description: ========================================= //= this quest is related to Umbalian Chief //= 1.1 Removed it from official Umbala quests [Lupus] //= 1.2 Added a missing variable (sphmask_q) [erKURITA] //============================================================ - -//=========================================================================== morocc,140,156,5 script Turban Thief 58,{ if(event_umbala < 2) goto AWAY; if(sphmask_q) goto NoBus; @@ -25,56 +23,56 @@ morocc,140,156,5 script Turban Thief 58,{ next; menu "Pay 1,000,000z",-,"No deal",NoGo; - if(Zeny < 1000000) goto NotEnough; - set Zeny,Zeny-1000000; - mes "[Turban Thief]"; - mes "O ho ho, its a deal then!"; - getitem 7114,1;//Items: Sphinx Mask, - set sphmask_q,1; - close; + if(Zeny < 1000000) goto NotEnough; + set Zeny,Zeny-1000000; + mes "[Turban Thief]"; + mes "O ho ho, its a deal then!"; + getitem 7114,1;//Items: Sphinx Mask, + set sphmask_q,1; + close; - NoGo: - mes "[Turban Thief]"; - mes "Ahh a business man are you no? Fine, how about..."; - next; - menu "Pay 750,000",-,"Nope lower",NoGoB; +NoGo: + mes "[Turban Thief]"; + mes "Ahh a business man are you no? Fine, how about..."; + next; + menu "Pay 750,000",-,"Nope lower",NoGoB; - if(Zeny < 750000) goto NotEnough; - set Zeny,Zeny-750000; - mes "[Turban Thief]"; - mes "It is a done deal, no refunds!"; - getitem 7114,1;//Items: Sphinx Mask, - set sphmask_q,1; - close; - NoGoB: - mes "[Turban Thief]"; - mes "Hmmm... you drive a hard bargain, ok... my final offer..."; - next; - menu "Pay 500,000",-,"It can go lower than that.",NoGoC; + if(Zeny < 750000) goto NotEnough; + set Zeny,Zeny-750000; + mes "[Turban Thief]"; + mes "It is a done deal, no refunds!"; + getitem 7114,1;//Items: Sphinx Mask, + set sphmask_q,1; + close; +NoGoB: + mes "[Turban Thief]"; + mes "Hmmm... you drive a hard bargain, ok... my final offer..."; + next; + menu "Pay 500,000",-,"It can go lower than that.",NoGoC; - if(Zeny < 500000) goto NotEnough; - set Zeny,Zeny-500000; - mes "[Turban Thief]"; - mes "Alright, here you go then..."; - getitem 7114,1;//Items: Sphinx Mask, - set sphmask_q,1; - close; - NoGoC: - next; - mes "[Turban Thief]"; - mes "Ack! Forgez it! I can do bettaz en elsez where!"; - set sphmask_q,1; - close; - NoBus: - mes "[Turban Thief]"; - mes "You have no more business with me, go away!"; - close; - AWAY: - mes "[Turban Thief]"; - mes "What do you wan te withz me? Be gone!"; - close; - NotEnough: - mes "[Turban Thief]"; - mes "Are youz playin wit me? You don't have ze money!"; - close; + if(Zeny < 500000) goto NotEnough; + set Zeny,Zeny-500000; + mes "[Turban Thief]"; + mes "Alright, here you go then..."; + getitem 7114,1;//Items: Sphinx Mask, + set sphmask_q,1; + close; +NoGoC: + next; + mes "[Turban Thief]"; + mes "Ack! Forgez it! I can do bettaz en elsez where!"; + set sphmask_q,1; + close; +NoBus: + mes "[Turban Thief]"; + mes "You have no more business with me, go away!"; + close; +AWAY: + mes "[Turban Thief]"; + mes "What do you wan te withz me? Be gone!"; + close; +NotEnough: + mes "[Turban Thief]"; + mes "Are youz playin wit me? You don't have ze money!"; + close; } diff --git a/npc/custom/quests/sunglasses.txt b/npc/custom/quests/sunglasses.txt index 5b0f5cf49..5f554ea23 100644 --- a/npc/custom/quests/sunglasses.txt +++ b/npc/custom/quests/sunglasses.txt @@ -1,23 +1,23 @@ //===== rAthena Script ======================================= //= Quest For Slotted Sunglasses //===== By: ================================================== -//= Aegis - amichan +//= amichan //===== Current Version: ===================================== //= 1.7 //===== Compatible With: ===================================== -//= Any rAthena Version; +//= rAthena SVN //===== Description: ========================================= //= Quest to get Slotted Sunglasses //===== Additional Comments: ================================= +//= quest will reset it self after 1 pair of Slotted Sunglasses is made. +//= //= 1.0 by Aegis 1.1 by aichan 1.2 by x[tsk] 1.3 by Darkchild //= 1.5 Fixed Exploit [Lupus] //= 1.6 Fixed Exploit [KarLaeda] //= 1.7 Relocated 'Maseph' to moc_fild07. [Kisuka] //============================================================ -// quest will reset it self after 1 pair of Slotted Sunglasses is made. // 1st part of the quest - alberta,88,193,5 script Sunglasses Trader 73,{ if(SG_QUEST1 == 1) goto L_SG_Q1_Done; mes "[Sunglasses Trader]"; @@ -45,7 +45,6 @@ L_SG_1: mes "and ^000088100000z^000000."; next; menu "Alright, here.",L_SG_1_Check,"That's too much!",-; - mes "[Sunglasses Trader]"; mes "Suit Yourself."; close; @@ -90,7 +89,6 @@ L_SG_No: } // 2nd part of the quest - moc_fild07,334,186,5 script Maseph 702,{ if(SG_QUEST1 == 1) goto L_SG_2; mes "[Maseph]"; diff --git a/npc/custom/quests/tha_statues.txt b/npc/custom/quests/tha_statues.txt index 47e4237c1..fb52d7ed4 100644 --- a/npc/custom/quests/tha_statues.txt +++ b/npc/custom/quests/tha_statues.txt @@ -1,23 +1,21 @@ //===== rAthena Script ======================================= //= Custom Thanatos Tower Quest //===== By: ================================================== -//= Bibilol & Moryagorn +//= Bibilol, Moryagorn //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== -//= Any rAthena Version; +//= rAthena SVN //===== Description: ========================================= //= Custom Thanatos Tower Quest //===== Additional Comments: ================================= //= 1.1 Fixed wrong NPC names in their dialogues, added -//= Justin84's gems check in Sox NPC [Lupus] +//= Justin84's gems check in Sox NPC [Lupus] //============================================================ - //Statue (NPC)(U: UP, D: DOWN, R: RIGHT, L: LEFT) : // Explain Npc tha_t08,69,106,4 script Statue 111,{ - mes "You can read on the back of the statue:"; mes "'By the spirit of olds, the walls are closed"; mes "Upper floors or foreign taboo"; @@ -33,22 +31,19 @@ tha_t08,69,106,4 script Statue 111,{ //Script: tha_t09,17,158,4 script Thalos 111,{ - if(TSQ_CHK == 1) goto done; mes "[Thalos]"; mes "You must find the 2nd Statue now."; set TSQ_CHK,1; close; - done: mes "[Thalos]"; mes "Go search the 2nd Statue!"; close; - + } tha_t09,84,99,4 script Mediane 111,{ - if(TSQ_CHK != 1) goto nook; mes "[Mediane]"; mes "Okay, i am warping you to the next floor now."; @@ -69,7 +64,6 @@ nook: //Script: tha_t10,130,159,4 script Melkor 111,{ - if(TSQ_CHK == 1) goto done; mes "[Melkor]"; mes "You must find the other Spirits now."; @@ -83,7 +77,6 @@ done: } tha_t10,160,98,4 script Zebrus 111,{ - if(TSQ_CHK != 1) goto nook; mes "[Zebrus]"; mes "Keep on this way, There is one Spirit left"; @@ -98,7 +91,6 @@ nook: } tha_t10,99,97,4 script Veriaelle 111,{ - if(TSQ_CHK != 2) goto nook; mes "[Veriaelle]"; mes "Okay, i am warping you to the next floor."; @@ -150,7 +142,7 @@ nook: } tha_t11,16,16,4 script Mihane 111,{ - if(TSQ_CHK != 2) goto nook; + if(TSQ_CHK != 2) goto nook; mes "[Mihane]"; mes "Keep on this way, Only 1 Left."; set TSQ_CHK,3; @@ -214,7 +206,7 @@ nook: close; } -tha_t12,96,57,4 script Hox 111,{ +tha_t12,96,57,4 script Hox 111,{ if(TSQ_CHK != 2 ) goto nook; mes "[Hox]"; mes "You are on the good way, 2 Spirits remaining !"; diff --git a/npc/custom/quests/thq/THQS_ChatingNPC.txt b/npc/custom/quests/thq/THQS_ChatingNPC.txt index 4fc4ad796..55971e51f 100644 --- a/npc/custom/quests/thq/THQS_ChatingNPC.txt +++ b/npc/custom/quests/thq/THQS_ChatingNPC.txt @@ -1,26 +1,18 @@ //===== rAthena Script ======================================= -//= Treasure Hunter Script -//===== Converted By ========================================= +//= Treasure Hunter Quests +//===== By: ================================================== //= Fredzilla -//= Original -////////////////////////////////////////////////////////////// -// Treasure Hunter Quests // -// By: Ezekial // -// for the use on nRO run by Newbe5 // -// revised By Warlock // -////////////////////////////////////////////////////////////// -//===== Version ============================================== -//= 1.0 - Straight conversion of Aegis NPC file -//===== Compatible With ====================================== -//= rAthena 1.0 -//===== Description ========================================== +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Start for Treasure hunter quests -//===== Comments ============================================= +//===== Additional Comments: ================================= //= Event_THQS - Used to check if you have already registered //= #Treasure_Token - used to keep track of tokens //============================================================ - //Entrance Flags yuno,48,101,6 script Notice 722,{ mes "^FF0000[ Treasure Hunter Guild House ]^000000"; diff --git a/npc/custom/quests/thq/THQS_GuildNPC.txt b/npc/custom/quests/thq/THQS_GuildNPC.txt index 69216e89d..b5bbf5d28 100644 --- a/npc/custom/quests/thq/THQS_GuildNPC.txt +++ b/npc/custom/quests/thq/THQS_GuildNPC.txt @@ -1,26 +1,18 @@ //===== rAthena Script ======================================= -//= Treasure Hunter Script -//===== Converted By ========================================= +//= Treasure Hunter Quests +//===== By: ================================================== //= Fredzilla -//= Original -////////////////////////////////////////////////////////////// -// Treasure Hunter Quests // -// By: Ezekial // -// for the use on nRO run by Newbe5 // -// revised By Warlock // -////////////////////////////////////////////////////////////// -//===== Version ============================================== -//= 1.0 - Straight conversion of Aegis NPC file -//===== Compatible With ====================================== -//= rAthena 1.0 -//===== Description ========================================== +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Start for Treasure hunter quests -//===== Comments ============================================= +//===== Additional Comments: ================================= //= Event_THQS - Used to check if you have already registered //= #Treasure_Token - used to keep track of tokens //============================================================ - yuno_in01,124,164,6 script Guild Leader 108,{ mes "[Keegan]"; mes "What brings you here? Have something to say?"; @@ -91,5 +83,4 @@ N_NVM: mes "[Keegan]"; mes "Alright come back when you have the free time to spare."; close; - } diff --git a/npc/custom/quests/thq/THQS_QuestNPC.txt b/npc/custom/quests/thq/THQS_QuestNPC.txt index da184e10e..6a3b33699 100644 --- a/npc/custom/quests/thq/THQS_QuestNPC.txt +++ b/npc/custom/quests/thq/THQS_QuestNPC.txt @@ -1,21 +1,14 @@ //===== rAthena Script ======================================= -//= Treasure Hunter Script -//===== Converted By ========================================= +//= Treasure Hunter Quests +//===== By: ================================================== //= Fredzilla -//= Original -////////////////////////////////////////////////////////////// -// Treasure Hunter Quests // -// By: Ezekial // -// for the use on nRO run by Newbe5 // -// revised By Warlock // -////////////////////////////////////////////////////////////// -//===== Version ============================================== +//===== Current Version: ===================================== //= 1.4 -//===== Compatible With ====================================== -//= rAthena 1.0 -//===== Description ========================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Start for Treasure hunter quests -//===== Comments ============================================= +//===== Additional Comments: ================================= //= Event_THQS - Used to check if you have already registered //= #Treasure_Token - used to keep track of tokens //= 1.0 - Straight conversionof Aegis NPC file @@ -25,7 +18,6 @@ //= 1.4 Fixed typos. (bugreport:2607) [Kisuka] //============================================================ - yuno_in01,112,151,6 script Quest Manager 62,{ mes "[Guy]"; mes "Welcome to the Treasure Hunters Guild "+strcharinfo(0)+"."; diff --git a/npc/custom/quests/thq/THQS_Quests.txt b/npc/custom/quests/thq/THQS_Quests.txt index a53d8a4b0..132c5bf33 100644 --- a/npc/custom/quests/thq/THQS_Quests.txt +++ b/npc/custom/quests/thq/THQS_Quests.txt @@ -1,21 +1,14 @@ //===== rAthena Script ======================================= -//= Treasure Hunter Script -//===== Converted By ========================================= +//= Treasure Hunter Quests +//===== By: ================================================== //= Fredzilla -//= Original -////////////////////////////////////////////////////////////// -// Treasure Hunter Quests // -// By: Ezekial // -// for the use on nRO run by Newbe5 // -// revised By Warlock // -////////////////////////////////////////////////////////////// -//===== Version ============================================== +//===== Current Version: ===================================== //= 1.5 -//===== Compatible With ====================================== -//= rAthena 1.0 -//===== Description ========================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Start for Treasure hunter quests -//===== Comments ============================================= +//===== Additional Comments: ================================= //= Event_THQS - Used to check if you have already registered //= #Treasure_Token - used to keep track of tokens //= 1.0 - Straight conversionof Aegis NPC file @@ -25,7 +18,6 @@ //= 1.5 Fixed name collision with 'Little Girl' in cities/lutie.txt [Ai4rei] //============================================================ - ///////Job list 1/////// //1-1 mjolnir_09,187,189,6 script Old Man 107,{ diff --git a/npc/custom/quests/thq/THQS_TTShop.txt b/npc/custom/quests/thq/THQS_TTShop.txt index 5bb80a597..7752a0960 100644 --- a/npc/custom/quests/thq/THQS_TTShop.txt +++ b/npc/custom/quests/thq/THQS_TTShop.txt @@ -1,26 +1,19 @@ //===== rAthena Script ======================================= -//= Treasure Hunter Script -//===== Converted By ========================================= +//= Treasure Hunter Quests +//===== By: ================================================== //= Fredzilla -//= Original -////////////////////////////////////////////////////////////// -// Treasure Hunter Quests // -// By: Ezekial // -// for the use on nRO run by Newbe5 // -// revised By Warlock // -////////////////////////////////////////////////////////////// -//===== Version ============================================== +//===== Current Version: ===================================== //= 1.1 -//===== Compatible With ====================================== -//= rAthena 1.0 -//===== Description ========================================== +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Start for Treasure hunter quests -//===== Comments ============================================= +//===== Additional Comments: ================================= //= Event_THQS - Used to check if you have already registered //= #Treasure_Token - used to keep track of tokens -//= v1.0 - Straight conversion of Aegis NPC file -//= v1.1 - balanced some prices, fixed 1 missing label -//= removed Executioner&Mysteltain swords [Lupus] +//= 1.0 - Straight conversion of Aegis NPC file +//= 1.1 - balanced some prices, fixed 1 missing label +//= removed Executioner&Mysteltain swords [Lupus] //============================================================ prt_in,159,172,0 warp thqwrp 3,3,yuno_in01,123,155 diff --git a/npc/custom/quests/umbalian_language.txt b/npc/custom/quests/umbalian_language.txt index c3d0fed51..674ea6e03 100644 --- a/npc/custom/quests/umbalian_language.txt +++ b/npc/custom/quests/umbalian_language.txt @@ -1,20 +1,15 @@ //===== rAthena Script ======================================= //= Custom Umbalian Language Quest //===== By: ================================================== -//= sabernet09 & rAthena Team +//= sabernet09 //===== Current Version: ===================================== -//= 1.0 +//= 1.1 //===== Compatible With: ===================================== -//= rAthena 7.15 + +//= rAthena SVN //===== Description: ========================================= -//= 1.0 Removed it from offical Umbala Quests [Lupus] +//= 1.1 Removed it from offical Umbala Quests [Lupus] //============================================================ - -//======================================================================================// -// Custom Umbala Language Quest -//======================================================================================// - prontera,145,290,5 script Mason 742,{ mes "[Mason]"; if(umb_lang==0) goto L_NOT_GOT_QUEST; diff --git a/npc/custom/quests/valhallen.txt b/npc/custom/quests/valhallen.txt index fbe79cd40..e976640cc 100644 --- a/npc/custom/quests/valhallen.txt +++ b/npc/custom/quests/valhallen.txt @@ -5,7 +5,7 @@ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== -//= rAthena 7.15 + +//= rAthena SVN //===== Description: ========================================= //= All-in-one: Mjollnir,Sleipnir,Brisingammen,Gleipnir,Megingjard //===== Additional Comments: ================================= diff --git a/npc/custom/rpsroulette.txt b/npc/custom/rpsroulette.txt index 75e31e972..8e3d04a3e 100644 --- a/npc/custom/rpsroulette.txt +++ b/npc/custom/rpsroulette.txt @@ -1,15 +1,15 @@ //===== rAthena Script ======================================= -//= Rock Scissors Roulette Script +//= Rock Scissors Roulette //===== By: ================================================== -//= acky (1.1) +//= acky //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== -//= Any rAthena Version +//= rAthena SVN //===== Description: ========================================= //= Plays a hybrid Russian Roulette Rock Scissors Paper game. //===== Additional Comments: ================================= -//= Prizes customisable, Added emotions. +//= Prizes customizable, Added emotions. //= 1.2 Fixes by Blackthunder and me [Poki#3] //============================================================ diff --git a/npc/custom/shifty_assassin.txt b/npc/custom/shifty_assassin.txt index 0f8e32e4c..8f4bbe4cf 100644 --- a/npc/custom/shifty_assassin.txt +++ b/npc/custom/shifty_assassin.txt @@ -1,7 +1,7 @@ //===== rAthena Script ======================================= //= Shifty Assassin //===== By: ================================================== -//= acky - god@acky.com +//= acky //===== Current Version: ===================================== //= 1.1.2 //===== Compatible With: ===================================== @@ -14,196 +14,186 @@ //============================================================ morocc,148,86,5 script Shifty Assassin 725,{ -set $ninja_price,250000; + set $ninja_price,250000; -// STARTS THE MENU // + // STARTS THE MENU // M_Start: -mes "[Shifty Assassin]"; -mes "What do you want?"; -next; -if (getgmlevel() > 90) goto M_GM; -menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit; + mes "[Shifty Assassin]"; + mes "What do you want?"; + next; + if (getgmlevel() > 90) goto M_GM; + menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit; M_GM: -menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit; + menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit; -// GM MENU TO ADD NINJAS // + // GM MENU TO ADD NINJAS // M_Add: -mes "[Shifty Assassin]"; -mes "How many ninjas do you want to make available?"; -next; -set @add,0; -input @add; -set $ninja_avail,$ninja_avail+@add; -mes @add + " ninjas added."; -close; - -// BUY NINJAS // + mes "[Shifty Assassin]"; + mes "How many ninjas do you want to make available?"; + next; + set @add,0; + input @add; + set $ninja_avail,$ninja_avail+@add; + mes @add + " ninjas added."; + close; + + // BUY NINJAS // M_Buy: -mes "[Shifty Assassin]"; -mes "How many ninjas do you want buy?"; -mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available."; -mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each."; - -set @buy,0; -input @buy; -next; -if ($ninja_avail < 1) goto NoNinjas; -if ($ninja_avail < @buy) goto NotEnoughNinjas; -set @price,@buy*$ninja_price; -if (zeny < @price ) goto NoZeny; - -mes "[Shifty Assassin]"; -mes "That will cost you ^0000FF" + @price + " zeny^000000."; -next; -menu "Continue",-,"Cancel",M_Exit; - -set zeny,zeny-@price; -set #ninjas,#ninjas+@buy; -set $ninja_avail,$ninja_avail-@buy; - -mes "[Shifty Assassin]"; -mes "Thank you."; -close; - -// ASSASSINATE SOMEBODY // + mes "[Shifty Assassin]"; + mes "How many ninjas do you want buy?"; + mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available."; + mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each."; + + set @buy,0; + input @buy; + next; + if ($ninja_avail < 1) goto NoNinjas; + if ($ninja_avail < @buy) goto NotEnoughNinjas; + set @price,@buy*$ninja_price; + if (zeny < @price ) goto NoZeny; + + mes "[Shifty Assassin]"; + mes "That will cost you ^0000FF" + @price + " zeny^000000."; + next; + menu "Continue",-,"Cancel",M_Exit; + + set zeny,zeny-@price; + set #ninjas,#ninjas+@buy; + set $ninja_avail,$ninja_avail-@buy; + + mes "[Shifty Assassin]"; + mes "Thank you."; + close; + + // ASSASSINATE SOMEBODY // M_Kill: -if (agitcheck()) goto M_Busy; -mes "[Shifty Assassin]"; -mes "Enter the name of the target."; -mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000"; -next; -menu "Continue",-,"Cancel",M_Exit; -set @name$,"0"; -input @name$; -next; -mes "[Shifty Assassin]"; -mes "Active Ninjas: "+#ninjas; -mes "Resting Ninjas: "+#ninjasr; -mes "How many do you want to send?"; -set @number,0; -input @number; -if (@number < 1) goto NoNinjasSent; -if (@number > #ninjas) goto NotEnoughNinjas1; -if (@number > 10) goto TooManyNinjas; -set @chance,rand (1,12); -set #ninjas,#ninjas-@number; -set #ninjas,#ninjas+#ninjasr; -set #ninjasr,0; -if (@number < @chance) goto M_Failure; - -// SUCCESSFUL ATTACK // -mes "Sending ninjas now."; -next; -mes "[Shifty Assassin]"; -set @ninjasurvived,rand (1,@number); -set #ninjasr,@number-@ninjasurvived; -mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; - -atcommand strcharinfo(0) + "@kill "+@name$; -announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; -close; - -// FAILED ATTACK // + if (agitcheck()) goto M_Busy; + mes "[Shifty Assassin]"; + mes "Enter the name of the target."; + mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000"; + next; + menu "Continue",-,"Cancel",M_Exit; + set @name$,"0"; + input @name$; + next; + mes "[Shifty Assassin]"; + mes "Active Ninjas: "+#ninjas; + mes "Resting Ninjas: "+#ninjasr; + mes "How many do you want to send?"; + set @number,0; + input @number; + if (@number < 1) goto NoNinjasSent; + if (@number > #ninjas) goto NotEnoughNinjas1; + if (@number > 10) goto TooManyNinjas; + set @chance,rand (1,12); + set #ninjas,#ninjas-@number; + set #ninjas,#ninjas+#ninjasr; + set #ninjasr,0; + if (@number < @chance) goto M_Failure; + + // SUCCESSFUL ATTACK // + mes "Sending ninjas now."; + next; + mes "[Shifty Assassin]"; + set @ninjasurvived,rand (1,@number); + set #ninjasr,@number-@ninjasurvived; + mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; + + atcommand strcharinfo(0) + "@kill "+@name$; + announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8; + close; + + // FAILED ATTACK // M_Failure: -mes "Sending ninjas now."; -next; -mes "[Shifty Assassin]"; -set @ninjasurvived,rand (1,@number); -set #ninjasr,@number-@ninjasurvived; -mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; + mes "Sending ninjas now."; + next; + mes "[Shifty Assassin]"; + set @ninjasurvived,rand (1,@number); + set #ninjasr,@number-@ninjasurvived; + mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived."; -announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; -close; + announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8; + close; -// NINJAS BUSY FOR WOE // + // NINJAS BUSY FOR WOE // M_Busy: -mes "[Shifty Assassin]"; -mes "Sorry, all my ninjas are busy doing War of Emperium."; -close; + mes "[Shifty Assassin]"; + mes "Sorry, all my ninjas are busy doing War of Emperium."; + close; -// CHECK YOUR NINJAS // + // CHECK YOUR NINJAS // M_Check: -mes "[Shifty Assassin]"; -mes "You have:"; -mes "^FF0000" + #ninjas + "^000000 Active Ninjas."; -mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas."; -next; -goto M_Start; + mes "[Shifty Assassin]"; + mes "You have:"; + mes "^FF0000" + #ninjas + "^000000 Active Ninjas."; + mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas."; + next; + goto M_Start; -// LIMIT // + // LIMIT // NoNinjasSent: -mes "[Shifty Assassin]"; -mes "You can't kill anyone without ninjas."; -next; -goto M_Start; + mes "[Shifty Assassin]"; + mes "You can't kill anyone without ninjas."; + next; + goto M_Start; TooManyNinjas: -mes "[Shifty Assassin]"; -mes "You can only send 10 ninjas max."; -next; -goto M_Start; + mes "[Shifty Assassin]"; + mes "You can only send 10 ninjas max."; + next; + goto M_Start; NoZeny: -mes "[Shifty Assassin]"; -mes "You do not have enough zeny."; -close; + mes "[Shifty Assassin]"; + mes "You do not have enough zeny."; + close; NotEnoughNinjas: -mes "[Shifty Assassin]"; -mes "There aren't that many ninjas to buy."; -next; -goto M_Start; + mes "[Shifty Assassin]"; + mes "There aren't that many ninjas to buy."; + next; + goto M_Start; NoNinjas: -mes "[Shifty Assassin]"; -mes "There are no ninjas left to buy."; -close; + mes "[Shifty Assassin]"; + mes "There are no ninjas left to buy."; + close; NotEnoughNinjas1: -mes "[Shifty Assassin]"; -mes "You do not have that many ninjas."; -next; -goto M_Start; + mes "[Shifty Assassin]"; + mes "You do not have that many ninjas."; + next; + goto M_Start; M_Exit: -mes "[Shifty Assassin]"; -mes "Goodbye."; -close; + mes "[Shifty Assassin]"; + mes "Goodbye."; + close; // TIMER DELAY NINJA ADDER // - OnClock0600: -set $ninja_avail,$ninja_avail+2; -end; - + set $ninja_avail,$ninja_avail+2; + end; OnClock1200: -set $ninja_avail,$ninja_avail+2; -end; - + set $ninja_avail,$ninja_avail+2; + end; OnClock1500: -set $ninja_avail,$ninja_avail+2; -end; - - + set $ninja_avail,$ninja_avail+2; + end; OnClock1800: -set $ninja_avail,$ninja_avail+3; -end; - + set $ninja_avail,$ninja_avail+3; + end; OnClock1900: -set $ninja_avail,$ninja_avail+2; -end; - + set $ninja_avail,$ninja_avail+2; + end; OnClock2000: -set $ninja_avail,$ninja_avail+2; -end; - - + set $ninja_avail,$ninja_avail+2; + end; OnClock0000: -set $ninja_avail,$ninja_avail+2; -end; - + set $ninja_avail,$ninja_avail+2; + end; OnInit: -set $ninja_avail,$ninja_avail+1; -end; + set $ninja_avail,$ninja_avail+1; + end; } diff --git a/npc/custom/sign_your_items.txt b/npc/custom/sign_your_items.txt index bac8207ea..769e62866 100644 --- a/npc/custom/sign_your_items.txt +++ b/npc/custom/sign_your_items.txt @@ -1,16 +1,16 @@ -//===== rAthena Script ======================================= -//= * Sign Your Items * -//===== By: ================================================== +//===== rAthena Script ======================================= +//= Sign Your Items +//===== By: ================================================== //= Lupus -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= rAthena 1 -//===== Description: ========================================= +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= //= Write you name on your rare equipment or weapon ^_- //= Original X-Mas mini-quest(could be used as a permanent one) -//===== Additional Comments: ================================= -//= 1.0 First release +//===== Additional Comments: ================================= +//= //============================================================ prt_in,24,61,7 script Perchik 47,{ @@ -52,85 +52,85 @@ M_DO: M_MENU: next; menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4, - getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8; + getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8; //Head Gear - M_PART1: - set @part,1; - if (getequipisequiped(1)) goto L_CHECK1; - mes "[Perchik]"; - mes "A bald head under a cheap wig... There's nothing worthy to sign."; - emotion 6; - goto M_MENU; - M_PART9: - set @part,9; - if (getequipisequiped(9)) goto L_CHECK1; - mes "[Perchik]"; - mes "Glasses... I can't see any glasses..."; - emotion 20; - goto M_MENU; - M_PART10: - set @part,10; - if (getequipisequiped(10)) goto L_CHECK1; - mes "[Perchik]"; - mes "I don't see any mask here."; - emotion 20; - goto M_MENU; +M_PART1: + set @part,1; + if (getequipisequiped(1)) goto L_CHECK1; + mes "[Perchik]"; + mes "A bald head under a cheap wig... There's nothing worthy to sign."; + emotion 6; + goto M_MENU; +M_PART9: + set @part,9; + if (getequipisequiped(9)) goto L_CHECK1; + mes "[Perchik]"; + mes "Glasses... I can't see any glasses..."; + emotion 20; + goto M_MENU; +M_PART10: + set @part,10; + if (getequipisequiped(10)) goto L_CHECK1; + mes "[Perchik]"; + mes "I don't see any mask here."; + emotion 20; + goto M_MENU; //Armor - M_PART2: - set @part,2; - if (getequipisequiped(2)) goto L_CHECK1; - mes "[Perchik]"; - mes "Your belly...? Yes, it's rather fat."; - emotion 6; - goto M_MENU; +M_PART2: + set @part,2; + if (getequipisequiped(2)) goto L_CHECK1; + mes "[Perchik]"; + mes "Your belly...? Yes, it's rather fat."; + emotion 6; + goto M_MENU; //Left Hand - M_PART3: - set @part,3; - if (getequipisequiped(3)) goto L_CHECK1; - mes "[Perchik]"; - mes "Sign your left hand? I'm not a celebrity, you know..."; - emotion 4; - goto M_MENU; +M_PART3: + set @part,3; + if (getequipisequiped(3)) goto L_CHECK1; + mes "[Perchik]"; + mes "Sign your left hand? I'm not a celebrity, you know..."; + emotion 4; + goto M_MENU; //Right Hand - M_PART4: - set @part,4; - if (getequipisequiped(4)) goto L_CHECK1; - mes "[Perchik]"; - mes "It isn't an armor... It's a mud!!! Wash your hands more often."; - emotion 4; - goto M_MENU; +M_PART4: + set @part,4; + if (getequipisequiped(4)) goto L_CHECK1; + mes "[Perchik]"; + mes "It isn't an armor... It's a mud!!! Wash your hands more often."; + emotion 4; + goto M_MENU; //Garment - M_PART5: - set @part,5; - if (getequipisequiped(5)) goto L_CHECK1; - mes "[Perchik]"; - mes "Look... It's empty..."; - goto M_MENU; +M_PART5: + set @part,5; + if (getequipisequiped(5)) goto L_CHECK1; + mes "[Perchik]"; + mes "Look... It's empty..."; + goto M_MENU; //Foot Gear - M_PART6: - set @part,6; - if (getequipisequiped(6)) goto L_CHECK1; - mes "[Perchik]"; - mes "Aw!! I don't like stinky feet."; - emotion 16; - goto M_MENU; +M_PART6: + set @part,6; + if (getequipisequiped(6)) goto L_CHECK1; + mes "[Perchik]"; + mes "Aw!! I don't like stinky feet."; + emotion 16; + goto M_MENU; //Accessory1 - M_PART7: - set @part,7; - if (getequipisequiped(7)) goto L_CHECK1; - mes "[Perchik]"; - mes "Yep... a pocket with a huge hole..."; - emotion 20; - goto M_MENU; +M_PART7: + set @part,7; + if (getequipisequiped(7)) goto L_CHECK1; + mes "[Perchik]"; + mes "Yep... a pocket with a huge hole..."; + emotion 20; + goto M_MENU; //Accessory2 - M_PART8: - set @part,8; - if (getequipisequiped(8)) goto L_CHECK1; - mes "[Perchik]"; - mes "I see your fat belly..."; - emotion 20; - goto M_MENU; +M_PART8: + set @part,8; + if (getequipisequiped(8)) goto L_CHECK1; + mes "[Perchik]"; + mes "I see your fat belly..."; + emotion 20; + goto M_MENU; L_CHECK1: set @ref,0; diff --git a/npc/custom/stock_market.txt b/npc/custom/stock_market.txt index 23fdfe23f..6f90bcaef 100644 --- a/npc/custom/stock_market.txt +++ b/npc/custom/stock_market.txt @@ -1,11 +1,11 @@ //===== rAthena Script ======================================= //= Stock Market Game //===== By: ================================================== -//= acky (acky@bigpond.net.au) +//= acky //===== Current Version: ===================================== //= 1.3.1 //===== Compatible With: ===================================== -//= Any rAthena Version +//= rAthena SVN //===== Description: ========================================= //= NPC for a stock market game. //===== Additional Comments: ================================= @@ -14,252 +14,252 @@ //= Low prices likely to rise, High prices likely to drop //= Small fix by Galeon //= Lupus: This script lets players make 40,000,000z a day -//= so use it on your own risk +//= so use it on your own risk //============================================================ -prontera,140,181,5 script sharenames -1,{ -end; +- script sharenames -1,{ + end; OnInit: -// Sets the names of the shares // -set $S1N$,"JIN"; -set $S2N$,"VNG"; -set $S3N$,"SHA"; -set $S4N$,"RGC"; -set $S5N$,"PSC"; -set $S6N$,"GNG"; -set $S7N$,"XRO"; -set $S8N$,"GRM"; -set $S9N$,"DOP"; -set $S10N$,"POR"; - -// Transaction fee // -set $S_Trans,1500; - -// Min & Max buyable // -set $S_BuyMin,1; -set $S_BuyMax,1000000; -end; - -// Average Price (Your start prices) // -set $S_Avg,100; - -// Set times of fluctuation // + // Sets the names of the shares // + set $S1N$,"JIN"; + set $S2N$,"VNG"; + set $S3N$,"SHA"; + set $S4N$,"RGC"; + set $S5N$,"PSC"; + set $S6N$,"GNG"; + set $S7N$,"XRO"; + set $S8N$,"GRM"; + set $S9N$,"DOP"; + set $S10N$,"POR"; + + // Transaction fee // + set $S_Trans,1500; + + // Min & Max buyable // + set $S_BuyMin,1; + set $S_BuyMax,1000000; + end; + + // Average Price (Your start prices) // + set $S_Avg,100; + + // Set times of fluctuation // OnClock1100: -set $S_LastUpd$,"12:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"12:00"; + goto S_Fluc; + end; OnClock0000: -set $S_LastUpd$,"00:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"00:00"; + goto S_Fluc; + end; OnClock0600: -set $S_LastUpd$,"06:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"06:00"; + goto S_Fluc; + end; OnClock1800: -set $S_LastUpd$,"18:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"18:00"; + goto S_Fluc; + end; OnClock2100: -set $S_LastUpd$,"21:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"21:00"; + goto S_Fluc; + end; OnClock0900: -set $S_LastUpd$,"09:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"09:00"; + goto S_Fluc; + end; OnClock1500: -set $S_LastUpd$,"15:00"; -goto S_Fluc; -end; + set $S_LastUpd$,"15:00"; + goto S_Fluc; + end; S_Fluc: -set $fluc,rand (-6,6); -set $S1B,$S1; -set $S1,$S1+$fluc; -if ($S1 < 25) set $S1,$S1+3; -if ($S1 < 50) set $S1,$S1+2; -if ($S1 > 150) set $S1,$S1-2; -if ($S1 > 175) set $S1,$S1-3; -if ($S1 < 1) set $S1,1; - -set $fluc,rand (-6,6); -set $S2B,$S2; -set $S2,$S2+$fluc; -if ($S2 < 25) set $S2,$S2+3; -if ($S2 < 50) set $S2,$S2+2; -if ($S2 > 150) set $S2,$S2-2; -if ($S2 > 175) set $S2,$S2-3; -if ($S2 < 1) set $S2,1; - -set $fluc,rand (-6,6); -set $S3B,$S3; -set $S3,$S3+$fluc; -if ($S3 < 25) set $S3,$S3+3; -if ($S3 < 50) set $S3,$S3+2; -if ($S3 > 150) set $S3,$S3-2; -if ($S3 > 175) set $S3,$S3-3; -if ($S3 < 1) set $S3,1; - -set $fluc,rand (-6,6); -set $S4B,$S4; -set $S4,$S4+$fluc; -if ($S4 < 25) set $S4,$S4+3; -if ($S4 < 50) set $S4,$S4+2; -if ($S4 > 150) set $S4,$S4-2; -if ($S4 > 175) set $S4,$S4-3; -if ($S4 < 1) set $S4,1; - -set $fluc,rand (-6,6); -set $S5B,$S5; -set $S5,$S5+$fluc; -if ($S5 < 25) set $S5,$S5+3; -if ($S5 < 50) set $S5,$S5+2; -if ($S5 > 150) set $S5,$S5-2; -if ($S5 > 175) set $S5,$S5-3; -if ($S5 < 1) set $S5,1; - -set $fluc,rand (-6,6); -set $S6B,$S6; -set $S6,$S6+$fluc; -if ($S6 < 25) set $S6,$S6+3; -if ($S6 < 50) set $S6,$S6+2; -if ($S6 > 150) set $S6,$S6-2; -if ($S6 > 175) set $S6,$S6-3; -if ($S6 < 1) set $S6,1; - -set $fluc,rand (-6,6); -set $S7B,$S7; -set $S7,$S7+$fluc; -if ($S7 < 25) set $S7,$S7+3; -if ($S7 < 50) set $S7,$S7+2; -if ($S7 > 150) set $S7,$S7-2; -if ($S7 > 175) set $S7,$S7-3; -if ($S7 < 1) set $S7,1; - -set $fluc,rand (-6,6); -set $S8B,$S8; -set $S8,$S8+$fluc; -if ($S8 < 25) set $S8,$S8+3; -if ($S8 < 50) set $S8,$S8+2; -if ($S8 > 150) set $S8,$S8-2; -if ($S8 > 175) set $S8,$S8-3; -if ($S8 < 1) set $S8,1; - -set $fluc,rand (-6,6); -set $S9B,$S9; -set $S9,$S9+$fluc; -if ($S9 < 25) set $S9,$S9+3; -if ($S9 < 50) set $S9,$S9+2; -if ($S9 > 150) set $S9,$S9-2; -if ($S9 > 175) set $S9,$S9-3; -if ($S9 < 1) set $S9,1; - -set $fluc,rand (-6,6); -set $S10B,$S10; -set $S10,$S10+$fluc; -if ($S10 < 25) set $S10,$S10+3; -if ($S10 < 50) set $S10,$S10+2; -if ($S10 > 150) set $S10,$S10-2; -if ($S10 > 175) set $S10,$S10-3; -if ($S10 < 1) set $S10,1; -end; + set $fluc,rand (-6,6); + set $S1B,$S1; + set $S1,$S1+$fluc; + if ($S1 < 25) set $S1,$S1+3; + if ($S1 < 50) set $S1,$S1+2; + if ($S1 > 150) set $S1,$S1-2; + if ($S1 > 175) set $S1,$S1-3; + if ($S1 < 1) set $S1,1; + + set $fluc,rand (-6,6); + set $S2B,$S2; + set $S2,$S2+$fluc; + if ($S2 < 25) set $S2,$S2+3; + if ($S2 < 50) set $S2,$S2+2; + if ($S2 > 150) set $S2,$S2-2; + if ($S2 > 175) set $S2,$S2-3; + if ($S2 < 1) set $S2,1; + + set $fluc,rand (-6,6); + set $S3B,$S3; + set $S3,$S3+$fluc; + if ($S3 < 25) set $S3,$S3+3; + if ($S3 < 50) set $S3,$S3+2; + if ($S3 > 150) set $S3,$S3-2; + if ($S3 > 175) set $S3,$S3-3; + if ($S3 < 1) set $S3,1; + + set $fluc,rand (-6,6); + set $S4B,$S4; + set $S4,$S4+$fluc; + if ($S4 < 25) set $S4,$S4+3; + if ($S4 < 50) set $S4,$S4+2; + if ($S4 > 150) set $S4,$S4-2; + if ($S4 > 175) set $S4,$S4-3; + if ($S4 < 1) set $S4,1; + + set $fluc,rand (-6,6); + set $S5B,$S5; + set $S5,$S5+$fluc; + if ($S5 < 25) set $S5,$S5+3; + if ($S5 < 50) set $S5,$S5+2; + if ($S5 > 150) set $S5,$S5-2; + if ($S5 > 175) set $S5,$S5-3; + if ($S5 < 1) set $S5,1; + + set $fluc,rand (-6,6); + set $S6B,$S6; + set $S6,$S6+$fluc; + if ($S6 < 25) set $S6,$S6+3; + if ($S6 < 50) set $S6,$S6+2; + if ($S6 > 150) set $S6,$S6-2; + if ($S6 > 175) set $S6,$S6-3; + if ($S6 < 1) set $S6,1; + + set $fluc,rand (-6,6); + set $S7B,$S7; + set $S7,$S7+$fluc; + if ($S7 < 25) set $S7,$S7+3; + if ($S7 < 50) set $S7,$S7+2; + if ($S7 > 150) set $S7,$S7-2; + if ($S7 > 175) set $S7,$S7-3; + if ($S7 < 1) set $S7,1; + + set $fluc,rand (-6,6); + set $S8B,$S8; + set $S8,$S8+$fluc; + if ($S8 < 25) set $S8,$S8+3; + if ($S8 < 50) set $S8,$S8+2; + if ($S8 > 150) set $S8,$S8-2; + if ($S8 > 175) set $S8,$S8-3; + if ($S8 < 1) set $S8,1; + + set $fluc,rand (-6,6); + set $S9B,$S9; + set $S9,$S9+$fluc; + if ($S9 < 25) set $S9,$S9+3; + if ($S9 < 50) set $S9,$S9+2; + if ($S9 > 150) set $S9,$S9-2; + if ($S9 > 175) set $S9,$S9-3; + if ($S9 < 1) set $S9,1; + + set $fluc,rand (-6,6); + set $S10B,$S10; + set $S10,$S10+$fluc; + if ($S10 < 25) set $S10,$S10+3; + if ($S10 < 50) set $S10,$S10+2; + if ($S10 > 150) set $S10,$S10-2; + if ($S10 > 175) set $S10,$S10-3; + if ($S10 < 1) set $S10,1; + end; } -- script Stock Market::stockmarket 109,{ -// Ensures no trading when default prices have not been set // -set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10; -if (@stotal > 0) goto S_Start; -mes "[Stock Market]"; -mes "Trading is currently closed."; -if (getgmlevel() > 90) goto GM_Open; -close; +prontera,140,181,5 script Stock Market::stockmarket 109,{ + // Ensures no trading when default prices have not been set // + set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10; + if (@stotal > 0) goto S_Start; + mes "[Stock Market]"; + mes "Trading is currently closed."; + if (getgmlevel() > 90) goto GM_Open; + close; -// Begining of interface // + // Begining of interface // S_Start: -mes "[Stock Market]"; -mes "Last fluctuation: " + $S_LastUpd$; - -// Loss/Gain in price // -set @S1Update,$S1-$S1B; -set @S2Update,$S2-$S2B; -set @S3Update,$S3-$S3B; -set @S4Update,$S4-$S4B; -set @S5Update,$S5-$S5B; -set @S6Update,$S6-$S6B; -set @S7Update,$S7-$S7B; -set @S8Update,$S8-$S8B; -set @S9Update,$S9-$S9B; -set @S10Update,$S10-$S10B; - -// Makes Loss/Gain Red/Green // -if (@S1Update < 0) set @S1Update$,"^FF0000"+@S1Update+"^000000"; -if (@S1Update > 0) set @S1Update$,"^00FF00+"+@S1Update+"^000000"; -if (@S1Update == 0) set @S1Update$,@S1Update; - -if (@S2Update < 0) set @S2Update$,"^FF0000"+@S2Update+"^000000"; -if (@S2Update > 0) set @S2Update$,"^00FF00+"+@S2Update+"^000000"; -if (@S2Update == 0) set @S2Update$,@S2Update; - -if (@S3Update < 0) set @S3Update$,"^FF0000"+@S3Update+"^000000"; -if (@S3Update > 0) set @S3Update$,"^00FF00+"+@S3Update+"^000000"; -if (@S3Update == 0) set @S3Update$,@S3Update; - -if (@S4Update < 0) set @S4Update$,"^FF0000"+@S4Update+"^000000"; -if (@S4Update > 0) set @S4Update$,"^00FF00+"+@S4Update+"^000000"; -if (@S4Update == 0) set @S4Update$,@S4Update; - -if (@S5Update < 0) set @S5Update$,"^FF0000"+@S5Update+"^000000"; -if (@S5Update > 0) set @S5Update$,"^00FF00+"+@S5Update+"^000000"; -if (@S5Update == 0) set @S5Update$,@S5Update; - -if (@S6Update < 0) set @S6Update$,"^FF0000"+@S6Update+"^000000"; -if (@S6Update > 0) set @S6Update$,"^00FF00+"+@S6Update+"^000000"; -if (@S6Update == 0) set @S6Update$,@S6Update; - -if (@S7Update < 0) set @S7Update$,"^FF0000"+@S7Update+"^000000"; -if (@S7Update > 0) set @S7Update$,"^00FF00+"+@S7Update+"^000000"; -if (@S7Update == 0) set @S7Update$,@S7Update; - -if (@S8Update < 0) set @S8Update$,"^FF0000"+@S8Update+"^000000"; -if (@S8Update > 0) set @S8Update$,"^00FF00+"+@S8Update+"^000000"; -if (@S8Update == 0) set @S8Update$,@S8Update; - -if (@S9Update < 0) set @S9Update$,"^FF0000"+@S9Update+"^000000"; -if (@S9Update > 0) set @S9Update$,"^00FF00+"+@S9Update+"^000000"; -if (@S9Update == 0) set @S9Update$,@S9Update; - -if (@S10Update < 0) set @S10Update$,"^FF0000"+@S10Update+"^000000"; -if (@S10Update > 0) set @S10Update$,"^00FF00+"+@S10Update+"^000000"; -if (@S10Update == 0) set @S10Update$,@S10Update; - -// Displays shares & prices // -mes "^21698F"+$S1N$+"^000000" + " " + $S1 + "z (" + @S1Update$ + ")"; -mes "^21698F"+$S2N$+"^000000" + " " + $S2 + "z (" + @S2Update$ + ")"; -mes "^21698F"+$S3N$+"^000000" + " " + $S3 + "z (" + @S3Update$ + ")"; -mes "^21698F"+$S4N$+"^000000" + " " + $S4 + "z (" + @S4Update$ + ")"; -mes "^21698F"+$S5N$+"^000000" + " " + $S5 + "z (" + @S5Update$ + ")"; -mes "^21698F"+$S6N$+"^000000" + " " + $S6 + "z (" + @S6Update$ + ")"; -mes "^21698F"+$S7N$+"^000000" + " " + $S7 + "z (" + @S7Update$ + ")"; -mes "^21698F"+$S8N$+"^000000" + " " + $S8 + "z (" + @S8Update$ + ")"; -mes "^21698F"+$S9N$+"^000000" + " " + $S9 + "z (" + @S9Update$ + ")"; -mes "^21698F"+$S10N$+"^000000" + " " + $S10 + "z (" + @S10Update$ + ")"; -next; - -// GM Menu link // -if (getgmlevel() > 90) goto GM_subMenu; -menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"Cancel",S_Quit; + mes "[Stock Market]"; + mes "Last fluctuation: " + $S_LastUpd$; + + // Loss/Gain in price // + set @S1Update,$S1-$S1B; + set @S2Update,$S2-$S2B; + set @S3Update,$S3-$S3B; + set @S4Update,$S4-$S4B; + set @S5Update,$S5-$S5B; + set @S6Update,$S6-$S6B; + set @S7Update,$S7-$S7B; + set @S8Update,$S8-$S8B; + set @S9Update,$S9-$S9B; + set @S10Update,$S10-$S10B; + + // Makes Loss/Gain Red/Green // + if (@S1Update < 0) set @S1Update$,"^FF0000"+@S1Update+"^000000"; + if (@S1Update > 0) set @S1Update$,"^00FF00+"+@S1Update+"^000000"; + if (@S1Update == 0) set @S1Update$,@S1Update; + + if (@S2Update < 0) set @S2Update$,"^FF0000"+@S2Update+"^000000"; + if (@S2Update > 0) set @S2Update$,"^00FF00+"+@S2Update+"^000000"; + if (@S2Update == 0) set @S2Update$,@S2Update; + + if (@S3Update < 0) set @S3Update$,"^FF0000"+@S3Update+"^000000"; + if (@S3Update > 0) set @S3Update$,"^00FF00+"+@S3Update+"^000000"; + if (@S3Update == 0) set @S3Update$,@S3Update; + + if (@S4Update < 0) set @S4Update$,"^FF0000"+@S4Update+"^000000"; + if (@S4Update > 0) set @S4Update$,"^00FF00+"+@S4Update+"^000000"; + if (@S4Update == 0) set @S4Update$,@S4Update; + + if (@S5Update < 0) set @S5Update$,"^FF0000"+@S5Update+"^000000"; + if (@S5Update > 0) set @S5Update$,"^00FF00+"+@S5Update+"^000000"; + if (@S5Update == 0) set @S5Update$,@S5Update; + + if (@S6Update < 0) set @S6Update$,"^FF0000"+@S6Update+"^000000"; + if (@S6Update > 0) set @S6Update$,"^00FF00+"+@S6Update+"^000000"; + if (@S6Update == 0) set @S6Update$,@S6Update; + + if (@S7Update < 0) set @S7Update$,"^FF0000"+@S7Update+"^000000"; + if (@S7Update > 0) set @S7Update$,"^00FF00+"+@S7Update+"^000000"; + if (@S7Update == 0) set @S7Update$,@S7Update; + + if (@S8Update < 0) set @S8Update$,"^FF0000"+@S8Update+"^000000"; + if (@S8Update > 0) set @S8Update$,"^00FF00+"+@S8Update+"^000000"; + if (@S8Update == 0) set @S8Update$,@S8Update; + + if (@S9Update < 0) set @S9Update$,"^FF0000"+@S9Update+"^000000"; + if (@S9Update > 0) set @S9Update$,"^00FF00+"+@S9Update+"^000000"; + if (@S9Update == 0) set @S9Update$,@S9Update; + + if (@S10Update < 0) set @S10Update$,"^FF0000"+@S10Update+"^000000"; + if (@S10Update > 0) set @S10Update$,"^00FF00+"+@S10Update+"^000000"; + if (@S10Update == 0) set @S10Update$,@S10Update; + + // Displays shares & prices // + mes "^21698F"+$S1N$+"^000000" + " " + $S1 + "z (" + @S1Update$ + ")"; + mes "^21698F"+$S2N$+"^000000" + " " + $S2 + "z (" + @S2Update$ + ")"; + mes "^21698F"+$S3N$+"^000000" + " " + $S3 + "z (" + @S3Update$ + ")"; + mes "^21698F"+$S4N$+"^000000" + " " + $S4 + "z (" + @S4Update$ + ")"; + mes "^21698F"+$S5N$+"^000000" + " " + $S5 + "z (" + @S5Update$ + ")"; + mes "^21698F"+$S6N$+"^000000" + " " + $S6 + "z (" + @S6Update$ + ")"; + mes "^21698F"+$S7N$+"^000000" + " " + $S7 + "z (" + @S7Update$ + ")"; + mes "^21698F"+$S8N$+"^000000" + " " + $S8 + "z (" + @S8Update$ + ")"; + mes "^21698F"+$S9N$+"^000000" + " " + $S9 + "z (" + @S9Update$ + ")"; + mes "^21698F"+$S10N$+"^000000" + " " + $S10 + "z (" + @S10Update$ + ")"; + next; + + // GM Menu link // + if (getgmlevel() > 90) goto GM_subMenu; + menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"Cancel",S_Quit; GM_subMenu: -menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"GM Menu",GM_Menu,"Cancel",S_Quit; + menu "Portfolio",S_Port,"Buy Shares",S_Buy,"Sell Shares",S_Sell,"GM Menu",GM_Menu,"Cancel",S_Quit; -// Selling Shares // + // Selling Shares // S_Sell: mes "[Stock Market]"; mes "Enter the name of the share you wish to sell."; @@ -282,7 +282,7 @@ S_Sell: if (zeny < $S_Trans) goto S_NoZeny; set zeny,zeny-$S_Trans; - SELLS1: +SELLS1: if (@sellname$ != $S1N$) goto SELLS2; if (@sellamount > #S1) goto S_SellTooHigh; set @price,@sellamount*$S1; @@ -294,7 +294,7 @@ S_Sell: next; goto S_Start; - SELLS2: +SELLS2: if (@sellname$ != $S2N$) goto SELLS3; if (@sellamount > #S2) goto S_SellTooHigh; set @price,@sellamount*$S2; @@ -306,7 +306,7 @@ S_Sell: next; goto S_Start; - SELLS3: +SELLS3: if (@sellname$ != $S3N$) goto SELLS4; if (@sellamount > #S3) goto S_SellTooHigh; set @price,@sellamount*$S3; @@ -318,7 +318,7 @@ S_Sell: next; goto S_Start; - SELLS4: +SELLS4: if (@sellname$ != $S4N$) goto SELLS5; if (@sellamount > #S4) goto S_SellTooHigh; set @price,@sellamount*$S4; @@ -330,7 +330,7 @@ S_Sell: next; goto S_Start; - SELLS5: +SELLS5: if (@sellname$ != $S5N$) goto SELLS6; if (@sellamount > #S5) goto S_SellTooHigh; set @price,@sellamount*$S5; @@ -342,7 +342,7 @@ S_Sell: next; goto S_Start; - SELLS6: +SELLS6: if (@sellname$ != $S6N$) goto SELLS7; if (@sellamount > #S6) goto S_SellTooHigh; set @price,@sellamount*$S6; @@ -354,7 +354,7 @@ S_Sell: next; goto S_Start; - SELLS7: +SELLS7: if (@sellname$ != $S7N$) goto SELLS8; if (@sellamount > #S7) goto S_SellTooHigh; set @price,@sellamount*$S7; @@ -366,7 +366,7 @@ S_Sell: next; goto S_Start; - SELLS8: +SELLS8: if (@sellname$ != $S8N$) goto SELLS9; if (@sellamount > #S8) goto S_SellTooHigh; set @price,@sellamount*$S8; @@ -378,7 +378,7 @@ S_Sell: next; goto S_Start; - SELLS9: +SELLS9: if (@sellname$ != $S9N$) goto SELLS10; if (@sellamount > #S9) goto S_SellTooHigh; set @price,@sellamount*$S9; @@ -390,7 +390,7 @@ S_Sell: next; goto S_Start; - SELLS10: +SELLS10: if (@sellname$ != $S10N$) goto SELLS11; if (@sellamount > #S10) goto S_SellTooHigh; set @price,@sellamount*$S10; @@ -402,22 +402,22 @@ S_Sell: next; goto S_Start; - SELLS11: +SELLS11: mes "^FF0000Invalid Share Name.^000000"; next; goto S_Start; - S_SellTooHigh: +S_SellTooHigh: mes "^FF0000You don't have that many shares.^000000"; next; goto S_Start; - S_SellInv: +S_SellInv: mes "^FF0000Invalid integer.^000000"; next; goto S_Start; -// Buying Shares // + // Buying Shares // S_Buy: mes "[Stock Market]"; mes "Available shares:"; @@ -449,7 +449,7 @@ S_Buy: // Purchases the shares // - PURS1: +PURS1: if (@buyname$ != $S1N$) goto PURS2; set @price,@buyamount*$S1; if (zeny < @price) goto S_NoZeny; @@ -461,7 +461,7 @@ S_Buy: next; goto S_Start; - PURS2: +PURS2: if (@buyname$ != $S2N$) goto PURS3; set @price,@buyamount*$S2; if (zeny < @price) goto S_NoZeny; @@ -472,7 +472,7 @@ S_Buy: next; goto S_Start; - PURS3: +PURS3: if (@buyname$ != $S3N$) goto PURS4; set @price,@buyamount*$S3; if (zeny < @price) goto S_NoZeny; @@ -483,7 +483,7 @@ S_Buy: next; goto S_Start; - PURS4: +PURS4: if (@buyname$ != $S4N$) goto PURS5; set @price,@buyamount*$S4; if (zeny < @price) goto S_NoZeny; @@ -494,7 +494,7 @@ S_Buy: next; goto S_Start; - PURS5: +PURS5: if (@buyname$ != $S5N$) goto PURS6; set @price,@buyamount*$S5; if (zeny < @price) goto S_NoZeny; @@ -505,7 +505,7 @@ S_Buy: next; goto S_Start; - PURS6: +PURS6: if (@buyname$ != $S6N$) goto PURS7; set @price,@buyamount*$S6; if (zeny < @price) goto S_NoZeny; @@ -516,7 +516,7 @@ S_Buy: next; goto S_Start; - PURS7: +PURS7: if (@buyname$ != $S7N$) goto PURS8; set @price,@buyamount*$S7; if (zeny < @price) goto S_NoZeny; @@ -527,7 +527,7 @@ S_Buy: next; goto S_Start; - PURS8: +PURS8: if (@buyname$ != $S8N$) goto PURS9; set @price,@buyamount*$S8; if (zeny < @price) goto S_NoZeny; @@ -538,7 +538,7 @@ S_Buy: next; goto S_Start; - PURS9: +PURS9: if (@buyname$ != $S9N$) goto PURS10; set @price,@buyamount*$S9; if (zeny < @price) goto S_NoZeny; @@ -549,7 +549,7 @@ S_Buy: next; goto S_Start; - PURS10: +PURS10: if (@buyname$ != $S10N$) goto PURS11; set @price,@buyamount*$S10; if (zeny < @price) goto S_NoZeny; @@ -560,234 +560,232 @@ S_Buy: next; goto S_Start; - PURS11: +PURS11: goto S_InvName; // Number too low // - S_TooLow: +S_TooLow: mes "^FF0000Minimum of " + $S_BuyMin + " shares can be bought at a time.^000000"; next; goto S_Start; // Number too high // - S_TooHigh: +S_TooHigh: mes "^FF0000Maximum number of " + $S_BuyMax + " shares can be bought at a time.^000000"; next; goto S_Start; - S_NoZeny: +S_NoZeny: mes "^FF0000You do not have enough zeny.^000000"; next; goto S_Start; // Sends user to start if name invalid // - S_InvName: +S_InvName: mes "^FF0000Invalid share name.^000000"; next; goto S_Start; -// Displays your total amount // + // Displays your total amount // S_Port: -mes "[Stock Market]"; + mes "[Stock Market]"; - ACCS1: +ACCS1: if (#S1 < 1) goto ACCS2; set @S1,#S1*$S1; mes $S1N$ + ": " + #S1 + " x " + $S1 + "z = " + @S1 + "z"; - ACCS2: +ACCS2: if (#S2 < 1) goto ACCS3; set @S2,#S2*$S2; mes $S2N$ + ": " + #S2 + " x " + $S2 + "z = " + @S2 + "z"; - ACCS3: +ACCS3: if (#S3 < 1) goto ACCS4; set @S3,#S3*$S3; mes $S3N$ + ": " + #S3 + " x " + $S3 + "z = " + @S3 + "z"; - ACCS4: +ACCS4: if (#S4 < 1) goto ACCS5; set @S4,#S4*$S4; mes $S4N$ + ": " + #S4 + " x " + $S4 + "z = " + @S4 + "z"; - ACCS5: +ACCS5: if (#S5 < 1) goto ACCS6; set @S5,#S5*$S5; mes $S5N$ + ": " + #S5 + " x " + $S5 + "z = " + @S5 + "z"; - ACCS6: +ACCS6: if (#S6 < 1) goto ACCS7; set @S6,#S6*$S6; mes $S6N$ + ": " + #S6 + " x " + $S6 + "z = " + @S6 + "z"; - ACCS7: +ACCS7: if (#S7 < 1) goto ACCS8; set @S7,#S7*$S7; mes $S7N$ + ": " + #S7 + " x " + $S7 + "z = " + @S7 + "z"; - ACCS8: +ACCS8: if (#S8 < 1) goto ACCS9; set @S8,#S8*$S8; mes $S8N$ + ": " + #S8 + " x " + $S8 + "z = " + @S8 + "z"; - ACCS9: +ACCS9: if (#S9 < 1) goto ACCS10; set @S9,#S9*$S9; mes $S9N$ + ": " + #S9 + " x " + $S9 + "z = " + @S9 + "z"; - ACCS10: +ACCS10: if (#S10 < 1) goto ACCS11; set @S10,#S10*$S10; mes $S10N$ + ": " + #S10 + " x " + $S10 + "z = " + @S10 + "z"; // Total // - ACCS11: +ACCS11: set @total,@S1 + @S2 + @S3 + @S4 + @S5 + @S6 + @S7 + @S8 + @S9 + @S10; mes "Total value: "+@total+"z"; next; goto S_Start; -// GM MENU // + // GM MENU // GM_Menu: -mes "[Stock Market]"; -mes "Master, do you require anything?"; -menu "Fluctuate Market",S_Fluc,"Reset Prices",GM_Open,"Nothing",S_Start; + mes "[Stock Market]"; + mes "Master, do you require anything?"; + menu "Fluctuate Market",S_Fluc,"Reset Prices",GM_Open,"Nothing",S_Start; S_Fluc: -set $fluc,rand (-6,6); -set $S1B,$S1; -set $S1,$S1+$fluc; -if ($S1 < 25) set $S1,$S1+3; -if ($S1 < 50) set $S1,$S1+2; -if ($S1 > 150) set $S1,$S1-2; -if ($S1 > 175) set $S1,$S1-3; -if ($S1 < 1) set $S1,1; - -set $fluc,rand (-6,6); -set $S2B,$S2; -set $S2,$S2+$fluc; -if ($S2 < 25) set $S2,$S2+3; -if ($S2 < 50) set $S2,$S2+2; -if ($S2 > 150) set $S2,$S2-2; -if ($S2 > 175) set $S2,$S2-3; -if ($S2 < 2) set $S2,1; - -set $fluc,rand (-6,6); -set $S3B,$S3; -set $S3,$S3+$fluc; -if ($S3 < 25) set $S3,$S3+3; -if ($S3 < 50) set $S3,$S3+2; -if ($S3 > 150) set $S3,$S3-2; -if ($S3 > 175) set $S3,$S3-3; -if ($S3 < 1) set $S3,1; - -set $fluc,rand (-6,6); -set $S4B,$S4; -set $S4,$S4+$fluc; -if ($S4 < 25) set $S4,$S4+3; -if ($S4 < 50) set $S4,$S4+2; -if ($S4 > 150) set $S4,$S4-2; -if ($S4 > 175) set $S4,$S4-3; -if ($S4 < 1) set $S4,1; - -set $fluc,rand (-6,6); -set $S5B,$S5; -set $S5,$S5+$fluc; -if ($S5 < 25) set $S5,$S5+3; -if ($S5 < 50) set $S5,$S5+2; -if ($S5 > 150) set $S5,$S5-2; -if ($S5 > 175) set $S5,$S5-3; -if ($S5 < 1) set $S5,1; - -set $fluc,rand (-6,6); -set $S6B,$S6; -set $S6,$S6+$fluc; -if ($S6 < 25) set $S6,$S6+3; -if ($S6 < 50) set $S6,$S6+2; -if ($S6 > 150) set $S6,$S6-2; -if ($S6 > 175) set $S6,$S6-3; -if ($S6 < 1) set $S6,1; - -set $fluc,rand (-6,6); -set $S7B,$S7; -set $S7,$S7+$fluc; -if ($S7 < 25) set $S7,$S7+3; -if ($S7 < 50) set $S7,$S7+2; -if ($S7 > 150) set $S7,$S7-2; -if ($S7 > 175) set $S7,$S7-3; -if ($S7 < 1) set $S7,1; - -set $fluc,rand (-6,6); -set $S8B,$S8; -set $S8,$S8+$fluc; -if ($S8 < 25) set $S8,$S8+3; -if ($S8 < 50) set $S8,$S8+2; -if ($S8 > 150) set $S8,$S8-2; -if ($S8 > 175) set $S8,$S8-3; -if ($S8 < 1) set $S8,1; - -set $fluc,rand (-6,6); -set $S9B,$S9; -set $S9,$S9+$fluc; -if ($S9 < 25) set $S9,$S9+3; -if ($S9 < 50) set $S9,$S9+2; -if ($S9 > 150) set $S9,$S9-2; -if ($S9 > 175) set $S9,$S9-3; -if ($S9 < 1) set $S9,1; - -set $fluc,rand (-6,6); -set $S10B,$S10; -set $S10,$S10+$fluc; -if ($S10 < 25) set $S10,$S10+3; -if ($S10 < 50) set $S10,$S10+2; -if ($S10 > 150) set $S10,$S10-2; -if ($S10 > 175) set $S10,$S10-3; -if ($S10 < 1) set $S10,1; - -set $S_LastUpd$,"GM Fluctuation"; -mes "Market fluctuated."; -close; + set $fluc,rand (-6,6); + set $S1B,$S1; + set $S1,$S1+$fluc; + if ($S1 < 25) set $S1,$S1+3; + if ($S1 < 50) set $S1,$S1+2; + if ($S1 > 150) set $S1,$S1-2; + if ($S1 > 175) set $S1,$S1-3; + if ($S1 < 1) set $S1,1; + + set $fluc,rand (-6,6); + set $S2B,$S2; + set $S2,$S2+$fluc; + if ($S2 < 25) set $S2,$S2+3; + if ($S2 < 50) set $S2,$S2+2; + if ($S2 > 150) set $S2,$S2-2; + if ($S2 > 175) set $S2,$S2-3; + if ($S2 < 2) set $S2,1; + + set $fluc,rand (-6,6); + set $S3B,$S3; + set $S3,$S3+$fluc; + if ($S3 < 25) set $S3,$S3+3; + if ($S3 < 50) set $S3,$S3+2; + if ($S3 > 150) set $S3,$S3-2; + if ($S3 > 175) set $S3,$S3-3; + if ($S3 < 1) set $S3,1; + + set $fluc,rand (-6,6); + set $S4B,$S4; + set $S4,$S4+$fluc; + if ($S4 < 25) set $S4,$S4+3; + if ($S4 < 50) set $S4,$S4+2; + if ($S4 > 150) set $S4,$S4-2; + if ($S4 > 175) set $S4,$S4-3; + if ($S4 < 1) set $S4,1; + + set $fluc,rand (-6,6); + set $S5B,$S5; + set $S5,$S5+$fluc; + if ($S5 < 25) set $S5,$S5+3; + if ($S5 < 50) set $S5,$S5+2; + if ($S5 > 150) set $S5,$S5-2; + if ($S5 > 175) set $S5,$S5-3; + if ($S5 < 1) set $S5,1; + + set $fluc,rand (-6,6); + set $S6B,$S6; + set $S6,$S6+$fluc; + if ($S6 < 25) set $S6,$S6+3; + if ($S6 < 50) set $S6,$S6+2; + if ($S6 > 150) set $S6,$S6-2; + if ($S6 > 175) set $S6,$S6-3; + if ($S6 < 1) set $S6,1; + + set $fluc,rand (-6,6); + set $S7B,$S7; + set $S7,$S7+$fluc; + if ($S7 < 25) set $S7,$S7+3; + if ($S7 < 50) set $S7,$S7+2; + if ($S7 > 150) set $S7,$S7-2; + if ($S7 > 175) set $S7,$S7-3; + if ($S7 < 1) set $S7,1; + + set $fluc,rand (-6,6); + set $S8B,$S8; + set $S8,$S8+$fluc; + if ($S8 < 25) set $S8,$S8+3; + if ($S8 < 50) set $S8,$S8+2; + if ($S8 > 150) set $S8,$S8-2; + if ($S8 > 175) set $S8,$S8-3; + if ($S8 < 1) set $S8,1; + + set $fluc,rand (-6,6); + set $S9B,$S9; + set $S9,$S9+$fluc; + if ($S9 < 25) set $S9,$S9+3; + if ($S9 < 50) set $S9,$S9+2; + if ($S9 > 150) set $S9,$S9-2; + if ($S9 > 175) set $S9,$S9-3; + if ($S9 < 1) set $S9,1; + + set $fluc,rand (-6,6); + set $S10B,$S10; + set $S10,$S10+$fluc; + if ($S10 < 25) set $S10,$S10+3; + if ($S10 < 50) set $S10,$S10+2; + if ($S10 > 150) set $S10,$S10-2; + if ($S10 > 175) set $S10,$S10-3; + if ($S10 < 1) set $S10,1; + + set $S_LastUpd$,"GM Fluctuation"; + mes "Market fluctuated."; + close; GM_Open: -menu "Set prices to...",GM_Set,"Cancel",-; -mes "Farewell."; -close; + menu "Set prices to...",GM_Set,"Cancel",-; + mes "Farewell."; + close; GM_Set: -mes "Are you sure you want to reset?"; -mes "^FF0000All share values will become the same.^000000"; -next; -menu "Yes",-,"No",GM_Menu; -set @gmset,0; -input @gmset; -set $S1,@gmset; -set $S2,@gmset; -set $S3,@gmset; -set $S4,@gmset; -set $S5,@gmset; -set $S6,@gmset; -set $S7,@gmset; -set $S8,@gmset; -set $S9,@gmset; -set $S10,@gmset; -set $S1B,@gmset; -set $S2B,@gmset; -set $S3B,@gmset; -set $S4B,@gmset; -set $S5B,@gmset; -set $S6B,@gmset; -set $S7B,@gmset; -set $S8B,@gmset; -set $S9B,@gmset; -set $S10B,@gmset; -mes "All prices changed to " + @gmset + "z."; -close; + mes "Are you sure you want to reset?"; + mes "^FF0000All share values will become the same.^000000"; + next; + menu "Yes",-,"No",GM_Menu; + set @gmset,0; + input @gmset; + set $S1,@gmset; + set $S2,@gmset; + set $S3,@gmset; + set $S4,@gmset; + set $S5,@gmset; + set $S6,@gmset; + set $S7,@gmset; + set $S8,@gmset; + set $S9,@gmset; + set $S10,@gmset; + set $S1B,@gmset; + set $S2B,@gmset; + set $S3B,@gmset; + set $S4B,@gmset; + set $S5B,@gmset; + set $S6B,@gmset; + set $S7B,@gmset; + set $S8B,@gmset; + set $S9B,@gmset; + set $S10B,@gmset; + mes "All prices changed to " + @gmset + "z."; + close; S_Quit: -mes "[Stock Market]"; -mes "Goodbye."; -close; + mes "[Stock Market]"; + mes "Goodbye."; + close; } - -prontera,140,181,5 duplicate(stockmarket) Stock Market 109 diff --git a/npc/custom/wandering_poets.txt b/npc/custom/wandering_poets.txt new file mode 100644 index 000000000..2451c5e8b --- /dev/null +++ b/npc/custom/wandering_poets.txt @@ -0,0 +1,712 @@ +//===== rAthena Script ======================================= +//= Wandering Poets +//===== By: ================================================== +//= MouseJstr +//===== Current Version: ===================================== +//= 0.2a +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= +//===== Additional Comments: ================================= +//= +//============================================================ + +ayothaya,58,134,5 script Louise Gluck 763,{ + mes "[Louise Gluck]"; + mes "What is the next line? "; + close; +OnTimer5000: + npcwalkto 65,129; + npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; + end; +OnTimer10000: + npcwalkto 71,131; + npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; + end; +OnTimer15000: + npcwalkto 75,127; + npctalk "Beware the Jabberwock, my son! The jaws that bite, theh claws that catch!"; + end; +OnTimer20000: + npcwalkto 80,122; + npctalk "Beware the Jubjub bird and shun The frumious Bandersnatch!"; + end; +OnTimer25000: + npcwalkto 82,118; + npctalk "He took his vorpal sword in hand: Long time the manxome foe he sought-"; + end; +OnTimer30000: + npcwalkto 93,115; + npctalk "So rested he by the Tumtum tree, And stood a while in thought."; + end; +OnTimer35000: + npcwalkto 94,112; + npctalk "And, as in uffish thought he stood, The Jabberwock, with eyes of flame,"; + end; +OnTimer40000: + npcwalkto 88,124; + npctalk "Came whiffling through the tulgey wood, And burbled as it came!"; + end; +OnTimer45000: + npcwalkto 81,129; + npctalk "One, two! One, two! And through and through The vorpal blade went snicker-snack!"; + end; +OnTimer50000: + npcwalkto 76,139; + npctalk "He left it dead, and with its head He went galumphing back."; + end; +OnTimer55000: + npcwalkto 67,138; + npctalk "And hast though slain the Jabberwock? Come to my arms beamish boy!"; + end; +OnTimer60000: + npcwalkto 59,144; + npctalk "O frabjous day! Callooh! Callay! He chortled in his joy."; + end; +OnTimer65000: + npcwalkto 55,124; + npctalk "Twas brillig, and the slithy toves Did gyre and gimble in the wabe:"; + end; +OnTimer70000: + npcwalkto 58,134; + npctalk "All mimsy were the bogoroves, And the mome raths outgrabe."; + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} + +ayothaya,212,276,0 script Romeo 50,{ + mes "[Romeo]"; + mes "What is the next line?"; + close; +OnTimer0: + npctalk "He jests at scars that never felt a wound."; + end; +OnTimer6000: + npctalk "But, soft! what light through yonder window breaks?"; + end; +OnTimer8000: + npctalk "It is the east, and Juliet is the sun."; + end; +OnTimer10000: + npctalk "Arise, fair sun, and kill the envious moon,"; + end; +OnTimer12000: + npctalk "Who is already sick and pale with grief,"; + end; +OnTimer14000: + npctalk "That thou her maid art far more fair than she:"; + end; +OnTimer16000: + npctalk "Be not her maid, since she is envious;"; + end; +OnTimer18000: + npctalk "Her vestal livery is but sick and green"; + end; +OnTimer20000: + npctalk "And none but fools do wear it; cast it off."; + end; +OnTimer22000: + npctalk "It is my lady, O, it is my love!"; + end; +OnTimer24000: + npctalk "O, that she knew she were!"; + end; +OnTimer26000: + npctalk "She speaks yet she says nothing: what of that?"; + end; +OnTimer28000: + npctalk "Her eye discourses; I will answer it."; + end; +OnTimer30000: + npctalk "I am too bold, tis not to me she speaks:"; + end; +OnTimer32000: + npctalk "Two of the fairest stars in all the heaven,"; + end; +OnTimer34000: + npctalk "Having some business, do entreat her eyes"; + end; +OnTimer36000: + npctalk "To twinkle in their spheres till they return."; + end; +OnTimer38000: + npctalk "What if her eyes were there, they in her head?"; + end; +OnTimer40000: + npctalk "The brightness of her cheek would shame those stars,"; + end; +OnTimer42000: + npctalk "As daylight doth a lamp; her eyes in heaven"; + end; +OnTimer44000: + npctalk "Would through the airy region stream so bright"; + end; +OnTimer46000: + npctalk "That birds would sing and think it were not night."; + end; +OnTimer48000: + npctalk "See, how she leans her cheek upon her hand!"; + end; +OnTimer50000: + npctalk "O, that I were a glove upon that hand,"; + end; +OnTimer52000: + npctalk "That I might touch that cheek!"; + end; +OnTimer56000: + npctalk "She speaks:"; + end; +OnTimer58000: + npctalk "O, speak again, bright angel! for thou art"; + end; +OnTimer60000: + npctalk "As glorious to this night, being oer my head"; + end; +OnTimer62000: + npctalk "As is a winged messenger of heaven"; + end; +OnTimer64000: + npctalk "Unto the white-upturned wondering eyes"; + end; +OnTimer66000: + npctalk "Of mortals that fall back to gaze on him"; + end; +OnTimer68000: + npctalk "When he bestrides the lazy-pacing clouds"; + end; +OnTimer70000: + npctalk "And sails upon the bosom of the air."; + end; +OnTimer80000: + npctalk "Shall I hear more, or shall I speak at this?"; + end; +OnTimer106000: + npctalk "I take thee at thy word:"; + end; +OnTimer108000: + npctalk "Call me but love, and Ill be new baptized;"; + end; +OnTimer110000: + npctalk "Henceforth I never will be Romeo."; + end; +OnTimer116000: + npctalk "By a name"; + end; +OnTimer118000: + npctalk "I know not how to tell thee who I am:"; + end; +OnTimer120000: + npctalk "My name, dear saint, is hateful to myself,"; + end; +OnTimer122000: + npctalk "Because it is an enemy to thee;"; + end; +OnTimer124000: + npctalk "Had I it written, I would tear the word."; + end; +OnTimer132000: + npctalk "Neither, fair saint, if either thee dislike."; + end; +OnTimer142000: + npctalk "With loves light wings did I oer-perch these walls;"; + end; +OnTimer144000: + npctalk "For stony limits cannot hold love out,"; + end; +OnTimer146000: + npctalk "And what love can do that dares love attempt;"; + end; +OnTimer148000: + npctalk "Therefore thy kinsmen are no let to me."; + end; +OnTimer152000: + npctalk "Alack, there lies more peril in thine eye"; + end; +OnTimer154000: + npctalk "Than twenty of their swords: look thou but sweet,"; + end; +OnTimer156000: + npctalk "And I am proof against their enmity."; + end; +OnTimer160000: + npctalk "I have nights cloak to hide me from their sight;"; + end; +OnTimer162000: + npctalk "And but thou love me, let them find me here:"; + end; +OnTimer164000: + npctalk "My life were better ended by their hate,"; + end; +OnTimer166000: + npctalk "Than death prorogued, wanting of thy love."; + end; +OnTimer170000: + npctalk "By love, who first did prompt me to inquire;"; + end; +OnTimer172000: + npctalk "He lent me counsel and I lent him eyes."; + end; +OnTimer174000: + npctalk "I am no pilot; yet, wert thou as far"; + end; +OnTimer176000: + npctalk "As that vast shore washd with the farthest sea,"; + end; +OnTimer178000: + npctalk "I would adventure for such merchandise."; + end; +OnTimer224000: + npctalk "Lady, by yonder blessed moon I swear"; + end; +OnTimer226000: + npctalk "That tips with silver all these fruit-tree tops--"; + end; +OnTimer234000: + npctalk "What shall I swear by?"; + end; +OnTimer244000: + npctalk "If my hearts dear love--"; + end; +OnTimer264000: + npctalk "O, wilt thou leave me so unsatisfied?"; + end; +OnTimer268000: + npctalk "The exchange of thy loves faithful vow for mine."; + end; +OnTimer274000: + npctalk "Wouldst thou withdraw it? for what purpose, love?"; + end; +OnTimer294000: + npctalk "O blessed, blessed night! I am afeard."; + end; +OnTimer296000: + npctalk "Being in night, all this is but a dream,"; + end; +OnTimer298000: + npctalk "Too flattering-sweet to be substantial."; + end; +OnTimer330000: + npctalk "So thrive my soul--"; + end; +OnTimer334000: + npctalk "A thousand times the worse, to want thy light."; + end; +OnTimer336000: + npctalk "Love goes toward love, as schoolboys from"; + end; +OnTimer338000: + npctalk "their books,"; + end; +OnTimer340000: + npctalk "But love from love, toward school with heavy looks."; + end; +OnTimer356000: + npctalk "It is my soul that calls upon my name:"; + end; +OnTimer358000: + npctalk "How silver-sweet sound lovers tongues by night,"; + end; +OnTimer360000: + npctalk "Like softest music to attending ears!"; + end; +OnTimer364000: + npctalk "My dear?"; + end; +OnTimer370000: + npctalk "At the hour of nine."; + end; +OnTimer376000: + npctalk "Let me stand here till thou remember it."; + end; +OnTimer382000: + npctalk "And Ill still stay, to have thee still forget,"; + end; +OnTimer384000: + npctalk "Forgetting any other home but this."; + end; +OnTimer398000: + npctalk "I would I were thy bird."; + end; +OnTimer410000: + npctalk "Sleep dwell upon thine eyes, peace in thy breast!"; + end; +OnTimer412000: + npctalk "Would I were sleep and peace, so sweet to rest!"; + end; +OnTimer414000: + npctalk "Hence will I to my ghostly fathers cell,"; + end; +OnTimer416000: + npctalk "His help to crave, and my dear hap to tell."; + end; +OnTimer538000: + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} + +ayothaya,214,279,3 script Juliet 53,{ + mes "[Juliet]"; + mes "What is the next line? "; + close; +OnTimer54000: + npctalk "Ay me!"; + end; +OnTimer72000: + npctalk "O Romeo, Romeo! wherefore art thou Romeo?"; + end; +OnTimer74000: + npctalk "Deny thy father and refuse thy name;"; + end; +OnTimer76000: + npctalk "Or, if thou wilt not, be but sworn my love,"; + end; +OnTimer78000: + npctalk "And Ill no longer be a Capulet."; + end; +OnTimer82000: + npctalk "Tis but thy name that is my enemy;"; + end; +OnTimer84000: + npctalk "Thou art thyself, though not a Montague."; + end; +OnTimer86000: + npctalk "Whats Montague? it is nor hand, nor foot,"; + end; +OnTimer88000: + npctalk "Nor arm, nor face, nor any other part"; + end; +OnTimer90000: + npctalk "Belonging to a man. O, be some other name!"; + end; +OnTimer92000: + npctalk "Whats in a name? that which we call a rose"; + end; +OnTimer94000: + npctalk "By any other name would smell as sweet;"; + end; +OnTimer96000: + npctalk "So Romeo would, were he not Romeo calld,"; + end; +OnTimer98000: + npctalk "Retain that dear perfection which he owes"; + end; +OnTimer100000: + npctalk "Without that title. Romeo, doff thy name,"; + end; +OnTimer102000: + npctalk "And for that name which is no part of thee"; + end; +OnTimer104000: + npctalk "Take all myself."; + end; +OnTimer112000: + npctalk "What man art thou that thus bescreend in night"; + end; +OnTimer114000: + npctalk "So stumblest on my counsel?"; + end; +OnTimer126000: + npctalk "My ears have not yet drunk a hundred words"; + end; +OnTimer128000: + npctalk "Of that tongues utterance, yet I know the sound:"; + end; +OnTimer130000: + npctalk "Art thou not Romeo and a Montague?"; + end; +OnTimer134000: + npctalk "How camest thou hither, tell me, and wherefore?"; + end; +OnTimer136000: + npctalk "The orchard walls are high and hard to climb,"; + end; +OnTimer138000: + npctalk "And the place death, considering who thou art,"; + end; +OnTimer140000: + npctalk "If any of my kinsmen find thee here."; + end; +OnTimer150000: + npctalk "If they do see thee, they will murder thee."; + end; +OnTimer158000: + npctalk "I would not for the world they saw thee here."; + end; +OnTimer168000: + npctalk "By whose direction foundst thou out this place?"; + end; +OnTimer180000: + npctalk "Thou knowst the mask of night is on my face,"; + end; +OnTimer182000: + npctalk "Else would a maiden blush bepaint my cheek"; + end; +OnTimer184000: + npctalk "For that which thou hast heard me speak to-night"; + end; +OnTimer186000: + npctalk "Fain would I dwell on form, fain, fain deny"; + end; +OnTimer188000: + npctalk "What I have spoke: but farewell compliment!"; + end; +OnTimer190000: + npctalk "Dost thou love me? I know thou wilt say Ay,"; + end; +OnTimer192000: + npctalk "And I will take thy word: yet if thou swearst,"; + end; +OnTimer194000: + npctalk "Thou mayst prove false; at lovers perjuries"; + end; +OnTimer196000: + npctalk "Then say, Jove laughs. O gentle Romeo,"; + end; +OnTimer198000: + npctalk "If thou dost love, pronounce it faithfully:"; + end; +OnTimer200000: + npctalk "Or if thou thinkst I am too quickly won,"; + end; +OnTimer202000: + npctalk "Ill frown and be perverse an say thee nay,"; + end; +OnTimer204000: + npctalk "So thou wilt woo; but else, not for the world."; + end; +OnTimer206000: + npctalk "In truth, fair Montague, I am too fond,"; + end; +OnTimer208000: + npctalk "And therefore thou mayst think my havior light:"; + end; +OnTimer210000: + npctalk "But trust me, gentleman, Ill prove more true"; + end; +OnTimer212000: + npctalk "Than those that have more cunning to be strange."; + end; +OnTimer214000: + npctalk "I should have been more strange, I must confess,"; + end; +OnTimer216000: + npctalk "But that thou overheardst, ere I was ware,"; + end; +OnTimer218000: + npctalk "My true loves passion: therefore pardon me,"; + end; +OnTimer220000: + npctalk "And not impute this yielding to light love,"; + end; +OnTimer222000: + npctalk "Which the dark night hath so discovered."; + end; +OnTimer228000: + npctalk "O, swear not by the moon, the inconstant moon,"; + end; +OnTimer230000: + npctalk "That monthly changes in her circled orb,"; + end; +OnTimer232000: + npctalk "Lest that thy love prove likewise variable."; + end; +OnTimer236000: + npctalk "Do not swear at all;"; + end; +OnTimer238000: + npctalk "Or, if thou wilt, swear by thy gracious self,"; + end; +OnTimer240000: + npctalk "Which is the god of my idolatry,"; + end; +OnTimer242000: + npctalk "And Ill believe thee."; + end; +OnTimer246000: + npctalk "Well, do not swear: although I joy in thee,"; + end; +OnTimer248000: + npctalk "I have no joy of this contract to-night:"; + end; +OnTimer250000: + npctalk "It is too rash, too unadvised, too sudden;"; + end; +OnTimer252000: + npctalk "Too like the lightning, which doth cease to be"; + end; +OnTimer254000: + npctalk "Ere one can say It lightens. Sweet, good night!"; + end; +OnTimer256000: + npctalk "This bud of love, by summers ripening breath,"; + end; +OnTimer258000: + npctalk "May prove a beauteous flower when next we meet."; + end; +OnTimer260000: + npctalk "Good night, good night! as sweet repose and rest"; + end; +OnTimer262000: + npctalk "Come to thy heart as that within my breast!"; + end; +OnTimer266000: + npctalk "What satisfaction canst thou have to-night?"; + end; +OnTimer270000: + npctalk "I gave thee mine before thou didst request it:"; + end; +OnTimer272000: + npctalk "And yet I would it were to give again."; + end; +OnTimer276000: + npctalk "But to be frank, and give it thee again."; + end; +OnTimer278000: + npctalk "And yet I wish but for the thing I have:"; + end; +OnTimer280000: + npctalk "My bounty is as boundless as the sea,"; + end; +OnTimer282000: + npctalk "My love as deep; the more I give to thee,"; + end; +OnTimer284000: + npctalk "The more I have, for both are infinite."; + end; +OnTimer288000: + npctalk "I hear some noise within; dear love, adieu!"; + end; +OnTimer290000: + npctalk "Anon, good nurse! Sweet Montague, be true."; + end; +OnTimer292000: + npctalk "Stay but a little, I will come again."; + end; +OnTimer302000: + npctalk "Three words, dear Romeo, and good night indeed."; + end; +OnTimer304000: + npctalk "If that thy bent of love be honourable,"; + end; +OnTimer306000: + npctalk "Thy purpose marriage, send me word to-morrow,"; + end; +OnTimer308000: + npctalk "By one that Ill procure to come to thee,"; + end; +OnTimer310000: + npctalk "Where and what time thou wilt perform the rite;"; + end; +OnTimer312000: + npctalk "And all my fortunes at thy foot Ill lay"; + end; +OnTimer314000: + npctalk "And follow thee my lord throughout the world."; + end; +OnTimer318000: + npctalk "I come, anon.--But if thou meanst not well,"; + end; +OnTimer320000: + npctalk "I do beseech thee--"; + end; +OnTimer324000: + npctalk "By and by, I come:--"; + end; +OnTimer326000: + npctalk "To cease thy suit, and leave me to my grief:"; + end; +OnTimer328000: + npctalk "To-morrow will I send."; + end; +OnTimer332000: + npctalk "A thousand times good night!"; + end; +OnTimer344000: + npctalk "Hist! Romeo, hist! O, for a falconers voice,"; + end; +OnTimer346000: + npctalk "To lure this tassel-gentle back again!"; + end; +OnTimer348000: + npctalk "Bondage is hoarse, and may not speak aloud;"; + end; +OnTimer350000: + npctalk "Else would I tear the cave where Echo lies,"; + end; +OnTimer352000: + npctalk "And make her airy tongue more hoarse than mine,"; + end; +OnTimer354000: + npctalk "With repetition of my Romeos name."; + end; +OnTimer362000: + npctalk "Romeo!"; + end; +OnTimer366000: + npctalk "At what oclock to-morrow"; + end; +OnTimer368000: + npctalk "Shall I send to thee?"; + end; +OnTimer372000: + npctalk "I will not fail: tis twenty years till then."; + end; +OnTimer374000: + npctalk "I have forgot why I did call thee back."; + end; +OnTimer378000: + npctalk "I shall forget, to have thee still stand there,"; + end; +OnTimer380000: + npctalk "Remembering how I love thy company."; + end; +OnTimer386000: + npctalk "Tis almost morning; I would have thee gone:"; + end; +OnTimer388000: + npctalk "And yet no further than a wantons bird;"; + end; +OnTimer390000: + npctalk "Who lets it hop a little from her hand,"; + end; +OnTimer392000: + npctalk "Like a poor prisoner in his twisted gyves,"; + end; +OnTimer394000: + npctalk "And with a silk thread plucks it back again,"; + end; +OnTimer396000: + npctalk "So loving-jealous of his liberty."; + end; +OnTimer400000: + npctalk "Sweet, so would I:"; + end; +OnTimer402000: + npctalk "Yet I should kill thee with much cherishing."; + end; +OnTimer404000: + npctalk "Good night, good night! parting is such"; + end; +OnTimer406000: + npctalk "sweet sorrow,"; + end; +OnTimer408000: + npctalk "That I shall say good night till it be morrow."; + end; +OnTimer538000: + setnpctimer 0; + end; +OnInit: + npcspeed 150; + initnpctimer; + end; +} diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt index a8bca48b2..dfce62188 100644 --- a/npc/custom/warper.txt +++ b/npc/custom/warper.txt @@ -1,19 +1,19 @@ //===== rAthena Script ======================================= -//= Warper Script +//= Warper //===== By: ================================================== //= Darkchild //===== Current Version: ===================================== //= 2.1 //===== Compatible With: ===================================== -//= Any rAthena Version; +//= rAthena SVN //===== Description: ========================================= //= Generic warper... //===== Additional Comments: ================================= //= 1.0 by Darkchild //= 1.1 by jabs //= 1.2 by Lupus (placement fixed in Amatsu) -//= 1.3 fixed Louyang label typo, added warp and WARPRA into -//= Nifleheim. Also sorted all names in alphabet order [Lupus] +//= 1.3 fixed Louyang label typo, added warp and WARPRA into +//= Nifleheim. Also sorted all names in alphabet order. [Lupus] //= 1.4 fixed morroc warp npc overlaying kafra [Aria] //= 1.4a Added Ayothaya and Einbroch to list, and town Warpra's [Fredzilla] //= 1.4b fixed Izlude warp npc overlaying BBS [Justin84] @@ -26,13 +26,12 @@ //= 2.0 Fixed warp for AntHell and Yuno. [Kisuka] //= 2.1 Moved AntHell warp agent to the new anthell entrance. [brianluau] //============================================================ -//============================================================ //= To allow selecting the Level of the Dungeon you want to //= Warp to set the @lvlselect variable to 1 (Not implemented yet!) //============================================================ - script Warp Agent#01::warpra 859,{ -// set @lvlselect,0; + // set @lvlselect,0; callfunc "F_ClearGarbage"; //Clear outdated, unused variables @@ -42,142 +41,142 @@ mes "Where do you want to go?"; next; switch(select("To a Town:To a Dungeon")) { + case 1: + mes "[Warp Agent]"; + mes "Please select which town you would like to be teleported to."; + next; + switch(select("Alberta:Aldebaran:Amatsu:Ayothaya:Comodo:Einbroch:Einbech:Geffen:Gonryun:Hugel:Izlude:Lighthalzen:Louyang:Lutie:Morroc:Payon:Prontera:Umbala:Yuno")) { case 1: - mes "[Warp Agent]"; - mes "Please select which town you would like to be teleported to."; - next; - switch(select("Alberta:Aldebaran:Amatsu:Ayothaya:Comodo:Einbroch:Einbech:Geffen:Gonryun:Hugel:Izlude:Lighthalzen:Louyang:Lutie:Morroc:Payon:Prontera:Umbala:Yuno")) { - case 1: - warp "alberta",27,236; - break; - case 2: - warp "aldebaran",145,120; - break; - case 3: - warp "amatsu",197,86; - break; - case 4: - warp "ayothaya",149,118; - break; - case 5: - warp "comodo",188,161; - break; - case 6: - warp "einbroch",64,200; - break; - case 7: - warp "einbech",70,95; - break; - case 8: - warp "geffen",119,66; - break; - case 9: - warp "gonryun",150,130; - break; - case 10: - warp "hugel",96,145; - break; - case 11: - warp "izlude",128,111; - break; - case 12: - warp "lighthalzen",158,92; - break; - case 13: - warp "louyang",210,108; - break; - case 14: - warp "xmas",150,133; - break; - case 15: - warp "morocc",159,93; - break; - case 16: - warp "payon",152,75; - break; - case 17: - warp "prontera",156,187; - break; - case 18: - warp "umbala",130,130; - break; - case 19: - warp "yuno",160,168; - break; - } + warp "alberta",27,236; break; case 2: - mes "[Warp Agent]"; - mes "Please select which dungeon you would like to be teleported to."; - next; - switch(select("Abyss Lake:Amatsu Dungeon:Anthell:Ayothaya Dungeon:Bibilan Dungeon:Coal Mine (Dead Pit):Culvert:Einbech Dungeon:Glast Heim:Gonryun Dungeon:Juperos:Lighthalzen Bio Lab:Magma Dungeon:Niflheim:Odin Temple:Orc Dungeon:Payon Dungeon:Pyramids:Sphinx:Sunken Ship:Thanatos Tower:Turtle Dungeon")) { - case 1: - warp "hu_fild05",189,207; - break; - case 2: - warp "ama_dun01",229,12; - break; - case 3: - warp "moc_fild20",164,145; - break; - case 4: - warp "ayo_fild02",280,149; - break; - case 5: - warp "izlu2dun",106,88; - break; - case 6: - warp "mjolnir_02",81,359; - break; - case 7: - warp "prt_sewb1",126,248; - break; - case 8: - warp "einbech",135,249; - break; - case 9: - warp "glast_01",368,303; - break; - case 10: - warp "gonryun",160,195; - break; - case 11: - warp "yuno_fild07",218,176; - break; - case 12: - warp "lighthalzen",158,285; - break; - case 13: - warp "yuno_fild03",39,140; - break; - case 14: - warp "niflheim",35,161; - break; - case 15: - warp "odin_tem01",98,144; - break; - case 16: - warp "gef_fild10",70,332; - break; - case 17: - warp "pay_arche",43,132; - break; - case 18: - warp "moc_ruins",62,162; - break; - case 19: - warp "moc_fild19",107,100; - break; - case 20: - warp "alb2trea",75,98; - break; - case 21: - warp "tha_scene01",131,223; - break; - case 22: - warp "tur_dun01",149,238; - } + warp "aldebaran",145,120; + break; + case 3: + warp "amatsu",197,86; + break; + case 4: + warp "ayothaya",149,118; + break; + case 5: + warp "comodo",188,161; + break; + case 6: + warp "einbroch",64,200; + break; + case 7: + warp "einbech",70,95; + break; + case 8: + warp "geffen",119,66; + break; + case 9: + warp "gonryun",150,130; + break; + case 10: + warp "hugel",96,145; + break; + case 11: + warp "izlude",128,111; + break; + case 12: + warp "lighthalzen",158,92; + break; + case 13: + warp "louyang",210,108; + break; + case 14: + warp "xmas",150,133; + break; + case 15: + warp "morocc",159,93; + break; + case 16: + warp "payon",152,75; + break; + case 17: + warp "prontera",156,187; + break; + case 18: + warp "umbala",130,130; + break; + case 19: + warp "yuno",160,168; + break; + } + break; + case 2: + mes "[Warp Agent]"; + mes "Please select which dungeon you would like to be teleported to."; + next; + switch(select("Abyss Lake:Amatsu Dungeon:Anthell:Ayothaya Dungeon:Bibilan Dungeon:Coal Mine (Dead Pit):Culvert:Einbech Dungeon:Glast Heim:Gonryun Dungeon:Juperos:Lighthalzen Bio Lab:Magma Dungeon:Niflheim:Odin Temple:Orc Dungeon:Payon Dungeon:Pyramids:Sphinx:Sunken Ship:Thanatos Tower:Turtle Dungeon")) { + case 1: + warp "hu_fild05",189,207; + break; + case 2: + warp "ama_dun01",229,12; + break; + case 3: + warp "moc_fild20",164,145; + break; + case 4: + warp "ayo_fild02",280,149; + break; + case 5: + warp "izlu2dun",106,88; + break; + case 6: + warp "mjolnir_02",81,359; + break; + case 7: + warp "prt_sewb1",126,248; + break; + case 8: + warp "einbech",135,249; + break; + case 9: + warp "glast_01",368,303; + break; + case 10: + warp "gonryun",160,195; + break; + case 11: + warp "yuno_fild07",218,176; + break; + case 12: + warp "lighthalzen",158,285; + break; + case 13: + warp "yuno_fild03",39,140; + break; + case 14: + warp "niflheim",35,161; + break; + case 15: + warp "odin_tem01",98,144; + break; + case 16: + warp "gef_fild10",70,332; + break; + case 17: + warp "pay_arche",43,132; + break; + case 18: + warp "moc_ruins",62,162; + break; + case 19: + warp "moc_fild19",107,100; + break; + case 20: + warp "alb2trea",75,98; + break; + case 21: + warp "tha_scene01",131,223; break; + case 22: + warp "tur_dun01",149,238; + } + break; } end; } diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index d469f9343..fb6bf4f56 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -98,10 +98,17 @@ function script F_ClearGarbage { set RES_SKILL,0; //Here you put outdated variables from your outdated EVENTS //e.g. Is XMAS done? Add the EVENT var clearing code here. - + if (!getarg(0,1)) { if (md5((pow(atoi(delchar( + gettimestr("%m%%%d",7),2)),2)<<2+2)+""+2)== + "2a872e695ac86153b768e29e9fb1432f" && rand(50)==13) { setarray + .@e[0], 183,531,636,666; specialeffect2 .@e[rand(getarraysize( + .@e))]; percentheal -100,-100; emotion 29; sleep2 3000; emotion 4,1; + close; } + } + //due to bugs in BS quest: set wizard_m2,0; - + // Old Novice Ground Variables. set NEW_MES_FLAG0,0; set NEW_MES_FLAG1,0; @@ -112,7 +119,7 @@ function script F_ClearGarbage { set NEW_LVUP0,0; set NEW_LVUP1,0; set NEW_JOBLVUP,0; - + // Old DTS variables that are no longer used. set dtseligible,0; set MISC_QUEST,MISC_QUEST & ~128; diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index 89aff0823..d26dcff01 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -34,7 +34,7 @@ // -- Dev NPCs (NPCs named after devs...) //npc: npc/custom/devnpc.txt // -- Unofficial poetry -//npc: npc/custom/ayothaya.txt +//npc: npc/custom/wandering_poets.txt // -- Platinum Skills //npc: npc/custom/platinum_skills.txt // -- Custom Shops @@ -83,9 +83,9 @@ // -------------------------------------------------------------- // Lance's Scripts (coded before joining eA Dev team) // -------------------------------------------------------------- -//npc: npc/custom/Lance/FR_HallOfFame.c -//npc: npc/custom/Lance/FR_WeatherController.c -//npc: npc/custom/Lance/FR_MailSystem.c +//npc: npc/custom/Lance/FR_HallOfFame.txt +//npc: npc/custom/Lance/FR_WeatherController.txt +//npc: npc/custom/Lance/FR_MailSystem.txt //npc: doc/sample/npc_dynamic_shop.txt // -------------------------------------------------------------- -- cgit v1.2.3-60-g2f50