diff options
author | Vincent Petithory <vincent.petithory@gmail.com> | 2013-03-24 12:26:20 +0100 |
---|---|---|
committer | Vincent Petithory <vincent.petithory@gmail.com> | 2013-03-24 12:26:20 +0100 |
commit | 0465893d31020aa8b78eed3105b3b37761d3038c (patch) | |
tree | 06b3ce6025634f4196f8d14cdeb87f49d2638258 /world/map | |
parent | 1462af22e353a075ad283c899c6e4aa9004b9bc4 (diff) | |
download | serverdata-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)
Diffstat (limited to 'world/map')
-rw-r--r-- | world/map/npc/029-3/parua.txt | 29 |
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; } |