0 Members and 1 Guest are viewing this topic.
varscore: integer;last: ARRAY [1..2] of integer;punish: byte;delay: byte;procedure AppOnIdle(Ticks: integer);begin if (Ticks mod (60) = 0) and (delay = 1) then begin Command('/kill ' + inttostr(last[punish])); Command('/say ' + IDToName(last[punish]) + ' punished for double scoring'); delay := 0; punish := 0; end;end;procedure OnFlagGrab(ID: integer;TeamFlag: byte;GrabbedInBase: boolean);begin last[TeamFlag] := ID;end;procedure OnFlagScore(ID: integer;TeamFlag: byte);begin if score+1 < AlphaScore+BravoScore then punish := TeamFlag; score := AlphaScore+BravoScore;end;procedure OnPlayerRespawn(ID: integer);begin if (punish > 0) then delay := 1; score := AlphaScore+BravoScore;end;procedure OnLeaveGame(IP, Nickname: string;Team: byte);begin if (last[1] = NameToID(Nickname)) or (last[2] = NameToID(Nickname)) then punish := 0;end;
//Script to punish double scoring on Survival CTF//Author: Quantifiervar upTime: integer; flag_carrier: array[1..2] of integer; flag_carrier_name: array[1..2] of string; punishment_who_name: string; punishment_who: integer; punishment_when: integer; old_score: integer; time_last_scored: integer; time_last_captured: integer; captured_flag: integer; dscored : array[1..7] of integer; //make this array bigger if server has more slotsprocedure ActivateServer();var i:integer;begin upTime:=0; punishment_who:=0; punishment_when:=0; old_score:=0; flag_carrier[1]:=0; flag_carrier[2]:=0; time_last_scored:=0; time_last_captured:=0; for i:=1 to 7 do begin dscored[i]:=0; end;end;procedure AppOnIdle(Ticks: integer);begin if (punishment_who <> 0) and (Ticks = punishment_when*60) then begin if (idtoname(punishment_who)=punishment_who_name) then begin if dscored[punishment_who] = 0 then begin Command('/kill '+inttostr(punishment_who)); dscored[punishment_who] := 1; //comment this to disable recidive kick end else begin BanPlayer(punishment_who, 15); dscored[punishment_who] := 0; end; Command('/say '+punishment_who_name+' has been punished for double scoring.'); Writeln(punishment_who_name+' has been punished for double scoring.'); end; punishment_who := 0; end; if (alphascore+bravoscore>old_score) then begin if (time_last_captured=uptime) and ((alphascore+bravoscore>old_score+1) or (uptime-time_last_scored<=6)) then begin punishment_who:=flag_carrier[captured_flag]; punishment_who_name:=flag_carrier_name[captured_flag]; flag_carrier[1]:=0; flag_carrier[2]:=0; if punishment_who<>0 then begin Writeln(punishment_who_name+' double scored.'); saytoplayer(punishment_who,'Double scoring is forbidden.'); saytoplayer(punishment_who,'You will be punished.'); end; end; time_last_scored:=uptime; end; old_score:=bravoscore+alphascore; upTime:=upTime+1;end;procedure OnFlagGrab(ID: integer;TeamFlag: byte;GrabbedInBase: boolean);begin flag_carrier[TeamFlag]:=id; flag_carrier_name[TeamFlag]:=idtoname(id);end;procedure OnFlagScore(ID: integer;TeamFlag: byte);begin captured_flag:=TeamFlag; time_last_captured:=uptime;end;procedure OnPlayerRespawn(ID: integer);begin if (punishment_who=id) then begin punishment_when:=uptime+1; end;end;procedure OnLeaveGame(IP, Nickname: string;Team: byte);var id:integer;begin id:=nametoid(nickname); dscored[id]:=0; if id=punishment_who then begin punishment_who:=0; end;end;
Some people just don't like it. How would you like to lose a map because some people using a glitch in the game? It's a matter of preference really.
IMO double scoring can be ideal tactic for some clans. If they are good at it, they deserve the win. Loser team needs just to blame itself because of losing the match, and not being able to stop the another teams tactic. On public servers tho, I do not see double scoring SO tactical, but it should not be punished IMO. ;_;
You've already proved your win, why double it up and make a fair team work twice as hard to catch up?