From 52afebd44f8e9169fc38be869e84d2ae8e97e1c6 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 14 Jan 2019 00:51:29 -0200 Subject: Really Implement death penalty override handler, @deathpenalty_override Accepted input: (0: full penalty) (1: No penalty) (2: Half penalty) --- npc/001-8/hub.txt | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'npc/001-8/hub.txt') diff --git a/npc/001-8/hub.txt b/npc/001-8/hub.txt index 51abfc258..9abec0abe 100644 --- a/npc/001-8/hub.txt +++ b/npc/001-8/hub.txt @@ -416,11 +416,16 @@ OnPCLogoutEvent: if (!is_staff()) atcommand "@jail "+strcharinfo(0); } - - - // I want to know if it is already safe to read your current exp - // to implement a no-death-penalty and a halved-penalty system - if (is_staff() && @qhub_died) { + // Death at terranite cave + if (.@mapa$ ~= "015-6") + @deathpenalty_override=2; + + // This allows code to override death penalty, just once: + // @deathpenalty_override + // Valid values: 1- No penalty. 2- Halved penalty. + if (@deathpenalty_override && @qhub_died) { + @deathpenalty_realvalue=readparam(BaseExp); + @deathpenalty_realvaljob=readparam(JobExp); addtimer(200, "#QuirinoHUB::OnNoPenaltyCommand"); } @@ -434,8 +439,19 @@ OnCancel: end; OnNoPenaltyCommand: - dispbottom l("Exp: @@", readparam(BaseExp)); - dispbottom l("JExp: @@", readparam(JobExp)); + .@realvalue=readparam(BaseExp)-@deathpenalty_realvalue; + .@realvaljob=readparam(JobExp)-@deathpenalty_realvaljob; + if (@deathpenalty_override == 1) + getexp .@realvalue, .@realvaljob; + else if (@deathpenalty_override == 2) + getexp .@realvalue/2, .@realvaljob/2; + else + dispbottom l("BUG, REPORT ME: QHUB PENALTY OVERRIDE INVALID SIGNAL @@", @deathpenalty_override); + + // Clear temporary variables + @deathpenalty_override=0; + @deathpenalty_realvalue=0; + @deathpenalty_realvaljob=0; end; } -- cgit v1.2.3-70-g09d2