Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <streamer>
- #include <sscanf2>
- #include <zcmd>
- #include <YSI\y_ini>
- #define ORANGE "{FFAF00}"
- #define GRAY "{C0C0C0}"
- #define RED "{F81414}"
- #define SCM SendClientMessage
- #define SCMTA SendClientMessageToAll
- #if !defined IsValidVehicle
- native IsValidVehicle(vehicleid);
- #endif
- #define Objects_FILE "Objects/%d.ini"
- #define MAX_Objects 1000
- enum Objects
- {
- aSet,
- Float:aX,
- Float:aY,
- Float:aZ,
- Float:aAngle,
- Float:aRX,
- Float:aRY,
- aObject,
- Vlasnik,
- aInt,
- aVW,
- Type
- }
- new ObjectsInfo[MAX_Objects][Objects], eData[MAX_PLAYERS];
- enum Turf
- {
- Float:Pos1[4],
- Float:Pos2[4],
- Float:Pos3[4],
- Float:Pos4[4]
- }
- new TurfInfo[Turf];
- new TurfStarted=0;
- new turftimer;
- new turfvehicles;
- new Points[4];
- new TurfVehicle[MAX_PLAYERS];
- new Text:TurfRes[8];
- public OnFilterScriptInit()
- {
- for(new y = 0; y < sizeof(ObjectsInfo); y++)
- {
- new yFile[50];
- format(yFile, sizeof(yFile), Objects_FILE, y);
- if(fexist(yFile))
- {
- INI_ParseFile(yFile, "LoadObjects", .bExtra = true, .extra = y);
- KreirajObjekte(y);
- }
- }
- if(fexist("turf.ini"))
- {
- INI_ParseFile("turf.ini", "LoadTurf");
- print("Turf Wars is loaded.");
- }
- TurfRes[1] = TextDrawCreate(232.999923, -4.288893, "LD_BEAT:chit");
- TextDrawLetterSize(TurfRes[1], 0.000000, 0.000000);
- TextDrawTextSize(TurfRes[1], 40.000000, 42.000000);
- TextDrawAlignment(TurfRes[1], 1);
- TextDrawColor(TurfRes[1], -5963521);
- TextDrawSetShadow(TurfRes[1], 0);
- TextDrawSetOutline(TurfRes[1], 0);
- TextDrawBackgroundColor(TurfRes[1], 255);
- TextDrawFont(TurfRes[1], 4);
- TextDrawSetProportional(TurfRes[1], 0);
- TextDrawSetShadow(TurfRes[1], 0);
- TurfRes[2] = TextDrawCreate(267.333282, -3.874078, "LD_BEAT:chit");
- TextDrawLetterSize(TurfRes[2], 0.000000, 0.000000);
- TextDrawTextSize(TurfRes[2], 40.000000, 42.000000);
- TextDrawAlignment(TurfRes[2], 1);
- TextDrawColor(TurfRes[2], -16776961);
- TextDrawSetShadow(TurfRes[2], 0);
- TextDrawSetOutline(TurfRes[2], 0);
- TextDrawBackgroundColor(TurfRes[2], 255);
- TextDrawFont(TurfRes[2], 4);
- TextDrawSetProportional(TurfRes[2], 0);
- TextDrawSetShadow(TurfRes[2], 0);
- TurfRes[3] = TextDrawCreate(334.666656, -3.459264, "LD_BEAT:chit");
- TextDrawLetterSize(TurfRes[3], 0.000000, 0.000000);
- TextDrawTextSize(TurfRes[3], 40.000000, 42.000000);
- TextDrawAlignment(TurfRes[3], 1);
- TextDrawColor(TurfRes[3], 65535);
- TextDrawSetShadow(TurfRes[3], 0);
- TextDrawSetOutline(TurfRes[3], 0);
- TextDrawBackgroundColor(TurfRes[3], 255);
- TextDrawFont(TurfRes[3], 4);
- TextDrawSetProportional(TurfRes[3], 0);
- TextDrawSetShadow(TurfRes[3], 0);
- TurfRes[4] = TextDrawCreate(301.333343, -3.459262, "LD_BEAT:chit");
- TextDrawLetterSize(TurfRes[4], 0.000000, 0.000000);
- TextDrawTextSize(TurfRes[4], 40.000000, 42.000000);
- TextDrawAlignment(TurfRes[4], 1);
- TextDrawColor(TurfRes[4], 8388863);
- TextDrawSetShadow(TurfRes[4], 0);
- TextDrawSetOutline(TurfRes[4], 0);
- TextDrawBackgroundColor(TurfRes[4], 255);
- TextDrawFont(TurfRes[4], 4);
- TextDrawSetProportional(TurfRes[4], 0);
- TextDrawSetShadow(TurfRes[4], 0);
- TurfRes[0] = TextDrawCreate(252.666656, 8.725929, "0");
- TextDrawLetterSize(TurfRes[0], 0.400000, 1.600000);
- TextDrawAlignment(TurfRes[0], 2);
- TextDrawColor(TurfRes[0], -1);
- TextDrawSetShadow(TurfRes[0], 0);
- TextDrawSetOutline(TurfRes[0], 0);
- TextDrawBackgroundColor(TurfRes[0], 255);
- TextDrawFont(TurfRes[0], 1);
- TextDrawSetProportional(TurfRes[0], 1);
- TextDrawSetShadow(TurfRes[0], 0);
- TurfRes[5] = TextDrawCreate(287.000152, 8.725928, "0");
- TextDrawLetterSize(TurfRes[5], 0.400000, 1.600000);
- TextDrawAlignment(TurfRes[5], 2);
- TextDrawColor(TurfRes[5], -1);
- TextDrawSetShadow(TurfRes[5], 0);
- TextDrawSetOutline(TurfRes[5], 0);
- TextDrawBackgroundColor(TurfRes[5], 255);
- TextDrawFont(TurfRes[5], 1);
- TextDrawSetProportional(TurfRes[5], 1);
- TextDrawSetShadow(TurfRes[5], 0);
- TurfRes[6] = TextDrawCreate(321.333526, 9.555559, "0");
- TextDrawLetterSize(TurfRes[6], 0.400000, 1.600000);
- TextDrawAlignment(TurfRes[6], 2);
- TextDrawColor(TurfRes[6], -1);
- TextDrawSetShadow(TurfRes[6], 0);
- TextDrawSetOutline(TurfRes[6], 0);
- TextDrawBackgroundColor(TurfRes[6], 255);
- TextDrawFont(TurfRes[6], 1);
- TextDrawSetProportional(TurfRes[6], 1);
- TextDrawSetShadow(TurfRes[6], 0);
- TurfRes[7] = TextDrawCreate(355.000183, 9.140743, "0");
- TextDrawLetterSize(TurfRes[7], 0.400000, 1.600000);
- TextDrawAlignment(TurfRes[7], 2);
- TextDrawColor(TurfRes[7], -1);
- TextDrawSetShadow(TurfRes[7], 0);
- TextDrawSetOutline(TurfRes[7], 0);
- TextDrawBackgroundColor(TurfRes[7], 255);
- TextDrawFont(TurfRes[7], 1);
- TextDrawSetProportional(TurfRes[7], 1);
- TextDrawSetShadow(TurfRes[7], 0);
- return 1;
- }
- stock getEmptyID(const len, const lokacija[])
- {
- new id = (-1);
- for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != len; loop++)
- {
- provjera = (loop);
- format(Data_, (sizeof Data_), lokacija ,provjera);
- if(!fexist(Data_))
- {
- id = (provjera);
- break;
- }
- }
- return (id);
- }
- forward FixTurf();
- public FixTurf()
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsValidVehicle(TurfVehicle[i]))
- {
- SetVehicleHealth(TurfVehicle[i], 1000);
- }
- }
- }
- forward TurfTime();
- public TurfTime()
- {
- if(TurfStarted == 1)
- {
- if(Points[0] > Points[1] && Points[0] > Points[2] && Points[0] > Points[3])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange team won with {ffffff}%d "GRAY"points!", Points[0]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red: %d "ORANGE"| "GRAY"Green: %d "ORANGE"| "GRAY"Blue: %d!",Points[1],Points[2],Points[3]);
- SCMTA(-1, str);
- }
- else if(Points[1] > Points[0] && Points[1] > Points[2] && Points[1] > Points[3])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red team won with %d points!", Points[1]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange: %d "ORANGE"| "GRAY"Green: %d "ORANGE"| "GRAY"Blue: %d!",Points[0],Points[2],Points[3]);
- SCMTA(-1, str);
- }
- else if(Points[2] > Points[0] && Points[2] > Points[1] && Points[2] > Points[3])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green team won with %d points!", Points[2]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange: %d "ORANGE"| "GRAY"Red: %d "ORANGE"| "GRAY"Blue: %d!",Points[0],Points[1],Points[3]);
- SCMTA(-1, str);
- }
- else if(Points[3] > Points[0] && Points[3] > Points[1] && Points[3] > Points[2])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Blue team won with %d points!", Points[3]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange: %d "ORANGE"| "GRAY"Red: %d "ORANGE"| "GRAY"Green: %d!",Points[0],Points[1],Points[2]);
- SCMTA(-1, str);
- }
- else if(Points[0] == Points[1])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange and Red teams have finished equal with %d points!", Points[0]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Blue: %d "ORANGE"| "GRAY"Green: %d!",Points[3],Points[2]);
- SCMTA(-1, str);
- }
- else if(Points[0] == Points[2])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange and Green teams have finished equal with %d points!", Points[0]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Plavi: %d "ORANGE"| "GRAY"Crveni: %d!",Points[3],Points[1]);
- SCMTA(-1, str);
- }
- else if(Points[0] == Points[3])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Orange and Blue teams have finished equal with %d points!", Points[0]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green: %d "ORANGE"| "GRAY"Red: %d!",Points[2],Points[1]);
- SCMTA(-1, str);
- }
- else if(Points[1] == Points[2])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red and Green teams have finished equal with %d points!", Points[1]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Blue: %d "ORANGE"| "GRAY"Orange: %d!",Points[3],Points[0]);
- SCMTA(-1, str);
- }
- else if(Points[1] == Points[3])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red and Blue teams have finished equal with %d points!", Points[1]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green: %d "ORANGE"| "GRAY"Orange: %d!",Points[2],Points[0]);
- SCMTA(-1, str);
- }
- else if(Points[2] == Points[3])
- {
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Green and Blue teams have finished equal with %d points!", Points[2]);
- SCMTA(-1, str);
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"Red: %d "ORANGE"| "GRAY"Orange: %d!",Points[1],Points[0]);
- SCMTA(-1, str);
- }
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(GetPVarInt(i, "TurfTeam") > 0)
- {
- SetPlayerHealth(i, 0);
- SetPVarInt(i, "TurfTeam", 0);
- DestroyVehicle(TurfVehicle[i]);
- for(new a=0; a<8; a++)
- {
- TextDrawHideForPlayer(i, TurfRes[a]);
- }
- }
- }
- }
- for(new idobj = 0; idobj<MAX_Objects; idobj++)
- {
- if(ObjectsInfo[idobj][aSet] == 1 && ObjectsInfo[idobj][Type] <= 1)
- {
- SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFFFFFF);
- ObjectsInfo[idobj][Vlasnik] = 0;
- }
- }
- TurfStarted = 0;
- }
- KillTimer(turftimer);
- KillTimer(turfvehicles);
- return 1;
- }
- stock SaveTurf()
- {
- new INI:File = INI_Open("turf.ini");
- INI_WriteFloat(File,"X1",TurfInfo[Pos1][0]);
- INI_WriteFloat(File,"Y1",TurfInfo[Pos1][1]);
- INI_WriteFloat(File,"Z1",TurfInfo[Pos1][2]);
- INI_WriteFloat(File,"Angle1",TurfInfo[Pos1][3]);
- INI_WriteFloat(File,"X2",TurfInfo[Pos2][0]);
- INI_WriteFloat(File,"Y2",TurfInfo[Pos2][1]);
- INI_WriteFloat(File,"Z2",TurfInfo[Pos2][2]);
- INI_WriteFloat(File,"Angle2",TurfInfo[Pos2][3]);
- INI_WriteFloat(File,"X3",TurfInfo[Pos3][0]);
- INI_WriteFloat(File,"Y3",TurfInfo[Pos3][1]);
- INI_WriteFloat(File,"Z3",TurfInfo[Pos3][2]);
- INI_WriteFloat(File,"Angle3",TurfInfo[Pos3][3]);
- INI_WriteFloat(File,"X4",TurfInfo[Pos4][0]);
- INI_WriteFloat(File,"Y4",TurfInfo[Pos4][1]);
- INI_WriteFloat(File,"Z4",TurfInfo[Pos4][2]);
- INI_WriteFloat(File,"Angle4",TurfInfo[Pos4][3]);
- INI_Close(File);
- return 1;
- }
- forward LoadTurf(name[],value[]);
- public LoadTurf(name[],value[])
- {
- INI_Float("X1",TurfInfo[Pos1][0]);
- INI_Float("Y1",TurfInfo[Pos1][1]);
- INI_Float("Z1",TurfInfo[Pos1][2]);
- INI_Float("Angle1",TurfInfo[Pos1][3]);
- INI_Float("X2",TurfInfo[Pos2][0]);
- INI_Float("Y2",TurfInfo[Pos2][1]);
- INI_Float("Z2",TurfInfo[Pos2][2]);
- INI_Float("Angle2",TurfInfo[Pos2][3]);
- INI_Float("X3",TurfInfo[Pos3][0]);
- INI_Float("Y3",TurfInfo[Pos3][1]);
- INI_Float("Z3",TurfInfo[Pos3][2]);
- INI_Float("Angle3",TurfInfo[Pos3][3]);
- INI_Float("X4",TurfInfo[Pos4][0]);
- INI_Float("Y4",TurfInfo[Pos4][1]);
- INI_Float("Z4",TurfInfo[Pos4][2]);
- INI_Float("Angle4",TurfInfo[Pos4][3]);
- return 1;
- }
- stock SaveObjects(idobj)
- {
- new yFile[80];
- format(yFile, sizeof(yFile), Objects_FILE, idobj);
- new INI:File = INI_Open(yFile);
- INI_WriteInt(File,"Postavljen",ObjectsInfo[idobj][aSet]);
- INI_WriteFloat(File,"X",ObjectsInfo[idobj][aX]);
- INI_WriteFloat(File,"Y",ObjectsInfo[idobj][aY]);
- INI_WriteFloat(File,"Z",ObjectsInfo[idobj][aZ]);
- INI_WriteFloat(File,"RX",ObjectsInfo[idobj][aRX]);
- INI_WriteFloat(File,"RY",ObjectsInfo[idobj][aRY]);
- INI_WriteFloat(File,"Angle",ObjectsInfo[idobj][aAngle]);
- INI_WriteInt(File,"Int",ObjectsInfo[idobj][aInt]);
- INI_WriteInt(File,"VW",ObjectsInfo[idobj][aVW]);
- INI_WriteInt(File,"Vrsta",ObjectsInfo[idobj][Type]);
- INI_Close(File);
- return 1;
- }
- forward LoadObjects(idobj,name[],value[]);
- public LoadObjects(idobj,name[],value[])
- {
- INI_Int("Postavljen",ObjectsInfo[idobj][aSet]);
- INI_Float("X",ObjectsInfo[idobj][aX]);
- INI_Float("Y",ObjectsInfo[idobj][aY]);
- INI_Float("Z",ObjectsInfo[idobj][aZ]);
- INI_Float("RX",ObjectsInfo[idobj][aRX]);
- INI_Float("RY",ObjectsInfo[idobj][aRY]);
- INI_Float("Angle",ObjectsInfo[idobj][aAngle]);
- INI_Int("Int",ObjectsInfo[idobj][aInt]);
- INI_Int("VW",ObjectsInfo[idobj][aVW]);
- INI_Int("Vrsta",ObjectsInfo[idobj][Type]);
- return 1;
- }
- stock KreirajObjekte(idobj)
- {
- if(ObjectsInfo[idobj][aSet] == 1)
- {
- if(ObjectsInfo[idobj][Type] <= 1)
- {
- ObjectsInfo[idobj][aObject] = CreateDynamicObject(19377, ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ], ObjectsInfo[idobj][aRX], ObjectsInfo[idobj][aRY], ObjectsInfo[idobj][aAngle], ObjectsInfo[idobj][aVW], ObjectsInfo[idobj][aInt],_,_);
- SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFFFFFF);
- ObjectsInfo[idobj][Vlasnik] = 0;
- }
- else
- {
- ObjectsInfo[idobj][aObject] = CreateDynamicObject(18783, ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ], ObjectsInfo[idobj][aRX], ObjectsInfo[idobj][aRY], ObjectsInfo[idobj][aAngle], ObjectsInfo[idobj][aVW], ObjectsInfo[idobj][aInt],_,_);
- }
- }
- return 1;
- }
- forward UnfreezeTurf();
- public UnfreezeTurf()
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(GetPVarInt(i, "TurfTeam") > 0)
- {
- TogglePlayerControllable(i, 1);
- SCM(i, -1, ""ORANGE"INFO | "GRAY"Game has started, good luck to all!");
- }
- }
- }
- SetTimer("CollisionTurf", 10000, false);
- return 1;
- }
- forward CollisionTurf();
- public CollisionTurf()
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(GetPVarInt(i, "TurfTeam") > 0)
- {
- DisableRemoteVehicleCollisions(i, 0);
- SCM(i, -1, ""ORANGE"INFO | "GRAY"Now you can collide!");
- }
- }
- }
- return 1;
- }
- CMD:turfhelp(playerid,params[])
- {
- new info[700];
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon!");
- strcat(info, ""RED"Turf Help\n\n", sizeof(info));
- strcat(info, "Create/Edit objects\n", sizeof(info));
- strcat(info, ""GRAY"/createobject-Spawn object which can be edited\n", sizeof(info));
- strcat(info, " /removeobject-Remove object with that ID\n", sizeof(info));
- strcat(info, " /eobject-Edit position of object\n", sizeof(info));
- strcat(info, " /duplicateobject-Duplicate object with that ID\n", sizeof(info));
- strcat(info, " /turfspawn-Set spawn location for 4 teams\n", sizeof(info));
- strcat(info, " /portobject-Port to location of object\n", sizeof(info));
- strcat(info, ""RED"Start/Stop Turf Wars\n", sizeof(info));
- strcat(info, ""GRAY"/turfinvite-Invite players in 1 of 4 teams\n", sizeof(info));
- strcat(info, "/turfstart-Start Turf Wars\n", sizeof(info));
- strcat(info, "/turfstop-Stop Turf Wars\n", sizeof(info));
- ShowPlayerDialog(playerid, 31999, DIALOG_STYLE_MSGBOX, "Turf Wars Help", info, "Ok", "");
- return 1;
- }
- CMD:turfstop(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- if(TurfStarted == 0) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Turf Wars isn't started!");
- TurfTime();
- return 1;
- }
- CMD:turfstart(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- new vrijeme;
- if(TurfStarted == 1) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Turf Wars is already started!");
- if(sscanf(params, "i", vrijeme)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /turfstart [Minutes]");
- new str[128];
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"You started Turf Wars which will end in {ffffff}%d "GRAY"minutes!", vrijeme);
- SCM(playerid, -1, str);
- vrijeme=vrijeme*60000;
- turftimer = SetTimer("TurfTime", vrijeme, false);
- turfvehicles = SetTimer("FixTurf", 5000, true);
- TurfStarted = 1;
- Points[0] = 0;
- Points[1] = 0;
- Points[2] = 0;
- Points[3] = 0;
- format(str,sizeof(str), "0");
- TextDrawSetString(TurfRes[0], str);
- TextDrawSetString(TurfRes[5], str);
- TextDrawSetString(TurfRes[6], str);
- TextDrawSetString(TurfRes[7], str);
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(GetPVarInt(i, "TurfTeam") == 1)
- {
- TogglePlayerControllable(i, 0);
- DisableRemoteVehicleCollisions(i, 1);
- TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos1][0], TurfInfo[Pos1][1], TurfInfo[Pos1][2], TurfInfo[Pos1][3], 6, 6, 60);
- PutPlayerInVehicle(i, TurfVehicle[i], 0);
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
- for(new a=0; a<8; a++)
- {
- TextDrawShowForPlayer(i, TurfRes[a]);
- }
- }
- else if(GetPVarInt(i, "TurfTeam") == 2)
- {
- TogglePlayerControllable(i, 0);
- DisableRemoteVehicleCollisions(i, 1);
- TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos2][0], TurfInfo[Pos2][1], TurfInfo[Pos2][2], TurfInfo[Pos2][3], 3, 3, 60);
- PutPlayerInVehicle(i, TurfVehicle[i], 0);
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
- for(new a=0; a<8; a++)
- {
- TextDrawShowForPlayer(i, TurfRes[a]);
- }
- }
- else if(GetPVarInt(i, "TurfTeam") == 3)
- {
- TogglePlayerControllable(i, 0);
- DisableRemoteVehicleCollisions(i, 1);
- TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos3][0], TurfInfo[Pos3][1], TurfInfo[Pos3][2], TurfInfo[Pos3][3], 128, 128, 60);
- PutPlayerInVehicle(i, TurfVehicle[i], 0);
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
- for(new a=0; a<8; a++)
- {
- TextDrawShowForPlayer(i, TurfRes[a]);
- }
- }
- else if(GetPVarInt(i, "TurfTeam") == 4)
- {
- TogglePlayerControllable(i, 0);
- DisableRemoteVehicleCollisions(i, 1);
- TurfVehicle[i] = CreateVehicle(411, TurfInfo[Pos4][0], TurfInfo[Pos4][1], TurfInfo[Pos4][2], TurfInfo[Pos4][3], 106, 106, 60);
- PutPlayerInVehicle(i, TurfVehicle[i], 0);
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"Game starts for {ffffff}5 "GRAY"secunds!");
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You will be transparent for {ffffff}10 "GRAY"seconds after game starts!");
- for(new a=0; a<8; a++)
- {
- TextDrawShowForPlayer(i, TurfRes[a]);
- }
- }
- }
- }
- SetTimer("UnfreezeTurf", 5000, false);
- return 1;
- }
- CMD:turfinvite(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- new id, tim;
- if(sscanf(params, "ui",id, tim)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /turfinvite [Player ID][Team(1-4)]");
- if(!IsPlayerConnected(id)) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Player isn't online!");
- if(tim < 1 || tim > 4) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Teams can be only from 1 to 4!");
- SetPVarInt(id, "TurfTeam", tim);
- new str[128];
- if(tim == 1)
- {
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in orange team on Turf Wars!");
- }
- else if(tim == 2)
- {
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in red team on Turf Wars!");
- }
- else if(tim == 3)
- {
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in green team on Turf Wars!");
- }
- else if(tim == 4)
- {
- format(str,sizeof(str),""ORANGE"INFO | "GRAY"You are invited in blue team on Turf Wars!");
- }
- SCM(id, -1, str);
- return 1;
- }
- CMD:turfspawn(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, ""RED"ERROR | "GRAY"You need to be in vehicle!");
- new tim;
- if(sscanf(params, "i",tim)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /turfspawn [Spawn team(1-4)]");
- if(tim < 1 || tim > 4) return SCM(playerid, -1, ""RED"ERROR | "GRAY"Teams can be only from 1 to 4!");
- new Float:aaX,Float:aaY,Float:aaZ,Float:Angle;
- GetVehiclePos(GetPlayerVehicleID(playerid),aaX,aaY,aaZ); GetVehicleZAngle(GetPlayerVehicleID(playerid),Angle);
- if(tim == 1)
- {
- TurfInfo[Pos1][0] = aaX;
- TurfInfo[Pos1][1] = aaY;
- TurfInfo[Pos1][2] = aaZ;
- TurfInfo[Pos1][3] = Angle;
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for orange team!");
- }
- else if(tim == 2)
- {
- TurfInfo[Pos2][0] = aaX;
- TurfInfo[Pos2][1] = aaY;
- TurfInfo[Pos2][2] = aaZ;
- TurfInfo[Pos2][3] = Angle;
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for red team!");
- }
- else if(tim == 3)
- {
- TurfInfo[Pos3][0] = aaX;
- TurfInfo[Pos3][1] = aaY;
- TurfInfo[Pos3][2] = aaZ;
- TurfInfo[Pos3][3] = Angle;
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for green team!");
- }
- else
- {
- TurfInfo[Pos4][0] = aaX;
- TurfInfo[Pos4][1] = aaY;
- TurfInfo[Pos4][2] = aaZ;
- TurfInfo[Pos4][3] = Angle;
- SCM(playerid, -1, ""ORANGE"INFO | "GRAY"You saved spawn position for blue team!");
- }
- SaveTurf();
- return 1;
- }
- CMD:createobject(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- new Float:aaX,Float:aaY,Float:aaZ,Float:Angle,Float:RX, OType;
- if(sscanf(params,"i",OType)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /createobject [Type(1 - Normal | 2 - Spawn object)]");
- if(OType < 1 || OType > 2) return SCM(playerid, -1, ""RED"ERROR | "GRAY"You entered wrong type!");
- GetPlayerPos(playerid,aaX,aaY,aaZ); GetPlayerFacingAngle(playerid,Angle);
- new idobj=getEmptyID(MAX_Objects,"Objects/%d.ini");
- if(idobj >= MAX_Objects) return SCM(playerid,-1, ""RED"ERROR | "GRAY"You reached max number of objects!");
- ObjectsInfo[idobj][aSet] = 1; ObjectsInfo[idobj][aAngle] = Angle; ObjectsInfo[idobj][Type] = OType;
- ObjectsInfo[idobj][aX] = aaX; ObjectsInfo[idobj][aY] = aaY; ObjectsInfo[idobj][aZ] = aaZ; ObjectsInfo[idobj][aRX] = RX; ObjectsInfo[idobj][aRY] = 90;
- ObjectsInfo[idobj][aInt] = GetPlayerInterior(playerid); ObjectsInfo[idobj][aVW] = GetPlayerVirtualWorld(playerid);
- KreirajObjekte(idobj); SaveObjects(idobj);
- new str[128];
- format(str,sizeof(str), ""ORANGE"INFO | "GRAY"Position of object(ID: %d) you can edit with /eobject", idobj);
- SCM(playerid, -1, str);
- return 1;
- }
- CMD:duplicateobject(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- new id;
- if(sscanf(params,"i",id)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /duplicateobject [ID]");
- new idobj=getEmptyID(MAX_Objects,"Objects/%d.ini");
- if(idobj >= MAX_Objects) return SCM(playerid,-1, ""RED"ERROR | "GRAY"You reached max number of objects!");
- ObjectsInfo[idobj][aSet] = 1; ObjectsInfo[idobj][aAngle] = ObjectsInfo[id][aAngle]; ObjectsInfo[idobj][Type] = ObjectsInfo[id][Type];
- ObjectsInfo[idobj][aX] = ObjectsInfo[id][aX]; ObjectsInfo[idobj][aY] = ObjectsInfo[id][aY]; ObjectsInfo[idobj][aZ] = ObjectsInfo[id][aZ]; ObjectsInfo[idobj][aRX] = ObjectsInfo[id][aRX]; ObjectsInfo[idobj][aRY] = ObjectsInfo[id][aRY];
- ObjectsInfo[idobj][aInt] = GetPlayerInterior(playerid); ObjectsInfo[idobj][aVW] = GetPlayerVirtualWorld(playerid);
- KreirajObjekte(idobj); SaveObjects(idobj);
- new str[128];
- format(str,sizeof(str), ""ORANGE"INFO | "GRAY"Position of object(ID: %d) you can edit with /eobject", idobj);
- SCM(playerid, -1, str);
- return 1;
- }
- CMD:removeobject(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1, ""RED"ERROR | "GRAY"You need to be Rcon");
- new yFile[50],id;
- if(sscanf(params,"i",id)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /removeobject [ID]");
- DestroyDynamicObject(ObjectsInfo[id][aObject]);
- ObjectsInfo[id][aSet] = 0; ObjectsInfo[id][aAngle] = 0; ObjectsInfo[id][Type] = 0;
- ObjectsInfo[id][aX] = 0; ObjectsInfo[id][aY] = 0; ObjectsInfo[id][aZ] = 0; ObjectsInfo[id][aRX] = 0; ObjectsInfo[id][aRY] = 0;
- ObjectsInfo[id][aInt] = 0; ObjectsInfo[id][aVW] = 0;
- format(yFile, sizeof(yFile), Objects_FILE, id);
- if(fexist(yFile)) { fremove(yFile); SCM(playerid,-1, ""ORANGE"INFO | "GRAY"Object removed successfully!"); }
- else { SCM(playerid,-1,""RED"ERROR | "GRAY"Taj id objekta ne postoji!"); }
- return 1;
- }
- CMD:eobject(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- new yfajl[80],idobj;
- if(sscanf(params, "i",idobj)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /eobject [ID]");
- format(yfajl, sizeof(yfajl), Objects_FILE, idobj);
- if(!fexist(yfajl)) return SCM(playerid,-1, ""RED"ERROR | "GRAY"That ID of object doesn't exist!");
- if(!IsPlayerInRangeOfPoint(playerid, 10.0, ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ])) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be near that object!");
- eData[playerid] = idobj; EditDynamicObject(playerid,ObjectsInfo[idobj][aObject]);
- return 1;
- }
- CMD:portobject(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SCM(playerid,-1,""RED"ERROR | "GRAY"You need to be Rcon");
- new yfajl[80],idobj;
- if(sscanf(params, "i",idobj)) return SCM(playerid,-1,""ORANGE"Use:{FFFFFF} /portobject [ID]");
- format(yfajl, sizeof(yfajl), Objects_FILE, idobj);
- if(!fexist(yfajl)) return SCM(playerid,-1, ""RED"ERROR | "GRAY"That ID of object doesn't exist!");
- SetPlayerPos(playerid,ObjectsInfo[idobj][aX], ObjectsInfo[idobj][aY], ObjectsInfo[idobj][aZ]);
- SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if(GetPVarInt(playerid, "TurfTeam") > 0)
- {
- SetPVarInt(playerid, "TurfTeam", 0);
- DestroyVehicle(TurfVehicle[playerid]);
- for(new a=0; a<8; a++)
- {
- TextDrawHideForPlayer(playerid, TurfRes[a]);
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(GetPVarInt(playerid, "TurfTeam") > 0)
- {
- if(oldstate == PLAYER_STATE_DRIVER)
- {
- if(newstate == PLAYER_STATE_ONFOOT)
- {
- PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
- }
- }
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(TurfStarted == 1 && GetPVarInt(playerid, "TurfTeam") > 0)
- {
- new Float:ObjPos[3];
- for(new idobj=0; idobj<MAX_Objects; idobj++)
- {
- if(ObjectsInfo[idobj][aSet] == 1 && ObjectsInfo[idobj][Type] <= 1)
- {
- GetDynamicObjectPos(ObjectsInfo[idobj][aObject],ObjPos[0],ObjPos[1],ObjPos[2]);
- if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjPos[0], ObjPos[1], ObjPos[2]))
- {
- if(ObjectsInfo[idobj][Vlasnik] == 1 && GetPVarInt(playerid, "TurfTeam") != 1)
- {
- Points[0]--;
- new str[6];
- format(str,sizeof(str), "%d", Points[0]);
- TextDrawSetString(TurfRes[0], str);
- }
- if(ObjectsInfo[idobj][Vlasnik] == 2 && GetPVarInt(playerid, "TurfTeam") != 2)
- {
- Points[1]--;
- new str[6];
- format(str,sizeof(str), "%d", Points[1]);
- TextDrawSetString(TurfRes[5], str);
- }
- if(ObjectsInfo[idobj][Vlasnik] == 3 && GetPVarInt(playerid, "TurfTeam") != 3)
- {
- Points[2]--;
- new str[6];
- format(str,sizeof(str), "%d", Points[2]);
- TextDrawSetString(TurfRes[6], str);
- }
- if(ObjectsInfo[idobj][Vlasnik] == 4 && GetPVarInt(playerid, "TurfTeam") != 4)
- {
- Points[3]--;
- new str[6];
- format(str,sizeof(str), "%d", Points[3]);
- TextDrawSetString(TurfRes[7], str);
- }
- if(GetPVarInt(playerid, "TurfTeam") == 1 && ObjectsInfo[idobj][Vlasnik] != 1)
- {
- SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFFA500);
- Points[0]++;
- new str[6];
- format(str,sizeof(str), "%d", Points[0]);
- TextDrawSetString(TurfRes[0], str);
- ObjectsInfo[idobj][Vlasnik] = 1;
- }
- else if(GetPVarInt(playerid, "TurfTeam") == 2 && ObjectsInfo[idobj][Vlasnik] != 2)
- {
- SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFFFF0000);
- Points[1]++;
- new str[6];
- format(str,sizeof(str), "%d", Points[1]);
- TextDrawSetString(TurfRes[5], str);
- ObjectsInfo[idobj][Vlasnik] = 2;
- }
- else if(GetPVarInt(playerid, "TurfTeam") == 3 && ObjectsInfo[idobj][Vlasnik] != 3)
- {
- SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFF00FF7F);
- Points[2]++;
- new str[6];
- format(str,sizeof(str), "%d", Points[2]);
- TextDrawSetString(TurfRes[6], str);
- ObjectsInfo[idobj][Vlasnik] = 3;
- }
- else if(GetPVarInt(playerid, "TurfTeam") == 4 && ObjectsInfo[idobj][Vlasnik] != 4)
- {
- SetDynamicObjectMaterial(ObjectsInfo[idobj][aObject], 0, 10101, "2notherbuildsfe", "ferry_build14", 0xFF00BFFF);
- Points[3]++;
- new str[6];
- format(str,sizeof(str), "%d", Points[3]);
- TextDrawSetString(TurfRes[7], str);
- ObjectsInfo[idobj][Vlasnik] = 4;
- }
- }
- }
- }
- new Float: IgrPos[3];
- GetPlayerPos(playerid, IgrPos[0], IgrPos[1], IgrPos[2]);
- if(IgrPos[2] < (TurfInfo[Pos1][2]-3))
- {
- if(GetPVarInt(playerid, "TurfTeam") == 1)
- {
- DestroyVehicle(TurfVehicle[playerid]);
- TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos1][0], TurfInfo[Pos1][1], TurfInfo[Pos1][2], TurfInfo[Pos1][3], 6, 6, 60);
- PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
- }
- else if(GetPVarInt(playerid, "TurfTeam") == 2)
- {
- DestroyVehicle(TurfVehicle[playerid]);
- TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos2][0], TurfInfo[Pos2][1], TurfInfo[Pos2][2], TurfInfo[Pos2][3], 3, 3, 60);
- PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
- }
- else if(GetPVarInt(playerid, "TurfTeam") == 3)
- {
- DestroyVehicle(TurfVehicle[playerid]);
- TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos3][0], TurfInfo[Pos3][1], TurfInfo[Pos3][2], TurfInfo[Pos3][3], 128, 128, 60);
- PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
- }
- else if(GetPVarInt(playerid, "TurfTeam") == 4)
- {
- DestroyVehicle(TurfVehicle[playerid]);
- TurfVehicle[playerid] = CreateVehicle(411, TurfInfo[Pos4][0], TurfInfo[Pos4][1], TurfInfo[Pos4][2], TurfInfo[Pos4][3], 106, 106, 60);
- PutPlayerInVehicle(playerid, TurfVehicle[playerid], 0);
- }
- }
- }
- return 1;
- }
- public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
- {
- if(response == EDIT_RESPONSE_UPDATE)
- {
- new id = eData[playerid];
- SetDynamicObjectPos(objectid, x, y, z);
- SetDynamicObjectRot(objectid, rx, ry, rz);
- ObjectsInfo[id][aX] = x;
- ObjectsInfo[id][aY] = y;
- ObjectsInfo[id][aZ] = z;
- ObjectsInfo[id][aRX] = rx;
- ObjectsInfo[id][aRY] = ry;
- ObjectsInfo[id][aAngle] = rz;
- SaveObjects(id);
- }
- else if(response == EDIT_RESPONSE_CANCEL)
- {
- eData[playerid] = -1;
- }
- else if(response == EDIT_RESPONSE_FINAL)
- {
- new id = eData[playerid];
- if(id != -1)
- {
- ObjectsInfo[id][aX] = x;
- ObjectsInfo[id][aY] = y;
- ObjectsInfo[id][aZ] = z;
- ObjectsInfo[id][aRX] = rx;
- ObjectsInfo[id][aRY] = ry;
- ObjectsInfo[id][aAngle] = rz;
- DestroyDynamicObject(ObjectsInfo[id][aObject]);
- KreirajObjekte(id);
- SaveObjects(id);
- new string[100];
- format(string,sizeof(string),""ORANGE"INFO | "GRAY"Object ID %d is successfully created/edited!",id);
- SCM(playerid,-1,string);
- id = -1;
- return 1;
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement