From eca038e00b9937d6c177bd8cddc8b5b1a2e9c5a9 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Wed, 13 May 2020 00:57:23 -0300 Subject: Replace our script-induced deaths with new, custom, die() command This will fix one of the HardCore Server bugs. --- npc/001-7/homunculus.txt | 4 ++-- npc/003-0-2/manastone.txt | 2 +- npc/009-1/charles.txt | 2 +- npc/011-1/manastone.txt | 2 +- npc/012-7/celestia.txt | 2 +- npc/015-8-1/campaign.txt | 2 +- npc/015-8/puzzle.txt | 4 ++-- npc/015-8/sealedshrine.txt | 10 +++++----- npc/017-1/drowned_man.txt | 2 +- npc/017-1/paxel.txt | 4 ++-- npc/017-1/pet_detective.txt | 2 +- npc/020-7-1/oskari.txt | 2 +- npc/020-7-1/peetu.txt | 2 +- npc/021-4/main.txt | 2 +- npc/023-2/mk.txt | 2 +- npc/023-3-1/logic.txt | 8 ++++---- npc/023-3-2/logic.txt | 2 +- npc/023-3/logic.txt | 6 +++--- npc/024-7/afking.txt | 2 +- npc/042-0/arthur.txt | 10 +++++----- npc/042-1/door.txt | 4 ++-- npc/042-10/ctrl.txt | 8 ++++---- npc/042-11/boss.txt | 6 +++--- npc/042-2/boss.txt | 10 +++++----- npc/042-4/ctrl.txt | 2 +- npc/042-5/ctrl.txt | 4 ++-- npc/042-6/ctrl.txt | 6 +++--- npc/042-7/ctrl.txt | 6 +++--- npc/042-8/ctrl.txt | 6 +++--- npc/042-9/ctrl.txt | 6 +++--- npc/commands/wgm.txt | 4 ++-- npc/functions/hub.txt | 4 ++-- npc/functions/main.txt | 11 +++++++++++ npc/functions/refine.txt | 4 ++-- 34 files changed, 82 insertions(+), 71 deletions(-) (limited to 'npc') diff --git a/npc/001-7/homunculus.txt b/npc/001-7/homunculus.txt index 0aac7d961..45f6d01b9 100644 --- a/npc/001-7/homunculus.txt +++ b/npc/001-7/homunculus.txt @@ -15,7 +15,7 @@ OnTouch: // Cheater Detected if (.@q < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } if (.@q == 15) { @@ -36,7 +36,7 @@ OnTouch: // Cheater Detected if (.@n < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } mesn l("Magically Sealed Gate"); diff --git a/npc/003-0-2/manastone.txt b/npc/003-0-2/manastone.txt index 3339e29b3..6ab980ccb 100644 --- a/npc/003-0-2/manastone.txt +++ b/npc/003-0-2/manastone.txt @@ -66,7 +66,7 @@ L_LevelUp: if (MAGIC_LVL) mes l("More Magic Power is granted to you, but you die from it."); MAGIC_LVL = MAGIC_LVL+1; sk_lvup(AL_DP); - percentheal -100, -100; + die(); close; OnInit: diff --git a/npc/009-1/charles.txt b/npc/009-1/charles.txt index c9e67a0c0..d3cdf3e21 100644 --- a/npc/009-1/charles.txt +++ b/npc/009-1/charles.txt @@ -176,7 +176,7 @@ L_Review: L_Die: mesn; mesq l("Then I'll be sure you can't talk again."); - percentheal -100, 0; + die(); close; L_Close: diff --git a/npc/011-1/manastone.txt b/npc/011-1/manastone.txt index 53be3b59f..f413acf38 100644 --- a/npc/011-1/manastone.txt +++ b/npc/011-1/manastone.txt @@ -78,7 +78,7 @@ L_LevelUp: @deathpenalty_realvalue=readparam(BaseExp); @deathpenalty_realvaljob=readparam(JobExp); @deathpenalty_override=1; - percentheal -100, -100; + die(); close; OnInit: diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt index 8b8dc4faf..2e2190026 100644 --- a/npc/012-7/celestia.txt +++ b/npc/012-7/celestia.txt @@ -186,7 +186,7 @@ L_Lying: if (Sp == MaxSp) percentheal 0, -100; else - percentheal -100, 0; + die(); close; // begin: Gumi Script diff --git a/npc/015-8-1/campaign.txt b/npc/015-8-1/campaign.txt index ce1884d78..f2dd07478 100644 --- a/npc/015-8-1/campaign.txt +++ b/npc/015-8-1/campaign.txt @@ -170,7 +170,7 @@ OnSagrathaReallyDie: dispbottom l("You failed to protect Sagratha..."); // and will need to start the quest again..."); setq1 HurnscaldQuest_Sagratha, 3; setq3 HurnscaldQuest_Sagratha, 0; - percentheal -100, -100; + die(); end; OnSagrathaWin: diff --git a/npc/015-8/puzzle.txt b/npc/015-8/puzzle.txt index 7417fbe16..a62a56ac5 100644 --- a/npc/015-8/puzzle.txt +++ b/npc/015-8/puzzle.txt @@ -59,7 +59,7 @@ OnTouch: .@ponderate=(readparam2(bStr)+readparam2(bVit))/100*60; if (rand(0,1000) < 640-(.@ponderate*6)) { mesc l("But unfortunately, a loose stone lodges and you fall to your death."), 1; - percentheal -100, -100; + die(); close; } mesc l("You succeed in crossing the chasm!"); @@ -79,7 +79,7 @@ OnTouch: // (You can always fall as top is 600 of 640) if (rand(0,1000) < 640-(readparam2(bAgi)*6)) { mesc l("But unfortunately, it was harder than you thought. You are dead."), 1; - percentheal -100, -100; + die(); close; } mesc l("You succeed in crossing the chasm!"); diff --git a/npc/015-8/sealedshrine.txt b/npc/015-8/sealedshrine.txt index 8be41f9e3..d4e41700d 100644 --- a/npc/015-8/sealedshrine.txt +++ b/npc/015-8/sealedshrine.txt @@ -424,7 +424,7 @@ OnTouch: if (@SaggySeal$ != "") { npctalk3 l("The seal retaliates! It was super effective. You are dead!"); @SaggySeal$=""; - percentheal -100, -100; + die(); end; } end; @@ -435,7 +435,7 @@ OnTouch: if (@SaggySeal$ != "") { npctalk3 l("The seal retaliates! It was super effective. You are dead!"); @SaggySeal$=""; - percentheal -100, -100; + die(); end; } end; @@ -446,7 +446,7 @@ OnTouch: if (@SaggySeal$ != "") { npctalk3 l("The seal retaliates! It was super effective. You are dead!"); @SaggySeal$=""; - percentheal -100, -100; + die(); end; } end; @@ -586,7 +586,7 @@ function script SaggyShrineStatue { OnScheduledDeath: npctalk3 l("Be devoured!"); - percentheal -100, -100; + die(); end; OnInit: @@ -600,7 +600,7 @@ OnInit: OnScheduledDeath: npctalk3 l("Be devoured!"); - percentheal -100, -100; + die(); end; OnInit: diff --git a/npc/017-1/drowned_man.txt b/npc/017-1/drowned_man.txt index 326b3dd69..bd3c693a2 100644 --- a/npc/017-1/drowned_man.txt +++ b/npc/017-1/drowned_man.txt @@ -135,7 +135,7 @@ OnInit: if (is_between(5220, 5270, .x*32) && is_between(7330, 7390, .y*32)) goto L_GoodJump; dispbottom l("The water was too shallow..."); - percentheal -100, -100; + die(); end; } closeclientdialog; diff --git a/npc/017-1/paxel.txt b/npc/017-1/paxel.txt index 40c2f603d..0d1df6687 100644 --- a/npc/017-1/paxel.txt +++ b/npc/017-1/paxel.txt @@ -182,7 +182,7 @@ L_Spring: OnTouch: if (BaseLevel < 20) { - percentheal -100, -100; // Shouldn't be here + die(); // Shouldn't be here end; } addtimer(100, "Paxel::OnOmattizator"); @@ -246,7 +246,7 @@ OnOmattizator4: slide 130, 23; emotion E_FURIOUS; - percentheal -100, -100; + die(); end; function maybeTowel { diff --git a/npc/017-1/pet_detective.txt b/npc/017-1/pet_detective.txt index e98b0e6e6..293500df7 100644 --- a/npc/017-1/pet_detective.txt +++ b/npc/017-1/pet_detective.txt @@ -37,7 +37,7 @@ L_Register: if (Zeny < 5000) { mesn l("Ace Ventura"); mesq l("Oh, but we are affiliated with Jesusalva, whom hates cheaters. So, meet your dismissal!"); - percentheal -100, 0; + die(); /* .@val=(Zeny/10)*2; Zeny=(Zeny/10)*8; // You pay 20% of your GP as tax-money. Hasan gladly takes the money. Jesusalva's happy. diff --git a/npc/020-7-1/oskari.txt b/npc/020-7-1/oskari.txt index a6db90584..1d17fd2db 100644 --- a/npc/020-7-1/oskari.txt +++ b/npc/020-7-1/oskari.txt @@ -68,7 +68,7 @@ break; default: warp "Save", 0, 0; - percentheal -100, -100; + die(); end; break; } diff --git a/npc/020-7-1/peetu.txt b/npc/020-7-1/peetu.txt index 4f6187942..5e20d7e47 100644 --- a/npc/020-7-1/peetu.txt +++ b/npc/020-7-1/peetu.txt @@ -77,7 +77,7 @@ break; default: warp "Save", 0, 0; - percentheal -100, -100; + die(); end; break; } diff --git a/npc/021-4/main.txt b/npc/021-4/main.txt index 5c15a1bb8..679429d70 100644 --- a/npc/021-4/main.txt +++ b/npc/021-4/main.txt @@ -242,7 +242,7 @@ OnPetDeath: // Cast against all players on defeat OnFail: - percentheal -100, -100; + die(); heal -1, -1; end; diff --git a/npc/023-2/mk.txt b/npc/023-2/mk.txt index 60fa62361..e6408f52f 100644 --- a/npc/023-2/mk.txt +++ b/npc/023-2/mk.txt @@ -10,7 +10,7 @@ OnTouch: npctalk3 get_race() + "!"; - percentheal -100, -100; + die(); end; OnInit: diff --git a/npc/023-3-1/logic.txt b/npc/023-3-1/logic.txt index 15f1e80de..a4bba6acc 100644 --- a/npc/023-3-1/logic.txt +++ b/npc/023-3-1/logic.txt @@ -16,7 +16,7 @@ OnTouch: // Cheater Detected if (.@n < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } if (.@q < 3) { @@ -41,7 +41,7 @@ OnTouch: // Cheater Detected if (.@n < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } if (.@n == 15) { @@ -59,7 +59,7 @@ OnTouch: .@q=getq(FrostiaQuest_Homunculus); if (.@q < 2) { dispbottom l("Error, cheater detected"); - percentheal -100, -100; + die(); end; } .@q=getq3(FrostiaQuest_Homunculus); @@ -90,7 +90,7 @@ OnTouch: .@q=getq(FrostiaQuest_Homunculus); if (.@q < 2) { dispbottom l("Error, cheater detected"); - percentheal -100, -100; + die(); end; } .@n$=instance_npcname(.name$); diff --git a/npc/023-3-2/logic.txt b/npc/023-3-2/logic.txt index 1b8ff580b..773abcbe2 100644 --- a/npc/023-3-2/logic.txt +++ b/npc/023-3-2/logic.txt @@ -14,7 +14,7 @@ OnTouch: // Cheater Detected if (.@q < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } if (.@q == 15) { diff --git a/npc/023-3/logic.txt b/npc/023-3/logic.txt index 3da5fedb7..0f0090e11 100644 --- a/npc/023-3/logic.txt +++ b/npc/023-3/logic.txt @@ -15,7 +15,7 @@ OnTouch: // Cheater Detected if (.@q < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } @@ -37,7 +37,7 @@ OnTouch: // Cheater Detected if (.@q < 15) { warp "Save", 0, 0; - percentheal -100, -100; + die(); end; } // Not allowed to proceed @@ -217,7 +217,7 @@ OnTouch: end; OnTouchNPC: - //percentheal -100, -100; + //die(); //unitkill(0); unitwarp(0, "023-3", 42, 26); end; diff --git a/npc/024-7/afking.txt b/npc/024-7/afking.txt index 68c3008b1..b6dc63d14 100644 --- a/npc/024-7/afking.txt +++ b/npc/024-7/afking.txt @@ -141,7 +141,7 @@ function AFDeliver { mesn; mesq l("I'll feed you to the Moubootaur %%e"); setparam(MaxHp, readparam(MaxHp)-100); - percentheal -100, -100; + die(); close; } Zeny-=5000; diff --git a/npc/042-0/arthur.txt b/npc/042-0/arthur.txt index 136be86b8..e0576053f 100644 --- a/npc/042-0/arthur.txt +++ b/npc/042-0/arthur.txt @@ -111,7 +111,7 @@ OnPreSmash: end; OnSmash: - percentheal -100, -100; + die(); end; ////////////////////////////////////////////////////////////////////////// @@ -215,7 +215,7 @@ L_DoReward2: OnKillMob: if (!playerattached()) end; .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g], $KAMELOT_MX[.@g]/2+1; end; @@ -227,7 +227,7 @@ function arthurSpawn { .@y1=getarg(2); .@y2=getarg(4); .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); .@avg=$KAMELOT_MX[.@g]; .@m$=getmap(); for (.@i=0; .@i < .@gcount; .@i++) { @@ -437,7 +437,7 @@ L_Hint: OnKillMob: if (!playerattached()) end; .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*2, $KAMELOT_MX[.@g]; end; @@ -445,7 +445,7 @@ function guinevereSpawn { .@label$=instance_npcname(.name$)+"::OnKillMob"; .@gcount=getarg(0); .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); .@avg=$KAMELOT_MX[.@g]; .@m$=getmap(); for (.@i=0; .@i < .@gcount; .@i++) { diff --git a/npc/042-1/door.txt b/npc/042-1/door.txt index 8177d9015..cc3d13fd6 100644 --- a/npc/042-1/door.txt +++ b/npc/042-1/door.txt @@ -65,7 +65,7 @@ OnKillMob: // For example, if you're lame cheater .@g=getcharid(2); if (.@g < 1) - percentheal -100, -100; + die(); // I also want to give you exp getexp $KAMELOT_MX[.@g]*3, $KAMELOT_MX[.@g]; @@ -178,7 +178,7 @@ OnTimer10000: OnArrival: .@g=getcharid(2); if (.@g < 1) - percentheal -100, -100; + die(); if (getmap() != "042-1@"+.@g) end; if ($@KAMELOT_WAVE[.@g] == 0) diff --git a/npc/042-10/ctrl.txt b/npc/042-10/ctrl.txt index 64fc1195c..bb13e8d5c 100644 --- a/npc/042-10/ctrl.txt +++ b/npc/042-10/ctrl.txt @@ -11,7 +11,7 @@ OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); dispbottom l("OH NOES! The ceiling seems to have collapsed. I hope we got the key, or the quest is over for us!"); end; } @@ -27,7 +27,7 @@ OnTouch: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if (!($KAMELOT_QUEST[.@g] & 8) || !($KAMELOT_QUEST[.@g] & 16) || !($KAMELOT_QUEST[.@g] & 32)) goto L_NoAccess; warp "042-11@"+.@g, 41, 56; addtimer 3000, "#KamelotBoss::OnDialog"; @@ -59,7 +59,7 @@ OnInit: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if (!($KAMELOT_QUEST[.@g] & 16) && !($KAMELOT_QUEST[.@g] & 8)) goto L_NoAccessBlock; if (!($KAMELOT_QUEST[.@g] & 16) || !($KAMELOT_QUEST[.@g] & 8)) goto L_NoAccess; // You can pass freely, so we do nothing @@ -552,7 +552,7 @@ OnKillMob: // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*10, $KAMELOT_MX[.@g]*5; .@delay=max(5000, 30000-$KAMELOT_PC[.@g]*1250); // FALLTHROUGH diff --git a/npc/042-11/boss.txt b/npc/042-11/boss.txt index e5afa07d8..6346693f8 100644 --- a/npc/042-11/boss.txt +++ b/npc/042-11/boss.txt @@ -9,7 +9,7 @@ OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if (!($KAMELOT_QUEST[.@g] & 64)) goto L_NoAccess; warp "042-10@"+.@g, 143, 21; end; @@ -24,7 +24,7 @@ L_NoAccess: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if (!($KAMELOT_QUEST[.@g] & 64)) goto L_NoAccess; mes l("Are you sure you want leave?"); mesc l("You wont be able to go back!"); @@ -146,7 +146,7 @@ OnTimer5000: OnKillMob: // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*8, $KAMELOT_MX[.@g]*4; // Lower than previously end; diff --git a/npc/042-2/boss.txt b/npc/042-2/boss.txt index 238c5d95b..914290e59 100644 --- a/npc/042-2/boss.txt +++ b/npc/042-2/boss.txt @@ -13,7 +13,7 @@ OnTouch: .@label$=instance_npcname(.name$)+"::OnKillBoss"; .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if (($KAMELOT_QUEST[.@g] & 4) && !mobcount(getmap(), .@label$)) { warp "042-3@"+.@g, 58, 139; } else { @@ -28,7 +28,7 @@ OnArrival: .@m$=instance_mapname("042-2"); .@g=getcharid(2); if (.@g < 1) - percentheal -100, -100; + die(); //debugmes getmap(); if (getmap() != "042-2@"+.@g) end; @@ -153,7 +153,7 @@ OnTimer185000: OnVerifyIntent: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); mesq l("Who are you, and how did you manage to come down here? The sheer power of our Lord prevents anyone not under his control to go here."); select l("We are strong fighters, and we want to free the King from his obsession."), @@ -183,7 +183,7 @@ OnVerifyIntent: OnKillMob: if (!playerattached()) end; .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*5, $KAMELOT_MX[.@g]*2; end; @@ -308,7 +308,7 @@ OnTimer1015000: OnReward: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); setpcblock(255, true); getitem GuildCoin, min(1, $KAMELOT_MX[.@g]/25); getexp $KAMELOT_MX[.@g]*50, $KAMELOT_MX[.@g]*10; diff --git a/npc/042-4/ctrl.txt b/npc/042-4/ctrl.txt index 65a2a8705..d6fdb9a80 100644 --- a/npc/042-4/ctrl.txt +++ b/npc/042-4/ctrl.txt @@ -51,7 +51,7 @@ OnKillMob: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*7, $KAMELOT_MX[.@g]*3; .@delay=max(7000, 42000-$KAMELOT_PC[.@g]*2000); // FALLTHROUGH diff --git a/npc/042-5/ctrl.txt b/npc/042-5/ctrl.txt index e36eeb5ce..074df1a82 100644 --- a/npc/042-5/ctrl.txt +++ b/npc/042-5/ctrl.txt @@ -45,7 +45,7 @@ OnKillMob: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*7, $KAMELOT_MX[.@g]*3; .@delay=max(7000, 42000-$KAMELOT_PC[.@g]*2000); // FALLTHROUGH @@ -115,7 +115,7 @@ function monster0425 { function script KamelotTreasure { .@id=getarg(0); .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if ($KAMELOT_KEYMASK[.@g] & .@id) { mesc l("The chest is unlocked and empty."); close; diff --git a/npc/042-6/ctrl.txt b/npc/042-6/ctrl.txt index 694ea77b3..5ae91ade2 100644 --- a/npc/042-6/ctrl.txt +++ b/npc/042-6/ctrl.txt @@ -64,7 +64,7 @@ OnKillBoss: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getitem GuildCoin, 2+min(13, $KAMELOT_MX[.@g]/10); getexp $KAMELOT_MX[.@g]*14, $KAMELOT_MX[.@g]*8; mapannounce getmap(), strcharinfo(0)+" has defeated the boss!", 0; @@ -76,7 +76,7 @@ OnKillMob: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*7, $KAMELOT_MX[.@g]*4; .@delay=max(7000, 42000-$KAMELOT_PC[.@g]*2000); // FALLTHROUGH @@ -103,7 +103,7 @@ OnRespawn: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if ($KAMELOT_KEYMASK[.@g] & 8) goto L_NoAccess; warp "042-5@"+.@g, 58, 53; end; diff --git a/npc/042-7/ctrl.txt b/npc/042-7/ctrl.txt index 5c26584c5..d9df13dac 100644 --- a/npc/042-7/ctrl.txt +++ b/npc/042-7/ctrl.txt @@ -64,7 +64,7 @@ OnKillBoss: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getitem GuildCoin, 2+min(13, $KAMELOT_MX[.@g]/10); getexp $KAMELOT_MX[.@g]*14, $KAMELOT_MX[.@g]*8; mapannounce getmap(), strcharinfo(0)+" has defeated the boss!", 0; @@ -76,7 +76,7 @@ OnKillMob: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*7, $KAMELOT_MX[.@g]*4; .@delay=max(7000, 42000-$KAMELOT_PC[.@g]*2000); // FALLTHROUGH @@ -103,7 +103,7 @@ OnRespawn: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if ($KAMELOT_KEYMASK[.@g] & 4) goto L_NoAccess; warp "042-5@"+.@g, 56, 21; end; diff --git a/npc/042-8/ctrl.txt b/npc/042-8/ctrl.txt index e85ade249..fd46570ea 100644 --- a/npc/042-8/ctrl.txt +++ b/npc/042-8/ctrl.txt @@ -64,7 +64,7 @@ OnKillBoss: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getitem GuildCoin, 2+min(13, $KAMELOT_MX[.@g]/10); getexp $KAMELOT_MX[.@g]*14, $KAMELOT_MX[.@g]*8; mapannounce getmap(), strcharinfo(0)+" has defeated the boss!", 0; @@ -76,7 +76,7 @@ OnKillMob: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*7, $KAMELOT_MX[.@g]*4; .@delay=max(7000, 42000-$KAMELOT_PC[.@g]*2000); // FALLTHROUGH @@ -103,7 +103,7 @@ OnRespawn: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if ($KAMELOT_KEYMASK[.@g] & 2) goto L_NoAccess; warp "042-5@"+.@g, 44, 21; end; diff --git a/npc/042-9/ctrl.txt b/npc/042-9/ctrl.txt index 8f8d3876d..0cb83c9cc 100644 --- a/npc/042-9/ctrl.txt +++ b/npc/042-9/ctrl.txt @@ -63,7 +63,7 @@ OnKillBoss: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getitem GuildCoin, 2+min(13, $KAMELOT_MX[.@g]/10); getexp $KAMELOT_MX[.@g]*14, $KAMELOT_MX[.@g]*8; mapannounce getmap(), strcharinfo(0)+" has defeated the boss!", 0; @@ -75,7 +75,7 @@ OnKillMob: goto OnRespawn; // Maybe a reward is due .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*7, $KAMELOT_MX[.@g]*4; .@delay=max(7000, 42000-$KAMELOT_PC[.@g]*2000); // FALLTHROUGH @@ -102,7 +102,7 @@ OnRespawn: OnTouch: .@g=getcharid(2); - if (.@g < 1) percentheal -100, -100; + if (.@g < 1) die(); if ($KAMELOT_KEYMASK[.@g] & 1) goto L_NoAccess; warp "042-5@"+.@g, 21, 43; end; diff --git a/npc/commands/wgm.txt b/npc/commands/wgm.txt index 3c3c5376c..36a9fddc1 100644 --- a/npc/commands/wgm.txt +++ b/npc/commands/wgm.txt @@ -25,7 +25,7 @@ OnCall: OnCallFunc: if (!$@GM_OVERRIDE) { dispbottom col("SEVERE ERROR: COMMAND NOT FOUND. EXECUTING SIMILAR COMMAND...", 1); - percentheal -100, -100; + die(); end; } .@request$ = ""; @@ -36,7 +36,7 @@ OnCallFunc: OnDoEvent: if (!$@GM_OVERRIDE) { dispbottom col("SEVERE ERROR: COMMAND NOT FOUND. EXECUTING SIMILAR COMMAND...", 1); - percentheal -100, -100; + die(); end; } .@request$ = ""; diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt index cdaf28ab8..8328b8b77 100644 --- a/npc/functions/hub.txt +++ b/npc/functions/hub.txt @@ -41,9 +41,9 @@ function script HUB_Logout { donpcevent("Cindy#Outside::OnReckless"); recovery(getcharid(3)); warp any("010-1", "010-2"), 0, 0; - percentheal -100, -100; sc_start2 SC_POISON, 1, 90, 10000; - heal -1, -1; + die(); + if (!$HARDCORE) heal -1, -1; } else if (.@mapa$ == "021-4") { .@pl = getmapusers("021-4")-1; if (.@pl < 1) diff --git a/npc/functions/main.txt b/npc/functions/main.txt index 808820aef..9bb9caa44 100644 --- a/npc/functions/main.txt +++ b/npc/functions/main.txt @@ -294,6 +294,17 @@ function script any_of { return getelementofarray(getarg(0), getarrayindex(getarg(0)) + rand2(getarraysize(getarg(0)) - getarrayindex(getarg(0)))); } +function script die { + if ($HARDCORE) { + setparam(Hp, 1); + warp "000-1", 22, 22; + end; // MUST be end; to mimic official behavior + } else { + percentheal -100, -100; + } + return; +} + // TMW2 Custom Functions ///////////////////////////////////////////// diff --git a/npc/functions/refine.txt b/npc/functions/refine.txt index fb1cfb57e..e5c835070 100644 --- a/npc/functions/refine.txt +++ b/npc/functions/refine.txt @@ -115,14 +115,14 @@ function script refineMaster { if (getequipisequiped(.@it) == 0) { mesn; mesc l("All cheaters must die."), 1; - percentheal -100, -100; + die(); close; } // Item changed if (getequiprefinerycnt(.@it) != .@rlv || getequipid(.@it) != .@item) { mesn; mesc l("All cheaters must die."), 1; - percentheal -100, -100; + die(); close; } ///// This should cover most of Crazyfefe tricks ¬.¬ I hope ¬.¬ -- cgit v1.2.3-60-g2f50