diff options
author | Jesusaves <cpntb1@ymail.com> | 2024-07-30 13:04:05 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2024-07-30 13:04:05 -0300 |
commit | 815274c4fea950ac943c5658cd02f4428e5d3657 (patch) | |
tree | 341fb3f6b4e8075447b4821e8f6ab7728d03c80b | |
parent | 5d3f2e256ef1bc5d02671caf4a124bb7f1e1f021 (diff) | |
download | serverdata-815274c4fea950ac943c5658cd02f4428e5d3657.tar.gz serverdata-815274c4fea950ac943c5658cd02f4428e5d3657.tar.bz2 serverdata-815274c4fea950ac943c5658cd02f4428e5d3657.tar.xz serverdata-815274c4fea950ac943c5658cd02f4428e5d3657.zip |
Smoke Dragons. They show up during Easter. They drop Dragon Eggshell Hat.
-rw-r--r-- | db/re/mob_db.conf | 53 | ||||
-rw-r--r-- | db/re/mob_skill_db.conf | 56 | ||||
-rw-r--r-- | npc/001-4/lilica.txt | 75 | ||||
-rw-r--r-- | npc/functions/seasons.txt | 11 |
4 files changed, 189 insertions, 6 deletions
diff --git a/db/re/mob_db.conf b/db/re/mob_db.conf index aa1571ebb..7ee24d76f 100644 --- a/db/re/mob_db.conf +++ b/db/re/mob_db.conf @@ -588,7 +588,6 @@ mob_db: ( }, // 1013 is free // mob ids which is free: 1013 (pikpik) -// is free: 1046, 1048 (dragons?) // is free: 1057, 1059 (small/big mineral bif) { Id: 1014 @@ -2022,7 +2021,57 @@ mob_db: ( Honey: 100 } }, -// 1048 is free +{ + Id: 1048 + SpriteName: "SmokeDragon" + Name: "Smoke Dragon" + Lv: 105 + Hp: 30000 + Sp: 1248 + Exp: 14500 + JExp: 80 + AttackRange: 6 + Attack: [450, 550] + Def: 180 + Mdef: 325 + WalkMask: "WALK_AIR" + Stats: { + Str: 60 + Agi: 76 + Vit: 86 + Int: 70 + Dex: 86 + Luk: 50 + } + ViewRange: 10 + ChaseRange: 15 + Race: 9 + Element: (7, 3) + Mode: { + CanMove: true + Looter: true + Aggressive: true + Assist: true + CanAttack: true + ChangeTargetMelee: true + ChangeChase: true + } + MoveSpeed: 450 + AttackDelay: 1672 + AttackMotion: 472 + DamageMotion: 380 + Drops: { + DragonScales: 2400 + Dragonfruit: 1200 + ScrollSDragon: 100 + ScrollBattlePlansA: 100 + DragonEggshell: 25 + DragonStar: 2 + } + WeaponAttacks: { + All: 7000 + } +}, { Id: 1049 SpriteName: "BhopFluffy" diff --git a/db/re/mob_skill_db.conf b/db/re/mob_skill_db.conf index 038d4b58a..3f618e822 100644 --- a/db/re/mob_skill_db.conf +++ b/db/re/mob_skill_db.conf @@ -697,6 +697,62 @@ SKILL_COND2 = { } /**********************************************************************/ + SmokeDragon: { + ASC_METEORASSAULT: { + SkillState: "MSS_BERSERK" + SkillLevel: 1 + Rate: 4000 + CastTime: 600 + Delay: 20000 + Cancelable: true + SkillTarget: "MST_TARGET" + CastCondition: "MSC_ALWAYS" + } + NPC_CURSEATTACK: { + SkillState: "MSS_BERSERK" + SkillLevel: 1 + Rate: 1200 + CastTime: 1200 + Delay: 35000 + Cancelable: true + SkillTarget: "MST_TARGET" + CastCondition: "MSC_ALWAYS" + } + SO_FIREWALK: { + SkillState: "MSS_BERSERK" + SkillLevel: 3 + Rate: 2800 + CastTime: 1200 + Delay: 60000 + Cancelable: true + SkillTarget: "MST_TARGET" + CastCondition: "MSC_ALWAYS" + } + // Forain + NPC_SUMMONMONSTER: { + SkillState: "MSS_ANYTARGET" + SkillLevel: 2 + Rate: 6000 + CastTime: 800 + Delay: 90000 + Cancelable: false + SkillTarget: "MST_SELF" + CastCondition: "MSC_MYHPLTMAXRATE" + ConditionData: 70 + val0: 1061 + } + SM_BASH: { + SkillState: "MSS_BERSERK" + SkillLevel: 5 + Rate: 2700 + Delay: 18000 + Cancelable: true + SkillTarget: "MST_TARGET" + CastCondition: "MSC_ALWAYS" + } + } + + /**********************************************************************/ RobinBandit: { NPC_POISON: { SkillState: "MSS_BERSERK" diff --git a/npc/001-4/lilica.txt b/npc/001-4/lilica.txt index 95ccb15eb..9e5c78ac0 100644 --- a/npc/001-4/lilica.txt +++ b/npc/001-4/lilica.txt @@ -91,8 +91,10 @@ L_Unlucky: // Leaderboard functions, and initialization OnClock0100: OnClock1300: - if ($EVENT$ == "Easter") + if ($EVENT$ == "Easter") { .@nb = query_sql("SELECT c.name, i.amount FROM `inventory` AS i, `char` AS c WHERE i.nameid=834 AND i.char_id=c.char_id ORDER BY i.amount DESC LIMIT 10", $@easter_name$, $@easter_value); + initnpctimer; + } end; OnInit: @@ -103,6 +105,77 @@ OnInit: sEaster(); end; +// Smoke Dragon Sequencers (every 2 hours in average) +OnClock0300: +OnClock0900: +OnClock1700: + if ($EVENT$ != "Easter" || $GAME_STORYLINE < 5) end; +OnClock0500: +OnClock1100: +OnClock1900: + if ($EVENT$ != "Easter" || $GAME_STORYLINE < 4) end; +OnClock1500: +OnClock2300: + if ($EVENT$ != "Easter" || $GAME_STORYLINE < 3) end; +OnClock0700: +OnClock2100: + if ($EVENT$ != "Easter" || $GAME_STORYLINE < 2) end; + initnpctimer; + end; + +// Smoke Dragon Logic +OnTimer5000: + mapannounce "001-4", "Lilica : Be careful - I feel dragons approaching!", bc_map; + end; + +OnSmoked: + end; + +OnTimer30000: + // They spawn above the traps + monster("001-4", 275, 204, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 260, 182, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 231, 173, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 199, 171, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 200, 144, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 247, 127, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 265, 135, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 271, 110, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 190, 30, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 163, 33, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 177, 49, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 164, 89, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 130, 84, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 126, 47, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 130, 32, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 107, 33, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 33, 141, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 82, 149, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 42, 118, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 24, 106, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 79, 163, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 42, 175, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 26, 184, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 32, 198, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 102, 275, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 128, 274, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 130, 256, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 128, 220, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 156, 212, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 166, 246, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 176, 270, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + monster("001-4", 160, 270, strmobinfo(1, SmokeDragon), SmokeDragon, 1, "Lilica#easter::OnSmoked"); + end; + +OnTimer900000: + mapannounce "001-4", "Lilica : I feel the dragons leaving!", bc_map; + end; + +OnTimer1000000: + killmonster("001-4", "Lilica#easter::OnSmoked"); + stopnpctimer; + end; + // Special shop functions function EEX_check { .@tier = getarg(0); // Minimum reward level diff --git a/npc/functions/seasons.txt b/npc/functions/seasons.txt index cf469896e..b3f4ce80b 100644 --- a/npc/functions/seasons.txt +++ b/npc/functions/seasons.txt @@ -121,11 +121,14 @@ function script sValentine { } function script sEaster { - // Enable event - set $EVENT$, "Easter"; addmonsterdrop(Forain, DarkEggshellHat, 2); - if (playerattached()) + addmonsterdrop(SmokeDragon, GoldenEasteregg, 7500); + addmonsterdrop(SmokeDragon, SilverEasteregg, 9000); + // Enable event + if (playerattached()) { + set $EVENT$, "Easter"; logmes "Enabled EASTER event.", LOGMES_ATCOMMAND; + } return; } @@ -214,6 +217,8 @@ function script SeasonReload { sChristmas(); if ($EVENT$ == "Valentine") sValentine(); + if ($EVENT$ == "Easter") + sEaster(); $@SEASON=season(); initnpctimer("#SeasonCore"); |