diff options
author | euphyy <euphyy@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-12-28 08:38:28 +0000 |
---|---|---|
committer | euphyy <euphyy@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-12-28 08:38:28 +0000 |
commit | e9d2315e89adb7610a67d610bb99fd78fd403c37 (patch) | |
tree | 55b9666e1a9c5e8739b36f9cdd3ace5576298e0d | |
parent | 382f0b77bf009b938e578286b1048ccf8038d443 (diff) | |
download | hercules-e9d2315e89adb7610a67d610bb99fd78fd403c37.tar.gz hercules-e9d2315e89adb7610a67d610bb99fd78fd403c37.tar.bz2 hercules-e9d2315e89adb7610a67d610bb99fd78fd403c37.tar.xz hercules-e9d2315e89adb7610a67d610bb99fd78fd403c37.zip |
* Added a small portion of official Malangdo Episode scripts.
* Updated quest_db with translated Malangdo entries.
* Fixed strmobinfo() to output empty strings for 'name' instead of zeros (partly follow-up r17055).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17056 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | db/quest_db.txt | 105 | ||||
-rw-r--r-- | npc/custom/breeder.txt | 2 | ||||
-rw-r--r-- | npc/custom/healer.txt | 6 | ||||
-rw-r--r-- | npc/custom/itemmall.txt | 2 | ||||
-rw-r--r-- | npc/custom/jobmaster.txt | 71 | ||||
-rw-r--r-- | npc/custom/quests/hunting_missions.txt | 4 | ||||
-rw-r--r-- | npc/custom/stylist.txt | 8 | ||||
-rw-r--r-- | npc/custom/warper.txt | 19 | ||||
-rw-r--r-- | npc/re/cities/malangdo.txt | 124 | ||||
-rw-r--r-- | npc/re/quests/quests_malangdo.txt | 825 | ||||
-rw-r--r-- | npc/re/scripts_athena.conf | 2 | ||||
-rw-r--r-- | src/map/script.c | 5 |
12 files changed, 1118 insertions, 55 deletions
diff --git a/db/quest_db.txt b/db/quest_db.txt index a673f29a7..4f4ae93e3 100644 --- a/db/quest_db.txt +++ b/db/quest_db.txt @@ -20,6 +20,17 @@ 1014,0,0,0,0,0,0,0,"Job Change to Swordman" 1015,0,0,0,0,0,0,0,"Your first quest" 1016,0,0,0,0,0,0,0,"Gaining base levels" +1145,0,0,0,0,0,0,0,"Help the poor cat" +1146,0,0,0,0,0,0,0,"Help the poor cat" +1147,0,0,0,0,0,0,0,"Help the poor cat" +1148,0,0,0,0,0,0,0,"Help the poor cat" +1149,0,0,0,0,0,0,0,"Help the poor cat" +1150,0,0,0,0,0,0,0,"Help the poor cat" +1151,0,0,0,0,0,0,0,"Help the poor cat" +1152,86400,0,0,0,0,0,0,"Help the poor cat" +1153,0,0,0,0,0,0,0,"Help the poor cat" +1154,0,2197,20,0,0,0,0,"Help the poor cat" +1155,0,0,0,0,0,0,0,"Help the poor cat" 2000,0,0,0,0,0,0,0,"Job Change to Blacksmith" 2001,0,0,0,0,0,0,0,"Job Change to Blacksmith" 2002,0,0,0,0,0,0,0,"Job Change to Blacksmith" @@ -448,7 +459,6 @@ 5000,0,0,0,0,0,0,0,"The Crow of the Fate - 7" -// Dewata [Euphy] 5035,0,0,0,0,0,0,0,"Help the old man!" 5036,0,0,0,0,0,0,0,"Help the old man!" 5037,0,0,0,0,0,0,0,"Help the old man!" @@ -469,17 +479,31 @@ 5052,0,0,0,0,0,0,0,"Traditional Weapon" 5053,0,0,0,0,0,0,0,"Traditional Weapon" 5054,0,0,0,0,0,0,0,"Traditional Weapon" -9155,0,0,0,0,0,0,0,"Getting materials for the Jaty Crown" -9156,0,0,0,0,0,0,0,"Make the Jaty Crown" -9157,0,0,0,0,0,0,0,"Reward from Sage, Kasyapa" -9158,0,0,0,0,0,0,0,"Delivery of Good News(1)" -9159,0,0,0,0,0,0,0,"Back to Paiko" -9160,0,0,0,0,0,0,0,"Delivery of Good News(2)" -9161,0,0,0,0,0,0,0,"Back to Paiko" -9162,0,0,0,0,0,0,0,"Delivery of Good News(3)" -9163,0,0,0,0,0,0,0,"Back to Paiko" -9164,0,0,0,0,0,0,0,"Delivery of Good News(4)" -9165,0,0,0,0,0,0,0,"Reward from Paiko for success of Jaty Crown" +5058,0,0,0,0,0,0,0,"State of mind-(1)" +5059,0,0,0,0,0,0,0,"State of mind-(1)" +5060,180,0,0,0,0,0,0,"Cat Shock" +5061,0,0,0,0,0,0,0,"State of mind-(1)" +5062,0,0,0,0,0,0,0,"State of mind-(1)" +5063,0,0,0,0,0,0,0,"State of mind-(1)" +5064,0,0,0,0,0,0,0,"State of mind-(1)" +5065,0,0,0,0,0,0,0,"State of mind-(1)" +5066,0,0,0,0,0,0,0,"State of mind-(1)" +5067,0,0,0,0,0,0,0,"State of mind-(1)" +5068,72000,0,0,0,0,0,0,"State of mind-(1)" +5069,3600,0,0,0,0,0,0,"State of mind-(1)" +5070,86400,0,0,0,0,0,0,"Rock Paper Scissors" +5071,86400,0,0,0,0,0,0,"Chamchamcham" +5072,86400,0,0,0,0,0,0,"Kkongnyangkkong" +5073,86400,0,0,0,0,0,0,"Sub Quest Games" +5074,0,0,0,0,0,0,0,"Sub Quest Games" +5075,0,0,0,0,0,0,0,"Sub Quest Games" +5076,0,1282,30,0,0,0,0,"Sub Quest Games" +5077,0,1209,10,0,0,0,0,"Sub Quest Games" +5078,0,1019,50,0,0,0,0,"Sub Quest Games" +5079,0,0,0,0,0,0,0,"Sub Quest Games" +5080,0,0,0,0,0,0,0,"Sub Quest Games" +5081,0,0,0,0,0,0,0,"Sub Quest Games" +5082,0,0,0,0,0,0,0,"Sub Quest Games" 5092,0,0,0,0,0,0,0,"Unlocking the Ultimate Mediocrity" 5093,0,0,0,0,0,0,0,"Unlocking the Ultimate Mediocrity" 5094,0,1002,1000,0,0,0,0,"Unlocking the Ultimate Mediocrity" @@ -744,6 +768,15 @@ 7240,0,0,0,0,0,0,0,"Strengthening Equipment" 7241,86400,0,0,0,0,0,0,"Toren's Errands - Tomorrow" +7260,0,0,0,0,0,0,0,"Occurrence of insect origin" +7261,0,0,0,0,0,0,0,"Cat Cookies - Table" +7262,0,0,0,0,0,0,0,"Cat Cookies - Mattress" +7263,0,0,0,0,0,0,0,"Cat Cookies - Grill" +7264,0,0,0,0,0,0,0,"Cat Chef" +7265,0,0,0,0,0,0,0,"Cat Chef Anger" +7266,0,0,0,0,0,0,0,"Cat Chef Intentions" +7276,86400,0,0,0,0,0,0,"Food delivery promise" + 8000,0,0,0,0,0,0,0,"Quitting Job Change" 8001,0,0,0,0,0,0,0,"Job Change to Assassin" 8002,0,0,0,0,0,0,0,"Job Change to Assassin" @@ -1057,6 +1090,18 @@ 9031,0,0,0,0,0,0,0,"Find a puppy" 9032,86400,0,0,0,0,0,0,"Find a puppy" +9155,0,0,0,0,0,0,0,"Getting materials for the Jaty Crown" +9156,0,0,0,0,0,0,0,"Make the Jaty Crown" +9157,0,0,0,0,0,0,0,"Reward from Sage, Kasyapa" +9158,0,0,0,0,0,0,0,"Delivery of Good News(1)" +9159,0,0,0,0,0,0,0,"Back to Paiko" +9160,0,0,0,0,0,0,0,"Delivery of Good News(2)" +9161,0,0,0,0,0,0,0,"Back to Paiko" +9162,0,0,0,0,0,0,0,"Delivery of Good News(3)" +9163,0,0,0,0,0,0,0,"Back to Paiko" +9164,0,0,0,0,0,0,0,"Delivery of Good News(4)" +9165,0,0,0,0,0,0,0,"Reward from Paiko for success of Jaty Crown" + 10000,0,0,0,0,0,0,0,"To the Prontera Royal Court" 10001,0,0,0,0,0,0,0,"Qualification Test" 10002,0,0,0,0,0,0,0,"Qualification Review" @@ -1354,6 +1399,42 @@ 11175,7200,0,0,0,0,0,0,"Supply Shortage" 11176,0,0,0,0,0,0,0,"For my friends" +11209,0,0,0,0,0,0,0,"Hardships of Thomas" +11210,0,0,0,0,0,0,0,"Malangdo Reunion" +11211,0,0,0,0,0,0,0,"Malangdo Reunion" +11212,0,0,0,0,0,0,0,"Malangdo Reunion" +11213,0,0,0,0,0,0,0,"Malangdo Reunion" +11214,0,0,0,0,0,0,0,"Malangdo Reunion" +11215,0,0,0,0,0,0,0,"Malangdo Reunion" +11216,0,0,0,0,0,0,0,"Malangdo Reunion" +11217,0,0,0,0,0,0,0,"Malangdo Reunion" +11218,0,0,0,0,0,0,0,"Malangdo Reunion" +11219,0,0,0,0,0,0,0,"Malangdo Reunion" +11220,0,0,0,0,0,0,0,"Malangdo Reunion" +11221,0,0,0,0,0,0,0,"Repair of cracks" +11222,0,0,0,0,0,0,0,"Repair of cracks" +11223,0,0,0,0,0,0,0,"Repair of cracks" +11224,0,0,0,0,0,0,0,"Repair of cracks" +11225,0,0,0,0,0,0,0,"Repair of cracks" +11226,0,0,0,0,0,0,0,"Repair of cracks" +11227,0,0,0,0,0,0,0,"Repair of cracks" +11228,0,0,0,0,0,0,0,"Repair of cracks" +11229,0,0,0,0,0,0,0,"Repair of cracks" +11230,0,0,0,0,0,0,0,"Repair of cracks" +11231,0,0,0,0,0,0,0,"Repair of cracks" +11232,0,0,0,0,0,0,0,"Repair of cracks" +11233,0,0,0,0,0,0,0,"Repair of cracks" +11234,0,0,0,0,0,0,0,"Repair of cracks" +11235,0,0,0,0,0,0,0,"Repair of cracks" +11236,0,0,0,0,0,0,0,"Repair of cracks" +11237,0,0,0,0,0,0,0,"Repair of cracks" +11238,0,0,0,0,0,0,0,"Malangdo Fruits" +11239,86400,0,0,0,0,0,0,"Malangdo Fruits" +11240,0,0,0,0,0,0,0,"Repair of cracks" +11241,0,0,0,0,0,0,0,"Repair of cracks" +11242,0,0,0,0,0,0,0,"Repair of cracks" +11243,86400,0,0,0,0,0,0,"Repair of cracks" + 12000,0,0,0,0,0,0,0,"An old friend" 12001,0,0,0,0,0,0,0,"Digotz, Maku's old friend" 12002,0,0,0,0,0,0,0,"Messenger of Friendship" diff --git a/npc/custom/breeder.txt b/npc/custom/breeder.txt index c280fae73..de4460cd3 100644 --- a/npc/custom/breeder.txt +++ b/npc/custom/breeder.txt @@ -33,7 +33,7 @@ prontera,124,201,1 script Universal Rental NPC 726,{ else { message strcharinfo(0),"You do not meet requirements to rent."; close; } - specialeffect2 276; + specialeffect2 EF_TEIHIT3; close; } diff --git a/npc/custom/healer.txt b/npc/custom/healer.txt index 5ed3f7579..ab7eb9f55 100644 --- a/npc/custom/healer.txt +++ b/npc/custom/healer.txt @@ -21,13 +21,13 @@ if (.@Price) { message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; if (Zeny < .@Price) end; - if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close; + if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; set Zeny, Zeny-.@Price; } specialeffect2 313; percentheal 100,100; if (.@Buffs) { - specialeffect2 37; sc_start SC_INCREASEAGI,240000,10; - specialeffect2 42; sc_start SC_BLESSING,240000,10; + specialeffect2 EF_INCAGILITY; sc_start SC_INCREASEAGI,240000,10; + specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } if (.@Delay) set @HD, gettimetick(2)+.@Delay; close; diff --git a/npc/custom/itemmall.txt b/npc/custom/itemmall.txt index aeff0e1fd..84775e488 100644 --- a/npc/custom/itemmall.txt +++ b/npc/custom/itemmall.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Masao //===== Current Version: ===================================== -//= 1.0 [Masao] +//= 1.0 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index e072ee4b9..c4c259b64 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -20,13 +20,16 @@ function Job_Menu; function A_An; mes "[Job Master]"; if (Class > 4049) { mes "No more jobs are available."; - close; } + close; + } if (checkfalcon() || checkcart() || checkriding() || ismounting()) { mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding."; - close; } + close; + } if (.SkillPointCheck && SkillPoint) { mes "Please use all your skill points before proceeding."; - close; } + close; + } set .@eac, eaclass(); set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class); @@ -34,12 +37,14 @@ function Job_Menu; function A_An; if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; - close; } + close; + } if (Class > 21) { mes "Switch to third class?"; next; Job_Menu(roclass(.@eac|EAJL_THIRD)); - close; } + close; + } while(1) { mes "Select an option."; next; @@ -49,7 +54,9 @@ function Job_Menu; function A_An; mes "Are you sure?"; next; Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD))); - mes "[Job Master]"; } } + mes "[Job Master]"; + } + } set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2); if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99; if (Class == Job_Ninja) setarray .@exp[0],.@j1,70; @@ -57,28 +64,33 @@ function Job_Menu; function A_An; if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) { set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel; mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue."; - close; } + close; + } mes "Switch to "+jobname(.@exp[0])+"?"; next; Job_Menu(.@exp[0]); - close; } + close; + } if (.@eac&EAJL_2) if (.@eac&(EAJL_UPPER|EAJL_BABY) || roclass(.@eac|EAJL_UPPER) == -1) { mes "No more jobs are available."; - close; } + close; + } if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) { if (JobLevel < .JobReq[0]) mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class."; else if (Class == 4001 && .LastJob && lastJob) { mes "Switch classes now?"; next; - Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); } - else switch(Class) { + Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER)); + } else switch(Class) { case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023); case 4001: Job_Menu(4002,4003,4004,4005,4006,4007); case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045); - default: mes "An error has occurred."; break; } - close; } + default: mes "An error has occurred."; break; + } + close; + } if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) mes "No more jobs are available."; else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1]) @@ -86,8 +98,9 @@ function Job_Menu; function A_An; else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) { mes "Switch classes now?"; next; - Job_Menu(lastJob+4001); } - else Job_Menu(.@j1,.@j2); + Job_Menu(lastJob+4001); + } else + Job_Menu(.@j1,.@j2); close; function Job_Menu { @@ -104,12 +117,14 @@ function Job_Menu { if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) { mes "[Job Master]"; mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+"."; - close; } + close; + } mes "[Job Master]"; mes "Are you sure?"; - next; } - else set .@i, getarg(0); - if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000")==1) { + next; + } else + set .@i, getarg(0); + if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) { mes "[Job Master]"; mes "You are now "+A_An(jobname(.@i))+"!"; if (.@i==4001 && .LastJob) set lastJob, Class; @@ -117,17 +132,21 @@ function Job_Menu { if (.@i==4001 || .@i==4023) resetlvl(1); specialeffect2 338; specialeffect2 432; if (.Platinum) callsub Get_Platinum; - close; } + close; + } if (getargcount() == 1) return; - mes "[Job Master]"; } - end; } + mes "[Job Master]"; + } + end; +} function A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); - return "a "+getarg(0); } + return "a "+getarg(0); +} Get_Platinum: skill 142,1,0; @@ -139,7 +158,8 @@ Get_Platinum: case 4: skill 156,1,0; break; case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break; case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break; - default: break; } + default: break; + } switch(BaseJob) { case 7: skill 1001,1,0; break; case 8: skill 1014,1,0; break; @@ -154,7 +174,8 @@ Get_Platinum: case 18: skill 238,1,0; break; case 19: skill 1010,1,0; break; case 20: skill 1011,1,0; break; - default: break; } + default: break; + } return; OnInit: diff --git a/npc/custom/quests/hunting_missions.txt b/npc/custom/quests/hunting_missions.txt index 5f09c19fd..438444a14 100644 --- a/npc/custom/quests/hunting_missions.txt +++ b/npc/custom/quests/hunting_missions.txt @@ -225,7 +225,7 @@ OnNPCKillEvent: if (!getcharid(1) || !.Party) { if (!#Mission_Count || !Mission0) end; for (set .@i, 0; .@i<.Quests; set .@i,.@i+1) { - if (""+strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) { + if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) { if (getd("Mission"+.@i+"_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@i+"_"),getd("Mission"+.@i+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,killedrid)+"."; end; @@ -244,7 +244,7 @@ OnNPCKillEvent: getmapxy(.@map2$,.@x2,.@y2,0); if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) { for(set .@j,0; .@j<.Quests; set .@j,.@j+1) { - if (""+strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) { + if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) { if (getd("Mission"+.@j+"_") < #Mission_Count) { dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@j+"_"),getd("Mission"+.@j+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,.@mob)+"."; break; diff --git a/npc/custom/stylist.txt b/npc/custom/stylist.txt index fa552ce6d..77bbf7bdb 100644 --- a/npc/custom/stylist.txt +++ b/npc/custom/stylist.txt @@ -17,7 +17,8 @@ prontera,170,180,1 script Stylist#custom_stylist 122,{ setarray .@Styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color"); setarray .@Look[1],7,1,6; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); - set .@Revert, getlook(.@Look[.@s]); set .@Style,1; + set .@Revert, getlook(.@Look[.@s]); + set .@Style,1; while(1) { setlook .@Look[.@s], .@Style; message strcharinfo(0),"This is style #"+.@Style+"."; @@ -29,6 +30,7 @@ prontera,170,180,1 script Stylist#custom_stylist 122,{ input .@Style,0,.@Styles[.@s]; if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); break; - case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; } - } end; + case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; + } + } } diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt index f374f9e9a..b0fb07a66 100644 --- a/npc/custom/warper.txt +++ b/npc/custom/warper.txt @@ -45,24 +45,29 @@ menu "Last Warp ^777777["+lastwarp$+"]^000000",-, function Go { warp getarg(0),getarg(1,0),getarg(2,0); getmapxy(lastwarp$,lastwarpx,lastwarpy,0); - close; } + close; +} function Disp { set @menu$,""; if(getarg(0)=="") { set @menu$,getarg(1); - return; } + return; + } for(set .@i,getarg(1); .@i<=getarg(2); set .@i,.@i+1) set @menu$, @menu$+getarg(0)+" "+.@i+":"; - return; } + return; +} function Pick { if(getarg(0)=="") { set .@i, select(@menu$); - warp getarg(.@i),@c[.@i*2],@c[.@i*2+1]; } - else { + warp getarg(.@i),@c[.@i*2],@c[.@i*2+1]; + } else { set .@i, select(@menu$)-getarg(1,0); - warp getarg(0)+((.@i<10)?"0":"")+.@i,@c[.@i*2],@c[.@i*2+1]; } + warp getarg(0)+((.@i<10)?"0":"")+.@i,@c[.@i*2],@c[.@i*2+1]; + } getmapxy(lastwarp$,lastwarpx,lastwarpy,0); - close; } + close; +} // -------------------------------------------------- Towns: diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt new file mode 100644 index 000000000..45643ba13 --- /dev/null +++ b/npc/re/cities/malangdo.txt @@ -0,0 +1,124 @@ +//===== rAthena Script ======================================= +//= Malangdo Town +//===== By: ================================================== +//= Muad_Dib +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Malangdo Town Script +//===== Additional Comments: ================================= +//= 1.0 First version. [Euphy] +//============================================================ + +// Town NPCs :: malang_tre +//============================================================ +malangdo,147,117,3 script Innkeeper#malang 554,{ + mes "Can see a lazy cat standing on a chair."; + mes "Thought it is an Innkeeper, but do not looks like that having a business."; + next; + switch(select("Can I rest in hammock?:Want to store in inn.:Looks free at the moment.")) { + case 1: + mes "[Innkeeper]"; + mes "You can use hammock as you want but give me ^FF00005 pieces of Malang Sp Can^000000, then will make you stress out."; + next; + switch(select("Give the can.:No need.")) { + case 1: + if (countitem(12636) > 4) { + delitem 12636,5; //Malang_Sp_Can + percentheal 100,100; + specialeffect EF_HEALSP; + mes "[Innkeeper]"; + mes "Take a relaxation."; + emotion e_kis; + warp "malangdo", 140, 121; + close; + } + mes "[Innkeeper]"; + mes "It looks like lack of cans."; + close; + case 2: + mes "[Innkeeper]"; + mes "You are strong man than appearance."; + close; + } + case 2: + mes "[Innkeeper]"; + mes "Storation is done. We should keep company haha."; + savepoint "malangdo",142,118; + close; + case 3: + mes "[Innkeeper]"; + mes "A busy moment make you hurry and laziness makes you lazy."; + next; + mes "- Wonder if there is work time. -"; + close; + } + close; +} + +malangdo,151,120,3 script Wandering Minstrel#mal 479,{ + mes "[Wandering Minstrel]"; + mes "I have a sleepy momnet whenever seeing that innkeeper. So comfortable..."; + close; +} + +malangdo,149,120,5 script Wandering Wanderer#mal 485,5,1,{ + mes "[Wandering Wanderer]"; + mes "Cats living in here is so energetic."; + mes "And it makes me dance~"; + close; +OnTouch: + switch(rand(5)) { + case 0: + soundeffect "ring_of_nibelungen.wav",0; + break; + case 1: + soundeffect "dont_forget_me_not.wav",0; + break; + case 2: + soundeffect "humming.wav",0; + break; + case 3: + soundeffect "assassin_of_sunset.wav",0; + break; + case 4: + emotion e_ho; + emotion e_ho,0,"Wandering Minstrel#mal"; + break; + } + end; +} + +malangdo,216,168,3 script Cat Trainer#mal1 558,0,8,{ + emotion e_awsm; + mes "[Cat Trainer]"; + mes "Phh there is a tail and butt with soft and tender!"; + mes "Can't stand, this is heaven~~!!"; + next; + emotion e_gg; + mes "[Cat Trainer]"; + mes "My hidden card ^FF0000<Silvervine Fruit>^000000 can make all cats in Meow Meow Island as my slaves~ haha!"; + next; + select("^FF0000<Silvervine Fruit>^000000?"); + mes "[Cat Trainer]"; + mes "Silvervine Fruit is a rare item!"; + mes "I can barely get it."; + mes "But every cat must love this one with no complaint."; + next; + select("Where can I get ^FF0000<Silvervine Fruit>^000000?"); + mes "[Cat Trainer]"; + mes "How do you get it that I could have it barely?"; + mes "This can't be taken even with ^3131FFall the zeny in this world^000000!"; + next; + emotion e_gg; + mes "[Cat Trainer]"; + mes "Cats in Meow Meow Island is mine...! And it should be done haha~"; + mes "^FF0000<Silvervine Fruit>^000000! I can be a king in Meow Meow Island~ ohhhh!!!"; + close; +OnTouch: + emotion e_flash; + end; +} +malangdo,164,203,3 duplicate(Cat Trainer#mal1) Cat Trainer#mal2 853,5,8
\ No newline at end of file diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt new file mode 100644 index 000000000..bd6ed3370 --- /dev/null +++ b/npc/re/quests/quests_malangdo.txt @@ -0,0 +1,825 @@ +//===== rAthena Script ======================================= +//= Malangdo Quest NPCs +//===== By: ================================================== +//= Muad_Dib +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= Quest NPCs related to Malangdo. +//===== Additional Comments: ================================= +//= 1.0 First version. [Euphy] +//============================================================ + +// Help the bad cats in danger :: mal_bad_guys +//============================================================ +malangdo,175,206,3 script Gobonge#ml 561,{ + if (checkweight(1201,1) == 0) { + mes "- Can't go next step due to having too many items. -"; + close; + } + if (checkquest(1152,PLAYTIME) == 1) { + mes "[Gobonge]"; + mes "Hmm, investigation is not enough."; + mes "We need go back to basic point."; + mes "Come again tomorrow."; + mes "I might be in pain of stomach"; + mes "like usual."; + close; + } else if (checkquest(1152,PLAYTIME) == 2) { + erasequest 1152; + set malang_bad_guys,0; + } else if (checkquest(1152,PLAYTIME) == 3) { + completequest 1152; + erasequest 1152; + set malang_bad_guys,0; + } + if (BaseLevel < 60) { + mes "[Gobonge]"; + mes "Are you here to get help"; + mes "or to get help?"; + mes "You look so weak, haha..."; + mes "Go and hunt more Porings!"; + close; + } + if (malang_bad_guys == 0) { + mes "[Gobonge]"; + mes "Will you listen my sorrow?"; + next; + switch(select("Sure I will.:No, I won't.")) { + case 1: + mes "[Gobonge]"; + mes "This is a sad story."; + mes "As usual, I unpacked the bag"; + mes "to see strange cats"; + mes "to show them."; + next; + mes "[Gobonge]"; + mes "There were lots of cans."; + mes "I thougt it was new due to different shape"; + mes "but it was bad cans!"; + mes "I ate too much and"; + mes "got in bed right away"; + mes "so I can't do anything..."; + next; + mes "[Gobonge]"; + mes "And by the way, you have..."; + mes "nice colthes."; + mes "I can't let you go,"; + mes "that hurts me so badly!"; + emotion e_sob; + next; + switch(select("You deserve the pain!:Need help?")) { + case 1: + mes "[Gobonge]"; + mes "Yes you are!"; + close; + case 2: + mes "[Gobonge]"; + mes "You know what care is."; + mes "Please find the bad provider"; + mes "and revenge our enemy!"; + next; + switch(select("No, I don't want to!:Yes, I'll do it!")) { + case 1: + mes "[" + strcharinfo(0) + "]"; + mes "For the peace in Malangdo,"; + mes "just lay in bed forever."; + next; + mes "[Gobonge]"; + mes "I will!"; + mes "I will have your peace first once I get well!"; + close; + case 2: + mes "[Gobonge]"; + mes "Okay, you can do it?"; + mes "The enemy must be near the dock"; + mes "where we got the bundle."; + mes "We should get them to help"; + mes "our cats' well-being!"; + setquest 1145; + set malang_bad_guys,1; + close; + } + } + case 2: + mes "[Gobonge]"; + mes "Why are you here!"; + mes "If I am usual, I will engrave something"; + mes "with your tear..."; + mes "Let your bag be here instead!"; + emotion e_sob; + close; + } + } else if (malang_bad_guys == 1) { + mes "[Gobonge]"; + mes "The enemy must be near the dock"; + mes "where we got the bundle."; + mes "We should get them to help"; + mes "our cats' well-being!"; + close; + } else if (malang_bad_guys > 1 && malang_bad_guys < 7) { + mes "[Gobonge]"; + mes "I am so tired due to"; + mes "lack of forbidden bad activity."; + close; + } else if (malang_bad_guys == 7) { + if (countitem(6426) > 29) { + mes "[Gobonge]"; + mes "Was it from raccoon that made us pain in stomach?"; + mes "Oh bad raccoon!"; + mes "I feel stomachache again from this anger!"; + mes "All right, I will show my power once"; + mes "I can get out of bed."; + next; + mes "[Gobonge]"; + mes "I need time to concentrate on my stomachache."; + mes "You can go now!"; + erasequest 1151; + set malang_bad_guys,8; + getitem Malang_Sp_Can, 20; //Unknown_Item + delitem Bad_Can_Sack, 1; //Unknown_Item + delitem Bad_Can, 30; //Bad_Canned_Food + close; + } + mes "[Gobonge]"; + mes "How do you know the source of bad can?"; + mes "Do you have time to do slow at the moment?"; + emotion e_sob; + close; + } else if (malang_bad_guys == 8) { + mes "[Gobonge]"; + mes "The Patrol Leader wants to go back to"; + mes "bad world as soon as possible."; + mes "I want you to go first to soothe him instead."; + mes "How about it?"; + next; + switch(select("It's troublsome, I quit.:Sure I will!")) { + case 1: + mes "[Gobonge]"; + mes "Haha, you think it is a bad word."; + mes "I want you to be one of our staffs."; + next; + mes "[Gobonge]"; + mes "Sorry, but you should go now"; + mes "so that I can concentrate on my stomachache."; + setquest 1152; + set malang_bad_guys,9; + close; + case 2: + mes "[Gobonge]"; + mes "All right, then I will have time"; + mes "to concentrate on my stomachache."; + setquest 1153; + set malang_bad_guys,10; + close; + } + } else if (malang_bad_guys == 9) { + mes "[Gobonge]"; + mes "Hmm, investigation is not enough."; + mes "We need go back to basic point."; + mes "Come again tomorrow."; + mes "I might be in pain of stomach"; + mes "like usual."; + close; + } else if (malang_bad_guys > 9 && malang_bad_guys < 12) { + mes "[Gobonge]"; + mes "Go and have fun with the Patrol Leader!"; + close; + } else if (malang_bad_guys == 12) { + mes "[Gobonge]"; + mes "Instead of us, you did bad behavior."; + mes "Good to hear that?"; + mes "This is what teacher see best pupil?"; + emotion e_swt; + next; + mes "[Gobonge]"; + mes "You deserve a reward!"; + mes "I need to get some more rest,"; + mes "so let's investigate tomorrow!"; + erasequest 1155; + setquest 1152; + set malang_bad_guys,13; + getitem 6422,5; //Egrade_Coin + close; + } else if (malang_bad_guys == 13) { + mes "[Gobonge]"; + mes "Come again tomorrow."; + mes "I might be in pain of stomach"; + mes "like usual."; + close; + } +OnEnable: + enablenpc "Gobonge#ml"; + close; +OnDisable: + disablenpc "Gobonge#ml"; + close; +} + +malangdo,181,205,3 script Gobulee#ml1 547,{ + mes "[Gobulee]"; + mes "Why do you come now?"; + mes "You should have come when we were healthy."; + mes "So, you want to me take out what you have?"; + close; +} + +malangdo,180,202,3 script Gobyungee#ml1 547,{ + mes "[Gobyungee]"; + mes "I can't see other cats because"; + mes "I could't have time to do bad behavior..."; + close; +} + +malangdo,186,201,3 script Gosigee#ml1 547,{ + mes "[Gosigee]"; + mes "I am desperate for pill of stomachache,"; + mes "cap is only thinking of finding out criminal"; + mes "and to revenge!"; + mes "..."; + next; + mes "[Gosigee]"; + mes "How can we follow him as a cap...!"; + close; +} + +malangdo,177,202,3 script Gonanee#ml2 547,{ + mes "[Gonanee]"; + mes "We are only bad circle in Malangdo"; + mes "and we are very proud."; + mes "Can't just lie in bed."; + close; +} + +malangdo,183,202,3 script Godoree#ml3 547,{ + mes "[Godoree]"; + mes "I saw unfamiliar cats around"; + mes "the dock frequently."; + mes "Are they tourists?"; + mes "We should check their pockets"; + mes "once I get well..."; + close; +} + +malangdo,203,116,5 script Suspious Dealer#ml 543,{ + mes "On listening to the story for"; + mes "a while, he pretends to be indifferent once hearing someone's noise."; + next; + mes "[Suspious Dealer]"; + mes "Oh my body, too much pain..."; + close; +} + +malangdo,205,116,3 script Very Suspious Dealer#ml1 543,{ + mes "On listening to the story for"; + mes "a while, he pretends to be indifferent once hearing someone's noise."; + next; + mes "[Very Suspious Dealer]"; + mes "The weather is so dirty..."; + close; +} + +malangdo,197,120,5 script Foolish Cat#ml 546,{ + mes "[Foolish Cat]"; + mes "If you stay here, you"; + mes "can hear all they're saying."; + mes "Don't know exactly what, but"; + mes "you do hear everything."; + mes "Hehehe..."; + close; +} + +malangdo,196,120,0 script #ml1 -1,2,2,{ +OnTouch: + if (malang_bad_guys == 1 || malang_bad_guys == 2) { + mes "You hear a conversation between the Suspious Dealers."; + next; + mes "[Suspious Dealer]"; + mes "Because unexpected robbery at that moment..."; + mes "our great work has delayed."; + next; + mes "[Very Suspious Dealer]"; + mes "Do not worry about the thing, I placed it near balloon bag where"; + mes "Ship Navi is in the north, and I hid it perfectly."; + next; + mes "You need to check a place near north of balloon bag in ship Navi."; + if (malang_bad_guys == 1) { + erasequest 1145; + setquest 1146; + set malang_bad_guys,2; + } + close; + } else if (malang_bad_guys > 2 && malang_bad_guys < 8) { + mes "You still hear a suspicious conversation."; + next; + mes "[Suspious Dealer]"; + mes "But near the balloon bag is still"; + mes "worrying so much!"; + next; + mes "[Very Suspious Dealer]"; + mes "Oh how cowardly you are!"; + mes "I hid it in ship Navi perfectly."; + mes "Relax!"; + next; + mes "[Suspious Dealer]"; + mes "The rest of part is in staffs."; + mes "We should believe."; + next; + mes "We need to investigate Navi first."; + mes "Let's see other guys in ship Navi."; + if (malang_bad_guys == 3) { + erasequest 1147; + setquest 1148; + set malang_bad_guys,4; + } + close; + } else if (malang_bad_guys > 7) { + mes "You still hear a suspicious conversation."; + next; + mes "[Suspious Dealer]"; + mes "Star candy is still healthy,"; + mes "what happens?"; + next; + mes "[Very Suspious Dealer]"; + mes "No way..."; + mes "We should get more bad cans."; + close; + } + end; +} + +malangdo,155,179,0 script #ml2 -1,2,2,{ +OnTouch: + if (malang_bad_guys == 2 || malang_bad_guys == 3) { + mes "There's a memo."; + next; + mes "[Memo]"; + mes "Here is not what we wanted, huh!"; + next; + mes "...do listen the conversation of merchant."; + if (malang_bad_guys == 2) { + erasequest 1146; + setquest 1147; + set malang_bad_guys,3; + } + close; + } + end; +} + +malangdo,171,163,3 script Awfully Suspious Dealer 543,{ + if (malang_bad_guys < 4) { + mes "[Awfully Suspious Dealer]"; + mes "We quit our sales,"; + mes "find the other merchant!"; + close; + } else if (malang_bad_guys == 4) { + mes "[Awfully Suspious Dealer]"; + mes "Bad cans?"; + mes "Due to lots of work in here"; + mes "can't have a short time to talk?"; + next; + switch(select("Look suspicious?:I knew all things here!")) { + case 1: + mes "[Awfully Suspious Dealer]"; + mes "I have a same boat with you!"; + close; + case 2: + mes "[Awfully Suspious Dealer]"; + mes "..."; + mes "You searched the lounge of ship Navi?"; + mes "..."; + next; + mes "[Awfully Suspious Dealer]"; + mes "It looks wrong place~"; + mes "Go and do other things~!"; + next; + mes "You need to search lounge of ship Navi?"; + erasequest 1148; + setquest 1149; + set malang_bad_guys,5; + close; + } + } else if (malang_bad_guys == 5) { + mes "[Awfully Suspious Dealer]"; + mes "A thought to search Gozangee around ship Navi"; + mes "is like to ride a skill"; + mes "with frying pan, it is idiot things."; + mes "I do not recommend."; + close; + } else if (malang_bad_guys == 6) { + if (countitem(6427) == 0) { + mes "[Awfully Suspious Dealer]"; + mes "You searched the lounge of ship Navi?"; + mes "But still nothing in hand."; + mes "I told you there's nothing."; + mes "..."; + next; + mes "[Awfully Suspious Dealer]"; + mes "...there must be something..."; + close; + } + mes "[Awfully Suspious Dealer]"; + mes "Oh! That's ^0000FFa sack of bad cans^000000, isn't it?"; + mes "Where did you get it? Amazing!"; + next; + switch(select("Do not pretend not to know!:Need to show them our general!")) { + case 1: + mes "[Awfully Suspious Dealer]"; + mes "It just looks wonderful."; + mes "There's nothing more to have?"; + emotion e_ho; + close; + case 2: + mes "[Awfully Suspious Dealer]"; + mes "Relax!"; + mes "Let's have smile and fun with only ours."; + next; + mes "[Awfully Suspious Dealer]"; + mes "To be honest, I am a member of raccoon hurray team."; + mes "A homeless community of raccoons"; + mes "became a black market group."; + mes "I will make headquater of raccoon hurray team here"; + mes "after kick out group of cats."; + next; + switch(select("Are you the leader?:Let me clear the usage of bad can.:Can it be worked as you want?")) { + case 1: + mes "[Awfully Suspious Dealer]"; + mes "This is thankful misunderstanding,"; + mes "I am just little staff."; + mes "I don't know who the leader is."; + close; + case 2: + mes "[Awfully Suspious Dealer]"; + mes "That is..."; + mes "for food..."; + mes "Don't ask me more, please!"; + close; + case 3: + mes "[Awfully Suspious Dealer]"; + mes "You look down out raccoon hurray team?"; + mes "Look more! To my star candy who stands island"; + mes "I will make them have stomachache"; + mes "with lots of bad cans."; + mes "Aren't you expecting?"; + next; + mes "[Awfully Suspious Dealer]"; + mes "I can't make him eat with my hand,"; + mes "to creature in shining coral area that is basic food of star candy"; + mes "I am still feeding them with bad cans."; + mes "You must see amazing reaction, just wait!"; + next; + mes "The situation is serious."; + mes "Once the cats figure out,"; + mes "you might be confused."; + mes "Let's withdraw the bad cans first,"; + mes "located in the shining coral area."; + erasequest 1150; + setquest 1151; + set malang_bad_guys,7; + close; + } + } + } else if (malang_bad_guys == 7) { + mes "[Awfully Suspious Dealer]"; + mes "Plese forget what I have told you."; + mes "Please..."; + mes "After you got 30 pcs of bad cans"; + mes "in shining coral area"; + mes "do not tell the cats"; + mes "or report this fact!"; + close; + } + mes "[Awfully Suspious Dealer]"; + mes "So you reported all things?"; + mes "..."; + mes "Now it's time to live a new life"; + mes "of group for hair tufts..."; + close; +} + +mal_in02,184,72,3 script Gozangee#ml 547,{ + mes "[Gozangee]"; + mes "I have too much pain in my stomach..."; + mes "Should endure myself!"; + mes "...do bad activity..."; + close; +} + +mal_in02,184,77,0 script #ml3 -1,2,2,{ +OnTouch: + if (checkweight(1201,1) == 0) { + mes "- You have too many items. -"; + close; + } + if (malang_bad_guys == 4) { + mes "I came to..."; + mes "know a thing that shouldn't be"; + mes "appeared to anyone."; + mes "Just pretend that I didn't see this."; + close; + } else if (malang_bad_guys == 5) { + mes "This is...!"; + mes "..."; + next; + mes "A sack that carrying bad cans."; + next; + mes "Let's bring this to a guy who"; + mes "is in Awfully Suspious Dealer in deck."; + erasequest 1149; + setquest 1150; + set malang_bad_guys,6; + getitem 6427,1; //Bad_Can_Sack + close; + } else if (malang_bad_guys == 6) { + mes "I saw a sack of bad cans."; + mes "located on the deck."; + mes "Let's bring this to a guy who"; + mes "is in Awfully Suspious Dealer in deck."; + close; + } + end; +} + +malangdo,125,147,3 script Patrol Leader#ml 545,{ + if (checkweight(1201,1) == 0) { + mes "- Can't go next step due to having too many items. -"; + close; + } + if (malang_bad_guys < 10) { + mes "[Patrol Leader]"; + mes "Be careful of distribution for"; + mes "bad cans recently in here"; + mes "so should be noticed."; + close; + } else if (malang_bad_guys == 10) { + mes "[Patrol Leader]"; + mes "So you are going to do bad activity instead of"; + mes "group of hair tufts lying in bed?"; + mes "It's gonna be exciting!"; + mes "So excited..."; + next; + mes "[Patrol Leader]"; + mes "Gobonge and his friends"; + mes "liked to torment ^0000FFRed Eruma^000000 in shining"; + mes "coral area more than anything."; + next; + mes "[Patrol Leader]"; + mes "Report to me after tormenting 20 ^0000FFRed Eruma^000000"; + mes "for a while."; + mes "I will scold you as Patrol Leader!"; + next; + switch(select("What Patrol Leader do like this?:Cheer up!!")) { + case 1: + mes "[Patrol Leader]"; + mes "This is what my flavor to do this!"; + close; + case 2: + mes "[Patrol Leader]"; + mes "I will expect various bad activities."; + erasequest 1153; + setquest 1154; + set malang_bad_guys,11; + close; + } + } else if (malang_bad_guys == 11) { + if (checkquest(1154,HUNTING) == 2) { + mes "[Patrol Leader]"; + mes "Wow, you did to ^0000FFRed Eruma^000000 so badly!"; + mes "I am impressed at your work."; + next; + mes "[Crime Prevention Staff]"; + mes "Captain, we have work again, right?"; + emotion e_sob; + emotion e_sob,0,"Crime Prevention Staff#ml"; + next; + mes "[Patrol Leader]"; + mes "Hide your tears and save your tears!"; + mes "You should cry when having a clue for bad activity"; + mes "at crime spot!"; + emotion e_sob; + emotion e_sob,0,"Crime Prevention Staff#ml"; + next; + mes "[Patrol Leader]"; + mes "I will scold you once the investigation is over!"; + mes "Visit Gobonge now."; + erasequest 1154; + setquest 1155; + set malang_bad_guys,12; + close; + } + mes "[Patrol Leader]"; + mes "Inside of starry coral area,"; + mes "report to me after tormenting 20 ^0000FFRed Eruma^000000"; + mes "for a while."; + mes "I will scold you as Patrol Leader!"; + close; + } + mes "[Patrol Leader]"; + mes "I will scold you once the investigation"; + mes "is over!"; + mes "visit Gobonge now."; + close; +} + +malangdo,129,146,3 script Crime Prevention Staff 545,{ + if (malang_bad_guys > 11) { + mes "[Crime Prevention Staff]"; + mes "A work to do means happy things!"; + mes "I ask you to do various bad activities!"; + close; + } + mes "[Crime Prevention Staff]"; + mes "A group of cats that"; + mes "ate bad cans got"; + mes "pain in stomache."; + mes "They are lying at the north"; + mes "of place but still rolling with anger."; + next; + mes "[Crime Prevention Staff]"; + mes "Haha... the village is becoming"; + mes "peaceful and calm, but feels"; + mes "somewhat empty. This is not"; + mes "usual scene that we can have."; + mes "Let's see there?"; + close; +} + +/* +malangdo,3,1,3 script Guidance for quest#ml 543,{ + input .@input,1,9999; + if (.@input != 1854) { + mes "[Helper]"; + mes "What is this security code?"; + mes "Go away!"; + close; + } + mes "[Helper]"; + mes "Choose now, hurry!"; + next; + switch(select("NPC appear!:NPC walkout!:Reset setitem:30 pcs of bad cans:Just before collecting cans:Start quest for Patrol Leader")) { + case 1: + donpcevent "Gobonge#ml::OnEnable"; + mes "[Helper]"; + mes "First appearance!"; + close; + case 2: + donpcevent "Gobonge#ml::OnDisable"; + mes "[Helper]"; + mes "Walk out!"; + close; + case 3: + mes "[Helper]"; + mes "Yap!"; + set malang_bad_guys,0; + erasequest 1152; + close; + case 4: + mes "[Helper]"; + mes "Owing?"; + getitem 6426,30; //Bad_Can + close; + case 5: + mes "[Helper]"; + mes "Yap!"; + erasequest 1150; + setquest 1151; + set malang_bad_guys,7; + close; + case 6: + mes "[Helper]"; + mes "Yap!"; + set malang_bad_guys,10; + close; + } +} +*/ + +// Pipielle :: mal_ppl +//============================================================ +malangdo,137,200,6 script Pipielle 549,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) { + mes "You have too many items, please try again after reducing your weight."; + close; + } + if (BaseLevel < 60) { + mes "[Pipielle]"; + mes "Wow this is nice weather, do you like this kind of weather too? I like it too but I need to my work now."; + next; + mes "[Pipielle]"; + mes "I would ask for your help if you were a stronger advanturer..."; + next; + mes "^770099This cat is working on something, she asks for help above LV60.^000000"; + close; + } + set .@fish_ss1, "What are you doing??"; + if (countitem(6451) > 29) + set .@fish_ss2, "I caught a lot of strange fishes!"; + else { + set .@fish_num, 30-countitem(6451); //Unknown_Fish + set .@fish_ss2, "Remaining " + .@fish_num + " of ^bbbbbbUnidentified Fish are required.^000000"; + } + if (ma_tomas == 100) + set .@fish_ss3, "I met a Admiral Thomas..."; + mes "[Pipielle]"; + mes "Would you come here and open your bag for me?"; + next; + switch(select(.@fish_ss1,.@fish_ss2,.@fish_ss3)) { + case 1: + mes "[Pipielle]"; + mes "There are many beautiful fishes around here. So I feel my heard beating when I standing here."; + next; + select("Of course, my heart will beat up too if I see delicious thing!"); + mes "[Pipielle]"; + mes "How come you only know about eating!! My heart don't beat up because of I see the delicious thing. Don't treat me the same as others."; + next; + mes "[Pipielle]"; + mes "I used to study from scholar from uno same as human. And I am good at human language as well. Don't treat me same as others."; + next; + mes "[Pipielle]"; + mes "I am a scholar who researches fish in here. It's little funny that cat research fish but it's true."; + next; + select("Are you originally a scholar?"); + mes "[Pipielle]"; + mes "Originally I used to mate of admiral Thomas. But our ship never to back to sea after we has arrived here."; + next; + mes "[Pipielle]"; + mes "The mate from ship that never voyage is lonely."; + next; + mes "[Pipielle]"; + mes "The scholar from Uno came here for research and he thought it is amazing thing that cat speaks human language. Therefore he started teach me."; + next; + select("But now everyone speaks human language."); + mes "[Pipielle]"; + mes "Oh yes, there were only little cat speaks human language. That's why he treated me special."; + next; + mes "[Pipielle]"; + mes "Anyways, now I collect specimens to be ichthyologist. I hope you can help me."; + next; + if(select("How can I help you?:I would say no.") == 2) { + mes "[Pipielle]"; + mes "Oh, okay. If you change your mind, please come again."; + close; + } + mes "[Pipielle]"; + mes "There is a Pouring who's eating all fishes in Octopus and Culvert dungeon."; + next; + mes "[Pipielle]"; + mes "It used to not live there, but he might came here for winter, so could you collect the specimens unidentified fish after get rid of it."; + next; + mes "[Pipielle]"; + mes "You can get identified fishes from Pouring, so please collect about 30 pieces."; + close; + case 2: + if (countitem(6451) > 29) { + //saveppl Unknown_Fish + delitem 6451,30; //Unknown_Fish + mes "[Pipielle]"; + mes "Oh, thank you! I will take these specimens."; + next; + mes "[Pipielle]"; + mes "I want to give you something, but last one is out of stock now so I will just write your name here."; + next; + mes "[Pipielle]"; + mes "I can give you good new even from far distance, but it's only possible if I am really lucky..."; + close; + } + mes "[Pipielle]"; + mes "I'm sorry, but please collect 30 pieces of unidentified fishes specimens."; + close; + case 3: + mes "[Pipielle]"; + mes "Oh, you have met admiral Thomas... how was it?"; + next; + if(select("He looks gentle:He looks terrible") == 2) { + mes "[Pipielle]"; + mes "Hmm..."; + mes "Frankly speaking, I was a real fan of Admiral Thomas. Can you take a responsibility of your word?"; + next; + if(select("Just kidding!:Oh yes, he was really terrible!") == 2) { + mes "[Pipielle]"; + mes "Is he?"; + mes "Okay, it really depends on personal taste..."; + close; + } + } + mes "[Pipielle]"; + mes "Is he?"; + mes "I knew you would say so."; + next; + mes "[Pipielle]"; + mes "Admiral Thomas is a legendary figure who has voyaged to this island with leading all of us. I think it was the most happiest moment in my life."; + next; + mes "[Pipielle]"; + mes "Please help him a lot. There are not many people to trust. This is my personal request."; + next; + mes "[Pipielle]"; + mes "And this is small gift for ask you to look after admiral Thomas."; + set ma_tomas,101; + getitem 6422,200; //Egrade_Coin + mes "^0000ffReceived 200 E Class Coins.^000000"; + close; + } +}
\ No newline at end of file diff --git a/npc/re/scripts_athena.conf b/npc/re/scripts_athena.conf index 4c9fb5975..5231a3980 100644 --- a/npc/re/scripts_athena.conf +++ b/npc/re/scripts_athena.conf @@ -12,6 +12,7 @@ npc: npc/re/cities/dewata.txt npc: npc/re/cities/dicastes.txt npc: npc/re/cities/izlude.txt npc: npc/re/cities/jawaii.txt +npc: npc/re/cities/malangdo.txt npc: npc/re/cities/mora.txt // --------------------------- Guides --------------------------- @@ -78,3 +79,4 @@ npc: npc/re/quests/quests_dewata.txt npc: npc/re/quests/quests_dicastes.txt npc: npc/re/quests/quests_izlude.txt npc: npc/re/quests/quests_lighthalzen.txt +npc: npc/re/quests/quests_malangdo.txt diff --git a/src/map/script.c b/src/map/script.c index 9c89943c8..5aeb91c0e 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11647,7 +11647,10 @@ BUILDIN_FUNC(strmobinfo) if(!mobdb_checkid(class_)) { - script_pushint(st,0); + if (num < 3) //requested a string + script_pushconststr(st,""); + else + script_pushint(st,0); return 0; } |