Commit bcf9c1fc authored by Atemo's avatar Atemo

Merge branch 'master' into script/devil_tower_memorial

parents 0931ae94 3a8814ac
......@@ -851,7 +851,7 @@
//705,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_WIDESIREN,Wide Siren's Voice
706,0,6,4,5,0,0,10,1,no,0,0x2,0,magic,0,0x1, NPC_VENOMFOG,Venom Fog
//707,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_MILLENNIUMSHIELD,Millenium Shield 2
//708,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_COMET,Comet 2
708,0,0,0,0,0,0,1,0,no,0,0,0,none,0,0x0, NPC_COMET,Comet 2
//709,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_ICEMINE,Ice Mine
//710,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_ICEEXPLO,Ice Explosion
//711,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_FLAMECROSS,Flame Cross
......
......@@ -21,9 +21,20 @@
14,Sara's Memories,3600,300,1@sara,250,155
15,Geffen Magic Tournament,7200,300,1@gef,119,209,1@gef_in,1@ge_st
16,Horror Toy Factory,3600,300,1@xm_d,111,22
17,Faceworm's Nest,3600,300,1@face,112,374
17,Faceworm's Nest,3600,300,1@face,112,370
18,Ghost Palace,3600,300,1@spa,42,196
19,Devil's Tower,3600,300,1@tnm1,50,104,1@tnm2,1@tnm3
// 20,Assault on the Airship,3600,300,1@air1,244,73,1@air2
21,Fenrir and Sarah,3600,300,1@glast,367,304
26,Central Laboratory,3600,300,1@lab,120,30
27,Last room,3600,300,1@uns,142,30
// 22,Wave Mode - Forest,3600,300,1@def01,50,21
// 23,Wave Mode - Sky,3600,300,1@def02,29,35
// 24,Nightmarish Jitterbug,3600,300,1@jtb,16,17
25,Isle of Bios,3600,300,1@dth1,17,93,1@dth2,1@dth3
// 26,Morse's Cave,3600,300,1@rev,26,181
// 27,Temple of the Demon God,3600,300,1@eom,101,16
28,Central Laboratory,3600,300,1@lab,120,30
29,Last room,3600,300,1@uns,145,35
// 30,Charleston in Distress,3600,300,1@mcd,127,282
// 31,Ritual of Blessing,3600,300,2@mir,101,12
// 32,Room of Consciousness,3600,300,1@mir,101,10
// 33,Sky Fortress Invasion,3600,300,1@sthb,54,67,1@sthc,1@sthd
......@@ -4073,7 +4073,7 @@
5978,Syringe_Toy,Toy Syringe,4,0,,100,,3,,0,0xFFFFFFFF,63,2,1,,70,0,842,{ bonus bMdef,3; bonus2 bAddItemHealRate,545,150; bonus2 bAddItemHealRate,546,150; bonus2 bAddItemHealRate,547,150; },{},{}
5979,C_Angel_Fluttering,C Angel Fluttering,4,0,,0,,,,0,0xFFFFFFFF,63,2,4096,,1,0,1380,{ hateffect HAT_EF_ANGEL_FLUTTERING,true; },{},{ hateffect HAT_EF_ANGEL_FLUTTERING,false; }
5980,C_Classical_Fhat,C Classical Fhat,4,0,,0,,,,0,0xFFFFFFFF,63,2,1024,,1,0,1381,{},{},{}
5985,Noble_Mask,Noble Mask,4,0,,200,,,,0,0xFFFFFFFF,63,2,256,,30,0,1409,{ bonus2 bSkillAtk,"PA_SACRIFICE",BaseLevel*2; bonus2 bSkillVariableCast,"PA_PRESSURE",-2000; bonus2 bSkillVariableCast,"CR_DEVOTION",-2000; if (BaseLevel > 149) { bonus bMaxHPrate,3; bonus bAspdRate,3; } else if (BaseLevel > 99) { bonus bMaxHPrate,2; bonus bAspdRate,2; } else { bonus bMaxHPrate,1; bonus bAspdRate,1; } },{},{}
5985,Noble_Mask,Noble Mask,4,0,,200,,,,0,0xFFFFFFFF,63,2,512,,30,1,1409,{ bonus2 bSkillAtk,"PA_SACRIFICE",BaseLevel*2; bonus2 bSkillVariableCast,"PA_PRESSURE",-2000; bonus2 bSkillVariableCast,"CR_DEVOTION",-2000; if (BaseLevel > 149) { bonus bMaxHPrate,3; bonus bAspdRate,3; } else if (BaseLevel > 99) { bonus bMaxHPrate,2; bonus bAspdRate,2; } else { bonus bMaxHPrate,1; bonus bAspdRate,1; } },{},{}
//===================================================================
// More Etc Items
//===================================================================
......@@ -6724,12 +6724,12 @@
12527,E_Adrenaline_Scroll,Adrenaline Scroll,2,2,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "BS_ADRENALINE",5; },{},{}
12528,E_Convex_Mirror,Convex Mirror,2,2,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_BOSSMAPINFO,600000,0; },{},{}
12529,White_Slim_Potion_Box,White Slim Potion Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 11573,100; },{},{}
12530,Mastela_Fruit_Box,Mastela Fruit Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12530,Mastela_Fruit_Box,Mastela Fruit Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 522,200; },{},{}
12531,White_Potion_Box,White Potion Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 504,100; },{},{}
12532,Royal_Jelly_Box2,Royal Jelly Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 526,100; },{},{}
12533,Blue_Herb_Box2,Blue Herb Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 510,100; },{},{}
12534,Yggdrasil_Seed_Box,Yggdrasil Seed Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12535,Iggdrasilberry_Box,Iggdrasilberry Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12534,Yggdrasil_Seed_Box,Yggdrasil Seed Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 608,30; },{},{}
12535,Iggdrasilberry_Box,Iggdrasilberry Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 607,15; },{},{}
12536,NY_Rice_Cake_Soup,NY Rice Cake Soup,2,20,,100,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{}
12537,Solo_Gift_Basket,Solo Gift Basket,2,1000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /*getgroupitem(IG_Solo_Gift_Basket);*/ getitem 597,5; getitem 596,3; getitem 561,3; getitem 573,4; getitem 559,10; getitem 560,10; },{},{}
12538,Couple_Event_Basket,Couple Event Basket,2,2000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /*getgroupitem(IG_Couple_Event_Basket);*/ getitem 14546,10; getitem 14547,10; getitem 14548,10; getitem 14549,10; getitem 14550,10; },{},{}
......@@ -10985,6 +10985,7 @@
22534,Closedmind_Box,Closed Mind Box,18,10,,1000,,,,0,0xFFFFFFFF,63,2,,,1,,,{ getgroupitem(IG_Sealed_Mind_Box); },{},{}
22535,WorkerScroll_A,Scroll Summoning Workers(Male),2,10,,10,,,,0,0xFFFFFFFF,63,2,,,,,,{},{},{}
22536,WorkerScroll_B,Scroll Summoning Workers(Female),2,10,,10,,,,0,0xFFFFFFFF,63,2,,,,,,{},{},{}
22537,PrizeOfHero,Prize Of Hero,2,0,,100,,,,0,0xFFFFFFFF,63,2,,,1,,,{ getrandgroupitem(IG_PrizeOfHero,1); },{},{}
22538,Hanbok_bag,Hanbok bag,2,10,,10,,,,0,0xFFFFFFFF,63,2,,,1,,,{},{},{}
22540,Runstone_Lux,Lux Anima Runestone,11,2,,100,,,,,0xFFFFFFFF,56,2,,,,,,{ itemskill "RK_LUXANIMA",1; },{},{}
22541,PC_Room_Coupon_Box_VI,PC Room Coupon Box VI,18,10,,10,,,,0,0xFFFFFFFF,63,2,,,,,,{},{},{}
......@@ -423,6 +423,7 @@
17681,2 //Midgard_Lucky_Scroll
17692,2 //Blessing_Scarlet_Egg
22514,2 //Candy_Holder
22537,2 //PrizeOfHero
22558,2 //Lucky_Bag
22669,2 //HALLOWEEN_G_BOX
22685,2 //Solo_Christmas_Gift
......
......@@ -1370,3 +1370,33 @@ IG_Mercenary,12179,1 // SpearMercenary_Scroll7
IG_Mercenary,12180,1 // SpearMercenary_Scroll8
IG_Mercenary,12181,1 // SpearMercenary_Scroll9
IG_Mercenary,12182,1 // SpearMercenary_Scroll10
// PrizeOfHero
IG_PrizeOfHero,522,7 // Fruit_Of_Mastela
IG_PrizeOfHero,547,7 // White_Slim_Potion
IG_PrizeOfHero,607,17 // Yggdrasilberry
IG_PrizeOfHero,608,10 // Seed_Of_Yggdrasil
IG_PrizeOfHero,678,7 // Poison_Bottle
IG_PrizeOfHero,12075,7 // Str_Dish10
IG_PrizeOfHero,12080,7 // Int_Dish10
IG_PrizeOfHero,12085,7 // Vit_Dish10
IG_PrizeOfHero,12090,7 // Agi_Dish10
IG_PrizeOfHero,12095,7 // Dex_Dish10
IG_PrizeOfHero,12100,7 // Luk_Dish10
IG_PrizeOfHero,12530,2 // Mastela_Fruit_Box
IG_PrizeOfHero,12534,2 // Yggdrasil_Seed_Box
IG_PrizeOfHero,12535,1 // Iggdrasilberry_Box
IG_PrizeOfHero,12549,2 // White_Slim_Pot_Box2
IG_PrizeOfHero,12550,2 // Poison_Bottle_Box2
IG_PrizeOfHero,12623,1 // High_Weapon_Box
IG_PrizeOfHero,12676,7 // Sg_Violet_Potion_Box
IG_PrizeOfHero,12679,7 // Sg_White_Potion_Box
IG_PrizeOfHero,12680,7 // Sg_Blue_Potion_Box
IG_PrizeOfHero,15093,1 // Hero_Plate
IG_PrizeOfHero,15094,1 // Hero_Magic_Coat
IG_PrizeOfHero,15095,1 // Hero_Judgement_Shawl
IG_PrizeOfHero,15096,1 // Hero_Trade_Mail
IG_PrizeOfHero,15097,1 // Hero_Hidden_Cloth
IG_PrizeOfHero,15098,1 // Hero_Taget_Suits
IG_PrizeOfHero,22035,2 // Vet_Nepen_Heel
IG_PrizeOfHero,22036,2 // Vet_SliverFox_Boots
IG_PrizeOfHero,22037,2 // Vet_Ungo_Boots
......@@ -2167,15 +2167,15 @@
//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
3010,EP14_3_DEATH_A_MOB1,Corrupt Orc Baby,Corrupt Orc Baby,158,250000,1,12390,16104,1,1036,1415,240,50,120,85,80,60,88,50,10,12,0,7,42,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3011,EP14_3_DEATH_A_MOB2,Corrupt Baby Desert Wol,Corrupt Baby Desert Wol,158,232890,1,12390,16104,1,1016,1395,240,45,100,85,100,88,120,50,10,12,0,2,43,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3012,EP14_3_DEATH_A_MOB3,Corrupt Familiar,Corrupt Familiar,158,222550,1,12390,16104,1,1002,1381,240,70,86,85,75,53,100,50,10,12,0,5,41,0x0000085,120,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3013,EP14_3_DEATH_B_MOB1,Corrupt Orc Warrior,Corrupt Orc Warrior,158,300000,1,12390,16104,1,1066,1445,240,60,150,85,150,40,122,70,10,12,1,7,42,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3014,EP14_3_DEATH_B_MOB2,Corrupt Desert Wolf,Corrupt Desert Wolf,158,292450,1,12390,16104,1,1036,1415,240,50,120,85,110,55,130,70,10,12,1,2,43,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3015,EP14_3_DEATH_B_MOB3,Corrupt Phen,Corrupt Phen,158,284110,1,12390,16104,1,1026,1405,240,100,110,85,95,70,115,70,10,12,1,5,41,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3016,EP14_3_DEATH_C_MOB1,Corrupt Orc Zombie,Corrupt Orc Zombie,158,375000,1,12390,16104,1,1096,1475,150,150,180,145,202,40,88,30,10,12,1,7,49,0x0000085,170,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3017,EP14_3_DEATH_C_MOB2,Corrupt Verit,Corrupt Verit,158,352715,1,12390,16104,1,1082,1461,200,100,166,87,150,60,150,130,10,12,1,2,49,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
3018,EP14_3_DEATH_C_MOB3,Corrupt Megalodon,Corrupt Megalodon,158,347413,1,12390,16104,1,1073,1452,240,300,157,80,140,90,209,84,10,12,1,5,49,0x0000085,170,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0
//3019,CELINE_KIMI
3020,FIRE_CONDOR,Fire Condor,Fire Condor,141,125114,1,7021,7481,1,1364,2565,71,45,104,72,66,10,113,52,10,12,1,2,43,0x0000081,110,1148,648,480,0,0,0,0,0,0,0,6691,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
3021,FIRE_SAND_MAN,Fire Sand Man,Fire Sandman,143,130501,1,7207,7734,1,1404,2760,122,73,84,36,25,55,124,35,10,12,1,0,63,0x003885,150,1672,720,288,0,0,0,0,0,0,0,6694,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
......@@ -2186,7 +2186,7 @@
3026,FIREPIT,Fire Pit,Fire Pit,17,10,1,58,43,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x170000,400,2612,912,288,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
3027,FULBUK,Fire Bug,Fire Bug,150,234,1,58,47,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x0000001,120,1288,288,768,0,0,0,0,0,0,0,6689,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
3028,SONIA,Sonia,Sonia,17,20,1,58,43,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x170000,400,2612,912,288,0,0,0,0,0,0,0,6690,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//3029,GRIM_REAPER_ANKOU
3029,GRIM_REAPER_ANKOU,Grim Reaper Ankou,Reaper Yanku,159,50000000,1553,300000,330000,1,1500,2500,200,70,200,100,200,200,220,100,10,12,2,1,89,0x6200085,200,900,864,480,0,0,0,0,0,0,0,607,500,603,200,604,200,22537,10000,0,0,522,200,0,0,0,0,0,0,0,0
//3030,STANDING_SOUL
//3031,MUTANT_NECROMANCER
//3032,MUTANT_GHOUL
......
......@@ -11104,6 +11104,11 @@
3026,Fire Pit@NPC_DEATHSUMMON,dead,718,3,10000,0,10000,no,self,always,0,3027,3027,3027,,,,
// Episode 14.3: Isle of Bios
3029,Grim Reaper Ankou@NPC_COMET,attack,708,3,1000,10000,75000,no,self,always,0,,,,,,,
3029,Grim Reaper Ankou@NPC_DARKCROSS,attack,338,10,500,2000,12000,no,target,always,0,,,,,,,
3029,Grim Reaper Ankou@NPC_DRAGONFEAR,attack,659,5,1000,3000,30000,no,self,always,0,,,,,,,
3038,Hidden Mob 7@NPC_INVISIBLE,idle,353,1,10000,0,30000,yes,self,always,0,,,,,,,
3038,Hidden Mob 7@NPC_INVISIBLE,attack,353,1,10000,0,30000,yes,self,always,0,,,,,,,
// 3038,Hidden Mob 7@NPC_HELLBURNING,idle,719,1,10000,0,3000,yes,self,always,0,,,,,,,
......
......@@ -1526,7 +1526,7 @@
7612,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Passage Cleaning - Down"
7613,0,3155,15,3156,15,0,0,0,0,0,0,0,0,0,0,0,"Eliminating Risks"
7614,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Eliminating Risks - Down"
7615,0,0,0,0,0,0,0,3154,6749,2000,3155,6749,2000,3156,6749,2000,"Core Collection"
7615,0,0,0,0,0,0,0,3154,6749,5000,3155,6749,5000,3156,6749,5000,"Core Collection"
7616,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Core Collection - Down"
7617,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Turning In Excavation Report"
7618,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Reporting the Results - Down"
......@@ -3035,13 +3035,13 @@
13196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monthly Brigan"
13197,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monthly Brigan"
13198,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monthly Brigan : Krotzel's Request"
13199,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Krotzel's Request - Complete"
13199,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Krotzel's Request - Complete"
13200,0,3247,30,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monthly Brigan : Rookie's Request"
13201,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Rookie's Request - Complete"
13201,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Rookie's Request - Complete"
13202,0,3248,30,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monthly Brigan : Photo Journalist's Request"
13203,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Photo Journalist's Request - Complete"
13203,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Photo Journalist's Request - Complete"
13204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Monthly Brigan : Grylls' Request"
13205,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Grylls' Request - Complete"
13205,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Grylls' Request - Complete"
14118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Wuhari's concern"
14119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Test of patience"
......@@ -3194,11 +3194,11 @@
15002,72000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial dungeon: Sara's Memory"
15003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Adventurer leon"
// Episode 14.3: Bios Island
15005,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial Dungeon: Bios Island"
15006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Bios Island Exploration"
15007,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial Dungeon: Bios Island"
15008,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial Dungeon: Bios Island"
// Episode 14.3: Isle of Bios
15005,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial Dungeon: Isle of Bios"
15006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Isle of Bios Exploration"
15007,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial Dungeon: Isle of Bios"
15008,300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Memorial Dungeon: Isle of Bios"
//15025,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,""
//15026,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,""
//15027,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,""
......
......@@ -851,7 +851,7 @@
//705,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_WIDESIREN,Wide Siren's Voice
706,0,6,4,5,0,0,10,1,no,0,0x2,0,magic,0,0x1, NPC_VENOMFOG,Venom Fog
//707,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_MILLENNIUMSHIELD,Millenium Shield 2
//708,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_COMET,Comet 2
708,11,8,2,0,0x2,9,5,-20,yes,0,0,0,magic,2,0x400, NPC_COMET,Comet 2
709,0,6,4,0,0xA0,0,10,1,no,0,0x2,0,magic,0,0x0, NPC_ICEMINE,Ice Mine
//710,0,0,0,0,0,0,??,0,no,0,0,0,none,0,0x0, NPC_ICEEXPLO,Ice Explosion
711,0,6,4,0,0x80,0,5,1,no,0,0x2,0,magic,2,0x1, NPC_FLAMECROSS,Flame Cross
......
......@@ -109,6 +109,7 @@
670,0xc7, , 1, 5:5:5:5:5:5:5:5:5:13,1000,all,0x008 //NPC_EVILLAND
706,0xfd, , 2, 0,1000,enemy, 0x018 //NPC_VENOMFOG
708,0x86, , 0, 9,1000,enemy, 0x018 //NPC_COMET
709,0xfe, , 0, 3,1000,enemy, 0x8018 //NPC_ICEMINE
711,0xff, , -1, 0,1000,enemy, 0x8018 //NPC_FLAMECROSS
......
......@@ -5274,6 +5274,66 @@ invoking character.
---------------------------------------
*mail <destination id>,"<sender name>","<title>","<body>"{,<zeny>{,<item id array>,<item amount array>{,<item card0 array>{,<item card1 array>{,<item card2 array>{,<item card3 array>
{,<random option id0 array>, <random option value0 array>, <random option paramter0 array>{,<random option id1 array>, <random option value1 array>, <random option paramter1 array>
{,<random option id2 array>, <random option value2 array>, <random option paramter2 array>{,<random option id3 array>, <random option value3 array>, <random option paramter3 array>
{,<random option id4 array>, <random option value4 array>, <random option paramter4 array>}}}}}}};
This command will send mail to the <destination id> which is a character ID.
A <sender name> can be specified but does not have to be from the direct creator
of the mail and is limited to NAME_LENGTH (24) characters. Mail <title> is limited
to MAIL_TITLE_LENGTH (40) characters. Mail <body> is limited to MAIL_BODY_LENGTH
(200) characters for PACKETVER < 20150513 or 500 characters for later clients.
Optional <zeny> and item data can be added to the mail as well. PACKETVER < 20150513
is limited to 1 item while later clients are limited to MAIL_MAX_ITEM (5).
The <item id array>, <item amount array>, <item card0 array>, <item card1 array>,
<item card2 array>, and <item card3 array> should all be integer arrays.
For random options there can be 5 arrays in pairs of 3 (ids, values, parameters) right after the cards.
All of these arrays shall be integer arrays as well.
Example of sending mail with zeny:
.@charid = getcharid(0);
.@sender$ = "Poring";
.@title$ = "Welcome";
.@body$ = "Hi! I'm a simple Poring from the Prontera fields! Welcome to Ragnarok!";
.@zeny = 5000;
mail .@charid, .@sender$, .@title$, .@body$, .@zeny;
Example of sending mail with items:
.@charid = getcharid(0);
.@sender$ = "Angeling";
.@title$ = "Welcome";
.@body$ = "Hi! I'm a simple Angeling from the Prontera fields! Welcome to Ragnarok!";
.@zeny = 0;
setarray .@mailitem[0], 504, 505, 2220, 1214; // White Potion, Blue Potion, Hat, Dagger
setarray .@mailamount[0], 10, 5, 1, 1; // 10 White Potions, 5 Blue Potions, 1 Hat, 1 Dagger
setarray .@mailcard0[0], 0, 0, 4198, 4092; // Attach Maya Purple Card to the Hat, Attach Skeleton Worker Card to Dagger
setarray .@mailcard1[0], 0, 0, 0, 4092; // Attach Skeleton Worker Card to Dagger
setarray .@mailcard2[0], 0, 0, 0, 4092; // Attach Skeleton Worker Card to Dagger
mail .@charid, .@sender$, .@title$, .@body$, .@zeny, .@mailitem, .@mailamount, .@mailcard0, .@mailcard1, .@mailcard2;
Example of sending mail with items and random options:
.@charid = getcharid(0);
.@sender$ = "Angeling";
.@title$ = "Welcome";
.@body$ = "Hi! I'm a simple Angeling from the Prontera fields! Welcome to Ragnarok!";
.@zeny = 0;
setarray .@mailitem[0], 504, 505, 2220, 1214; // White Potion, Blue Potion, Hat, Dagger
setarray .@mailamount[0], 10, 5, 1, 1; // 10 White Potions, 5 Blue Potions, 1 Hat, 1 Dagger
setarray .@mailcard0[0], 0, 0, 4198, 4092; // Attach Maya Purple Card to the Hat, Attach Skeleton Worker Card to Dagger
setarray .@mailcard1[0], 0, 0, 0, 4092; // Attach Skeleton Worker Card to Dagger
setarray .@mailcard2[0], 0, 0, 0, 4092; // Attach Skeleton Worker Card to Dagger
setarray .@mailcard3[0], 0, 0, 0, 0; // Empty last slot
setarray .@mailrndopt_id0[0], 0, 0, 0, 0, RDMOPT_VAR_MAXHPAMOUNT; // Enchant the Dagger with increased HP option
setarray .@mailrndopt_val0[0], 0, 0, 0, 0, 1000; // Enchant the Dagger with increased HP option by 1000 points
setarray .@mailrndopt_prm0[0], 0, 0, 0, 0, 0; // Enchant the Dagger with increased HP option - does not need any parameter
mail .@charid, .@sender$, .@title$, .@body$, .@zeny, .@mailitem, .@mailamount, .@mailcard0, .@mailcard1, .@mailcard2, .@mailcard3, .@mailrndopt_id0, .@mailrndopt_val0, .@mailrndopt_prm0;
---------------------------------------
*openauction({<char_id>});
This will open the Auction window on the client connected to the invoking character.
......
......@@ -1949,7 +1949,7 @@ OnTouch_:
lhz_in01,24,140,3 script Regenschirm Guard#40 4_M_LGTGUARD,{
mes "[Regenschirm Guard]";
if (lhz_sincube > 10 && countitem(2657) > 0) {// Lab_Passport
if ((MISC_QUEST&512) && countitem(2657) > 0) {// Lab_Passport
mes "Do you wish to";
mes "go underground?";
next;
......
This diff is collapsed.
......@@ -405,19 +405,19 @@ dali,72,55,4 script Interdimensional Device CLEAR_NPC,{
switch( checkquest(12325,PLAYTIME) ) {
case -1:
switch( instance_enter(.@md_name$) ) {
case 3:
case IE_OTHER:
mes "[Interdimensional Device]";
mes "An unknown error has occurred.";
close;
case 2:
case IE_NOINSTANCE:
mes "[Interdimensional Device]";
mes "The passage for space travel is not activated yet.";
close;
case 1:// Custom text
case IE_NOMEMBER:// Custom text
mes "[Interdimensional Device]";
mes "You are not allowed to access the device.";
close;
case 0:
case IE_OK:
mapannounce "dali", getpartyname(.@party_id) + " party's party member " + strcharinfo(0) + " enters " + .@md_name$ + ".",bc_map,"0x00ff99";
setquest 12325;// Faceworm's Nest after-effects
//warp "1@face",112,374;
......
This diff is collapsed.
......@@ -5318,7 +5318,7 @@ new_1-3,108,165,3 script Ghostring#cupet 4_GHOSTRING,{
// - Little Porings
// -----------------------------------------------------------------------------
new_1-3,105,165,5 script Cowardly Poring#pet_1 2398,{ end; }
new_1-3,105,164,5 script Unskillful Poring#pet_2 2398,{ end; }
new_1-3,105,164,5 script Unskilled Poring#pet_2 2398,{ end; }
new_1-3,105,163,5 script Foolish Poring#pet_3 2398,{ end; }
// - Kafra Guide Trainer
......
......@@ -61,6 +61,7 @@ npc: npc/re/instances/FacewormsNest.txt
npc: npc/re/instances/GhostPalace.txt
npc: npc/re/instances/HazyForest.txt
npc: npc/re/instances/HorrorToyFactory.txt
npc: npc/re/instances/IsleOfBios.txt
npc: npc/re/instances/LastRoom.txt
npc: npc/re/instances/MalangdoCulvert.txt
npc: npc/re/instances/OctopusCave.txt
......
......@@ -4105,7 +4105,7 @@ REPLACE INTO `item_db_re` VALUES (5973,'Ancient_Elven_Ear_J','Ancient Elven Ear
REPLACE INTO `item_db_re` VALUES (5978,'Syringe_Toy','Toy Syringe',4,0,NULL,100,NULL,3,NULL,0,0xFFFFFFFF,63,2,1,NULL,'70',0,842,'bonus bMdef,3; bonus2 bAddItemHealRate,545,150; bonus2 bAddItemHealRate,546,150; bonus2 bAddItemHealRate,547,150;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (5979,'C_Angel_Fluttering','C Angel Fluttering',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,4096,NULL,'1',0,1380,'hateffect HAT_EF_ANGEL_FLUTTERING,true;',NULL,'hateffect HAT_EF_ANGEL_FLUTTERING,false;');
REPLACE INTO `item_db_re` VALUES (5980,'C_Classical_Fhat','C Classical Fhat',4,0,NULL,0,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',0,1381,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (5985,'Noble_Mask','Noble Mask',4,0,NULL,200,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,256,NULL,'30',0,1409,'bonus2 bSkillAtk,"PA_SACRIFICE",BaseLevel*2; bonus2 bSkillVariableCast,"PA_PRESSURE",-2000; bonus2 bSkillVariableCast,"CR_DEVOTION",-2000; if (BaseLevel > 149) { bonus bMaxHPrate,3; bonus bAspdRate,3; } else if (BaseLevel > 99) { bonus bMaxHPrate,2; bonus bAspdRate,2; } else { bonus bMaxHPrate,1; bonus bAspdRate,1; }',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (5985,'Noble_Mask','Noble Mask',4,0,NULL,200,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,512,NULL,'30',1,1409,'bonus2 bSkillAtk,"PA_SACRIFICE",BaseLevel*2; bonus2 bSkillVariableCast,"PA_PRESSURE",-2000; bonus2 bSkillVariableCast,"CR_DEVOTION",-2000; if (BaseLevel > 149) { bonus bMaxHPrate,3; bonus bAspdRate,3; } else if (BaseLevel > 99) { bonus bMaxHPrate,2; bonus bAspdRate,2; } else { bonus bMaxHPrate,1; bonus bAspdRate,1; }',NULL,NULL);
#===================================================================
# More Etc Items
#===================================================================
......@@ -6756,12 +6756,12 @@ REPLACE INTO `item_db_re` VALUES (12526,'E_Wind_Walk_10_Scroll','Wind Walk Scrol
REPLACE INTO `item_db_re` VALUES (12527,'E_Adrenaline_Scroll','Adrenaline Scroll',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemskill "BS_ADRENALINE",5;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12528,'E_Convex_Mirror','Convex Mirror',2,2,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_BOSSMAPINFO,600000,0;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12529,'White_Slim_Potion_Box','White Slim Potion Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 11573,100;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12530,'Mastela_Fruit_Box','Mastela Fruit Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12530,'Mastela_Fruit_Box','Mastela Fruit Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 522,200;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12531,'White_Potion_Box','White Potion Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 504,100;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12532,'Royal_Jelly_Box2','Royal Jelly Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 526,100;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12533,'Blue_Herb_Box2','Blue Herb Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 510,100;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12534,'Yggdrasil_Seed_Box','Yggdrasil Seed Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12535,'Iggdrasilberry_Box','Iggdrasilberry Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12534,'Yggdrasil_Seed_Box','Yggdrasil Seed Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 608,30;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12535,'Iggdrasilberry_Box','Iggdrasilberry Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 607,15;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12536,'NY_Rice_Cake_Soup','NY Rice Cake Soup',2,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12537,'Solo_Gift_Basket','Solo Gift Basket',2,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*getgroupitem(IG_Solo_Gift_Basket);*/ getitem 597,5; getitem 596,3; getitem 561,3; getitem 573,4; getitem 559,10; getitem 560,10;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (12538,'Couple_Event_Basket','Couple Event Basket',2,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*getgroupitem(IG_Couple_Event_Basket);*/ getitem 14546,10; getitem 14547,10; getitem 14548,10; getitem 14549,10; getitem 14550,10;',NULL,NULL);
......@@ -11017,6 +11017,7 @@ REPLACE INTO `item_db_re` VALUES (22533,'New_Year_Gift_Box','New Year Gift Box',
REPLACE INTO `item_db_re` VALUES (22534,'Closedmind_Box','Closed Mind Box',18,10,NULL,1000,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,'1',NULL,NULL,'getgroupitem(IG_Sealed_Mind_Box);',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (22535,'WorkerScroll_A','Scroll Summoning Workers(Male)',2,10,NULL,10,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (22536,'WorkerScroll_B','Scroll Summoning Workers(Female)',2,10,NULL,10,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (22537,'PrizeOfHero','Prize Of Hero',2,0,NULL,100,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,'1',NULL,NULL,'getrandgroupitem(IG_PrizeOfHero,1);',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (22538,'Hanbok_bag','Hanbok bag',2,10,NULL,10,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,'1',NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `item_db_re` VALUES (22540,'Runstone_Lux','Lux Anima Runestone',11,2,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,56,2,NULL,NULL,NULL,NULL,NULL,'itemskill "RK_LUXANIMA",1;',NULL,NULL);
REPLACE INTO `item_db_re` VALUES (22541,'PC_Room_Coupon_Box_VI','PC Room Coupon Box VI',18,10,NULL,10,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
......@@ -2233,15 +2233,15 @@ REPLACE INTO `mob_db_re` VALUES (2997,'G_XM_CELINE_KIMI','Kimi\'s Phantom','Kimi
#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
REPLACE INTO `mob_db_re` VALUES (3010,'EP14_3_DEATH_A_MOB1','Corrupt Orc Baby','Corrupt Orc Baby',158,250000,1,12390,16104,1,1036,1415,240,50,120,85,80,60,88,50,10,12,0,7,42,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3011,'EP14_3_DEATH_A_MOB2','Corrupt Baby Desert Wol','Corrupt Baby Desert Wol',158,232890,1,12390,16104,1,1016,1395,240,45,100,85,100,88,120,50,10,12,0,2,43,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3012,'EP14_3_DEATH_A_MOB3','Corrupt Familiar','Corrupt Familiar',158,222550,1,12390,16104,1,1002,1381,240,70,86,85,75,53,100,50,10,12,0,5,41,0x0000085,120,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3013,'EP14_3_DEATH_B_MOB1','Corrupt Orc Warrior','Corrupt Orc Warrior',158,300000,1,12390,16104,1,1066,1445,240,60,150,85,150,40,122,70,10,12,1,7,42,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3014,'EP14_3_DEATH_B_MOB2','Corrupt Desert Wolf','Corrupt Desert Wolf',158,292450,1,12390,16104,1,1036,1415,240,50,120,85,110,55,130,70,10,12,1,2,43,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3015,'EP14_3_DEATH_B_MOB3','Corrupt Phen','Corrupt Phen',158,284110,1,12390,16104,1,1026,1405,240,100,110,85,95,70,115,70,10,12,1,5,41,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3016,'EP14_3_DEATH_C_MOB1','Corrupt Orc Zombie','Corrupt Orc Zombie',158,375000,1,12390,16104,1,1096,1475,150,150,180,145,202,40,88,30,10,12,1,7,49,0x0000085,170,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3017,'EP14_3_DEATH_C_MOB2','Corrupt Verit','Corrupt Verit',158,352715,1,12390,16104,1,1082,1461,200,100,166,87,150,60,150,130,10,12,1,2,49,0x0000085,150,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3018,'EP14_3_DEATH_C_MOB3','Corrupt Megalodon','Corrupt Megalodon',158,347413,1,12390,16104,1,1073,1452,240,300,157,80,140,90,209,84,10,12,1,5,49,0x0000085,170,864,400,150,0,0,0,0,0,0,0,607,10,603,20,604,20,715,20,717,20,716,20,522,20,0,0,0,0,0,0);
#3019,CELINE_KIMI
REPLACE INTO `mob_db_re` VALUES (3020,'FIRE_CONDOR','Fire Condor','Fire Condor',141,125114,1,7021,7481,1,1364,2565,71,45,104,72,66,10,113,52,10,12,1,2,43,0x0000081,110,1148,648,480,0,0,0,0,0,0,0,6691,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3021,'FIRE_SAND_MAN','Fire Sand Man','Fire Sandman',143,130501,1,7207,7734,1,1404,2760,122,73,84,36,25,55,124,35,10,12,1,0,63,0x003885,150,1672,720,288,0,0,0,0,0,0,0,6694,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
......@@ -2252,7 +2252,7 @@ REPLACE INTO `mob_db_re` VALUES (3023,'FIRE_GOLEM','Fire Golem','Fire Golem',148
REPLACE INTO `mob_db_re` VALUES (3026,'FIREPIT','Fire Pit','Fire Pit',17,10,1,58,43,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x170000,400,2612,912,288,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);
REPLACE INTO `mob_db_re` VALUES (3027,'FULBUK','Fire Bug','Fire Bug',150,234,1,58,47,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x0000001,120,1288,288,768,0,0,0,0,0,0,0,6689,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
REPLACE INTO `mob_db_re` VALUES (3028,'SONIA','Sonia','Sonia',17,20,1,58,43,1,38,50,20,3,15,8,17,0,15,0,10,12,1,1,29,0x170000,400,2612,912,288,0,0,0,0,0,0,0,6690,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
#3029,GRIM_REAPER_ANKOU
REPLACE INTO `mob_db_re` VALUES (3029,'GRIM_REAPER_ANKOU','Grim Reaper Ankou','Reaper Yanku',159,50000000,1553,300000,330000,1,1500,2500,200,70,200,100,200,200,220,100,10,12,2,1,89,0x6200085,200,900,864,480,0,0,0,0,0,0,0,607,500,603,200,604,200,22537,10000,0,0,522,200,0,0,0,0,0,0,0,0);
#3030,STANDING_SOUL
#3031,MUTANT_NECROMANCER
#3032,MUTANT_GHOUL
......
......@@ -11106,6 +11106,11 @@ REPLACE INTO `mob_skill_db_re` VALUES (2997,'Kimi\'s Phantom@NPC_POWERUP','attac
REPLACE INTO `mob_skill_db_re` VALUES (3026,'Fire Pit@NPC_DEATHSUMMON','dead',718,3,10000,0,10000,'no','self','always','0',3027,3027,3027,NULL,NULL,NULL,NULL);
# Episode 14.3: Isle of Bios
REPLACE INTO `mob_skill_db_re` VALUES (3029,'Grim Reaper Ankou@NPC_COMET','attack',708,3,1000,10000,75000,'no','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db_re` VALUES (3029,'Grim Reaper Ankou@NPC_DARKCROSS','attack',338,10,500,2000,12000,'no','target','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db_re` VALUES (3029,'Grim Reaper Ankou@NPC_DRAGONFEAR','attack',659,5,1000,3000,30000,'no','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db_re` VALUES (3038,'Hidden Mob 7@NPC_INVISIBLE','idle',353,1,10000,0,30000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
REPLACE INTO `mob_skill_db_re` VALUES (3038,'Hidden Mob 7@NPC_INVISIBLE','attack',353,1,10000,0,30000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
#REPLACE INTO `mob_skill_db_re` VALUES ( 3038,'Hidden Mob 7@NPC_HELLBURNING','idle',719,1,10000,0,3000,'yes','self','always','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL);
......@@ -484,7 +484,8 @@ void mapif_Mail_return(int fd, uint32 char_id, int mail_id)
else if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", schema_config.mail_db, mail_id)
|| SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `id` = '%d'", schema_config.mail_attachment_db, mail_id) )
Sql_ShowDebug(sql_handle);
else
// If it was not sent by the server, since we do not want to return mails to the server
else if( msg.send_id != 0 )
{
char temp_[MAIL_TITLE_LENGTH];
......@@ -543,20 +544,38 @@ void mapif_parse_Mail_send(int fd)
{
struct mail_message msg;
char esc_name[NAME_LENGTH*2+1];
char *data;
size_t len;
if(RFIFOW(fd,2) != 8 + sizeof(struct mail_message))
return;
memcpy(&msg, RFIFOP(fd,8), sizeof(struct mail_message));
if( msg.dest_id != 0 ){
if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `char_id`, `name` FROM `%s` WHERE `char_id` = '%u'", schema_config.char_db, msg.dest_id) ){
Sql_ShowDebug(sql_handle);
return;
}
msg.dest_id = 0;
msg.dest_name[0] = '\0';
if( SQL_SUCCESS == Sql_NextRow(sql_handle) ){
Sql_GetData(sql_handle, 0, &data, NULL);
msg.dest_id = atoi(data);
Sql_GetData(sql_handle, 1, &data, &len);
safestrncpy(msg.dest_name, data, NAME_LENGTH);
}
Sql_FreeResult(sql_handle);
}
// Try to find the Dest Char by Name
Sql_EscapeStringLen(sql_handle, esc_name, msg.dest_name, strnlen(msg.dest_name, NAME_LENGTH));
if ( SQL_ERROR == Sql_Query(sql_handle, "SELECT `account_id`, `char_id` FROM `%s` WHERE `name` = '%s'", schema_config.char_db, esc_name) )
if ( SQL_ERROR == Sql_Query(sql_handle, "SELECT `account_id`, `char_id` FROM `%s` WHERE `name` = '%s'", schema_config.char_db, esc_name) ){
Sql_ShowDebug(sql_handle);
else
if ( SQL_SUCCESS == Sql_NextRow(sql_handle) )
{
char *data;
}else if ( SQL_SUCCESS == Sql_NextRow(sql_handle) ){
#if PACKETVER < 20150513
uint32 account_id = RFIFOL(fd,4);
......
......@@ -6232,6 +6232,11 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
case NPC_VENOMFOG:
skillratio += 600 + 100 * skill_lv;
break;
case NPC_COMET:
i = (sc ? distance_xy(target->x, target->y, sc->comet_x, sc->comet_y) : 8) / 2;
i = cap_value(i, 1, 4);
skillratio = 2500 + ((skill_lv - i) * 500);
break;
}
if (sc) {// Insignia's increases the damage of offensive magic by a fixed percentage depending on the element.
......
......@@ -1045,7 +1045,6 @@ void hom_alloc(struct map_session_data *sd, struct s_homunculus *hom)
map_addiddb(&hd->bl);
status_calc_homunculus(hd, SCO_FIRST);
status_percent_heal(&hd->bl, 100, 100);
hd->hungry_timer = INVALID_TIMER;
hd->masterteleport_timer = INVALID_TIMER;
......@@ -1121,6 +1120,7 @@ int hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag)
{
struct map_session_data *sd;
struct homun_data *hd;
bool created = false;
sd = map_id2sd(account_id);
if(!sd)
......@@ -1137,14 +1137,19 @@ int hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag)
return 0;
}
if (!sd->status.hom_id) //Hom just created.
if (!sd->status.hom_id) { //Hom just created.
sd->status.hom_id = sh->hom_id;
created = true;
}
if (sd->hd) //uh? Overwrite the data.
memcpy(&sd->hd->homunculus, sh, sizeof(struct s_homunculus));
else
hom_alloc(sd, sh);
hd = sd->hd;
if (created)
status_percent_heal(&hd->bl, 100, 100);
if(hd && hd->homunculus.hp && !hd->homunculus.vaporize && hd->bl.prev == NULL && sd->bl.prev != NULL)
{
if(map_addblock(&hd->bl))
......
......@@ -731,6 +731,7 @@ enum e_random_item_group {
IG_CHRISTMAS_BOX,
IG_SPECIAL_CHRISTMAS_BOX,
IG_SANTA_GIFT,
IG_PRIZEOFHERO,
};
/// Enum for bound/sell restricted selling
......
......@@ -23802,6 +23802,260 @@ BUILDIN_FUNC(getequiptradability) {
return SCRIPT_CMD_SUCCESS;
}
static inline bool mail_sub( struct script_state *st, struct script_data *data, struct map_session_data *sd, int i, const char **out_name, unsigned int *start, unsigned int *end, int32 *id ){
const char *name;
// Check if it is a variable
if( !data_isreference(data) ){
ShowError("buildin_mail: argument %d is not a variable.\n", i );
return false;
}
name = reference_getname(data);
if( is_string_variable(name) ){
ShowError( "buildin_mail: variable \"%s\" is a string variable.\n", name );
return false;
}
// Check if the variable requires a player
if( not_server_variable(*name) && sd == NULL ){
// If no player is attached
if( !script_rid2sd(sd) ){
ShowError( "buildin_mail: variable \"%s\" was not a server variable, but no player was attached.\n", name );
return false;
}
}
// Try to find the array's source pointer
if( !script_array_src( st, sd, name, reference_getref(data) ) ){
ShowError( "buildin_mail: variable \"%s\" is not an array.\n" );
return false;
}
// Store the name for later usage
*out_name = name;
// Get the start and end indices of the array
*start = reference_getindex(data);
*end = script_array_highest_key( st, sd, name, reference_getref(data) );
// For getting the values we need the id of the array
*id = reference_getid(data);
return true;
}
BUILDIN_FUNC(mail){
const char *sender, *title, *body, *name;
struct mail_message msg;
struct script_data *data;
struct map_session_data *sd = NULL;
unsigned int i, j, k, num_items, start, end;
int32 id;
memset(&msg, 0, sizeof(struct mail_message));
msg.dest_id = script_getnum(st,2);
sender = script_getstr(st, 3);
if( strlen(sender) > NAME_LENGTH ){
ShowError( "buildin_mail: sender name can not be longer than %d characters.\n", NAME_LENGTH );
return SCRIPT_CMD_FAILURE;
}
safestrncpy(msg.send_name, sender, NAME_LENGTH);
title = script_getstr(st, 4);
if( strlen(title) > MAIL_TITLE_LENGTH ){
ShowError( "buildin_mail: title can not be longer than %d characters.\n", MAIL_TITLE_LENGTH );
return SCRIPT_CMD_FAILURE;
}
safestrncpy(msg.title, title, MAIL_TITLE_LENGTH);
body = script_getstr(st, 5);
if( strlen(body) > MAIL_BODY_LENGTH ){
ShowError( "buildin_mail: body can not be longer than %d characters.\n", MAIL_BODY_LENGTH );
return SCRIPT_CMD_FAILURE;
}
safestrncpy(msg.body, body, MAIL_BODY_LENGTH);
if( script_hasdata(st,6) ){
int zeny = script_getnum(st, 6);
if( zeny < 0 ){
ShowError( "buildin_mail: a negative amount of zeny can not be sent.\n" );
return SCRIPT_CMD_FAILURE;
}else if( zeny > MAX_ZENY ){
ShowError( "buildin_mail: amount of zeny %u is exceeding maximum of %u. Capping...\n", zeny, MAX_ZENY );
zeny = MAX_ZENY;
}
msg.zeny = zeny;
}
// Items
num_items = 0;
while( script_hasdata(st,7) ){
data = script_getdata(st,7);
if( !mail_sub( st, data, sd, 7, &name, &start, &end, &id ) ){
return SCRIPT_CMD_FAILURE;
}
num_items = end - start;
if( num_items == 0 ){
ShowWarning( "buildin_mail: array \"%s\" contained no items.\n", name );
break;
}
if( num_items > MAIL_MAX_ITEM ){
ShowWarning( "buildin_mail: array \"%s\" contained %d items, capping to maximum of %d...\n", name, num_items, MAIL_MAX_ITEM );
num_items = MAIL_MAX_ITEM;
}
for( i = 0; i < num_items && start < end; i++, start++ ){
msg.item[i].nameid = (int32)__64BPRTSIZE( get_val2( st, reference_uid( id, start ), reference_getref( data ) ) );
msg.item[i].identify = 1;
script_removetop(st, -1, 0);
if( !itemdb_exists(msg.item[i].nameid) ){
ShowError( "buildin_mail: invalid item id %hu.\n", msg.item[i].nameid );
return SCRIPT_CMD_FAILURE;
}
}
// Amounts
if( !script_hasdata(st,8) ){
ShowError("buildin_mail: missing item count variable at position %d.\n", 8);
return SCRIPT_CMD_FAILURE;
}
data = script_getdata(st,8);
if( !mail_sub( st, data, sd, 8, &name, &start, &end, &id ) ){
return SCRIPT_CMD_FAILURE;
}
for( i = 0; i < num_items && start < end; i++, start++ ){
struct item_data *item = itemdb_exists(msg.item[i].nameid);