From a6e725229813ae54674f4ed116b3e515fc1d8dbb Mon Sep 17 00:00:00 2001 From: ediejohnny Date: Mon, 4 Feb 2013 21:57:52 +0000 Subject: One more fix at "bindatcmd" command. Related to bug:7240. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17121 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/npc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/map/npc.c b/src/map/npc.c index aa44d8840..124446d62 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -2911,11 +2911,13 @@ int npc_do_atcmd_event(struct map_session_data* sd, const char* command, const c for( i = 0; i < ( strlen( message ) + 1 ) && k < 127; i ++ ) { if( message[i] == ' ' || message[i] == '\0' ) { if( message[ ( i - 1 ) ] == ' ' ) { - continue; // To prevent "@atcmd [space][space][space]..." + continue; // To prevent "@atcmd [space][space]" and .@atcmd_numparameters return 1 without any parameter. } temp[k] = '\0'; k = 0; - setd_sub( st, NULL, ".@atcmd_parameters$", j++, (void *)temp, NULL ); + if( temp[0] != '\0' ) { + setd_sub( st, NULL, ".@atcmd_parameters$", j++, (void *)temp, NULL ); + } } else { temp[k] = message[i]; k++; -- cgit v1.2.3-60-g2f50 From 5852d650d32246509b7c6828c705d0d5787c6872 Mon Sep 17 00:00:00 2001 From: euphyy Date: Thu, 7 Feb 2013 01:07:46 +0000 Subject: * Renewal item updates, mostly misc items (incl. bugreport:7167). * A couple of quest_db updates. * Moved El Dicastes Guide to a separate file and fixed viewpoint syntax. * Fixed bugreport:7238, two mob skill mode changes. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17122 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/quest_db.txt | 12 +++- db/re/item_db.txt | 4 +- npc/re/cities/dicastes.txt | 3 +- sql-files/item_db_re.sql | 151 ++++++++++++++++++++++++++------------------- 4 files changed, 101 insertions(+), 69 deletions(-) diff --git a/db/quest_db.txt b/db/quest_db.txt index 3e2e53b00..4cf47c32f 100644 --- a/db/quest_db.txt +++ b/db/quest_db.txt @@ -465,6 +465,14 @@ 4134,0,0,0,0,0,0,0,"Iara" 4135,86400,0,0,0,0,0,0,"Iara" +4154,0,0,0,0,0,0,0,"Homunculus Researcher" +4155,0,0,0,0,0,0,0,"Homunculus S Mutation Mission - 1" +4156,0,0,0,0,0,0,0,"Homunculus S Mutation Mission - 2" +4157,0,0,0,0,0,0,0,"Homunculus S Mutation Mission - 3" +4158,0,0,0,0,0,0,0,"Homunculus S Mutation Mission - 4" +4159,0,0,0,0,0,0,0,"Homunculus S Mutation Mission - 5" +4160,0,0,0,0,0,0,0,"Homunculus S Mutation Mission - 6" + // Paradise 86 - 90 [Chilly] 4167,0,1321,30,0,0,0,0,"Paradise: Dragon Tail Handling" 4168,0,1322,30,0,0,0,0,"Paradise: Spring Rabbit Handling" @@ -1807,7 +1815,7 @@ 12061,10,0,0,0,0,0,0,"Concentration" 12062,86400,0,0,0,0,0,0,"Today's Mining Closed" 12070,14400,0,0,0,0,0,0,"Limited time for enter" - +12071,86400,0,0,0,0,0,0,"Stamp a seal on the attendance book" 12072,0,1034,20,0,0,0,0,"Hunt tharafrog" 12073,0,1248,15,0,0,0,0,"Remove Cruiser" 12074,0,1070,30,0,0,0,0,"Remove Kukre" @@ -2468,4 +2476,4 @@ 60352,0,0,0,0,0,0,0,"Bathroom Ghost" 60353,0,0,0,0,0,0,0,"Bathroom Ghost" 60354,0,0,0,0,0,0,0,"Bathroom Ghost" -60355,0,0,0,0,0,0,0,"Bathroom Ghost" \ No newline at end of file +60355,0,0,0,0,0,0,0,"Bathroom Ghost" diff --git a/db/re/item_db.txt b/db/re/item_db.txt index 49a80d28e..87e352349 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -3893,7 +3893,7 @@ 6342,Fade_Notation_Purple,Fade Notation Purple,3,0,,10,,,,,,,,,,,,,{},{},{} 6343,Fade_Notation_Blue,Fade Notation Blue,3,0,,10,,,,,,,,,,,,,{},{},{} 6344,Muscle_Story,Muscle Story,3,0,,0,,,,,,,,,,,,,{},{},{} -6345,Love_Ball,Love Ball,3,0,,0,,,,,,,,,,,,,{},{},{} +6345,Love_Ball,Love Lump,3,0,,0,,,,,,,,,,,,,{},{},{} 6346,Seagate_Mark,Seagate Mark,3,0,,0,,,,,,,,,,,,,{},{},{} 6347,Bless_Word_Paper1,Bless Word Paper,3,4020,,0,,,,,,,,,,,,,{},{},{} 6348,Bless_Word_Paper2,Bless Word Paper,3,4020,,0,,,,,,,,,,,,,{},{},{} @@ -6158,7 +6158,7 @@ //13064, //13065, 13066,P_Dagger3,Eden Dagger III,4,0,,0,165:80,,1,0,0xFE9F7EEF,7,2,2,3,60,0,1,{},{},{} -13067,Kris,Kris,4,20,,700,107:70,,1,1,0xFE9F7EEF,2,2,2,3,30,1,1,{ bonus2 bHpDrainRate,50,10; },{},{} +13067,Caress,Keris,4,20,,700,107:70,,1,1,0xFE9F7EEF,2,2,2,3,30,1,1,{ bonus2 bHpDrainRate,20,10; },{},{} 13068,Pompano,Pompano,4,0,,0,160:100,,3,0,0xFE9F7EEF,7,2,2,1,50,0,1,{ bonus bUnbreakableWeapon,0; autobonus "{ bonus bBaseAtk,30; }",10,7000,BF_WEAPON,"{ specialeffect2 EF_ENHANCE; }"; autobonus "{ bonus bMatk,20; }",10,7000,BF_MAGIC,"{ specialeffect2 EF_SUFFRAGIUM; }"; if(BaseLevel>99) { bonus bBaseAtk,10; bonus bMatk,10; } },{},{} 13069,As-nail,As-nail,4,56000,,500,160:80,,1,0,0x000654E2,7,2,2,4,110,1,1,{ bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Freeze,100+(getrefine()*50); },{},{} 13070,Scarlet-nail,Scarlet-nail,4,56000,,500,160:80,,1,0,0x000654E2,7,2,2,4,110,1,1,{ bonus bAtkEle,Ele_Fire; bonus2 bAddEff,Eff_Stone,100+(getrefine()*50); },{},{} diff --git a/npc/re/cities/dicastes.txt b/npc/re/cities/dicastes.txt index f755a797e..6bab75559 100644 --- a/npc/re/cities/dicastes.txt +++ b/npc/re/cities/dicastes.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Gennosuke Kouga, Muad_Dib //===== Current Version: ===================================== -//= 1.2 +//= 1.2a //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= @@ -12,6 +12,7 @@ //= 1.0 First version. //= 1.1 Standardized. [Euphy] //= 1.2 Updated to match the official script. [Joseph] +//= 1.2a Moved Guide to a separate file. [Euphy] //============================================================ dicastes01,194,159,5 script Excited Galten#a 492,{ diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index 44c6102fe..e27070ac4 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -3852,7 +3852,7 @@ REPLACE INTO `item_db_re` VALUES (6341,'Fade_Notation_Red','Fade Notation Red',3 REPLACE INTO `item_db_re` VALUES (6342,'Fade_Notation_Purple','Fade Notation Purple',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6343,'Fade_Notation_Blue','Fade Notation Blue',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6344,'Muscle_Story','Muscle Story',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6345,'Love_Ball','Love Ball',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6345,'Love_Ball','Love Lump',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6346,'Seagate_Mark','Seagate Mark',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6347,'Bless_Word_Paper1','Bless Word Paper',3,4020,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6348,'Bless_Word_Paper2','Bless Word Paper',3,4020,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -3895,42 +3895,49 @@ REPLACE INTO `item_db_re` VALUES (6389,'Puddle_R_Sample','Pool Sample',3,20,NULL REPLACE INTO `item_db_re` VALUES (6390,'Small_Pocket','Small Pocket',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6391,'Splendid_Supply_Kit','Splendid Supply Kit',3,20,NULL,2000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6392,'Bradium_Box','Bradium Box',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6393,'Round_Feather','Round Feather',3,524,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6394,'Golden_Feather','Golden Feather',3,486,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6395,'Angel_Magic_Power','Angel Magic Power',3,614,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6393,'Round_Feather','Round Feather',3,525,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6394,'Golden_Feather','Golden Feather',3,487,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6395,'Angel_Magic_Power','Angel Magic Power',3,615,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6396,'Auger_Of_Spirit','Auger Of Spirit',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6401,'Palm_Oil','Palm_Oil',3,20,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6402,'Coconut_Oil','Coconut_Oil',3,20,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6403,'Comodo_Leather','Comodo Leather',3,4,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6404,'Kris_Hilt','Kris Hilt',3,20,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6405,'Cendrawasih_Feather','Cendrawasih Feather',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6406,'Shining_Cendrawasih_Feather','Shining Cendrawasih Feather',3,10,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6407,'Raw_Crystal_Stone_Fragment','Raw Crystal Stone Fragment',3,820,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6408,'Raw_Crystal_Stone','Raw Crystal Stone',3,820,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6409,'Raw_Crystal_Stone_Mass','Raw Crystal Stone Mass',3,820,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# +REPLACE INTO `item_db_re` VALUES (6397,'PR_Team_Ticket','PR Team Ticket',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6398,'Develop_Team_Ticket','Develop Team Ticket',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6399,'Marketing_Team_Ticket','Marketing Team Ticket',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6400,'Operating_Team_Ticket','Operating Team Ticket',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6401,'Palm_O','Palm Oil',3,NULL,NULL,500,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6402,'Oil_Palm_F','Palm Oil Fruit',3,NULL,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6403,'Comodo_L','Comodo Leather',3,5,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6404,'Caress_H','Keris Hilt',3,NULL,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6405,'Cendrawasih_F','Cendrawasih Feather',3,3,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6406,'Cendrawasih_SF','Shining Cendrawasih Feather',3,10,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6407,'Sang_Stone_Fragment','Raw Crystal Stone Fragment',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6408,'Sang_Stone','Raw Crystal Stone',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6409,'Sang_Stone_Mass','Raw Crystal Stone Mass',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6410,'Idul_Fitri_Card','Idul Fitri Card',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6411,'Ripe_Watermelon','Ripe Watermelon',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# +REPLACE INTO `item_db_re` VALUES (6412,'Special_Medal','Special Medal',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6413,'New_Insurance','New Insurance',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6414,'Ragunta_Card','Ragunta Card',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# +REPLACE INTO `item_db_re` VALUES (6415,'Strange_Embryo','Strange Embryo',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6416,'Pet_Exchange','Pet Exchange',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6417,'Garderie_Fruit','Garderie Fruit',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6418,'A_Grade_Coin','A Grade Coin',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6419,'B_Grade_Coin','B Grade Coin',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6420,'C_Grade_Coin','C Grade Coin',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6421,'D_Grade_Coin','D Grade Coin',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6422,'E_Grade_Coin','E Grade Coin',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6423,'Sea_God\'s_Wrath','Sea God\'s Wrath',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6426,'Bad_Canned_Food','Bad Canned Food',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6428,'Adventure_Card_A','Adventure Card A',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6429,'Adventure_Card_B','Adventure Card B',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6430,'Figure_Sculpture','Figure Sculpture',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6431,'Pail','Pail',3,20,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6433,'Cleaning_Brush','Cleaning Brush',3,20,NULL,300,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# +REPLACE INTO `item_db_re` VALUES (6423,'Anger_Seagod','Sea God\'s Wrath',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6424,'Halloween_Fragment','Spirit Piece',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6425,'Halloween_Certificate','Halloween Certificate',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6426,'Bad_Can','Bad Canned Food',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6427,'Bad_Can_Sack','Bad Canned Food Sack',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6428,'Bravery_Card_A','Adventure Card A',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6429,'Bravery_Card_B','Adventure Card B',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6430,'Picture_Piece','Figure Sculpture',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6431,'Bucket','Pail',3,NULL,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6432,'Full_Bucket','Full Pail',3,NULL,NULL,3000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6433,'Clean_Brush','Cleaning Brush',3,NULL,NULL,300,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6434,'Fix_Kit','Fix Kit',3,NULL,NULL,1000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6435,'Fresh_Fruit','Fresh Fruit',3,NULL,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6436,'Sea_God\'s_Call','Sea God\'s Call',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6437,'Scaraba_Perfume','Scaraba Perfume',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # @@ -3941,44 +3948,57 @@ REPLACE INTO `item_db_re` VALUES (6443,'Sillit_Pong_Bottle','Sillit Pong Bottle' # REPLACE INTO `item_db_re` VALUES (6451,'Unknown_Fish','Unknown Fish',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (6469,'Warrior\'s_Will','Warrior\'s Will',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6470,'Blood_Thirst','Blood Thirst',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6471,'Chills_Of_Death','Chills Of Death',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6485,'Blue_Card_2','Blue 2 Card',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6486,'Blue_Card_0','Blue 0 Card',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6487,'Blue_Card_1','Blue 1 Card',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6464,'Hate_Bundle','Hate Crate',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6465,'Guard_Coin','Guard Coin',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6466,'Clean_Water','Clean Water',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6467,'Perfume','Perfume',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6468,'Thai_Perfume','Thai Perfume',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6469,'Will_Of_Warrior','Warrior\'s Will',3,1000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6470,'Blood_Thirst','Blood Thirst',3,1200,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6471,'Goast_Chill','Chills Of Death',3,1600,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6472,'Holy_Mom_Blaze','Holy Mom Blaze',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # +REPLACE INTO `item_db_re` VALUES (6485,'BlueCard_2','Blue 2 Card',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6486,'BlueCard_0','Blue 0 Card',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6487,'BlueCard_1','Blue 1 Card',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6488,'Thanks_Invest_Ticket','Thanks Invest Ticket',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6489,'Cats_Invest_Certif','Cats Invest Certificate',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6490,'Magic_Clay_Fragment','Magic Clay Fragment',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6491,'Magic_Clay','Magic Clay',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6492,'Magic_Clay_Lump','Magic Clay Lump',3,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6493,'Makibi','Makibi',3,30,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6496,'Tikbalang_Thick_Spine','Tikbalang Thick Spine',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6497,'Small_Amulet','Small Amulet',3,20,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6494,'Kafra_Coin2','Kafra Coin',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6495,'Para_Logro_Badge','Eden Merit Badge',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6496,'Tikbalang_Thick_Spine','Tikbalang\'s Thick Spine',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6497,'Lesser_Agimat','Lesser Agimat',3,20,NULL,50,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6498,'Jejellopy','Jejellopy',3,200,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6499,'Ancient_Talisman','Ancient Talisman',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6501,'Lost_Belongings','Lost Belongings',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6502,'The_Cross','The Cross',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6503,'Ward','Ward',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6504,'Cast_Iron_Pot','Cast Iron Pot',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6506,'Memorial_Bouquet','Memorial Bouquet',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# +REPLACE INTO `item_db_re` VALUES (6499,'Ancient_Grudge','Ancient Grudge',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6500,'Sharp_Bamboo','Sharpened Bamboo',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6501,'Salt_Bag','Salt Bag',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6502,'Silver_Cross','The Cross',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6503,'Soul_Protection','Spiritual Protection',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6504,'Cast_Iron_Caldron','Cast-Iron Caldron',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6505,'Purified_Bone','Purified Spirit Bone',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6506,'Memorial_Bouquet','Offering Bouquet',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6507,'Evil_Bone','Evil Spirit Bone',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6508,'Silver_Bracelet','Silver Bracelet',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6509,'Mysterious_Flower','Mysterious Flower',3,500,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6510,'Pretty_Flower','Pretty Flower',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6511,'Graceful_Flower','Graceful Flower',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6512,'Fire_Amulet','Fire Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6513,'Ice_Amulet','Ice Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6514,'Wind_Amulet','Wind Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6515,'Earth_Amulet','Earth Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6516,'Bakonawa_Doll','Bakonawa Doll',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6517,'Bangungot_Doll','Bangungot Doll',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6518,'Buwaya_Doll','Buwaya Doll',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6519,'Collected_Samples','Collected_Samples',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -# -REPLACE INTO `item_db_re` VALUES (6523,'Bakonawa_Soul_Fragments','Bakonawa Soul Fragments',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6524,'Bangungot_Soul_Fragments','Bangungot Soul Fragments',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6525,'Buwaya_Soul_Fragments','Buwaya Soul Fragments',3,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6510,'Elegant_Flower','Elegant Flower',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6511,'Beautiful_Flower','Beautiful Flower',3,300,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6512,'Charm_Fire','Fire Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6513,'Charm_Ice','Ice Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6514,'Charm_Wind','Wind Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6515,'Charm_Earth','Earth Amulet',3,100,NULL,1,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6516,'Bakonawa_Doll','Bakonawa Doll',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6517,'Bangungot_Doll','Bangungot Doll',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6518,'Buwaya_Doll','Buwaya Doll',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6519,'Collected_Samples','Collected Sample',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6520,'Lost_Belongings','Lost Belongings',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6521,'Royal_Certificate','Royal Certificate',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6522,'Royal_Certificate_','Royal Certificate',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6523,'Bakonawa_Spirit_Piece','Piece of Bakonawa\'s Spirit',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6524,'Bangungot_Spirit_Piece','Piece of Bangungot\'s Spirit',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6525,'Buwaya_Spirit_Piece','Piece of Buwaya\'s Spirit',3,3000,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # REPLACE INTO `item_db_re` VALUES (7001,'Mould_Powder','Mould Powder',3,466,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7002,'Ogre_Tooth','Ogre Tooth',3,658,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -4610,7 +4630,10 @@ REPLACE INTO `item_db_re` VALUES (7628,'Idiot_Key','Idiot Key',3,NULL,NULL,0,NUL REPLACE INTO `item_db_re` VALUES (7629,'Pink_Gift_Box','Pink Gift Box',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7630,'Clean_Beach_Brush','Clean Beach Brush',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7631,'Trash_Debris','Trash Debris',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (7635,'Sachet','Sachet',3,100,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7632,'To_Afterworld_Record','Terrible Report Card',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7633,'To_Heaven_Record','Heavensent Report Card',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7634,'Rose_Of_Father','Father Rose',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (7635,'Perfume_Pouch','Incense Bag',3,100,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # REPLACE INTO `item_db_re` VALUES (7701,'Dragon_Spirit','Soul',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (7702,'Special_Cogwheel','Special Cogwheel',3,2,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -5997,7 +6020,7 @@ REPLACE INTO `item_db_re` VALUES (13062,'Ancient_Dagger','Ancient Dagger',4,20,N #13064, #13065, REPLACE INTO `item_db_re` VALUES (13066,'P_Dagger3','Eden Dagger III',4,NULL,NULL,0,'165:80',NULL,1,NULL,0xFE9F7EEF,7,2,2,3,'60',NULL,1,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (13067,'Kris','Kris',4,20,NULL,700,'107:70',NULL,1,1,0xFE9F7EEF,2,2,2,3,'30',1,1,'bonus2 bHpDrainRate,50,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13067,'Caress','Keris',4,20,NULL,700,'107:70',NULL,1,1,0xFE9F7EEF,2,2,2,3,'30',1,1,'bonus2 bHpDrainRate,20,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13068,'Pompano','Pompano',4,NULL,NULL,0,'160:100',NULL,3,NULL,0xFE9F7EEF,7,2,2,1,'50',NULL,1,'bonus bUnbreakableWeapon,0; autobonus "{bonus bBaseAtk,30;}",10,7000,BF_WEAPON,"{specialeffect2 EF_ENHANCE;}"; autobonus "{bonus bMatk,20;}",10,7000,BF_MAGIC,"{specialeffect2 EF_SUFFRAGIUM;}"; if(BaseLevel>99) { bonus bBaseAtk,10; bonus bMatk,10; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13069,'As-nail','As-nail',4,56000,NULL,500,'160:80',NULL,1,NULL,0x000654E2,7,2,2,4,'110',1,1,'bonus bAtkEle,Ele_Wind; bonus2 bAddEff,Eff_Freeze,100+(getrefine()*50);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13070,'Scarlet-nail','Scarlet-nail',4,56000,NULL,500,'160:80',NULL,1,NULL,0x000654E2,7,2,2,4,'110',1,1,'bonus bAtkEle,Ele_Fire; bonus2 bAddEff,Eff_Stone,100+(getrefine()*50);',NULL,NULL); @@ -7330,7 +7353,7 @@ REPLACE INTO `item_db_re` VALUES (18516,'RTC_2nd_Winner_Hat','RTC 2nd Winner Hat REPLACE INTO `item_db_re` VALUES (18517,'RTC_3rd_Winner_Hat','RTC 3rd Winner Hat',5,20,NULL,100,NULL,2,NULL,NULL,0xFFFFFFFF,7,2,512,NULL,'1',NULL,685,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (18518,'Angelwing_Ear_S','Angel Wing Ears',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,512,NULL,'70',NULL,158,'bonus bStr,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18519,'Devilwing_Ear_S','Evil Wing Ears',5,20,NULL,100,NULL,3,NULL,1,0xFFFFFFFF,7,2,512,NULL,'70',NULL,152,'bonus bStr,1;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (18520,'Jati_Crown','Jati Crown',5,20,NULL,100,NULL,1,NULL,NULL,0xFFFFFFFF,7,2,256,NULL,'1',1,686,'bonus2 bSubRace,RC_Plant,5; bonus2 bSubRace,RC_Brute,5; bonus2 bAddRace,RC_Plant,5; bonus2 bAddRace,RC_Brute,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (18520,'Jaty_C','Jaty Crown',5,20,NULL,100,NULL,1,NULL,NULL,0xFFFFFFFF,7,2,256,NULL,'1',1,686,'bonus2 bSubRace,RC_Plant,5; bonus2 bSubRace,RC_Brute,5; bonus2 bAddRace,RC_Plant,5; bonus2 bAddRace,RC_Brute,5;',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (18523,'Thunderstorm_Cloud','Thunderstorm Cloud',5,20,NULL,100,NULL,2,NULL,NULL,0xFFFFFFFF,7,2,512,NULL,'1',NULL,688,NULL,NULL,NULL); # -- cgit v1.2.3-60-g2f50 From c6c82fdf4120a08a860068f99bcc3ea5b338dd58 Mon Sep 17 00:00:00 2001 From: ediejohnny Date: Fri, 8 Feb 2013 22:58:50 +0000 Subject: Fixed "sscanf" script command related at bug:7166. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17124 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/script.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/map/script.c b/src/map/script.c index 3e51859d1..f55f9602a 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -14138,12 +14138,12 @@ BUILDIN_FUNC(sscanf){ if(sscanf(str, buf, ref_str)==0){ break; } - set_reg(st, sd, add_str(buf_p), buf_p, (void *)(ref_str), reference_getref(data)); - }else{ // Number + set_reg(st, sd, reference_uid( reference_getid(data), reference_getindex(data) ), buf_p, (void *)(ref_str), reference_getref(data)); + } else { // Number if(sscanf(str, buf, &ref_int)==0){ break; } - set_reg(st, sd, add_str(buf_p), buf_p, (void *)__64BPRTSIZE(ref_int), reference_getref(data)); + set_reg(st, sd, reference_uid( reference_getid(data), reference_getindex(data) ), buf_p, (void *)__64BPRTSIZE(ref_int), reference_getref(data)); } arg++; -- cgit v1.2.3-60-g2f50 From 39790db451bf767bea78e843a4663d9e2b05beaf Mon Sep 17 00:00:00 2001 From: ediejohnny Date: Fri, 8 Feb 2013 23:39:22 +0000 Subject: Fix at "callfunc" script command. bugreport:7246. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17125 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/script.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/map/script.c b/src/map/script.c index f55f9602a..4f98fff09 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -4783,7 +4783,7 @@ BUILDIN_FUNC(callfunc) st->state = END; return 1; } - + for( i = st->start+3, j = 0; i < st->end; i++, j++ ) { struct script_data* data = push_copy(st->stack,i); @@ -4791,10 +4791,8 @@ BUILDIN_FUNC(callfunc) { const char* name = reference_getname(data); if( name[0] == '.' ) { - if ( !ref ) { - ref = (struct DBMap**)aCalloc(sizeof(struct DBMap*), 1); - ref[0] = (name[1] == '@' ? st->stack->var_function : st->script->script_vars); - } + ref = (struct DBMap**)aCalloc(sizeof(struct DBMap*), 1); + ref[0] = (name[1] == '@' ? st->stack->var_function : st->script->script_vars); data->ref = ref; } } -- cgit v1.2.3-60-g2f50 From d8f0ee4c476102066268e6376f6544b57dbf5b71 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 15:40:35 -0300 Subject: Follow up 1a4d3fcf403745de60eb5d7648342cdfa1388af8 Improved Fix. Signed-off-by: shennetsind --- src/map/itemdb.c | 2 -- src/map/itemdb.h | 2 ++ src/map/script.c | 11 +++++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 2b7d27c8a..22ac031ee 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -20,8 +20,6 @@ static struct item_data* itemdb_array[MAX_ITEMDB]; static DBMap* itemdb_other;// int nameid -> struct item_data* -static struct item_group itemgroup_db[MAX_ITEMGROUP]; - struct item_data dummy_item; //This is the default dummy item used for non-existant items. [Skotlex] /** diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 06c95da8a..4c8847705 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -155,6 +155,8 @@ struct item_combo { bool isRef;/* whether this struct is a reference or the master */ }; +struct item_group itemgroup_db[MAX_ITEMGROUP]; + struct item_data* itemdb_searchname(const char *name); int itemdb_searchname_array(struct item_data** data, int size, const char *str); struct item_data* itemdb_load(int nameid); diff --git a/src/map/script.c b/src/map/script.c index 4f98fff09..182b04f86 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -17263,10 +17263,17 @@ BUILDIN_FUNC(getrandgroupitem) { ShowError("getrandgroupitem: qty is <= 0!\n"); return 1; } - if( (nameid = itemdb_searchrandomid(group)) == UNKNOWN_ITEM_ID ) { - return 1;/* itemdb_searchrandomid will already scream a error */ + + if(group < 1 || group >= MAX_ITEMGROUP) { + ShowError("getrandgroupitem: Invalid group id %d\n", group); + return 1; + } + if (!itemgroup_db[group].qty) { + ShowError("getrandgroupitem: group id %d is empty!\n", group); + return 1; } + nameid = itemdb_searchrandomid(group); memset(&item_tmp,0,sizeof(item_tmp)); item_tmp.nameid = nameid; -- cgit v1.2.3-60-g2f50 From 8afbce9c76307f5e0430d6ba253c543a3c234a21 Mon Sep 17 00:00:00 2001 From: playtester Date: Sun, 17 Feb 2013 14:45:29 +0000 Subject: - Fixed several detector bitsets (hint: detector bitset is only for insects, demons and bosses, please keep that in mind when converting the modes) - Implemented Nydhogg's Memory as described in bugreport:7261 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17134 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/re/mob_db.txt | 14 +++++++------- db/re/mob_skill_db.txt | 7 +++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt index e608cbf49..a3525cb38 100644 --- a/db/re/mob_db.txt +++ b/db/re/mob_db.txt @@ -1180,7 +1180,7 @@ 2071,HEADLESS_MULE,Headless Mule,Headless Mule,80,6620,1,1011,1120,1,210,267,33,44,68,51,50,35,67,20,10,12,2,6,63,0x3985,165,1216,816,432,0,0,0,0,0,0,0,7120,4000,2317,5,7097,1000,7122,1000,1269,1,2317,1,1255,2,0,0,0,0,0,0 2072,JAGUAR,Jaguar,Jaguar,71,3914,1,720,512,1,192,234,44,15,69,30,45,5,59,5,10,12,1,2,42,0x91,150,576,1248,480,0,0,0,0,0,0,0,7171,3000,7172,2000,919,1000,756,40,1810,1,0,0,0,0,0,0,0,0,0,0 2073,TOUCAN,Toucan,Toucan,70,3640,1,659,544,1,166,201,12,12,54,14,40,35,44,10,10,12,1,2,44,0x1089,155,960,1440,960,0,0,0,0,0,0,0,917,3000,7053,1000,510,50,508,100,2612,200,0,0,0,0,0,0,0,0,0,0 -2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x118B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0 +2074,CURUPIRA,Curupira,Curupira,68,3096,1,622,450,1,140,175,42,12,32,23,38,20,45,10,10,12,1,7,22,0x108B,250,528,480,384,0,0,0,0,0,0,0,517,3000,757,250,1011,10,7267,500,1505,100,0,0,0,0,0,0,0,0,0,0 // Event MVP 2075,E_VADON_X,Ragunta,Ragunta,150,25000000,0,9999999,9999999,1,7000,10000,500,500,100,100,100,100,100,100,10,12,2,5,88,0x37B5,150,1632,432,540,4999999,0,0,0,0,0,0,960,5000,7095,3000,7093,3000,984,1000,985,500,7444,50,617,10,0,0,0,0,6414,9000 @@ -1256,12 +1256,12 @@ 2135,CREEPER,Creeper,Creeper,100,1000,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,22,0x40,2000,192,192,576,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2136,LITTLE_FATUM,Little Fatum,Little Fatum,142,85100,1,7500,6500,1,442,894,51,198,10,66,17,148,148,97,10,12,0,7,44,0x3885,150,432,300,432,0,0,0,0,0,0,0,6395,5000,7938,100,11519,100,2465,3,0,0,0,0,0,0,0,0,0,0,4511,1 2137,MIMING,Miming,Miming,140,81200,1,7100,6300,1,430,652,120,120,90,66,105,77,133,77,10,12,0,0,20,0x3885,250,576,1140,504,0,0,0,0,0,0,0,6394,5000,7938,100,969,1,2853,3,0,0,0,0,0,0,0,0,0,0,4510,1 -2138,NYDHOG_MEMORY1_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2139,NYDHOG_MEMORY1_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2140,NYDHOG_MEMORY2_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2141,NYDHOG_MEMORY2_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2142,NYDHOG_MEMORY3_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -2143,NYDHOG_MEMORY3_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0xC9,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2138,NYDHOG_MEMORY1_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2139,NYDHOG_MEMORY1_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2140,NYDHOG_MEMORY2_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2141,NYDHOG_MEMORY2_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2142,NYDHOG_MEMORY3_1,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +2143,NYDHOG_MEMORY3_2,Nydhogg's Memory,Nydhogg's Memory,130,10,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0x161,200,1248,576,1248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2144,G_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,136,62600,1,0,0,1,412,822,155,102,23,99,59,129,91,45,10,12,1,4,42,0x3985,200,504,624,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2145,G_RAKE_SCARABA,Rake Scaraba,Rake Scaraba,139,67700,1,0,0,1,830,942,250,70,90,66,145,52,112,77,10,12,1,4,42,0x3985,150,588,768,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2146,G_S_NYDHOG,G_S_NYDHOG,G_S_NYDHOG,117,300000,0,0,0,2,840,1680,60,60,1,30,30,136,88,30,10,12,2,9,87,0x37B5,150,1596,1620,864,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 diff --git a/db/re/mob_skill_db.txt b/db/re/mob_skill_db.txt index 5ba654c93..662754b4b 100644 --- a/db/re/mob_skill_db.txt +++ b/db/re/mob_skill_db.txt @@ -5884,8 +5884,8 @@ 2086,Rake Scaraba@NPC_STONESKIN,attack,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6, 2086,Rake Scaraba@NPC_STONESKIN,chase,675,3,10000,1000,30000,no,self,myhpltmaxrate,50,,,,,,6, 2086,Rake Scaraba@PF_SPIDERWEB,chase,405,1,300,0,10000,yes,target,always,0,,,,,,7, -2086,Rake Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,19,0x81,,,,, -2086,Rake Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,0,6,0x3095,,,,, +2086,Rake Scaraba@NPC_EMOTION,chase,197,1,1000,0,5000,yes,self,always,0,19,0x181,,,,, +2086,Rake Scaraba@NPC_EMOTION,idle,197,1,3000,0,5000,yes,self,always,0,6,0x3195,,,,, 2087,Queen Scaraba@AL_HEAL,attack,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3, 2087,Queen Scaraba@AL_HEAL,attack,28,11,10000,0,5000,no,self,myhpltmaxrate,30,,,,,,3, 2087,Queen Scaraba@AL_HEAL,chase,28,11,10000,0,5000,no,friend,friendhpltmaxrate,60,,,,,,3, @@ -6428,14 +6428,17 @@ 2137,Miming@NPC_SILENCEATTACK,chase,178,2,500,700,5000,no,target,always,0,,,,,,32, 2138,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,35 2138,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,35 +2138,Nydhogg's Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2139,,,,,, 2139,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,36 2139,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,36 2140,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,37 2140,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,37 +2140,Nydhogg's Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2141,,,,,, 2141,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,38 2141,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,38 2142,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,39 2142,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,39 +2142,Nydhogg's Memory@NPC_SUMMONSLAVE,idle,196,1,10000,0,0,no,self,onspawn,0,2143,,,,,, 2143,Nydhogg's Memory@NPC_TALK,idle,682,10,2500,0,10000,yes,self,always,0,,,,,,,40 2143,Nydhogg's Memory@NPC_TALK,attack,682,10,10000,0,30000,yes,self,always,0,,,,,,,40 -- cgit v1.2.3-60-g2f50 From cafe335b38d41ec3986eedf5ecd156f354ea2c37 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 15:50:07 -0300 Subject: Merge of 995c3daa01ab74fb6f1f22aa218b0a0a139bdee2 (couldn't automatically merge) --Concerned skill are : RK_PHANTOMTHRUST, WL_WHITEIMPRISON, SEVERE_RAINSTORM, NETHERWORLD, FIRE_MANTLE Additionally fixed SO_STRIKING with same issue. Signed-off-by: shennetsind --- src/map/skill.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index e393e4293..848422f3c 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4043,7 +4043,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint clif->skill_nodamage(src,bl,skill_id,skill_lv,1); skill->blown(src,bl,distance_bl(src,bl)-1,unit_getdir(src),0); - if( battle->check_target(src,bl,BCT_ENEMY) ) + if( battle->check_target(src,bl,BCT_ENEMY) > 0 ) skill->attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag); break; @@ -5223,7 +5223,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui int bonus = 25 + 10 * skill_lv; bonus += (pc_checkskill(sd, SA_FLAMELAUNCHER)+pc_checkskill(sd, SA_FROSTWEAPON)+pc_checkskill(sd, SA_LIGHTNINGLOADER)+pc_checkskill(sd, SA_SEISMICWEAPON))*5; clif->skill_nodamage( src, bl, skill_id, skill_lv, - battle->check_target(src,bl,BCT_PARTY) ? + battle->check_target(src,bl,BCT_PARTY) > 0 ? sc_start2(bl, type, 100, skill_lv, bonus, skill->get_time(skill_id,skill_lv)) : 0 ); @@ -7740,7 +7740,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui break; case WL_WHITEIMPRISON: - if( (src == bl || battle->check_target(src, bl, BCT_ENEMY)) && !is_boss(bl) )// Should not work with bosses. + if( (src == bl || battle->check_target(src, bl, BCT_ENEMY) > 0 ) && !is_boss(bl) )// Should not work with bosses. { int rate = ( sd? sd->status.job_level : 50 ) / 4; @@ -11670,11 +11670,11 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; case UNT_SEVERE_RAINSTORM: - if( battle->check_target(&src->bl, bl, BCT_ENEMY) ) + if( battle->check_target(&src->bl, bl, BCT_ENEMY) > 0 ) skill->attack(BF_WEAPON,ss,&src->bl,bl,WM_SEVERE_RAINSTORM_MELEE,sg->skill_lv,tick,0); break; case UNT_NETHERWORLD: - if( !(status_get_mode(bl)&MD_BOSS) && ss != bl && battle->check_target(&src->bl, bl, BCT_PARTY) ) { + if( !(status_get_mode(bl)&MD_BOSS) && ss != bl && battle->check_target(&src->bl, bl, BCT_PARTY) > 0 ) { if( !(tsc && tsc->data[type]) ){ sc_start(bl, type, 100, sg->skill_lv, skill->get_time2(sg->skill_id,sg->skill_lv)); sg->limit = DIFF_TICK(tick,sg->tick); @@ -11811,7 +11811,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; case UNT_FIRE_MANTLE: - if( battle->check_target(&src->bl, bl, BCT_ENEMY) ) + if( battle->check_target(&src->bl, bl, BCT_ENEMY) > 0 ) skill->attack(BF_MAGIC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; -- cgit v1.2.3-60-g2f50 From 0e6dcf7291164716aa47940e5967489e13cebfb6 Mon Sep 17 00:00:00 2001 From: glighta Date: Thu, 21 Feb 2013 06:59:42 +0000 Subject: -Fix SC__SHADOWFORM not ending if target does not move after being warp. bugreport:7271 -- Thus allowing to inflict damage between map (only if both player don't move). -- Cleanup old map-check on move check. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17148 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 6 +++--- src/map/map.c | 4 ++-- src/map/unit.c | 13 +++++++++---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/map/battle.c b/src/map/battle.c index d06e02f6c..c8af6badc 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1143,7 +1143,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag if( sc && sc->data[SC__SHADOWFORM] ) { struct block_list *s_bl = map_id2bl(sc->data[SC__SHADOWFORM]->val2); - if( !s_bl ) { // If the shadow form target is not present remove the sc. + if( !s_bl || s_bl->m != bl->m ) { // If the shadow form target is not present remove the sc. status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); } else if( status_isdead(s_bl) || !battle->check_target(src,s_bl,BCT_ENEMY)) { // If the shadow form target is dead or not your enemy remove the sc in both. status_change_end(bl, SC__SHADOWFORM, INVALID_TIMER); @@ -1833,7 +1833,7 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list wd.div_ = skill->get_num(GS_CHAINACTION,skill_lv); wd.type = 0x08; } - else if(sc && sc->data[SC_FEARBREEZE] && sd->weapontype1==W_BOW + else if(sc && sc->data[SC_FEARBREEZE] && sd->weapontype1==W_BOW && (i = sd->equip_index[EQI_AMMO]) >= 0 && sd->inventory_data[i] && sd->status.inventory[i].amount > 1){ int chance = rand()%100; wd.type = 0x08; @@ -6166,4 +6166,4 @@ void battle_defaults(void) { battle->config_adjust = battle_adjust_conf; battle->get_enemy_area = battle_getenemyarea; battle->damage_area = battle_damage_area; -} \ No newline at end of file +} diff --git a/src/map/map.c b/src/map/map.c index 779070f0e..dbff42fa3 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -413,7 +413,7 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) if( bl->type == BL_PC && ((TBL_PC*)bl)->shadowform_id ) {//Shadow Form Target Moving struct block_list *d_bl; - if( (d_bl = map_id2bl(((TBL_PC*)bl)->shadowform_id)) == NULL || bl->m != d_bl->m || !check_distance_bl(bl,d_bl,10) ) { + if( (d_bl = map_id2bl(((TBL_PC*)bl)->shadowform_id)) == NULL || !check_distance_bl(bl,d_bl,10) ) { if( d_bl ) status_change_end(d_bl,SC__SHADOWFORM,INVALID_TIMER); ((TBL_PC*)bl)->shadowform_id = 0; @@ -438,7 +438,7 @@ int map_moveblock(struct block_list *bl, int x1, int y1, unsigned int tick) if( sc->data[SC__SHADOWFORM] ) {//Shadow Form Caster Moving struct block_list *d_bl; - if( (d_bl = map_id2bl(sc->data[SC__SHADOWFORM]->val2)) == NULL || bl->m != d_bl->m || !check_distance_bl(bl,d_bl,10) ) + if( (d_bl = map_id2bl(sc->data[SC__SHADOWFORM]->val2)) == NULL || !check_distance_bl(bl,d_bl,10) ) status_change_end(bl,SC__SHADOWFORM,INVALID_TIMER); } diff --git a/src/map/unit.c b/src/map/unit.c index 4732b89dd..798a6ef6f 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -406,7 +406,7 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int ud = unit_bl2ud(bl); if( ud == NULL) return 0; - + if (!(status_get_mode(bl)&MD_CANMOVE)) return 0; @@ -416,13 +416,13 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int ud->target_to = 0; return 0; } - + ud->state.walk_easy = flag&1; ud->target_to = tbl->id; ud->chaserange = range; //Note that if flag&2, this SHOULD be attack-range ud->state.attack_continue = flag&2?1:0; //Chase to attack. unit_set_target(ud, 0); - + sc = status_get_sc(bl); if (sc && sc->data[SC_CONFUSION]) //Randomize the target position map_random_dir(bl, &ud->to_x, &ud->to_y); @@ -432,7 +432,7 @@ int unit_walktobl(struct block_list *bl, struct block_list *tbl, int range, int set_mobstate(bl, flag&2); return 1; } - + if(DIFF_TICK(ud->canmove_tick, gettick()) > 0) { //Can't move, wait a bit before invoking the movement. add_timer(ud->canmove_tick+1, unit_walktobl_sub, bl->id, ud->target); @@ -2089,6 +2089,11 @@ int unit_remove_map_(struct block_list *bl, clr_type clrtype, const char* file, case BL_PC: { struct map_session_data *sd = (struct map_session_data*)bl; + if(sd->shadowform_id){ + struct block_list *d_bl = map_id2bl(sd->shadowform_id); + if( d_bl ) + status_change_end(d_bl,SC__SHADOWFORM,INVALID_TIMER); + } //Leave/reject all invitations. if(sd->chatID) chat_leavechat(sd,0); -- cgit v1.2.3-60-g2f50 From 14a406ee0e5c6ba25539cc98f27ff9c2b8047e2e Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:01:51 -0300 Subject: Fixed Chorus skill partner check Improved from the merge 2fec7b3c41bd3b1c5a94ba31789c433350ff98c8 Signed-off-by: shennetsind --- src/map/unit.c | 62 +++++++++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/src/map/unit.c b/src/map/unit.c index 798a6ef6f..a6d8fcf53 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -1148,41 +1148,41 @@ int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill_id, ui // Record the status of the previous skill) if(sd) { - if( (skill->get_inf2(skill_id)&INF2_ENSEMBLE_SKILL) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1 ) { - clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); + if( (skill->get_inf2(skill_id)&(INF2_ENSEMBLE_SKILL|INF2_CHORUS_SKILL)) && skill->check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1 ) { + clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 0; - } - + } + switch(skill_id){ - case SA_CASTCANCEL: - if(ud->skill_id != skill_id){ - sd->skill_id_old = ud->skill_id; - sd->skill_lv_old = ud->skill_lv; - } - break; - case BD_ENCORE: - //Prevent using the dance skill if you no longer have the skill in your tree. - if(!sd->skill_id_dance || pc_checkskill(sd,sd->skill_id_dance)<=0){ - clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); - return 0; + case SA_CASTCANCEL: + if(ud->skill_id != skill_id){ + sd->skill_id_old = ud->skill_id; + sd->skill_lv_old = ud->skill_lv; + } + break; + case BD_ENCORE: + //Prevent using the dance skill if you no longer have the skill in your tree. + if(!sd->skill_id_dance || pc_checkskill(sd,sd->skill_id_dance)<=0){ + clif->skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); + return 0; + } + sd->skill_id_old = skill_id; + break; + case WL_WHITEIMPRISON: + if( battle->check_target(src,target,BCT_SELF|BCT_ENEMY) < 0 ) { + clif->skill_fail(sd,skill_id,USESKILL_FAIL_TOTARGET,0); + return 0; + } + break; + case MG_FIREBOLT: + case MG_LIGHTNINGBOLT: + case MG_COLDBOLT: + sd->skill_id_old = skill_id; + sd->skill_lv_old = skill_lv; + break; } - sd->skill_id_old = skill_id; - break; - case WL_WHITEIMPRISON: - if( battle->check_target(src,target,BCT_SELF|BCT_ENEMY) < 0 ) { - clif->skill_fail(sd,skill_id,USESKILL_FAIL_TOTARGET,0); + if (!skill->check_condition_castbegin(sd, skill_id, skill_lv)) return 0; - } - break; - case MG_FIREBOLT: - case MG_LIGHTNINGBOLT: - case MG_COLDBOLT: - sd->skill_id_old = skill_id; - sd->skill_lv_old = skill_lv; - break; - } - if (!skill->check_condition_castbegin(sd, skill_id, skill_lv)) - return 0; } if( src->type == BL_MOB ) -- cgit v1.2.3-60-g2f50 From c2797dc5080c0b65dee81d3ad7770208daf6f7d9 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:05:27 -0300 Subject: Fixed renewal_exp modifier was affecting party members as well as self instead of only self. Modified version from a43cf4c84488d343a74e75722fee9a46a9dddebc Signed-off-by: shennetsind --- src/map/party.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/map/party.c b/src/map/party.c index f69a843fc..0d1048699 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -910,6 +910,9 @@ int party_exp_share(struct party_data* p, struct block_list* src, unsigned int b { struct map_session_data* sd[MAX_PARTY]; unsigned int i, c; +#ifdef RENEWAL_EXP + unsigned int job_exp_bonus, base_exp_bonus; +#endif nullpo_ret(p); @@ -926,8 +929,7 @@ int party_exp_share(struct party_data* p, struct block_list* src, unsigned int b job_exp/=c; zeny/=c; - if (battle_config.party_even_share_bonus && c > 1) - { + if (battle_config.party_even_share_bonus && c > 1) { double bonus = 100 + battle_config.party_even_share_bonus*(c-1); if (base_exp) base_exp = (unsigned int) cap_value(base_exp * bonus/100, 0, UINT_MAX); @@ -937,12 +939,17 @@ int party_exp_share(struct party_data* p, struct block_list* src, unsigned int b zeny = (unsigned int) cap_value(zeny * bonus/100, INT_MIN, INT_MAX); } +#ifdef RENEWAL_EXP + base_exp_bonus = base_exp; + job_exp_bonus = job_exp; +#endif + for (i = 0; i < c; i++) { #ifdef RENEWAL_EXP if( !(src && src->type == BL_MOB && ((TBL_MOB*)src)->db->mexp) ){ int rate = pc_level_penalty_mod(sd[i], (TBL_MOB*)src, 1); - base_exp = (unsigned int)cap_value(base_exp * rate / 100, 1, UINT_MAX); - job_exp = (unsigned int)cap_value(job_exp * rate / 100, 1, UINT_MAX); + base_exp = (unsigned int)cap_value(base_exp_bonus * rate / 100, 1, UINT_MAX); + job_exp = (unsigned int)cap_value(job_exp_bonus * rate / 100, 1, UINT_MAX); } #endif pc_gainexp(sd[i], src, base_exp, job_exp, false); -- cgit v1.2.3-60-g2f50 From 7d59a35f2a7c1c3aa99b223d3758448608581e8b Mon Sep 17 00:00:00 2001 From: euphyy Date: Wed, 6 Mar 2013 02:04:59 +0000 Subject: * Initial implementation of Archangel Wing Enchants script. * Added some Malangdo coin exchange NPCs, more will come later. * Updated Malangdo warp portals. * Fixed item ID 12220 and clarified documentation of 'getiteminfo' types 11 and 14 (bugreport:7256). * Minor Renewal item database update. * Applied changes from r17171 to SQL databases. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17172 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/pre-re/item_db.txt | 2 +- db/re/item_db.txt | 2 +- npc/merchants/coin_exchange.txt | 2 + npc/re/merchants/coin_exchange.txt | 2 +- npc/re/quests/quests_malangdo.txt | 193 ++++++++++++++++++++++++++++++++++++- sql-files/item_db.sql | 6 +- sql-files/item_db_re.sql | 46 ++++----- 7 files changed, 221 insertions(+), 32 deletions(-) diff --git a/db/pre-re/item_db.txt b/db/pre-re/item_db.txt index 633222feb..59d61be1c 100644 --- a/db/pre-re/item_db.txt +++ b/db/pre-re/item_db.txt @@ -4765,7 +4765,7 @@ 12217,Aspersio_5_Scroll,LV5 Aspersio Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(countitem(523)>0) { skilleffect "PR_ASPERSIO",0; sc_start SC_ASPERSIO,180000,5; delitem 523,1; } },{},{} 12218,Assumptio_5_Scroll,LV5 Assumptio Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ skilleffect "HP_ASSUMPTIO",0; sc_start SC_ASSUMPTIO,100000,5; },{},{} 12219,Wind_Walk_10_Scroll,LV10 Wind Walker Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ skilleffect "SN_WINDWALK",0; sc_start SC_WINDWALK,250000,5; },{},{} -12220,Adrenaline_Scroll,LV5 Adrenaline Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(getiteminfo(getequipid(EQI_HAND_R),14)==6||getiteminfo(getequipid(EQI_HAND_R),14)==7) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; } },{},{} +12220,Adrenaline_Scroll,LV5 Adrenaline Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ set .@type,getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; } },{},{} 12221,Megaphone_,Megaphone,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ input @megaphone$; announce strcharinfo(0) + ": " + @megaphone$,bc_all,0xFF0000; end; },{},{} 12225,Sweet_Candy_Striper,Sweet Candy Cane,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ pet 1245; },{},{} 12226,Examination1,Examination 1,0,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,10; sc_start SC_DEXFOOD,5400000,5; sc_start SC_ATKPOTION,5400000,22; sc_start SC_MATKFOOD,5400000,15; },{},{} diff --git a/db/re/item_db.txt b/db/re/item_db.txt index 87e352349..680f01d08 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -5519,7 +5519,7 @@ 12217,Aspersio_5_Scroll,LV5 Aspersio Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(countitem(523)>0) { skilleffect "PR_ASPERSIO",0; sc_start SC_ASPERSIO,180000,5; delitem 523,1; } },{},{} 12218,Assumptio_5_Scroll,LV5 Assumptio Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ skilleffect "HP_ASSUMPTIO",0; sc_start SC_ASSUMPTIO,100000,5; },{},{} 12219,Wind_Walk_10_Scroll,LV10 Wind Walker Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ skilleffect "SN_WINDWALK",0; sc_start SC_WINDWALK,250000,5; },{},{} -12220,Adrenaline_Scroll,LV5 Adrenaline Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(getiteminfo(getequipid(EQI_HAND_R),14)==6||getiteminfo(getequipid(EQI_HAND_R),14)==7) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; } },{},{} +12220,Adrenaline_Scroll,LV5 Adrenaline Scroll,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ set .@type,getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; } },{},{} 12221,Megaphone_,Megaphone,2,2,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ input @megaphone$; announce strcharinfo(0) + ": " + @megaphone$,bc_all,0xFF0000; end; },{},{} 12225,Sweet_Candy_Striper,Sweet Candy Cane,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ pet 1245; },{},{} 12226,Examination1,Examination 1,0,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,10; sc_start SC_DEXFOOD,5400000,5; sc_start SC_ATKPOTION,5400000,22; sc_start SC_MATKFOOD,5400000,15; },{},{} diff --git a/npc/merchants/coin_exchange.txt b/npc/merchants/coin_exchange.txt index a894485a8..c52db9787 100644 --- a/npc/merchants/coin_exchange.txt +++ b/npc/merchants/coin_exchange.txt @@ -13,6 +13,8 @@ //= 1.2 Optimized and merged into one file. [Euphy] //============================================================ +// Manuk & Splendide +//============================================================ - script ::merchant_13_2 -1,{ set .@n$, "["+strnpcinfo(1)+"]"; mes .@n$; diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt index 04fa93ce8..92afddca0 100644 --- a/npc/re/merchants/coin_exchange.txt +++ b/npc/re/merchants/coin_exchange.txt @@ -824,4 +824,4 @@ malangdo,150,135,5 script Roving Merchant 495,{ callfunc "F_mal_coin",1,"[Roving Merchant]",.@names$[.@i],.@items[.@i],0,200,0; next; } -} \ No newline at end of file +} diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt index 685da8b24..ac610cc65 100644 --- a/npc/re/quests/quests_malangdo.txt +++ b/npc/re/quests/quests_malangdo.txt @@ -3,14 +3,17 @@ //===== By: ================================================== //= Muad_Dib //===== Current Version: ===================================== -//= 1.1 +//= 1.2 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= -//= Quest NPCs related to Malangdo. +//= Quest NPCs related to Malangdo: +//== Help the bad cats in danger, Clean the Ship, +//== Help Chef Nyas, Archangel Wing Enchants //===== Additional Comments: ================================= //= 1.0 First version. [Euphy] //= 1.1 Added two quests. +//= 1.2 Added Archangel Wing Enchants. //============================================================ // Help the bad cats in danger :: mal_bad_guys @@ -1903,4 +1906,188 @@ mal_in02,187,58,3 script Chef Nyas 548,{ mes "If you don't have any business, don't touch vegetable and go away."; close; } -} \ No newline at end of file +} + +// Archangel Wing Enchants :: enc_angel +//============================================================ +malangdo,234,153,6 script Notice Board#mal 837,{ + mes "^0000FFThere's a hastily written message on this bulletin board.^000000"; + next; + mes "A fallen angel within will unlock a hidden enchantment to Archangel Wings."; + close; +} + +mal_in01,15,16,3 script Fallen Angel#mal 403,{ + disable_items; + if (checkweight(1201,1) == 0) { + mes "You are carrying too many items, please reduce them and come back!"; + close; + } + if (MaxWeight - Weight < 10000) { + mes "You have overweight, please reduce it and come back!"; + close; + } + if (getequipid(EQI_GARMENT) == 2573) { + if (Zeny >= 1000000) + set .@menu$, "Enchant Archangel Wing"; + else + set .@menu$, "^999999You do not have enough zeny!^000000"; + } else + set .@menu$, "^999999You have not equipped the Archangel Wing!^000000"; + mes "[Fallen Angel]"; + mes "You seem like a poor guy!"; + next; + mes "[Fallen Angel]"; + mes "If you have an Archangel Wing, I will enchant my capability into the useless 4th slot. Would you like me to do so?"; + next; + switch(select("What is that?:"+.@menu$+":Enchant Initialization")) { + case 1: + switch(select("Stop speaking:What are you going to do?")) { + case 1: + mes "[Fallen Angel]"; + mes "What did you say?"; + close; + case 2: + mes "[Fallen Angel]"; + mes "I can enchant my capability into your Archangel Wing if you pay 1,000,000 zeny. But you can't enchant it again without resetting it."; + next; + mes "[Fallen Angel]"; + mes "The enchantment is dangerous, so ^ff0000the wing might be damaged^000000! Nevertheless, my good blessing will retain the ^0000ffcard and refine level^0000ff!"; + close; + } + case 2: + if (Zeny < 1000000) { + mes "[Fallen Angel]"; + mes "I can't do it if you can't pay!"; + close; + } + mes "[Fallen Angel]"; + mes "There are 2 important notices. First, the enchantment requires ^0000ff1,000,000 zeny^000000."; + next; + mes "[Fallen Angel]"; + mes "Second, ^ff0000although the rate is not high, the Archangel Wing might be damaged^000000! This is very unlucky!"; + mes "If you can accept these conditions, I will enchant the wing for you."; + next; + if(select("Let me consider...:I accept, let's enchant!") == 1) { + mes "[Fallen Angel]"; + mes "Ok! Take your time to consider!"; + close; + } + specialeffect2 EF_REPAIRWEAPON; + progressbar "ffff00",2; + if (getequipisequiped(EQI_GARMENT) == 0) { + mes "[Fallen Angel]"; + mes "The Archangel Wing has been taken out!"; + close; + } + if (getequipid(EQI_GARMENT) != 2573) { + mes "[Fallen Angel]"; + mes "Don't take off the item!"; + close; + } + if (getequipcardid(EQI_GARMENT,3)) { + mes "[Fallen Angel]"; + mes "This Archangel Wing is enchanted! Please initialize it or bring another Archangel Wing for me!"; + close; + } + set .@equip_refine, getequiprefinerycnt(EQI_GARMENT); + setarray .@equip_card[0], getequipcardid(EQI_GARMENT,0),getequipcardid(EQI_GARMENT,1),getequipcardid(EQI_GARMENT,2); + + set .@i, rand(1,900); + if (.@i < 2) set .@enchant,4848; //Immuned1 + else if (.@i < 3) set .@enchant,4849; //Cranial1 + else if (.@i < 4) set .@enchant,4852; //Heal_Amount5 + else if (.@i < 9) set .@enchant,4853; //S_Str + else if (.@i < 14) set .@enchant,4854; //S_Agi + else if (.@i < 19) set .@enchant,4855; //S_Vital + else if (.@i < 24) set .@enchant,4856; //S_Int + else if (.@i < 29) set .@enchant,4857; //S_Dex + else if (.@i < 34) set .@enchant,4858; //S_Luck + else if (.@i < 39) set .@enchant,4851; //Heal_Amount4 + else if (.@i < 49) set .@enchant,4850; //Heal_Amount3 + else if (.@i < 74) set .@enchant,4760; //Matk1 + else if (.@i < 84) set .@enchant,4761; //Matk2 + else if (.@i < 109) set .@enchant,4817; //Sharp2 + else if (.@i < 119) set .@enchant,4816; //Sharp3 + else if (.@i < 144) set .@enchant,4814; //Spell2 + else if (.@i < 154) set .@enchant,4813; //Spell3 + else if (.@i < 179) set .@enchant,4833; //Expert_Archer2 + else if (.@i < 189) set .@enchant,4834; //Expert_Archer3 + else if (.@i < 214) set .@enchant,4810; //Fighting_Spirit2 + else if (.@i < 224) set .@enchant,4809; //Fighting_Spirit3 + else if (.@i < 259) set .@enchant,4701; //Strength2 + else if (.@i < 294) set .@enchant,4731; //Agility2 + else if (.@i < 329) set .@enchant,4721; //Dexterity2 + else if (.@i < 364) set .@enchant,4741; //Vitality2 + else if (.@i < 399) set .@enchant,4751; //Luck2 + else if (.@i < 434) set .@enchant,4711; //Inteligence2 + else if (.@i < 504) set .@enchant,4700; //Strength1 + else if (.@i < 574) set .@enchant,4730; //Agility1 + else if (.@i < 644) set .@enchant,4720; //Dexterity1 + else if (.@i < 714) set .@enchant,4740; //Vitality1 + else if (.@i < 784) set .@enchant,4750; //Luck1 + else if (.@i < 854) set .@enchant,4710; //Inteligence1 + else set .@enchant,0; + + set Zeny, Zeny - 1000000; + delequip EQI_GARMENT; + if (.@enchant == 0) { + mes "[Fallen Angel]"; + mes "Be merciful to the survivor,"; + mes "Send flowers to the dead."; + next; + mes "[Fallen Angel]"; + mes "Help for justice,"; + mes "Elimination of evil."; + next; + mes "[Fallen Angel]"; + mes "But the important point is... the Archangel Wing is damaged!"; + close; + } + getitem2 2573,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@enchant; //Archangel_Wing + if (.@i < 4) + announce strcharinfo(0)+" has enchanted Archangel Wing with amazing capability!",bc_all,0xFF0000,FW_NORMAL,10; + mes "[Fallen Angel]"; + mes "Take it!"; + mes "I believe that you will become the dominator of the new world!"; + close; + case 3: + mes "[Fallen Angel]"; + mes "Initialization requires ^0000ff3 units of Silvervine Fruit^000000. The wing will not be damaged except for the enchanted capability."; + next; + if(select("Let me consider...:Ok, I want initialize it.") == 1) { + mes "[Fallen Angel]"; + mes "Ok! Take your time to consider!"; + close; + } + specialeffect2 EF_REPAIRWEAPON; + progressbar "ffff00",2; + if (getequipisequiped(EQI_GARMENT) == 0) { + mes "[Fallen Angel]"; + mes "The Archangel Wing has been taken out!"; + close; + } + if (getequipid(EQI_GARMENT) != 2573) { + mes "[Fallen Angel]"; + mes "Oh... you have unequipped the Archangel Wing!"; + close; + } + if (countitem(6417) < 3) { + mes "[Fallen Angel]"; + mes "I can't do it if you can't pay!"; + close; + } + if (getequipcardid(EQI_GARMENT,3) < 4700) { // Armor Enchant System + mes "[Fallen Angel]"; + mes "This equipment has not been enchanted, please check it again!"; + close; + } + set .@equip_refine, getequiprefinerycnt(EQI_GARMENT); + setarray .@equip_card[0], getequipcardid(EQI_GARMENT,0),getequipcardid(EQI_GARMENT,1),getequipcardid(EQI_GARMENT,2); + delequip EQI_GARMENT; + getitem2 2573,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],0; //Archangel_Wing + mes "[Fallen Angel]"; + mes "Take it!"; + close; + } +} diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index 9b0c8fff4..7271e9d0d 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -4796,7 +4796,7 @@ REPLACE INTO `item_db` VALUES (12216,'Inc_Agi_10_Scroll','LV10 Agil Scroll',2,2, REPLACE INTO `item_db` VALUES (12217,'Aspersio_5_Scroll','LV5 Aspersio Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(countitem(523)>0) { skilleffect "PR_ASPERSIO",0; sc_start SC_ASPERSIO,180000,5; delitem 523,1; }',NULL,NULL); REPLACE INTO `item_db` VALUES (12218,'Assumptio_5_Scroll','LV5 Assumptio Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'skilleffect "HP_ASSUMPTIO",0; sc_start SC_ASSUMPTIO,100000,5;',NULL,NULL); REPLACE INTO `item_db` VALUES (12219,'Wind_Walk_10_Scroll','LV10 Wind Walker Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'skilleffect "SN_WINDWALK",0; sc_start SC_WINDWALK,250000,5;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(getiteminfo(getequipid(EQI_HAND_R),14)==6||getiteminfo(getequipid(EQI_HAND_R),14)==7) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; }',NULL,NULL); +REPLACE INTO `item_db` VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'set .@type,getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; }',NULL,NULL); REPLACE INTO `item_db` VALUES (12221,'Megaphone_','Megaphone',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'input @megaphone$; announce strcharinfo(0) + ": " + @megaphone$,bc_all,0xFF0000; end;',NULL,NULL); REPLACE INTO `item_db` VALUES (12225,'Sweet_Candy_Striper','Sweet Candy Cane',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1245;',NULL,NULL); REPLACE INTO `item_db` VALUES (12226,'Examination1','Examination 1',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,10; sc_start SC_DEXFOOD,5400000,5; sc_start SC_ATKPOTION,5400000,22; sc_start SC_MATKFOOD,5400000,15;',NULL,NULL); @@ -4805,7 +4805,7 @@ REPLACE INTO `item_db` VALUES (12228,'Examination3','Examination 3',0,20,NULL,50 REPLACE INTO `item_db` VALUES (12229,'Examination4','Examination 4',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,3; sc_start SC_AGIFOOD,5400000,5; sc_start SC_VITFOOD,5400000,10; sc_start SC_MATKFOOD,5400000,52;',NULL,NULL); REPLACE INTO `item_db` VALUES (12230,'Examination5','Examination 5',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_INTFOOD,5400000,3; sc_start SC_DEXFOOD,5400000,12; sc_start SC_ATKPOTION,5400000,20; sc_start SC_MATKFOOD,5400000,20;',NULL,NULL); REPLACE INTO `item_db` VALUES (12231,'Examination6','Examination 6',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100; sc_start SC_SpeedUp0,5400000,0; sc_start SC_STRFOOD,5400000,6; sc_start SC_DEXFOOD,5400000,6; sc_start SC_AGIFOOD,5400000,6; sc_start SC_INTFOOD,5400000,6; sc_start SC_VITFOOD,5400000,6; sc_start SC_LUKFOOD,5400000,6; sc_start SC_ATKPOTION,5400000,24; sc_start SC_MATKFOOD,5400000,24;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12232,'Gingerbread','Ginger Bread',2,20,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db` VALUES (12232,'Gingerbread','Ginger Bread',2,20,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION1,900000,0; sc_start SC_SpeedUp0,900000,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12233,'Kvass','Kvass',0,20,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100;',NULL,NULL); REPLACE INTO `item_db` VALUES (12234,'Cacao99','Fierce Cacao 99%',0,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 25,0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12235,'Strawberry_Choco','Chocolate Strawberry',2,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 0,5; skilleffect "AL_BLESSING",0; sc_start SC_BLESSING,240000,10;',NULL,NULL); @@ -4987,7 +4987,7 @@ REPLACE INTO `item_db` VALUES (12410,'Spareribs_H','Spareribs H',2,NULL,NULL,0,N REPLACE INTO `item_db` VALUES (12411,'HE_Battle_Manual','HE Battle Manual',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_EXPBOOST,900000,200;',NULL,NULL); REPLACE INTO `item_db` VALUES (12412,'HE_Bubble_Gum','HE Bubble Gum',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,900000,300;',NULL,NULL); REPLACE INTO `item_db` VALUES (12413,'PCBang_Coupon_Box2','PCBang Coupon Box2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db` VALUES (12414,'Guarana_Candy','Guarana Candy',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCASPDRATE,1800000,10; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12414,'Guarana_Candy','Guarana Candy',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION0,1800000,0; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0;',NULL,NULL); REPLACE INTO `item_db` VALUES (12415,'Siege_Teleport_Scroll2','Siege Teleport Scroll2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12416,'LUcky_Egg_C3','LUcky Egg C3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12417,'Boost500','Boost500',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index e27070ac4..becbfdc65 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -1626,7 +1626,7 @@ REPLACE INTO `item_db_re` VALUES (2569,'Mercy_Shawl','Mercy Shawl',5,20,NULL,400 REPLACE INTO `item_db_re` VALUES (2570,'Judgement_Shawl','Judgement Shawl',5,20,NULL,400,NULL,12,NULL,NULL,0x00000100,7,2,4,NULL,'100',1,0,'bonus bFlee,5; bonus3 bAutoSpellWhenHit,"AB_ORATIO",getskilllv("AB_ORATIO") ? getskilllv("AB_ORATIO") : 2,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2571,'Para_Team_Manteau2','Eden Team Manteau II',5,NULL,NULL,0,NULL,18,NULL,NULL,0xFFFFFFFF,7,2,4,NULL,'60',NULL,0,'bonus bFlee,12; bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL); #2572, -REPLACE INTO `item_db_re` VALUES (2573,'Archangel_Wings','Archangel Wings',5,NULL,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,7,2,4,NULL,NULL,1,1,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2573,'Archangel_Wing','Archangel Wings',5,NULL,NULL,200,NULL,18,NULL,1,0xFFFFFFFF,7,2,4,NULL,NULL,1,1,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (2574,'Urj_Manteau','Urj Manteau',5,20,NULL,600,NULL,20,NULL,NULL,0x00000080,8,2,4,NULL,'100',1,0,'bonus bMaxHPRate,2; bonus2 bSubEle,Ele_Neutral,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2575,'Pertz_Manteau','Pertz Manteau',5,20,NULL,600,NULL,16,NULL,NULL,0x00000080,8,2,4,NULL,'100',1,0,'bonus bFlee,10; bonus bCritical,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2576,'Adventurer\'s_Backpack','Adventurer\'s Backpack',5,NULL,NULL,200,NULL,20,NULL,1,0xFFFFFFFF,7,2,4,NULL,NULL,1,2,'skill "BS_GREED",1; if(getrefine()>6) { if(readparam(bStr)>=90){ bonus bBaseAtk,20; } if(readparam(bInt)>=90){ bonus bMatk,30; } if(readparam(bVit)>=90){ bonus2 bSubEle,Ele_Neutral,10; } if(readparam(bAgi)>=90){ bonus bAspdRate,8; } if(readparam(bDex)>=90){ bonus bLongAtkRate,5; } if(readparam(bLuk)>=90){ bonus bCritAtkRate,10; } } if(getrefine()>8) { if(readparam(bStr)>=90){ bonus bBaseAtk,10; } if(readparam(bInt)>=90){ bonus bMatk,20; } if(readparam(bVit)>=90){ bonus2 bSubEle,Ele_Neutral,5; } if(readparam(bAgi)>=90){ bonus bAspd,1; } if(readparam(bDex)>=90){ bonus bLongAtkRate,5; } if(readparam(bLuk)>=90){ bonus bCritAtkRate,5; } }',NULL,NULL); @@ -5381,7 +5381,7 @@ REPLACE INTO `item_db_re` VALUES (12216,'Inc_Agi_10_Scroll','LV10 Agil Scroll',2 REPLACE INTO `item_db_re` VALUES (12217,'Aspersio_5_Scroll','LV5 Aspersio Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(countitem(523)>0) { skilleffect "PR_ASPERSIO",0; sc_start SC_ASPERSIO,180000,5; delitem 523,1; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12218,'Assumptio_5_Scroll','LV5 Assumptio Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'skilleffect "HP_ASSUMPTIO",0; sc_start SC_ASSUMPTIO,100000,5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12219,'Wind_Walk_10_Scroll','LV10 Wind Walker Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'skilleffect "SN_WINDWALK",0; sc_start SC_WINDWALK,250000,5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(getiteminfo(getequipid(EQI_HAND_R),14)==6||getiteminfo(getequipid(EQI_HAND_R),14)==7) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12220,'Adrenaline_Scroll','LV5 Adrenaline Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'set .@type,getiteminfo(getequipid(EQI_HAND_R),11); if (.@type==6||.@type==7||.@type==8) { skilleffect "BS_ADRENALINE",0; sc_start SC_ADRENALINE,150000,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12221,'Megaphone_','Megaphone',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'input @megaphone$; announce strcharinfo(0) + ": " + @megaphone$,bc_all,0xFF0000; end;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12225,'Sweet_Candy_Striper','Sweet Candy Cane',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1245;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12226,'Examination1','Examination 1',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,10; sc_start SC_DEXFOOD,5400000,5; sc_start SC_ATKPOTION,5400000,22; sc_start SC_MATKFOOD,5400000,15;',NULL,NULL); @@ -5390,7 +5390,7 @@ REPLACE INTO `item_db_re` VALUES (12228,'Examination3','Examination 3',0,20,NULL REPLACE INTO `item_db_re` VALUES (12229,'Examination4','Examination 4',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_STRFOOD,5400000,3; sc_start SC_AGIFOOD,5400000,5; sc_start SC_VITFOOD,5400000,10; sc_start SC_MATKFOOD,5400000,52;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12230,'Examination5','Examination 5',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_SpeedUp0,5400000,0; percentheal 100,100; sc_start SC_INTFOOD,5400000,3; sc_start SC_DEXFOOD,5400000,12; sc_start SC_ATKPOTION,5400000,20; sc_start SC_MATKFOOD,5400000,20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12231,'Examination6','Examination 6',0,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100; sc_start SC_SpeedUp0,5400000,0; sc_start SC_STRFOOD,5400000,6; sc_start SC_DEXFOOD,5400000,6; sc_start SC_AGIFOOD,5400000,6; sc_start SC_INTFOOD,5400000,6; sc_start SC_VITFOOD,5400000,6; sc_start SC_LUKFOOD,5400000,6; sc_start SC_ATKPOTION,5400000,24; sc_start SC_MATKFOOD,5400000,24;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12232,'Gingerbread','Ginger Bread',2,20,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12232,'Gingerbread','Ginger Bread',2,20,NULL,150,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION1,900000,0; sc_start SC_SpeedUp0,900000,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12233,'Kvass','Kvass',0,20,NULL,200,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 100,100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12234,'Cacao99','Fierce Cacao 99%',0,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 25,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12235,'Strawberry_Choco','Chocolate Strawberry',2,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'percentheal 0,5; skilleffect "AL_BLESSING",0; sc_start SC_BLESSING,240000,10;',NULL,NULL); @@ -5572,7 +5572,7 @@ REPLACE INTO `item_db_re` VALUES (12410,'Spareribs_H','Spareribs H',2,NULL,NULL, REPLACE INTO `item_db_re` VALUES (12411,'HE_Battle_Manual','HE Battle Manual',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_EXPBOOST,900000,200;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12412,'HE_Bubble_Gum','HE Bubble Gum',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ITEMBOOST,900000,300;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12413,'PCBang_Coupon_Box2','PCBang Coupon Box2',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12414,'Guarana_Candy','Guarana Candy',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCASPDRATE,1800000,10; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12414,'Guarana_Candy','Guarana Candy',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_ASPDPOTION0,1800000,0; sc_start SC_INCREASEAGI,140000,5; skilleffect "AL_INCAGI",0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12415,'Siege_Teleport_Scroll2','Siege Teleport Scroll2',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12416,'LUcky_Egg_C3','LUcky Egg C3',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12417,'Boost500','Boost500',2,100,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -7290,30 +7290,30 @@ REPLACE INTO `item_db_re` VALUES (16678,'Universal_Catalog_Gold_Box50','Universa REPLACE INTO `item_db_re` VALUES (16679,'Universal_Catalog_Gold_Box10','Universal Catalog Gold 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16680,'Universal_Catalog_Gold_Box50','Universal Catalog Gold 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,50;',NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (16740,'The_Sea_God\'s_Call_23_Hour_Box','The Sea God\'s Call 23 Hour Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16741,'Cutlass_1_Day_Box','Cutlass 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16742,'Cutlass_7_Day_Box','Cutlass 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16743,'Marlin_1_Day_Box','Marlin 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1489,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16744,'Marlin_7_Day_Box','Marlin 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1489,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16745,'Pompano_1_Day_Box','Pompano 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13068,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16746,'Pompano_7_Day_Box','Pompano 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13068,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16747,'Tuna_1_Day_Box','Tuna 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 16016,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16748,'Tuna_7_Day_Box','Tuna 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 16016,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16749,'Malangdo_Crab_1_Day_Box','Malangdo Crab 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18107,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16750,'Malangdo_Crab_7_Day_Box','Malangdo Crab 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18107,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16751,'Zebra_Eel_1_Day_Box','Zebra Eel 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18108,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16752,'Zebra_Eel_7_Day_Box','Zebra Eel 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18108,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16740,'Ptotection_Seagod_Box','The Sea God\'s Call 23 Hour Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16741,'Hairtail_Box1,'Cutlass 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16742,'Hairtail_Box2','Cutlass 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16743,'Spearfish_Box1','Marlin 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1489,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16744,'Spearfish_Box2','Marlin 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1489,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16745,'Saurel_Box1','Pompano 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13068,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16746,'Saurel_Box2','Pompano 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13068,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16747,'Tuna_Box1','Tuna 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 16016,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16748,'Tuna_Box2','Tuna 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 16016,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16749,'Malang_Crab_Box1','Malangdo Crab 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18107,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16750,'Malang_Crab_Box2','Malangdo Crab 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18107,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16751,'Brindle_Eel_Box1','Zebra Eel 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18108,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16752,'Brindle_Eel_Box2','Zebra Eel 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18108,604800;',NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (16763,'The_Sea_God\'s_Call_7_Day_Box','The Sea God\'s Call 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16764,'The_Sea_God\'s_Call_15_Day_Box','The Sea God\'s Call 15 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,1209600;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16765,'Octopus_Hunting_Skewer_23_Hour_Box','Octopus Hunting Skewer 23 Hour Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16766,'Octopus_Hunting_Skewer_3_Day_Box','Octopus Hunting Skewer 3 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,259200;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16767,'Octopus_Hunting_Skewer_7_Day_Box','Octopus Hunting Skewer 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16763,'Ptotection_Seagod_Box2','The Sea God\'s Call 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16764,'Ptotection_Seagod_Box3','The Sea God\'s Call 15 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,1209600;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16765,'Octo_Hstick_Box','Octopus Hunting Skewer 23 Hour Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16766,'Octo_Hstick_Box2','Octopus Hunting Skewer 3 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,259200;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16767,'Octo_Hstick_Box3','Octopus Hunting Skewer 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,604800;',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (16776,'Universal_Catalog_Gold_Box10','Universal Catalog Gold 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16777,'Universal_Catalog_Gold_Box50','Universal Catalog Gold 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,50;',NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (16998,'Archangel_Wings_Box','Archangel Wings Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2573,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16998,'Archangel_Wing_Box','Archangel Wings Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2573,1;',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (17155,'Enhance_Huuma_Shuriken_Box','Enhance Huuma Shuriken Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13316,86400;',NULL,NULL); # Mechanic/Genetic Cannonballs -- cgit v1.2.3-60-g2f50 From 000dd6aa4dff13e8cfb7d0f58d6b89df1bad0e05 Mon Sep 17 00:00:00 2001 From: euphyy Date: Sat, 9 Mar 2013 20:55:52 +0000 Subject: * Added remaining Malangdo coin traders. * Renewal item database update: -- Implemented nearly all remaining Malangdo items. -- Added Upg_* boxes (follow-up r17180). -- Corrected many kRO names. * Updated Renewal item_trade database for Dewata, Malangdo, and Upg_* boxes. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17186 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/re/item_db.txt | 23 ++++---- sql-files/item_db_re.sql | 90 +++++++++++++++++++------------- sql-files/upgrades/2013-03-06--00-00.sql | 2 +- 3 files changed, 68 insertions(+), 47 deletions(-) diff --git a/db/re/item_db.txt b/db/re/item_db.txt index 680f01d08..e551a3e2f 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -6233,7 +6233,7 @@ 13205,Poison_Sphere,Poison Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; bonus2 bAddEff,Eff_Poison,500; },{},{} 13206,Blind_Sphere,Blind Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Blind,500; },{},{} 13207,Freezing_Sphere,Freezing Sphere,10,80,,5,50,,,,0x01000000,7,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{} -13208,Gong_Bug,Gong Bug,10,0,,20,50,,,,0x01000000,7,2,32768,,50,,3,{},{},{} +13208,Gong_Bug,Sow Bug,10,0,,20,50,,,,0x01000000,7,2,32768,,50,,3,{ /*bonus2 bAddEff,Eff_Stun,?;*/ },{},{} // Shurikens & Kunais 13250,Shuriken,Shuriken,10,4,,5,10,,,,0x02000000,7,2,32768,,1,,6,{},{},{} 13251,Nimbus_Shuriken,Nimbus Shuriken,10,10,,5,30,,,,0x02000000,7,2,32768,,20,,6,{},{},{} @@ -6278,7 +6278,10 @@ 13289,Petti_Noodle_To_Throw,Throwing Petite Tail Soup,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_PUTTI_TAILS_NOODLES,300000,20; },{},{} 13290,Black_Thing_To_Throw,Throwing Black Mass,10,100,,50,0,,,,0x00040000,8,2,32768,,99,,9,{ sc_start SC_STOMACHACHE,60000,rand(5,10); },{},{} // More Shurikens & Kunais -13294,Explosive_Kunai,Explosive Kunai,10,100,,50,30,,,,0x02000000,7,2,32768,,100,,7,{ bonus bAtkEle,Ele_Neutral; },{},{} +13291,Starfish,Starfish,10,0,,5,110,,,,0x02000000,7,2,32768,,50,,7,{ bonus bAtkEle,Ele_Neutral; /*bonus2 bAddEff,Eff_Stun,?;*/ },{},{} +13292,Dried_Squid,Dried Squid,10,10,,20,50,,,,0x02000000,7,2,32768,,1,,7,{ bonus bAtkEle,Ele_Neutral; /*bonus2 bAddEff,Eff_Blind,?;*/ },{},{} +13293,Flying_Fish,Flying Fish,10,10,,20,50,,,,0x02000000,7,2,32768,,1,,6,{ bonus bAtkEle,Ele_Neutral; /*bonus2 bAddEff,Eff_Bleeding,?;*/ },{},{} +13294,Explosive_Kunai,Explosive Kunai,10,100,,30,50,,,,0x02000000,7,2,32768,,100,,7,{ bonus bAtkEle,Ele_Neutral; },{},{} // Ninja Fuuma Shurikens 13300,Huuma_Bird_Wing,Huuma Wing Shuriken,4,90000,,3000,150,,1,0,0x02000000,7,2,34,4,65,1,22,{ bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Wind; bonus bDex,-2; bonus bAgi,-1; },{},{} 13301,Huuma_Giant_Wheel,Huuma Giant Wheel Shuriken,4,40000,,2500,50,,1,3,0x02000000,7,2,34,4,42,1,22,{ bonus bUnbreakableWeapon,0; bonus2 bAddEff,Eff_Bleeding,100; },{},{} @@ -7302,10 +7305,10 @@ //15033, //15034, //15035, -15036,Urj_Plate,Urj Plate,5,20,,3000,,110,,0,0x00000080,8,2,16,,100,1,0,{ bonus bMdef,10; bonus bMaxHPRate,getequiprefinerycnt(EQI_ARMOR); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubEle,Ele_Neutral,5; },{},{} -15037,Pertz_Plate,Pertz Plate,5,20,,3000,,110,,0,0x00000080,8,2,16,,100,1,0,{ bonus bMdef,10; bonus bBaseAtk,20; bonus bFlee,17; },{},{} -15038,Sabath's_Cloth,Sabath's Cloth,5,20,,100,,45,,1,0x00001000,7,2,16,,100,1,0,{ bonus bLuk,3; bonus3 bAutoSpell,"ASC_METEORASSAULT",getskilllv("ASC_METEORASSAULT"),10; },{},{} -15039,Nabeu's_Cloth,Nabeu's Cloth,5,20,,100,,45,,1,0x00001000,7,2,16,,100,1,0,{ bonus bStr,2; bonus bInt,2; },{},{} +15036,Ur_Plate,Urj Plate,5,20,,3000,,110,,0,0x00000080,8,2,16,,100,1,0,{ bonus bMdef,10; bonus bMaxHPRate,getequiprefinerycnt(EQI_ARMOR); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubEle,Ele_Neutral,5; },{},{} +15037,Peuz_Plate,Pertz Plate,5,20,,3000,,110,,0,0x00000080,8,2,16,,100,1,0,{ bonus bMdef,10; bonus bBaseAtk,20; bonus bFlee,17; },{},{} +15038,Sabah_Cloth,Sabath's Cloth,5,20,,100,,45,,1,0x00001000,7,2,16,,100,1,0,{ bonus bLuk,3; bonus3 bAutoSpell,"ASC_METEORASSAULT",getskilllv("ASC_METEORASSAULT"),10; },{},{} +15039,Nab_Cloth,Nabeu's Cloth,5,20,,100,,45,,1,0x00001000,7,2,16,,100,1,0,{ bonus bStr,2; bonus bInt,2; },{},{} //15040, //15041, 15042,White_Wing_Suit,White Wing Suit,5,20,,100,,45,,1,0x00000800,7,2,16,,100,1,0,{ bonus bLongAtkRate,getrefine()*2; bonus bFlee,getrefine(); },{},{} @@ -7313,12 +7316,12 @@ 15044,Green_Surgical_Gown,Green Surgical Gown,5,56000,,660,,66,,1,0x00040000,7,2,16,,100,1,0,{ bonus bDex,1; bonus bMaxSP,30; },{},{} //15045, 15046,Siege_Plate,Siege Plate,5,0,,3300,,85,,1,0x006444A2,7,2,16,,95,1,0,{ bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bHealpower2,12; bonus bAddItemHealRate,12; } if(getrefine()>8) { bonus bMaxHPRate,25; } },{},{} -15047,Siege_Suit,Siege Suit,5,0,,750,,50,,1,0x036E5CEA,7,2,16,,95,1,0,{ bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bFlee2,5; bonus bLongAtkDef,20; } if(getrefine()>8) { bonus bMaxHPRate,15; } },{},{} +15047,Siege_Suits,Siege Suit,5,0,,750,,50,,1,0x036E5CEA,7,2,16,,95,1,0,{ bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bFlee2,5; bonus bLongAtkDef,20; } if(getrefine()>8) { bonus bMaxHPRate,15; } },{},{} 15048,Siege_Robe,Siege Robe,5,0,,500,,40,,1,0x00818315,7,2,16,,95,1,0,{ bonus bMdef,20; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bFlee,5; bonus bLongAtkDef,15; } if(getrefine()>8) { bonus bMaxHP,1000; bonus bMaxSP,100; } },{},{} //15049, //15050, -15051,Bakunawa_Scale_Armor,Bakunawa Scale Armor,5,20,,500,,55,,0,0xFFFFFFFF,7,2,16,,1,1,0,{ bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,1; },{},{} -15052,Bayani_Bakunawa_Scale_Armor,Bayani Bakunawa Scale Armor,5,20,,500,,55,,1,0xFFFFFFFF,7,2,16,,1,1,0,{ bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,2; },{},{} +15051,Bakonawa_Armor,Bakunawa Scale Armor,5,20,,500,,55,,0,0xFFFFFFFF,7,2,16,,1,1,0,{ bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,1; },{},{} +15052,Bayani_Bakonawa_Armor,Bayani Bakunawa Scale Armor,5,20,,500,,55,,1,0xFFFFFFFF,7,2,16,,1,1,0,{ bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,2; },{},{} 15053,Special_Ninja_Suit,Special Ninja Suit,5,10000,,1200,,70,,0,0x02000000,7,2,16,,100,1,0,{ bonus bAgi,1+(getrefine()/3); },{},{} 15054,Ninja_Scale_Armor,Ninja Scale Armor,5,10000,,1800,,90,,1,0x02000000,7,2,16,,100,1,0,{ bonus bMaxHPRate,15; bonus bMaxSPRate,-30; },{},{} 15055,Armor_of_Nothingness,Armor of Nothingness,5,10000,,1500,,60,,1,0x02000000,7,2,16,,100,1,0,{ bonus bAgi,1; },{},{} @@ -7339,7 +7342,7 @@ //16012, 16013,Judgement_Mace1,Judgement Mace I,4,20,,1200,140:180,,1,2,0x00000100,2,2,2,3,100,1,8,{ bonus bStr,1; bonus bInt,1; autobonus "{ bonus2 bAddRace,RC_Demon,20; }",10,7000,BF_WEAPON|BF_MAGIC,"{ specialeffect2 EF_BLOODDRAIN; }"; },{},{} 16014,P_Mace3,Eden Mace III,4,0,,0,172,,1,0,0x0004C5B3,7,2,2,3,60,0,8,{},{},{} -//16015, +16015,Cat_Club,Cat Club,4,20,,700,88,,1,3,0x0004C5B3,7,2,2,1,1,1,8,{ bonus2 bAddRace,RC_Brute,15; },{},{} 16016,Tuna,Tuna,4,0,,0,180,,1,0,0x0004C5B3,7,2,2,1,50,0,8,{ bonus bUnbreakableWeapon,0; bonus2 bAddEff,Eff_Stun,100; bonus3 bAutoSpell,"SM_BASH",5+5*(getskilllv("SM_BASH")==10),10; if(BaseLevel>99) { bonus bBaseAtk,20; } },{},{} 16017,Bloody_Cross,Bloody Cross,4,20,,1500,170,,1,0,0x00008110,7,2,2,4,100,1,8,{ bonus bAtkEle,Ele_Dark; bonus3 bAutoSpell,"WL_HELLINFERNO",1,10+(getrefine()*5); },{},{} 16018,Judgement_Mace2,Judgement Mace II,4,20,,1200,170:180,,1,1,0x00000100,2,2,2,3,130,1,8,{ bonus bStr,2; bonus bInt,2; autobonus "{ bonus2 bAddRace,RC_Demon,40; }",10,7000,BF_WEAPON|BF_MAGIC,"{ specialeffect2 EF_BLOODDRAIN; }"; },{},{} diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index becbfdc65..d79ea7141 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -585,7 +585,7 @@ REPLACE INTO `item_db_re` VALUES (1194,'F_Executioner_C','Executioner',4,2,NULL, REPLACE INTO `item_db_re` VALUES (1195,'E_Executioner_C','Executioner',4,2,NULL,0,'190',NULL,1,NULL,0x00004082,7,2,34,4,NULL,NULL,3,'bonus bAtkEle,Ele_Dark;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1196,'Chrome_Twohand_Sword','Chrome Two-Handed Sword',4,20,NULL,400,'280',NULL,1,NULL,0x00004082,7,2,34,3,'110',1,3,'bonus bUnbreakableWeapon,0; bonus bAgi,3; bonus bMaxHPRate,-10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1197,'P_Slayer3','Eden Slayer III',4,NULL,NULL,0,'200',NULL,1,NULL,0x00004082,7,2,34,3,'60',NULL,3,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (1198,'Cutlass','Cutlass',4,NULL,NULL,0,'220',NULL,3,NULL,0x00004082,7,2,34,1,'50',NULL,3,'bonus bUnbreakableWeapon,0; bonus bCritical,20; bonus bCritAtkRate,50; if(BaseLevel>99) { bonus bBaseAtk,50; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (1198,'Hairtail','Cutlass',4,NULL,NULL,0,'220',NULL,3,NULL,0x00004082,7,2,34,1,'50',NULL,3,'bonus bUnbreakableWeapon,0; bonus bCritical,20; bonus bCritAtkRate,50; if(BaseLevel>99) { bonus bBaseAtk,50; }',NULL,NULL); # Daggers REPLACE INTO `item_db_re` VALUES (1201,'Knife','Knife',4,50,NULL,400,'17',NULL,1,3,0xFE9F7EEF,7,2,2,1,'1',1,1,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (1202,'Knife_','Knife',4,50,NULL,400,'17',NULL,1,4,0xFE9F7EEF,7,2,2,1,'1',1,1,NULL,NULL,NULL); @@ -1248,12 +1248,12 @@ REPLACE INTO `item_db_re` VALUES (2162,'Bible_Of_Promise2','Bible Of Promise Vol #2165, #2166, #2167, -REPLACE INTO `item_db_re` VALUES (2168,'Immune_Shield','Immune Shield',5,20,NULL,700,NULL,55,NULL,1,0xFFFFFFFF,7,2,32,NULL,'1',1,1,'if(getrefine()>=5){ bonus2 bSubEle,Ele_Neutral,getrefine()-4; } if(getrefine()>=7){ bonus2 bSubEle,Ele_Neutral,5; } if(getrefine()>=9){ bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10; } if(getrefine()>=13){ bonus2 bSubEle,Ele_Neutral,12-getrefine(); }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2169,'Kalasag','Kalasag',5,20,NULL,400,NULL,40,NULL,NULL,0xFFFFFFFF,7,2,32,NULL,'1',1,1,'bonus2 bSubRace,RC_Boss,getrefine()/3;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2170,'Bayani_Kalasag','Bayani Kalasag',5,20,NULL,400,NULL,40,NULL,1,0xFFFFFFFF,7,2,32,NULL,'1',1,1,'bonus2 bSubRace,RC_Boss,getrefine()/3;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2171,'Fox_Wrist_Guard','Fox Wrist Guard',5,40000,NULL,200,NULL,45,NULL,1,0x02000000,7,2,32,NULL,'100',1,1,'bonus bFlee,5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2172,'Wolf_Wrist_Guard','Wolf Wrist Guard',5,45000,NULL,250,NULL,70,NULL,1,0x02000000,7,2,32,NULL,'100',1,1,'autobonus "{bonus bBaseAtk,100; bonus bFlee,-50;}",10,5000,BF_WEAPON,"{specialeffect2 EF_ENHANCE;}";',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2173,'Crescent_Wrist_Guard','Crescent Wrist Guard',5,45000,NULL,250,NULL,45,NULL,1,0x02000000,7,2,32,NULL,'100',1,1,'bonus bDelayRate,-2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2168,'Immuned_Shield','Immune Shield',5,20,NULL,700,NULL,55,NULL,1,0xFFFFFFFF,7,2,32,NULL,'1',1,1,'if(getrefine()>=5){ bonus2 bSubEle,Ele_Neutral,getrefine()-4; } if(getrefine()>=7){ bonus2 bSubEle,Ele_Neutral,5; } if(getrefine()>=9){ bonus2 bSubEle,Ele_Water,10; bonus2 bSubEle,Ele_Wind,10; bonus2 bSubEle,Ele_Earth,10; bonus2 bSubEle,Ele_Fire,10; } if(getrefine()>=13){ bonus2 bSubEle,Ele_Neutral,12-getrefine(); }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2169,'Kalasak','Kalasag',5,20,NULL,400,NULL,40,NULL,NULL,0xFFFFFFFF,7,2,32,NULL,'1',1,1,'bonus2 bSubRace,RC_Boss,getrefine()/3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2170,'Bayani_Kalasak','Bayani Kalasag',5,20,NULL,400,NULL,40,NULL,1,0xFFFFFFFF,7,2,32,NULL,'1',1,1,'bonus2 bSubRace,RC_Boss,getrefine()/3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2171,'Fox_Armguard','Fox Wrist Guard',5,40000,NULL,200,NULL,45,NULL,1,0x02000000,7,2,32,NULL,'100',1,1,'bonus bFlee,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2172,'Wolf_Armguard','Wolf Wrist Guard',5,45000,NULL,250,NULL,70,NULL,1,0x02000000,7,2,32,NULL,'100',1,1,'autobonus "{bonus bBaseAtk,100; bonus bFlee,-50;}",10,5000,BF_WEAPON,"{specialeffect2 EF_ENHANCE;}";',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2173,'Crescent_Armguard','Crescent Wrist Guard',5,45000,NULL,250,NULL,45,NULL,1,0x02000000,7,2,32,NULL,'100',1,1,'bonus bDelayRate,-2;',NULL,NULL); # GM Shield REPLACE INTO `item_db_re` VALUES (2199,'Ahura_Mazda','Ahura Mazdah',5,1,NULL,10,NULL,10000,NULL,NULL,0xFFFFFFFF,7,2,32,NULL,'1',1,0,'bonus bAllStats,50; bonus bMdef,99; bonus bShortWeaponDamageReturn,100; bonus2 bSubRace,RC_DemiHuman,95; skill "CR_FULLPROTECTION",5; skill "WZ_ESTIMATION",1; skill "ST_FULLSTRIP",5; skill "HW_MAGICPOWER", 10; bonus bMaxHPRate,200; bonus bNoKnockback,0; bonus bDelayRate,-20; bonus bSpeedRate,25; bonus bIntravision,0;','sc_start4 SC_ENDURE,60000,10,0,0,1;','sc_end SC_ENDURE;'); # Headgears @@ -1534,15 +1534,15 @@ REPLACE INTO `item_db_re` VALUES (2471,'Mercy_Shoes','Mercy Shoes',5,20,NULL,300 REPLACE INTO `item_db_re` VALUES (2472,'Judgement_Shoes','Judgement Shoes',5,20,NULL,300,NULL,12,NULL,NULL,0x00000100,7,2,64,NULL,'100',1,0,'bonus bMaxSP,150; bonus2 bSkillAtk,"AB_JUDEX",30;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2473,'Para_Team_Boots4','Eden Team Boots IV',5,NULL,NULL,0,NULL,20,NULL,NULL,0xFFFFFFFF,7,2,64,NULL,'60',NULL,0,'bonus bAgi,1; bonus bVit,1; bonus bHPrecovRate,28; bonus bSPrecovRate,12;',NULL,NULL); #2474, -REPLACE INTO `item_db_re` VALUES (2475,'Urj_Greaves','Urj Greaves',5,20,NULL,900,NULL,32,NULL,1,0x00000080,8,2,64,NULL,'100',1,0,'bonus bMaxSP,40; if(getequiprefinerycnt(EQI_SHOES)>7) bonus bMaxHPRate,getequiprefinerycnt(EQI_SHOES)-7;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2476,'Pertz_Greaves','Pertz Greaves',5,20,NULL,900,NULL,32,NULL,1,0x00000080,8,2,64,NULL,'100',1,0,'bonus bMaxSP,40; bonus bAgi,-7+(getequiprefinerycnt(EQI_SHOES)>8)?8:getequiprefinerycnt(EQI_SHOES);',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2477,'Sabath_Shoes','Sabath Shoes',5,20,NULL,400,NULL,18,NULL,1,0x00001000,7,2,64,NULL,'100',1,0,'bonus bMaxSP,30; bonus bLuk,3;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2478,'Nabeu\'s_Shoes','Nabeu\'s Shoes',5,20,NULL,400,NULL,18,NULL,1,0x00001000,7,2,64,NULL,'100',1,0,'bonus bFlee,3; bonus bInt,2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2475,'Ur_Greave','Urj Greaves',5,20,NULL,900,NULL,32,NULL,1,0x00000080,8,2,64,NULL,'100',1,0,'bonus bMaxSP,40; if(getequiprefinerycnt(EQI_SHOES)>7) bonus bMaxHPRate,getequiprefinerycnt(EQI_SHOES)-7;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2476,'Peuz_Greave','Pertz Greaves',5,20,NULL,900,NULL,32,NULL,1,0x00000080,8,2,64,NULL,'100',1,0,'bonus bMaxSP,40; bonus bAgi,-7+(getequiprefinerycnt(EQI_SHOES)>8)?8:getequiprefinerycnt(EQI_SHOES);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2477,'Sabah_Shoes','Sabath Shoes',5,20,NULL,400,NULL,18,NULL,1,0x00001000,7,2,64,NULL,'100',1,0,'bonus bMaxSP,30; bonus bLuk,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2478,'Nab_Shoes','Nabeu\'s Shoes',5,20,NULL,400,NULL,18,NULL,1,0x00001000,7,2,64,NULL,'100',1,0,'bonus bFlee,3; bonus bInt,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2479,'White_Wing_Boots','White Wing Boots',5,20,NULL,400,NULL,18,NULL,1,0x00000800,7,2,64,NULL,'100',1,0,'bonus bAgi,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2480,'Black_Wing_Boots','Black Wing Boots',5,20,NULL,400,NULL,18,NULL,1,0x00000800,8,2,64,NULL,'100',1,0,'bonus bInt,2; bonus bMaxSPRate,5;',NULL,NULL); #2481, #2482, -REPLACE INTO `item_db_re` VALUES (2483,'Siege_Greaves','Siege Greaves',5,NULL,NULL,750,NULL,30,NULL,1,0x006444A2,7,2,64,NULL,'95',1,0,'bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2483,'Siege_Greave','Siege Greaves',5,NULL,NULL,750,NULL,30,NULL,1,0x006444A2,7,2,64,NULL,'95',1,0,'bonus bMdef,1; bonus2 bSubRace,RC_DemiHuman,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2484,'Siege_Boots','Siege Boots',5,NULL,NULL,500,NULL,20,NULL,1,0x036E5CEA,7,2,64,NULL,'95',1,0,'bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2485,'Siege_Shoes','Siege Shoes',5,NULL,NULL,350,NULL,15,NULL,1,0x00818315,7,2,64,NULL,'95',1,0,'bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,1;',NULL,NULL); #2486, @@ -1550,8 +1550,8 @@ REPLACE INTO `item_db_re` VALUES (2485,'Siege_Shoes','Siege Shoes',5,NULL,NULL,3 #2488, #2489, #2490, -REPLACE INTO `item_db_re` VALUES (2491,'Nightmare_Bangungot_Boots','Nightmare Bangungot Boots',5,20,NULL,600,NULL,10,NULL,NULL,0xFFFFFFFF,7,2,64,NULL,'1',1,0,'bonus bMdef,getrefine(); if(getrefine()>=14){ bonus bSpeedRate,25; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2492,'Bayani_Nightmare_Bangungot_Boots','Bayani Nightmare Bangungot Boots',5,20,NULL,600,NULL,10,NULL,1,0xFFFFFFFF,7,2,64,NULL,'1',1,0,'bonus bMdef,getrefine(); if(getrefine()>=12){ bonus bSpeedRate,25; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2491,'Bangungot_Boots','Nightmare Bangungot Boots',5,20,NULL,600,NULL,10,NULL,NULL,0xFFFFFFFF,7,2,64,NULL,'1',1,0,'bonus bMdef,getrefine(); if(getrefine()>=14){ bonus bSpeedRate,25; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2492,'Bayani_Bangungot_Boots','Bayani Nightmare Bangungot Boots',5,20,NULL,600,NULL,10,NULL,1,0xFFFFFFFF,7,2,64,NULL,'1',1,0,'bonus bMdef,getrefine(); if(getrefine()>=12){ bonus bSpeedRate,25; }',NULL,NULL); # Garments # =================================================================== REPLACE INTO `item_db_re` VALUES (2501,'Hood','Hood',5,1000,NULL,200,NULL,4,NULL,NULL,0xFFFFFFFF,7,2,4,NULL,NULL,1,0,NULL,NULL,NULL); @@ -1913,11 +1913,14 @@ REPLACE INTO `item_db_re` VALUES (2864,'Light_Of_Cure','Liht Of Cure',5,20,NULL, REPLACE INTO `item_db_re` VALUES (2865,'Seal_Of_Cathedral','Seal Of Cathedral',5,20,NULL,0,NULL,NULL,NULL,NULL,0x00000100,7,2,136,NULL,'110',NULL,0,'bonus bInt,2; bonus bHealPower,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2866,'Ring_Of_Archbishop','Ring Of Archbishop',5,20,NULL,0,NULL,NULL,NULL,NULL,0x00000100,7,2,136,NULL,'110',NULL,0,'bonus bDex,2; bonus bHealPower,2;',NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (2883,'Urj_Seal','Urj Seal',5,20,NULL,200,NULL,4,NULL,1,0x00000080,8,2,136,NULL,'100',NULL,0,'bonus bMaxHPrate,2; bonus2 bSkillUseSP,"LK_SPIRALPIERCE",5; bonus2 bSkillUseSP,"RK_HUNDREDSPEAR",5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2884,'Pertz_Seal','Pertz Seal',5,20,NULL,200,NULL,3,NULL,1,0x00000080,8,2,136,NULL,'100',NULL,0,'bonus bBaseAtk,20; bonus bMaxSP,20;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2872,'G_Honor_Certificate','G Honor Certificate',5,NULL,NULL,0,NULL,2,NULL,NULL,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2873,'Cat_Hand_Glove','Cat Hand Glove',5,20,NULL,100,NULL,2,NULL,1,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,'bonus bAgi,1; bonus bVit,1; bonus bDex,1; bonus bLuk,1;',NULL,NULL); +# +REPLACE INTO `item_db_re` VALUES (2883,'Ur_Seal','Urj Seal',5,20,NULL,200,NULL,4,NULL,1,0x00000080,8,2,136,NULL,'100',NULL,0,'bonus bMaxHPrate,2; bonus2 bSkillUseSP,"LK_SPIRALPIERCE",5; bonus2 bSkillUseSP,"RK_HUNDREDSPEAR",5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2884,'Peuz_Seal','Pertz Seal',5,20,NULL,200,NULL,3,NULL,1,0x00000080,8,2,136,NULL,'100',NULL,0,'bonus bBaseAtk,20; bonus bMaxSP,20;',NULL,NULL); #2885, -REPLACE INTO `item_db_re` VALUES (2886,'Sabath_Seal','Sabath Seal',5,20,NULL,100,NULL,NULL,NULL,NULL,0x00001000,7,2,136,NULL,'100',NULL,0,'bonus bCritical,3;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2887,'Nabeu\'s_Seal','Nabeu\'s Seal',5,20,NULL,100,NULL,NULL,NULL,NULL,0x00001000,7,2,136,NULL,'100',NULL,0,'bonus bBaseAtk,10; bonus bMatk,20;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2886,'Sabah_Ring','Sabath Seal',5,20,NULL,100,NULL,NULL,NULL,NULL,0x00001000,7,2,136,NULL,'100',NULL,0,'bonus bCritical,3;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2887,'Nab_Ring','Nabeu\'s Seal',5,20,NULL,100,NULL,NULL,NULL,NULL,0x00001000,7,2,136,NULL,'100',NULL,0,'bonus bBaseAtk,10; bonus bMatk,20;',NULL,NULL); #2888, #2889, REPLACE INTO `item_db_re` VALUES (2890,'White_Wing_Brooch','White Wing Brooch',5,20,NULL,100,NULL,NULL,NULL,NULL,0x00000800,7,2,136,NULL,'100',NULL,0,'bonus bDex,2; bonus bLongAtkRate,3;',NULL,NULL); @@ -1934,8 +1937,8 @@ REPLACE INTO `item_db_re` VALUES (2899,'Sound_Amplification_Device','Sound Ampli REPLACE INTO `item_db_re` VALUES (2907,'Bawaya_Symbol_Tattoo','Bawaya Symbol Tattoo',5,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,'bonus bMatkRate,7; bonus bFixedCastrate,-7;',NULL,NULL); #2908, #2909, -REPLACE INTO `item_db_re` VALUES (2910,'Bakunawa_Symbol_Tattoo','Bakunawa Symbol Tattoo',5,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,'bonus2 bAddRace,RC_NonBoss,7; bonus2 bAddRace,RC_Boss,7; bonus bAspdRate,10;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2911,'Bangungot_Symbol_Tattoo','Bangungot Symbol Tattoo',5,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,'bonus bHealPower,4; bonus bHealPower2,7;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2910,'Bakonawa_Tattoo','Bakunawa Symbol Tattoo',5,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,'bonus2 bAddRace,RC_NonBoss,7; bonus2 bAddRace,RC_Boss,7; bonus bAspdRate,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2911,'Bangungot_Tattoo','Bangungot Symbol Tattoo',5,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,136,NULL,'1',NULL,0,'bonus bHealPower,4; bonus bHealPower2,7;',NULL,NULL); # Cards # =================================================================== REPLACE INTO `item_db_re` VALUES (4001,'Poring_Card','Poring Card',6,20,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,16,NULL,NULL,NULL,NULL,'bonus bLuk,2; bonus bFlee2,1;',NULL,NULL); @@ -3938,7 +3941,7 @@ REPLACE INTO `item_db_re` VALUES (6432,'Full_Bucket','Full Pail',3,NULL,NULL,300 REPLACE INTO `item_db_re` VALUES (6433,'Clean_Brush','Cleaning Brush',3,NULL,NULL,300,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6434,'Fix_Kit','Fix Kit',3,NULL,NULL,1000,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6435,'Fresh_Fruit','Fresh Fruit',3,NULL,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (6436,'Sea_God\'s_Call','Sea God\'s Call',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); +REPLACE INTO `item_db_re` VALUES (6436,'Ptotection_Seagod','Sea God\'s Call',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (6437,'Scaraba_Perfume','Scaraba Perfume',3,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); # REPLACE INTO `item_db_re` VALUES (6440,'General_Lubrication','General Lubrication',3,20,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -6139,7 +6142,10 @@ REPLACE INTO `item_db_re` VALUES (13288,'Drocera_Stew_To_Throw','Throwing Droser REPLACE INTO `item_db_re` VALUES (13289,'Petti_Noodle_To_Throw','Throwing Petite Tail Soup',10,100,NULL,50,NULL,NULL,NULL,NULL,0x00040000,8,2,32768,NULL,'99',NULL,9,'sc_start SC_PUTTI_TAILS_NOODLES,300000,20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13290,'Black_Thing_To_Throw','Throwing Black Mass',10,100,NULL,50,NULL,NULL,NULL,NULL,0x00040000,8,2,32768,NULL,'99',NULL,9,'sc_start SC_STOMACHACHE,60000,rand(5,10);',NULL,NULL); # More Shurikens & Kunais -REPLACE INTO `item_db_re` VALUES (13294,'Explosive_Kunai','Explosive Kunai',10,100,NULL,50,'30',NULL,NULL,NULL,0x02000000,7,2,32768,NULL,'100',NULL,7,'bonus bAtkEle,Ele_Neutral;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13291,'Starfish','Starfish',10,NULL,NULL,5,'110',NULL,NULL,NULL,0x02000000,7,2,32768,NULL,'50',NULL,7,'bonus bAtkEle,Ele_Neutral; /* bonus2 bAddEff,Eff_Stun,?; */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13292,'Dried_Squid','Dried Squid',10,10,NULL,20,'50',NULL,NULL,NULL,0x02000000,7,2,32768,NULL,'1',NULL,7,'bonus bAtkEle,Ele_Neutral; /* bonus2 bAddEff,Eff_Blind,?; */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13293,'Flying_Fish','Flying_Fish',10,10,NULL,20,'50',NULL,NULL,NULL,0x02000000,7,2,32768,NULL,'1',NULL,6,'bonus bAtkEle,Ele_Neutral; /* bonus2 bAddEff,Eff_Bleeding,?; */',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13294,'Explosive_Kunai','Explosive Kunai',10,100,NULL,30,'50',NULL,NULL,NULL,0x02000000,7,2,32768,NULL,'100',NULL,7,'bonus bAtkEle,Ele_Neutral;',NULL,NULL); # Ninja Fuuma Shurikens REPLACE INTO `item_db_re` VALUES (13300,'Huuma_Bird_Wing','Huuma Wing Shuriken',4,90000,NULL,3000,'150',NULL,1,NULL,0x02000000,7,2,34,4,'65',1,22,'bonus bUnbreakableWeapon,0; bonus bAtkEle,Ele_Wind; bonus bDex,-2; bonus bAgi,-1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13301,'Huuma_Giant_Wheel','Huuma Giant Wheel Shuriken',4,40000,NULL,2500,'50',NULL,1,3,0x02000000,7,2,34,4,'42',1,22,'bonus bUnbreakableWeapon,0; bonus2 bAddEff,Eff_Bleeding,100;',NULL,NULL); @@ -7163,10 +7169,10 @@ REPLACE INTO `item_db_re` VALUES (15032,'Tidon','Tidon',5,20,NULL,500,NULL,2,NUL #15033, #15034, #15035, -REPLACE INTO `item_db_re` VALUES (15036,'Urj_Plate','Urj Plate',5,20,NULL,3000,NULL,110,NULL,NULL,0x00000080,8,2,16,NULL,'100',1,0,'bonus bMdef,10; bonus bMaxHPRate,getequiprefinerycnt(EQI_ARMOR); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubEle,Ele_Neutral,5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15037,'Pertz_Plate','Pertz Plate',5,20,NULL,3000,NULL,110,NULL,NULL,0x00000080,8,2,16,NULL,'100',1,0,'bonus bMdef,10; bonus bBaseAtk,20; bonus bFlee,17;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15038,'Sabath\'s_Cloth','Sabath\'s Cloth',5,20,NULL,100,NULL,45,NULL,1,0x00001000,7,2,16,NULL,'100',1,0,'bonus bLuk,3; bonus3 bAutoSpell,"ASC_METEORASSAULT",getskilllv("ASC_METEORASSAULT"),10;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15039,'Nabeu\'s_Cloth','Nabeu\'s Cloth',5,20,NULL,100,NULL,45,NULL,1,0x00001000,7,2,16,NULL,'100',1,0,'bonus bStr,2; bonus bInt,2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15036,'Ur_Plate','Urj Plate',5,20,NULL,3000,NULL,110,NULL,NULL,0x00000080,8,2,16,NULL,'100',1,0,'bonus bMdef,10; bonus bMaxHPRate,getequiprefinerycnt(EQI_ARMOR); bonus2 bSubRace,RC_DemiHuman,5; bonus2 bSubEle,Ele_Neutral,5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15037,'Peuz_Plate','Pertz Plate',5,20,NULL,3000,NULL,110,NULL,NULL,0x00000080,8,2,16,NULL,'100',1,0,'bonus bMdef,10; bonus bBaseAtk,20; bonus bFlee,17;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15038,'Sabah_Cloth','Sabath\'s Cloth',5,20,NULL,100,NULL,45,NULL,1,0x00001000,7,2,16,NULL,'100',1,0,'bonus bLuk,3; bonus3 bAutoSpell,"ASC_METEORASSAULT",getskilllv("ASC_METEORASSAULT"),10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15039,'Nab_Cloth','Nabeu\'s Cloth',5,20,NULL,100,NULL,45,NULL,1,0x00001000,7,2,16,NULL,'100',1,0,'bonus bStr,2; bonus bInt,2;',NULL,NULL); #15040, #15041, REPLACE INTO `item_db_re` VALUES (15042,'White_Wing_Suit','White Wing Suit',5,20,NULL,100,NULL,45,NULL,1,0x00000800,7,2,16,NULL,'100',1,0,'bonus bLongAtkRate,getrefine()*2; bonus bFlee,getrefine();',NULL,NULL); @@ -7174,12 +7180,12 @@ REPLACE INTO `item_db_re` VALUES (15043,'Black_Wing_Suit','Black Wing Suit',5,20 REPLACE INTO `item_db_re` VALUES (15044,'Green_Surgical_Gown','Green Surgical Gown',5,56000,NULL,660,NULL,66,NULL,1,0x00040000,7,2,16,NULL,'100',1,0,'bonus bDex,1; bonus bMaxSP,30;',NULL,NULL); #15045, REPLACE INTO `item_db_re` VALUES (15046,'Siege_Plate','Siege Plate',5,NULL,NULL,3300,NULL,85,NULL,1,0x006444A2,7,2,16,NULL,'95',1,0,'bonus bMdef,5; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bHealpower2,12; bonus bAddItemHealRate,12; } if(getrefine()>8) { bonus bMaxHPRate,25; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15047,'Siege_Suit','Siege Suit',5,NULL,NULL,750,NULL,50,NULL,1,0x036E5CEA,7,2,16,NULL,'95',1,0,'bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bFlee2,5; bonus bLongAtkDef,20; } if(getrefine()>8) { bonus bMaxHPRate,15; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15047,'Siege_Suits','Siege Suit',5,NULL,NULL,750,NULL,50,NULL,1,0x036E5CEA,7,2,16,NULL,'95',1,0,'bonus bMdef,10; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bFlee2,5; bonus bLongAtkDef,20; } if(getrefine()>8) { bonus bMaxHPRate,15; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15048,'Siege_Robe','Siege Robe',5,NULL,NULL,500,NULL,40,NULL,1,0x00818315,7,2,16,NULL,'95',1,0,'bonus bMdef,20; bonus2 bSubRace,RC_DemiHuman,2; if(getrefine()>5) { bonus bFlee,5; bonus bLongAtkDef,15; } if(getrefine()>8) { bonus bMaxHP,1000; bonus bMaxSP,100; }',NULL,NULL); #15049, #15050, -REPLACE INTO `item_db_re` VALUES (15051,'Bakunawa_Scale_Armor','Bakunawa Scale Armor',5,20,NULL,500,NULL,55,NULL,NULL,0xFFFFFFFF,7,2,16,NULL,'1',1,0,'bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,1;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15052,'Bayani_Bakunawa_Scale_Armor','Bayani Bakunawa Scale Armor',5,20,NULL,500,NULL,55,NULL,1,0xFFFFFFFF,7,2,16,NULL,'1',1,0,'bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,2;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15051,'Bakonawa_Armor','Bakunawa Scale Armor',5,20,NULL,500,NULL,55,NULL,NULL,0xFFFFFFFF,7,2,16,NULL,'1',1,0,'bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15052,'Bayani_Bakonawa_Armor','Bayani Bakunawa Scale Armor',5,20,NULL,500,NULL,55,NULL,1,0xFFFFFFFF,7,2,16,NULL,'1',1,0,'bonus2 bSubRace,RC_Boss,getrefine()/2; bonus bAllStats,2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15053,'Special_Ninja_Suit','Special Ninja Suit',5,10000,NULL,1200,NULL,70,NULL,NULL,0x02000000,7,2,16,NULL,'100',1,0,'bonus bAgi,1+(getrefine()/3);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15054,'Ninja_Scale_Armor','Ninja Scale Armor',5,10000,NULL,1800,NULL,90,NULL,1,0x02000000,7,2,16,NULL,'100',1,0,'bonus bMaxHPRate,15; bonus bMaxSPRate,-30;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15055,'Armor_of_Nothingness','Armor of Nothingness',5,10000,NULL,1500,NULL,60,NULL,1,0x02000000,7,2,16,NULL,'100',1,0,'bonus bAgi,1;',NULL,NULL); @@ -7200,7 +7206,7 @@ REPLACE INTO `item_db_re` VALUES (16010,'Red_Ether_Bag','Red Ether Bag',4,20,NUL #16012, REPLACE INTO `item_db_re` VALUES (16013,'Judgement_Mace1','Judgement Mace I',4,20,NULL,1200,'140:180',NULL,1,2,0x00000100,2,2,2,3,'100',1,8,'bonus bStr,1; bonus bInt,1; autobonus "{bonus2 bAddRace,RC_Demon,20;}",10,7000,BF_WEAPON|BF_MAGIC,"{specialeffect2 EF_BLOODDRAIN;}";',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16014,'P_Mace3','Eden Mace III',4,NULL,NULL,0,'172',NULL,1,NULL,0x0004C5B3,7,2,2,3,'60',NULL,8,NULL,NULL,NULL); -#16015, +REPLACE INTO `item_db_re` VALUES (16015,'Cat_Club','Cat Club',4,20,NULL,700,'88',NULL,3,NULL,0x0004C5B3,7,2,2,1,'1',1,8,'bonus2 bAddRace,RC_Brute,15;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16016,'Tuna','Tuna',4,NULL,NULL,0,'180',NULL,1,NULL,0x0004C5B3,7,2,2,1,'50',NULL,8,'bonus bUnbreakableWeapon,0; bonus2 bAddEff,Eff_Stun,100; bonus3 bAutoSpell,"SM_BASH",5+5*(getskilllv("SM_BASH")==10),10; if(BaseLevel>99) { bonus bBaseAtk,20; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16017,'Bloody_Cross','Bloody Cross',4,20,NULL,1500,'170',NULL,1,NULL,0x00008110,7,2,2,4,'100',1,8,'bonus bAtkEle,Ele_Dark; bonus3 bAutoSpell,"WL_HELLINFERNO",1,10+(getrefine()*5);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16018,'Judgement_Mace2','Judgement Mace II',4,20,NULL,1200,'170:180',NULL,1,1,0x00000100,2,2,2,3,'130',1,8,'bonus bStr,2; bonus bInt,2; autobonus "{bonus2 bAddRace,RC_Demon,40;}",10,7000,BF_WEAPON|BF_MAGIC,"{specialeffect2 EF_BLOODDRAIN;}";',NULL,NULL); @@ -7304,18 +7310,30 @@ REPLACE INTO `item_db_re` VALUES (16750,'Malang_Crab_Box2','Malangdo Crab 7 Day REPLACE INTO `item_db_re` VALUES (16751,'Brindle_Eel_Box1','Zebra Eel 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18108,86400;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16752,'Brindle_Eel_Box2','Zebra Eel 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 18108,604800;',NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (16763,'Ptotection_Seagod_Box2','The Sea God\'s Call 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,604800;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16764,'Ptotection_Seagod_Box3','The Sea God\'s Call 15 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,1209600;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16765,'Octo_Hstick_Box','Octopus Hunting Skewer 23 Hour Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16766,'Octo_Hstick_Box2','Octopus Hunting Skewer 3 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,259200;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16767,'Octo_Hstick_Box3','Octopus Hunting Skewer 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6442,604800;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16770,'Silvervine_Fruit_Box10','Silvervine 10 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6417,10; getitem 12636,30;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16771,'Silvervine_Fruit_Box40','Silvervine 40 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6417,40; getitem 12636,120;',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (16776,'Universal_Catalog_Gold_Box10','Universal Catalog Gold 10 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16777,'Universal_Catalog_Gold_Box50','Universal Catalog Gold 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,50;',NULL,NULL); # +REPLACE INTO `item_db_re` VALUES (16979,'Silvervine_Fruit_Box4','Silvervine 4 Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 6417,4; getitem 12636,12;',NULL,NULL); +# REPLACE INTO `item_db_re` VALUES (16998,'Archangel_Wing_Box','Archangel Wings Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2573,1;',NULL,NULL); # -REPLACE INTO `item_db_re` VALUES (17155,'Enhance_Huuma_Shuriken_Box','Enhance Huuma Shuriken Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13316,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17013,'Malang_Woe_Encard_Box','Malang Woe Encard Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 16740,1; getitem 16765,1;',NULL,NULL); +# +REPLACE INTO `item_db_re` VALUES (17084,'Upg_Katar_Box','Upg Katar Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1292,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17085,'Upg_Two_Handed_Axe_Box','Upg Two Handed Axe Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1394,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17086,'Upg_Lance_Box','Upg Lance Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1491,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17087,'Upg_Book_Box','Upg Book Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 1585,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17088,'Upg_Staff_Box','Upg Staff Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 2015,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17089,'Upg_Dagger_Box','Upg Dagger Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13071,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17090,'Upg_Revolver_Box','Upg Revolver',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 13115,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17091,'Upg_Mace_Box','Upg Mace Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 16019,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17092,'Upg_Bow_Box','Upg Bow Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 18112,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (17093,'Upg_Twohand_Sword_Box','Upg Two-Handed Sword Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 21000,1;',NULL,NULL); +# +REPLACE INTO `item_db_re` VALUES (17155,'Upg_Huuma_Shuriken_Box','Upg Huuma Shuriken Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13316,86400;',NULL,NULL); # Mechanic/Genetic Cannonballs REPLACE INTO `item_db_re` VALUES (18000,'Cannon_Ball','Cannon Ball',10,100,NULL,10,'100',NULL,NULL,NULL,0x00040400,8,2,32768,NULL,'99',NULL,8,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (18001,'Holy_Cannon_Ball','Holy Cannon Ball',10,200,NULL,10,'120',NULL,NULL,NULL,0x00040400,8,2,32768,NULL,'99',NULL,8,'bonus bAtkEle,Ele_Holy;',NULL,NULL); diff --git a/sql-files/upgrades/2013-03-06--00-00.sql b/sql-files/upgrades/2013-03-06--00-00.sql index 844e3d8a8..8d46be76a 100644 --- a/sql-files/upgrades/2013-03-06--00-00.sql +++ b/sql-files/upgrades/2013-03-06--00-00.sql @@ -6,4 +6,4 @@ DELETE FROM `quest` WHERE `quest_id` > 9154 AND `quest_id` < 9166; DELETE FROM `global_reg_value` WHERE `str` = 'dewata_gatti'; DELETE FROM `global_reg_value` WHERE `str` = 'dewata_legend'; DELETE FROM `global_reg_value` WHERE `str` = 'dewata_oldman'; -INSERT INTO `sql_updates` (`timestamp`) VALUES (1362528000); \ No newline at end of file +INSERT INTO `sql_updates` (`timestamp`) VALUES (1362528000); -- cgit v1.2.3-60-g2f50 From 9a0b84c93b8098b76911b09b103602797fede9dc Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:16:01 -0300 Subject: Merge ca0642a75528cac73dd3683af7ca05bb42aa7dc0 (couldn't do it automatically) Signed-off-by: shennetsind --- src/map/skill.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/map/skill.c b/src/map/skill.c index 848422f3c..2c255ffb7 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6635,18 +6635,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case NPC_EMOTION_ON: case NPC_EMOTION: - //va[0] is the emotion to use. + //val[0] is the emotion to use. //NPC_EMOTION & NPC_EMOTION_ON can change a mob's mode 'permanently' [Skotlex] //val[1] 'sets' the mode //val[2] adds to the current mode //val[3] removes from the current mode //val[4] if set, asks to delete the previous mode change. - if(md && md->skill_idx >= 0 && tsc) - { + if(md && md->skill_idx >= 0 && tsc) { clif->emotion(bl, md->db->skill[md->skill_idx].val[0]); if(md->db->skill[md->skill_idx].val[4] && tsce) status_change_end(bl, type, INVALID_TIMER); + //If mode gets set by NPC_EMOTION then the target should be reset [Playtester] + if(skill_id == NPC_EMOTION && md->db->skill[md->skill_idx].val[1]) + mob_unlocktarget(md,tick); + if(md->db->skill[md->skill_idx].val[1] || md->db->skill[md->skill_idx].val[2]) sc_start4(src, type, 100, skill_lv, md->db->skill[md->skill_idx].val[1], -- cgit v1.2.3-60-g2f50 From 278e9949a662dd320c5fc408f585da4600526154 Mon Sep 17 00:00:00 2001 From: playtester Date: Fri, 15 Mar 2013 20:37:30 +0000 Subject: - Then % ASPD bonus from Spear Quicken now depends on RENEWAL_ASPD rather than RENEWAL, this should fix the problem that there is no ASPD bonus at all if RENEWAL is activated but RENEWAL_ASPD is not (bugreport:7357) - Added missing critical bonus on Valorous Assaulter's Katzbalger, it was only missing in the renewal db (bugreport:7355) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17199 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/re/item_db.txt | 2 +- src/map/status.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/db/re/item_db.txt b/db/re/item_db.txt index e551a3e2f..f07291dbe 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -540,7 +540,7 @@ 1181,Tae_Goo_Lyeon,Tae Goo Lyeon,4,20,,2000,250,,1,2,0x00004082,2,2,34,4,90,1,3,{ bonus bFlee2,10; if(JobLevel>=70) autobonus "{ bonus bBaseAtk,50; }",10,10000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; if(getrefine()>8) { bonus bVariableCastrate,-20; bonus bDelayRate,-20; } },{},{} 1182,Bloody_Eater,Bloody Eater,4,20,,1200,200,,1,2,0x00004082,7,2,34,4,50,1,3,{ bonus bAtkEle,Ele_Ghost; autobonus "{ bonus bCritical,100; bonus bBaseAtk,50; }",1,5000,0,"{ specialeffect2 EF_FIRESPLASHHIT; }"; bonus bHPGainValue,100; },{},{} 1183,BF_Two_Handed_Sword1,Brave Assaulter's Katzbalger,4,20,,0,200,,1,0,0x00004082,7,2,34,3,80,1,3,{ bonus bStr,2; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{} -1184,BF_Two_Handed_Sword2,Valorous Assaulter's Katzbalger,4,20,,0,200,,1,0,0x00004082,7,2,34,3,80,1,3,{ bonus2 bAddRace,RC_DemiHuman,55; bonus bCritAtkRate,20; bonus bUnbreakableWeapon,0; },{},{} +1184,BF_Two_Handed_Sword2,Valorous Assaulter's Katzbalger,4,20,,0,200,,1,0,0x00004082,7,2,34,3,80,1,3,{ bonus bCritical,20; bonus2 bAddRace,RC_DemiHuman,55; bonus bCritAtkRate,20; bonus bUnbreakableWeapon,0; },{},{} 1185,Violet_Fear,Violet Fear,4,20,,2200,275,,1,2,0x00004082,2,2,34,4,80,1,3,{ bonus3 bAutoSpell,"WZ_METEOR",3,30; bonus3 bAutoSpell,"WZ_FROSTNOVA",5,50; autobonus "{ bonus bIgnoreDefRace,RC_NonBoss; }",50,5000; },{},{} 1186,Death_Guidance,Death Guidance,4,20,,2000,200,,1,2,0x00004082,2,2,34,4,70,1,3,{ bonus bStr,5; bonus bAgi,2; bonus bFlee2,20; bonus3 bAutoSpell,"NPC_HELLPOWER",1,10; bonus4 bAutoSpell,"NPC_HELLPOWER",1,10,0; if( getrefine()>8 ) bonus3 bAutoSpell,"NPC_VAMPIRE_GIFT",2,20; else bonus3 bAutoSpell,"NPC_VAMPIRE_GIFT",1,20; },{},{} 1187,Krieger_Twohand_Sword1,Glorious Claymore,4,20,,0,220,,1,0,0x00004082,7,2,34,4,80,1,3,{ bonus2 bAddRace,RC_DemiHuman,70; bonus2 bIgnoreDefRate,RC_DemiHuman,25; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-3,1); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,"LK_CONCENTRATION",getskilllv("LK_CONCENTRATION")>1?getskilllv("LK_CONCENTRATION"):1,30; bonus3 bAutoSpell,"LK_AURABLADE",getskilllv("LK_AURABLADE")>1?getskilllv("LK_AURABLADE"):1,30; } },{},{} diff --git a/src/map/status.c b/src/map/status.c index 5d41acbe0..1ed8d91b5 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -7258,7 +7258,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val case SC_MERC_QUICKEN: val2 = 300; break; -#ifndef RENEWAL +#ifndef RENEWAL_ASPD case SC_SPEARQUICKEN: val2 = 200+10*val1; break; -- cgit v1.2.3-60-g2f50 From 931058402a47abd14f022c12bdf29c68e261204d Mon Sep 17 00:00:00 2001 From: playtester Date: Sat, 16 Mar 2013 20:53:23 +0000 Subject: - Strongly improved the structure of status_get_sc_def so it's a lot easier to apply official formulas and make sure the checks are applied in the correct order - In the process, fixed the effect of luk on status changes and removed the static 3% resistance that has been proven to not exist (97 vit, 1 luk can get stunned on officials) - As there is no general luk resistance as it depends on each status change, removed the luk_status_def configurations - Updated the success chance of Decrease Agi to the formula that was extracted from Aegis (blevel/5 + int/5 + skill_lv*3 + 50) Note: I tested all the status changes thoroughly, but as this is a quite large update, it would be nice if someone could cross-check it. Note2: Renewal status resistances (for pre-renewal status changes) are currently not implemented in rAthena at all. They need to be added in another update. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17201 54d463be-8e91-2dee-dedb-b68131a5f0ec --- conf/battle/status.conf | 8 -- src/map/battle.c | 2 - src/map/battle.h | 2 - src/map/status.c | 211 ++++++++++++++++++++++++++++-------------------- 4 files changed, 122 insertions(+), 101 deletions(-) diff --git a/conf/battle/status.conf b/conf/battle/status.conf index 6efe973b7..5341b606b 100644 --- a/conf/battle/status.conf +++ b/conf/battle/status.conf @@ -27,14 +27,6 @@ debuff_on_logout: 3 pc_status_def_rate: 100 mob_status_def_rate: 100 -// Required luk to gain inmunity to status changes. -// Luk increases resistance by closing the gap between natural resist and max -// linearly. This setting indicates required luk to gain complete immunity. -// Eg: 40 vit -> 40% resist. 150 luk -> +50% of the missing gap. -// So 40% + (50% of 60%) = 70% -pc_luk_status_def: 300 -mob_luk_status_def: 300 - // Maximum resistance to status changes. (100 = 100%) // NOTE: Cards and equipment can go over this limit, so it only applies to natural resist. pc_max_status_def: 100 diff --git a/src/map/battle.c b/src/map/battle.c index c8af6badc..81c616928 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -5782,8 +5782,6 @@ static const struct _battle_data { { "status_cast_cancel", &battle_config.sc_castcancel, BL_NUL, BL_NUL, BL_ALL, }, { "pc_status_def_rate", &battle_config.pc_sc_def_rate, 100, 0, INT_MAX, }, { "mob_status_def_rate", &battle_config.mob_sc_def_rate, 100, 0, INT_MAX, }, - { "pc_luk_status_def", &battle_config.pc_luk_sc_def, 300, 1, INT_MAX, }, - { "mob_luk_status_def", &battle_config.mob_luk_sc_def, 300, 1, INT_MAX, }, { "pc_max_status_def", &battle_config.pc_max_sc_def, 100, 0, INT_MAX, }, { "mob_max_status_def", &battle_config.mob_max_sc_def, 100, 0, INT_MAX, }, { "sg_miracle_skill_ratio", &battle_config.sg_miracle_skill_ratio, 1, 0, 10000, }, diff --git a/src/map/battle.h b/src/map/battle.h index 54f941de8..8b1f757f5 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -381,8 +381,6 @@ struct Battle_Config { int sc_castcancel; // [Skotlex] int pc_sc_def_rate; // [Skotlex] int mob_sc_def_rate; - int pc_luk_sc_def; - int mob_luk_sc_def; int pc_max_sc_def; int mob_max_sc_def; diff --git a/src/map/status.c b/src/map/status.c index 1ed8d91b5..72643e3c8 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6078,7 +6078,12 @@ void status_change_init(struct block_list *bl) //the flag values are the same as in status_change_start. int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int tick, int flag) { - int sc_def = 0, tick_def = 0; + //Percentual resistance: 10000 = 100% Resist + //Example: 50% -> sc_def=5000 -> 25%; 5000ms -> tick_def=5000 -> 2500ms + int sc_def = 0, tick_def = -1; //-1 = use sc_def + //Linear resistance substracted from rate and tick after percentual resistance was applied + //Example: 25% -> sc_def2=2000 -> 5%; 2500ms -> tick_def2=2000 -> 500ms + int sc_def2 = 0, tick_def2 = -1; //-1 = use sc_def2 struct status_data* status; struct status_change* sc; struct map_session_data *sd; @@ -6127,67 +6132,72 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti if( sc && !sc->count ) sc = NULL; switch (type) { - case SC_STUN: - case SC_POISON: - if( sc && sc->data[SC__UNLUCKY] ) - return tick; - case SC_DPOISON: - case SC_SILENCE: - case SC_BLEEDING: - sc_def = 3 +status->vit; - break; - case SC_SLEEP: - sc_def = 3 +status->int_; - break; - case SC_DEEPSLEEP: - tick_def = status->int_ / 10 + status_get_lv(bl) * 65 / 1000; // Seems to be -1 sec every 10 int and -5% chance every 10 int. - sc_def = 5 * status->int_ /10; - break; - case SC_DECREASEAGI: - case SC_ADORAMUS://Arch Bishop - if (sd) tick>>=1; //Half duration for players. - case SC_STONE: - case SC_FREEZE: - sc_def = 3 +status->mdef; - break; - case SC_CURSE: - //Special property: inmunity when luk is greater than level or zero - if (status->luk > status_get_lv(bl) || status->luk == 0) - return 0; - else - sc_def = 3 +status->luk; - tick_def = status->vit; - break; - case SC_BLIND: - if( sc && sc->data[SC__UNLUCKY] ) - return tick; - sc_def = 3 +(status->vit + status->int_)/2; - break; - case SC_CONFUSION: - sc_def = 3 +(status->str + status->int_)/2; - break; - case SC_ANKLE: - if(status->mode&MD_BOSS) // Lasts 5 times less on bosses - tick /= 5; - sc_def = status->agi / 2; - break; - case SC_MAGICMIRROR: - case SC_ARMORCHANGE: - if (sd) //Duration greatly reduced for players. - tick /= 15; - //No defense against it (buff). - rate -= (status_get_lv(bl) / 5 + status->vit / 4 + status->agi / 10)*100; // Lineal Reduction of Rate - break; + case SC_STUN: + case SC_POISON: + if( sc && sc->data[SC__UNLUCKY] ) + return tick; + case SC_DPOISON: + case SC_SILENCE: + case SC_BLEEDING: + sc_def = status->vit*100; + sc_def2 = status->luk*10; + break; + case SC_SLEEP: + sc_def = status->int_*100; + sc_def2 = status->luk*10; + break; + case SC_DEEPSLEEP: + sc_def = status->int_*50; + tick_def = status->int_*10 + status_get_lv(bl) * 65 / 10; //Seems to be -1 sec every 10 int and -5% chance every 10 int. + break; + case SC_DECREASEAGI: + case SC_ADORAMUS: //Arch Bishop + if (sd) tick>>=1; //Half duration for players. + case SC_STONE: + //Impossible to reduce duration with stats + tick_def = 0; + tick_def2 = 0; + case SC_FREEZE: + sc_def = status->mdef*100; + sc_def2 = status->luk*10; + break; + case SC_CURSE: + //Special property: inmunity when luk is greater than level or zero + if (status->luk > status_get_lv(bl) || status->luk == 0) + return 0; + sc_def = status->luk*100; + sc_def2 = status->luk*10; + tick_def = status->vit*100; + break; + case SC_BLIND: + if( sc && sc->data[SC__UNLUCKY] ) + return tick; + sc_def = (status->vit + status->int_)*50; + sc_def2 = status->luk*10; + break; + case SC_CONFUSION: + sc_def = (status->str + status->int_)*50; + sc_def2 = status->luk*10; + break; + case SC_ANKLE: + if(status->mode&MD_BOSS) // Lasts 5 times less on bosses + tick /= 5; + sc_def = status->agi*50; + break; + case SC_MAGICMIRROR: + case SC_ARMORCHANGE: + if (sd) //Duration greatly reduced for players. + tick /= 15; + sc_def2 = status_get_lv(bl)*20 + status->vit*25 + status->agi*10; // Lineal Reduction of Rate + tick_def2 = 0; //No duration reduction + break; case SC_MARSHOFABYSS: //5 second (Fixed) + 25 second - {( INT + LUK ) / 20 second } - tick -= (status->int_ + status->luk) / 20 * 1000; + tick_def2 = (status->int_ + status->luk)*50; break; case SC_STASIS: //5 second (fixed) + { Stasis Skill level * 5 - (Target's VIT + DEX) / 20 } - tick -= (status->vit + status->dex) / 20 * 1000; - break; - case SC_WHITEIMPRISON: - if( tick == 5000 ) // 100% on caster + tick_def2 = (status->vit + status->dex)*50; break; if( bl->type == BL_PC ) tick -= (status_get_lv(bl) / 5 + status->vit / 4 + status->agi / 10)*100; @@ -6236,51 +6246,58 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti if (sd) { - if (battle_config.pc_sc_def_rate != 100) + if (battle_config.pc_sc_def_rate != 100) { sc_def = sc_def*battle_config.pc_sc_def_rate/100; + sc_def2 = sc_def2*battle_config.pc_sc_def_rate/100; + } - if (sc_def < battle_config.pc_max_sc_def) - sc_def += (battle_config.pc_max_sc_def - sc_def)* - status->luk/battle_config.pc_luk_sc_def; - else - sc_def = battle_config.pc_max_sc_def; + sc_def = min(sc_def, battle_config.pc_max_sc_def*100); + sc_def2 = min(sc_def2, battle_config.pc_max_sc_def*100); - if (tick_def) { - if (battle_config.pc_sc_def_rate != 100) - tick_def = tick_def*battle_config.pc_sc_def_rate/100; + if (tick_def > 0 && battle_config.pc_sc_def_rate != 100) { + tick_def = tick_def*battle_config.pc_sc_def_rate/100; + tick_def2 = tick_def2*battle_config.pc_sc_def_rate/100; } - } else { - if (battle_config.mob_sc_def_rate != 100) + if (battle_config.mob_sc_def_rate != 100) { sc_def = sc_def*battle_config.mob_sc_def_rate/100; + sc_def2 = sc_def2*battle_config.mob_sc_def_rate/100; + } - if (sc_def < battle_config.mob_max_sc_def) - sc_def += (battle_config.mob_max_sc_def - sc_def)* - status->luk/battle_config.mob_luk_sc_def; - else - sc_def = battle_config.mob_max_sc_def; + sc_def = min(sc_def, battle_config.mob_max_sc_def*100); + sc_def2 = min(sc_def2, battle_config.mob_max_sc_def*100); - if (tick_def) { - if (battle_config.mob_sc_def_rate != 100) - tick_def = tick_def*battle_config.mob_sc_def_rate/100; + if (tick_def > 0 && battle_config.mob_sc_def_rate != 100) { + tick_def = tick_def*battle_config.mob_sc_def_rate/100; + tick_def2 = tick_def2*battle_config.mob_sc_def_rate/100; } } if (sc) { if (sc->data[SC_SCRESIST]) - sc_def += sc->data[SC_SCRESIST]->val1; //Status resist + sc_def += sc->data[SC_SCRESIST]->val1*100; //Status resist else if (sc->data[SC_SIEGFRIED]) - sc_def += sc->data[SC_SIEGFRIED]->val3; //Status resistance. + sc_def += sc->data[SC_SIEGFRIED]->val3*100; //Status resistance. } //When no tick def, reduction is the same for both. - if( !tick_def && type != SC_STONE ) //Recent tests show duration of petrify isn't reduced by MDEF. [Inkfish] + if(tick_def < 0) tick_def = sc_def; + if(tick_def2 < 0) + tick_def2 = sc_def2; //Natural resistance if (!(flag&8)) { - rate -= rate*sc_def/100; + rate -= rate*sc_def/10000; + rate -= sc_def2; + + //Minimum chances + switch (type) { + case SC_BITE: + rate = max(rate, 5000); //Minimum of 50% + break; + } //Item resistance (only applies to rate%) if(sd && SC_COMMON_MIN <= type && type <= SC_COMMON_MAX) @@ -6291,22 +6308,38 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti rate -= rate*sd->sc.data[SC_COMMONSC_RESIST]->val1/100; } } + if (!(rnd()%10000 < rate)) return 0; - //Why would a status start with no duration? Presume it has - //duration defined elsewhere. - if (!tick) return 1; + //Even if a status change doesn't have a duration, it should still trigger + if (tick < 1) return 1; //Rate reduction - if (flag&2) + if (flag&2) return tick; - tick -= tick*tick_def/100; - // Changed to 5 seconds according to recent tests [Playtester] - if (type == SC_ANKLE && tick < 5000) - tick = 5000; - return tick<=0?0:tick; + tick -= tick*tick_def/10000; + tick -= tick_def2; + + //Minimum durations + switch (type) { + case SC_ANKLE: + case SC_MARSHOFABYSS: + case SC_STASIS: + tick = max(tick, 5000); //Minimum duration 5s + break; + case SC_BURNING: + case SC_FREEZING: + tick = max(tick, 10000); //Minimum duration 10s + break; + default: + //Skills need to trigger even if the duration is reduced below 1ms + tick = max(tick, 1); + break; + } + + return tick; } /*========================================== -- cgit v1.2.3-60-g2f50 From c079423d172fa772e6b56262f80c09cd0e5a7f47 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:26:34 -0300 Subject: Follow up 80ca4067115774d6c1c447072b470d5f69ab5883 Improved, previous fix would screw up when non-player unit attacked a player. Signed-off-by: shennetsind --- src/map/battle.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/map/battle.c b/src/map/battle.c index 81c616928..b6180328a 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3394,10 +3394,10 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list if( index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->type == IT_ARMOR ) ATK_ADD(10*sd->status.inventory[index].refine); } - } //if (sd) + } //Card Fix, tsd side - if(tsd) + if(!sd && tsd) //if player on player then it was already measured above wd.damage = battle->calc_cardfix(BF_WEAPON, src, target, nk, s_ele, s_ele_, wd.damage, flag.lh, wd.flag); if( flag.infdef ) -- cgit v1.2.3-60-g2f50 From 4519b9f207fec921433843278198a8ff886c9a72 Mon Sep 17 00:00:00 2001 From: playtester Date: Thu, 28 Mar 2013 14:43:29 +0000 Subject: - Fixed more chances on item status changes - Fixed class requirements of Heart Breaker Hammerfall in renewal (bugreport:7418) - Increased minimum respawn delay for monsters to 5000ms, this is needed to prevent the client from thinking the newly spawned monster is the same than the killed one; one problem it can cause is described in bugreport:7390, also at least in pre-renewal the minimum respawn time is 5 seconds officially and handling this via the code is much better than updating all spawn files - Implemented the official formula for Potion Pitcher when used by monsters git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17219 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/pre-re/item_db.txt | 8 ++++---- db/re/item_db.txt | 12 ++++++------ src/map/mob.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/db/pre-re/item_db.txt b/db/pre-re/item_db.txt index 59d61be1c..f996dcf1d 100644 --- a/db/pre-re/item_db.txt +++ b/db/pre-re/item_db.txt @@ -616,7 +616,7 @@ 1271,Blood_Tears,Blood Tears,4,20,,1700,120,,1,2,0x00001000,2,2,34,4,55,1,16,{ if(getrefine()>=9){ bonus3 bAutoSpell,"NPC_WIDEBLEEDING",2,30; } else bonus3 bAutoSpell,"NPC_WIDEBLEEDING",1,30; },{},{} 1272,Scratcher,Scratcher,4,20,,0,120,,1,0,0x00001000,7,2,34,1,0,0,16,{ bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; },{},{} 1273,Bloody_Roar_C,Refined Bloody Roar,4,1,,0,148,,1,0,0x00001000,7,2,34,4,0,0,16,{ bonus bIgnoreDefRace,RC_DemiHuman; bonus bFlee,-160; bonus bFlee2,-160; },{},{} -1274,Unholy_Touch_C,Refined Unholy Touch,4,1,,0,179,,1,0,0x00001000,7,2,34,4,0,0,16,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,500; bonus bCritical,-1; bonus bUnbreakableWeapon,0; },{},{} +1274,Unholy_Touch_C,Refined Unholy Touch,4,1,,0,179,,1,0,0x00001000,7,2,34,4,0,0,16,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,5000; bonus bCritical,-1; bonus bUnbreakableWeapon,0; },{},{} 1275,Katar_Of_Cold_Icicle_,Katar of Frozen Icicle,4,45000,,1200,105,,1,3,0x00001000,7,2,34,3,55,1,16,{ bonus bAtkEle,Ele_Water; bonus2 bAddEff,Eff_Freeze,500; },{},{} 1276,Katar_Of_Thornbush_,Katar of Quaking,4,45000,,1200,105,,1,3,0x00001000,7,2,34,3,55,1,16,{ bonus bAtkEle,Ele_Earth; bonus2 bAddEff,Eff_Blind,500; },{},{} 1277,Katar_Of_Raging_Blaze_,Katar of Raging Blaze,4,45000,,1200,105,,1,3,0x00001000,7,2,34,3,55,1,16,{ bonus bAtkEle,Ele_Fire; bonus2 bAddEff,Eff_Silence,500; },{},{} @@ -673,7 +673,7 @@ 1375,Berdysz,Berdysz,4,20,,2500,200,,1,2,0x000444A2,2,2,34,3,70,1,7,{ bonus2 bSubSize,Size_Medium,13; bonus2 bSubSize,Size_Large,15; },{},{} 1376,Heart_Breaker,Heart Breaker,4,20,,2000,175,,1,1,0x000444A2,2,2,34,4,70,1,7,{ bonus bCritical,20+getrefine(); bonus bAspdRate,5; if((Class==Job_Whitesmith)||(Class==Job_Creator)) bonus3 bAutoSpell,"BS_HAMMERFALL",3,30; },{},{} 1377,Hurricane_Fury,Hurricane's Fury,4,20,,3500,332,,1,1,0x000444A2,2,2,34,4,80,1,7,{ bonus2 bSubSize,Size_Medium,10+getrefine(); bonus bAspdRate,getrefine(); bonus3 bAutoSpell,"NPC_PULSESTRIKE",5,20; },{},{} -1378,Great_Axe_C,Refined Great Axe,4,1,,0,215,,1,0,0x000444A2,7,2,34,4,0,0,7,{ bonus bStr,5; bonus bHit,20; bonus2 bAddSkillBlow,"MC_MAMMONITE",5; bonus2 bAddEff,Eff_Stun,1500; },{},{} +1378,Great_Axe_C,Refined Great Axe,4,1,,0,215,,1,0,0x000444A2,7,2,34,4,0,0,7,{ bonus bStr,5; bonus bHit,20; bonus2 bAddSkillBlow,"MC_MAMMONITE",5; bonus2 bAddEff,Eff_Stun,2000; },{},{} 1379,BF_Two_Handed_Axe1,Valorous Insane Battle Axe,4,20,,0,200,,1,0,0x000444A2,7,2,34,3,80,1,7,{ bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{} 1380,BF_Two_Handed_Axe2,Brave Insane Battle Axe,4,20,,0,200,,1,0,0x000444A2,7,2,34,3,80,1,7,{ bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; autobonus "{ bonus bBreakArmorRate,10000; }",20,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{} 1381,N_Battle_Axe,Novice Battle Axe,4,0,,0,100,,1,3,0x000444A2,7,2,34,1,3,0,7,{},{},{} @@ -1551,7 +1551,7 @@ 2730,Morroc_Seal,Seal of Continental Guard,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxHP,50; bonus bAspdRate,3; },{},{} 2731,Morroc_Charm_Stone,Rune Spellstone,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxSP,50; bonus bCastRate,-1; },{},{} 2732,Morroc_Ring,Death Loop,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bCritical,5; },{},{} -2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x01000000,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,1000,ATF_LONG; },{},{} +2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x01000000,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{} 2734,Directive_A,Directive,5,0,,0,,1,,0,0x00000001,7,2,136,,0,0,0,{},{},{} 2735,Directive_B,Directive,5,0,,0,,1,,0,0x00000001,7,2,136,,0,0,0,{},{},{} 2736,Navel_Ring,Navel Ring,5,20,,100,,0,,0,0xFFFFFFFE,7,2,136,,75,0,0,{ bonus bDex,3; bonus bLuk,3; bonus bMdef,2; },{},{} @@ -2543,7 +2543,7 @@ 5373,Darkness_Helm,Dark Randgris Helm,5,20,,300,,2,,1,0xFFFFFFFF,7,2,768,,0,1,379,{ bonus bDex,3; bonus bMdef,1; },{},{} 5374,L_Magestic_Goat,Gigantic Majestic Goat,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,0,1,380,{ bonus2 bAddRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7; },{},{} 5375,L_Orc_Hero_Helm,Orc Hero Headdress,5,20,,900,,5,,1,0xFFFFFFFF,7,2,768,,0,1,381,{ bonus bStr,2; bonus3 bAutoSpellWhenHit,"BS_WEAPONPERFECT",3,10; },{},{} -5376,Satanic_Chain_P,Flying Evil Wing,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,382,{ bonus bMaxSP,120; bonus3 bAddEffWhenHit,Eff_Curse,100,ATF_SELF; },{},{} +5376,Satanic_Chain_P,Flying Evil Wing,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,382,{ bonus bMaxSP,120; bonus2 bAddEff2,Eff_Curse,300; },{},{} 5377,Antique_Pipe,Gentleman's Pipe,5,20,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,383,{ bonus2 bSubRace,RC_DemiHuman,2; },{},{} 5378,Rabbit_Ear_Hat,Bunny Top Hat,5,20,,300,,0,,0,0xFFFFFFFF,7,2,256,,0,1,384,{ bonus bAgi,3; bonus3 bAutoSpellWhenHit,"AL_INCAGI",5,10; },{},{} 5379,Balloon_Hat,Tam,5,0,,800,,3,,1,0xFFFFFFFF,7,2,256,,50,1,385,{ bonus bMdef,2; bonus bMatkRate,2+(getrefine()/2); },{},{} diff --git a/db/re/item_db.txt b/db/re/item_db.txt index f07291dbe..de07386a4 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -631,7 +631,7 @@ 1271,Blood_Tears,Blood Tears,4,20,,1700,120,,1,2,0x00001000,2,2,34,4,55,1,16,{ if(getrefine()>=9){ bonus3 bAutoSpell,"NPC_WIDEBLEEDING",2,30; } else bonus3 bAutoSpell,"NPC_WIDEBLEEDING",1,30; },{},{} 1272,Scratcher,Scratcher,4,20,,0,120,,1,0,0x00001000,7,2,34,1,0,0,16,{ bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; },{},{} 1273,Bloody_Roar_C,Refined Bloody Roar,4,1,,0,148,,1,0,0x00001000,7,2,34,4,0,0,16,{ bonus bIgnoreDefRace,RC_DemiHuman; bonus bFlee,-160; bonus bFlee2,-160; },{},{} -1274,Unholy_Touch_C,Refined Unholy Touch,4,1,,0,179,,1,0,0x00001000,7,2,34,4,0,0,16,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,500; bonus bCritical,-1; bonus bUnbreakableWeapon,0; },{},{} +1274,Unholy_Touch_C,Refined Unholy Touch,4,1,,0,179,,1,0,0x00001000,7,2,34,4,0,0,16,{ bonus bAtkEle,Ele_Dark; bonus2 bAddEff,Eff_Curse,5000; bonus bCritical,-1; bonus bUnbreakableWeapon,0; },{},{} 1275,Katar_Of_Cold_Icicle_,Katar of Frozen Icicle,4,45000,,1200,105,,1,3,0x00001000,7,2,34,3,55,1,16,{ bonus bAtkEle,Ele_Water; bonus2 bAddEff,Eff_Freeze,500; },{},{} 1276,Katar_Of_Thornbush_,Katar of Quaking,4,45000,,1200,105,,1,3,0x00001000,7,2,34,3,55,1,16,{ bonus bAtkEle,Ele_Earth; bonus2 bAddEff,Eff_Blind,500; },{},{} 1277,Katar_Of_Raging_Blaze_,Katar of Raging Blaze,4,45000,,1200,105,,1,3,0x00001000,7,2,34,3,55,1,16,{ bonus bAtkEle,Ele_Fire; bonus2 bAddEff,Eff_Silence,500; },{},{} @@ -698,9 +698,9 @@ 1373,Brood_Axe_C,Refined Bloody Axe,4,2,,0,205,,1,0,0x000444A2,7,2,34,4,0,0,7,{ bonus bStr,20; bonus bSpeedRate,25; bonus bAspdRate,5; },{},{} 1374,Tomahawk_C,Tomahawk,4,2,,0,200,,1,0,0x000444A2,7,2,34,4,0,0,7,{ bonus bAtkEle,Ele_Wind; skill "ITM_TOMAHAWK",1; },{},{} 1375,Berdysz,Berdysz,4,20,,2500,200,,1,2,0x000444A2,2,2,34,3,70,1,7,{ bonus2 bSubSize,Size_Medium,13; bonus2 bSubSize,Size_Large,15; },{},{} -1376,Heart_Breaker,Heart Breaker,4,20,,2000,175,,1,1,0x000444A2,2,2,34,4,70,1,7,{ bonus bCritical,20+getrefine(); bonus bAspdRate,5; if((Class==Job_Whitesmith)||(Class==Job_Creator)) bonus3 bAutoSpell,"BS_HAMMERFALL",3,30; },{},{} +1376,Heart_Breaker,Heart Breaker,4,20,,2000,175,,1,1,0x000444A2,2,2,34,4,70,1,7,{ bonus bCritical,20+getrefine(); bonus bAspdRate,5; if((Class==Job_Whitesmith)||(Class==Job_Creator)||(Class==Job_Mechanic)||(Class==Job_Mechanic_T)||(Class==Job_Genetic)||(Class==Job_Genetic_T)) bonus3 bAutoSpell,"BS_HAMMERFALL",3,30; },{},{} 1377,Hurricane_Fury,Hurricane's Fury,4,20,,3500,332,,1,1,0x000444A2,2,2,34,4,80,1,7,{ bonus2 bSubSize,Size_Medium,10+getrefine(); bonus bAspdRate,getrefine(); bonus3 bAutoSpell,"NPC_PULSESTRIKE",5,20; },{},{} -1378,Great_Axe_C,Refined Great Axe,4,1,,0,215,,1,0,0x000444A2,7,2,34,4,0,0,7,{ bonus bStr,5; bonus bHit,20; bonus2 bAddSkillBlow,"MC_MAMMONITE",5; bonus2 bAddEff,Eff_Stun,1500; },{},{} +1378,Great_Axe_C,Refined Great Axe,4,1,,0,215,,1,0,0x000444A2,7,2,34,4,0,0,7,{ bonus bStr,5; bonus bHit,20; bonus2 bAddSkillBlow,"MC_MAMMONITE",5; bonus2 bAddEff,Eff_Stun,2000; },{},{} 1379,BF_Two_Handed_Axe1,Valorous Insane Battle Axe,4,20,,0,200,,1,0,0x000444A2,7,2,34,3,80,1,7,{ bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; },{},{} 1380,BF_Two_Handed_Axe2,Brave Insane Battle Axe,4,20,,0,200,,1,0,0x000444A2,7,2,34,3,80,1,7,{ bonus bStr,3; bonus2 bAddRace,RC_DemiHuman,55; autobonus "{ bonus bBreakArmorRate,10000; }",20,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{} 1381,N_Battle_Axe,Novice Battle Axe,4,0,,0,100,,1,3,0x000444A2,7,2,34,1,3,0,7,{},{},{} @@ -1764,7 +1764,7 @@ 2730,Morroc_Seal,Seal of Continental Guard,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxHP,50; bonus bAspdRate,3; },{},{} 2731,Morroc_Charm_Stone,Rune Spellstone,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bMaxSP,50; bonus bVariableCastrate,-1; },{},{} 2732,Morroc_Ring,Death Loop,5,20,,50,,0,,1,0xFFFFFFFE,7,2,136,,80,0,0,{ bonus bCritical,5; },{},{} -2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x01000000,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,1000,ATF_LONG; },{},{} +2733,Medal_Gunner,Sheriff Badge,5,20,,0,,1,,0,0x01000000,7,2,136,,70,0,0,{ bonus2 bAddRace,RC_NonBoss,5; bonus2 bAddRace,RC_Boss,5; bonus bMatkRate,5; bonus bCritical,10; bonus bMaxHP,300; bonus bMaxSP,80; bonus3 bAddEff,Eff_Blind,100,ATF_LONG; },{},{} 2734,Directive_A,Directive,5,0,,0,,1,,0,0x00000001,7,2,136,,0,0,0,{},{},{} 2735,Directive_B,Directive,5,0,,0,,1,,0,0x00000001,7,2,136,,0,0,0,{},{},{} 2736,Navel_Ring,Navel Ring,5,20,,100,,0,,0,0xFFFFFFFE,7,2,136,,75,0,0,{ bonus bDex,3; bonus bLuk,3; bonus bMdef,2; },{},{} @@ -3067,7 +3067,7 @@ 5373,Darkness_Helm,Dark Randgris Helm,5,20,,300,,2,,1,0xFFFFFFFF,7,2,768,,0,1,379,{ bonus bDex,3; bonus bMdef,1; },{},{} 5374,L_Magestic_Goat,Gigantic Majestic Goat,5,20,,800,,5,,0,0xFFFFFFFF,7,2,256,,0,1,380,{ bonus2 bAddRace,RC_DemiHuman,12; bonus bBaseAtk,(JobLevel*2)/7; },{},{} 5375,L_Orc_Hero_Helm,Orc Hero Headdress,5,20,,900,,5,,1,0xFFFFFFFF,7,2,768,,0,1,381,{ bonus bStr,2; bonus3 bAutoSpellWhenHit,"BS_WEAPONPERFECT",3,10; },{},{} -5376,Satanic_Chain_P,Flying Evil Wing,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,382,{ bonus bMaxSP,120; bonus3 bAddEffWhenHit,Eff_Curse,100,ATF_SELF; },{},{} +5376,Satanic_Chain_P,Flying Evil Wing,5,20,,100,,3,,1,0xFFFFFFFF,7,2,256,,0,1,382,{ bonus bMaxSP,120; bonus2 bAddEff2,Eff_Curse,300; },{},{} 5377,Antique_Pipe,Gentleman's Pipe,5,20,,100,,0,,0,0xFFFFFFFF,7,2,1,,0,0,383,{ bonus2 bSubRace,RC_DemiHuman,2; },{},{} 5378,Rabbit_Ear_Hat,Bunny Top Hat,5,20,,300,,0,,0,0xFFFFFFFF,7,2,256,,0,1,384,{ bonus bAgi,3; bonus3 bAutoSpellWhenHit,"AL_INCAGI",5,10; },{},{} 5379,Balloon_Hat,Tam,5,0,,800,,3,,1,0xFFFFFFFF,7,2,256,,50,1,385,{ bonus bMdef,2; bonus bMatkRate,2+(getrefine()/2); },{},{} @@ -6153,7 +6153,7 @@ 13059,E_Asura_C,Asura,4,1,,0,120,,1,0,0x02000000,7,2,2,1,1,0,1,{},{},{} 13060,E_Counter_Dagger_C,Counter Dagger,4,1,,0,209,,1,0,0x00810204,7,2,2,4,1,0,1,{},{},{} 13061,Black_Wing,Black Wing,4,20,,600,142,,1,1,0x00020000,7,2,2,3,102,1,1,{ bonus2 bSkillAtk,"SC_FATALMENACE",30+(getrefine()*2); bonus bMatkRate,(getrefine()*3); },{},{} -13062,Ancient_Dagger,Ancient Dagger,4,20,,600,107,,0,0,0x028F5EEE,2,2,2,4,120,1,1,{ bonus bMatk,120; bonus bMaxSP,100; bonus bSPrecovRate,5; bonus2 bAddEff2,Eff_Curse,50; },{},{} +13062,Ancient_Dagger,Ancient Dagger,4,20,,600,107,,0,0,0x028F5EEE,2,2,2,4,120,1,1,{ bonus bMatk,120; bonus bMaxSP,100; bonus bSPrecovRate,5; bonus2 bAddEff2,Eff_Curse,20; bonus3 bAddEff,Eff_Curse,20,ATF_SELF|ATF_SKILL; },{},{} //13063, //13064, //13065, diff --git a/src/map/mob.c b/src/map/mob.c index 6a507a099..df7e2c365 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -875,8 +875,8 @@ int mob_setdelayspawn(struct mob_data *md) spawntime = spawntime/100*battle_config.mob_spawn_delay; } - if (spawntime < 500) //Min respawn time (is it needed?) - spawntime = 500; + if (spawntime < 5000) //Monsters should never respawn faster than within 5 seconds + spawntime = 5000; if( md->spawn_timer != INVALID_TIMER ) delete_timer(md->spawn_timer, mob_delayspawn); -- cgit v1.2.3-60-g2f50 From 53369ab05d2f087d826b5fbb2dcb335a1ac59a1d Mon Sep 17 00:00:00 2001 From: euphyy Date: Sun, 31 Mar 2013 01:19:36 +0000 Subject: * Added "Play with Baby Cats" to Malangdo quests. * Updated quest_db with all remaining Malangdo entries. * Temporariliy added new coordinates to Warlock job quest to match new Morroc map. (tid:80650) * Fixed some misplaced 'close2' commands in El Dicastes quests (incl. bugreport:7431). * Moved equip index constants in pc.h so that equip_index no longer needs to updating. (follow-up r17221, Hercules ea42e92) * Minor changes to script_commands.txt. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17224 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/quest_db.txt | 119 ++- npc/re/jobs/3-1/warlock.txt | 13 +- npc/re/quests/quests_dicastes.txt | 6 +- npc/re/quests/quests_malangdo.txt | 1881 ++++++++++++++++++++++++++++++++++++- 4 files changed, 1973 insertions(+), 46 deletions(-) diff --git a/db/quest_db.txt b/db/quest_db.txt index 4cf47c32f..dc3b87d2d 100644 --- a/db/quest_db.txt +++ b/db/quest_db.txt @@ -41,7 +41,7 @@ 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" +1152,82800,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" @@ -547,32 +547,42 @@ 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" -5058,0,0,0,0,0,0,0,"State of mind-(1)" -5059,0,0,0,0,0,0,0,"State of mind-(1)" + +5058,0,0,0,0,0,0,0,"The mood of the players-(1)" +5059,0,0,0,0,0,0,0,"The mood of the players-(2)" 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)" +5061,0,0,0,0,0,0,0,"Am I scared?" +5062,0,0,0,0,0,0,0,"I met Eryu." +5063,0,0,0,0,0,0,0,"I met Stew." +5064,0,0,0,0,0,0,0,"I met Ketchup." +5065,0,0,0,0,0,0,0,"I met Eff." +5066,0,0,0,0,0,0,0,"Scary image-(1)" +5067,0,0,0,0,0,0,0,"Scary image-(2)" +5068,72000,0,0,0,0,0,0,"Collecting complaint" +5069,3600,0,0,0,0,0,0,"Token of honor" 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" -5091,0,0,0,0,0,0,0,"Malang Road" +5073,86400,0,0,0,0,0,0,"Challenging of flag wave" +5074,0,1158,30,0,0,0,0,"Cat's Meal" +5075,0,1144,50,0,0,0,0,"Health food" +5076,0,1282,30,0,0,0,0,"Enemies" +5077,0,1209,10,0,0,0,0,"Reaction Training" +5078,0,1019,50,0,0,0,0,"Light bird food" +5079,0,0,0,0,0,0,0,"How to stabilize the mind" +5080,0,0,0,0,0,0,0,"Lack of Snack" +5081,0,0,0,0,0,0,0,"Banned foods" +5082,0,0,0,0,0,0,0,"Cool food" +5083,0,0,0,0,0,0,0,"Please come back Eryu-(1)" +5084,0,0,0,0,0,0,0,"Please come back Eryu-(2)" +5085,0,0,0,0,0,0,0,"Please come back Stew-(1)" +5086,0,0,0,0,0,0,0,"Please come back Stew-(2)" +5087,0,0,0,0,0,0,0,"Please come back Ketchup-(1)" +5088,0,0,0,0,0,0,0,"Please come back Ketchup-(2)" +5089,0,0,0,0,0,0,0,"Please come back Eff-(1)" +5090,0,0,0,0,0,0,0,"Please come back Eff-(2)" +5091,0,0,0,0,0,0,0,"Go Malangdo" + 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" @@ -582,6 +592,7 @@ 5098,0,0,0,0,0,0,0,"Unlocking the Ultimate Mediocrity" 5099,0,0,0,0,0,0,0,"Unlocking the Ultimate Mediocrity" 5100,0,0,0,0,0,0,0,"Unlocking the Ultimate Mediocrity" + 5109,0,0,0,0,0,0,0,"Light but Unconfirmed Rumor" 5110,0,0,0,0,0,0,0,"The Rumored Character" 5111,0,0,0,0,0,0,0,"To the Lab..." @@ -878,16 +889,33 @@ 7239,0,0,0,0,0,0,0,"Toren's Errands (Normal)" 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" +7242,0,0,0,0,0,0,0,"Play with the baby cat" +7243,0,0,0,0,0,0,0,"Nyadventure-Duruduru Compass" +7244,180,0,0,0,0,0,0,"Nyadventure-Duruduru Race" +7245,180,0,0,0,0,0,0,"Nyadventure-Duruduru Race" +7246,0,0,0,0,0,0,0,"Nyadventure-I'm coming now." +7247,0,0,0,0,0,0,0,"Nyadventure-Stop the Bang!" +//7248,0,0,0,0,0,0,0,"" +7249,86400,0,0,0,0,0,0,"Nyadventure-Bang! See you next time" +7250,0,0,0,0,0,0,0,"Nyadventure-Hidden Treasure?" +7251,0,0,0,0,0,0,0,"Nyadventure-The First piece of Painting" +7252,0,0,0,0,0,0,0,"Nyadventure-The Second piece of Painting" +7253,0,0,0,0,0,0,0,"Nyadventure-The Third piece of Painting" +7254,0,0,0,0,0,0,0,"Nyadventure-The Fourth piece of Painting" +7255,0,0,0,0,0,0,0,"Nyadventure-The Fifth piece of Painting" +7256,0,0,0,0,0,0,0,"Nyadventure-The Sixth piece of Painting" +7257,86400,0,0,0,0,0,0,"Nyadventure-Race, Come back tomorrow!" +7258,0,0,0,0,0,0,0,"Nyadventure-Painting completed" +7259,0,0,0,0,0,0,0,"Gift from the Mew Bravery Team" +7260,0,0,0,0,0,0,0,"The origin of Bugs" 7261,0,0,0,0,0,0,0,"Cat Biscuits - Table" 7262,0,0,0,0,0,0,0,"Cat Biscuits - Mattress" 7263,0,0,0,0,0,0,0,"Cat Biscuits - 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" -7267,86400,0,0,0,0,0,0,"Cleanyang's meow and appointment time" -7268,0,0,0,0,0,0,0,"Find the cat biscuits!" +7264,0,0,0,0,0,0,0,"To Chef Nyas" +7265,0,0,0,0,0,0,0,"Rage of Chef Nyas" +7266,0,0,0,0,0,0,0,"Declaration of Chef Nyas" +7267,86400,0,0,0,0,0,0,"Appointed time with Cleanyang" +7268,0,0,0,0,0,0,0,"Find the Cat's hard biscuits!" 7269,0,0,0,0,0,0,0,"Cat Biscuits - Resting Place" 7270,0,0,0,0,0,0,0,"Cat Biscuits - Sand" 7271,0,0,0,0,0,0,0,"Cat Biscuits - Bottom of the Stairs" @@ -895,7 +923,7 @@ 7273,0,0,0,0,0,0,0,"Cat Biscuits - Locker" 7274,0,0,0,0,0,0,0,"Cat Biscuits - Foothold" 7275,0,0,0,0,0,0,0,"Cat Biscuits - Sand" -7276,86400,0,0,0,0,0,0,"Food delivery promise" +7276,86400,0,0,0,0,0,0,"Promise to deliver more food" 7281,0,0,0,0,0,0,0,"List of Errands" 7282,0,0,0,0,0,0,0,"List of Errands" 7283,0,0,0,0,0,0,0,"List of Errands" @@ -1718,11 +1746,13 @@ 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" +11239,82800,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" +11243,82800,0,0,0,0,0,0,"Repair of cracks" +11244,0,0,0,0,0,0,0,"Soft Jelly" +11245,82800,0,0,0,0,0,0,"Soft Jelly" 11284,0,0,0,0,0,0,0,"Nurse at Port Malaya-1" 11285,0,0,0,0,0,0,0,"Nurse at Port Malaya-2" @@ -1994,6 +2024,29 @@ 12252,0,0,0,0,0,0,0,"Missing Information on Tuale" 12253,82800,0,0,0,0,0,0,"Missing Person Search Time Limit" +// Malangdo Culverts +12254,3600,0,0,0,0,0,0,"Now it's cleaning" +12255,0,2176,20,0,0,0,0,"Hunt deep sea crab" +12256,0,2175,20,0,0,0,0,"Hunt deep sea squid" +12257,0,2174,20,0,0,0,0,"Hunt Ancient crustacean" +12258,0,2178,20,0,0,0,0,"Hunt deep sea shell" +12259,0,2179,20,0,0,0,0,"Hunt ancient kukre" +12260,0,2177,20,0,0,0,0,"Hunt deep sea conch" +12261,0,2182,30,0,0,0,0,"Hunt deep sea horse" +12262,0,2181,30,0,0,0,0,"Hunt ancient sword fish" +12263,0,2180,30,0,0,0,0,"Hunt ancient sea god" +12264,0,2183,30,0,0,0,0,"Hunt mutation anolian" +12265,0,2184,30,0,0,0,0,"Hunt deep sea mermaid" +12266,0,2185,30,0,0,0,0,"Hunt transformable kapha" +12267,0,2188,1,0,0,0,0,"Hunt weird coelacanth" +12268,0,2187,1,0,0,0,0,"Hunt dark coelacanth" +12269,0,2190,1,0,0,0,0,"Hunt Cruel coelacanth" +12270,0,2189,1,0,0,0,0,"Hunt mutation coelacanth" +12271,82800,0,0,0,0,0,0,"In progress general culvert single day service" +12272,82800,0,0,0,0,0,0,"In progress hard culvert single day service" +12273,579600,0,0,0,0,0,0,"In progress general culvert weekly service" +12274,579600,0,0,0,0,0,0,"In progress hard culvert weekly service" + 12278,0,0,0,0,0,0,0,"Towards Bakonawa Lake..." 12279,0,0,0,0,0,0,0,"Get Rid of Bakonawa" diff --git a/npc/re/jobs/3-1/warlock.txt b/npc/re/jobs/3-1/warlock.txt index 363597c10..8a8e1f0ce 100644 --- a/npc/re/jobs/3-1/warlock.txt +++ b/npc/re/jobs/3-1/warlock.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Muad_Dib, Gepard & L0ne_W0lf //===== Current Version: ===================================== -//= 1.3 +//= 1.3a //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= @@ -14,12 +14,13 @@ //= 1.1 Fixed some conversion mistakes, replaced numbers with //= constants, added item names in comments. //= 1.2 Fixed the problem where NPC are not enabled and chamber -//= will never open for the second try or use. +//= will never open for the second try or use. //= 1.2a Fixed a typo. [Euphy] //= 1.3 Updated script, optimized. [Euphy] +//= 1.3a Added temporary coordinate fix #distorted_space_1-1. [Euphy] //============================================================ -morocc,103,144,0 script #distorted_space_1 139,1,1,{ +- script #distorted_space_ -1,{ OnTouch: if (job_wl > 1) { mes " - There is a strange distortion here - "; @@ -65,7 +66,11 @@ OnTouch: } end; } -splendide,141,284,0 duplicate(#distorted_space_1) #distorted_space_2 139,1,1 +morocc,103,144,0 duplicate(#distorted_space_) #distorted_space_1 139,1,1 +splendide,141,284,0 duplicate(#distorted_space_) #distorted_space_2 139,1,1 + +// This is a temporary fix until new official coordinates are found. +morocc,98,144,0 duplicate(#distorted_space_) #distorted_space_1-1 139,1,1 function script F_Warlock { mes "[Assistant]"; diff --git a/npc/re/quests/quests_dicastes.txt b/npc/re/quests/quests_dicastes.txt index bf5317195..e55ed80a6 100644 --- a/npc/re/quests/quests_dicastes.txt +++ b/npc/re/quests/quests_dicastes.txt @@ -308,7 +308,7 @@ OnTouch: donpcevent "Suspicious Guy#ep133_::OnDisable"; mes "The guy in all black disappeared suddenly."; mes "Who was that?"; - close2; + close; } end; } @@ -339,7 +339,7 @@ OnEnable: mes "[Capital City Guard]"; mes "Access to the city is restricted from other races without permits."; mes "Please go back."; - close2; + close; } else if (ep13_3_invite == 5) { mes "[Capital City Guard]"; @@ -383,7 +383,7 @@ OnEnable: mes "[Capital City Guard]"; mes "Unknown situation occurred. Case " + strnpcinfo(2); mes "Please inquiry with a GM."; - close2; + close; } dic_fild01,146,281,5 duplicate(Guard#ep133_11) Capital City Guard#1 492 dic_fild01,153,281,3 duplicate(Guard#ep133_11) Capital City Guard#2 450 diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt index ac610cc65..b92715759 100644 --- a/npc/re/quests/quests_malangdo.txt +++ b/npc/re/quests/quests_malangdo.txt @@ -3,20 +3,22 @@ //===== By: ================================================== //= Muad_Dib //===== Current Version: ===================================== -//= 1.2 +//= 1.3 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Quest NPCs related to Malangdo: -//== Help the bad cats in danger, Clean the Ship, -//== Help Chef Nyas, Archangel Wing Enchants +//== Help the Bad Cats in Danger, Clean the Ship, +//== Help Chef Nyas, Play with Baby Cats +//== Archangel Wing Enchants //===== Additional Comments: ================================= //= 1.0 First version. [Euphy] //= 1.1 Added two quests. //= 1.2 Added Archangel Wing Enchants. +//= 1.3 Added Play with Baby Cats. //============================================================ -// Help the bad cats in danger :: mal_bad_guys +// Help the Bad Cats in Danger :: mal_bad_guys //============================================================ malangdo,175,206,3 script Gobonge#ml 561,{ if (checkweight(1201,1) == 0) { @@ -1459,7 +1461,7 @@ malangdo,133,134,0 script Strange Pile of Sand#7 557,{ mes "We already collected buried cat's ship biscuit."; close; } - mes "- Look so strange. -"; + mes "- Looks so strange. -"; mes "- That's it... -"; close; } @@ -1495,7 +1497,7 @@ malangdo,232,131,0 script #UnderStairs8 844,{ close; } mes "Out of people's hand under the stairs."; - mes "Sometimes, I look around there when I search lost toys."; + mes "Sometimes, I look around there when I search for lost toys."; close; } @@ -1908,6 +1910,1873 @@ mal_in02,187,58,3 script Chef Nyas 548,{ } } +// Play with Baby Cats :: mal_nyadventurer +//============================================================ +malangdo,165,223,4 script Expert Cat#nya_01 561,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) { + mes "- You have too many items to proceed in this quest. -"; + close; + } + if (BaseLevel < 60) { + mes "[Rato]"; + mes "Seems like a visitor."; + mes "How does this island look?"; + mes "It is hard to believe, but this ground is very soft, so we named this island Malangdo."; + next; + mes "[Rato]"; + mes "If you were a more professional adventurer, I'd ask you one thing..."; + mes "Well, I won't do it."; + close; + } + if (nyadven == 0) { + mes "[Rato]"; + mes "Hey there."; + mes "I am Rato, do you have a moment?"; + next; + switch(select("Yeah, sure I do.:I'm sorry, but I'm busy right now.")) { + case 1: + mes "[Rato]"; + mes "Well, nothing special, but could you do me a favor?"; + mes "Did you see the kids gathered on your way here?"; + next; + select("Kids?"); + mes "[Rato]"; + mes "Yes yes, baby kids."; + mes "They are the youngest kids among the merchants and crews."; + mes "They feel anxious that they might not be able to go back home."; + next; + mes "[Rato]"; + mes "And they are getting bored of living on this small island."; + mes "They already tasted sea and adventure..."; + next; + mes "[Rato]"; + mes "They used to play with making things, but seem tired of that also..."; + mes "If it's okay, would you play with them for a while?"; + next; + switch(select("Uh, sure...:I don't have enough time for that.")) { + case 1: + mes "[Rato]"; + mes "Oh, thank you!"; + mes "Then, where are they?"; + mes "Maybe near Beginning Compass...?"; + next; + mes "[Rato]"; + mes "They are so active that I am not sure where they are now."; + break; + case 2: + mes "[Rato]"; + mes "Oh, really?"; + mes "It's okay even though you cannot do this right now."; + break; + } + mes "If you meet them, please spend time with them."; + next; + mes "[Rato]"; + mes "The youngest one is Charo, with gold fur."; + mes "Roku has black fur, and Rosy has white fur."; + mes "Please take care of them."; + set nyadven,1; + setquest 7242; + close; + case 2: + mes "[Rato]"; + mes "Oh, really?"; + mes "I am sorry for disturbing you."; + close; + } + } else if (nyadven == 1) { + mes "[Rato]"; + mes "The youngest one is Charo, with gold fur."; + mes "Roku has black fur, and Rosy has white fur."; + next; + mes "[Rato]"; + mes "We can look forward to the moment we can go back home if these children grow up nicely."; + mes "For that reason, please take care of them."; + close2; + } else if (nyadven < 13) { + mes "[Rato]"; + mes "Do kids disturb you too much?"; + mes "What... adventurer group? Did you play with toys from the adventurer group?"; + next; + mes "[Rato]"; + mes "I really worried about them the first time we were shipwrecked to this island..."; + mes "They thought the first voyage was huge adventure..."; + next; + mes "[Rato]"; + mes "They look excited, like they got a fever."; + mes "It seems like yesterday that I made toys for them and soothed them..."; + next; + mes "Rato seems to be in brown study."; + close; + } else if (nyadven == 13) { + if (countitem(6430) < 6) { + mes "You didn't bring the pieces of the painting."; + mes "Please take it with you."; + close; + } + mes "[Rato]"; + mes "What's going on?"; + mes "It should be very hard to take care of the kids even though I asked you, isn't it?"; + mes "I am sorry, I should take care of them..."; + next; + mes "You hand Rato a piece of painting."; + next; + mes "[Rato]"; + mes "Oh, this is a piece of painting?"; + mes "Ah!!!"; + mes "Has this painting been torn up already?"; + next; + mes "[Rato]"; + mes "Did they say this is a gift for me?"; + mes "Huhhuh, a piece of painting?"; + mes "HAHAHAHAHA!"; + next; + mes "[Rato]"; + mes "Okay, I will patch up this painting by myself."; + mes "They are still the same."; + mes "I think I should worry about myself first..."; + next; + mes "[Rato]"; + mes "It's very kind of you to play with the kids."; + mes "This is for you."; + delitem 6430,6; //Picture_Piece + set nyadven,14; + getitem 6422,100; //Egrade_Coin + completequest 7259; + next; + mes "[Rato]"; + mes "I owe you a big favor!"; + mes "Let's drink today!"; + mes "Miaow~"; + close; + } else { + mes "[Rato]"; + mes "Hey, how's it going? If you have time please look at it."; + next; + switch(select("Look at a picture.:Don't look at a picture.")) { + case 1: + mes "[Rato]"; + mes "Yes, they drew this picture full of happiness."; + next; + cutin "mal_nyapic",4; + mes "Appreciate the picture in the frame."; + close2; + cutin "",255; + end; + case 2: + mes "[Rato]"; + mes "Why don't you look at such a nice picture?"; + mes "I'm disapointed."; + close; + } + } +} + +malangdo,211,203,4 script [Meow Team] Charo#nya_11 560,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) { + mes "- You have too many items to proceed in this quest. -"; + close; + } + if (nyadven == 0) { + mes "There are gathered cats who seems younger than other crews."; + mes "They are having a serious conversation about the weird machine in front of them."; + close; + } else if (nyadven == 1) { + mes "There are gathered cats who seems younger than other crews."; + mes "They are having a serious conversation about the weird machine in front of them."; + mes "They are looks like kids who Rato told me."; + next; + switch(select("Just watch them without a word.:Busy right now.")) { + case 1: + mes "You try to listen to the conversation without disturbing them."; + next; + mes "[Charo]"; + mes "When will it be fixed? When it will be done?"; + mes "Isn't this the last one?"; + next; + mes "[Rosy]"; + mes "Um... you don't even get tried of it?"; + mes "Anyway, we are in trouble."; + mes "The glass bead is broken."; + next; + mes "[Roku]"; + mes "Don't we have an extra glass bead?"; + next; + mes "[Rosy]"; + mes "No, we don't have any."; + mes "We can't fix this without it, right?"; + next; + mes "The cats look your way at the same time."; + next; + switch(select("I have a spare Glass Bead!:Why are you guys staring at me?")) { + case 1: + if (countitem(746) == 0) { + mes "[Roku]"; + mes "There is no glass bead."; + mes "Don't lie to us."; + close; + } + mes "[Charo]"; + mes "Really? Oh, really?"; + mes "It's a bead! And a shining glass bead as well!"; + next; + mes "[Rosy]"; + mes "Hmm. This is enough to replace it."; + mes "Like this..."; + next; + mes "[Roku]"; + mes "And then here, this?"; + mes "Done."; + next; + mes "[Charo]"; + mes "Exciting!!!"; + mes "Okay, adventurer! We'll give you the right to use this machine!"; + mes "Try this whenever you want to!!"; + next; + mes "[Charo]"; + mes "Advanturer! This is a delicious can."; + mes "You can get whatever you want with cans in this island. It is tradable."; + mes "Rosy, Roku and I collected them."; + next; + mes "[Charo]"; + mes "And adventurer!"; + mes "If you were a real adventurer,"; + mes "you would clear all Nyadventures"; + mes "made by the Meow Bravery Team!"; + mes "Challenge it whenever you want to!"; + delitem 746,1; //Glass_Bead + set nyadven,2; + getitem 12636,30; //Malang_Sp_Can + close; + case 2: + mes "[Rosy]"; + mes "We are just looking at you as you stand there."; + close; + } + case 2: + mes "I'll come again later."; + close; + } + } else if (nyadven == 2) { + mes "[Charo]"; + mes "We fixed the Duruduru compass, we only need a visitor now..."; + mes "Hey, do you want to be a visitor?"; + emotion e_gasp; + next; + select("A visitor?"); + mes "[Charo]"; + mes "This is an adventure course made by the Meow adventure team."; + mes "Especially we have added studying course this time."; + mes "It's simple to solve, you only need to find compass in this island according to order."; + next; + switch(select("I'll give it a try.:Quit.")) { + case 1: + mes "[Charo]"; + mes "Here is your Adventure Card."; + mes "This is the Duruduru Compass which we fixed with the glass bead you gave us."; + mes "And this is the Beginning Compass."; + next; + mes "[Charo]"; + mes "The game will start if you put the Adventure Card in here!"; + mes "This machine is for testing essential ingredients of adventure."; + next; + mes "[Charo]"; + mes "Don't forget the destination for successful adventure."; + mes "And you should find a way to get to your destination as fast as possible."; + next; + mes "[Charo]"; + mes "You will be good, as you are a good person for giving us the glass bead."; + next; + mes "Got Adventure Card from the yellow cat Charo."; + mes "It seems to work if I put this card in the slot in the Beginning Compass."; + set nyadven,3; + getitem 6428,1; //Bravery_Card_A + changequest 7242,7243; + next; + mes "[Charo]"; + mes "The game will start if you scratch Adventure Card to the Beginning Compass!"; + mes "The Beginning Compass will let you know where you should go."; + next; + mes "[Charo]"; + mes "^4d4dffIf you go through all the compasses, you will see Meowbell from the ship Navi at last!"; + mes "Ring the New bell!^000000"; + close; + case 2: + mes "[Charo]"; + mes "Ah... you are not going to do it..."; + mes "Um..."; + mes "Sob~"; + mes "Meow~"; + next; + mes "[Rosy]"; + mes "Hey, adventurer. Don't make kids cry!"; + close; + } + } else if (nyadven == 3) { + if (nyadven02 == 28) { + mes "[Charo]"; + mes "Oh? Isn't this failed stamp from Bubi?"; + mes "I'm really disappointed."; + mes "Try again~ you can make it!"; + set nyadven02,0; + if (checkquest(7257) > -1) + erasequest 7257; + close; + } + mes "[Charo]"; + mes "The game will start if you scratch Adventure Card to the Beginning Compass!"; + mes "The Beginning Compass will let you know where you should go."; + next; + mes "[Charo]"; + mes "^4d4dffIf you go through all the compasses, you will see Meowbell from the ship Navi at last!"; + mes "Ring the New bell!^000000"; + close; + } else if (nyadven == 4) { + if (countitem(6428) == 0) { + mes "[Charo]"; + mes "Where is your Adventure Card?"; + mes "You should bring it with you."; + mes "You can't be serious that you threw it away with your other trash!!"; + close; + } + mes "[Charo]"; + mes "I heard it!"; + mes "I heard sound of Meowbell!"; + mes "You are great!"; + mes "The next will be a big case!"; + next; + select("The next?"); + mes "[Charo]"; + mes "You are member of the Meow Bravery Team while you have the card with you."; + mes "We need an adventurer like you anyways, since this is a big case."; + next; + mes "[Charo]"; + mes "It's for the cuff."; + mes "It seems a bomb is planted in this island."; + mes "The detective has went for this case already."; + next; + mes "[Charo]"; + mes "You should go there too!"; + next; + switch(select("Why do I have to go there?:What an adventure! I'll take it!")) { + case 1: + mes "[Charo]"; + mes "This is a big case!"; + mes "And this island could explode!"; + mes "Oh, you might shut your eyes to the fact."; + mes "Give the Adventure Card back!"; + delitem 6428,1; //Bravery_Card_A + set nyadven,5; + erasequest 7243; + close; + case 2: + mes "[Charo]"; + mes "You have great capabilities as an adventurer!"; + mes "Please help detective and his friend who got in trouble and also save this island!"; + next; + mes "[Charo]"; + mes "But be sure this should be done undercover!"; + mes "Therefore you need to take this certification."; + mes "It shouldn't happen that the detective misunderstands you as an enemy!"; + next; + mes "- Changed Adventure Card A into Adventure Card B. -"; + delitem 6428,1; //Bravery_Card_A + set nyadven,6; + getitem 6429,1; //Bravery_Card_B + setquest 7246; + erasequest 7243; + next; + mes "[Charo]"; + mes "The great detective and his friend will be around the ship Navi."; + close; + } + } else if (nyadven == 5) { + mes "[Charo]"; + mes "Do you feel a disposition to help the detective and his friend?"; + mes "Don't you?"; + next; + switch(select("Yes I do.:No I don't.")) { + case 1: + mes "[Charo]"; + mes "You have great capabilities as an adventurer!"; + mes "Please help detective and his friend who got in trouble and also save this island!"; + next; + mes "[Charo]"; + mes "But be sure this should be done undercover!"; + mes "Therefore you need to take this certification."; + mes "It shouldn't happen that the detective misunderstands you as an enemy!"; + next; + mes "- Changed Adventure Card A into Adventure Card B. -"; + set nyadven,6; + getitem 6429,1; //Bravery_Card_B + setquest 7246; + next; + mes "[Charo]"; + mes "The great detective and his friend will be acound ship Navi."; + close; + case 2: + mes "[Charo]"; + mes "Oh my god, the great detective and the ship Navi..."; + close; + } + } else if (nyadven > 5 && nyadven < 12) { + mes "[Charo]"; + mes "The great detective and his friend will be around the ship Navi."; + close; + } else if (nyadven == 12) { + mes "[Charo]"; + mes "I have been waiting for you...~"; + mes "Oh, I am short of breath from coming here in a hurry."; + mes "Hmph... Meow..."; + next; + mes "[Charo]"; + mes "Don't you have anything to show me?"; + mes "Let me see it quickly!"; + mes "Take it out!"; + next; + if (countitem(6430) < 6) { + mes "[Charo]"; + mes "What? You don't have it?"; + mes "It can't be true."; + mes "Surely you took this with you..."; + next; + mes "[Rosy]"; + mes "How come it happened?"; + mes "This painting is very important for us."; + mes "Please give it back to us."; + close; + } + mes "[Charo]"; + mes "Yes, this is it!"; + mes "This is our..."; + mes "But, how do we put the broken pieces together?"; + next; + mes "[Rosy]"; + mes "We need a board and glue as well to put it together."; + mes "That's too troublesome to just give it away!"; + next; + mes "[Roku]"; + mes "Rato, looks like he is happy."; + mes "He will understand."; + next; + mes "[Charo]"; + mes "Really...?"; + mes "There is no Meow team and us without Rato."; + mes "I feel a little bad to give only pieces of painting but..."; + next; + mes "[Charo]"; + mes "We have no other way!"; + mes "Rato treated this by himself!"; + mes "No, it's better to ask Rato to put this back together."; + next; + mes "[Rosy]"; + mes "Good idea."; + mes "That's really a good idea."; + mes "I was getting tired of it."; + next; + mes "[Charo]"; + mes "You are a member of the Meow Bravery Team."; + mes "Please give these pieces of painting to Rato."; + mes "And tell him to treat it preciously as our treasure..."; + next; + mes "[Charo]"; + mes "We couldn't make the Bravery Team without Rato."; + mes "Please."; + mes "Tell him we didn't forget our home island."; + set nyadven,13; + changequest 7258,7259; + close; + } else if (nyadven == 13) { + mes "[Charo]"; + mes "Please give this pating to Rato."; + mes "We drawed this painting to show Rato."; + mes "Please."; + close; + } else { + switch(rand(3)) { + case 0: + mes "[Charo]"; + mes "Here you are! Our emeritus member of the new Bravery Team!"; + mes "Where did you go for adventure today?"; + mes "Are these adventure stories?!"; + mes "If not, then..."; + next; + mes "[Charo]"; + mes "You might have come here for the compass race like huge tuna from our Meow Bravery Team!!"; + mes "Meow!"; + close; + case 1: + mes "[Charo]"; + mes "Well, Homnya and Nyangson are too difficult for me."; + mes "...?"; + mes "I meant the book is difficult for me."; + close; + case 2: + mes "[Charo]"; + mes "Do you know how much Rato loves the painting which you have found?"; + mes "He put framed the painting on the wall!"; + mes "Meow~"; + next; + mes "[Charo]"; + mes "I miss my hometown."; + mes "But Malangdo is also my hometown as well."; + mes "I am okay with us all together in here~"; + close; + } + } +} + +malangdo,214,204,3 script [Meow Team] Rosy#nya_09 559,{ + if (nyadven < 2) { + mes "A young cat with white fur tries so hard with the weird machine."; + mes "The machine might be broken."; + close; + } else if (nyadven == 2) { + mes "[Rosy]"; + mes "Um? The adventurer who brought us the glass bead?"; + mes "I really thank you for that."; + mes "We could fix the compass with that glass bead."; + close; + } else if (nyadven == 3) { + mes "[Rosy]"; + mes "Adventure Card? Will you do the Duruduru race?"; + mes "It's hard to say it's fun even though we made it."; + next; + mes "[Charo]"; + mes "Oh, it's fun! Perfectly fun!"; + mes "I have remodeled it this time!!"; + mes "It will be really fun!!"; + next; + mes "[Roku]"; + mes "Yes. It's fun, as Charo said."; + mes "Maybe."; + mes "..."; + mes "It is."; + close; + } else { + mes "[Rosy]"; + mes "Meow..."; + mes "I feel sleepy today."; + mes "I've had sore throat these day because I talked too much..."; + next; + mes "[Rosy]"; + mes "Don't you agree with me, friend?"; + mes "...?"; + mes "Oh, I didn't even realize..."; + next; + mes "[Rosy]"; + mes "Forget about it!"; + mes "Doesn't this machine ever break?"; + close; + } +} + +malangdo,215,201,3 script [Meow Team] Roku#nya_10 553,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) { + mes "- You have too many items to proceed in this quest. -"; + close; + } + if (nyadven < 2) { + mes "A young black cat helps a busy white cat."; + mes "Maybe the machine is broken."; + close; + } else if (nyadven == 2) { + mes "[Roku]"; + mes "Oh? You are the one who gave us the glass bead."; + mes "Thanks a lot."; + mes "I am happy, too, because Charo looks happy."; + close; + } else if (nyadven == 3) { + mes "[Roku]"; + mes "Charo likes it."; + mes "It will be fun."; + close; + } else if (nyadven == 4) { + mes "[Roku]"; + mes "Charo has been waiting for so long."; + mes "To Charo..."; + close; + } + mes "[Roku]"; + mes "Do you have something to tell me?"; + next; + switch(select("Report results of the race.:Challenge the race.:Nothing.")) { + case 1: + if (countitem(6428) == 0) { + mes "[Roku]"; + mes "Bubi, no confirmation stamps and card."; + mes "You will be in trouble if you are like this."; + close; + } + if (nyadven02 == 27) { + mes "[Roku]"; + mes "Good job."; + mes "You are very smart."; + mes "This is a gift for you."; + mes "Please come tomorrow again."; + next; + mes "[Roku]"; + mes "Charo likes you so much."; + mes "He will be happy if you come."; + delitem 6428,1; //Bravery_Card_A + set nyadven02,29; + getitem 6422,3; //Egrade_Coin + getexp 20000,20000; + erasequest 7244; + erasequest 7245; + close; + } else if (nyadven02 == 28) { + mes "[Roku]"; + mes "Failed..."; + mes "...is it too difficult for you?"; + mes "But the race is available only once a day."; + delitem 6428,1; //Bravery_Card_A + erasequest 7244; + erasequest 7245; + next; + switch(select("Give me one more chance!:Okay.I will try tomorrow.")) { + case 1: + if (countitem(12636) == 0) { + mes "[Roku]"; + mes "Um... Um... Well..."; + mes "If you bring a Malangdo Can,"; + mes "I will give you one more chance."; + close; + } + mes "[Roku]"; + mes "Okay. Do you want to exchange 1 Malangdo Can for a Adventure Card?"; + next; + switch(select("Exchange for Adventure Card A.:Stop it.")) { + case 1: + if (countitem(6428)) { + mes "[Roku]"; + mes "You have it already?"; + close; + } + mes "[Roku]"; + mes "Here is your Adventure Card."; + mes "Beginning Compass, start!"; + delitem 12636,1; //Malang_Sp_Can + getitem 6428,1; //Bravery_Card_A + set nyadven02,0; + if (checkquest(7257) > -1) + erasequest 7257; + close; + case 2: + mes "[Roku]"; + mes "Okay, come again tomorrow."; + close; + } + case 2: + mes "[Roku]"; + mes "Okay, come again tomorrow."; + close; + } + } else if (nyadven02 == 29) { + mes "[Roku]"; + mes "You have reported the result for today already."; + mes "Right?"; + close; + } else if (nyadven02 < 27) { + mes "[Roku]"; + mes "You are too hasty."; + mes "You didn't even finish the race."; + mes "It's still going."; + close; + } else { + mes "[Roku]"; + mes "The result is little weird, but..."; + mes "This is neither a complete race nor incomplete race."; + next; + mes "[Roku]"; + mes "Is this because of the machine?"; + mes "Let's make void for this race."; + delitem 6428,1; //Bravery_Card_A + set nyadven02,0; + erasequest 7244; + erasequest 7245; + close; + } + case 2: + if (nyadven02 == 28) { + mes "[Roku]"; + mes "You have failed?"; + mes "Do you want to try again?"; + mes "I will delete the report of the failed result."; + } else { + if (checkquest(7257,PLAYTIME) == 0 || checkquest(7257,PLAYTIME) == 1) { + mes "[Roku]"; + mes "No, not yet."; + mes "Duruduru race is only once for a day."; + mes "If we do it more often, the machine will break."; + close; + } + mes "[Roku]"; + mes "I know that you will try the Duruduru race."; + mes "I deleted your last report."; + } + if (checkquest(7257) > -1) + erasequest 7257; + next; + mes "[Roku]"; + mes "You need a Adventure Card to challenge again."; + mes "Do you want to exchange 1 Malangdo Can for a Adventure Card?"; + next; + switch(select("Buy Adventure Card.:Just stop it.")) { + case 1: + if (countitem(6428)) { + mes "[Roku]"; + mes "You have it already?"; + close; + } + if (countitem(12636) == 0) { + mes "[Roku]"; + mes "There is nothing for free."; + mes "You need a Malangdo Can."; + close; + } + mes "[Roku]"; + mes "Here is your Adventure Card."; + mes "Beginning Compass, start!"; + delitem 12636,1; //Malang_Sp_Can + getitem 6428,1; //Bravery_Card_A + set nyadven02,0; + close; + case 2: + mes "[Roku]"; + mes "Okay."; + close; + } + case 3: + mes "[Roku]"; + mes "You are the weird one."; + close; + } +} + +malangdo,212,204,0 script Beginning Compass#nya_02 844,{ + if (countitem(6428) == 0) { + mes "There is a strange machine."; + mes "The kids said this was the ride called Duruduru compass of the Meow Bravery Team."; + close; + } + if (nyadven02 < 11) { + mes "An iron pot contains a map of Malangdo with a card inserter."; + mes "After inserting your card, a red button and the map inside the pot light up."; + mes "It seems to start after pressing the button."; + next; + switch(select("Start it right now.:Start it later.")) { + case 1: + mes "The card has come out with lights on the map after pressing the button."; + if (rand(20) < 10) { + callsub L_Viewpoint,1,1; + mes "The game has started already!"; + set nyadven02,11; + setquest 7244; + close; + } else { + callsub L_Viewpoint,2,1; + mes "The game has started already!"; + set nyadven02,21; + setquest 7245; + close; + } + case 2: + mes "Challenge it a little later."; + close; + } + } else if (nyadven02 >= 11 && nyadven02 <= 15) { + callsub L_Viewpoint,1,(nyadven02-10); + close; + } else if (nyadven02 >= 21 && nyadven02 <= 25) { + callsub L_Viewpoint,2,(nyadven02-20); + close; + } else if (nyadven02 == 16 || nyadven02 == 26) { + mes "The destination displays with pressing the button after inserting the card."; + mes "It's above the deck in the middle of the island!"; + close; + } + mes "Beginning Compass among the Duruduru compass."; + mes "The Duruduru race starts from this compass."; + close; + +// callsub L_Viewpoint,,; +L_Viewpoint: + switch(getarg(0)) { + case 1: // Order 1: Red, Blue, Yellow, Green, White + setarray .@Colors$[1],"^FF0000","^0000FF","^FFFF00","^00FF00","^cccccc"; + setarray .@Text$[1],"Red","Blue","Yellow","Green","White"; + if (getarg(1) <= 1) + viewpoint 1,213,89,0,0xFF0000; + if (getarg(1) <= 2) + viewpoint 1,128,103,1,0x0000FF; + if (getarg(1) <= 3) + viewpoint 1,73,253,2,0xFFFF00; + if (getarg(1) <= 4) + viewpoint 1,153,146,3,0x00FF00; + viewpoint 1,111,178,4,0xcccccc; + break; + case 2: // Order 2: Yellow, Blue, White, Green, Red + setarray .@Colors$[1],"^FFFF00","^0000FF","^cccccc","^00FF00","^FF0000"; + setarray .@Text$[1],"Yellow","Blue","White","Green","Red"; + if (getarg(1) <= 1) + viewpoint 1,73,253,0,0xFFFF00; + if (getarg(1) <= 2) + viewpoint 1,128,103,1,0x0000FF; + if (getarg(1) <= 3) + viewpoint 1,111,178,2,0xcccccc; + if (getarg(1) <= 4) + viewpoint 1,153,146,3,0x00FF00; + viewpoint 1,213,89,4,0xFF0000; + break; + } + for(set .@i,1; .@i<=5; set .@i,.@i+1) + set .@str$, .@str$+((.@i >= getarg(1))?.@Colors$[.@i]:"")+.@Text$[.@i]+" "; + if (getarg(1) > 1) + mes "After inserting the card and pressing the red button, the path to the destination lit up."; + mes "The order will be "+.@str$+"^000000."; + return; +} + +- script #malangdo_compass -1,{ + if (countitem(6428) == 0) { + mes "There is a strange machine."; + mes "This is the Duruduru compass from the Meow Bravery Team."; + close; + } + set .@index, atoi(strnpcinfo(2)); + switch(.@index) { + case 1: + setarray .@var[0],11,25; + set .@color$,"red"; + break; + case 2: + setarray .@var[0],12,22; + set .@color$,"blue"; + break; + case 3: + setarray .@var[0],13,21; + set .@color$,"gold"; + break; + case 4: + setarray .@var[0],14,24; + set .@color$,"green"; + break; + case 5: + setarray .@var[0],15,23; + set .@color$,"white"; + break; + } + mes "Delicate "+.@color$+" lights surround the "+strnpcinfo(1)+"."; + if (nyadven02 < 11) { + mes "After inserting the card and pressing the button, characters appear on the screen."; + next; + mes "^00FF00This is a card that didn't start the game yet. Please go back to the Beginning Compass.^000000"; + close; + } else if (nyadven02 == .@var[0] || nyadven02 == .@var[1]) { + mes "After inserting the card and pressing the button, characters appear on the screen."; + next; + mes "Welcome to the exciting number world!"; + mes "Enter the exact answer after reading the question!"; + next; + while(1) { + switch(.@index) { + case 1: + set .@nori_a, rand(1,999); + set .@nori_b, rand(1,999); + set .@nori_c, .@nori_a+.@nori_b; + mes .@nori_a+" + "+.@nori_b+" = ??"; + break; + case 2: + set .@nori_a, rand(1,9); + set .@nori_b, rand(1,9); + set .@nori_c, .@nori_a*.@nori_b; + mes .@nori_a+" x "+.@nori_b+" = ??"; + break; + case 3: + set .@nori_a, rand(600,999); + set .@nori_b, rand(1,599); + set .@nori_c, .@nori_a-.@nori_b; + mes .@nori_a+" - "+.@nori_b+" = ??"; + break; + case 4: + set .@nori_a, rand(1,99); + set .@nori_b, rand(1,9); + set .@nori_d, rand(1,9); + set .@nori_c, .@nori_a+(.@nori_b*.@nori_d); + mes .@nori_a+" + "+.@nori_b+" x "+.@nori_d+" = ??"; + break; + case 5: + set .@nori_a, rand(1,9); + set .@nori_c, .@nori_a+(.@nori_a*.@nori_a); + mes .@nori_a+" + "+.@nori_a+" x "+.@nori_a+" = ??"; + break; + } + next; + input .@input; + if (.@input == .@nori_c) { + mes "The card slides out with a sound after entering the number."; + mes "^4d4dffYou have passed the "+strnpcinfo(1)+"! Run to the next destination!^000000"; + mes "You should run for the next destination."; + set nyadven02, nyadven02+1; + close; + } + mes "You've got wrong answer!"; + mes "You can not pass here without exact answer!"; + mes "Enter exact answer after read question!"; + next; + } + } else if (nyadven02 == 16 || nyadven02 == 26) { + mes "After inserting the card and pressing the button, characters appear on the screen."; + next; + mes "The compass needle turns around in the middle of map."; + mes "You should run for the next destination."; + viewpoint 2,1,1,0,0xFFFFFF; + viewpoint 2,1,1,1,0xFFFFFF; + viewpoint 2,1,1,2,0xFFFFFF; + viewpoint 2,1,1,3,0xFFFFFF; + viewpoint 2,1,1,4,0xFFFFFF; + viewpoint 1,162,177,5,0xcccccc; + close; + } else if ((nyadven02 >= 11 && nyadven02 <= 15) || (nyadven02 >= 21 && nyadven02 <= 25)) { + mes "After inserting the card and pressing the button, characters appear on the screen."; + next; + mes "^FF0000You are going the wrong way! The paths in the card and compass don't line up!^000000"; + close; + } + close; +} +malangdo,213,89,0 duplicate(#malangdo_compass) Red Flame Compass#1 844 +malangdo,128,103,0 duplicate(#malangdo_compass) Blue Flame Compass#2 844 +malangdo,73,253,0 duplicate(#malangdo_compass) Gold Flame Compass#3 844 +malangdo,153,146,0 duplicate(#malangdo_compass) Forest Compass#4 844 +malangdo,111,178,0 duplicate(#malangdo_compass) Cloud Compass#5 844 + +malangdo,175,163,0 script Meowbell#nya_12 844,{ + if (countitem(6428) == 0) { + mes "There is a fancy bell which doesn't fit in with the ship."; + mes "This bell is used in a game by the Meow Bravery Team."; + viewpoint 2,1,1,0,0xFFFFFF; + viewpoint 2,1,1,1,0xFFFFFF; + viewpoint 2,1,1,2,0xFFFFFF; + viewpoint 2,1,1,3,0xFFFFFF; + viewpoint 2,1,1,4,0xFFFFFF; + viewpoint 2,1,1,5,0xFFFFFF; + close; + } + if (nyadven02 == 16) + set .@quest,7244; + else if (nyadven02 == 26) + set .@quest,7245; + else { + mes "There is a one more little bell beside the huge notice bell in the deck."; + mes "This is the Meowbell from the Meow Bravery Team."; + next; + mes "This is last bell to ring if you have the card for the game."; + mes "Nothing to say for now."; + close; + } + mes "This is the Meowbell."; + mes "You insert your card into the middle slot."; + viewpoint 2,1,1,0,0xFFFFFF; + viewpoint 2,1,1,1,0xFFFFFF; + viewpoint 2,1,1,2,0xFFFFFF; + viewpoint 2,1,1,3,0xFFFFFF; + viewpoint 2,1,1,4,0xFFFFFF; + viewpoint 2,1,1,5,0xFFFFFF; + if (checkquest(.@quest,PLAYTIME) == 0 || checkquest(.@quest,PLAYTIME) == 1) { + mes "Knock Meowbell!!"; + set nyadven02,27; + changequest .@quest,7257; + next; + if (nyadven == 3) { + mes "[Deckhand Bubi]"; + mes "Oh, I'm suprised."; + mes "You rang the Meowbell in a short time."; + mes "I think you have the talent to be an adventurer."; + next; + mes "[Deckhand Bubi]"; + mes "People say..."; + mes "The purpose of this Duruduru game"; + mes "is to find and go to a destination quickly and accurately."; + next; + mes "[Deckhand Bubi]"; + mes "Go to Charo with that Adventure Card."; + mes "I will give you a confirmation stamp for success."; + set nyadven,4; + close; + } else { + mes "[Deckhand Bubi]"; + mes "Oh, you've really gotten used to it."; + mes "You succeeded again."; + mes "I've put my paw stamp here."; + mes "Run to Rato now."; + close; + } + } else { + mes "-- Beep --"; + mes "The card has out with a warning sound."; + set nyadven02,28; + changequest .@quest,7257; + next; + mes "[Deckhand Bubi]"; + mes "You didn't ring the Meowbell within time."; + mes "Well, it's out of my hands now."; + mes "I will give you the fail stamp!!"; + close; + } +} + +malangdo,176,165,3 script Deckhand Bubi#nya_16 544,{ + mes "[Bubi]"; + mes "Hey, human adventurer, what are you here for?"; + mes "Yeah~ this is a beautiful view."; + next; + mes "[Bubi]"; + mes "Are you one of the people who came here to ring the Meowbell?"; + mes "I am not a member of the Meow Team, but I can give you the confirmation stamp."; + next; + mes "[Bubi]"; + mes "Um, my work?"; + mes "Oh, that is only for when I am not on a voyage."; + mes "I am free these days."; + close; +} + +malangdo,172,178,7 script Cat Detective#nya_14 560,{ + cutin "mal_homnya_n",2; + if (nyadven < 6) { + mes "[Cat Detective]"; + mes "Um? What is the matter?"; + mes "Hey, here is a suspicious guy."; + next; + mes "[Cat Detective]"; + mes "I can surely tell he is drunk by the smell of liquid."; + mes "I am so sad that I can not."; + next; + mes "[Friend of Detective]"; + mes "Oh, I am so sorry to hear that you have such genius analytical skills!"; + mes "He is not drunk..."; + next; + mes "[Cat Detective]"; + mes "Drunks always smell of liquid."; + mes "But he is not, therefore he is not drunk, friend."; + next; + select("Then what is your identity?"); + cutin "mal_homnya_s",2; + mes "[Cat Detective]"; + mes "Well... You are everything except drunk!!!"; + next; + mes "The voice of the cats sounded shaky."; + close2; + } else if (nyadven == 6) { + mes "[Cat Detective]"; + mes "What did I say?"; + mes "Didn't I tell you that someone will come here soon?"; + next; + mes "[Friend of Detective]"; + mes "Great."; + mes "I can only admire your deduction."; + next; + mes "[Detective Homnya]"; + mes "Haha, Nyangson, this is nothing for me."; + mes "Before that, let's listen to the stories from the visitor first."; + next; + switch(select("Charo? Rosy?:Are you guys detectives?")) { + case 1: + cutin "mal_homnya_s",2; + mes "[Homnya]"; + mes "No... Who are they?"; + mes "Nyangson, do you know them?"; + next; + mes "[Nyangson]"; + mes "I... I don't know either?"; + mes "I don't know Charo and Rosy!"; + next; + mes "[Homnya]"; + mes "Yes. Yes."; + mes "We are the detective and friend!"; + next; + break; + case 2: + mes "[Homnya]"; + mes "Yes, I am the detective, Homnya."; + mes "And this is my friend, Nyangson. He reports my cases."; + next; + break; + } + mes "[Homnya]"; + mes "Anyways, that's not important for now!"; + mes "We should focus on current situation."; + next; + mes "[Nyangson]"; + mes "Yes, that's right, friend."; + mes "We think........"; + next; + mes "[Homnya]"; + mes "Yes! This is a bomb for sure!"; + mes "I am so sorry, I have only analytical and detective skills but don't have the skill to dispose of a bomb!"; + next; + cutin "mal_homnya_s",2; + mes "[Nyangson]"; + mes "What do you mean by that?"; + mes "It doesn't make any sense!"; + next; + mes "[Homnya]"; + mes "Yes, we shout when it changed from the peak of hope into the peak of sorrow."; + mes "Peak!"; + mes "Meow!"; + next; + mes "I don't get the meaning of this, but they seem to be in hurry."; + next; + switch(select("Continue to humor them.:Stop playing around.")) { + case 1: + cutin "mal_homnya_n",2; + mes "[Homnya]"; + mes "Oh, if you give us a hand, I will take it. How do you think about it, friend?"; + next; + mes "[Nyangson]"; + mes "I don't really care about it. What I want to do is only to report this case."; + mes "One of the cases will be open to the public among the most strange and weird cases ever."; + next; + mes "[Homnya]"; + mes "I knew this visitor had the skill to dispose of a bomb."; + mes "He is totally prepared to escape from danger."; + next; + mes "[Nyangson]"; + mes "Oh, I heard of it. I heard they use fly wings and butterfly wings as well."; + mes "I've never thought I could meet a person who used these thing for real."; + next; + mes "[Homnya]"; + mes "Yes, I believe this visitor will solve our mystery."; + mes "Then please stop this damn machine!"; + next; + mes "[Nyangson]"; + mes "Yes, the damn machine!"; + mes "It is loud and useless!"; + mes "And it will be blown up."; + next; + mes "[Homnya]"; + mes "Well, stop this machine!!!"; + set nyadven,7; + changequest 7246,7247; + close2; + break; + case 2: + cutin "mal_homnya_s",2; + mes "[Homnya]"; + mes "Please don't..."; + mes "Please act according to the script."; + next; + mes "[Nyangson]"; + mes "Charo. Where is the script?"; + mes "No, Homnya. My friend..."; + next; + mes "Two young cats are sweating a lot."; + close2; + break; + } + } else if (nyadven == 7) { + mes "[Homnya]"; + mes "Stop this noisy machine!"; + mes "This is the moment that your memory can be coming through!"; + next; + mes "[Nyangson]"; + mes "Yes. Yes."; + mes "This is the sort of training where you dispose of and breach all the traps."; + mes "Yes, this is."; + close2; + } else if (nyadven == 8) { + mes "[Homnya]"; + mes "It was a scary moment."; + mes "This machine is still fine anyways!"; + mes "Stop it again."; + next; + mes "[Homnya]"; + mes "Yes, you need Adventure Card B to operate this machine."; + mes "Do you want to buy a new one?"; + next; + mes "[Nyangson]"; + mes "It costs one Malangdo Can."; + next; + switch(select("Buy Adventure Card.:Do not buy.")) { + case 1: + if (countitem(12636) == 0) { + mes "[Homnya]"; + mes "I said I can exchange Adventure Card with one Malango Can~"; + close2; + break; + } + mes "[Homnya]"; + mes "See, this is a scary machine."; + mes "Here is your Adventure Card."; + mes "Stop this machine this time."; + delitem 12636,1; //Malang_Sp_Can + set nyadven,7; + getitem 6429,1; //Bravery_Card_B + close2; + break; + case 2: + mes "[Homnya]"; + mes "What?"; + mes "But you came here to buy a Adventure Card."; + mes "......"; + next; + mes "[Nyangson]"; + mes "If you buy a Adventure Card there won't be any bloodshed..."; + close2; + break; + } + } else if (nyadven == 9) { + mes "[Homnya]"; + mes "Hey, there is good news for you."; + mes "I received pretty good news while you struggled with that machine."; + next; + mes "[Nyangson]"; + mes "Hello, capable friend, what did you find?"; + mes "Is this something like hidden treasure?"; + next; + mes "[Homnya]"; + mes "Hidden treasure?"; + mes "Very similar!"; + mes "It will be hidden in serveral places inside the cabin."; + mes "You should find them!"; + next; + switch(select("I feel tired of it now.:Oh, yes!")) { + case 1: + mes "[Homnya]"; + mes "Oh, really?"; + mes "If you feel tired then it's okay."; + mes "Please come again, if you want."; + next; + mes "[Nyangson]"; + mes "Please come again~."; + close2; + break; + case 2: + mes "[Homnya]"; + mes "I knew you would do this!"; + mes "I have the right eye for people."; + mes "The place is inside of the ship Navi."; + next; + mes "[Nyangson]"; + mes "It will be fine because it isn't really a large place."; + mes "I look forward to your active work!"; + set nyadven,10; + setquest 7250; + close2; + break; + } + } else if (nyadven == 10) { + mes "[Homnya]"; + mes "Please find the pieces of the treasure."; + mes "The tresure is hidden inside of the ship Navi according to our information."; + next; + mes "[Nyangson]"; + mes "Come here right after you find treasure!"; + close2; + } else if (nyadven == 11) { + if (countitem(6430) > 5) { + mes "[Homnya]"; + mes "You've found all the treasure."; + mes "Yes, exactly."; + mes "You might thought this painting was just a normal painting."; + next; + mes "[Homnya]"; + mes "But...!"; + mes "If we do this...!"; + next; + mes "[Nyangson]"; + mes "Oh, this is....... the one from that moment..."; + mes "This is the one when we left our hometown."; + next; + mes "[Homnya]"; + mes "It's time to give it back to the brave new team!"; + mes "Let's give it back!"; + mes "Meow~"; + next; + mes "Charo and Rosy who make up as Homnya and Nyangson"; + mes "checked the pieces of painting and give it back again."; + mes "They look excited."; + next; + mes "[Homnya]"; + mes "Please give it back to the Meow Bravery Team~"; + mes "For everyone~ Meow~"; + mes "These are real treasures!"; + set nyadven,12; + erasequest 7250; + erasequest 7251; + erasequest 7252; + erasequest 7253; + erasequest 7254; + erasequest 7255; + erasequest 7256; + setquest 7258; + close2; + } else { + mes "[Homnya]"; + mes "Well? It's strange. There should be 6 pieces of treasure."; + mes "It's missing pieces..."; + mes "Is this fake? I will throw it out!"; + next; + mes "[Nyangson]"; + mes "Go get the treasure again!"; + delitem 6430,countitem(6430); //Picture_Piece + erasequest 7251; + erasequest 7252; + erasequest 7253; + erasequest 7254; + erasequest 7255; + erasequest 7256; + set nyadven,10; + setquest 7250; + close2; + } + } else if (nyadven == 12 || nyadven == 13) { + mes "[Homnya]"; + mes "Please give these treasures you've found to the Meow Bravery Team."; + mes "You will know how precious these treasures are when you give these to them~"; + next; + mes "[Nyangson]"; + mes "Yes, you will realize."; + mes "It's good to take a break for little bit but now we don't have any spare time."; + close2; + } else { + if (countitem(6429) > 0) { + mes "[Homnya]"; + mes "Stop this noisy machine!"; + mes "Insert your Adventure Card, and take a look at the reaction of the machine carefully. Then do the proper action!"; + next; + mes "[Nyangson]"; + mes "That's right~"; + close2; + } + mes "[Homnya]"; + mes "Hey Nyangson."; + mes "Here comes the hero."; + mes "He seems to be here for fixing this naughty machine."; + next; + mes "[Nyangson]"; + mes "I always admire your keen insight."; + mes "He looks like that for sure."; + mes "Then he will buy Adventure Card with Malangdo Can?"; + next; + mes "[Homnya]"; + mes "You are getting better"; + mes "I always keep eyes on your keen insight."; + mes "You are my true friend."; + next; + switch(select("How's the condition of Bang?:Ignore it.")) { + case 1: + if (checkquest(7249,PLAYTIME) == 0 || checkquest(7249,PLAYTIME) == 1) { + mes "[Homnya]"; + mes "it's so motivated but it's not the time yet."; + mes "Not yet even though naughty machine is noisy."; + mes "Please come again."; + next; + mes "[Nyangson]"; + mes "We also have break time....."; + close2; + } else { + if (checkquest(7249,PLAYTIME) == 2) + erasequest 7249; + mes "[Homnya]"; + mes "Can you hear how noisy this one is?"; + mes "It sounds like a runaway foal!"; + next; + mes "[Nyangson]"; + mes "He needs an Adventure Card to stop it."; + mes "Well, do you want to try?"; + next; + switch(select("Buy Adventure Card B.:Don't buy it.")) { + case 1: + if (countitem(12636) == 0) { + mes "[Homnya]"; + mes "How many Malangdo Cans for an Adventure Card?"; + next; + mes "[Nyangson]"; + mes "Only one can, dear."; + mes "Meow~"; + close2; + break; + } + mes "[Homnya]"; + mes "Yes, please try it without blowing it up."; + mes "Solve it fast!"; + next; + mes "[Nyangson]"; + mes "Please do it."; + delitem 12636,1; //Malang_Sp_Can + getitem 6429,1; //Bravery_Card_B + close2; + break; + case 2: + cutin "mal_homnya_s",2; + mes "[Homnya]"; + mes "Ah... Hey... You can't do that!"; + mes "Hey, don't go!"; + mes "Please stop this, Nyangson!"; + next; + mes "[Nyangson]"; + mes "This and that one are all noisy!"; + mes "Please!"; + next; + mes "The two young cats are sweating a lot."; + close2; + break; + } + } + break; + case 2: + cutin "mal_homnya_s",2; + mes "[Homnya]"; + mes "Ah... Hey... You can't do that!"; + mes "Hey, don't go!"; + mes "Please stop this, Nyangson!"; + next; + mes "[Nyangson]"; + mes "This and that one are all noisy!"; + mes "Please!"; + next; + mes "The two young cats are sweating a lot."; + close2; + break; + } + } + cutin "",255; + end; +} + +malangdo,173,177,7 script Friend of Detective#mal 559,{ + cutin "mal_homnya_n",2; + mes "[Nyangson]"; + mes "I am a friend of Detective Homnya, Nyangson."; + mes "Please ask Homnya if you have questions."; + next; + mes "[Homnya]"; + mes "Yes, he only goes 'yes, my friend' beside me!"; + mes "Ask me!"; + close2; + cutin "",255; + end; +} + +malangdo,174,175,0 script Noisy Machine#nya_13 844,{ + if (nyadven < 7) { + mes "There is a strange machine."; + mes "It has a Red, Blue, Yellow, and Green luminous body with buttons to react,"; + mes "while spinning with noisy sounds."; + next; + mes "It looks more unstable as it spins faster."; + close; + } + if (checkquest(7249,PLAYTIME) == 0 || checkquest(7249,PLAYTIME) == 1) { + mes "[Homnya]"; + mes "It's so motivated, but it's not time yet."; + mes "Not yet, even though the machine is so noisy."; + mes "Please come again."; + next; + mes "[Nyangson]"; + mes "We also have break time..."; + close; + } + if (countitem(6429) == 0) { + mes "[Homnya]"; + mes "You can't try this without Adventure Card B."; + mes "Please bring it with you."; + close; + } + mes "There is a strange machine."; + mes "It has a Red, Blue, Yellow, and Green luminous body with buttons to react,"; + mes "while spinning with noisy sounds."; + next; + mes "It looks more unstable as it spins faster."; + next; + cutin "mal_homnya_n",2; + mes "[Homnya]"; + mes "Stop this machine by inserting the card into it!"; + next; + mes "[Nyangson]"; + mes "Go ahead!"; + next; + cutin "",255; + if(select("Insert card.:Stop it.") == 2) { + mes "[Homnya]"; + mes "Um? You aren't going to do this?"; + mes "Really?"; + mes "Even though this machine can blow up the whole island?!"; + next; + mes "[Nyangson]"; + mes "Does he know it's never going to blow up?"; + next; + mes "The two young cats are sweating a lot."; + close; + } + mes "After inserting the card, discs on top of the machine spin faster..."; + mes "The lights begin to flicker faster too."; + next; + callsub L_ShowLights,2; + callsub L_ShowLights,4; + callsub L_ShowLights,6; + callsub L_ShowLights,8; + cutin "mal_homnya_n",2; + mes "[Homnya]"; + mes "Oh, great!"; + mes "The banging has stopped!"; + mes "You have a good memory!"; + mes "Please take this small gift."; + next; + mes "[Nyangson]"; + mes "You can get it after you have been through all the difficulties from the Meow Advanture Team."; + mes "And we are not sure if this machine will try to blow up agian, so please come again tomorrow."; + if (nyadven == 7) { + set nyadven,9; + erasequest 7247; + } + delitem 6429,1; //Bravery_Card_B + setquest 7249; + getitem 6422,3; //Egrade_Coin + getexp 20000,20000; + next; + if (nyadven == 9) { + mes "[Homnya]"; + mes "Hey, there is good news for you."; + mes "I received pretty good news while you struggled with that machine."; + next; + mes "[Nyangson]"; + mes "Hello, capable friend, what did you find?"; + mes "Is this something like hidden treasure?"; + next; + mes "[Homnya]"; + mes "Hidden treasure?"; + mes "Very similar!"; + mes "It will be hidden in serveral places inside the cabin."; + mes "You should find them!"; + next; + switch(select("I feel tired of it now.:Oh, yes!")) { + case 1: + mes "[Homnya]"; + mes "Oh, really?"; + mes "If you feel tired then it's okay."; + mes "Please come again, if you want."; + next; + mes "[Nyangson]"; + mes "Please come again~."; + close2; + break; + case 2: + mes "[Homnya]"; + mes "I knew you would do this!"; + mes "I have the right eye for people."; + mes "The place is inside of the ship Navi."; + next; + mes "[Nyangson]"; + mes "It will be fine because it isn't really a large place."; + mes "I look forward to your active work!"; + set nyadven,10; + setquest 7250; + close2; + break; + } + } else { + mes "[Homnya]"; + mes "Then I am looking forward to tomorrow!"; + close2; + } + cutin "",255; + end; + +// callsub L_ShowLights,; +L_ShowLights: + mes "Luminous"; + mes "The order of buttons are:"; + mes "[Red] [Green] [Blue] [Yellow]"; + mes "And below this, more buttons:"; + mes "[Green] [Red] [Yellow] [Blue]"; + mes "In that order."; + next; + mes "Luminous"; + setarray .@Color$[0],"Red","Blue","Yellow","Green"; + setarray .@Cutin$[0],"nya_red","nya_blue","nya_yellow","nya_green"; + for(set .@i,0; .@i Green, Blue <-> Yellow + set .@j, select("Red:Blue:Yellow:Green"); + if (.@Lamp[.@i] == 4-.@j) + set .@pass,.@pass+1; + } + if (.@pass < getarg(0)) { + mes "The speed of spinning is getting faster after pressing the buttons."; + mes "After all..."; + specialeffect EF_BEGINSPELL6; + emotion e_gasp,0,"Cat Detective#nya_14"; + emotion e_gasp,0,"Friend of Detective#mal"; + next; + cutin "mal_homnya_s",2; + mes "[Homnya]"; + mes "Watch out!!!"; + mes " "; + mes "[Nyangson]"; + mes "It's blowing up!"; + specialeffect EF_FIREHIT; + specialeffect EF_FIRESPLASHHIT; + next; + cutin "",255; + mes "Adventure Card B burned off"; + mes "with a huge explosion."; + delitem 6429,1; //Bravery_Card_B + if (nyadven == 7) + set nyadven,8; + close; + } + mes "The speed of the spinning discs gets slower after pressing the buttons."; + mes "The luminous shines once and stops also."; + cutin "nya_off",4; + next; + if (getarg(0) < 8) { + mes "[Homnya]"; + mes "Don't reduce your tension!"; + mes "It's not over yet!"; + next; + mes "The machine starts again."; + mes "And the luminous shines also, as if it keeps asking you for the right answer."; + next; + } + return; +} + +// callfunc "F_Mal_Picture",,,,,; +// Returns: +// 1 - Player kicked. +// 2 - nyadven is not 10. +// 3 - Player has already found the picture piece. +// null - Success. +function script F_Mal_Picture { + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 4000) { + mes "- You have too many items to proceed in this quest. -"; + close; + } + if (getarg(1) && rand(2)) + return 1; + else if (nyadven != 10) + return 2; + else if (checkquest(getarg(0)) > -1) + return 3; + else { + mes getarg(2); + mes getarg(3); + next; + mes getarg(4); + mes "You found a piece of the painting."; + setquest getarg(0); + getitem 6430,1; //Picture_Piece + next; + if (checkquest(7251) > -1 && checkquest(7252) > -1 && checkquest(7253) > -1 && checkquest(7254) > -1 && checkquest(7255) > -1 && checkquest(7256) > -1) { + mes "It looks like you can put these pieces of paintings together."; + mes "If I found all the pieces, I should go back to Homnya."; + set nyadven,11; + close; + } + mes "I think this is the treasure Homnya and Nyangson mentioned."; + mes "Let's find more pieces."; + close; + } +} + +mal_in02,187,45,0 script Box#nya01 844,{ + switch(callfunc( + "F_Mal_Picture", + 7251,1, + "There is an uncommon box in the corner of the cabin.", + "It seems to tell me that it has a teasure inside.", + "I can see a piece of paper sticking out." + )) { + case 1: + mes "[Neat Crew]"; + mes "What are you doing here?!"; + mes "Don't touch that box any more!"; + mes "There will be more bugs if you keep hiding snacks in there!"; + mes "Get out!"; + close2; + warp "mal_in02",138,60; + end; + case 2: + mes "A box in the corner of the cabin."; + close; + case 3: + mes "This is a box which used to contain a piece of the painting."; + close; + } +} + +mal_in02,170,75,0 script Book#nya02 844,{ + switch(callfunc( + "F_Mal_Picture", + 7252,1, + "The books are organized according to order on the bookshelf.", + "I try to take 1 book off carefully.", + "I can see something sticking out among the books." + )) { + case 1: + mes "[Neat Crew]"; + mes "Ah, do not touch it!"; + mes "Why do you keep messing it up after I clean up the room?!"; + mes "Get out!"; + close2; + warp "mal_in02",138,60; + end; + case 2: + mes "The books are organized according to order on the bookshelf."; + close; + case 3: + mes "This is a book which used to contain a piece of the painting."; + close; + } +} + +mal_in02,133,98,0 script Dirty Bed#nya03 844,{ + switch(callfunc( + "F_Mal_Picture", + 7253,1, + "This is a normal cabin for the crew.", + "My eyes kept straying over to old bed in corner of the room.", + "Something is hanging with furs below the bed." + )) { + case 1: + mes "[Scary Crew]"; + mes "What are you doing here?"; + mes "Do not disturb me, and go away."; + mes "Get out!"; + close2; + warp "mal_in02",100,60; + end; + case 2: + mes "It's dirty and smells like fish."; + mes "There are a lot of furs from cats."; + close; + case 3: + mes "This is dirty bed where a piece of the painting was hidden."; + mes "There are a lot of furs from cats."; + close; + } +} + +mal_in02,31,57,0 script Seashell#nya04 844,{ + switch(callfunc( + "F_Mal_Picture", + 7254,0, + "This cabin is large and clean, and it seems to for the captain.", + "My eyes kept straying over to the seashell and conch for decoration in the corner of the room.", + "There is a rolled up paper in the conch." + )) { + case 2: + mes "There is a seashell decoration on a clean display cupboard."; + close; + case 3: + mes "This is the seashell where a piece of the painting was hidden."; + close; + } +} + +mal_in02,114,56,0 script Ship Pillar#nya05 844,{ + switch(callfunc( + "F_Mal_Picture", + 7255,1, + "This is one of pillars to bear out the ship.", + "It has many nail marks as it has been through many cats.", + "There is a folded piece of paper in the crack of the wooden wall." + )) { + case 1: + mes "[Picky Crew]"; + mes "Is that you who scratched all the pillars in here?!"; + mes "Meow~~~~!!"; + mes "Get off from that pillar!"; + close2; + warp "malangdo",170,160; + end; + case 2: + mes "I can see the trace of a scratch."; + mes "Pillars made from trees are originally good to hang, but scratched by nails."; + close; + case 3: + mes "I can see the crack where a piece of the painting was hidden."; + close; + } +} + +mal_in02,139,30,0 script Ventilation Window#nya06 844,{ + switch(callfunc( + "F_Mal_Picture", + 7256,0, + "This cabin is for the normal crew.", + "There are many ventilation windows on the floor in this room.", + "One of the windows opens with a clink, revealing a piece of paper." + )) { + case 2: + mes "There are windows for ventilation on the floor."; + mes "A cold wind comes from these windows."; + mes "Why are ventilation windows set up on the floor?"; + close; + case 3: + mes "There are windows for ventilation on the floor."; + mes "A piece of the painting was hung in there."; + mes "Why are ventilation windows set up on the floor?"; + close; + } +} + +mal_in02,166,74,4 script Neat Crew#nyaong01 555,{ + mes "[Neat Crew]"; + mes "Please clean up your stuff by yourself."; + mes "Especially you guys getting dirty after we came to this island!"; + mes "Please throw the trash into the trash can."; + next; + mes "[Neat Crew]"; + mes "And you plucked every crop."; + mes "Hmph. Please, let's leave it in its natural state."; + next; + mes "[Neat Crew]"; + mes "What are you looking at?"; + mes "Will you mess up here too?"; + mes "Meow?!"; + close; +} + +mal_in02,132,95,5 script Scary Crew#nyaong02 561,{ + mes "[Scary Crew]"; + mes "I try to be nice these days, and kids just take liberties with me."; + mes "Will you too?"; + next; + mes "[Scary Crew]"; + mes "They just come in and out, even the other person's room..."; + mes "It causes harm for sure."; + close; +} + +mal_in02,109,62,4 script Picky Crew#nyaong03 545,{ + mes "[Picky Crew]"; + mes "Do not run in the hall!"; + mes "My fur falls out because of someone who"; + mes "scratches everywhere!"; + close; +} + // Archangel Wing Enchants :: enc_angel //============================================================ malangdo,234,153,6 script Notice Board#mal 837,{ -- cgit v1.2.3-60-g2f50 From 3185ca423f28c25ca10210631a3474dc599c84a0 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:33:22 -0300 Subject: Follow up e7cb725387ceaa535562555c0461ead078dbdfd3 Improved Signed-off-by: shennetsind --- src/map/mob.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/map/mob.c b/src/map/mob.c index df7e2c365..f53e48316 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2634,8 +2634,10 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) if (battle_config.mvp_tomb_enabled && md->spawn->state.boss) mvptomb_create(md, mvp_sd ? mvp_sd->status.name : NULL, time(NULL)); - if( !rebirth ) + if( !rebirth ) { + status_change_clear(&md->bl,1); mob_setdelayspawn(md); //Set respawning. + } return 3; //Remove from map. } -- cgit v1.2.3-60-g2f50 From 727e790733ea6a753765a271b51a91a31e1fb110 Mon Sep 17 00:00:00 2001 From: lemongrass3110 Date: Sun, 31 Mar 2013 13:00:28 +0000 Subject: Fixed warpportal script. bugreport:7451 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17226 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/script.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/map/script.c b/src/map/script.c index 182b04f86..c65ce5c24 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -15662,6 +15662,7 @@ BUILDIN_FUNC(warpportal) group = skill->unitsetting(bl, AL_WARP, 4, spx, spy, 0); if( group == NULL ) return 0;// failed + group->val1 = (group->val1<<16)|(short)0; group->val2 = (tpx<<16) | tpy; group->val3 = mapindex; -- cgit v1.2.3-60-g2f50 From 20bf5d10514810b19f48437fe5b0efc4e8e20092 Mon Sep 17 00:00:00 2001 From: technote24 Date: Thu, 4 Apr 2013 19:27:46 +0000 Subject: =Database *Added the latest NPC's tags and ID's. *Added place holders for all of the latest existing monster tags and ID's. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17230 54d463be-8e91-2dee-dedb-b68131a5f0ec --- db/re/mob_db.txt | 731 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 731 insertions(+) diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt index a3525cb38..bfbd55d8a 100644 --- a/db/re/mob_db.txt +++ b/db/re/mob_db.txt @@ -1528,3 +1528,734 @@ 2378,MER_ANTLER_SCARABA,Antler Scaraba,Antler Scaraba,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2379,XMAS_SMOKEY_SOCK,Smokey Sock,Smokey Sock,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2380,XMAS_SMOKEY_GIFT,Smokey Gift,Smokey Gift,1,50,0,0,0,1,7,10,0,5,1,1,1,1,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + +// Monster's Waitting To Be Coded In +//2381,E_VADON_X_S +//2382,E_VADON_X_H +//2383,E_VADON_X_H_S +//2384,KRAKEN_LEG_1 +//2385,KRAKEN_LEG_2 +//2386,KRAKEN_LEG_3 +//2387,KRAKEN_LEG_4 +//2388,KRAKEN_LEG_5 +//2389,G_KRAKEN_LEG_1 +//2390,G_KRAKEN_LEG_2 +//2391,G_KRAKEN_LEG_3 +//2392,G_KRAKEN_LEG_4 +//2393,G_KRAKEN_LEG_5 +//2394,MERMAN_SE +//2395,SEIREN +//2396,POSEIDON +//2397,KRAKEN_BABY +//2398,LITTLE_PORING +//2399,E_MINI_DEMON +//2400,E_DIABOLIC +//2401,G_PORING +//2402,POPORING_IMMUNE_M +//2403,POPORING_IMMUNE_A +//2404,DEAD_PLANKTON +//2405,WEAK_SKELETON +//2406,WEAK_SKEL_SOLDIER +//2407,SAILOR_SKELETON +//2408,DUMMY_10 +//2409,DUMMY_50 +//2410,DUMMY_100 +//2411,DUMMY_150 +//2412,E_VALKIWI +//2413,DUMMY_10_FIRE +//2414,RUNAWAY_BOOK +//2415,L_SEYREN +//2416,L_EREMES +//2417,L_HARWORD +//2418,L_SHECIL +//2419,L_KATRINN +//2420,L_MAGALETA +//2421,L_YGNIZEM +//2422,L_WHIKEBAIN +//2423,L_ARMAIA +//2424,L_KAVAC +//2425,L_DANCER +//2426,L_RAWREL +//2427,L_EREND +//2428,G_L_SEYREN +//2429,G_L_EREMES +//2430,G_L_HARWORD +//2431,G_L_SHECIL +//2432,G_L_KATRINN +//2433,G_L_MAGALETA +//2434,G_L_YGNIZEM +//2435,G_L_WHIKEBAIN +//2436,G_L_ARMAIA +//2437,G_L_KAVAC +//2438,G_L_DANCER +//2439,G_L_RAWREL +//2440,G_L_EREND +//2441,B_NOVICE +//2442,B_SUPERNOVICE +//2443,AIRA +//2444,KULUNA +//2445,MALLINA +//2446,EZELLA +//2447,LUNE +//2448,MORIN +//2449,NASARIN +//2450,THIEF_PORING +//2451,BABY_STRANGE +//2452,TREASURE_BOX_TE +//2453,TREASURE_BOX_TE_1 +//2454,TREASURE_BOX_TE_2 +//2455,TREASURE_BOX_TE_3 +//2456,TREASURE_BOX_TE_4 +//2457,TREASURE_BOX_TE_5 +//2458,TREASURE_BOX_TE_6 +//2459,TREASURE_BOX_TE_7 +//2460,TREASURE_BOX_TE_8 +//2461,TREASURE_BOX_TE_9 +//2462,TREASURE_BOX_TE_10 +//2463,E_BOMBPORING +//2464,MG_ZOMBIE +//2465,MG_WRAITH +//2466,MG_GHOUL +//2467,MG_ARCLOUSE +//2468,MG_RAYDRIC +//2469,MG_RAYDRIC_ARCHER +//2470,MG_KNIGHT_OF_ABYSS +//2471,MG_KHALITZBURG +//2472,MG_BLOODY_KNIGHT +//2473,MG_M_UNDEAD_KNIGHT +//2474,MG_F_UNDEAD_KNIGHT +//2475,MG_CORRUPTION_ROOT +//2476,MG_AMDARAIS +//2477,NG_WANDER_MAN +//2478,NG_RIDEWORD +//2479,NG_MIMIC +//2480,NG_EVIL_DRUID +//2481,NG_WRAITH_DEAD +//2482,G_MG_KHALITZBURG +//2483,NG_BAPHOMET +//2484,G_NG_BAPHOMET_ +//2485,NG_CHIMERA +//2486,ISIS_ANNIV +//2487,PASANA_ANNIV +//2488,OSIRIS_ANNIV +//2489,GM_WOMAN +//2490,GM_SAY +//2491,GM_SMOKIE +//2492,GM_PHOENIX +//2493,GM_MEN +//2494,GM_HINALLE +//2495,HIDDEN_MOB2 +//2496,I_UZHAS +//2497,I_DOKEBI +//2498,G_WISH_MAIDEN +//2499,J_PORING +//2500,E_MEGALODON +//2501,E_ASTER +//2502,E_CRAB +//2503,E_SHELLFISH +//2504,E_COELACANTH_N_E +//2505,E_RED_ERUMA +//2506,E_KING_DRAMOH +//2507,E_CORNUTUS +//2508,E_PENOMENA +//2509,KRAKEN_LEG_6 +//2510,WATERMELON_1 +//2511,WATERMELON_2 +//2512,WATERMELON_3 +//2513,WATERMELON_4 +//2514,WATERMELON_5 +//2515,WATERMELON_6 +//2516,WATERMELON_7 +//2517,WATERMELON_8 +//2518,WATERMELON_9 +//2519,WATERMELON_10 +//2520,WATERMELON_11 +//2521,WATERMELON_12 +//2522,WATERMELON_13 +//2523,WATERMELON_14 +//2524,WATERMELON_15 +//2525,WATERMELON_16 +//2526,E_BANDIT +//2527,ME_ANOPHELES +//2528,FACEWORM +//2529,FACEWORM_QUEEN +//2530,FACEWORM_DARK +//2531,VENOM_BUG +//2532,FACEWORM_QUEEN_R +//2533,FACEWORM_QUEEN_G +//2534,FACEWORM_QUEEN_B +//2535,FACEWORM_QUEEN_Y +//2536,HIDDEN_MOB3 +//2537,HIDDEN_MOB4 +//2538,E_KING_PORING +//2539,HIDDEN_MOB5 +//2540,FACEWORM_EGG +//2541,FACEWORM_LARVA +//2542,IRENE_ELDER +//2543,PAYONSOLDIER +//2544,PAYONSOLDIER2 +//2545,GUARDDOG +//2546,GUARDDOG2 +//2547,MER_GARM_BABY +//2548,MER_HILLSRION +//2549,GEFFEN_MAGE_1 +//2550,GEFFEN_MAGE_2 +//2551,GEFFEN_MAGE_3_1 +//2552,GEFFEN_MAGE_3_2 +//2553,GEFFEN_MAGE_3_3 +//2554,GEFFEN_MAGE_4 +//2555,GEFFEN_MAGE_5 +//2556,GEFFEN_MAGE_6 +//2557,GEFFEN_MAGE_7 +//2558,GEFFEN_MAGE_8 +//2559,GEFFEN_MAGE_9 +//2560,GEFFEN_MAGE_10 +//2561,GEFFEN_MAGE_11 +//2562,GEFFEN_MAGE_12 +//2563,FEI_KANABIAN +//2564,GEFFEN_FENRIR +//2565,ALPHONSE +//2566,ALPHONSE_JR +//2567,E_GEFFEN_MAGE_3_2 +//2568,E_GEFFEN_MAGE_3_3 +//2569,G_ANOPHELES +//2570,G_BREEZE +//2571,G_BUTOIJO +//2572,G_CARAMEL +//2573,G_CHONCHON +//2574,G_CIVIL_SERVANT +//2575,G_COCO +//2576,G_CREAMY +//2577,G_FABRE +//2578,G_HORN +//2579,G_HYLOZOIST +//2580,G_KAHO +//2581,G_LUDE +//2582,G_LUNATIC +//2583,G_MARTIN +//2584,G_MINERAL +//2585,G_MOLE +//2586,G_NERAID +//2587,G_OBSIDIAN +//2588,G_PITMAN +//2589,G_POPORING +//2590,G_ROCKER +//2591,G_SAVAGE +//2592,G_SIORAVA +//2593,G_SIROMA +//2594,G_SNOWIER +//2595,G_STAINER +//2596,G_STAPO +//2597,G_STEEL_CHONCHON +//2598,G_UNGOLIANT +//2599,G_WILD_RIDER +//2600,G_WOLF +//2601,G_YOYO +//2602,G_ZIPPER_BEAR +//2603,C1_ZOMBIE_SLAUGHTER +//2604,C2_ZOMBIE_PRISONER +//2605,C3_ZOMBIE_MASTER +//2606,C4_ZOMBIE +//2607,C5_ZAKUDAM +//2608,C1_YOYO +//2609,C2_YOYO +//2610,C3_WORM_TAIL +//2611,C4_WOOTAN_FIGHTER +//2612,C5_WOOD_GOBLIN +//2613,C1_WOLF +//2614,C2_WIND_GHOST +//2615,C3_WILOW +//2616,C4_WILD_ROSE +//2617,C5_WICKED_NYMPH +//2618,C2_WHISPER +//2619,C3_WEAK_SKELETON +//2620,C4_WANDER_MAN +//2621,C5_VIOLY +//2622,C1_VIOLY +//2623,C2_VIOLY +//2624,C3_VENOMOUS +//2625,C4_VENATU_1 +//2626,C5_VAVAYAGA +//2627,C1_VANBERK +//2628,C2_VADON +//2629,C3_UNGOLIANT +//2630,C4_TOUCAN +//2631,C5_TIYANAK +//2632,C2_THIEF_BUG +//2633,C3_THIEF_BUG +//2634,C4_THIEF_BUG +//2635,C5_THARA_FROG +//2636,C1_TEDDY_BEAR +//2637,C2_TATACHO +//2638,C3_TAROU +//2639,C4_TAMRUAN +//2640,C5_STING +//2641,C1_STEM_WORM +//2642,C2_STEEL_CHONCHON +//2643,C3_STAPO +//2644,C4_STALACTIC_GOLEM +//2645,C5_STAINER +//2646,C1_SPORE +//2647,C2_SOLIDER +//2648,C3_SOLDIER_SKELETON +//2649,C4_SOLDIER_SKELETON +//2650,C5_SOLACE +//2651,C1_SOHEE +//2652,C2_SNOWIER +//2653,C3_SNAKE +//2654,C4_SMOKIE +//2655,C5_SLEEPER +//2656,C1_SLEEPER +//2657,C2_SKOGUL +//2658,C3_SKELETON_GENERAL +//2659,C4_SKELETON_GENERAL +//2660,C5_SKEL_WORKER +//2661,C1_SIROMA +//2662,C2_SIDE_WINDER +//2663,C3_SIDE_WINDER +//2664,C4_SHINOBI +//2665,C5_SHELTER +//2666,C1_SHELLFISH +//2667,C2_SHECIL +//2668,C3_SEE_OTTER +//2669,C4_SEDORA +//2670,C5_SCORPION +//2671,C1_SAVAGE_BABE +//2672,C2_SAVAGE +//2673,C3_SAVAGE +//2674,C4_SAND_MAN +//2675,C5_SALAMANDER +//2676,C1_SAILOR_SKELETON +//2677,C2_ROWEEN +//2678,C3_RODA_FROG +//2679,C4_RODA_FROG +//2680,C5_ROCKER +//2681,C1_RIDEWORD +//2682,C2_RIDEWORD +//2683,C3_RICE_CAKE_BOY +//2684,C4_RETRIBUTION +//2685,C5_RETRIBUTION +//2686,C1_RETRIBUTION +//2687,C2_REQUIEM +//2688,C3_REMOVAL +//2689,C5_RED_ERUMA +//2690,C1_RAYDRIC +//2691,C2_RAYDRIC +//2692,C3_RAWREL +//2693,C4_RAKE_SCARABA +//2694,C5_RAGGLER +//2695,C1_RAFFLESIA +//2696,C3_PORING +//2697,C4_PORING +//2698,C5_PORING +//2699,C1_PORING +//2700,C2_PORCELLIO +//2701,C3_POPORING +//2702,C4_POPORING +//2703,C5_POPORING +//2704,C1_POISON_TOAD +//2705,C2_POISON_SPORE +//2706,C3_PLASMA_Y +//2707,C4_PLANKTON +//2708,C5_PITMAN +//2709,C1_PIRANHA +//2710,C2_PINGUICULA_D +//2711,C3_PINGUICULA +//2712,C4_PICKY_ +//2713,C5_PHEN +//2714,C1_PETIT +//2715,C2_PETIT +//2716,C3_PENOMENA +//2717,C4_PENOMENA +//2718,C5_PECOPECO +//2719,C1_PASANA +//2720,C2_PARASITE +//2721,C3_OWL_DUKE +//2722,C4_ORK_WARRIOR +//2723,C5_ORC_ZOMBIE +//2724,C1_ORC_SKELETON +//2725,C2_ORC_LADY +//2726,C3_OBSERVATION +//2727,C4_NOXIOUS +//2728,C5_NOVUS +//2729,C1_NOVUS +//2730,C2_NOVUS +//2731,C3_NOVUS +//2732,C4_NIGHTMARE_TERROR +//2733,C5_NG_WRAITH_DEAD +//2734,C1_NG_WANDER_MAN +//2735,C2_NEPENTHES +//2736,C3_NECROMANCER +//2737,C4_MYSTCASE +//2738,C5_MUSCIPULAR +//2739,C1_MUMMY +//2740,C2_MUMMY +//2741,C3_MUKA +//2742,C4_MOROCC_1 +//2743,C5_MOROCC_1 +//2744,C1_MOROCC_1 +//2745,C2_MOLE +//2746,C3_MIYABI_NINGYO +//2747,C4_MINOROUS +//2748,C5_MINOROUS +//2749,C1_MINOROUS +//2750,C2_MINERAL +//2751,C3_MIMING +//2752,C4_MIMIC +//2753,C5_MIMIC +//2754,C1_METALLER +//2755,C2_METALING +//2756,C3_METALING +//2757,C4_MERMAN +//2758,C5_MENBLATT +//2759,C1_MEDUSA +//2760,C2_MARTIN +//2761,C3_MARIONETTE +//2762,C4_MARIN +//2763,C5_MARDUK +//2764,C1_MANTIS +//2765,C2_MANDRAGORA +//2766,C3_MANANANGGAL +//2767,C4_MAJORUROS +//2768,C5_MAGNOLIA +//2769,C1_MAGMARING +//2770,C2_LUNATIC +//2771,C3_LUNATIC +//2772,C4_LUDE +//2773,C5_LUCIOLA_VESPA +//2774,C1_LOLI_RURI +//2775,C2_LIVE_PEACH_TREE +//2776,C3_LITTLE_PORING +//2777,C4_LITTLE_FATUM +//2778,C5_LI_ME_MANG_RYANG +//2779,C1_LES +//2780,C2_LEIB_OLMAI +//2781,C3_LEAF_CAT +//2782,C4_L_WHIKEBAIN +//2783,C5_L_EREMES +//2784,C1_KOBOLD_ARCHER +//2785,C2_KOBOLD_1 +//2786,C3_KNOCKER +//2787,C4_KIND_OF_BEETLE +//2788,C5_KASA +//2789,C1_KARAKASA +//2790,C2_ISIS +//2791,C3_ISILLA +//2792,C4_INJUSTICE +//2793,C5_INCREASE_SOIL +//2794,C1_ICE_TITAN +//2795,C2_IARA +//2796,C3_HYEGUN +//2797,C4_HUNTER_FLY +//2798,C5_HORNET +//2799,C1_HORN_SCARABA +//2800,C2_HORN +//2801,C3_HODREMLIN +//2802,C4_HODE +//2803,C5_HILL_WIND_1 +//2804,C1_HILL_WIND_1 +//2805,C2_HIGH_ORC +//2806,C3_HARPY +//2807,C4_HARPY +//2808,C5_GREEN_IGUANA +//2809,C1_GREATEST_GENERAL +//2810,C2_GRAND_PECO +//2811,C3_GRAND_PECO +//2812,C4_GOLEM +//2813,C5_GOBLIN_1 +//2814,C1_GOBLIN_1 +//2815,C2_GOAT +//2816,C3_GOAT +//2817,C4_GLD_KOBOLD_2 +//2818,C5_GLD_KOBOLD_2 +//2819,C1_GLD_DARK_SHADOW +//2820,C2_GLD_DARK_SHADOW +//2821,C3_GIANT_HONET +//2822,C4_GHOUL +//2823,C5_GHOUL +//2824,C1_GEOGRAPHER +//2825,C2_GEOGRAPHER +//2826,C3_GARGOYLE +//2827,C4_GARGOYLE +//2828,C5_GALION +//2829,C1_FUR_SEAL +//2830,C2_FREEZER +//2831,C3_FREEZER +//2832,C4_FERUS_ +//2833,C5_FARMILIAR +//2834,C1_FAKE_ANGEL +//2835,C2_FABRE +//2836,C3_FABRE +//2837,C4_EXPLOSION +//2838,C5_EVIL_DRUID +//2839,C1_ELDER_WILOW +//2840,C2_ELDER_WILOW +//2841,C3_ECHIO +//2842,C4_DUSTINESS +//2843,C1_DRYAD +//2844,C2_DROSERA +//2845,C3_DROPS +//2846,C4_DRILLER +//2847,C5_DRAINLIAR +//2848,C1_DRAGON_TAIL +//2849,C2_DRACO +//2850,C3_DOLOMEDES +//2851,C4_DOKEBI +//2852,C5_DISGUISE +//2853,C1_DIMIK_1 +//2854,C2_DEVIRUCHI +//2855,C3_DESERT_WOLF_B +//2856,C4_DESERT_WOLF_B +//2857,C5_DENIRO +//2858,C1_DEATHWORD +//2859,C2_DEATHWORD +//2860,C3_DEATHWORD +//2861,C4_DARK_PRIEST +//2862,C5_DANCING_DRAGON +//2863,C1_CREAMY +//2864,C2_CORNUTUS +//2865,C3_COOKIE +//2866,C4_CONSTANT +//2867,C5_COMODO +//2868,C1_COCO +//2869,C2_COCO +//2870,C3_CLOCK +//2871,C4_CLOCK +//2872,C5_CHONCHON +//2873,C1_CENTIPEDE +//2874,C2_CENERE +//2875,C3_CELIA +//2876,C4_CATERPILLAR +//2877,C5_CARAT +//2878,C1_CARAMEL +//2879,C2_BUNGISNGIS +//2880,C3_BREEZE +//2881,C4_BREEZE +//2882,C5_BRADIUM_GOLEM +//2883,C1_BLOOD_BUTTERFLY +//2884,C3_BIGFOOT +//2885,C4_BATHORY +//2886,C5_BANSHEE_MASTER +//2887,C1_BANSHEE +//2888,C2_BANASPATY +//2889,C3_ASSULTER +//2890,C4_ARGOS +//2891,C5_ARGIOPE +//2892,C1_ARGIOPE +//2893,C2_ARCLOUSE +//2894,C3_ARCLOUSE +//2895,C4_APOCALIPS +//2896,C5_ANTLER_SCARABA +//2897,C1_ANTIQUE_BOOK +//2898,C2_ANTIQUE_BOOK +//2899,C4_ANOLIAN +//2900,C5_ANGRA_MANTIS +//2901,C1_ANGRA_MANTIS +//2902,C2_ANDRE +//2903,C3_ANCIENT_MIMIC +//2904,C4_ANACONDAQ +//2905,C5_AMBERNITE +//2906,C1_ALNOLDI +//2907,C2_ALLIGATOR +//2908,C3_ALIZA +//2909,C4_ALICEL +//2910,C5_ALARM +//2911,C1_AGAV +//2912,C2_ACIDUS_ +//2913,C3_ACIDUS_ +//2914,E_GEFFEN_MAGE_3_1 +//2915,HIDDEN_MOB6 +//2916,BIG_BEN +//2917,BIG_BELL +//2918,TIME_KEEPER +//2919,NEO_PUNK +//2920,ARC_ELDER +//2921,OWL_VISCOUNT +//2922,G_OWL_VISCOUNT +//2923,OWL_MARQUEES +//2924,T_ELDER_WILOW +//2925,T_WILOW +//2926,T_HARPY +//2927,T_MINERAL +//2928,T_GIBBET +//2929,T_PLASMA_G +//2930,T_SOLACE +//2931,T_METALING +//2932,T_POPORING +//2933,T_DEVILING +//2934,T_ARCHANGELING +//2935,T_EVIL_CLOUD_HERMIT +//2936,E_GHOSTRING +//2937,M_LOKI +//2938,MM_MAGIC_SEAL +//2939,MM_EVIL_SHADOW1 +//2940,MM_EVIL_SHADOW2 +//2941,MM_EVIL_SHADOW3 +//2942,MM_EVIL_FANATICS +//2943,MM_ICE_MINE +//2944,J_HORNET +//2945,J_MUMMY +//2946,J_ANUBIS +//2947,J_EGGYRA +//2948,CURSED_SOLDIER +//2949,CURSED_SENTINEL +//2950,BROKEN_MIND +//2951,FLOATING_WORD +//2952,LIKE_LOVE +//2953,CURSED_MEMORY +//2954,COLORLESS_VOW +//2955,OLD_FRIENDSHIP +//2956,SWEET_SLAUGHTER +//2957,FORGOTTEN_NAME +//2958,FATAL_DAYS +//2959,TORTUROUS_REDEEMER +//2960,MM_FLAMECROSS +//2961,E_TORTUROUS_REDEEMER +//2962,E_DEVILING +//2963,WOODIE +//2964,EXP_1000 +//2965,TW_APOCALIPS_H +//2966,TW_B_EREMES +//2967,TW_B_HARWORD +//2968,TW_B_SEYREN +//2969,TW_BAPHOMET2 +//2970,TW_DARK_LORD +//2971,TW_DARK_SNAKE_LORD +//2972,TW_DOPPELGANGER +//2973,TW_DRACULA +//2974,TW_EDDGA +//2975,TW_FALLINGBISHOP +//2976,TW_GLOOMUNDERNIGHT +//2977,TW_IFRIT +//2978,TW_KTULLANUX +//2979,TW_LORD_OF_DEATH2 +//2980,TW_MISTRESS +//2981,TW_ORK_HERO2 +//2982,TW_OSIRIS2 +//2983,TW_RANDGRIS +//2984,TW_TURTLE_GENERAL +//2985,E_MYSTERIOUS_BUG +//2986,J_XMAS_SMOKEY_GIFT +//2987,XM_TREE +//2988,XM_ANTONIO +//2989,XM_COOKIE +//2990,XM_CRUISER +//2991,XM_MYSTCASE +//2992,XM_LUDE +//2993,XM_HYLOZOIST +//2994,XM_MARIONETTE +//2995,XM_TEDDY_BEAR +//2996,XM_CELINE_KIMI +//2997,G_XM_CELINE_KIMI +//2998,EP14_MORS_EVENT +//2999,EP14_MORS_BOSSA +//3000,EP14_MORS_BOSSB +//3001,EP14_MORS_MOB1 +//3002,EP14_MORS_MOB2 +//3003,EP14_MORS_MOB3 +//3004,EP14_MORS_MOB4 +//3005,EP14_MORS_MOB5 +//3006,EP14_MORS_MOB6 +//3007,EP14_MORS_DUMMY +//3008,EP14_MORS_HIDDEN +//3009,EP14_3_DEATH_BOSS +//3010,EP14_3_DEATH_A_MOB1 +//3011,EP14_3_DEATH_A_MOB2 +//3012,EP14_3_DEATH_A_MOB3 +//3013,EP14_3_DEATH_B_MOB1 +//3014,EP14_3_DEATH_B_MOB2 +//3015,EP14_3_DEATH_B_MOB3 +//3016,EP14_3_DEATH_C_MOB1 +//3017,EP14_3_DEATH_C_MOB2 +//3018,EP14_3_DEATH_C_MOB3 +//3019,CELINE_KIMI +//3020,FIRE_CONDOR +//3021,FIRE_SAND_MAN +//3022,FIRE_FRILLDORA +//3023,FIRE_GOLEM +//3024,14_3_MERCENARY_A +//3025,14_3_MERCENARY_B +//3026,FIREPIT +//3027,FULBUK +//3028,SONIA +//3029,GRIM_REAPER_ANKOU +//3030,STANDING_SOUL +//3031,MUTANT_NECROMANCER +//3032,MUTANT_GHOUL +//3033,MUTANT_OSIRIS +//3034,MUTANT_ARCHER_SKELETON +//3035,MUTANT_WRAITH_DEAD +//3036,MUTANT_VERIT +//3037,MUTANT_LUDE +//3038,HIDDEN_MOB7 +//3039,B_MOROCC_1 +//3040,B_MOROCC_2 +//3041,B_MOROCC_4 +//3042,WATERMELON_17 +//3043,WATERMELON_18 +//3044,WATERMELON_19 +//3045,WATERMELON_20 +//3046,WATERMELON_21 +//3047,WATERMELON_22 +//3048,WATERMELON_23 +//3049,WATERMELON_24 +//3050,WATERMELON_25 +//3051,WATERMELON_26 +//3052,WATERMELON_27 +//3053,WATERMELON_28 +//3054,WATERMELON_29 +//3055,WATERMELON_30 +//3056,WATERMELON_31 +//3057,WATERMELON_32 +//3058,WATERMELON_33 +//3059,EIGHT_DIVISION +//3060,E_QUESTION_OCTOPUS +//3061,E_ANGRY_MIMIC +//3062,GIANT_DEVIRUCHI +//3063,DEVIRUCHI_W +//3064,GIANT_DEVIRUCHI_W +//3065,E_ICE_MINE +//3066,SNAKE_NEWYEAR +//3067,E_ORC_WOMAN +//3068,E_PYTHON_SKIN +//3069,PERE1 +//3070,PERE2 +//3071,PERE3 +//3072,PERE4 +//3073,GRAND_PERE +//3074,TIMEHOLDER +//3075,WA_TREASURE +//3076,WA_MONSTER_1 +//3077,WA_MONSTER_2 +//3078,WA_MONSTER_3 +//3079,WA_MONSTER_4 +//3080,WA_MONSTER_5 +//3081,WA_MONSTER_6 +//3082,WA_MONSTER_7 +//3083,WA_MONSTER_8 +//3084,WA_MONSTER_9 +//3085,WA_MONSTER_10 +//3086,WA_MERCENARY +//3087,M_NYDHOG +//3088,MM_BRINARANEA_BABY +//3089,MM_LOCO_KASA +//3090,MM_LOCO_SALAMANDER +//3091,MM_BRINARANEA +//3092,MM_MUSPELLSKOLL +//3093,MM_BRINARANEA_CORE +//3094,MM_MUSPELLSKOLL_CORE +//3095,MM_GOD_SHADOW +//3096,MM_MOROCC_KID +//3097,MM_MOROCC_ADT +//3098,MM_MOROCC_ORIGIN +//3099,MM_MOROCC_REST +//3100,MM_MANA_BLACK +//3101,MM_MANA_WHITE +//3102,MM_MANA_RED +//3103,MM_MANA_YELLOW +//3104,MM_MANA_BLUE +//3105,MM_GB_MOROCC_1 +//3106,MM_GB_MOROCC_4 +//3107,E_EASTER_BUNNY +//3108,JITTERBUG1 +//3109,JITTERBUG2 -- cgit v1.2.3-60-g2f50 From 13d907bb2548c75d19a6a3c85bcd2014e184f936 Mon Sep 17 00:00:00 2001 From: aleos Date: Mon, 8 Apr 2013 22:30:12 +0000 Subject: * Adjusted @speed so it is no longer reset when a player's status is recalculated. Log out or use @speed -1 to reset to default. (bugreport:7306) > Follow up to r17220: * Added an extra check if a player does not have a homunculus for 'hommutate' and 'morphembryo' git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17236 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/atcommand.c | 8 +++++++- src/map/map.c | 2 ++ src/map/pc.h | 1 + src/map/script.c | 2 +- src/map/status.c | 6 +++++- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/map/atcommand.c b/src/map/atcommand.c index d9c01b0fb..777d777a2 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -850,7 +850,13 @@ ACMD_FUNC(speed) return -1; } - sd->base_status.speed = cap_value(speed, MIN_WALK_SPEED, MAX_WALK_SPEED); + if (speed < 0) { + sd->base_status.speed = DEFAULT_WALK_SPEED; + sd->state.permanent_speed = 0; // Remove lock when set back to default speed. + } else { + sd->base_status.speed = cap_value(speed, MIN_WALK_SPEED, MAX_WALK_SPEED); + sd->state.permanent_speed = 1; // Set lock when set to non-default speed. + } status_calc_bl(&sd->bl, SCB_SPEED); clif->message(fd, msg_txt(8)); // Speed changed. return 0; diff --git a/src/map/map.c b/src/map/map.c index dbff42fa3..03ed08f8b 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1692,6 +1692,8 @@ int map_quit(struct map_session_data *sd) { if( sd->state.storage_flag == 1 ) sd->state.storage_flag = 0; // No need to Double Save Storage on Quit. + if (sd->state.permanent_speed == 1) sd->state.permanent_speed = 0; // Remove lock so speed is set back to normal at login. + if( sd->ed ) { elemental_clean_effect(sd->ed); unit_remove_map(&sd->ed->bl,CLR_TELEPORT); diff --git a/src/map/pc.h b/src/map/pc.h index 809822e78..2ebd5ad22 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -165,6 +165,7 @@ struct map_session_data { struct guild *gmaster_flag; unsigned int prevend : 1;//used to flag wheather you've spent 40sp to open the vending or not. unsigned int warping : 1;//states whether you're in the middle of a warp processing + unsigned int permanent_speed : 1; // When 1, speed cannot be changed through status_calc_pc(). } state; struct { unsigned char no_weapon_damage, no_magic_damage, no_misc_damage; diff --git a/src/map/script.c b/src/map/script.c index c65ce5c24..ce312e894 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -10152,7 +10152,7 @@ BUILDIN_FUNC(homunculus_mutate) TBL_PC *sd; sd = script_rid2sd(st); - if( sd == NULL ) + if( sd == NULL || sd->hd == NULL ) return 0; if(script_hasdata(st,2)) diff --git a/src/map/status.c b/src/map/status.c index 72643e3c8..482a9890d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2335,7 +2335,8 @@ int status_calc_pc_(struct map_session_data* sd, bool first) memset(&status->max_hp, 0, sizeof(struct status_data)-(sizeof(status->hp)+sizeof(status->sp))); //FIXME: Most of these stuff should be calculated once, but how do I fix the memset above to do that? [Skotlex] - status->speed = DEFAULT_WALK_SPEED; + if (!pc->state.permanent_speed) + status->speed = DEFAULT_WALK_SPEED; //Give them all modes except these (useful for clones) status->mode = MD_MASK&~(MD_BOSS|MD_PLANT|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK); @@ -4988,6 +4989,9 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if( sc == NULL ) return cap_value(speed,10,USHRT_MAX); + if (sd && sd->state.permanent_speed) + return (short)cap_value(speed,10,USHRT_MAX); + if( sd && sd->ud.skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || sd->ud.skill_id == LG_EXEEDBREAK) ) { if( sd->ud.skill_id == LG_EXEEDBREAK ) -- cgit v1.2.3-60-g2f50 From 119b35214f99e6e4df25e2a69b5fffd0cfe5e89c Mon Sep 17 00:00:00 2001 From: euphyy Date: Mon, 8 Apr 2013 00:59:04 +0000 Subject: * Added "Malangdo Island" to Malangdo quests, and fixed the dialogue in other Malangdo scripts. * Implemented status change timers for 2012-06-18 onwards; added packets for 2013-03-20Ragexe. (Hercules 267eb1f) * Fixed a crash when def1 hit 400. (Hercules 7e35b76) * Fixed a warning in clang related to the channel system. (Hercules 16dfef6) * Fixed @disguise breaking with @refresh. (Hercules b804926) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17234 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/re/cities/malangdo.txt | 176 +-- npc/re/quests/quests_malangdo.txt | 2663 +++++++++++++++++++++++++++++++++++-- 2 files changed, 2623 insertions(+), 216 deletions(-) diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt index ce853dc5f..99d7e327d 100644 --- a/npc/re/cities/malangdo.txt +++ b/npc/re/cities/malangdo.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Muad_Dib //===== Current Version: ===================================== -//= 1.2 +//= 1.3 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= @@ -22,50 +22,50 @@ mes "Hey~! Hi human~ This is Mr. Dolangmal. kakaka~"; next; mes "[Dolangmal]"; - mes "We are sent to here to take you to the heaven of cat, ^A2314BMeow Meow Island^000000."; + mes "We are sent to here to take you to the heaven of cats, ^A2314BMalangdo^000000."; next; mes "[Dolangmal]"; - set .@s$,"Why don't you go to ^A2314BMeow Meow Island^000000? "; + set .@s$,"Why don't you go to ^A2314BMalangdo^000000?"; switch(atoi(strnpcinfo(2))) { - case 1: mes "How is that? Crowd people in Prontera is good, but why don't you go our heaven of the cat, ^A2314BMeow Meow Island^000000?"; break; - case 2: mes "Why don't you go to ^A2314BMeow Meow Island^000000? That place is better than geffen where only simple honest wizards are crowded."; break; - case 3: mes "Fresh air Payon is not bad, but why don't you go better palce the heaven of the cat, ^A2314BMeow Meow Island^000000?"; break; - case 4: mes .@s$+"The beautiful and quiet place is better than Aldebaran where is so noisy with ticktock sound of clock."; break; - case 5: mes .@s$+"The beautiful and quiet place is better than Morroc where is so hot and sandstorm?"; break; - case 6: mes .@s$+"The beautiful place is better than Yuno where are full of headache books."; break; - case 7: mes .@s$+"The complex place is better than Rachel where is too queit horribly?"; break; - case 8: mes .@s$+"The safety place is better than Lighthanlzen where is too dangerous."; break; - case 9: mes .@s$+"The smell of sea place is better than Mora where is full of grass smell."; break; + case 1: mes "How is that? The crowded city of Prontera is good, but why don't you go our heaven of the cats, ^A2314BMalangdo^000000?"; break; + case 2: mes "Why don't you go to ^A2314BMalangdo^000000? That place is better than Geffen, where there are only crowds of simple honest wizards."; break; + case 3: mes "The fresh air of Payon is not bad, but why don't you go better place like the heaven of the cats, ^A2314BMalangdo^000000?"; break; + case 4: mes .@s$+"The beautiful and quiet place is better than Aldebaran, where it's so noisy with the tick-tock sound of the clock."; break; + case 5: mes .@s$+"The beautiful and quiet place is better than Morroc, with its heat and sandstorms."; break; + case 6: mes .@s$+"The beautiful place is better than Yuno, which is full of books and headaches."; break; + case 7: mes .@s$+"The complex place is better than Rachel, where it's too horribly quiet."; break; + case 8: mes .@s$+"The safe place is better than Lighthanlzen, which is too dangerous."; break; + case 9: mes .@s$+"The smell of this sea place is better than Mora, which is full of a grassy smell."; break; } next; - if(select("No:^A2314BMeow Meow Island^000000~ Go~ Go~") == 1) { + if(select("No:^A2314BMalangdo^000000~ Go~ Go~") == 1) { mes "[Dolangmal]"; - mes "What!? You don't want to go ^A2314BMeow Meow Island^000000? Chet!"; + mes "What!? You don't want to go ^A2314BMalangdo^000000? Chet!"; next; mes "[Dolangmal]"; - mes "You such an annoying guy. If you don't go, why did you talk to me... but..."; + mes "You're such an annoying guy. If you don't go, why did you talk to me... but..."; next; mes "[Dolangmal]"; - mes "^9E1837Admiral Thomas^000000 said kidnapping human.. No.. Bring them politely?"; + mes "^9E1837Admiral Tomas^000000 said to kidnap humans... No... Bring them politely?"; next; mes "[Dolangmal]"; - mes "Anyway I got you. Whenever you want to go, just tell me."; + mes "Anyway, I got you. Whenever you want to go, just tell me."; close; } mes "[Dolangmal]"; - mes "Ok! I like your attitude with full of passion."; + mes "Ok! I like your attitude. Full of passion."; next; mes "[Dolangmal]"; - mes "Now, before you go ^A2314BMeow Meow Island^000000, let me tell you some detail of caution."; + mes "Now, before you go ^A2314BMalangdo^000000, let me give you some warnings."; next; mes "[Dolangmal]"; - mes "First!! It is natural thing. When you arrive on the ^A2314BMeow Meow Island^000000, should notify that you are here to ^9E1837Admiral Thomas^000000.."; + mes "First!! It is natural that when you arrive on ^A2314BMalangdo^000000, you should notify ^9E1837Admiral Tomas^000000 that you are here."; next; mes "[Dolangmal]"; - mes "If you don't do that, you might be attacked by scary and wild cats when you walk on dark street."; + mes "If you don't do that, you might be attacked by scary and wild cats when you walk through dark streets."; next; mes "[Dolangmal]"; - mes "Secondly!! This ^A2314BMeow Meow Island^000000 is absolutely our island of cat even though we open to the human."; + mes "Secondly!! This ^A2314BMalangdo^000000 is absolutely our island of cats, even though we open to humans."; next; mes "[Dolangmal]"; mes "We have a personality... no... no... respect us like one catality because we are cats."; @@ -73,73 +73,77 @@ mes "[Dolangmal]"; mes "And the next one is..."; next; - mes "Dolangmal must say that just say some cautions, but he said 100 kinds of cautions."; + mes "Dolangmal proceeds and gives hundreds of warnings."; next; mes "[Dolangmal]"; - mes "Ok! That is all for cautions!! It's easy and simple cautions... how is that? Can you keep this all?"; + mes "Ok! Those are all the warnings!! They're easy and simple... right? Can you remember them?"; next; - if(select("Keep this cautions:Can't keep this cautions") == 2) { + switch(select("Remember his warnings:Can't remember")) { + case 1: + mes "[Dolangmal]"; + mes "Ok! Do not bite two mice with one mouth. ^9E1837Admiral Tomas^000000 is located at the ^A2314Bcenter of the ship in Malangdo^000000."; + next; + mes "[Dolangmal]"; + mes "Don't forget to give him notice of your arrival."; + next; + mes "[Dolangmal]"; + mes "Alright. Let's go to the heaven of the cats, ^A2314BMalangdo^000000~"; + setquest 5091; + completequest 5091; + warp "malangdo",217,85; + close; + case 2: mes "[Dolangmal]"; - mes "What!? Can't you keep this easy rule? Chet!"; + mes "What!? Can't you keep these easy rules? Chet!"; next; mes "[Dolangmal]"; - mes "You such an annoying guy. If you can't keep this, why did not tell me during the conversation. I told you everything..tierd.. but.."; + mes "You're such an annoying guy. If you can't keep these, why didn't you tell me during our conversation? I told you everything... but.."; next; mes "[Dolangmal]"; - mes "^9E1837Admiral Thomas^000000 said kidnapping human.. No.. Bring them politely?"; + mes "^9E1837Admiral Tomas^000000 said to kidnap humans... No... Bring them politely?"; next; mes "[Dolangmal]"; - mes "Anyway I got you. Just tell me whenever you want to go."; + mes "Anyway, I got you. Just tell me whenever you want to go."; close; } + } + mes "[Dolangmal]"; + mes "Uh? You must be the one from last time...? Alright. Did you visit ^A2314BMalangdo^000000?"; + next; + switch(select("Take me to ^A2314BMalangdo^000000 again:I have visited")) { + case 1: mes "[Dolangmal]"; - mes "Ok! Do not bite two mice with one mouth. ^9E1837Admiral Thomas^000000 is located at the ^A2314Bcenter of ship in Meow Meow Island^000000."; + mes "I really want to send you there, but I can't because of the policy. It is difficult to send people who have visited ^A2314BMalangdo^000000 already."; next; mes "[Dolangmal]"; - mes "Don't forget give notice of arrival."; + mes "And that was roughly it... It's supposed to be rule 53..."; next; mes "[Dolangmal]"; - mes "Alright. Let's go to the heaven of the cat, ^A2314BMeow Meow Island^000000~"; - setquest 5091; - completequest 5091; - warp "malangdo",217,85; - close; - } - mes "[Dolangmal]"; - mes "Uh? You must be last time...? Alright. Did you visit ^A2314BMeow Meow Island^000000?"; - next; - if(select("Take me to ^A2314BMeow Meow Island^000000 again:I have visited") == 1) { + mes "Actually, let me tell you rule 53. I am an indulgent cat."; + next; mes "[Dolangmal]"; - mes "I really want to send you there, but I can't because of the policy. It is difficult to send people who visit ^A2314BMeow Meow Island^000000 at first."; + mes "If you want to go back to ^A2314BMalangdo^000000, take the ship at Izlude or Alberta."; next; mes "[Dolangmal]"; - mes "And you just heard roughly what I said... It is supposed to be rule 53..."; + mes "If you enjoy that pleasant sea trip, you will arrive at the heaven of cats, ^A2314BMalangdo^000000."; next; mes "[Dolangmal]"; - mes "Specially, let me tell you rule 53. I am an indulgent cat."; + mes "So easy! Isn't it? Well, good bye~"; + close; + case 2: + mes "[Dolangmal]"; + mes "How was it? You liked it? I knew it. Kakaka~"; next; mes "[Dolangmal]"; - mes "If you want to go back to ^A2314BMeow Meow Island^000000, just take ship at Izlude or Alberata."; + mes "Ah! I just want to make sure..."; next; mes "[Dolangmal]"; - mes "If you enjoy pleasant sea trip, you will arrive the heaven of cat ^A2314BMeow Meow Island^000000."; + mes "Again, if you want to go back to ^A2314BMalangdo^000000, do you know where to take a ship at Izlude or Alberta?"; next; mes "[Dolangmal]"; - mes "So easy! Isn't it? Well, good bye~"; + mes "Hm~ You might know because you're a smart person. Well, see you again~"; close; } - mes "[Dolangmal]"; - mes "How is that? You like it? I knew it. Kakaka"; - next; - mes "[Dolangmal]"; - mes "Ah! I just want to make sure.."; - next; - mes "[Dolangmal]"; - mes "Again, if you want to go back to ^A2314BMeow Meow Island^000000, do you know that take a ship at Izlude or Alberta?"; - next; - mes "[Dolangmal]"; - mes "Hm~ You might know that because you are smart person. Well, see you again~"; - close; } prontera,114,77,6 duplicate(Dolangmal) Dolangmal#1 553 geffen,109,61,6 duplicate(Dolangmal) Dolangmal#2 553 @@ -161,15 +165,15 @@ izlude,182,218,4 script Odgnalam#iz 554,{ next; if (ep13_yong1 == 0) { set .@price,1000; - set .@s1$,"Huh!! You are such an annoying person. Let me send you to the heaven of the cat, ^A2314BMeow Meow Island^000000 with ^0000FF1000 Zeny^000000."; + set .@s1$,"Huh!! You are such an annoying person. Let me send you to the heaven of the cat, ^A2314BMalangdo^000000 with ^0000FF1000 Zeny^000000."; set .@s2$,"Money? Where is the money? You can't go anywhere without the money. Shame on you."; } else if (ep13_yong1 < 60) { set .@price,999; - set .@s1$,"You have a little relationship with fleet of cat. I'll give you special discount price ^0000FF999 Zeny^000000 to the heaven of the cat, ^A2314BMeow Meow Island^000000, because you have relationship with fleet."; + set .@s1$,"You have a little relationship with fleet of cat. I'll give you special discount price ^0000FF999 Zeny^000000 to the heaven of the cat, ^A2314BMalangdo^000000, because you have relationship with fleet."; set .@s2$,"Where is the money? You don't have a sense of honor."; } else if (ep13_yong1 > 59 && ep13_yong1 < 80) { set .@price,500; - set .@s1$,"You gave several help to our cat's fleet so let me give you special that with 50% discount price ^0000FF500 Zeny^000000. I'll send you to the heaven of the cat, ^A2314BMeow Meow Island^000000."; + set .@s1$,"You gave several help to our cat's fleet so let me give you special that with 50% discount price ^0000FF500 Zeny^000000. I'll send you to the heaven of the cat, ^A2314BMalangdo^000000."; set .@s2$,"You don't have any money for paying 50% discount price? I can't believe it."; } else { mes "[Odgnalam]"; @@ -210,17 +214,17 @@ malangdo,219,86,4 script Kong#malang 545,{ if (ep13_yong1 == 0) { set .@price,1000; set .@s1$, "1000 zeny"; - set .@s2$, "Have a nice day in Meow Meow Island."; + set .@s2$, "Have a nice day in Malangdo."; set .@no_money$, "It is difficult for free."; set .@yes_money$, "Have a nice trip."; mes "[Kong]"; - mes "The fee of ship is only 1000 zeny, where you want to go?"; + mes "The fee of ship is only 1000 zeny, where do you want to go?"; next; } else if (ep13_yong1 < 60) { set .@price,999; set .@s1$,"999 zeny"; - set .@s2$, "Have a full of fortune day in Meow Meow Island..."; - set .@no_money$, "It is difficult even though you have a relationship with fleet."; + set .@s2$, "Have a full of fortune day in Malangdo..."; + set .@no_money$, "It is difficult even though you have a relationship with the fleet."; set .@yes_money$, "Thanks, have a wonderful trip."; mes "[Kong]"; mes "You have a connection with our fleet. Apply special price 999 zeny. Where do you want to go?"; @@ -228,21 +232,21 @@ malangdo,219,86,4 script Kong#malang 545,{ } else if (ep13_yong1 > 59 && ep13_yong1 < 80) { set .@price,500; set .@s1$,"500 zeny"; - set .@s2$, "There are full of fortune and jackpot in Meow Meow Island."; + set .@s2$, "There are full of fortune and jackpot in Malangdo."; set .@no_money$, "Oh my god. You don't have 500 zeny? It is difficult for free."; - set .@yes_money$, "Have nice trip and come again."; + set .@yes_money$, "Have a nice trip and come again."; mes "[Kong]"; - mes "Wow~ You contributed our fleet a lot. Alright!! Special discount price 500 zeny. Where do you want to go?"; + mes "Wow~ You contributed to our fleet a lot. Alright!! Special discount price 500 zeny. Where do you want to go?"; next; } else { set .@price,0; - set .@s1$,"Free for hero of fleet!!"; - set .@s2$, "No one objects the hero of fleet to stay in Meow Meow Island..."; + set .@s1$,"Free for the hero of our fleet!!"; + set .@s2$, "No one objects to the hero of our fleet staying in Malangdo..."; mes "[Kong]"; - mes "Ah... You are the hero of cat's fleet and it is the legend."; + mes "Ah... You are the legendary hero of our cat's fleet."; next; mes "[Kong]"; - mes "We can't charge from hero of fleet. Where is your destination?"; + mes "We can't charge the hero of our fleet. What is your destination?"; next; } set .@i, select("- Izlude destination --- "+.@s1$+":- Alberta destination --- "+.@s1$+":- Stay on Malangdo"); @@ -281,37 +285,37 @@ malangdo,147,117,3 script Innkeeper#malang 554,{ switch(select("Umm... can I rest here?:Psst... can I save here?:Leave.")) { 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."; + mes "You can use the hammock as you want, but give me ^FF00005 Malangdo Canned Specialties^000000. Then you can relax."; next; - switch(select("Give the can.:No need.")) { + switch(select("Give the cans.:No need.")) { case 1: if (countitem(12636) > 4) { delitem 12636,5; //Malang_Sp_Can percentheal 100,100; specialeffect2 EF_HEALSP; mes "[Innkeeper]"; - mes "Take a relaxation."; + mes "Now relax."; emotion e_kis; next; warp "malangdo",140,121; close; } mes "[Innkeeper]"; - mes "It looks like lack of cans."; + mes "It looks like a lack of cans."; close; case 2: mes "[Innkeeper]"; - mes "You are strong man than appearance."; + mes "You are stronger than your appearance."; close; } case 2: mes "[Innkeeper]"; - mes "Storation is done. We should keep company haha."; + mes "Location saved. 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."; + mes "A busy moment makes you hurry and laziness makes you lazy."; next; mes "- Wonder if there is work time. -"; close; @@ -358,28 +362,28 @@ OnTouch: 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 "Phh there is a tail and butt both soft and tender!"; mes "Can't stand, this is heaven~~!!"; next; emotion e_gg; mes "[Cat Trainer]"; - mes "My hidden card ^FF0000^000000 can make all cats in Meow Meow Island as my slaves~ haha!"; + mes "My hidden card, ^FF0000^000000, can make all cats in Malangdo my slaves~ haha!"; next; select("^FF0000^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."; + mes "But every cat loves it with no complaints."; next; select("Where can I get ^FF0000^000000?"); mes "[Cat Trainer]"; - mes "How do you get it that I could have it barely?"; + mes "How would I know if I could barely find it?"; 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^000000! I can be a king in Meow Meow Island~ ohhhh!!!"; + mes "The cats in Malangdo are mine...! As it should be, haha~"; + mes "^FF0000^000000! I can be a king in Malangdo~ ohhhh!!!"; close; OnTouch: emotion e_flash; diff --git a/npc/re/quests/quests_malangdo.txt b/npc/re/quests/quests_malangdo.txt index b92715759..160c3f8a9 100644 --- a/npc/re/quests/quests_malangdo.txt +++ b/npc/re/quests/quests_malangdo.txt @@ -3,21 +3,2549 @@ //===== By: ================================================== //= Muad_Dib //===== Current Version: ===================================== -//= 1.3 +//= 1.4 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Quest NPCs related to Malangdo: -//== Help the Bad Cats in Danger, Clean the Ship, -//== Help Chef Nyas, Play with Baby Cats -//== Archangel Wing Enchants +//== Malangdo Island, Help the Bad Cats in Danger, +//== Clean the Ship, Help Chef Nyas, +//== Play with Baby Cats, Archangel Wing Enchants //===== Additional Comments: ================================= //= 1.0 First version. [Euphy] -//= 1.1 Added two quests. +//= 1.1 Added Clean the Ship and Help Chef Nyas. //= 1.2 Added Archangel Wing Enchants. //= 1.3 Added Play with Baby Cats. +//= 1.4 Added Malangdo Island. //============================================================ +// Malangdo Island :: ma_tomas +//============================================================ +mal_in02,28,56,5 script Samuel#mal 495,{ + mes "[Samuel]"; + mes "Ah, you mean the ad... well, you mean our village chief?"; + mes "You'd better not bother him, since he's always busy."; + if (ma_tomas == 0) + close; + next; + mes "[Samuel]"; + mes "^0000FFBut it'd be impossible to talk without bothering him anyway......^000000"; + mes "He is simply always busy."; + next; + switch(select("Ad...?:Village chief?")) { + case 1: + mes "[Samuel]"; + mes "Ah, there was an admiral of this ship before settling in here~"; + mes "Shining golden eyes like the sun!!!"; + mes "Silvery beard fluttering with a rough sea breeze!!!"; + next; + mes "[Samuel]"; + mes "Kha~ It was nice!!!!"; + mes "I was fascinated by that attraction and took the ship, Navi!"; + mes "This thing is called the romance of a guy. Hoo hoo~"; + emotion e_shy; + next; + mes "[Samuel]"; + mes "Well... His cuticle seems to have gone bad a bit with his village chief duty, since he settled in Malangdo. But his eyes are still the same."; + close; + case 2: + mes "[Samuel]"; + mes "Umm, since it is Malangdo, will it be the Malangdo chief...?!"; + mes "No, though it will be funny..."; + mes "Malangdo village... umm... this... this is also not......"; + mes "Well, this stuff is not that important."; + next; + mes "[Samuel]"; + mes "Although there are many differences between admiral and village chief for sure, it feels like it won't be without Admiral Tomas anyhow."; + next; + mes "[Samuel]"; + mes "All would think the same, not just me."; + mes "He's having a hard time thanks to this."; + close; + } +} + +mal_in02,22,62,3 script Tomas#mal 556,{ + if (BaseLevel < 60) { + mes "[Tomas, Village Chief]"; + mes "Ummm... Who are you?"; + mes "Don't you think it's too early to come here?"; + close; + } + if (ma_tomas == 0) { + mes "[Tomas, Village Chief]"; + mes "Samuel!"; + mes "Are you coming to an end there?"; + cutin "ma_tomas02",2; + next; + mes "[Samuel]"; + mes "Yes, Admiral!"; + mes "Moved all 3 thousand boxes, including the one I just received, to the storage. The next boxes are expected to be delivered in 5 hours!"; + emotion e_omg,0,"Samuel#mal"; + next; + mes "[Tomas, Village Chief]"; + mes "Samuel!"; + mes "How many times should I tell you to call me Village Chief, not Admiral!"; + next; + mes "[Samuel]"; + mes "Sorry! Village Chief!"; + mes "I will correct myself!"; + emotion e_omg,0,"Samuel#mal"; + next; + mes "[Tomas, Village Chief]"; + mes "Hmm, hmm!"; + mes "Get them sorted out and arrange them over there. Before the next boxes are here you must finish the work there!"; + next; + mes "[Tomas, Village Chief]"; + mes "Sea cucumbers, sea squirts, sea anemones to the right! Seaweed and kelp downstairs, and send anchovies and drums to the gathering place. Let the rest stack assortatively in the corner!"; + next; + mes "[Samuel]"; + mes "Yes! Village Chief!"; + mes "Seaweed, Sea cucumbers, sea squirts, sea anemones to the right! Seaweed and glasses downstairs! Send anchovies and drums to the gathering place! Let the rest stack assortatively in the corner!"; + emotion e_omg,0,"Samuel#mal"; + next; + mes "[Tomas, Village Chief]"; + mes "It it not."; + mes "Sea cucumbers, sea squirts, sea anemones to the right. Seaweed and kelp downstairs. Anchovies and drums to the gathering place. Let the rest stack assortatively in the corner."; + emotion e_dots; + next; + mes "[Samuel]"; + mes "Yes!!"; + emotion e_omg,0,"Samuel#mal"; + next; + mes "[Tomas, Village Chief]"; + mes "Huuu..."; + mes "It doesn't seem to end."; + mes "There are still piles of paperwork to do... I will be in trouble unless I finish them up before the next boxes arrive."; + emotion e_sigh; + next; + mes "[Tomas, Village Chief]"; + mes "So, the amount of the next boxes is 1300...."; + mes "And the next, the 700 boxes downstairs to load up the ship..."; + next; + switch(select("Try to talk to him.:Stop since he seems busy.")) { + case 1: + mes "[Tomas, Village Chief]"; + mes "Hmm, who are you?"; + mes "You are not familiar. Sorry, but will you come again if it is not that urgent?"; + cutin "ma_tomas01",2; + next; + switch(select("It's my first time to Malangdo.:Another cat told me to come over here.:I will come around again later.")) { + case 1: + mes "[Tomas, Village Chief]"; + mes "...So I told you your face was not familiar."; + emotion e_dots; + next; + mes "[Tomas, Village Chief]"; + mes "Hmm... Sorry, but as I told you before, would you talk to the other cats if it's not that urgent, since I have plenty of work left undone and no time to talk with you."; + break; + case 2: + mes "[Tomas, Village Chief]"; + mes "...Anyway all are always good to leave me with the work."; + mes "Pitiless ones..."; + emotion e_an; + next; + mes "[Tomas, Village Chief]"; + mes "Umm... Having said that, would you talk to the other cats if it's not that urgent, since I got plenty of work to do left undone and no time to talk with you?"; + break; + case 3: + mes "[Tomas, Village Chief]"; + mes "Sorry for that."; + mes "Please come back to me again, though I don't know when I could be free."; + close2; + cutin "",255; + end; + } + next; + mes "[Tomas, Village Chief]"; + mes "These days I feel I'm pressed with work, although it's good to trust and rely on me as a village chief..."; + next; + mes "[Tomas, Village Chief]"; + mes "It is too much, since they send all visitors to me."; + next; + mes "[Tomas, Village Chief]"; + mes "You're just in time. Go to the ^0000FFregular meeting^000000 being held now."; + mes "The meeting place is ^0000FFat the end of the corridor^000000."; + set ma_tomas,1; + setquest 11209; + close2; + cutin "",255; + end; + case 2: + mes "[Tomas, Village Chief]"; + mes "Sorry for that."; + mes "Please come back to me again though I don't know when I could be free."; + close2; + cutin "",255; + end; + } + } else if (ma_tomas == 1) { + mes "[Tomas, Village Chief]"; + mes "So, the next 1000 boxes to move to the upper side..."; + cutin "ma_tomas02",2; + next; + mes "[Tomas, Village Chief]"; + mes "400 boxes to give out as supplies...."; + mes "And also..."; + next; + mes "[Samuel]"; + mes "Admiral!"; + mes "Sea bass, sea jelly, sea sponge are well arranged on the right!"; + mes "Seaweed and kiwi downstairs! Anchovies and cod to the gathering place! Let the rest stack assortatively in the corner?"; + emotion e_omg,0,"Samuel#mal"; + next; + mes "[Tomas, Village Chief]"; + mes "...."; + emotion e_dots; + next; + mes "[Tomas, Village Chief]"; + mes "...."; + mes "....."; + next; + mes "[Tomas, Village Chief]"; + mes "...."; + mes "....."; + mes "......"; + next; + mes "[Tomas, Village Chief]"; + mes "You!!"; + mes "How many times did I tell you! Mew~"; + mes "Huh?!"; + emotion e_an; + cutin "ma_tomas03",2; + next; + mes "[Tomas, Village Chief]"; + mes "Sea cucumbers, sea squirts, sea anemones to the right. Seaweed and kelp downstairs. Anchovies and drums to the gathering place. Let the rest stack assortatively in the corner."; + next; + mes "[Tomas, Village Chief]"; + mes "Huh?! If you really want to put Sea bass to the right that much, let yourself stand there all day long! Mew~"; + emotion e_omg,0,"Samuel#mal"; + next; + mes "[Tomas, Village Chief]"; + mes "I'm busy enough without you. You're getting on my nerves! Mew~"; + mes "What about getting on the ship over there? Mew!"; + next; + mes "[Tomas, Village Chief]"; + mes "Ooops!!!"; + mes "!!!!!!"; + emotion e_omg; + next; + mes "[Tomas, Village Chief]"; + mes "Hmm, hmm..."; + mes "Well... what are you still doing here?"; + mes "Go to the regular meeting being held now at the end of the corridor."; + mes "Ahem...."; + emotion e_swt2; + cutin "ma_tomas02",2; + close2; + cutin "",255; + end; + } else if (ma_tomas == 2) { + mes "[Tomas, Village Chief]"; + mes "Hmm, hmm..."; + mes "Well... what are you still doing here?"; + mes "Go to the regular meeting being held now at the end of the corridor."; + mes "Ahem...."; + emotion e_swt2; + cutin "ma_tomas02",2; + close2; + cutin "",255; + end; + } else if (ma_tomas < 35) { + mes "[Tomas, Village Chief]"; + mes "How is the meeting going on?"; + mes "It's been a long time since I visited, since I'm busy... Tsk..."; + emotion e_swt2; + cutin "ma_tomas02",2; + close2; + cutin "",255; + end; + } else if (ma_tomas == 35) { + mes "[Tomas, Village Chief]"; + mes "Hoh!"; + mes "There have been such issues!"; + emotion e_ic; + cutin "ma_tomas04",2; + next; + mes "[Tomas, Village Chief]"; + mes "I felt uneasy since I couldn't take care of you, being so busy."; + mes "You already got used to Malangdo well enough by yourself."; + emotion e_heh; + next; + mes "[Tomas, Village Chief]"; + mes "Then, as village chief and the admiral of the cat association, I'd like you to get along with me as well!"; + set ma_tomas,100; + completequest 11237; + getitem 6422,30; //Egrade_Coin + close2; + cutin "",255; + end; + } + mes "[Tomas, Village Chief]"; + mes "Ha ha ha!"; + mes "How are you doing?"; + mes "Come to me if anything difficult happens."; + emotion e_heh; + cutin "ma_tomas04",2; + close2; + cutin "",255; + end; +} + +mal_in02,182,61,3 script President of Meeting#mal 421,{ + if (ma_tomas == 0) { + mes "[President of Meeting]"; + mes "Please be silent, the regular meeting is getting started a moment later~"; + close; + } else if (ma_tomas == 1) { + mes "[President of Meeting]"; + mes "Wow~ wow~ Now we're having an incredible sale... well, no, but a meeting."; + mes "Please be silent."; + next; + mes "[President of Meeting]"; + mes "Today's main agenda is as always ^ff99ccStar Candy^000000."; + mes "Though I have traveled through numerous areas by now, it's my first time hearing ^0000FFsuch a difficult language to learn^000000."; + next; + mes "[President of Meeting]"; + mes "What she cannot communicate with at all is becoming a highly growing issue."; + next; + mes "[President of Meeting]"; + mes "Please speak if there's any opinion on the next agenda."; + next; + mes "[President of Meeting]"; + mes "Umm... Yes. Then, please say first, ^6666ccScottfold^000000."; + set ma_tomas,2; + changequest 11209,11210; + emotion e_paper,0,"Scottfold#mal"; + close; + } else if (ma_tomas == 2) { + mes "[President of Meeting]"; + mes "Umm... Yes. Please speak first, ^6666ccScottfold^000000."; + emotion e_paper,0,"Scottfold#mal"; + close; + } else if (ma_tomas == 3) { + mes "[President of Meeting]"; + mes "Please speak, Koon.... next."; + emotion e_paper,0,"Koon#mal"; + close; + } else if (ma_tomas == 4) { + mes "[President of Meeting]"; + mes "There will be a presentation by Dr. Devore on his study continuously."; + emotion e_paper,0,"Linguist Devore#mal"; + close; + } else if (ma_tomas == 5) { + mes "[President of Meeting]"; + mes "Please speak next, Dr. Mali."; + emotion e_paper,0,"Geologist Mali#mal"; + close; + } else if (ma_tomas == 6) { + mes "[President of Meeting]"; + mes "Brie!! I understand the situation, but please be calm and tell us, since it is a meeting after all."; + close; + } else if (ma_tomas == 7) { + mes "[President of Meeting]"; + mes "Well, let's have a break for a while now."; + mes "In time, Samuel brought Seaweed and tuna here."; + close; + } + mes "[President of Meeting]"; + mes "Huew... It gets you so tired to conduct a meeting."; + mes "I used to be called a tireless merchant who ranked 1st in sales..."; + next; + mes "[President of Meeting]"; + mes "I feel really sick sometimes when the meeting is prolonged."; + emotion e_sob; + close; +} + +mal_in02,178,66,5 script Scottfold#mal 422,{ + if (ma_tomas == 0) { + mes "[Scottfold]"; + mes "Attending the meeting is an important thing to do."; + mes "It is absolutely right that all responsible cats should attend."; + close; + } else if (ma_tomas == 1) { + mes "[Scottfold]"; + mes "The meeting is starting soon."; + mes "So, shh~~"; + close; + } else if (ma_tomas == 2) { + mes "[Scottfold]"; + mes "Yes, honorable president."; + mes "As for the communication with Star Candy, we have Biscuit, don't we?"; + next; + mes "[President of Meeting]"; + mes "Of course, though she is always with ^0000FFBiscuit, who speaks the official language a bit^000000, it seems to be difficult to have a conversation in depth."; + next; + mes "[President of Meeting]"; + mes "Besides, Star Candy is in a very important position that our Malangdo's existance depends upon. Many others think it's necessary to talk about our future direction directly."; + next; + mes "[President of Meeting]"; + mes "Then for the next... yes, Koon please speak now."; + set ma_tomas,3; + changequest 11210,11211; + emotion e_paper,0,"Koon#mal"; + close; + } + mes "[Scottfold]"; + mes "Let's quietly listen to the other's presentation."; + next; + mes "[Scottfold]"; + mes "...Though I say so, I also feel like saying something, somehow."; + mes "So, I always put my hand up first!"; + close; +} + +mal_in02,177,58,7 script Koon#mal 546,{ + if (ma_tomas == 0) { + mes "[Koon]"; + mes "Though I'm busy, I always attend this meeting."; + mes "I'd like this to be held at times that don't disturb my work."; + close; + } else if (ma_tomas == 1) { + mes "[Koon]"; + mes "I expect what comes up today."; + close; + } else if (ma_tomas == 2) { + mes "[Koon]"; + mes "Scottfold is the one who participates enthusiastically."; + mes "They say that he'll be the next president of this meeting."; + close; + } else if (ma_tomas == 3) { + mes "[Koon]"; + mes "Then, how's the study of Dr. Devore going?"; + next; + mes "[President of Meeting]"; + mes "The language of Starfish is not undertandable even for the linguist, Dr. Devore..."; + next; + mes "[Linguist Devore]"; + mes "President! As for that matter, I'd like to speak for myself about the study."; + next; + mes "[President of Meeting]"; + mes "Yes. Carry on please."; + set ma_tomas,4; + changequest 11211,11212; + emotion e_paper,0,"Linguist Devore#mal"; + close; + } + mes "[Koon]"; + mes "I hope the study of Dr. Devore comes out soon."; + mes "I am very interested in the language as well!"; + close; +} + +mal_in02,174,64,5 script Linguist Devore#mal 549,{ + if (ma_tomas < 4) { + mes "[Linguist Devore]"; + mes "Most of our cats are especially talented in language."; + mes "This has a great effect on the prosperity of our merchants."; + next; + mes "[Linguist Devore]"; + mes "Because... it means you can do business in more areas if you know more foreign languages."; + close; + } else if (ma_tomas == 4) { + mes "[Linguist Devore]"; + mes "Hello everyone."; + mes "I am a linguist, Dr. Devore, in charge of the study on the Starfish language."; + next; + mes "[Linguist Devore]"; + mes "Let me say the definite conclusion first. Since ^0000FFthe study on the Starfish language^000000 started from the time we settled in Malangdo, there's been no remarkable outcome yet."; + emotion e_swt2; + next; + mes "[Linguist Devore]"; + mes "Of course it is possible to talk with ^6666ccBiscuit^000000 somehow, but this is not close to the result we expected to solve the situation."; + next; + mes "[Koon]"; + mes "Then, how's the study on the book we found last time?"; + next; + mes "[Linguist Devore]"; + mes "This book we assumed to be written in the Starfish language. But when I asked Biscuit, it turns out that it's a textbook to learn the Starfish language..."; + next; + mes "[Koon]"; + mes "Isn't it very helpful for studying the Starfish language, then?"; + next; + mes "[Linguist Devore]"; + mes "I surely thought that, but when I tried the conversation as it teaches, we ended up finding they couldn't understand it at all."; + next; + mes "[Linguist Devore]"; + mes "If you see the words on the first page of this book, there's a sentence seeming like short conversation."; + next; + mes "[Linguist Devore]"; + mes "It's like this, for the question, ¬¬¬Ñ¬Ü ¬ã¬Ú?, it says, ¬¡¬Ù ¬ã¬ì¬Þ ¬Õ¬à¬Ò¬â¬Ö, ¬Ò¬Ý¬Ñ¬Ô¬à¬Õ¬Ñ¬â¬ñ. ¬¡ ¬£¬Ú¬Ö?"; + next; + mes "[Linguist Devore]"; + mes "Though I tried talking to Biscuit like this, there was no feedback."; + next; + mes "[Linguist Devore]"; + mes "After that, as for this book, the existence of the book itself has been studied on the other side."; + next; + mes "[President of Meeting]"; + mes "Ok, we listened well to what Dr. Devore said."; + mes "Then, let's wrap up the progress of the language study, and listen to Geologist, Dr. Mali."; + set ma_tomas,5; + changequest 11212,11213; + emotion e_paper,0,"Geologist Mali#mal"; + close; + } else if (ma_tomas < 18) { + mes "[Linguist Devore]"; + mes "Hoo..."; + mes "The Starfish language is the hardest matter in my studying life."; + next; + mes "[Linguist Devore]"; + mes "I should solve the puzzling Starfish language soon."; + mes "I'm ashamed to see you all like this as a result."; + emotion e_swt2; + close; + } else if (ma_tomas == 18) { + mes "[Linguist Devore]"; + mes "Right..."; + mes "This language world is so beautiful and mysterious."; + next; + mes "[Linguist Devore]"; + mes "There are mysteries like why the same beings use totally different languages, or why very far kinds use similar languages."; + next; + mes "[Linguist Devore]"; + mes "I joined this group because I thought that traveling all around the world was much more helpful to study, not just reading a book at a desk."; + next; + mes "[Linguist Devore]"; + mes "But this Starfish is just mysterious."; + mes "I cannot understand it at all."; + mes "I am rather doubtful to say it's actual 'language'."; + emotion e_swt2; + next; + mes "[Linguist Devore]"; + mes "I have no clue, though I study it in various ways."; + mes "Biscuit got used to our language, rather, and short talk is possible, but we cannot say it is conversation yet."; + next; + mes "[Linguist Devore]"; + mes "I feel frustrated and more to study like this, but it should be solved to deal with the other matters."; + next; + mes "[Linguist Devore]"; + mes "I don't see what's wrong here!"; + mes "Myself, who used to be called a master of language!"; + mes "I've never expected to come across this untouchable stuff!"; + next; + mes "[Linguist Devore]"; + mes "Wooaaa wooaaa ahhh!!!!"; + mes "I don't see what's wrong here!"; + emotion e_omg; + next; + mes "[Linguist Devore]"; + mes "Why are they here and what do they want!"; + mes "I'd be good enough if I could just know it!"; + set ma_tomas,19; + changequest 11225,11226; + close; + } else if (ma_tomas == 19) { + mes "[Linguist Devore]"; + mes "Wooaaa wooaaa ahhh!!!!"; + mes "I don't see what's wrong here!"; + emotion e_omg; + next; + mes "[Linguist Devore]"; + mes "Why are they here and what do they want!"; + mes "I'd be good enough if I could just know it!"; + close; + } else if (ma_tomas == 20) { + mes "[Linguist Devore]"; + mes "What?! What did you say?!"; + mes "Fluently said!"; + mes "How come!"; + emotion e_omg; + next; + mes "[Linguist Devore]"; + mes "I can't believe it unless I see it with my own eyes."; + mes "It's not right if he spoke only to me like that, isn't it?"; + next; + mes "[Linguist Devore]"; + mes "Let's go and hear it together!!"; + set ma_tomas,21; + changequest 11227,11228; + close; + } else if (ma_tomas < 34) { + mes "[Linguist Devore]"; + mes "The study by this time was just making a totally wrong guess!"; + mes "But before you're disappointed, I'd rather be happy enough to get the answer."; + emotion e_no1; + next; + mes "[Linguist Devore]"; + mes "Once we get the answer, it's only a matter of time before understanding the Starfish language."; + close; + } else if (ma_tomas == 34) { + mes "[Linguist Devore]"; + mes "Is it true?!"; + mes "Did Biscuit say so?!"; + emotion e_omg; + next; + mes "[Linguist Devore]"; + mes "Ah, ah! Thanks to you, "+strcharinfo(0)+"!"; + mes "I feel so grateful."; + next; + mes "[Linguist Devore]"; + mes "I have to meet Biscuit right now and say thank you."; + mes "It'd be possible to express my grateful mind, though we cannot understand each other."; + next; + mes "[Linguist Devore]"; + mes "Ah, and I really want to tell this happy news to our chief, Tomas."; + mes "Please!!"; + emotion e_hlp; + set ma_tomas,35; + changequest 11236,11237; + getitem 6422,30; //Egrade_Coin + close; + } else if (ma_tomas == 35) { + mes "[Linguist Devore]"; + mes "Ah, and I really want to tell this happy news to our chief, Tomas."; + mes "Please!!"; + emotion e_hlp; + close; + } + mes "[Linguist Devore]"; + mes "Ah, ah!!"; + mes "The study on Starfish is going well."; + mes "It could've really been a disaster, if you, "+strcharinfo(0)+", didn't help us."; + emotion e_thx; + close; +} + +mal_in02,179,57,1 script Geologist Mali#mal 559,{ + if (ma_tomas < 5) { + mes "[Geologist Mali]"; + mes "Malangdo is named because the ground here is so soft, mew~"; + mes "It gets hard when you touch it, mew~"; + emotion e_slur; + close; + } else if (ma_tomas == 5) { + mes "[Geologist Mali]"; + mes "Mali, mew~"; + mes "As you all know, there are many places with cracks in the ground, mew~"; + next; + mes "[Geologist Mali]"; + mes "It's not that serious or risky a problem yet, mew~"; + mes "As we cannot predict when Star Candy will move, it's best to repair these first for now, mew~"; + next; + mes "[Geologist Mali]"; + mes "But, as always, there is a shortage of labor, mew~"; + mes "We need many more participants, I think, mew~"; + next; + mes "[Geologist Mali]"; + mes "As everyone has their own work to do, I understand that we all must be busy. But I'd like to participate in this repairing, since it's related to our life."; + emotion e_hlp; + next; + mes "[Brie]"; + mes "Wait!"; + mes "It's not something to be done only with instant repairs!"; + mes "My father was seriously injured from the earthquake some time ago!"; + emotion e_omg,0,"Brie#mal"; + next; + mes "[President of Meeting]"; + mes "Mr. Brie!! I understand what your situation is, but please clam dowm, since we're having a meeting."; + set ma_tomas,6; + changequest 11213,11214; + emotion e_paper,0,"Brie#mal"; + close; + } else if (ma_tomas < 13) { + mes "[Geologist Mali]"; + mes "You attended to the meeting instead of your father today, Brie."; + mes "He's quite unfriendly but devoted to his parents, mew~"; + emotion e_heh; + next; + mes "[Geologist Mali]"; + mes "Mr. Brie was not a member of our group at first, but he joined in after getting the news that his father, Rican, joined in with the new trade course development, mew~"; + next; + mes "[Geologist Mali]"; + mes "But Brie seems to have been shocked when Rican was hurt last time, mew~"; + mes "I should study more to not let this kind of thing happen again, mew~"; + close; + } else if (ma_tomas == 13) { + mes "[Geologist Mali]"; + mes "Malangdo is a really special island, mew~"; + mes "Literally, it's soft."; + next; + mes "[Geologist Mali]"; + mes "Although I visited so many places following the group, I've never seen ground as soft as Malangdo."; + mes "If you press the ground by mistake..."; + mes "it has magic so that you end up continously doing it over and over."; + next; + mes "[Geologist Mali]"; + mes "Soft and sticky feeling like this..."; + mes "Haha~ it gets you addicted to it..."; + emotion e_shy; + next; + mes "[Geologist Mali]"; + mes "Oops!!"; + mes "I was about to be sunk into this softness, mew~!!!"; + emotion e_omg; + next; + mes "[Geologist Mali]"; + mes "Though it's got the risk of making you lose your mind, it helped the ship Navi not to break, mew~"; + next; + mes "[Geologist Mali]"; + mes "By the way, it doesn't have a special element in it, but is made up of common soil, mew~"; + next; + mes "[Geologist Mali]"; + mes "Moreover!!"; + mes "How come it's been ^0000FFcracked with this softness^000000, mew~!"; + emotion e_omg; + next; + mes "[Geologist Mali]"; + mes "If this ^0000FFcrack goes on, the underground support may collapse^000000, mew..."; + next; + mes "[Geologist Mali]"; + mes "There are many forces in for the repairing of the cracks, it feels like it's not enough, mew~"; + next; + mes "[Geologist Mali]"; + mes "So we receive applications for voluntary service, mew~"; + mes "Though it's voluntary service, it's not free. So, please visit me at any time you want, mew~"; + next; + switch(select("Help repairing.:Finish the talk.")) { + case 1: + mes "[Geologist Mali]"; + mes "Khhh!!!"; + mes "What a beatiful young person in this hard world!!!"; + mes "Whenever I come across a person like you, I feel this life is still good to live, mew~"; + emotion e_sob; + next; + mes "[Geologist Mali]"; + mes "Please listen to ^6666ccmy assistant, Bob^000000 in detail, mew~"; + mes "Get out of here and visit the ^6666cca room on your right^000000, mew~"; + set ma_tomas,14; + setquest 11221; + close; + case 2: + mes "[Geologist Mali]"; + mes "Woohoohoo."; + mes "I~will~be~waiting~for~you~~"; + emotion e_lv2; + close; + } + } else if (ma_tomas == 14) { + mes "[Geologist Mali]"; + mes "Khhh!!!"; + mes "What a beatiful young person in this hard world!!!"; + mes "Whenever I come across a person like you, I feel this life is still good to live, mew~"; + emotion e_sob; + next; + mes "[Geologist Mali]"; + mes "Please listen to ^6666ccmy assistant, Bob^000000 in detail, mew~"; + mes "Get out of here and visit the ^6666cca room on your right^000000, mew~"; + close; + } else if (ma_tomas == 15 || ma_tomas == 16) { + mes "[Geologist Mali]"; + mes "Is the repairing of the cracks going well, mew?"; + mes "Don't overdo yourself, mew~"; + mes "It'd be bad if your health gets worse, mew~"; + close; + } else if (ma_tomas == 17) { + mes "[Geologist Mali]"; + mes "Ah! Bob complimented you so much on your great job, mew~"; + mes "Please help us next time again when you can, mew~"; + emotion e_no1; + next; + mes "[Linguist Devore]"; + mes "I made this, since the Starfish study was well finished and you didn't need to do such hard work like this!"; + mes "Sob sob!!!"; + emotion e_sob,0,"Linguist Devore#mal"; + next; + mes "[Geologist Mali]"; + mes "Ohhh! What are you talking about Dr. Devore, mew~!!!!"; + mes "I don't think that way at~~all, mew~!!!"; + emotion e_omg; + next; + mes "[Geologist Mali]"; + mes "Everyone knows how you, Dr. Devore, are studying hard, mew~!!!"; + mes "You do your best, so be more confident, mew~!"; + set ma_tomas,18; + completequest 11224; + setquest 11225; + setquest 11243; + getitem 6422,20; //Egrade_Coin + close; + } else if (ma_tomas > 99) { + if (checkquest(11240) > -1 || checkquest(11241) > -1) { + mes "[Geologist Mali]"; + mes "Please listen to ^6666ccmy assistant, Bob^000000 in detail, mew~."; + mes "Get out of here and visit the ^6666cca room on your right^000000, mew~"; + close; + } else if (checkquest(11242) > -1) { + mes "[Geologist Mali]"; + mes "Ah! Bob complimented you so much on your great job, mew~"; + mes "Please help us next time again when you can, mew~"; + changequest 11242,11243; + getitem 6422,4; //Egrade_Coin + close; + } else { + if (checkquest(11243,PLAYTIME) == 0 || checkquest(11243,PLAYTIME) == 1) { + mes "[Geologist Mali]"; + mes "Don't overdo yourself, mew~"; + mes "It'd be bad if your health gets worse, mew~"; + close; + } + if (checkquest(11243,PLAYTIME) == 2) + erasequest 11243; + mes "[Geologist Mali]"; + mes "There is a lot more repairing left to do for today!"; + mes "It doesn't seem to be an easy thing to solve, mew~"; + next; + switch(select("I will help.:I will stop.")) { + case 1: + mes "[Geologist Mali]"; + mes "Please listen to ^6666ccmy assistant, Bob^000000 in detail, mew~"; + mes "Get out of here and visit the ^6666cca room on your right^000000, mew~"; + setquest 11240; + close; + case 2: + mes "[Geologist Mali]"; + mes "Then please take a rest, mew~"; + mes "I will see you next chance then, mew~"; + close; + } + } + } + mes "[Geologist Mali]"; + mes "Soft and sticky feeling like this..."; + mes "Haha~ it gets you addicted to it..."; + emotion e_slur; + close; +} + +mal_in02,140,94,0 script Bob#mal 553,{ + if (ma_tomas < 14) { + mes "[Bob]"; + mes "You bow-wow! bow! wow! I mew! mew! mew!"; + mes "I'm into juice from delicious fish, mew~"; + emotion e_ho; + close; + } else if (ma_tomas == 14) { + // Dialogue in repeatable quest is identical. + // Uses a variable to determine the quest mode. + set @mal_bob_q,1; + L_Quest1: + set .@i, @mal_bob_q; + set @mal_bob_q,0; + mes "[Bob]"; + mes "You bow-wow! bow! wow! I mew! mew! mew!"; + mes "I'm into juice from delicious fish, mew~"; + emotion e_ho; + next; + mes "[Bob]"; + mes "Ah ahhh!!!!!!!!!!!"; + mes "Are you here for voluntary service?!"; + emotion e_omg; + next; + if (checkweight(1201,1) == 0) { + mes "[Bob]"; + mes "Ummm... be lightened with your mind and body when doing voluntary service!"; + mes "You seem to have too much stuff, so get yourself lightened~"; + close; + } + if (MaxWeight - Weight < 1000) { + mes "[Bob]"; + mes "Ummm... be lightened with your mind and body when doing voluntary service!"; + mes "You seem to have a lot of heavy stuff, so get yourself lightened~"; + close; + } + switch(select("Yes.:No.")) { + case 1: + mes "[Bob]"; + mes "Khhh..."; + mes "Impressed!!!"; + mes "I am impressed!!!"; + mes "The impressive mind is dancing in my heart!!!"; + emotion e_omg; + next; + mes "[Bob]"; + mes "I treated the people like I looked down on them and had a prejudice against human beings!!!"; + mes "I feel like crying with scales!!!!"; + mes "Impressed!!!"; + mes "Impression Pegasus Hurricane!!!"; + emotion e_omg; + next; + select("Stop it! Tell me how to repair the cracks."); + mes "[Bob]"; + mes "Ah!"; + next; + mes "[Bob]"; + mes "Hooo..."; + mes "I was so impressed that I was rude to someone I met for the first time."; + next; + mes "[Bob]"; + mes "Repairing the cracks is rather simple."; + mes "Anyone can do it easily with just this ^0000FFFix Kit^000000!"; + next; + mes "[Bob]"; + mes "Fill in the part with this mixture of gray and white clay, and fix the cracks with a stapler."; + mes "And I'll skip explaining how to use the other tools, since you know already."; + next; + mes "[Bob]"; + mes "Ah, right..."; + mes "^0000ffYou may fall into the gap of the crack, unfortunately, so please watch out.^000000"; + if (.@i == 1) { + set ma_tomas,15; + changequest 11221,11222; + } else + changequest 11240,11241; + getitem 6434,1; //Fix_Kit + close; + case 2: + mes "[Bob]"; + mes "Ah, right..."; + mes "I see..."; + mes "Disappointed..."; + mes "Hoohoot shh shh~"; + emotion e_otl; + close; + } + } else if (ma_tomas == 15) { + L_Quest2: + if (checkweight(1201,1) == 0) { + mes " - Notice !! -"; + mes " - Since you have too many items - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (MaxWeight - Weight < 1000) { + mes " - Notice !! -"; + mes " - Since your items are too heavy - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + mes "[Bob]"; + mes "Repairing the cracks is rather simple."; + mes "Anyone can do it easily with just this ^0000FFFix Kit^000000!"; + if (countitem(6434) == 0) + getitem 6434,1; //Fix_Kit + next; + mes "[Bob]"; + mes "Fill in the part with this mixture of gray and white clay, and fix the cracks with a stapler."; + mes "And I'll skip explaining how to use the other tools, since you know already."; + next; + mes "[Bob]"; + mes "Ah, right..."; + mes "^0000ffYou may fall into the gap of the crack, unfortunately, so please watch out.^000000"; + close; + } else if (ma_tomas == 16) { + mes "[Bob]"; + mes "Khhh~~~~~~~~~~~~~~~~~~~~~~"; + mes "That was perfect!"; + emotion e_no1; + next; + mes "[Bob]"; + mes "The adhesive filled in just right!!"; + mes "The perfect stapler job!!"; + mes "The speechless and marvelous finishing skill!!"; + next; + mes "[Bob]"; + mes "Impressed!"; + mes "Mysterious!"; + mes "Shocked!"; + emotion e_omg; + next; + mes "[Bob]"; + mes "You did a great job indeed!!!"; + mes "I will tell Dr. Mali!"; + if (countitem(6434) > 0) + delitem 6434,1; //Fix_Kit + set ma_tomas,17; + changequest 11223,11224; + close; + } else if (ma_tomas > 99) { + if (checkquest(11240) > -1) { + set @mal_bob_q,2; + goto L_Quest1; + } else if (checkquest(11241) > -1) + goto L_Quest2; + } + mes "[Bob]"; + mes "You bow-wow! bow! wow! I mew! mew! mew!"; + mes "I'm into juice from delicious fish, mew~"; + emotion e_ho; + close; +} + +- script Crack#mal0 -1,{ + if (.off) end; // Official script uses a 1-second timer to disable cracks. Added to prevent abuse. + if (ma_tomas == 15 || checkquest(11241) > -1) { + if (countitem(6434) < 1) { + mes "- To repair the crack -"; + mes "- you need a Fix Kit. -"; + close; + } + set .@ma_cr1, rand(1,10); + if (.@ma_cr1 < 5) { + mes "- Ground is a bit cracked. -"; + mes "- Used a stapler. -"; + set .off,1; + donpcevent "Crackt"+substr(strnpcinfo(2),3,getstrlen(strnpcinfo(2))-1)+"#mal::OnEnable"; + close; + } else if (.@ma_cr1 == 7) { + mes "- With the crack opening -"; + mes "- at the center, -"; + mes "- the ground gets soft -"; + mes "- and you are instantly -"; + mes "- sucked into the ground. -"; + close2; + warp "mal_dun01",0,0; + end; + } else { + while (1) { + switch(select("Repair the gap.:Use the stapler.")) { + case 1: + switch(rand(1,3)) { + case 1: + mes "- Mix the two colors of -"; + mes "- adhesives and put it on -"; + mes "- the crack meticulously. -"; + break; + case 2: + mes "- Use a plump sea squirt -"; + mes "- for the cracked gap.-"; + break; + case 3: + mes "- Use a slithery sea cucumber -"; + mes "- for the cracked gap.-"; + break; + } + next; + break; + case 2: + mes "- Used the stapler for the crack -"; + mes "- and fixed it well. -"; + next; + mes "- It seems the crack -"; + mes "- is well filled. -"; + next; + if (rand(1,3) == 2) { + mes "- Let's get back to report this. -"; + if (ma_tomas == 15) { + set ma_tomas,16; + changequest 11222,11223; + } + if (checkquest(11241) > -1) { + changequest 11241,11242; + } + } else { + mes "- Let's find -"; + mes "- the other cracks. -"; + } + set .off,1; + donpcevent "Crackt"+substr(strnpcinfo(2),3,getstrlen(strnpcinfo(2))-1)+"#mal::OnEnable"; + close; + } + } + } + } + mes "- I can see the crack. -"; + mes "- It seems there's still -"; + mes "- not enough supporters yet. -"; + close; +OnEnable: + enablenpc strnpcinfo(0); + end; +OnDisable: + set .off,0; + disablenpc strnpcinfo(0); + end; +} +malangdo,114,157,0 duplicate(Crack#mal0) Crack#mal1 550 +malangdo,284,237,0 duplicate(Crack#mal0) Crack#mal2 550 +malangdo,134,150,0 duplicate(Crack#mal0) Crack#mal3 550 +malangdo,173,199,0 duplicate(Crack#mal0) Crack#mal4 550 +malangdo,233,197,0 duplicate(Crack#mal0) Crack#mal5 550 +malangdo,137,239,0 duplicate(Crack#mal0) Crack#mal6 550 +malangdo,239,157,0 duplicate(Crack#mal0) Crack#mal7 550 +malangdo,221,155,0 duplicate(Crack#mal0) Crack#mal8 550 +malangdo,217,109,0 duplicate(Crack#mal0) Crack#mal9 550 +malangdo,162,183,0 duplicate(Crack#mal0) Crack#mal10 550 + +- script Crackt0#mal -1,{ + end; +OnInit: + disablenpc strnpcinfo(0); + end; +OnEnable: + enablenpc strnpcinfo(0); + initnpctimer; + end; +OnDisable: + stopnpctimer; + disablenpc strnpcinfo(0); + end; +OnTimer1000: + donpcevent "Crack#mal"+substr(strnpcinfo(1),6,getstrlen(strnpcinfo(1))-1)+"::OnDisable"; + end; +OnTimer30000: + donpcevent "Crack#mal"+substr(strnpcinfo(1),6,getstrlen(strnpcinfo(1))-1)+"::OnEnable"; + donpcevent strnpcinfo(0)+"::OnDisable"; + end; +} +- duplicate(Crackt0#mal) Crackt1#mal -1 +- duplicate(Crackt0#mal) Crackt2#mal -1 +- duplicate(Crackt0#mal) Crackt3#mal -1 +- duplicate(Crackt0#mal) Crackt4#mal -1 +- duplicate(Crackt0#mal) Crackt5#mal -1 +- duplicate(Crackt0#mal) Crackt6#mal -1 +- duplicate(Crackt0#mal) Crackt7#mal -1 +- duplicate(Crackt0#mal) Crackt8#mal -1 +- duplicate(Crackt0#mal) Crackt9#mal -1 +- duplicate(Crackt0#mal) Crackt10#mal -1 + +mal_in02,181,55,3 script Brie#mal 545,{ + if (ma_tomas < 6) { + mes "[Brie]"; + mes "Sorry, but I don't feel like talking with you. Please leave me alone."; + close; + } else if (ma_tomas == 6) { + mes "[Brie]"; + mes "Sorry, President."; + next; + mes "[Brie]"; + mes "Though Star Candy is supporting the ground of Malangdo,"; + mes "we don't understand its purpose or reason at all."; + mes "Should we just expect not to find anything?"; + next; + mes "[President of Meeting]"; + mes "As Dr. Devore said, it's better to wait for the results, since he's still studying..."; + next; + mes "[Brie]"; + mes "What would you do if Star Candy left, and you had only waited?"; + mes "Malangdo may go under. I cannot just wait here like this."; + next; + mes "[President of Meeting]"; + mes "But, Brie, we know there's nothing but waiting."; + mes "An enormous crack was made when Star Candy tried to make the support stand last time, as she seemed to be shocked and moved too much."; + next; + mes "[Geologist Mali]"; + mes "Besides, since ^0000FFStar Candy's location plays the role of pillar for this island, it seems the center would go down as you even set up pillars around her^000000, mew~"; + next; + mes "[Geologist Mali]"; + mes "Due to the nature of this large basement space, if the center were to collapse, we can't expect what comes next. Our researchers therefore think we should treat it as carefully as we can, mew~"; + next; + mes "[Brie]"; + mes "..."; + next; + mes "[President of Meeting]"; + mes "We know that Rican's injury may affect the trade of Yggdrasil Berry, so don't worry too much."; + next; + mes "[President of Meeting]"; + mes "As for that matter, we're going to plan for it by discussing it with our chief, Tomas."; + next; + mes "[Brie]"; + mes "Yes..."; + next; + mes "[President of Meeting]"; + mes "Well, let's have a break for now."; + mes "In time, Samuel brought Seaweed and tuna here."; + set ma_tomas,7; + completequest 11214; + setquest 11215; + close; + } else if (ma_tomas == 7) { + mes "[Brie]"; + mes "What?!"; + mes "I won't listen if you are nagging."; + next; + switch(select("About Rican.:I will stop.")) { + case 1: + mes "[Brie]"; + mes "As for my father?"; + mes "He's the master of Yggdrasil Berry in this island."; + next; + mes "[Brie]"; + mes "He can only do little things, like pushing the button of the dry machine, until his legs recover from the earthquake."; + mes "The amount of Yggdrasil Berry dramatically decreased."; + next; + mes "[Brie]"; + mes "I've been harvesting them instead of him, but..."; + next; + mes "[Brie]"; + mes "Anyhow, I don't know very much about it, since I've just started this. If you want to ask about the Yggdrasil Berry, go to my house in the ^6666ccwest of Malangdo^000000."; + next; + mes "[Brie]"; + mes "My father will be staying there saying he's really bored today again..."; + set ma_tomas,8; + changequest 11215,11216; + close; + case 2: + mes "[Brie]"; + mes "Hoo..."; + close; + } + } else if (ma_tomas < 12) { + mes "[Brie]"; + mes "Anyhow, I don't know very much about it, since I've just started this. If you want to ask about the Yggdrasil Berry, go to my house in the ^6666ccwest of Malangdo^000000."; + next; + mes "[Brie]"; + mes "My father will be staying there saying he's really bored today again..."; + close; + } else if (ma_tomas == 12) { + mes "[Brie]"; + mes "Dr. Mali, please let me help to repair the cracks!"; + mes "You called me more often long ago, but why do you say you can't give me the work now?"; + next; + mes "[Geologist Mali]"; + mes "No, mew~"; + mes "Brie, you have to help your father, mew~"; + next; + mes "[Brie]"; + mes "But if this island goes down, all the fuss isn't useful at all!"; + next; + mes "[Geologist Mali]"; + mes "It's the same as the chicken and egg situation, mew~"; + mes "If we have any problems selling Yggdrasil Berry, we cannot buy the tools to repair the cracks, mew~"; + next; + mes "[Brie]"; + mes "..."; + next; + mes "[Geologist Mali]"; + mes "So, go back home and help your father, mew~"; + next; + mes "[Brie]"; + mes "Ok, then I'll come back again if his legs have recovered."; + next; + mes "[Geologist Mali]"; + mes "Good."; + mes "I'll wait for you, mew~"; + next; + mes "[Geologist Mali]"; + mes "Now as I get him back home, I'm going to find the participants, mew~"; + mes "Cheers!"; + set ma_tomas,13; + completequest 11220; + close; + } + mes "[Brie]"; + mes "Hew... I think I changed from being fussy, as I felt nervous."; + mes "Now I will think of only the harvest of fussy."; + close; +} + +mal_in01,114,169,5 script Rican#mal 547,{ + if (ma_tomas < 9) { + mes "[Rican]"; + mes "Woo waa hoohoo..."; + mes "Woowaa ahhh ahh ahh..."; + mes "I'm impatient... to stay home like this!!"; + emotion e_yawn; + next; + mes "[Rican]"; + mes "When will my legs recover, when?!"; + mes "They should be better soon, so that I can work like before..."; + mes "But I can hardly move."; + if (ma_tomas < 8) + close; + next; + mes "[Rican]"; + mes "All I can do is press the button all day long~"; + mes "This is not exciting at all~"; + mes "I'm not willing to do anything more and more~ Doobie dooba~"; + emotion e_yawn; + next; + select("Excuse me. Is this Rican's house?"); + mes "[Rican]"; + mes "Huh?"; + mes "Who are you!"; + mes "I am Rican!"; + mes "It's good to see you, since I'm so bored now..."; + mes "Tell me what's happening right now! Now!"; + emotion e_omg; + next; + select("Ask about Yggdrasil Berry."); + mes "[Rican]"; + mes "Yggdrasil Berry?"; + mes "You... you know something!"; + mes "Umm, hahaha!"; + mes "Only a few cats know about Yggdrasil Berry!"; + emotion e_flash; + next; + mes "[Rican]"; + mes "Well, before I traded them with human beings like you, Yggdrasil Berry was not thought to be a very remarkable fruit."; + next; + mes "[Rican]"; + mes "It used to be spread out here and there in my old town. It doesn't have a good taste and causes indigestion, mew~"; + mes "Cats need to eat fishes, naturally."; + emotion e_slur; + next; + mes "[Rican]"; + mes "But if human beings eat this, it gets you fully recharged."; + next; + mes "[Rican]"; + mes "At first, I'd never thought it could be sold at all!"; + next; + mes "[Rican]"; + mes "Khhh~"; + mes "It was just awesome at that time..."; + next; + mes "[Rican]"; + mes "Very long ago..."; + mes "Our group left the town for a new course to trade."; + emotion e_shy; + next; + mes "[Rican]"; + mes "Actually, we dominated the areas around our town, and it was like a challenge to find unexplored areas."; + next; + mes "[Rican]"; + mes "But discovering the unknown is the romance of a man, isn't it?"; + emotion e_awsm; + next; + mes "[Rican]"; + mes "Well, the beginning was quite nice, anyway."; + mes "After a month or two floating on the sea..."; + next; + mes "[Rican]"; + mes "The sea has enough fishes in it, but it made me bored. I wanted to eat seasoning, like radish with chicken the most."; + emotion e_rice; + next; + mes "[Rican]"; + mes "Though we drifted for a very long time, we couldn't land on any island. Rather, we met storms."; + next; + mes "[Rican]"; + mes "It was my first time seeing such a harsh tornado."; + mes "At that time I was out of my mind and thought I would die."; + next; + mes "[Rican]"; + mes "I don't know the about the other ships, but this ship Navi luckily landed here in this island."; + next; + mes "[Rican]"; + mes "Khhh khhh!"; + mes "Can you believe it?"; + mes "^0000FFThat enormous ship just flied, vroom~~ like an airship and was dropped here in the middle of this island!^000000"; + emotion e_omg; + next; + mes "[Rican]"; + mes "Anyhow, I survived, but most of the goods in the ship were swept and we were left with only Yggdrasil Berry."; + next; + mes "[Rican]"; + mes "Huh? Why did we load them, if we don't eat them?"; + mes "It... it's the secret..."; + emotion e_swt; + next; + mes "[Rican]"; + mes "Well, it's not important. As we sent reconnaissance groups there, we found out that there's a land where the other kind lives, not like us."; + mes "That was the land of you, human beings."; + next; + mes "[Rican]"; + mes "Regardless of the process, we found the new area to trade as we had first intended... we still have a small problem of not knowing how to get back to our howmetown yet..."; + next; + mes "[Rican]"; + mes "We cats started selling with powerful viability."; + mes "But we had only Yggdrasil Berry, right?"; + mes "We sold it with no high expectations, but could sell like hot cakes."; + next; + mes "[Rican]"; + mes "As rumors went, it was sold at very high prices among human beings and had a remarkable effect on them."; + mes "So we finally settled down to sell Yggdrasil Berry with growing profits."; + next; + mes "[Rican]"; + mes "But we are selling the dried kind, which is ^0000FFa bit different from what human being originally know, and less effective, and hard to eat raw^000000."; + next; + mes "[Rican]"; + mes "Since it disappears as we prepare, it's definately the best for our group."; + emotion e_pat; + next; + mes "[Rican]"; + mes "By the way, as I got injured in this important season, it harms my credibility if I don't meet the deadline to deliver the amount ordered!"; + mes "Trading is credibility!!!"; + emotion e_omg; + next; + mes "[Rican]"; + mes "For this reason, would you like to help me?"; + mes "Though my son is helping me, the amount we can prepare is not enough."; + next; + switch(select("I'll help him.:I won't.")) { + case 1: + mes "[Rican]"; + mes "Khhh!"; + mes "I had a good impression of you from the first time!"; + next; + mes "[Rican]"; + mes "Harvesting Yggdrasil Berry is very easy."; + mes "You can get it when you just dig the ground, mew~"; + emotion e_omg,1; + next; + select("?!"); + mes "[Rican]"; + mes "Huh?"; + mes "Doesn't it originally come from the ground?"; + emotion e_omg,1; + next; + select("Doesn't it grow on trees?"); + mes "[Rican]"; + mes "Well, the Yggdrasil Berry in Midgard could do so."; + mes "But ^6666ccwe dig our Yggdrasil Berry here from the ground^000000."; + emotion e_omg,1; + next; + mes "[Rican]"; + mes "You can get it on Malangdo Island easily. Bring me about 30."; + mes "Ah! Keep the secret to my son for sure~"; + mes "Then please^ff99cc!!!^000000 please^ff99cc!!!^000000 please~~~"; + emotion e_kis; + set ma_tomas,9; + changequest 11216,11217; + close; + case 2: + mes "[Rican]"; + mes "Oh? Then it's okay, if you can't help it."; + mes "My injured leg feels so bad... -groaning-"; + close; + } + } else if (ma_tomas == 9) { + if (countitem(6435) < 30) { + mes "[Rican]"; + mes "You can get it on Malangdo Island easily. Bring me about 30."; + mes "Ah! Keep the secret to my son for sure~"; + mes "Then please^ff99cc!!!^000000 please^ff99cc!!!^000000 please~~~"; + emotion e_kis; + close; + } + mes "[Rican]"; + mes "Oh, oh!!"; + mes "This fresh smell!!!"; + mes "Haaa~ How fresh, good job!"; + mes "You're good at harvesting Yggdrasil Berry?"; + next; + mes "[Rican]"; + mes "Then would you put it in the machine in front of me?"; + set ma_tomas,10; + changequest 11217,11218; + close; + } else if (ma_tomas == 10) { + mes "[Rican]"; + mes "Oh, oh!!"; + mes "This fresh smell!!!"; + mes "Haaa~ How fresh, good job!"; + mes "You're good at harvesting Yggdrasil Berry?"; + next; + mes "[Rican]"; + mes "Then would you put it in the machine in front of me?"; + close; + } else if (ma_tomas == 11) { + if (checkweight(1201,1) == 0) { + mes " - Notice !! -"; + mes " - Since you have too many items - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (MaxWeight - Weight < 1000) { + mes " - Notice !! -"; + mes " - Since your items are too heavy - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + mes "[Rican]"; + mes "Hoo hoo~ I feel at ease thanks to your help."; + mes "I had doubted if it was too much suddenly, but it turned out just right!"; + next; + mes "[Rican]"; + mes "By the way, no news from my son yet, as he said he went to a meeting."; + mes "I hope he's not bothering Dr. Mali again..."; + next; + mes "[Rican]"; + mes "He seems to have visited Dr. Mali more often since my legs got injured."; + mes "The study will get longer if he does so..."; + next; + mes "[Rican]"; + mes "If you see my son, please tell him to get back soon~"; + mes "And this is for you to buy something delicious with, since you did hard work."; + set ma_tomas,12; + getitem 6422,20; //Egrade_Coin + changequest 11219,11220; + setquest 11239; + close; + } else if (ma_tomas == 12) { + mes "[Rican]"; + mes "He seems to have visited Dr. Mali more often since my legs got injured."; + mes "The study will get longer if he does so..."; + mes "If you see my son, please tell him to get back soon~"; + close; + } else if (ma_tomas > 99) { + if (checkquest(11238,PLAYTIME) == 0 || checkquest(11238,PLAYTIME) == 1) { + if (countitem(6435) < 30) { + mes "[Rican]"; + mes "You need exactly 30 to get a set!"; + close; + } + mes "[Rican]"; + mes "Very reliable!"; + mes "Don't you want to do your business with Yggdrasil Berry?"; + delitem 6435,30; //Fresh_Fruit + erasequest 11238; + setquest 11239; + getitem 6422,5; //Egrade_Coin + close; + } else if (checkquest(11239,PLAYTIME) == 0 || checkquest(11239,PLAYTIME) == 1) { + mes "[Rican]"; + mes "Would you like to take a rest for a while?"; + mes "It hasn't been a day yet since you last worked~"; + close; + } else { + if (checkquest(11239,PLAYTIME) == 2) + erasequest 11239; + mes "[Rican]"; + mes "Hehe~"; + mes "You came here to help me again?"; + mes "You're so faithful!"; + next; + switch(select("I'll help.:I won't.")) { + case 1: + mes "[Rican]"; + mes "It's the same task to do as before."; + mes "30 Yggdrasil Berry. You can easily find it in Malangdo!!"; + mes "Ah! Keep the secret to my son for sure~"; + mes "Then please^ff99cc!!!^000000 please^ff99cc!!!^000000 please~~~"; + emotion e_kis; + setquest 11238; + close; + case 2: + mes "[Rican]"; + mes "Yeah? Then play around here, since you are visiting~"; + close; + } + } + } + mes "[Rican]"; + mes "Woo waa hoohoo..."; + mes "Woowaa ahhh ahh ahh..."; + mes "I'm impatient... to stay home like this!!"; + next; + mes "[Rican]"; + mes "All I can do is press the button all day long~"; + mes "This is not exciting at all~"; + mes "I'm not willing to do anything more and more~ Doobie dooba~"; + close; +} + +mal_in01,116,168,0 script Dry Machine#mal 563,{ + if (ma_tomas == 10) { + if (countitem(6435) < 30) { + mes "[Rican]"; + mes "You need exactly 30 to get a set!"; + close; + } + switch(select("Put the fruits in.:Don't.")) { + case 1: + mes "[Rican]"; + mes "I'll press the button by myself!!!"; + emotion e_omg,0,"Rican#mal"; + next; + mes "- The machine starts operating -"; + mes "- when he presses the button. -"; + delitem 6435,30; //Fresh_Fruit + set ma_tomas,11; + changequest 11218,11219; + close; + case 2: + mes "[Rican]"; + mes "Ah... you won't put it in?"; + close; + } + } + mes "- Drrrk Drrrk -"; + close; +} + +- script Suspicious Sand Pile#0 -1,{ + if (.off) end; // Official script uses a 1-second timer to disable sand piles. Added to prevent abuse. + if (checkweight(1201,1) == 0) { + mes " - Notice !! -"; + mes " - Since you have too many items - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (MaxWeight - Weight < 1000) { + mes " - Notice !! -"; + mes " - Since your items are too heavy - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (ma_tomas == 9 || checkquest(11238) > -1) { + if (rand(1,5) == 4) { + mes "- As I put my hand in the sand -"; + mes "- a fresh smell comes out. -"; + getitem 6435,1; //Fresh_Fruit + } else { + mes "- As I put my hand in the sand -"; + mes "- I feel like I'm touching -"; + mes "- something bad. -"; + mes "- Ah, ah! Feels bad... -"; + emotion e_omg,1; + } + set .off,1; + donpcevent "Water Sand"+strnpcinfo(2)+"#mal::OnEnable"; + close; + } + mes "- Seeems suspicious. -"; + mes "- But it's just sand... -"; + close; +OnEnable: + enablenpc strnpcinfo(0); + end; +OnDisable: + set .off,0; + disablenpc strnpcinfo(0); + end; +} +malangdo,221,139,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#1 557 +malangdo,208,174,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#2 557 +malangdo,191,223,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#3 557 +malangdo,150,195,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#4 557 +malangdo,116,196,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#5 557 +malangdo,178,145,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#6 557 +malangdo,142,120,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#7 557 +malangdo,136,122,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#8 557 +malangdo,152,143,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#9 557 +malangdo,242,175,0 duplicate(Suspicious Sand Pile#0) Suspicious Sand Pile#10 557 + +- script Water Sand0#mal -1,{ +OnInit: + disablenpc strnpcinfo(0); + end; +OnEnable: + enablenpc strnpcinfo(0); + initnpctimer; + end; +OnDisable: + stopnpctimer; + disablenpc strnpcinfo(0); + end; +OnTimer1000: + donpcevent "Suspicious Sand Pile#"+substr(strnpcinfo(1),10,getstrlen(strnpcinfo(1))-1)+"::OnDisable"; + end; +OnTimer30000: + donpcevent "Suspicious Sand Pile#"+substr(strnpcinfo(1),10,getstrlen(strnpcinfo(1))-1)+"::OnEnable"; + donpcevent strnpcinfo(0)+"::OnDisable"; + end; +} +- duplicate(Water Sand0#mal) Water Sand1#mal -1 +- duplicate(Water Sand0#mal) Water Sand2#mal -1 +- duplicate(Water Sand0#mal) Water Sand3#mal -1 +- duplicate(Water Sand0#mal) Water Sand4#mal -1 +- duplicate(Water Sand0#mal) Water Sand5#mal -1 +- duplicate(Water Sand0#mal) Water Sand6#mal -1 +- duplicate(Water Sand0#mal) Water Sand7#mal -1 +- duplicate(Water Sand0#mal) Water Sand8#mal -1 +- duplicate(Water Sand0#mal) Water Sand9#mal -1 +- duplicate(Water Sand0#mal) Water Sand10#mal -1 + +mal_dun01,136,120,6 script Linguist Devore#mald 549,{ + end; +OnInit: + disablenpc "Linguist Devore#mald"; + end; +OnEnable: + enablenpc "Linguist Devore#mald"; + initnpctimer; + end; +OnDisable: + stopnpctimer; + disablenpc "Linguist Devore#mald"; + end; +OnTimer100000: + donpcevent "Linguist Devore#mald::OnDisable"; + end; +} + +mal_dun01,136,122,3 script Biscuit#mal 551,{ + if (ma_tomas < 20) { + mes "- There's something strange. -"; + mes "- It feels like somehow - "; + mes "- you shouldn't make eye contact. -"; + close; + } else if (ma_tomas == 20) { + mes "[Biscuit]"; + mes "Star Candy sacrifices herself like this, but those fellows are setting the pillars around her for themselves only."; + mes "Hewww!!!"; + emotion e_ag; + next; + mes "[Biscuit]"; + mes "They talk to her, but ignore me when I talk to her."; + mes "I don't like them at all!!!"; + emotion e_ag; + next; + mes "- Unlike the words of Dr. Devore, Biscuit appears fluent in speaking. -"; + next; + mes "- I think it's better to let Dr. Devore know this soon. -"; + close; + } else if (ma_tomas == 21) { + mes "[Biscuit]"; + mes "Umm?"; + mes "What's this?"; + mes "Do you have anything to tell me?"; + next; + mes "[Biscuit]"; + mes "Well, that fellow is often the one ignoring my words."; + mes "He wavers with words to say and makes me uncomfortable."; + next; + mes "["+strcharinfo(0)+"]"; + mes "Did you hear? Dr. Devore?"; + donpcevent "Linguist Devore#mald::OnEnable"; + next; + mes "[Linguist Devore]"; + mes "Ummm? What do you mean?"; + mes "I cannot hear anything."; + emotion e_what,0,"Linguist Devore#mald"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Huh? Biscuit said 'Well, that fellow is often the one ignoring my words. He wavers with words to say and makes me uncomfortable.'?"; + next; + mes "[Linguist Devore]"; + mes "What? What are you taling about?"; + mes "I cannot hear anything."; + emotion e_what,0,"Linguist Devore#mald"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Huh?"; + emotion e_what,1; + next; + mes "[Linguist Devore]"; + mes "Ah?!"; + mes "Ah?!?!?!?!?!?"; + mes "Ah!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"; + emotion e_omg,0,"Linguist Devore#mald"; + next; + mes "[Linguist Devore]"; + mes "If... if that's the cause!"; + mes "We may have totally misunderstood!"; + emotion e_omg,0,"Linguist Devore#mald"; + next; + mes "[Linguist Devore]"; + mes "Oh my, we couldn't have known, since we live here only with ourselves."; + next; + mes "[Linguist Devore]"; + mes "Each living thing has its own area for audibility and vocalization. But we and Biscuit were in slightly different areas!"; + emotion e_omg,0,"Linguist Devore#mald"; + next; + mes "[Linguist Devore]"; + mes "In such conditions, we cannot hear any language properly!"; + mes "This was a matter of sound rather than language..."; + next; + mes "[Linguist Devore]"; + mes "Hu~hu... Despite of many years of study, we couldn't discover this reason..."; + next; + mes "[Linguist Devore]"; + mes "It's not the time to do this!"; + mes "I should change the way of studying right now."; + next; + mes "[Linguist Devore]"; + mes "I'll get back to the meeting and report this."; + mes "Then please take care of the next things!"; + next; + mes "["+strcharinfo(0)+"]"; + mes "Wait, Dr. Devore, what on earth is next...?"; + mes "What should I do...?"; + emotion e_dots,1; + next; + mes "[Linguist Devore]"; + mes "Hahaha~ You are the kind who can have conversations with Biscuit. Please try to talk with him."; + mes "It'll be helpful for my study, no matter what you talk about with him."; + next; + mes "[Biscuit]"; + mes "Hey... Don't look down on me!"; + emotion e_ag; + donpcevent "Linguist Devore#mald::OnDisable"; + set ma_tomas,22; + completequest 11228; + setquest 11229; + close; + } else if (ma_tomas == 22 || ma_tomas == 23 || ma_tomas == 24) { + mes "[Biscuit]"; + mes "...What are you looking at..."; + next; + while(1) { + switch(select("Ask about Star Candy.:Ask about Biscuit.:Ask about Malangdo.")) { + case 1: + mes "[Biscuit]"; + mes "Star Candy?"; + mes "Tsk tsk!"; + mes "It's no go, the lowly fellows."; + emotion e_ag; + next; + mes "[Biscuit]"; + mes "You shouldn've recognized the previous and mysterious feeling from Star Candy!"; + mes "She's the one who's really gorgeous."; + next; + mes "[Biscuit]"; + mes "How gorgeous she is that... umm..."; + mes "Just gorgeous."; + mes "She is so gorgeous... but I don't know how to explaing it..."; + emotion e_swt2; + next; + mes "[Biscuit]"; + mes "Khummm..."; + mes "That's why the kinds speaking with sound are irritating."; + emotion e_ag; + next; + select("Speaking with sound?"); + mes "[Biscuit]"; + mes "The kind who got highly evolved like us talk using our minds, not sound."; + mes "As you think in your mind, it goes to the others right away, something like this?"; + next; + mes "[Biscuit]"; + mes "In other places, it used to be called ultrasonic waves, or telepathy."; + next; + mes "[Biscuit]"; + mes "So we haven't needed any more explanation or flowery words..."; + mes "Woo, it's bothering me so much!"; + if (ma_tomas == 22) + set ma_tomas,23; + if (ma_tomas == 25) + close; + next; + case 2: + mes "[Biscuit]"; + mes "Me?"; + mes "I'm an assistant to Star Candy, a new star in the Starfish race with multi-faceted talents!"; + emotion e_flash; + next; + mes "[Biscuit]"; + mes "Ah, ah..."; + mes "When I was her assistant at first, I used to be called a genius, handsome assistant, and so on..."; + mes "I felt like a shining road of light had come up to me..."; + next; + mes "[Biscuit]"; + mes "But if the elderly see this, they'll dry me out in the sun..."; + mes "It was a life like a flame... Sob sob sob sob"; + emotion e_sob; + if (ma_tomas == 23) + set ma_tomas,24; + if (ma_tomas == 25) + close; + next; + case 3: + mes "[Biscuit]"; + mes "This island is where the gorgeous Star Candy can take a rest."; + mes "The surface is soft and with the high moisture inside, it's the best place for Starfishes."; + next; + mes "[Biscuit]"; + mes "Now, those cats already occupied it as they wanted."; + mes "It's a problem because Star Candy is too kind..."; + if (ma_tomas == 24) { + set ma_tomas,25; + changequest 11229,11230; + } + if (ma_tomas == 25) + close; + next; + } + } + } else if (ma_tomas == 25) { + mes "[Biscuit]"; + mes "Hey, you haven't gone back?"; + mes "Get some jellies for Star Candy to eat if you have time."; + next; + switch(select("Okay.:Why me?")) { + case 1: + mes "[Biscuit]"; + mes "You can get the jellies around here."; + mes "It's not that difficult, and you should come back before Star Candy's meal time!"; + mes "About 30 jellies would be okay for a meal."; + set ma_tomas,26; + changequest 11230,11231; + close; + case 2: + mes "[Biscuit]"; + mes "Why you?"; + mes "I'm busy enough to assist her and the cat fellows who can't hear my voice, that's why I should ask you."; + next; + mes "[Biscuit]"; + mes "How rude..."; + emotion e_ag; + next; + mes "[Biscuit]"; + mes "You're not my subordinate, so I can't order you by force. But if Star Candy can't have her meal on time, you have to remember that this island will collapse completely."; + next; + mes "["+strcharinfo(0)+"]"; + mes "...It's not a request, but a threat..."; + emotion e_dots,1; + close; + } + } else if (ma_tomas == 26) { + // Dialogue in repeatable quest is identical. + // Uses a variable to determine the quest mode. + set @mal_bob_q,1; + L_Quest: + set .@i, @mal_bob_q; + set @mal_bob_q,0; + if (countitem(12624) < 30) { + mes "[Biscuit]"; + mes "It's not enough at all~"; + mes "I need at least 30 Delicious Jelly."; + close; + } + mes "[Biscuit]"; + mes "You got them well."; + mes "There won't be any problem to prepare her meal."; + delitem 12624,30; //Delicious_Jelly + if (.@i == 1) { + set ma_tomas,27; + changequest 11231,11232; + } else { + erasequest 11244; + setquest 11245; + getitem 6422,5; //Egrade_Coin + } + next; + mes "[Biscuit]"; + mes "Though the jelly looks strange, it tastes good..."; + mes "Star Candy seems to like it a lot as well."; + next; + mes "[Biscuit]"; + mes "Have your meal, Star Candy~"; + mes "Uhhh, why don't you eat it?"; + mes "You have no appetite?"; + close; + } else if (ma_tomas == 27) { + mes "[Biscuit]"; + mes "Hooo.. it's natural that you have no appetite..."; + next; + mes "[Biscuit]"; + mes "How come precious Star Candy supports the ground in the basement like this, and it's so dry, though it's in a subterranean cave of an island!"; + next; + mes "[Biscuit]"; + mes "Moreover, the slithery thing is bothering Star Candy."; + mes "You cannot avoid the stress."; + next; + select("Slithery thing?"); + mes "[Biscuit]"; + mes "Hmm? What is such a thing like that."; + mes "The slithery thing."; + mes "With its ugly looks, it bothers Star Candy continuously."; + next; + mes "[Biscuit]"; + mes "It tries to come up to the island especially when it's storming like today. I hid here a while. Those cats came and made her bad like this."; + next; + mes "[Biscuit]"; + mes "Thanks to Star Candy, her skin is..."; + mes "......"; + next; + mes "[Biscuit]"; + mes "Woooaaappp!"; + mes "What's this!!!"; + mes "Her skin is!!!!"; + mes "She got an abscess on her skin that used to shine like a jewel!!!!"; + emotion e_omg; + next; + mes "[Biscuit]"; + mes "She got in trouble with her dried skin, since she's here!"; + mes "For our Starfishes, the lack of water means horrible things that lead to death!"; + next; + mes "[Biscuit]"; + mes "Ah, ah! She's so kind that she sacrifices herself to save such things. Sob sob."; + emotion e_sob; + next; + mes "[Biscuit]"; + mes "Ah, ah..."; + mes "I can't leave to take care of her, isn't there anybody to help~"; + next; + mes "[Biscuit]"; + mes "Isn't there anybody to helpppppp~"; + next; + mes "[Biscuit]"; + mes "Hey, you there..."; + mes "Even as I ask like this, will you just ignore me and stand there?"; + next; + select("I'll help.:It's unavoidable, so I'll help.:I'll admit this is my destiny, so I'll and help.:I'll do anything I can for Star Candy."); + mes "[Biscuit]"; + mes "Good attitude!"; + mes "Hoo hoo~"; + next; + mes "[Biscuit]"; + mes "Then please find the brush to wash her and get a basket to move water here."; + mes "Maybe they're stacked in the storage."; + set ma_tomas,28; + changequest 11232,11233; + close; + } else if (ma_tomas == 28) { + if (countitem(6433) && countitem(6432)) { + mes "[Biscuit]"; + mes "Oh!"; + mes "You brought the tools successfully."; + mes "Now you can wash the dry skin in the counter-clockwise direction!"; + mes "Right, then from her left leg...!"; + set ma_tomas,29; + changequest 11233,11234; + close; + } else if (countitem(6433) && countitem(6431)) { + mes "[Biscuit]"; + mes "Oh!"; + mes "You brought the tools successfully."; + mes "Now you can fetch sea water from outside."; + next; + mes "[Biscuit]"; + mes "There's a spot I remember as first rate, in the east of Malangdo."; + mes "It's not right to wash her with the water collected in this cave!"; + next; + mes "[Biscuit]"; + mes "Be careful not to spill the water, as it's heavy to carry."; + close; + } else { + mes "[Biscuit]"; + mes "Ummm... It will be hard if you don't have the proper tools..."; + mes "Though it doesn't matter for someone small like me."; + next; + mes "[Biscuit]"; + mes "For such enormous skin as Star Candy's, it's full of barnacles, oysters, and mussels!!!"; + emotion e_omg; + close; + } + } else if (ma_tomas < 33) { + mes "[Biscuit]"; + mes "Oh!"; + mes "You brought the tools successfully."; + mes "Now you can wash the dry skin in the counter-clockwise direction!"; + mes "Right, then from her left leg...!"; + close; + } else if (ma_tomas == 33) { + if (checkweight(1201,1) == 0) { + mes " - Notice !! -"; + mes " - Since you have too many items - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (MaxWeight - Weight < 1000) { + mes " - Notice !! -"; + mes " - Since your items are too heavy - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + mes "[Biscuit]"; + mes "Well done!"; + mes "Now I see that her beautiful face has recovered."; + emotion e_awsm; + next; + mes "[Biscuit]"; + mes "The skin will go bad if you don't clean it every day."; + mes "There's a saying... cleansing your skin is much more important than using makeup."; + emotion e_no1; + next; + mes "[Biscuit]"; + mes "You did a good job."; + mes "You helped me even though I asked suddenly like this..."; + mes "To be honest, I thought you'd just leave."; + next; + mes "[Biscuit]"; + mes "It's a kind of reward. Say my words to Dr. Dvor... or Devore, whatever the cat's name is."; + next; + mes "[Biscuit]"; + mes "There's no need to wait until the study finishes. We can talk through you, and it's better to talk about the current situation..."; + next; + mes "[Biscuit]"; + mes "This is not for you... and all of you, either. It's rather for Star Candy to get rest as soon as possible, you know!"; + emotion e_pif; + set ma_tomas,34; + erasequest 11235; + setquest 11236; + getitem 6422,100; //Egrade_Coin + getitem 12636,20; //Malang_Sp_Can + close; + } else if (ma_tomas > 99) { + if (checkquest(11244) > -1) { + set @mal_bob_q,2; + goto L_Quest; + } else if (checkquest(11245,PLAYTIME) == 0 || checkquest(11245,PLAYTIME) == 1) { + mes "[Biscuit]"; + mes "I'll call you when I need you, so don't worry!"; + close; + } else { + if (checkquest(11245,PLAYTIME) == 2) + erasequest 11245; + mes "[Biscuit]"; + mes "It's the time for Star Candy to have a meal."; + mes "Get some jellies."; + next; + switch(select("I'll help.:I'll stop.")) { + case 1: + mes "[Biscuit]"; + mes "You can get the jellies around here."; + mes "It's not that difficult, and you should come back before Star Candy's meal time!"; + mes "About 30 jellies would be ok for a meal."; + setquest 11244; + close; + case 2: + mes "[Biscuit]"; + mes "What, are you talking about you let our Star Candy feel hungry?!"; + close; + } + } + } + mes "[Biscuit]"; + mes "Star Candy is really good."; + mes "She never loses her smile, even though it's so hard to stand..."; + close; +} + +mal_in02,102,94,3 script Cleaning Staff#mal 544,2,2,{ +OnTouch: + if (checkweight(1201,1) == 0) { + mes " - Notice !! -"; + mes " - Since you have too many items - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (MaxWeight - Weight < 1000) { + mes " - Notice !! -"; + mes " - Since your items are too heavy - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + mes "[Cleaning Staff]"; + mes "All yours. There are various cleaning tools here."; + next; + switch(select("Bucket:Cleaning Brush:Stop.")) { + case 1: + mes "[Cleaning Staff]"; + mes "You mean the Bucket!"; + mes "Here we go~"; + next; + mes "[Cleaning Staff]"; + mes "Please give the cleaning tool back to any merchant."; + mes "Thanks for coming~"; + getitem 6431,1; //Bucket + close; + case 2: + mes "[Cleaning Staff]"; + mes "You mean the Cleaning Brush!"; + mes "Here we go~"; + next; + mes "[Cleaning Staff]"; + mes "Please give the cleaning tool back to any merchant."; + mes "Thanks for coming~"; + getitem 6433,1; //Clean_Brush + close; + case 3: + mes "[Cleaning Staff]"; + mes "Thanks for coming~"; + close; + } + close; +} + +malangdo,246,184,0 script 1st Rate Point 111,{ + if (checkweight(1201,1) == 0) { + mes " - Notice !! -"; + mes " - Since you have too many items - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (MaxWeight - Weight < 1000) { + mes " - Notice !! -"; + mes " - Since your items are too heavy - "; + mes " - you cannot get the item. - "; + mes " - Let your body lighten - "; + mes " - and try this again. - "; + close; + } + if (countitem(6431) == 0) { + mes "- To get water -"; + mes "- you need a ^0000FFBucket^000000. -"; + close; + } + mes "- The water seems so pure. -"; + next; + switch(select("Get water.:Stop.")) { + case 1: + mes "- The bucket gets remarkably -"; + mes "- heavy as water fills it up. -"; + specialeffect EF_POTION8; + delitem 6431,1; //Bucket + getitem 6432,1; //Full_Bucket + close; + case 2: + mes "- Didn't get water. -"; + close; + } +} + +mal_dun01,133,125,5 script Star Candy#mal 552,{ + if (ma_tomas == 19) { + mes "[Star Candy]"; + mes "...."; + mes "....."; + mes "......"; + next; + mes "[Biscuit]"; + mes "Rude! How come you talk to precious Star Candy!"; + next; + mes "[Biscuit]"; + mes "You look different from the fellows that usually comes..."; + mes "You also look strange, though."; + next; + mes "["+strcharinfo(0)+"]"; + mes "?!"; + mes "You can talk!"; + emotion e_omg,1; + next; + mes "[Biscuit]"; + mes "What?"; + mes "You've never seen me talking?"; + mes "What's the matter with you?"; + next; + mes "[Biscuit]"; + mes "Since I can talk with you, you seem better than those other foolish ones."; + mes "Though I learned to speak in their language, they don't understand."; + next; + mes "[Biscuit]"; + mes "Our precious Star Candy humbly supports them, and they treat her like this."; + mes "They don't know how to express thanks!"; + emotion e_ag,0,"Biscuit#mal"; + next; + select("Support?"); + mes "[Biscuit]"; + mes "Anyway!"; + mes "It's no use to treat them well."; + mes "They don't know how hard Star Candy is trying."; + next; + mes "[Biscuit]"; + mes "This island used to be hers, but for the short time while she avoided storms and got here, those cats were suddenly dropped on the island."; + next; + mes "[Biscuit]"; + mes "Since the ground here is so soft, Star Candy was stuck in between, and the situation is now like this."; + next; + mes "[Biscuit]"; + mes "Actually, she can get out regardless of those bad things, but she supports the ground worrying that someone will get hurt."; + next; + mes "[Biscuit]"; + mes "Ah, ah..."; + mes "What a beatiful mind..."; + next; + mes "[Biscuit]"; + mes "Once she moved a bit when she felt uncomfortable, and saw them in panic. She hasn't moved at all since then. I'm worried if she's not well."; + next; + mes "[Biscuit]"; + mes "Star Candy sacrifices herself like this, but those fellows are setting the pillars around her for themselves only."; + mes "Hewww!!!"; + emotion e_ag,0,"Biscuit#mal"; + next; + mes "[Biscuit]"; + mes "They talk to her, but ignore me when I talk to her."; + mes "I don't like them at all!!!"; + next; + mes "- Unlike the words of Dr. Devore, Biscuit appears fluent in speaking. -"; + next; + mes "- I think it's better to let Dr. Devore know this soon. -"; + set ma_tomas,20; + changequest 11226,11227; + close; + } + mes "[Star Candy]"; + mes "...."; + mes "....."; + mes "......"; + close; +} + +- script #skin_mal -1,{ + set .@index, atoi(strnpcinfo(2)); + switch(.@index) { + case 29: set .@str$,"dry"; break; + case 30: set .@str$,"prickly"; break; + case 31: set .@str$,"chapped"; break; + case 32: set .@str$,"hard"; break; + default: + mes "An error has occurred."; + close; + } + if (ma_tomas != .@index) { + mes "- I feel sorry for the skin -"; + mes "- to be so "+.@str$+". -"; + close; + } + if (!countitem(6433) || !countitem(6432)) { + mes "- You need -"; + mes "- a cleaning brush -"; + mes "- and a full bucket. -"; + close; + } + mes "- Poured water on the "+.@str$+" skin. -"; + delitem 6432,1; //Full_Bucket + getitem 6431,1; //Bucket + next; + if (rand(1,2) == 1) + set .@menu$,"Brush.:Stop.:"; + else + set .@menu$,":Stop.:Brush."; + switch(select(.@menu$)) { + case 1: + case 3: + mes "- Poured water on -"; + mes "- the "+.@str$+" skin -"; + mes "- and brushed it hard. -"; + specialeffect EF_BUBBLE; + if (rand(1,3) > 1) + close; + next; + mes "- The "+.@str$+" skin turned -"; + mes "- soft and moisturized. -"; + switch(rand(1,50)) { + case 7: + next; + mes "[Star Candy]"; + mes "Hoo hoo hoot~"; + mes "That tickles."; + break; + case 21: + next; + mes "[Star Candy]"; + mes "You're a really good human being."; + break; + case 29: + next; + mes "[Star Candy]"; + mes "Since I couldn't move, it was the most difficult thing to stand."; + break; + case 30: + next; + mes "[Star Candy]"; + mes "Ah~ Feels good~"; + mes "I felt itchy for so long."; + break; + case 49: + next; + mes "[Star Candy]"; + mes "Thanks so much."; + break; + default: + set ma_tomas, ma_tomas+1; + if (.@index == 32) + changequest 11234,11235; + close; + } + cutin "ma_starcandy",2; + set ma_tomas, ma_tomas+1; + if (.@index == 32) + changequest 11234,11235; + close2; + cutin "",255; + end; + case 2: + mes "- All the water -"; + mes "- sank into the ground. -"; + close; + } +} +mal_dun01,143,137,0 duplicate(#skin_mal) Dry Skin#29 111 +mal_dun01,131,150,0 duplicate(#skin_mal) Prickly Skin#30 111 +mal_dun01,116,144,0 duplicate(#skin_mal) Chapped Skin#31 111 +mal_dun01,120,129,0 duplicate(#skin_mal) Hard Skin#32 111 + +malangdo,190,167,7 script Portali#mal 546,{ + if (ma_tomas < 100) { + mes "[Portali]"; + mes "I have no business for a immature fellow!"; + close; + } + mes "[Portali]"; + mes "Hmmm..."; + mes "You smell like cats even though you're a human being..."; + next; + mes "[Portali]"; + mes "But... Would you like to go back to my hometown?"; + mes "I'll let you go to the land of Midgard with the new skill I found!"; + mes "It's not free. I'll need canned food!"; + next; + switch(select("Go.:Don't go.:Prices?")) { + case 1: + if (countitem(12636) < 4) { + mes "[Portali]"; + mes "Where are you going without canned food...?"; + close; + } + switch(select("Rune-Midgarts:Schwaltzvalt Republic:Arunafeltz Kingdom")) { + case 1: + switch(select("Prontera:Morroc:Alberta:Al De Baran:Payon:Geffen")) { + case 1: callsub L_Warp,"Prontera",4,"prontera",155,111; + case 2: callsub L_Warp,"Morroc",4,"morocc",159,255; + case 3: callsub L_Warp,"Alberta",4,"alberta",95,66; + case 4: callsub L_Warp,"Al De Baran",4,"aldebaran",126,120; + case 5: callsub L_Warp,"Payon",4,"payon",198,135; + case 6: callsub L_Warp,"Geffen",4,"geffen",120,100; + } + case 2: + switch(select("Einbroch:Lighthalzen:Yuno:Hugel")) { + case 1: callsub L_Warp,"Einbroch",6,"einbroch",229,196; + case 2: callsub L_Warp,"Lighthalzen",6,"lighthalzen",214,150; + case 3: callsub L_Warp,"Yuno",6,"yuno",157,220; + case 4: callsub L_Warp,"Hugel",6,"hugel",95,121; + } + case 3: + switch(select("Rachel:Veins")) { + case 1: callsub L_Warp,"Rachel",5,"rachel",138,113; + case 2: callsub L_Warp,"Veins",5,"veins",212,144; + } + } + case 2: + mes "[Portali]"; + mes "Okay..."; + close; + case 3: + mes "[Portali]"; + mes "3 for Rune-Midgarts!"; + mes "6 for Schwaltzvalt, 5 for Arunafeltz."; + mes "Schwaltzvalt is the nation of prohibited magic, and Arunafeltz seems to have a curse!"; + close; + } + end; +L_Warp: + if (countitem(12636) < getarg(1)) { + mes "[Portali]"; + mes "Where are you going without canned food...?"; + close; + } + mes "[Portali]"; + mes "Then to "+getarg(0)+"~"; + delitem 12636,getarg(1); //Malang_Sp_Can + close2; + warp getarg(2),getarg(3),getarg(4); + end; +} + +// Malangdo Island :: 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? But I need to do 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, but 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_ss2$, "Remaining " + (30-countitem(6451)) + " of ^bbbbbbUnidentified Fish are required.^000000"; + if (ma_tomas == 100) + set .@fish_ss3$, "I met an Admiral Tomas..."; + 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 heart beating as I stand here."; + next; + select("Of course, after seeing such a delicious thing!"); + mes "[Pipielle]"; + mes "How come you only know about eating?! My heart doesn't beat up because I see something delicious. Don't treat me the same as the others."; + next; + mes "[Pipielle]"; + mes "I used to study from a scholar from Uno who was human. And I am good at the human language as well. Don't treat me like the others."; + next; + mes "[Pipielle]"; + mes "I am a scholar who researches fish here. It's a little funny that a cat researches fish, but it's true."; + next; + select("Were you originally a scholar?"); + mes "[Pipielle]"; + mes "Originally I used to be the mate of admiral Tomas. But our ship never went back to sea after we arrived here."; + next; + mes "[Pipielle]"; + mes "The mate of a ship that never voyages is lonely."; + next; + mes "[Pipielle]"; + mes "The scholar from Uno came here for research, and he thought it was amazing that cats spoke the human language. Therefore he started to teach me."; + next; + select("But now everyone speaks the human language."); + mes "[Pipielle]"; + mes "Oh yes, there were only a few cats who spoke the human language. That's why he treated me special."; + next; + mes "[Pipielle]"; + mes "Anyway, now I collect specimens to be an 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 the fishes in the Octopus and Culvert dungeons."; + next; + mes "[Pipielle]"; + mes "It didn't use to live there, but might have come here for the winter. Could you collect the specimens of unidentified fish after geting 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 the last one is out of stock now so I will just write your name here."; + next; + mes "[Pipielle]"; + mes "I can give you good news even from a 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 fish specimens."; + close; + case 3: + mes "[Pipielle]"; + mes "Oh, you met admiral Tomas... 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 Tomas. Can you take responsibility for 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 Tomas is a legendary figure who has led all of us in voyaging to this island. I think it was the 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 a small gift for looking after admiral Tomas."; + set ma_tomas,101; + getitem 6422,200; //Egrade_Coin + mes "^0000ffReceived 200 E Class Coins.^000000"; + close; + } +} + // Help the Bad Cats in Danger :: mal_bad_guys //============================================================ malangdo,175,206,3 script Gobonge#ml 561,{ @@ -703,131 +3231,6 @@ malangdo,3,1,3 script Guidance for quest#ml 543,{ } */ -// 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_ss2$, "Remaining " + (30-countitem(6451)) + " of ^bbbbbbUnidentified Fish are required.^000000"; - if (ma_tomas == 100) - set .@fish_ss3$, "I met an 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; - } -} - // Clean the Ship :: mal_day_qook //============================================================ mal_in02,76,63,7 script Cleanyang 544,{ -- cgit v1.2.3-60-g2f50 From 43ce3dbf3da829635869d6a7a9c6688bc0b133e3 Mon Sep 17 00:00:00 2001 From: lemongrass3110 Date: Mon, 8 Apr 2013 02:05:27 +0000 Subject: Speeded up jobchange command. Partially fixes bugreport:7453 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17235 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/atcommand.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 777d777a2..bc76859e9 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1001,14 +1001,24 @@ ACMD_FUNC(jobchange) nullpo_retr(-1, sd); if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) { - int i, found = 0; - - for (i = JOB_NOVICE; i < JOB_MAX; ++i) { - if (strncmpi(message, job_name(i), 16) == 0) { - job = i; - upper = 0; - found = 1; - break; + int i; + bool found = false; + + upper = 0; + + // Normal Jobs + for( i = JOB_NOVICE; i < JOB_MAX_BASIC && !found; i++ ){ + if (strncmpi(message, job_name(i), 16) == 0) { + job = i; + found = true; + } + } + + // High Jobs, Babys and Third + for( i = JOB_NOVICE_HIGH; i < JOB_MAX && !found; i++ ){ + if (strncmpi(message, job_name(i), 16) == 0) { + job = i; + found = true; } } -- cgit v1.2.3-60-g2f50 From 12963a5aa4e6e6cbf167d44ef6e509855f725282 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:42:07 -0300 Subject: Partial 09a7d4d217fb847c6853b7dd4c2cebe3868d4aff merge Signed-off-by: shennetsind --- src/map/status.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/map/status.c b/src/map/status.c index 482a9890d..29da8cfad 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2335,7 +2335,7 @@ int status_calc_pc_(struct map_session_data* sd, bool first) memset(&status->max_hp, 0, sizeof(struct status_data)-(sizeof(status->hp)+sizeof(status->sp))); //FIXME: Most of these stuff should be calculated once, but how do I fix the memset above to do that? [Skotlex] - if (!pc->state.permanent_speed) + if (!sd->state.permanent_speed) status->speed = DEFAULT_WALK_SPEED; //Give them all modes except these (useful for clones) status->mode = MD_MASK&~(MD_BOSS|MD_PLANT|MD_DETECTOR|MD_ANGRY|MD_TARGETWEAK); -- cgit v1.2.3-60-g2f50 From e1f41ae8fdac977851bfd090a6e266a0dda8ed29 Mon Sep 17 00:00:00 2001 From: lemongrass3110 Date: Wed, 10 Apr 2013 15:02:11 +0000 Subject: New NPC range now working. Sorry guys, back in my days it was as easy as this, but I did not test it. So now tested and working. :) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17246 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/npc.c | 12 ++++++++++-- src/map/npc.h | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/map/npc.c b/src/map/npc.c index 124446d62..5cca94a87 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -96,6 +96,7 @@ static DBMap *npc_path_db; //For holding the view data of npc classes. [Skotlex] static struct view_data npc_viewdb[MAX_NPC_CLASS]; +static struct view_data npc_viewdb2[MAX_NPC_CLASS2_END-MAX_NPC_CLASS2_START]; static struct script_event_s { //Holds pointers to the commonly executed scripts for speedup. [Skotlex] @@ -108,8 +109,13 @@ struct view_data* npc_get_viewdata(int class_) { //Returns the viewdata for normal npc classes. if( class_ == INVISIBLE_CLASS ) return &npc_viewdb[0]; - if (npcdb_checkid(class_) || class_ == WARP_CLASS) - return &npc_viewdb[class_]; + if (npcdb_checkid(class_) || class_ == WARP_CLASS){ + if( class_ > MAX_NPC_CLASS2_START ){ + return &npc_viewdb2[class_-MAX_NPC_CLASS2_START]; + }else{ + return &npc_viewdb[class_]; + } + } return NULL; } @@ -3994,6 +4000,8 @@ int do_init_npc(void) npc_viewdb[0].class_ = INVISIBLE_CLASS; //Invisible class is stored here. for( i = 1; i < MAX_NPC_CLASS; i++ ) npc_viewdb[i].class_ = i; + for( i = MAX_NPC_CLASS2_START; i < MAX_NPC_CLASS2_END; i++ ) + npc_viewdb2[i - MAX_NPC_CLASS2_START].class_ = i; ev_db = strdb_alloc((DBOptions)(DB_OPT_DUP_KEY|DB_OPT_RELEASE_DATA),2*NAME_LENGTH+2+1); npcname_db = strdb_alloc(DB_OPT_BASE,NAME_LENGTH); diff --git a/src/map/npc.h b/src/map/npc.h index c2351a836..229363191 100644 --- a/src/map/npc.h +++ b/src/map/npc.h @@ -88,7 +88,12 @@ enum actor_classes INVISIBLE_CLASS = 32767, }; +// Old NPC range #define MAX_NPC_CLASS 1000 +// New NPC range +#define MAX_NPC_CLASS2_START 10000 +#define MAX_NPC_CLASS2_END 10049 + //Checks if a given id is a valid npc id. [Skotlex] //Since new npcs are added all the time, the max valid value is the one before the first mob (Scorpion = 1001) #define npcdb_checkid(id) ( ( (id) >= 46 && (id) <= 125) || (id) == HIDDEN_WARP_CLASS || ( (id) > 400 && (id) < MAX_NPC_CLASS ) || (id) == INVISIBLE_CLASS || ( (id) > 10000 && (id) < 10049 ) ) -- cgit v1.2.3-60-g2f50 From dbb062c2f3657746a36feebc190c736ddcaa3881 Mon Sep 17 00:00:00 2001 From: euphyy Date: Mon, 4 Mar 2013 04:32:43 +0000 Subject: * Initial implementation of Malangdo Card Separation script. * Added and documented 'delequip' command, used in new official scripts. * Fixed issue in Guillotine Cross job quest where mobs did not properly reset (bugreport:7323). * Minor cleaning of script_commands.txt. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@17168 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/re/cities/malangdo.txt | 8 +- npc/re/merchants/card_separation.txt | 279 +++++++++++++++++++++++++++++++++++ npc/re/merchants/enchan_mal.txt | 29 ++-- src/map/script.c | 23 +++ 4 files changed, 317 insertions(+), 22 deletions(-) create mode 100644 npc/re/merchants/card_separation.txt diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt index 99d7e327d..e6732b754 100644 --- a/npc/re/cities/malangdo.txt +++ b/npc/re/cities/malangdo.txt @@ -180,9 +180,9 @@ izlude,182,218,4 script Odgnalam#iz 554,{ mes "You are a hero of cat's fleet. Your activity is the legend between us."; next; mes "[Odgnalam]"; - mes "As you are hero of fleet so let me send you to the heaven of the cat, ^A2314BMeow Meow Island^000000 for free."; + mes "As you are a hero of the cat fleet let me send you to ^A2314BMeow Meow Island^000000 for free."; next; - if(select("Let's go Meow Meow Island!!:Do not go") == 1) { + if(select("Send me to Meow Meow Island!:Do not go.") == 1) { mes "[Odgnalam]"; mes "Have a comfortable trip... Alright let's go~"; warp "malangdo",217,85; @@ -192,7 +192,7 @@ izlude,182,218,4 script Odgnalam#iz 554,{ mes "[Odgnalam]"; mes .@s1$; next; - if(select("Let's go Meow Meow Island!!:Do not go") == 2) close; + if(select("Send me to Meow Meow Island!:Do not go.") == 2) close; if (Zeny < .@price) { mes "[Odgnalam]"; mes "Money? Where is the money? You can't go anywhere without the money. Shame on you."; @@ -204,7 +204,7 @@ izlude,182,218,4 script Odgnalam#iz 554,{ warp "malangdo",217,85; close; } -alberta,200,151,4 duplicate(Odgnalam#iz) Odgnalam#albe 554 +alberta,200,151,4 duplicate(Odgnalam#Izlude) Odgnalam#Alberta 554 malangdo,219,86,4 script Kong#malang 545,{ mes "[Kong]"; diff --git a/npc/re/merchants/card_separation.txt b/npc/re/merchants/card_separation.txt new file mode 100644 index 000000000..a81aeb746 --- /dev/null +++ b/npc/re/merchants/card_separation.txt @@ -0,0 +1,279 @@ +//===== rAthena Script ======================================= +//= Card Separation System +//===== By: ================================================== +//= Muad_Dib +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= rAthena SVN +//===== Description: ========================================= +//= [Official Conversion] +//= Separates cards from equipment. +//===== Additional Comments: ================================= +//= 1.0 First Version. [Euphy] +//============================================================ + +malangdo,215,166,4 script Jeremy#mal 553,{ + disable_items; + if (checkweight(1201,1) == 0) { + mes "You have too many kinds of objects. Let's try to continue after reducing those objects."; + close; + } + if (MaxWeight - Weight < 10000) { + mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight."; + close; + } + mes "[Jeremy]"; + mes "Long time no see~"; + mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?"; + next; + mes "[Jeremy]"; + mes "Generally the fee is 1,000,000 Zeny. During the card separation, you can use ^990000special items that reduce the rate of destroying equipment or cards^000000. We don't charge additional zeny for this."; + next; + mes "[Jeremy]"; + mes "There is a possibility of destroying them even using a special item. Also, ^ff0000the refine level might be lost^000000. Do you have any equipment to separate?"; + next; + + setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat"; + setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP; + for(set .@i,0; .@i= 4700) // Armor Enchant System + set .@equip_card[.@i],0; + } + if (!getarraysize(.@equip_card)) { + mes "[Jeremy]"; + mes "The card is not equipped. Do you want to check again?"; + close; + } + + // Detect MVP cards. + set .@mvp_list$, + "|4408|4128|4456|4168|4142"+ //Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card + "|4134|4137|4386|4407|4357"+ //Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card + "|4146|4132|4147|4372|4145"+ //Maya_Card, Mistress_Card, Baphomet_Card, Bacsojin_Card, Berzebub_Card + "|4374|4352|4367|4236|4425"+ //Apocalips_H_Card, B_Ygnizem_Card, B_Shecil_Card, Amon_Ra_Card, Atroce_Card + "|4359|4123|4144|4135|4143"+ //B_Eremes_Card, Eddga_Card, Osiris_Card, Orc_Load_Card, Orc_Hero_Card + "|4263|4131|4430|4276|4419"+ //Incant_Samurai_Card, Moonlight_Flower_Card, Ifrit_Card, Lord_Of_Death_Card, Ktullanux_Card + "|4403|4399|4376|4441|4302"+ //Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card + "|4305|4148|4318|4121|4365"+ //Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card + "|4363|4324|4361|4330|4342|"; //B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card + if ((.@equip_card[0] && compare(.@mvp_list$,"|"+.@equip_card[0]+"|")) || + (.@equip_card[1] && compare(.@mvp_list$,"|"+.@equip_card[1]+"|")) || + (.@equip_card[2] && compare(.@mvp_list$,"|"+.@equip_card[2]+"|")) || + (.@equip_card[3] && compare(.@mvp_list$,"|"+.@equip_card[3]+"|"))) + set .@boss_chk,1; + + if (.@boss_chk == 0) { + mes "[Jeremy]"; + mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:"; + next; + set .@menu$, + "Next time...:"+ + ((Zeny >= 1000000)?"Use 1,000,000z (Do not use special item):":"^999999Use 1,000,000z (Insufficient)^000000:")+ + ((countitem(6441))?"Use Premium Lubricant:":"^999999Premium Lubricant (Insufficient)^000000:")+ + ((countitem(6440))?"Use Ordinary Lubricant":"^999999Ordinary Lubricant (Insufficient)^000000"); + switch(select(.@menu$)) { + case 1: + mes "[Jeremy]"; + mes "Whenever you need the work, visit me here."; + close; + case 2: + if (Zeny < 1000000) { + mes "[Jeremy]"; + mes "You don't have enough zeny. Please come back with enough fees."; + close; + } + mes "[Jeremy]"; + mes "This is pretty old equipment. There is a high rate of destroying the cards or equipment during the work. Are you sure you want to continue?"; + next; + if(select("Next time...:Continue") == 1) { + mes "[Jeremy]"; + mes "Whenever you need the work, visit me here."; + close; + } + set .@sf_c_num,150; + set .@sf_r_num,150; + set .@sf_w_num,150; + set Zeny, Zeny - 1000000; + break; + case 3: + if (countitem(6441) == 0) { + mes "[Jeremy]"; + mes "You don't have Premium Lubricant."; + close; + } + mes "[Jeremy]"; + mes "If you use the Premium Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?"; + next; + if(select("Next time...:Continue") == 1) { + mes "[Jeremy]"; + mes "Whenever you need the work, visit me here."; + close; + } + set .@sf_c_num,75; + set .@sf_r_num,75; + set .@sf_w_num,75; + delitem 6441,1; //High_RankLubricant + break; + case 4: + if (countitem(6440) == 0) { + mes "[Jeremy]"; + mes "You don't have Ordinary Lubricant."; + close; + } + mes "[Jeremy]"; + mes "If you use the Ordinary Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?"; + next; + if(select("Next time...:Continue") == 1) { + mes "[Jeremy]"; + mes "Whenever you need the work, visit me here."; + close; + } + set .@sf_c_num,75; + set .@sf_r_num,150; + set .@sf_w_num,150; + delitem 6440,1; //General_Lubricant + break; + } + } else if (.@boss_chk == 1) { + mes "[Jeremy]"; + mes "This equipment contains a precious MVP card. This card can't be separated with lubricant. If you bring the super surfactant ^0000ffSillit Pong^000000, I will be able to work."; + next; + switch(select("Next time...:I have a Sillit Pong.")) { + case 1: + mes "[Jeremy]"; + mes "Whenever you need the work, visit me here."; + close; + case 2: + if (countitem(6443) == 0) { + mes "[Jeremy]"; + mes "You don't have Sillit Pong."; + close; + } + break; + } + mes "[Jeremy]"; + mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:"; + next; + switch(select("Next time...:Alright, let's do it!")) { + case 1: + mes "[Jeremy]"; + mes "Whenever you need the work, visit me here."; + close; + case 2: + set .@sf_c_num,60; + set .@sf_r_num,60; + set .@sf_w_num,60; + delitem 6443,1; //Sillit_Pong_Bottle + break; + } + } + + set .@equip_id, getequipid(.@equip_num); + set .@equip_refine, getequiprefinerycnt(.@equip_num); + delequip .@equip_num; + + // Chance of retaining refine level. + if (rand(1,.@sf_r_num) >= 61) + set .@equip_refine,0; + + // Chance of retaining equipment. + if (rand(1,.@sf_w_num) < 61) { + set .@equip_safe,1; + getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0; + } + + // Chance of retaining cards. + for(set .@i,0; .@i<4; set .@i,.@i+1) { + if (.@equip_card[.@i]) { + if (rand(1,.@sf_c_num) < 61) + getitem .@equip_card[.@i],1; + else + set .@card_break,1; + } + } + + // Display corresponding effect. + if (!.@equip_safe && .@card_break) + specialeffect2 EF_LORD; + else if (.@equip_safe && .@card_break) + specialeffect2 EF_SUI_EXPLOSION; + else if (!.@equip_safe && !.@card_break) + specialeffect2 EF_FIREPILLAR; + else + specialeffect2 EF_MAXPOWER; + + // Output results. + mes "-- Result of Card Separation --"; + if (.@equip_safe) { + mes "Crack has not occured during the card separation process."; + mes "^0000FFEquipment separation is normal.^000000"; + } else { + mes "Crack has occured during the card separation process."; + mes "Equipment has been damaged. ^ff0000Unrecoverable.^000000"; + } + mes "-------------------"; + if (!.@card_break) { + mes "Erosion of surface has not occured during the card separation process."; + mes "^0000ffCard separation has succeeded.^000000"; + } else { + mes "Erosion of surface has occured during the card separation process."; + mes "Card has been damaged. ^ff0000Unrecoverable.^000000"; + } + next; + mes "[Jeremy]"; + mes "That is all for the results of the card separation. Please come again."; + close; +} diff --git a/npc/re/merchants/enchan_mal.txt b/npc/re/merchants/enchan_mal.txt index 36e8487b5..5caa70217 100644 --- a/npc/re/merchants/enchan_mal.txt +++ b/npc/re/merchants/enchan_mal.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Muad_Dib //===== Current Version: ===================================== -//= 1.0 +//= 1.0a //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= @@ -12,6 +12,7 @@ //= for Malangdo coins. //===== Additional Comments: ================================= //= 1.0 First Version. [Euphy] +//= 1.0a Added 'delequip' command. [Euphy] //============================================================ malangdo,213,167,4 script Mayomayo#mal 555,{ @@ -567,10 +568,10 @@ L_Socket: mes "There is something wrong. Please try again."; close; } - if (.@equip_card[3] == 0 && getarg(1) < 4) set .@target,3; - else if (.@equip_card[2] == 0 && getarg(1) < 3) set .@target,2; - else if (.@equip_card[1] == 0 && getarg(1) < 2) set .@target,1; - else if (.@equip_card[0] == 0 && getarg(1) < 1) set .@target,0; + if (.@equip_card[3] == 0 && getarg(1) < 4) set .@equip_card[3],.@enchant; + else if (.@equip_card[2] == 0 && getarg(1) < 3) set .@equip_card[2],.@enchant; + else if (.@equip_card[1] == 0 && getarg(1) < 2) set .@equip_card[1],.@enchant; + else if (.@equip_card[0] == 0 && getarg(1) < 1) set .@equip_card[0],.@enchant; else { mes "[Mayomayo]"; mes "This equipment is at the end of enchant. I provide enchant for two times maximum."; @@ -585,24 +586,18 @@ L_Socket: mes "Oh my god!"; mes "This equipment is destroyed because it could not endure powerful ability. I'm so sorry."; delitem .@coin[.@coin_select],.@total[.@coin_select]; - -// dropequipitem EQI_HAND_R - unequip EQI_HAND_R; - delitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; + delequip EQI_HAND_R; close; } specialeffect2 EF_REPAIRWEAPON; mes "[Mayomayo]"; mes "I have enchanted ^990000slot "+.@socket+"^000000 of this equipment."; delitem .@coin[.@coin_select],.@total[.@coin_select]; - -// dropequipitem EQI_HAND_R - unequip EQI_HAND_R; - delitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; + delequip EQI_HAND_R; // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3] - set .@equip_card[.@target],.@enchant; getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; + close; } else if (.@select == 2) { mes "[Mayomayo]"; @@ -632,10 +627,7 @@ L_Socket: mes "[Mayomayo]"; mes "Initialize the enchant effect from the equipment."; delitem 6417,1; //Silvervine - -// dropequipitem EQI_HAND_R - unequip EQI_HAND_R; - delitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; + delequip EQI_HAND_R; // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3] for(set .@i,0; .@i<4; set .@i,.@i+1) { @@ -643,6 +635,7 @@ L_Socket: set .@equip_card[.@i],0; } getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; + close; } } diff --git a/src/map/script.c b/src/map/script.c index ce312e894..0a33c1eef 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -7782,6 +7782,29 @@ BUILDIN_FUNC(downrefitem) return 0; } +/*========================================== + * Delete the item equipped at pos. + *------------------------------------------*/ +BUILDIN_FUNC(delequip) +{ + int i=-1,num; + TBL_PC *sd; + + num = script_getnum(st,2); + sd = script_rid2sd(st); + if( sd == NULL ) + return 0; + + if (num > 0 && num <= ARRAYLENGTH(equip)) + i=pc_checkequip(sd,equip[num-1]); + if(i >= 0) { + pc_unequipitem(sd,i,3); //recalculate bonus + pc_delitem(sd,i,1,0,2,LOG_TYPE_SCRIPT); + } + + return 0; +} + /*========================================== * *------------------------------------------*/ -- cgit v1.2.3-60-g2f50 From 31420c03a8443b729cc850acdad4f32845379f85 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 16:53:30 -0300 Subject: Missing stuff from the merges done earlier Signed-off-by: shennetsind --- npc/re/cities/malangdo.txt | 2 +- src/common/mmo.h | 2 +- src/map/script.c | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/npc/re/cities/malangdo.txt b/npc/re/cities/malangdo.txt index e6732b754..f6fd3f14d 100644 --- a/npc/re/cities/malangdo.txt +++ b/npc/re/cities/malangdo.txt @@ -204,7 +204,7 @@ izlude,182,218,4 script Odgnalam#iz 554,{ warp "malangdo",217,85; close; } -alberta,200,151,4 duplicate(Odgnalam#Izlude) Odgnalam#Alberta 554 +alberta,200,151,4 duplicate(Odgnalam#iz) Odgnalam#Alberta 554 malangdo,219,86,4 script Kong#malang 545,{ mes "[Kong]"; diff --git a/src/common/mmo.h b/src/common/mmo.h index 7d1928201..bd6b29f76 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -98,7 +98,7 @@ #define MAX_GUILDSKILL 15 // increased max guild skills because of new skills [Sara-chan] #define MAX_GUILDLEVEL 50 #define MAX_GUARDIANS 8 //Local max per castle. [Skotlex] -#define MAX_QUEST_DB 2350 //Max quests that the server will load +#define MAX_QUEST_DB 2400 //Max quests that the server will load #define MAX_QUEST_OBJECTIVES 3 //Max quest objectives for a quest // for produce diff --git a/src/map/script.c b/src/map/script.c index 0a33c1eef..4ba5cc669 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -17855,6 +17855,7 @@ struct script_function buildin_func[] = { BUILDIN_DEF2(cleanmap,"cleanarea","siiii"), BUILDIN_DEF(npcskill,"viii"), BUILDIN_DEF(itemeffect,"v"), + BUILDIN_DEF(delequip,"i"), /** * @commands (script based) **/ -- cgit v1.2.3-60-g2f50 From 81bc395cc19fe06ea1cd49db22dc8c202c684d9f Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 18:22:48 -0300 Subject: Fixed missing apostrophe all credits to the awesome jTynne :3 thank you! Signed-off-by: shennetsind --- sql-files/item_db_re.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index d79ea7141..a674667ab 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -7297,7 +7297,7 @@ REPLACE INTO `item_db_re` VALUES (16679,'Universal_Catalog_Gold_Box10','Universa REPLACE INTO `item_db_re` VALUES (16680,'Universal_Catalog_Gold_Box50','Universal Catalog Gold 50 Box',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'getitem 12581,50;',NULL,NULL); # REPLACE INTO `item_db_re` VALUES (16740,'Ptotection_Seagod_Box','The Sea God\'s Call 23 Hour Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 6436,86400;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (16741,'Hairtail_Box1,'Cutlass 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,86400;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (16741,'Hairtail_Box1','Cutlass 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,86400;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16742,'Hairtail_Box2','Cutlass 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1198,604800;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16743,'Spearfish_Box1','Marlin 1 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1489,86400;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (16744,'Spearfish_Box2','Marlin 7 Day Box',2,NULL,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1489,604800;',NULL,NULL); -- cgit v1.2.3-60-g2f50 From 1152ef720d3ef010a40ddf3cb5fc63fbc2f3e030 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 19:24:59 -0300 Subject: Fixed Bug #7158 http://hercules.ws/board/tracker/issue-7158-memory-leak/ Signed-off-by: shennetsind --- src/map/atcommand.c | 7 +----- src/map/clif.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/map/clif.h | 2 ++ src/map/guild.c | 8 ++---- src/map/map.c | 24 +----------------- 5 files changed, 76 insertions(+), 35 deletions(-) diff --git a/src/map/atcommand.c b/src/map/atcommand.c index bc76859e9..1c0542066 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -5708,12 +5708,7 @@ ACMD_FUNC(autotrade) { } } - if( sd->channel_count ) { - for( i = 0; i < sd->channel_count; i++ ) { - if( sd->channels[i] != NULL ) - clif->chsys_left(sd->channels[i],sd); - } - } + clif->chsys_quit(sd); clif->authfail_fd(sd->fd, 15); diff --git a/src/map/clif.c b/src/map/clif.c index 56fdb4193..109ce7b9e 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9901,6 +9901,74 @@ void clif_hercules_chsys_left(struct hChSysCh *channel, struct map_session_data } +void clif_hercules_chsys_quitg(struct map_session_data *sd) { + unsigned char i; + struct hChSysCh *channel = NULL; + + for( i = 0; i < sd->channel_count; i++ ) { + if( (channel = sd->channels[i] ) != NULL && channel->type == hChSys_ALLY ) { + idb_remove(channel->users,sd->status.char_id); + + if( channel == sd->gcbind ) + sd->gcbind = NULL; + + if( !db_size(channel->users) && channel->type == hChSys_PRIVATE ) { + clif->chsys_delete(channel); + } else if( !hChSys.closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN) ) { + char message[60]; + sprintf(message, "#%s '%s' left",channel->name,sd->status.name); + clif->chsys_msg(channel,sd,message); + } + sd->channels[i] = NULL; + } + } + + if( i < sd->channel_count ) { + unsigned char cursor = 0; + for( i = 0; i < sd->channel_count; i++ ) { + if( sd->channels[i] == NULL ) + continue; + if( cursor != i ) { + sd->channels[cursor] = sd->channels[i]; + } + cursor++; + } + if ( !(sd->channel_count = cursor) ) { + aFree(sd->channels); + sd->channels = NULL; + } + } + +} + + +void clif_hercules_chsys_quit(struct map_session_data *sd) { + unsigned char i; + struct hChSysCh *channel = NULL; + + for( i = 0; i < sd->channel_count; i++ ) { + if( (channel = sd->channels[i] ) != NULL ) { + idb_remove(channel->users,sd->status.char_id); + + if( channel == sd->gcbind ) + sd->gcbind = NULL; + + if( !db_size(channel->users) && channel->type == hChSys_PRIVATE ) { + clif->chsys_delete(channel); + } else if( !hChSys.closing && (channel->opt & hChSys_OPT_ANNOUNCE_JOIN) ) { + char message[60]; + sprintf(message, "#%s '%s' left",channel->name,sd->status.name); + clif->chsys_msg(channel,sd,message); + } + + } + } + + sd->channel_count = 0; + aFree(sd->channels); + sd->channels = NULL; +} + /// Request for an action. /// 0089 .L .B (CZ_REQUEST_ACT) /// 0437 .L .B (CZ_REQUEST_ACT2) @@ -17160,6 +17228,8 @@ void clif_defaults(void) { clif->chsys_left = clif_hercules_chsys_left; clif->chsys_delete = clif_hercules_chsys_delete; clif->chsys_mjoin = clif_hercules_chsys_mjoin; + clif->chsys_quit = clif_hercules_chsys_quit; + clif->chsys_quitg = clif_hercules_chsys_quitg; clif->cashshop_load = clif_cashshop_db; /*------------------------ *- Parse Incoming Packet diff --git a/src/map/clif.h b/src/map/clif.h index 90915e1c9..ecdf17429 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -858,6 +858,8 @@ struct clif_interface { void (*chsys_left) (struct hChSysCh *channel, struct map_session_data *sd); void (*chsys_delete) (struct hChSysCh *channel); void (*chsys_mjoin) (struct map_session_data *sd); + void (*chsys_quit) (struct map_session_data *sd); + void (*chsys_quitg) (struct map_session_data *sd); /*------------------------ *- Parse Incoming Packet *------------------------*/ diff --git a/src/map/guild.c b/src/map/guild.c index 9b128c4e1..321560420 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -902,17 +902,13 @@ int guild_member_withdraw(int guild_id, int account_id, int char_id, int flag, c clif->guild_memberlist(online_member_sd); // update char, if online - if(sd != NULL && sd->status.guild_id == guild_id) - { + if(sd != NULL && sd->status.guild_id == guild_id) { // do stuff that needs the guild_id first, BEFORE we wipe it if (sd->state.storage_flag == 2) //Close the guild storage. storage_guild_storageclose(sd); guild_send_dot_remove(sd); if( hChSys.ally ) { - for (i = 0; i < sd->channel_count; i++) { - if( sd->channels[i] && sd->channels[i]->type == hChSys_ALLY ) - clif->chsys_left(sd->channels[i],sd); - } + clif->chsys_quitg(sd); } sd->status.guild_id = 0; sd->guild = NULL; diff --git a/src/map/map.c b/src/map/map.c index 03ed08f8b..cdbe591f5 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1699,33 +1699,11 @@ int map_quit(struct map_session_data *sd) { unit_remove_map(&sd->ed->bl,CLR_TELEPORT); } - if( hChSys.ally && sd->status.guild_id ) { - struct guild *g = sd->guild, *sg; - if( g ) { - if( idb_exists(((struct hChSysCh *)g->channel)->users, sd->status.char_id) ) - clif->chsys_left((struct hChSysCh *)g->channel,sd); - for (i = 0; i < MAX_GUILDALLIANCE; i++) { - if( g->alliance[i].guild_id && (sg = guild_search(g->alliance[i].guild_id) ) ) { - if( idb_exists(((struct hChSysCh *)sg->channel)->users, sd->status.char_id) ) - clif->chsys_left((struct hChSysCh *)sg->channel,sd); - break; - } - } - } - } - if( hChSys.local && map[sd->bl.m].channel && idb_exists(map[sd->bl.m].channel->users, sd->status.char_id) ) { clif->chsys_left(map[sd->bl.m].channel,sd); } - if( sd->channel_count ) { - for( i = 0; i < sd->channel_count; i++ ) { - if( sd->channels[i] != NULL ) - clif->chsys_left(sd->channels[i],sd); - } - if( hChSys.closing ) - aFree(sd->channels); - } + clif->chsys_quit(sd); unit_remove_map_pc(sd,CLR_TELEPORT); -- cgit v1.2.3-60-g2f50 From 789c8d77c7de5673a3cefd8ca302d97bc358ce8e Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 11 Apr 2013 21:18:12 -0300 Subject: Hercules Channel System Update http://hercules.ws/board/topic/316-introducing-hercules-channel-system/?p=2716 Signed-off-by: shennetsind --- conf/messages.conf | 34 ++++++ src/map/atcommand.c | 323 +++++++++++++++++++++++++++++++++++++++++++++++++--- src/map/clif.c | 47 +++++--- src/map/clif.h | 16 ++- src/map/guild.c | 9 +- src/map/pc.c | 3 +- src/map/pc.h | 3 +- src/map/skill.c | 4 +- 8 files changed, 397 insertions(+), 42 deletions(-) diff --git a/conf/messages.conf b/conf/messages.conf index e21c41176..e1a122fc6 100644 --- a/conf/messages.conf +++ b/conf/messages.conf @@ -1452,6 +1452,40 @@ 1431: Your global chat is now binded to the '%s' channel 1432: Your global chat is not binded to any channel 1433: Your global chat is now unbinded from the '#%s' channel +1434: Player '%s' was not found +1437: Player '%s' has now been banned from '%s' channel +1438: You cannot join the '%s' channel because you've been banned from it +1439: Channel '%s' has no banned players +1440: Player '%s' is not banned from this channel +1441: Player '%s' has now been unbanned from the '%s' channel +1442: Removed all bans from '%s' channel +1443: -- '%s' ban list +1444: - %s +1445: - %s (%d) +1446: You need to input a option +1447: '%s' is not a known channel option +1448: -- Available options +1449: option '%s' is already enabled, if you'd like to disable it type '@channel opt %s 0' +1450: option '%s' is now enabled for channel '%s' +1451: value '%d' for option '%s' is out of range (limit is 0-10) +1452: option '%s' is now enabled for channel '%s' with %d seconds +1453: option '%s' is now disabled for channel '%s' +1454: option '%s' is not enabled on channel '%s' +1455: You're talking too fast! +1456: -- %s ban +1457: - bans from channel +1458: -- %s banlist +1459: - lists all banned characters from channel +1460: -- %s unban +1461: - unbans from channel +1462: -- %s setopt