From 92a965db33335894490abadd4e51da042eb422fe Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 8 Apr 2022 10:44:21 -0300 Subject: Backport all changes from Legacy --- db/pre-re/item_db.conf | 104 ++++++++++++++++++++++++++++++++++++----- db/pre-re/mob_db.conf | 28 +++++------ npc/011-1/auldsbel.txt | 10 ++-- npc/011-1/shops.txt | 1 + npc/027-6/general_krukan.txt | 9 +++- npc/027-7/general_razha.txt | 11 +++-- npc/027-8/general_terogan.txt | 13 ++++-- npc/035-2/shops.txt | 1 + npc/functions/evil_obelisk.txt | 95 +++++++++++++++++++------------------ 9 files changed, 187 insertions(+), 85 deletions(-) diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index 92f52ff8..44f8c6b0 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -1112,6 +1112,28 @@ item_db: ( Id5260: 1 } }, +{ + Id: 5284 + AegisName: "Revolver" + Name: "Revolver" + Type: "IT_WEAPON" + Buy: 150000 + Sell: 500 + Weight: 3000 + Atk: 120 + Range: 5 + Slots: 0 + Loc: "EQP_HAND_R" + WeaponLv: 1 + EquipLv: 1 + Refine: false + ViewSprite: 1 + Subtype: "W_BOW" + AllowAmmo: { + Id904: 1 + } +}, + /* Rings & Accessories */ { Id: 702 @@ -4759,18 +4781,6 @@ item_db: ( Refine: false ViewSprite: 5225 }, -{ - Id: 5251 - AegisName: "WumpusEgg" - Name: "WumpusEgg" - Type: "IT_ETC" - Buy: 0 - Sell: 0 - Weight: 1 - Def: 0 - Refine: false - ViewSprite: 5251 -}, { Id: 5256 AegisName: "PVPCoin" @@ -8710,6 +8720,28 @@ item_db: ( bonus bMaxHP, 100; "> }, +{ + Id: 5286 + AegisName: "RedArmor" + Name: "Red Knight Armor" + Type: "IT_ARMOR" + Buy: 0 + Sell: 0 + Weight: 2000 + Def: 27 + Slots: 0 + Loc: "EQP_HEAD_MID" + Refine: false + ViewSprite: 5254 + Script: <" + bonus bMatkRate, -4; + bonus bDex, 1; + bonus bAgi, 1; + bonus bMaxHP, 1500; + "> +}, +////////////////////////////////////////////////////////// +// Hats { Id: 511 AegisName: "SantaHat" @@ -13865,6 +13897,23 @@ item_db: ( callfunc "X21_SEEDS"; "> }, +{ + Id: 5251 + AegisName: "Tomato" + Name: "Tomato" + Type: "IT_USABLE" + Buy: 40 + Sell: 10 + Weight: 7 + Def: 0 + Slots: 0 + Refine: false + ViewSprite: 657 + Script: <" + callfunc "itheal", 200, 5; + "> +}, + /* Legs Armor */ { Id: 586 @@ -14953,6 +15002,8 @@ item_db: ( Refine: false ViewSprite: 2169 }, +//////////////////////////////////////////////////////// +// Shields { Id: 585 AegisName: "ScarabArmlet" @@ -14982,6 +15033,9 @@ item_db: ( Loc: "EQP_HAND_L" Refine: false ViewSprite: 601 + Script: <" + bonus bMatkRate, -20; + "> }, { Id: 602 @@ -14996,6 +15050,9 @@ item_db: ( Loc: "EQP_HAND_L" Refine: false ViewSprite: 602 + Script: <" + bonus bMatkRate, -10; + "> }, { Id: 603 @@ -15010,6 +15067,9 @@ item_db: ( Loc: "EQP_HAND_L" Refine: false ViewSprite: 603 + Script: <" + bonus bMatkRate, -5; + "> }, { Id: 797 @@ -15024,6 +15084,26 @@ item_db: ( Loc: "EQP_HAND_L" Refine: false ViewSprite: 797 + Script: <" + bonus bMatkRate, -15; + "> +}, +{ + Id: 5285 + AegisName: "DragonShield" + Name: "Dragon Shield" + Type: "IT_ARMOR" + Buy: 40000 + Sell: 3000 + Weight: 2500 + Def: 30 + Slots: 0 + Loc: "EQP_HAND_L" + Refine: false + ViewSprite: 601 + Script: <" + bonus bMatkRate, -20; + "> }, // diff --git a/db/pre-re/mob_db.conf b/db/pre-re/mob_db.conf index c44f7e38..9e869555 100644 --- a/db/pre-re/mob_db.conf +++ b/db/pre-re/mob_db.conf @@ -1604,7 +1604,7 @@ mob_db: ( AttackRange: 2 Attack: [100, 500] Def: 40 - Mdef: 20 + Mdef: 18 Stats: { Str: 105 Agi: 40 @@ -1830,7 +1830,7 @@ mob_db: ( AttackRange: 2 Attack: [275, 355] Def: 20 - Mdef: 15 + Mdef: 14 Stats: { Str: 30 Agi: 15 @@ -1919,7 +1919,7 @@ mob_db: ( AttackRange: 2 Attack: [180, 430] Def: 5 - Mdef: 20 + Mdef: 18 Stats: { Str: 40 Agi: 3 @@ -1968,7 +1968,7 @@ mob_db: ( AttackRange: 1 Attack: [200, 300] Def: 20 - Mdef: 40 + Mdef: 35 Stats: { Str: 60 Agi: 40 @@ -2014,7 +2014,7 @@ mob_db: ( AttackRange: 7 Attack: [200, 350] Def: 30 - Mdef: 80 + Mdef: 70 Stats: { Str: 100 Agi: 120 @@ -2375,7 +2375,7 @@ mob_db: ( AttackRange: 1 Attack: [81, 281] Def: 20 - Mdef: 42 + Mdef: 37 Stats: { Str: 40 Agi: 20 @@ -2470,7 +2470,7 @@ mob_db: ( AttackRange: 1 Attack: [75, 250] Def: 23 - Mdef: 27 + Mdef: 25 Stats: { Str: 20 Agi: 20 @@ -2518,7 +2518,7 @@ mob_db: ( AttackRange: 6 Attack: [100, 200] Def: 8 - Mdef: 60 + Mdef: 50 Stats: { Str: 12 Agi: 10 @@ -2944,7 +2944,7 @@ mob_db: ( AttackRange: 1 Attack: [200, 300] Def: 20 - Mdef: 40 + Mdef: 35 Stats: { Str: 60 Agi: 40 @@ -3123,7 +3123,7 @@ mob_db: ( AttackRange: 5 Attack: [360, 374] Def: 48 - Mdef: 90 + Mdef: 70 Stats: { Str: 1 Agi: 32 @@ -4446,7 +4446,7 @@ mob_db: ( AttackRange: 3 Attack: [110, 150] Def: 0 - Mdef: 20 + Mdef: 15 Stats: { Str: 35 Agi: 0 @@ -4614,7 +4614,7 @@ mob_db: ( AttackRange: 1 Attack: [5, 10] Def: 40 - Mdef: 65 + Mdef: 50 Stats: { Str: 1 Agi: 200 @@ -4652,7 +4652,7 @@ mob_db: ( AttackRange: 5 Attack: [125, 150] Def: 10 - Mdef: 70 + Mdef: 60 Stats: { Str: 5 Agi: 40 @@ -4929,7 +4929,7 @@ mob_db: ( AttackRange: 2 Attack: [200, 220] Def: 25 - Mdef: 50 + Mdef: 30 Stats: { Str: 90 Agi: 65 diff --git a/npc/011-1/auldsbel.txt b/npc/011-1/auldsbel.txt index 01abe364..89503b9f 100644 --- a/npc/011-1/auldsbel.txt +++ b/npc/011-1/auldsbel.txt @@ -914,20 +914,20 @@ L_Next7: L_c_quest_5: mesn l("Auldsbel the Wizard"); - mes "\"I do have another assignment for you, but this one will be tricky. I will need fifty grass snake tongues. I believe that this may be just enough life force to return the silkworm back to its original shape.\""; + mesq l("I do have another assignment for you, but this one will be tricky. I will need forty grass snake tongues. I believe that this may be just enough life force to return the silkworm back to its original shape."); next; menu "Here they are.", L_Next8, "That's quite a challenge.", L_Main_menu; L_Next8: - if (countitem ("GrassSnakeTongue") < 50) + if (countitem (GrassSnakeTongue) < 40) goto L_c_quest_missing; - delitem "GrassSnakeTongue", 50; + delitem GrassSnakeTongue, 40; Zeny = Zeny + 10000; mesn l("Auldsbel the Wizard"); - mes "\"Excellent! Here is 10,000 GP for you, and now let's see how this goes.\""; - mes "[You gain 100,000 experience points]"; + mesq l("Excellent! Here is 10,000 GP for you, and now let's see how this goes."); + mesc l("[You gain 100,000 experience points]"); getexp 100000, 0; @Q_component_quest = 6; callsub S_Update_Var; diff --git a/npc/011-1/shops.txt b/npc/011-1/shops.txt index 8fd551b4..754b3782 100644 --- a/npc/011-1/shops.txt +++ b/npc/011-1/shops.txt @@ -12,6 +12,7 @@ OnInit: sellitem GreenApple; sellitem RedApple; sellitem Orange; + sellitem Tomato; .distance = 5; end; } diff --git a/npc/027-6/general_krukan.txt b/npc/027-6/general_krukan.txt index 54d2b442..bdcf5858 100644 --- a/npc/027-6/general_krukan.txt +++ b/npc/027-6/general_krukan.txt @@ -196,8 +196,13 @@ OnReward: message strcharinfo(0), "You feel a temporary rush of power and zest for action. " + @bonus + " daily bonus gained." ; if (checkidle() > MAX_IDLE) goto L_End; - BOSS_POINTS = BOSS_POINTS + 25; - message strcharinfo(0), "You gain 25 Boss Points giving you a total of " + BOSS_POINTS + "."; + if (BaseLevel < 90) { + BOSS_POINTS += 25; + dispbottom l("You gain %s Boss Points giving you a total of %s.", "20+5", fnum(BOSS_POINTS)); + } else { + BOSS_POINTS += 20; + dispbottom l("You gain %s Boss Points giving you a total of %s.", "20", fnum(BOSS_POINTS)); + } goto L_End; L_End: diff --git a/npc/027-7/general_razha.txt b/npc/027-7/general_razha.txt index 7522e1f3..02f5ec6f 100644 --- a/npc/027-7/general_razha.txt +++ b/npc/027-7/general_razha.txt @@ -5,7 +5,7 @@ @RAZHA_SOUL_REQ = 3; @RAZHA_DISEASED_HEARTS_REQ = 5; - @RAZHA_UNDEAD_EYE_REQ = 3; + @RAZHA_UNDEAD_EYE_REQ = 1; @RAZHA_UNDEAD_EAR_REQ = 2; @minLevel = 70; @@ -200,8 +200,13 @@ OnReward: message strcharinfo(0), "You feel a temporary rush of power and zest for action. " + @bonus + " daily bonus gained." ; if (checkidle() > MAX_IDLE) goto L_End; - BOSS_POINTS = BOSS_POINTS + 50; - message strcharinfo(0), "You gain 50 Boss Points giving you a total of " + BOSS_POINTS + "."; + if (BaseLevel < 100) { + BOSS_POINTS += 50; + dispbottom l("You gain %s Boss Points giving you a total of %s.", "40+10", fnum(BOSS_POINTS)); + } else { + BOSS_POINTS += 40; + dispbottom l("You gain %s Boss Points giving you a total of %s.", "40", fnum(BOSS_POINTS)); + } goto L_End; L_End: diff --git a/npc/027-8/general_terogan.txt b/npc/027-8/general_terogan.txt index 9cbca92e..9486eead 100644 --- a/npc/027-8/general_terogan.txt +++ b/npc/027-8/general_terogan.txt @@ -5,8 +5,8 @@ @TEROGAN_SOUL_REQ = 5; @TEROGAN_ROTTEN_RAGS_REQ = 5; - @TEROGAN_UNDEAD_EYE_REQ = 3; - @TEROGAN_UNDEAD_EAR_REQ = 2; + @TEROGAN_UNDEAD_EYE_REQ = 2; + @TEROGAN_UNDEAD_EAR_REQ = 3; @minLevel = 80; mes "[Tome]"; @@ -265,8 +265,13 @@ OnReward: message strcharinfo(0), "You feel a temporary rush of power and zest for action. " + @bonus + " daily bonus gained." ; if (checkidle() > MAX_IDLE) goto L_End; - BOSS_POINTS = BOSS_POINTS + 75; - message strcharinfo(0), "You gain 75 Boss Points giving you a total of " + BOSS_POINTS + "."; + if (BaseLevel < 120) { + BOSS_POINTS += 75; + dispbottom l("You gain %s Boss Points giving you a total of %s.", "60+15", fnum(BOSS_POINTS)); + } else { + BOSS_POINTS += 60; + dispbottom l("You gain %s Boss Points giving you a total of %s.", "60", fnum(BOSS_POINTS)); + } goto L_End; L_End: diff --git a/npc/035-2/shops.txt b/npc/035-2/shops.txt index b864996a..818f57f9 100644 --- a/npc/035-2/shops.txt +++ b/npc/035-2/shops.txt @@ -8,6 +8,7 @@ OnInit: tradertype(NST_ZENY); sellitem Beer; sellitem Orange; + sellitem Tomato; sellitem CasinoCoins; .distance = 5; end; diff --git a/npc/functions/evil_obelisk.txt b/npc/functions/evil_obelisk.txt index b85884c7..6ac78596 100644 --- a/npc/functions/evil_obelisk.txt +++ b/npc/functions/evil_obelisk.txt @@ -1,96 +1,101 @@ function script EvilObelisk { - mes "[Evil Obelisk]"; - mes "(A mystical aura surrounds this stone. It seems to crave money.)"; + mesn l("Evil Obelisk"); + mes l("(A mystical aura surrounds this stone. It seems to crave money.)"); next; - @Cost_jacko = 6500; - @Cost_gy1 = 4000; - @Cost_gy2 = 3000; - @Cost_skull = 2800; - @Cost_snake = 2500; + .@Cost_jacko = 6500; + .@Cost_gy1 = 4000; + .@Cost_gy2 = 3000; + .@Cost_skull = 2800; + .@Cost_snake = 2500; + .@Cost_keshlam = 10000; menu - "Don't pay it anything.", L_close, - "Pay it " + @Cost_jacko + " gold.", L_JACKO, - "Pay it " + @Cost_gy1 + " gold.", L_GRAVEYARD1, - "Pay it " + @Cost_gy2 + " gold.", L_GRAVEYARD2, - "Pay it " + @Cost_skull + " gold.", L_SKULL, - "Pay it " + @Cost_snake + " gold.", L_SNAKE; + "Don't pay it anything.", -, + "Pay it " + .@Cost_jacko + " gold.", L_JACKO, + "Pay it " + .@Cost_gy1 + " gold.", L_GRAVEYARD1, + "Pay it " + .@Cost_gy2 + " gold.", L_GRAVEYARD2, + "Pay it " + .@Cost_skull + " gold.", L_SKULL, + "Pay it " + .@Cost_snake + " gold.", L_SNAKE, + "Pay it " + .@Cost_keshlam + " gold.", L_KESHLAM; + return; L_JACKO: - if (Zeny < @Cost_jacko) + if (Zeny < .@Cost_jacko) goto L_NotEnough; - Zeny = Zeny - @Cost_jacko; - @mob_id = 1022; + Zeny = Zeny - .@Cost_jacko; + @mob_id = JackO; @mob_count = rand(1,2); goto L_Summon; L_GRAVEYARD1: - if (Zeny < @Cost_gy1) + if (Zeny < .@Cost_gy1) goto L_NotEnough; @temp = rand(2); if(@temp == 0) - set @mob_id, 1036; // Zombie + set @mob_id, Zombie; // Zombie if(@temp == 1) - set @mob_id, 1045; // Fallen + set @mob_id, Fallen; // Fallen @mob_count = rand(1,2); - Zeny = Zeny - @Cost_gy1; + Zeny = Zeny - .@Cost_gy1; goto L_Summon; L_GRAVEYARD2: - if (Zeny < @Cost_gy2) + if (Zeny < .@Cost_gy2) goto L_NotEnough; @temp = rand(2); if(@temp == 0) - set @mob_id, 1044; // Lady Skelly + set @mob_id, LadySkeleton; // Lady Skelly if(@temp == 1) - set @mob_id, 1043; // Normal Skelly + set @mob_id, Skeleton; // Normal Skelly @mob_count = rand(1,2); - Zeny = Zeny - @Cost_gy2; + Zeny = Zeny - .@Cost_gy2; goto L_Summon; L_SKULL: - if (Zeny < @Cost_skull) + if (Zeny < .@Cost_skull) goto L_NotEnough; @temp = rand(2); if(@temp == 0) - set @mob_id, 1024; // Poison + set @mob_id, PoisonSkull; // Poison if(@temp == 1) - set @mob_id, 1023; // Fire + set @mob_id, FireSkull; // Fire @mob_count = rand(1,4); - Zeny = Zeny - @Cost_skull; + Zeny = Zeny - .@Cost_skull; goto L_Summon; L_SNAKE: - if (Zeny < @Cost_snake) + if (Zeny < .@Cost_snake) goto L_NotEnough; - @temp = rand(4); + @temp = rand(5); if(@temp == 0) - set @mob_id, 1034; // Grass + set @mob_id, GrassSnake; // Grass if(@temp == 1) - set @mob_id, 1026; // Mnt. + set @mob_id, MountainSnake; // Mnt. if(@temp == 2) - set @mob_id, 1010; // Normal + set @mob_id, Snake; // Normal if(@temp == 3) - set @mob_id, 1021; // Cave + set @mob_id, CaveSnake; // Cave + if(@temp == 4) + set @mob_id, VoidSnake; // Void @mob_count = rand(1,4); - Zeny = Zeny - @Cost_snake; + Zeny = Zeny - .@Cost_snake; + goto L_Summon; + +L_KESHLAM: + if (Zeny < .@Cost_keshlam) + goto L_NotEnough; + set @mob_id, any(Tengu, Sasquatch, ManaSlayer); + @mob_count = rand(1,3); + Zeny = Zeny - .@Cost_keshlam; goto L_Summon; L_Summon: areamonster @map$, @x0, @y0, @x1, @y1, "Evil", @mob_id, @mob_count; - goto L_close; + return; L_NotEnough: - mes "You don't have that much money"; - goto L_close; - -L_close: - @Cost_jacko = 0; - @Cost_gy1 = 0; - @Cost_gy2 = 0; - @Cost_skull = 0; - @Cost_snake = 0; + mes l("You don't have that much money"); return; } -- cgit v1.2.3-60-g2f50