diff options
-rw-r--r-- | world/map/db/mob_db.conf | 14 | ||||
-rw-r--r-- | world/map/db/mob_db_60_79.txt | 2 | ||||
-rw-r--r-- | world/map/db/mob_db_over_100.txt | 2 | ||||
-rw-r--r-- | world/map/npc/012-3/beheader.txt | 2 | ||||
-rw-r--r-- | world/map/npc/013-3/mask_chest.txt | 164 | ||||
-rw-r--r-- | world/map/npc/functions/vault.txt | 76 |
6 files changed, 164 insertions, 96 deletions
diff --git a/world/map/db/mob_db.conf b/world/map/db/mob_db.conf index 0ad6e0a2..ae92f099 100644 --- a/world/map/db/mob_db.conf +++ b/world/map/db/mob_db.conf @@ -8934,22 +8934,22 @@ mob_db: ( SpriteName: "Brainblow" Name: "Brainblow" Lv: 77 - Hp: 7 + Hp: 200 Sp: 0 Exp: 100 JExp: 50 AttackRange: 1 - Attack: [100, 100] + Attack: [10, 10] Def: 0 Mdef: 0 CriticalDef: 0 Stats: { Str: 1 - Agi: 77 + Agi: 7 Vit: 1 Int: 1 - Dex: 77 - Luk: 77 + Dex: 123 + Luk: 123 } ViewRange: 9 ChaseRange: 10 @@ -8964,7 +8964,7 @@ mob_db: ( ChangeTargetChase: true } MoveSpeed: 77 - AttackDelay: 100 + AttackDelay: 500 AttackMotion: 672 DamageMotion: 200 }, @@ -9003,7 +9003,7 @@ mob_db: ( ChangeTargetChase: true } MoveSpeed: 120 - AttackDelay: 555 + AttackDelay: 800 AttackMotion: 672 DamageMotion: 200 Drops: { diff --git a/world/map/db/mob_db_60_79.txt b/world/map/db/mob_db_60_79.txt index b00b3365..687629a9 100644 --- a/world/map/db/mob_db_60_79.txt +++ b/world/map/db/mob_db_60_79.txt @@ -13,4 +13,4 @@ 1117, UndeadTroll, UndeadTroll, 75, 3100, 0, 1770, 179, 3, 60, 140, 20, 10, 0, 50, 40, 20, 10, 40, 49, 9, 10, 1, 0, 10, 133, 650, 1500, 672, 480, 1199, 2000, 631, 1000, 529, 500, 539, 300, 526, 250, 4023, 200, 906, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40 1163, FridayCat, FridayCat, 70, 450, 0, 130, 17, 1, 40, 45, 2, 7, 0, 12, 8, 2, 1, 25, 1, 9, 10, 1, 0, 11, 131, 1300, 1500, 672, 480, 3001, 10, 5354, 10, 3002, 5, 3003, 9, 3011, 250, 3006, 750, 3007, 1000, 3010, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20 1187, EliteDuck, EliteDuck, 75, 14000, 0, 8800, 860, 2, 170, 195, 50, 80, 0, 70, 120, 10, 42, 48, 95, 5, 12, 1, 2, 13, 167, 225, 500, 472, 200, 5349, 1000, 5365, 1100, 562, 1000, 562, 500, 4023, 500, 5354, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 40 -1195, Brainblow, Brainblow, 77, 7, 0, 100, 50, 1, 100, 100, 0, 0, 0, 1, 77, 1, 1, 77, 77, 9, 10, 1, 0, 27, 133, 77, 100, 672, 200, 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, 0, 0, 0, 0, 0 +1195, Brainblow, Brainblow, 77, 200, 0, 100, 50, 1, 10, 10, 0, 0, 0, 1, 7, 1, 1, 123, 123, 9, 10, 1, 0, 27, 133, 77, 500, 672, 200, 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, 0, 0, 0, 0, 0 diff --git a/world/map/db/mob_db_over_100.txt b/world/map/db/mob_db_over_100.txt index 2047dde2..8e7c1ff0 100644 --- a/world/map/db/mob_db_over_100.txt +++ b/world/map/db/mob_db_over_100.txt @@ -57,6 +57,6 @@ 1185, EntAbomination, EntAbomination, 130, 45000, 280, 58000, 1600, 2, 200, 250, 80, 60, 0, 40, 12, 120, 127, 60, 88, 31, 30, 1, 3, 12, 169, 1500, 900, 772, 740, 569, 2000, 569, 2000, 806, 250, 806, 500, 740, 500, 740, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 20 1188, Junglefowl, Junglefowl, 125, 25500, 0, 15000, 2125, 1, 175, 250, 45, 47, 0, 70, 99, 80, 22, 99, 70, 7, 11, 1, 2, 12, 169, 400, 1000, 672, 200, 5373, 1000, 5375, 1100, 562, 1000, 562, 500, 4023, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1194, Birb, Birb, 101, 57000, 0, 44000, 2000, 1, 320, 370, 45, 70, 0, 12, 63, 88, 110, 141, 77, 9, 12, 1, 2, 17, 161, 320, 2100, 672, 200, 5374, 1000, 5376, 1100, 562, 1000, 562, 500, 4023, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -1196, RickLime, RickLime, 120, 54321, 0, 100001, 777, 7, 123, 321, 33, 55, 44, 30, 99, 80, 33, 123, 123, 9, 10, 1, 1, 37, 133, 120, 555, 672, 200, 526, 500, 526, 500, 526, 1000, 526, 2000, 742, 5, 742, 5, 5280, 10, 909, 5, 910, 5, 5297, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +1196, RickLime, RickLime, 120, 54321, 0, 100001, 777, 7, 123, 321, 33, 55, 44, 30, 99, 80, 33, 123, 123, 9, 10, 1, 1, 37, 133, 120, 800, 672, 200, 526, 500, 526, 500, 526, 1000, 526, 2000, 742, 5, 742, 5, 5280, 10, 909, 5, 910, 5, 5297, 10000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1197, Blanc1, Blanc1, 150, 55055, 0, 300000, 3000, 10, 600, 800, 50, 70, 60, 30, 99, 80, 33, 133, 133, 10, 10, 1, 1, 37, 135, 200, 500, 672, 200, 526, 10000, 526, 500, 526, 500, 5294, 750, 5294, 750, 503, 250, 503, 250, 5287, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1198, Blanc2, Blanc2, 150, 33033, 0, 200000, 2000, 2, 250, 350, 50, 70, 60, 30, 99, 80, 33, 133, 133, 6, 6, 1, 1, 37, 135, 200, 300, 672, 200, 526, 10000, 526, 500, 526, 500, 5294, 750, 5294, 750, 503, 250, 503, 250, 5287, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 diff --git a/world/map/npc/012-3/beheader.txt b/world/map/npc/012-3/beheader.txt index dbdd5f11..ddd46c53 100644 --- a/world/map/npc/012-3/beheader.txt +++ b/world/map/npc/012-3/beheader.txt @@ -176,7 +176,7 @@ L_Finish: goto L_Nope; getitem "Beheader", 1; - getexp 750000, 0; + getexp 1000000, 0; set FLAGS, FLAGS | FLAG_GOT_BEHEADER_SWORD; set TERRAC, 0; diff --git a/world/map/npc/013-3/mask_chest.txt b/world/map/npc/013-3/mask_chest.txt index 51ca35c2..ebc9f7f7 100644 --- a/world/map/npc/013-3/mask_chest.txt +++ b/world/map/npc/013-3/mask_chest.txt @@ -7,113 +7,113 @@ if (@state < 2) goto L_This_shouldn_t_happen; if (@state == 3) goto L_Finished; - if (countitem("InsectSlime") == 0) + if (countitem(InsectSlime) == 0) goto L_No_insect_slime; - if (countitem("SmallMushroom") == 0) + if (countitem(SmallMushroom) == 0) goto L_No_mushroom; - if (countitem("PinkPetal") == 0) + if (countitem(PinkPetal) == 0) goto L_No_pink_petal; - if (countitem("Pearl") == 0) + if (countitem(Pearl) == 0) goto L_No_pearl; - if (countitem("HardSpike") == 0) + if (countitem(HardSpike) == 0) goto L_No_hard_spike; - if (countitem("RawLog") == 0) + if (countitem(RawLog) == 0) goto L_No_raw_log; - if (countitem("PinkAntenna") == 0) + if (countitem(PinkAntenna) == 0) goto L_No_pink_antenna; - if (countitem("SnakeTongue") == 0 - || countitem("MountainSnakeTongue") == 0 - || countitem("GrassSnakeTongue") == 0 - || countitem("CaveSnakeTongue") == 0) + if (countitem(SnakeTongue) == 0 + || countitem(MountainSnakeTongue) == 0 + || countitem(GrassSnakeTongue) == 0 + || countitem(CaveSnakeTongue) == 0) goto L_No_tongues; - if (countitem("TreasureKey") == 0) + if (countitem(TreasureKey) == 0) goto L_No_treasure_key; - if (countitem("PileOfAsh") == 0) + if (countitem(PileOfAsh) == 0) goto L_no_ash; - if (countitem("MauveHerb") == 0 - || countitem("CobaltHerb") == 0 - || countitem("GambogeHerb") == 0 - || countitem("AlizarinHerb") == 0) + if (countitem(MauveHerb) == 0 + || countitem(CobaltHerb) == 0 + || countitem(GambogeHerb) == 0 + || countitem(AlizarinHerb) == 0) goto L_No_herbs; - if (countitem("InsectLeg") == 0) + if (countitem(InsectLeg) == 0) goto L_No_insect_leg; - if (countitem("CaveSnakeLamp") == 0) + if (countitem(CaveSnakeLamp) == 0) goto L_No_lamp; - if (countitem("IronOre") == 0) + if (countitem(IronOre) == 0) goto L_No_iron_ore; - if (countitem("ScorpionStinger") == 0 - || countitem("RedScorpionStinger") == 0 - || countitem("BlackScorpionStinger") == 0) + if (countitem(ScorpionStinger) == 0 + || countitem(RedScorpionStinger) == 0 + || countitem(BlackScorpionStinger) == 0) goto L_No_stingers; - if (countitem("SilkCocoon") == 0) + if (countitem(SilkCocoon) == 0) goto L_No_silk; - if (countitem("WhiteFur") == 0) + if (countitem(WhiteFur) == 0) goto L_No_fur; - if (countitem("DarkCrystal") == 0) + if (countitem(DarkCrystal) == 0) goto L_No_dark_crystal; - if (countitem("BottleOfWater") == 0) + if (countitem(BottleOfWater) == 0) goto L_No_water; getinventorylist; if (@inventorylist_count == 100 - && countitem("InsectSlime") > 1 - && countitem("InsectLeg") > 1 - && countitem("SilkCocoon") > 1 - && countitem("SmallMushroom") > 1 - && countitem("PinkPetal") > 1 - && countitem("Pearl") > 1 - && countitem("HardSpike") > 1 - && countitem("RawLog") > 1 - && countitem("PinkAntenna") > 1 - && countitem("DarkCrystal") > 1 - && countitem("IronOre") > 1 - && countitem("ScorpionStinger") > 1 - && countitem("RedScorpionStinger") > 1 - && countitem("BlackScorpionStinger") > 1 - && countitem("SnakeTongue") > 1 - && countitem("MountainSnakeTongue") > 1 - && countitem("GrassSnakeTongue") > 1 - && countitem("CaveSnakeTongue") > 1 - && countitem("MauveHerb") > 1 - && countitem("CobaltHerb") > 1 - && countitem("GambogeHerb") > 1 - && countitem("AlizarinHerb") > 1 - && countitem("TreasureKey") > 1 - && countitem("CaveSnakeLamp") > 1 - && countitem("PileOfAsh") > 1 - && countitem("WhiteFur") > 1 - && countitem("BottleOfWater") > 1) + && countitem(InsectSlime) > 1 + && countitem(InsectLeg) > 1 + && countitem(SilkCocoon) > 1 + && countitem(SmallMushroom) > 1 + && countitem(PinkPetal) > 1 + && countitem(Pearl) > 1 + && countitem(HardSpike) > 1 + && countitem(RawLog) > 1 + && countitem(PinkAntenna) > 1 + && countitem(DarkCrystal) > 1 + && countitem(IronOre) > 1 + && countitem(ScorpionStinger) > 1 + && countitem(RedScorpionStinger) > 1 + && countitem(BlackScorpionStinger) > 1 + && countitem(SnakeTongue) > 1 + && countitem(MountainSnakeTongue) > 1 + && countitem(GrassSnakeTongue) > 1 + && countitem(CaveSnakeTongue) > 1 + && countitem(MauveHerb) > 1 + && countitem(CobaltHerb) > 1 + && countitem(GambogeHerb) > 1 + && countitem(AlizarinHerb) > 1 + && countitem(TreasureKey) > 1 + && countitem(CaveSnakeLamp) > 1 + && countitem(PileOfAsh) > 1 + && countitem(WhiteFur) > 1 + && countitem(BottleOfWater) > 1) goto L_TooMany; - delitem "InsectSlime", 1; - delitem "InsectLeg", 1; - delitem "SilkCocoon", 1; - delitem "SmallMushroom", 1; - delitem "PinkPetal", 1; - delitem "Pearl", 1; - delitem "HardSpike", 1; - delitem "RawLog", 1; - delitem "PinkAntenna", 1; - delitem "DarkCrystal", 1; - delitem "IronOre", 1; - delitem "ScorpionStinger", 1; - delitem "RedScorpionStinger", 1; - delitem "BlackScorpionStinger", 1; - delitem "SnakeTongue", 1; - delitem "MountainSnakeTongue", 1; - delitem "GrassSnakeTongue", 1; - delitem "CaveSnakeTongue", 1; - delitem "MauveHerb", 1; - delitem "CobaltHerb", 1; - delitem "GambogeHerb", 1; - delitem "AlizarinHerb", 1; - delitem "TreasureKey", 1; - delitem "CaveSnakeLamp", 1; - delitem "WhiteFur", 1; - delitem "PileOfAsh", 1; - delitem "BottleOfWater", 1; + delitem InsectSlime, 1; + delitem InsectLeg, 1; + delitem SilkCocoon, 1; + delitem SmallMushroom, 1; + delitem PinkPetal, 1; + delitem Pearl, 1; + delitem HardSpike, 1; + delitem RawLog, 1; + delitem PinkAntenna, 1; + delitem DarkCrystal, 1; + delitem IronOre, 1; + delitem ScorpionStinger, 1; + delitem RedScorpionStinger, 1; + delitem BlackScorpionStinger, 1; + delitem SnakeTongue, 1; + delitem MountainSnakeTongue, 1; + delitem GrassSnakeTongue, 1; + delitem CaveSnakeTongue, 1; + delitem MauveHerb, 1; + delitem CobaltHerb, 1; + delitem GambogeHerb, 1; + delitem AlizarinHerb, 1; + delitem TreasureKey, 1; + delitem CaveSnakeLamp, 1; + delitem WhiteFur, 1; + delitem PileOfAsh, 1; + delitem BottleOfWater, 1; mes "You managed to perform the ritual and open the chest."; - getitem "DemonMask", 1; + getitem DemonMask, 1; mes "You found a demon mask inside."; set @state, 3; callsub S_Update_Mask; diff --git a/world/map/npc/functions/vault.txt b/world/map/npc/functions/vault.txt index c3d95dd8..c9c9086a 100644 --- a/world/map/npc/functions/vault.txt +++ b/world/map/npc/functions/vault.txt @@ -6,12 +6,18 @@ function|script|VaultLogin { if (##VAULT < 1) goto L_Return; - // TODO: Or #VAULT ? Which of the two is set? + // Imports & Vitals callsub S_Exp; callsub S_Gold; callsub S_Preset; + // Quest Handlers + callsub S_Quest_CR1; + + // Mirror lake + callsub S_MirrorLake; + // Clean up set @last_preset, 0; return; // go back to global handler @@ -41,8 +47,9 @@ S_Preset: // Each preset is 5 levels (Preset 1 = Lv 5, Preset 10 = Lv 50, Max Preset 20 - hard limit is 127) // TODO: Give more ammo, iron powder, sulphur powder, etc. instead of equips - // Give also some insect legs and insect slimes if applicable? + // Give also some insect legs and insect slime if applicable? /* Handle weapons */ + /* if (##PRESET >= 1 && @last_preset < 1) getitem "SharpKnife",1; if (##PRESET >= 2 && @last_preset < 2) @@ -83,14 +90,55 @@ S_Preset: getitem "IronPowder", 150; if (##PRESET >= 19 && @last_preset < 19) getitem "TerraniteArrow",250; - + */ set ##PRESET, 0; return; + +//////////////////////////////// +S_Quest_CR1: + if (!(##01_CRQUEST & 1)) goto S_Return; + if (##03_TMWWORLD & MLP_CR_DEBUT) goto S_Return; + // Check if you can receive the rewards + getinventorylist; + if (@inventorylist_count >= 96) goto S_Return; + // Mark quest as done and issue rewards + set BOSS_POINTS, BOSS_POINTS + 871; + set ##03_TMWWORLD, ##03_TMWWORLD | MLP_CR_DEBUT; + getitem WhiteCake, 1; + getitem ChocolateCake, 1; + getitem OrangeCake, 1; + getitem AppleCake, 1; + message strcharinfo(0), "Mirror Lake : You gained 871 boss points."; + return; + +//////////////////////////////// +S_MirrorLake: + // Wipe any existing TMWA internal mirror lake information + set ##VAULT_GOTO, 0; + set ##VAULT_MLTO, 0; + // TODO: Put the Mirror Lake Portal into the shipwreck? (see portal #2) + set .@gto, call("get_byte", ##00_INFO, 3); + set .@mlp, call("get_nibble", ##00_INFO, 5); + // If we're moving from Mirror Lake to TMW + if (.@gto != WORLD_ID) goto S_MirrorFix; + debugmes "Vault User "+##VAULT+" moved to lake "+.@mlp; + if (.@mlp == 1) warp "013-2", 37, 23; // Hurnscald Mirror Lake + if (.@mlp == 2) warp "002-1", 30, 58; // Tulimshar Mirror Lake + // Unset the target lake/world + void call("set_byte", ##00_INFO, 3, 0); + void call("set_nibble", ##00_INFO, 5, 0); + return; + +// We've moved to the wrong world, so preserve it. +S_MirrorFix: + set ##VAULT_GOTO, call("get_byte", ##00_INFO, 3); + set ##VAULT_MLTO, call("get_nibble", ##00_INFO, 5); + return; } // Remember: ##VAULT_EXP, ##VAULT_GOTO, ##VAULT_MLTO for Mirror Lake Protocol -// However, without kick(7), it is not really worth anything +// However, without kick(7), it is not really worth anything - so I presumed 7 // Remember: Quote symbols are illegal, simple or double, except for parameter // To reset the database: // cleararray $EXPORT_DATA$[0], "", 254; @@ -154,6 +202,26 @@ function|script|VaultLogout set $@API_PROTOCOL, API_VAULT; set $@API_DATA$, "'UID': "+##VAULT+", 'GID': "+getcharid(3); callfunc "FlushAPI"; + + return; + +L_Return: + return; +} + +// MirrorLakeSendTo(World) +function|script|MirrorLakeSendTo +{ + if (##VAULT < 1) goto L_Return; + set ##VAULT_GOTO, getarg(0); + // This is TMWA - so it'll always use Lake #0 for performance reasons + set $@API_PROTOCOL, API_VAULT; + set $@API_DATA$, "'UID': "+##VAULT+", 'GID': "+getcharid(3); + callfunc "FlushAPI"; + message strcharinfo(0), "Darkness fills your vision..."; + // TODO: Misc effects + // TODO: Sleep for 10~15 seconds (for mapreg) + // TODO: Disconnect user return; L_Return: |