summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Petithory <vincent.petithory@gmail.com>2013-03-24 12:26:20 +0100
committerVincent Petithory <vincent.petithory@gmail.com>2013-03-24 12:26:20 +0100
commit0465893d31020aa8b78eed3105b3b37761d3038c (patch)
tree06b3ce6025634f4196f8d14cdeb87f49d2638258
parent1462af22e353a075ad283c899c6e4aa9004b9bc4 (diff)
downloadserverdata-0465893d31020aa8b78eed3105b3b37761d3038c.tar.gz
serverdata-0465893d31020aa8b78eed3105b3b37761d3038c.tar.bz2
serverdata-0465893d31020aa8b78eed3105b3b37761d3038c.tar.xz
serverdata-0465893d31020aa8b78eed3105b3b37761d3038c.zip
Candor Fix:
* Clean player variables when the player dies / at end of round * Do no punish players before round 600 * Hurt players based on a % of their Max HP, not a fixed value * Make the poison duration depend on the severity of the punishment (8s per increment)
-rw-r--r--world/map/npc/029-3/parua.txt29
1 files changed, 22 insertions, 7 deletions
diff --git a/world/map/npc/029-3/parua.txt b/world/map/npc/029-3/parua.txt
index c4b258f2..4fab5b6b 100644
--- a/world/map/npc/029-3/parua.txt
+++ b/world/map/npc/029-3/parua.txt
@@ -273,18 +273,19 @@ onTick:
// called on each player when a new round begins
onNewRound:
- // TODO initialization and clean-up of the variables
if (isdead())
+ goto L_CleanUp_Player;
+ if ($@FIGHT_CAVE_LEVEL < 600)
end;
set @candor_oldx, @candor_x;
set @candor_oldy, @candor_y;
set @candor_x, getx();
set @candor_y, gety();
if (!(@candor_oldx == @candor_x && @candor_oldy == @candor_y))
- end;
- @candor_poscounter, @candor_poscounter + 1;
- sc_start sc_poison, 1, 20;
- heal -20 * @candor_poscounter, 0;
+ goto L_IdleCheckPassed;
+ set @candor_idle_counter, @candor_idle_counter + 1;
+ sc_start sc_poison, 1, @candor_idle_counter*8;
+ percentheal -20 * @candor_idle_counter, 0;
message strcharinfo(0), "The evil energy of this place hurts you. You should keep moving!";
end;
@@ -317,10 +318,24 @@ L_CleanUp_Announcement:
setnpctimer 0;
end;
+L_CleanUp_Player:
+ set @candor_oldx, 0;
+ set @candor_oldy, 0;
+ set @candor_x, 0;
+ set @candor_y, 0;
+ set @candor_idle_counter, 0;
+ end;
+
+L_IdleCheckPassed:
+ //FIXME we could do that, but I'd say, let's be severe.
+ //set @candor_idle_counter, 0;
+ end;
+
onReward:
- if (isdead()) end;
+ if (isdead())
+ goto L_CleanUp_Player;
set BOSS_POINTS, BOSS_POINTS + 100;
message strcharinfo(0), "You gain 100 Boss Points giving you a total of " + BOSS_POINTS;
- end;
+ goto L_CleanUp_Player;
}