summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-04-08 10:44:21 -0300
committerJesusaves <cpntb1@ymail.com>2022-04-08 10:44:21 -0300
commit92a965db33335894490abadd4e51da042eb422fe (patch)
treeab44d0c1fdb33fd22ae15dd32f4b7153828aa33c
parentd9ef8d92e65ea0680c89118392f0f42a55ac0c85 (diff)
downloadserverdata-92a965db33335894490abadd4e51da042eb422fe.tar.gz
serverdata-92a965db33335894490abadd4e51da042eb422fe.tar.bz2
serverdata-92a965db33335894490abadd4e51da042eb422fe.tar.xz
serverdata-92a965db33335894490abadd4e51da042eb422fe.zip
Backport all changes from Legacy
-rw-r--r--db/pre-re/item_db.conf104
-rw-r--r--db/pre-re/mob_db.conf28
-rw-r--r--npc/011-1/auldsbel.txt10
-rw-r--r--npc/011-1/shops.txt1
-rw-r--r--npc/027-6/general_krukan.txt9
-rw-r--r--npc/027-7/general_razha.txt11
-rw-r--r--npc/027-8/general_terogan.txt13
-rw-r--r--npc/035-2/shops.txt1
-rw-r--r--npc/functions/evil_obelisk.txt95
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
@@ -4760,18 +4782,6 @@ item_db: (
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"
Name: "PVPCoin"
@@ -8711,6 +8721,28 @@ item_db: (
">
},
{
+ 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"
Name: "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;
}