summaryrefslogtreecommitdiff
path: root/world
diff options
context:
space:
mode:
Diffstat (limited to 'world')
-rw-r--r--world/map/data/011-1.wlkbin19100 -> 19100 bytes
-rw-r--r--world/map/data/012-4.wlkbin109204 -> 109204 bytes
-rw-r--r--world/map/data/013-3.wlkbin40004 -> 40004 bytes
-rw-r--r--world/map/data/017-3.wlkbin11004 -> 11004 bytes
-rw-r--r--world/map/data/025-1.wlkbin18004 -> 18004 bytes
-rw-r--r--world/map/data/030-3.wlkbin17668 -> 17668 bytes
-rw-r--r--world/map/db/const-quest.txt1
-rw-r--r--world/map/news.d/94-news-2021-05-28.txt35
-rw-r--r--world/map/npc/001-2/heathin.txt2
-rw-r--r--world/map/npc/002-1/luca.txt26
-rw-r--r--world/map/npc/functions/clear_vars.txt30
-rw-r--r--world/map/npc/magic/level2-magic-knuckles.txt17
12 files changed, 92 insertions, 19 deletions
diff --git a/world/map/data/011-1.wlk b/world/map/data/011-1.wlk
index bcd21991..ceb12317 100644
--- a/world/map/data/011-1.wlk
+++ b/world/map/data/011-1.wlk
Binary files differ
diff --git a/world/map/data/012-4.wlk b/world/map/data/012-4.wlk
index 1d642c07..4784cc41 100644
--- a/world/map/data/012-4.wlk
+++ b/world/map/data/012-4.wlk
Binary files differ
diff --git a/world/map/data/013-3.wlk b/world/map/data/013-3.wlk
index 79e4426d..0513d327 100644
--- a/world/map/data/013-3.wlk
+++ b/world/map/data/013-3.wlk
Binary files differ
diff --git a/world/map/data/017-3.wlk b/world/map/data/017-3.wlk
index f12fa0ec..46f8c266 100644
--- a/world/map/data/017-3.wlk
+++ b/world/map/data/017-3.wlk
Binary files differ
diff --git a/world/map/data/025-1.wlk b/world/map/data/025-1.wlk
index 7f2e8c05..62fac2c3 100644
--- a/world/map/data/025-1.wlk
+++ b/world/map/data/025-1.wlk
Binary files differ
diff --git a/world/map/data/030-3.wlk b/world/map/data/030-3.wlk
index c5d5bce0..1ab7dd7c 100644
--- a/world/map/data/030-3.wlk
+++ b/world/map/data/030-3.wlk
Binary files differ
diff --git a/world/map/db/const-quest.txt b/world/map/db/const-quest.txt
index 16f93480..8e434049 100644
--- a/world/map/db/const-quest.txt
+++ b/world/map/db/const-quest.txt
@@ -137,6 +137,7 @@ FLAG_LUCA_GOT_SIX_SKILLS 262144 // player learned all six Focus Skills
FLAG_LUCA_2SKILLS_MAXED 524288 // player got 2 Focus Skills at lvl 9
FLAG_LUCA_4SKILLS_MAXED 1048576 // player got 4 Focus Skills at lvl 9
FLAG_LUCA_6SKILLS_MAXED 2097152 // player got 6 Focus Skills at lvl 9
+FLAG_LUCA_FIX 4194304 // fixed a bug
// Flags for the battle caves.
BATTLE_CAVE1 1
diff --git a/world/map/news.d/94-news-2021-05-28.txt b/world/map/news.d/94-news-2021-05-28.txt
new file mode 100644
index 00000000..6de82ecb
--- /dev/null
+++ b/world/map/news.d/94-news-2021-05-28.txt
@@ -0,0 +1,35 @@
+{title:IRC Migration}
+{date:2021-05-28}
+
+{b}We are moving to Libera.Chat on IRC.{/b}
+
+Game Chat, Discord Integration, et cetera are unaffected. All our bots have moved
+as well. For those whom do not use IRC directly, no action is needed.
+
+There weren't many votes on our community poll, but after witnessing with our own
+eyes a channel being taken over without any sort of warning or whatsoever, we
+have decided that Freenode no longer provides any sort of reliable operational
+stability.
+
+We are NOT taking this decision based on rumors - both true and fake - which are
+circulating from both sides; We are taking this decision based on what we witnessed.
+
+Therefore, we have settled to move all our infrastructure to Libera Chat, based
+among other things, on the community will.
+
+This is a strictly technical decision; Operational stability has always been a
+priority for us, from backup to the choice of applications which are exposed to
+the public, like our wiki and forums backbone. IRC is no exception to this rule.
+
+We also have decided to DROP the bridge which was maintaining a link between
+both networks for the reasons mentioned above. Therefore, users connecting to the
+old network WON'T be able to receive any support whatsoever. Our other bots have
+also withdrawn.
+
+{b}Improvements to #upmarmu{/b}
+
+dangerDuck did some improvements to upmarmu (brawling skill).
+
+Check it out if you are a brawler!
+
+{author:Jesusalva}
diff --git a/world/map/npc/001-2/heathin.txt b/world/map/npc/001-2/heathin.txt
index 321b6e0f..53cc8b68 100644
--- a/world/map/npc/001-2/heathin.txt
+++ b/world/map/npc/001-2/heathin.txt
@@ -20,7 +20,7 @@
if (QL_TERRANITE_ARMOR == 2) && (BaseLevel >= 70) goto L_Hood;
if (QL_TERRANITE_ARMOR == 2) && (BaseLevel >= 60) goto L_Forge_Thanks;
if (QL_TERRANITE_ARMOR == 1) && (BaseLevel >= 60) goto L_Forge_Award;
- if (BaseLevel >= 60) goto L_Start;
+ if (QL_TERRANITE_ARMOR < 1) && (BaseLevel >= 60) goto L_Start;
mes "[Heathin]";
mes "\"Hello, friend. I am Heathin, a smith of exotic metals. \"";
diff --git a/world/map/npc/002-1/luca.txt b/world/map/npc/002-1/luca.txt
index 405df455..4a05b757 100644
--- a/world/map/npc/002-1/luca.txt
+++ b/world/map/npc/002-1/luca.txt
@@ -50,6 +50,8 @@ L_teach_soon:
goto L_Close;
L_teach:
+ // Bugfix death
+ if (!(FLAGS & FLAG_LUCA_FIX)) goto L_Nev;
if (getskilllv(SKILL_POOL)) goto L_teachmore;
mes "[Luca the Hunter]";
@@ -235,20 +237,23 @@ L_teachmore:
set @raging, getskilllv(SKILL_RAGING);
set @lvl9skills, 0;
- if (@mallard == 9)
+ if (@mallard >= 9)
set @lvl9skills, @lvl9skills + 1;
- if (@brawling == 9)
+ if (@brawling >= 9)
set @lvl9skills, @lvl9skills + 1;
- if (@speed == 9)
+ if (@speed >= 9)
set @lvl9skills, @lvl9skills + 1;
- if (@poison == 9)
+ if (@poison >= 9)
set @lvl9skills, @lvl9skills + 1;
- if (@astralsoul == 9)
+ if (@astralsoul >= 9)
set @lvl9skills, @lvl9skills + 1;
- if (@raging == 9)
+ if (@raging >= 9)
set @lvl9skills, @lvl9skills + 1;
- if ((FLAGS & (FLAG_LUCA_GOT_SIX_SKILLS + FLAG_LUCA_2SKILLS_MAXED + FLAG_LUCA_4SKILLS_MAXED + FLAG_LUCA_6SKILLS_MAXED)) == (FLAG_LUCA_GOT_SIX_SKILLS + FLAG_LUCA_2SKILLS_MAXED + FLAG_LUCA_4SKILLS_MAXED + FLAG_LUCA_6SKILLS_MAXED)) goto L_CheckSkillsEnd;
+ if ((FLAGS & FLAG_LUCA_GOT_SIX_SKILLS) &&
+ (FLAGS & FLAG_LUCA_2SKILLS_MAXED) &&
+ (FLAGS & FLAG_LUCA_4SKILLS_MAXED) &&
+ (FLAGS & FLAG_LUCA_6SKILLS_MAXED)) goto L_CheckSkillsEnd;
if (!(@mallard && @brawling && @speed && @poison && @astralsoul && @raging) || (FLAGS & FLAG_LUCA_GOT_SIX_SKILLS)) goto L_Check2Skills;
mes "[Luca the Hunter]";
@@ -266,7 +271,7 @@ L_teachmore:
goto L_Check2Skills;
L_Check2Skills:
- if (!@lvl9skills >= 2 || (FLAGS & FLAG_LUCA_2SKILLS_MAXED)) goto L_Check4Skills;
+ if (@lvl9skills < 2 || (FLAGS & FLAG_LUCA_2SKILLS_MAXED)) goto L_Check4Skills;
mes "[Luca the Hunter]";
mes "I sense you have maxed out two Focus Skills!";
mes "For that I give you a reward!";
@@ -282,7 +287,7 @@ L_Check2Skills:
goto L_Check4Skills;
L_Check4Skills:
- if (!@lvl9skills >= 4 || (FLAGS & FLAG_LUCA_4SKILLS_MAXED)) goto L_Check6Skills;
+ if (@lvl9skills < 4 || (FLAGS & FLAG_LUCA_4SKILLS_MAXED)) goto L_Check6Skills;
mes "[Luca the Hunter]";
mes "I sense you have maxed out four Focus Skills!";
mes "For that I give the next reward!";
@@ -298,7 +303,7 @@ L_Check4Skills:
goto L_Check6Skills;
L_Check6Skills:
- if (!@lvl9skills >= 6 || (FLAGS & FLAG_LUCA_6SKILLS_MAXED)) goto L_CheckSkillsEnd;
+ if (@lvl9skills < 6 || (FLAGS & FLAG_LUCA_6SKILLS_MAXED)) goto L_CheckSkillsEnd;
mes "[Luca the Hunter]";
mes "I sense you have maxed out six Focus Skills!";
mes "For that I give the final reward!";
@@ -321,7 +326,6 @@ L_InvFull:
goto L_CheckSkillsEnd;
L_CheckSkillsEnd:
-
goto L_teachmore2;
L_teachmore2:
diff --git a/world/map/npc/functions/clear_vars.txt b/world/map/npc/functions/clear_vars.txt
index e98def7d..2abfb118 100644
--- a/world/map/npc/functions/clear_vars.txt
+++ b/world/map/npc/functions/clear_vars.txt
@@ -18,6 +18,7 @@ function|script|ClearVariables
callsub S_Flags;
callsub S_Bitmask;
callsub S_BlueSage;
+ callsub S_Luca;
callsub S_Easter;
callsub S_Easter2008;
@@ -236,6 +237,35 @@ S_BlueSage:
set QUEST_BlueSage, QUEST_BlueSage & ~((1<<5)|(1<<6)|(1<<7));
return;
+S_Luca:
+ if (FLAGS & FLAG_LUCA_FIX) goto S_Return;
+ if (FLAGS & FLAG_LUCA_6SKILLS_MAXED) goto S_Luca6;
+ if (FLAGS & FLAG_LUCA_4SKILLS_MAXED) goto S_Luca4;
+ if (FLAGS & FLAG_LUCA_2SKILLS_MAXED) goto S_Luca2;
+ goto S_LucaX;
+
+S_Luca6:
+ if (countitem("AssassinMask") < 1) goto S_Return;
+ delitem "AssassinMask", 1;
+ set FLAGS, FLAGS ^ FLAG_LUCA_6SKILLS_MAXED;
+ goto S_Luca4;
+
+S_Luca4:
+ if (countitem("AssassinPants") < 1) goto S_Return;
+ delitem "AssassinPants", 1;
+ set FLAGS, FLAGS ^ FLAG_LUCA_4SKILLS_MAXED;
+ goto S_Luca2;
+
+S_Luca2:
+ if (countitem("AssassinBoots") < 1) goto S_Return;
+ delitem "AssassinBoots", 1;
+ set FLAGS, FLAGS ^ FLAG_LUCA_2SKILLS_MAXED;
+ goto S_LucaX;
+
+S_LucaX:
+ set FLAGS, FLAGS | FLAG_LUCA_FIX;
+ return;
+
S_Flags:
if (Open_Underground_Palace_Barrier)
set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND;
diff --git a/world/map/npc/magic/level2-magic-knuckles.txt b/world/map/npc/magic/level2-magic-knuckles.txt
index 95ab9120..ab74d474 100644
--- a/world/map/npc/magic/level2-magic-knuckles.txt
+++ b/world/map/npc/magic/level2-magic-knuckles.txt
@@ -1,10 +1,11 @@
-|script|magic-knuckles|32767
{
- if(call("magic_checks")) end;
+ if (call("magic_checks")) end;
if (Sp < 20) end;
if (getskilllv(SKILL_MAGIC) < .level) end;
set .@level, getskilllv(.school);
if (.@level < .level) end;
+ if (getequipid(equip_hand1) != -1 || getequipid(equip_hand2) != -1) end;
if (.@level <= 3 && countitem("Beer") >= 1) delitem "Beer", 1;
elif (.@level <= 3) end;
set @_M_BLOCK, 1; // block casting, until the timer clears it
@@ -13,16 +14,18 @@
set Sp, Sp - 20;
misceffect FX_MAGIC_KNUCKLE_CAST, strcharinfo(0);
setarray @upmarmuspell[0],
- @spellpower,
- ((@spellpower/10) + 10), // charges
- (((200 - Agi) * 1300) / 200), // delay
- Str; // do not allow to equip light armor, cast, and then switch to heavy armor to get bonus str
+ (BASE_ATK), // dmg
+ ((Dex/3) + 10), // charges
+ (sqrt(300 - (Agi * 2))+(5/2)), // delay
+ Agi, // dmg bonus
+ ((sqrt(BaseLevel + 9) + Str) * 2); // do not allow to equip light armor, cast, and then switch to heavy armor to get bonus str
callfunc "magic_exp";
goto L_FreeRecast;
OnAttack:
+ if (getequipid(equip_hand1) != -1 || getequipid(equip_hand2) != -1) goto OnDischarge;
if (target(BL_ID, @target_id, 22) != 22) goto L_FreeRecast; // 0x10 | 0x02 | 0x04
- void call("melee_damage", @upmarmuspell[0], @target_id, (30 + rand((@upmarmuspell[3]*2) + 5)));
+ void call("elt_damage", @upmarmuspell[0], (@upmarmuspell[3] + @upmarmuspell[4]), ELT_WATER, ELT_FIRE, FX_NONE);
set @upmarmuspell[1], @upmarmuspell[1] - 1;
goto L_FreeRecast;
@@ -39,7 +42,7 @@ OnDischarge:
end;
OnSetRecast:
- overrideattack @upmarmuspell[2], 1, ATTACK_ICON_GENERIC, OVERRIDE_KNUCKLES, strnpcinfo(0)+"::OnAttack", @upmarmuspell[1];
+ overrideattack (@upmarmuspell[2] * @upmarmuspell[2]), 1, ATTACK_ICON_GENERIC, OVERRIDE_KNUCKLES, strnpcinfo(0)+"::OnAttack", @upmarmuspell[1]; // delay neeeds to be squared
end;
OnInit: