summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
m---------client-data0
-rw-r--r--world/map/data/012-1.wlkbin31588 -> 31588 bytes
-rw-r--r--world/map/db/mob_skill_db.txt1
-rw-r--r--world/map/db/params.txt47
-rw-r--r--world/map/npc/functions/global_event_handler.txt3
-rw-r--r--world/map/npc/items/anchor_stone.txt2
-rw-r--r--world/map/npc/magic/level2-magic-knuckles.txt38
7 files changed, 48 insertions, 43 deletions
diff --git a/client-data b/client-data
-Subproject df06f82c1496dea5e99177c931a1a805abb0e94
+Subproject e97dcd76188549a4d440ae0b62f5128dde585f2
diff --git a/world/map/data/012-1.wlk b/world/map/data/012-1.wlk
index 6008bfcd..bad011f4 100644
--- a/world/map/data/012-1.wlk
+++ b/world/map/data/012-1.wlk
Binary files differ
diff --git a/world/map/db/mob_skill_db.txt b/world/map/db/mob_skill_db.txt
index 82ef11a4..45b49563 100644
--- a/world/map/db/mob_skill_db.txt
+++ b/world/map/db/mob_skill_db.txt
@@ -129,5 +129,4 @@
//Rick Lime Skills
1196,RickLime@NPC_SUMMONSLAVE_brblowX2,any,198,1,10000,1000,5000,no,self,slavelt,2,1195,0,0,0,0,
-1196,RickLime@NPC_SUMMONSLAVE_cloverX1,any,198,1,5000,1000,5000,no,self,slavelt,3,1037,0,0,0,0,
1195,Brainblow@NPC_SELFDESTRUCTION,attack,175,1,10000,100,500,yes,self,always,0,30,0,0,0,0,
diff --git a/world/map/db/params.txt b/world/map/db/params.txt
index d600b4ad..512d0ac8 100644
--- a/world/map/db/params.txt
+++ b/world/map/db/params.txt
@@ -28,6 +28,7 @@ NEXTBASEEXP 22 1
NEXTJOBEXP 23 1
Weight 24 1
MaxWeight 25 1
+MaxWeightOverride 27 1
ATK1 41 1
ATK2 42 1
MATK1 43 1
@@ -74,34 +75,36 @@ MUTE_PARTY 1084 1
//MUTE_GUILD 1085 1
AUTOMOD 1086 1
-bMaxHP 6 // MaxHP + n
-bMaxSP 8 // MaxSP + n
-bStr 13 // STR + n
-bAgi 14 // AGI + n
-bVit 15 // VIT + n
-bInt 16 // INT + n
-bDex 17 // DEX + n
-bLuk 18 // LUK + n
-bAtk 41 // ATK + n (Minimum attack power)
-bAtk2 42 // ATK2 + n (Maximum attack power)
-bMatk1 43 // MATK1 + n (Maximum magical attack power)
-bMatk2 44 // MATK2 + n (Minimum magical attack power)
+bMaxHP 6 // MaxHP + n
+bMaxSP 8 // MaxSP + n
+bStr 13 // STR + n
+bAgi 14 // AGI + n
+bVit 15 // VIT + n
+bInt 16 // INT + n
+bDex 17 // DEX + n
+bLuk 18 // LUK + n
+bMaxWeight 25 // Sets the maximum possible weight to carry to n (bMaxWeight,n;). Note: As a failsafe 1000 is added to n, final weight is n + 1000.
+bMaxWeightAdd 26 // Adds n to the maximum possible weight to carry (bMaxWeightAdd,n;). Note: As a failsafe 1000 is added to n, final weight is MaxWeight + n + 1000.
+bAtk 41 // ATK + n (Minimum attack power)
+bAtk2 42 // ATK2 + n (Maximum attack power)
+bMatk1 43 // MATK1 + n (Maximum magical attack power)
+bMatk2 44 // MATK2 + n (Minimum magical attack power)
// Greatest of MATK1 and MATK2 is taken and becomes MATK1 and MATK2 is set to 0.
// So using MATK2 bonus at the moment has no real benefit you only need greater values to reach same as MATK1.
// MATK1 += INT + (INT / 5) * (INT / 5);
// MATK2 += INT + (INT / 7) * (INT / 7);
// The whole magic system is currently handled in serverdata which only uses MATK1 but the magic attack functions
// do already exist in servercode only skills must be added there.
-bDef 45 // Equipment DEF + n
-bDef2 46 // VIT based DEF + n
-bMdef 47 // Equipment MDEF + n
-bMdef2 48 // INT based MDEF + n
-bHit 49 // Hit + n
-bFlee 50 // Flee + n
-bFlee2 51 // Perfect Dodge + n
-bCritical 52 // Critical + n
-bAspd 53 // Attack speed + n
-bDeaf 70
+bDef 45 // Equipment DEF + n
+bDef2 46 // VIT based DEF + n
+bMdef 47 // Equipment MDEF + n
+bMdef2 48 // INT based MDEF + n
+bHit 49 // Hit + n
+bFlee 50 // Flee + n
+bFlee2 51 // Perfect Dodge + n
+bCritical 52 // Critical + n
+bAspd 53 // Attack speed + n
+bDeaf 70
// Those which can be used with the arrow are only bCritical, bAtkEle, bHit, bAddEle, bAddRace, bAddSize and bAddEff. The other bonuses are ignored.
// For more information, have a look here: http://code.google.com/p/eathena/source/browse/trunk/doc/item_bonus.txt
diff --git a/world/map/npc/functions/global_event_handler.txt b/world/map/npc/functions/global_event_handler.txt
index d169f3c7..b1c5917e 100644
--- a/world/map/npc/functions/global_event_handler.txt
+++ b/world/map/npc/functions/global_event_handler.txt
@@ -19,6 +19,7 @@ OnPCLoginEvent:
callfunc "ConvertChristmas21"; // Christmas 2021
callfunc "VaultLogin"; // Mirror Lake Protocol biddings
callfunc "VaultLogout"; // Clean some stuff, to be safe
+ if (WEIGHT_LIMIT) set MaxWeightOverride, WEIGHT_LIMIT; // If this char var set, override max weight (tradebots, etc)
// add more here
set @login_event, 2;
end;
@@ -45,7 +46,7 @@ OnPCDieEvent:
end;
OnPCLogoutEvent:
-// if (getnpcid("#Upmarmu#" + getcharid(3)) >= 1) addnpctimer 0, "#Upmarmu#" + getcharid(3) + "::OnDestroy"; // @upmarmu_spell_npc_name$ is already lost at this point so it must be done like this
+ if (getnpcid("#Upmarmu#" + getcharid(3)) >= 1) addnpctimer 0, "#Upmarmu#" + getcharid(3) + "::OnDestroy"; // @upmarmu_spell_npc_name$ is already lost at this point so it must be done like this
callfunc "VaultLogout";
end;
diff --git a/world/map/npc/items/anchor_stone.txt b/world/map/npc/items/anchor_stone.txt
index d63632af..c1ea722b 100644
--- a/world/map/npc/items/anchor_stone.txt
+++ b/world/map/npc/items/anchor_stone.txt
@@ -20,7 +20,7 @@ L_AnchorStone:
"Yes", L_AS_Yes;
L_AS_Yes:
- set AnchorStoneDest, getmaphash(getmap()); // since a hash could be negative I take a seperate variable for that since shifting would destroy the sign bit and create a different hash
+ set AnchorStoneDest, getmaphash(getmap()); // since a hash could be negative I take a separate variable for that since shifting would destroy the sign bit and create a different hash
set AnchorStoneDestCoord, gety() << AS_Y_SHIFT | getx() << AS_X_SHIFT;
delitem AnchorStone, 1;
diff --git a/world/map/npc/magic/level2-magic-knuckles.txt b/world/map/npc/magic/level2-magic-knuckles.txt
index a67941cf..92ee07a5 100644
--- a/world/map/npc/magic/level2-magic-knuckles.txt
+++ b/world/map/npc/magic/level2-magic-knuckles.txt
@@ -1,7 +1,7 @@
-|script|magic-knuckles|32767
{
if @_U_BLOCK >= 1 goto L_Still_Exhausted;
-/*
+
set @upmarmu_spell_npc_name$, "#Upmarmu#" + getcharid(3); // make a unique puppet name for every player
set .upmarmu_spell_npc, getnpcid(@upmarmu_spell_npc_name$);
if ( .upmarmu_spell_npc >= 1 ) goto L_NPC_Exists; // if this npc already exist reuse it so that idle recovery timer does not get destroyed
@@ -12,7 +12,6 @@
goto L_NPC_Exists;
L_NPC_Exists:
-*/
if (call("magic_checks")) end;
if (Sp < 20) end;
if (getskilllv(SKILL_MAGIC) < .level) end;
@@ -49,35 +48,29 @@ OnAttack:
if (target(BL_ID, @target_id, 22) != 22) goto L_FreeRecast; // 0x10 | 0x02 | 0x04
void call("elt_damage", @upmarmuspell[0], (@upmarmuspell[3] + @upmarmuspell[4]), ELT_WATER, ELT_FIRE, FX_NONE);
-// addtimer 0, @upmarmu_spell_npc_name$ + "::OnResetTimer";
+ addtimer 0, @upmarmu_spell_npc_name$ + "::OnResetTimer";
set @upmarmuspell[1], @upmarmuspell[1] - 1;
+
+ if @num_upmarmu_hits >= UPMARMU_HITS_TILL_EXHAUST goto L_FreeRecast;
set @num_upmarmu_hits, @num_upmarmu_hits + 1;
+ if @num_upmarmu_hits >= UPMARMU_HITS_TILL_EXHAUST set .exhausted, 1, .upmarmu_spell_npc;
- if @num_upmarmu_hits >= UPMARMU_HITS_TILL_EXHAUST goto L_Exhausted;
goto L_FreeRecast;
L_FreeRecast:
if (@upmarmuspell[1] > 0)
addtimer 0, strnpcinfo(0) + "::OnSetRecast";
+ else
+ addtimer 0, @upmarmu_spell_npc_name$ + "::OnExhausted";
end;
-L_Exhausted:
- set @_U_BLOCK, 1;
- set @upmarmuspell[1], 0;
- misceffect FX_MAGIC_DISCHARGE, strcharinfo(0);
- overrideattack;
- addtimer UPMARMU_EXHAUST_DURATION, "Upmarmu Exhaust Timer::OnClear"; // set the exhaustion time
- sc_start SC_COOLDOWN_UPMARMU, UPMARMU_EXHAUST_DURATION, 0, BL_ID;
- smsg SMSG_FAILURE, "Magic: You are too exhausted to use this spell for a while!";
- goto L_StopTimer;
-
L_Still_Exhausted:
smsg SMSG_FAILURE, "Magic: You are still too exhausted to use this spell for a while!";
end;
L_StopTimer:
-// addtimer 0, @upmarmu_spell_npc_name$ + "::OnStopTimer";
+ addtimer 0, @upmarmu_spell_npc_name$ + "::OnStopTimer";
end;
OnDischarge:
@@ -91,7 +84,6 @@ OnSetRecast:
overrideattack (@upmarmuspell[2] * @upmarmuspell[2]), 1, ATTACK_ICON_GENERIC, OVERRIDE_KNUCKLES, strnpcinfo(0)+"::OnAttack", @upmarmuspell[1]; // delay needs to be squared
end;
-/*
OnResetTimer:
// This timer is if you stopped somewhere below max hits then after 25sec you recover fully and start at 0 hits again
stopnpctimer;
@@ -117,9 +109,20 @@ OnTimer25000:
setnpctimer 0;
end;
+OnExhausted:
+ if (.exhausted < 1) end;
+
+ set @_U_BLOCK, 1;
+ set @upmarmuspell[1], 0;
+ set @num_upmarmu_hits, 0;
+ set .exhausted, 0;
+ addtimer UPMARMU_EXHAUST_DURATION, "Upmarmu Exhaust Timer::OnClear"; // set the exhaustion time
+ sc_start SC_COOLDOWN_UPMARMU, UPMARMU_EXHAUST_DURATION, 0, BL_ID;
+ smsg SMSG_FAILURE, "Magic: You are too exhausted to use this spell for a while!";
+ goto L_StopTimer;
+
OnDestroy:
destroy;
-*/
OnInit:
set .school, SKILL_MAGIC_WAR;
@@ -136,6 +139,5 @@ OnInit:
OnClear:
set @_U_BLOCK, 0;
- set @num_upmarmu_hits, 0;
end;
}