summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2024-07-30 13:04:05 -0300
committerJesusaves <cpntb1@ymail.com>2024-07-30 13:04:05 -0300
commit815274c4fea950ac943c5658cd02f4428e5d3657 (patch)
tree341fb3f6b4e8075447b4821e8f6ab7728d03c80b
parent5d3f2e256ef1bc5d02671caf4a124bb7f1e1f021 (diff)
downloadserverdata-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.conf53
-rw-r--r--db/re/mob_skill_db.conf56
-rw-r--r--npc/001-4/lilica.txt75
-rw-r--r--npc/functions/seasons.txt11
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");