Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Test;
- interface
- implementation
- var Decl: byte;
- const
- FullHeal = 150;
- MaxHealth = 65;
- var
- PlayerHealth: array [1..32] of integer;
- function HeadShootKill(Shooter, Victim: TActivePlayer; Damage: Integer; Bullet: byte): Integer;
- var s,c: integer;
- begin
- c:=0;
- s:=FullHeal;
- PlayerHealth[Victim.ID] := (PlayerHealth[Victim.ID] - damage);
- Players.BigText(1,'Damage: '+inttostr(damage),140,$FD3C20,0.055,12,375);
- c := Round(single(PlayerHealth[Victim.ID] * MaxHealth)/single(s));
- c :=(Victim.Health - c);
- Players.BigText(2,'C: '+inttostr(c),140,$FD3C20,0.055,12,355);
- Result := c;
- end;
- procedure OnAfterRespawn(Player: TActivePlayer);
- begin
- PlayerHealth[Player.ID]:=FullHeal;
- Player.GiveBonus(3);
- end;
- procedure AppOnIdleS2(Ticks: integer);
- var i: byte;
- begin
- for i:= 1 to 32 do if (Players[i].Active) then begin
- if (Players[i].Team<5) then begin
- Players[i].BigText(3,'Heal +: '+inttostr(Round((PlayerHealth[i]/150.0)*100))+'%, ('+inttostr(PlayerHealth[i])+')',40,$FD3C20,0.055,12,395);
- Players[i].BigText(4,'Heal Real: '+inttostr(Round((Players[i].Health/65.0)*100))+'%, ('+inttostr(Players[i].Health)+')',40,$FD3C20,0.055,12,385);
- end;
- end;
- end;
- initialization
- begin
- Game.TickThreshold := 1;
- Game.OnClockTick := @AppOnIdleS2;
- for Decl := 1 to 32 do begin
- Players[Decl].OnDamage := @HeadShootKill;
- Players[Decl].OnAfterRespawn := @OnAfterRespawn;
- end;
- end;
- finalization;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement