1. No wonder it doesn't show any big messages, the code is not even there
2. If you want to save colors like that, declare them as const, not var.
3. "award 10 points", "3 Points Awarded!". Decide. TO prevent things like this, set reward as a const as well.
I wrote the simplest SC3 First Blood script, for the sake of practise. Attached whole script folder.
Code below. Sadly, OnKill is called before the "You killed XYZ" is being shown, so I had to use OnClockTick.
const
GREEN = $00FF00;
RED = $FF0000;
REWARD = 10;
var
firstBlood: boolean;
firstMessage: boolean;
i: integer;
procedure OnMapChange(NewMap: string); begin
firstBlood := TRUE;
firstMessage := TRUE;
end;
procedure MyOnKill(Killer, Victim: TActivePlayer; WeaponType: Byte); begin
if (firstBlood) and (Killer <> Victim) then
begin
firstBlood := FALSE;
Players.WriteConsole('FIRST BLOOD: '+ Killer.Name + ' killed '+ Victim.Name,GREEN);
Players.WriteConsole(inttostr(REWARD)+' Points Awarded!',GREEN);
Killer.Kills := Killer.Kills + REWARD;
end;
end;
procedure OnClock(t: integer);
begin
if (not firstBlood) and firstMessage then
begin
Players.BigText(1,'FIRST BLOOD',250,RED,0.10,200,400);
firstMessage := FALSE;
Game.TickThreshold := 60;
end;
end;
begin
for i:=1 to 32 do
Players[i].OnKill := @MyOnKill;
Map.OnAfterMapChange := @OnMapChange;
Game.TickThreshold := 10;
Game.OnClockTick := @OnClock;
end.