0 Members and 2 Guests are viewing this topic.
I'd go for capture the flag with Charlie and Delta. Any of the two teams has to hold BOTH flag to get points, otherwise nobody earns points by the time.there could be also alpha and bravo shitting somehow. I'd expect small-medium maps for thisdam, I should script that somehow
{CTF-HTF with Charlie and Delta.Things to know:- Gamemode must be CTF- Each team must have both flags to start scoring, no matter if an only player has them.- If any flag is lost, points WILL continue counting until any team recovers the lost flag.- This gamemode should have at least 2 players on each time to be worth it. Any current CTF map should work...- It's all about being in the middle of the map I guess.- I'm not sure if it's complete or not, It's all about testing it.- Maybe some WriteConsoles would be good, I'll think on that later}//I hope that with this code it's enoughvarCHAlpha, CHBravo, DEAlpha, DEBravo: Boolean; //Flag's for both teams//How the points are givenprocedure AppOnIdle(Ticks: integer);beginif (CHAlpha = True) and (ChBravo = True) then begin AlphaScore := AlphaScore + 1; end;if (DEAlpha = True) and (DEBravo = True) then begin BravoScore := BravoScore + 1; end;end;//No need to explain this, it's too longprocedure OnFlagGrab(ID, TeamFlag: byte; GrabbedInBase: boolean);beginif GetPlayerStat(ID,'Team') = 3 then begin if GetObjectStat(ID, 'Style') = 1 then begin CHAlpha := True; DEAlpha := False; end; if GetObjectStat(ID, 'Style') = 2 then begin CHBravo := True; DEBravo := False; end; end; if GetPlayerStat(ID,'Team') = 4 then begin if GetObjectStat(ID, 'Style') = 1 then begin DEAlpha := True; CHAlpha := False; end; if GetObjectStat(ID, 'Style') = 2 then begin DEBravo := True; CHBravo := False; end; end;end;procedure OnPlayerSpeak(ID: Byte; Text: string);begin// !commands for charlieif Text = '!c' then Command('/setteam3 '+IntToStr(ID));if Text = '!charlie' then Command('/setteam3 '+IntToStr(ID));if Text = '!char' then Command('/setteam3 '+IntToStr(ID));// !commands for deltaif Text = '!d' then Command('/setteam4 '+IntToStr(ID));if Text = '!delta' then Command('/setteam4 '+IntToStr(ID));if Text = '!del' then Command('/setteam4 '+IntToStr(ID)); end;//So players won't join Alpha and Bravo, and also will keep teambalance, too!procedure OnJoinTeam(ID, Team: byte); //To balance teams, too!beginif (Team <> 5) then begin //So it won't make specs play if CharliePlayers = Deltaplayers then Command('/setteam3 '+IntToStr(ID)); if CharliePlayers > DeltaPlayers then Command('/setteam4 '+IntToStr(ID)); if CharliePlayers < DeltaPlayers then Command('/setteam3 '+IntToStr(ID)); end;end;procedure ActivateServer(); //ResetbeginCHAlpha := False;CHBravo := False;DEAlpha := False;DEBravo := False;end;procedure OnMapChange(NewMap: string); //ResetbeginCHAlpha := False;CHBravo := False;DEAlpha := False;DEBravo := False;end;//By niko
Quote from: miketh2005 on July 10, 2009, 07:31:20 pmDonate to enesceHAHAHAHAHAHAHA
Donate to enesce
LOL ID in OnFlagGrab is player who grabbed not Flag ID :OAnd your OnJoinTeam will set everyone to charlie and delta. There should be alpha and bravo for 100% fun!
No need to f**k with on player grab(etc)! Just apponidle loop through every player and check if he's a flagger! If he is, add some points?(or I misunderstood smth?)
But when 1 player has 2 flags team won't get points cause it's uncheckable using script.Edit: I think you can check it using GetFlagsXY. If they are very close it means that they are being hold by 1 player. First check ammount of flaggers and if theres only one check flag positions.