Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define randomex(%0,%1) random(%1 - %0) + %0
- #define WAR_MAX_PLAYERS (10)
- enum eWAR
- {
- WAR_PLAYERS,
- WAR_ON,
- WAR_START,
- WAR_PRICE,
- WAR_NUM,
- WAR_TIMER
- }
- new War[eWAR];
- enum PWAR
- {
- IN_WAR,
- NAME[MAX_PLAYER_NAME + 1]
- };
- new PWar[MAX_PLAYERS][PWAR];
- new Float:WarSpawns[10][3] =
- {
- {-970.1308,1090.2428,1345.0074},
- {-971.1633,1024.8346,1345.0646},
- {-1017.7231,1038.8334,1341.3516},
- {-1040.4578,1087.2854,1343.1233},
- {-1072.8862,1083.7346,1342.1133},
- {-1066.1184,1032.2316,1343.1248},
- {-1089.8938,1048.4607,1343.6915},
- {-1136.4137,1027.2606,1345.7562},
- {-1131.7802,1092.8384,1345.7885},
- {-1054.5084,1062.0303,1341.3586}
- };
- new Str[128];
- #define FILTERSCRIPT
- public OnFilterScriptInit() return print(" War System By RiseAboveHate V1.0 Has Been Loaded.");
- public OnFilterScriptExit() return print(" War System By RiseAboveHate V1.0 Has Been UnLoaded.");
- public OnPlayerConnect(playerid) return GetPlayerName(playerid, PWar[playerid][NAME], MAX_PLAYER_NAME + 1), PWar[playerid][IN_WAR] = 0;
- public OnPlayerDisconnect(playerid, reason) return PWar[playerid][NAME][0] = EOS, RemovePlayerFromWar(playerid);
- public OnPlayerDeath(playerid, killerid, reason) return RemovePlayerFromWar(playerid);
- public OnPlayerText(playerid, text[])
- {
- if(PWar[playerid][IN_WAR] == 1 && War[WAR_START] == 1) return SendClientMessage(playerid, 0xFF0000AA, ".àúä áôòéìåú åìëï àéðê éëåì ìãáø áö'àè"), 0;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(PWar[playerid][IN_WAR] == 1 && War[WAR_START] == 1) return SendClientMessage(playerid, 0xFF0000AA, ".àúä áôòéìåú åìëï àéðê éëåì ìáöò ô÷åãåú");
- new cmd[128], idx, tmp[128];
- cmd = strtok(cmdtext, idx);
- if(strcmp(cmd, "/StartWar", true) == 0)
- {
- tmp = strtok(cmdtext, idx);
- new WPrice = strval(tmp);
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, ".àéðê àãîéï ø÷åï");
- if(War[WAR_ON] == 1 || War[WAR_START] == 1) return SendClientMessage(playerid, 0xFFFF00AA, "!éù ëáø ôòéìåú îåôòìú");
- if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "/StartWar [Price] :ùéîåù");
- if(WPrice > 500000) return SendClientMessage(playerid, 0xFF0000AA, ".$500,000 äëñó ìæåëä éëåì ìäéåú òã");
- War[WAR_ON] = 1;
- War[WAR_PLAYERS] = 0;
- War[WAR_PRICE] = WPrice;
- WarCd(30, 1);
- War[WAR_NUM] = randomex(0, 40);
- SendClientMessageToAll(-1, "{FFD000}|~~~~~~~~~~~~~~~~~~~~{00B3FF}War{FFD000}~~~~~~~~~~~~~~~~~~~~|");
- format(Str, sizeof Str, "{99FF00}.%s äåôòìä òì éãé War äôòéìåú", PWar[playerid][NAME]);
- SendClientMessageToAll(-1, Str);
- format(Str, sizeof Str, "{FF0D00}/War %d - áëãé ìäøùí ìôòéìåú ä÷ù/é", War[WAR_NUM]);
- SendClientMessageToAll(-1, Str);
- format(Str, sizeof Str, "{9D00FF}.áôòéìåú éù òã %d î÷åîåú", WAR_MAX_PLAYERS);
- SendClientMessageToAll(-1, Str);
- format(Str, sizeof Str, "{00FFD0}.$%s :äôøñ ìîðöç äåà", AddCommas(War[WAR_PRICE]));
- SendClientMessageToAll(-1, Str);
- SendClientMessageToAll(-1, "{FFD000}|~~~~~~~~~~~~~~~~~~~~{00B3FF}War{FFD000}~~~~~~~~~~~~~~~~~~~~|");
- return 1;
- }
- if(strcmp(cmdtext, "/StopWar", true) == 0)
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, ".àéðê àãîéï ø÷åï");
- if(War[WAR_ON] == 0 || War[WAR_START] == 0) return SendClientMessage(playerid, 0xFFFF00AA, "!àéï ôòéìåú îåôòìú");
- for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i) && PWar[i][IN_WAR] == 1)
- {
- if(War[WAR_START] == 1) return SpawnPlayer(i), PWar[i][IN_WAR] = 0, War[WAR_PLAYERS] = 0, War[WAR_ON] = 0, War[WAR_PRICE] = 0, War[WAR_NUM] = 0;
- else if(War[WAR_ON] == 1 && War[WAR_START] == 0) return PWar[i][IN_WAR] = 0, War[WAR_PLAYERS] = 0, War[WAR_ON] = 0, War[WAR_PRICE] = 0, War[WAR_NUM] = 0, KillTimer(War[WAR_TIMER]);
- }
- format(Str, sizeof Str, ".Waräôñé÷ àú ôòéìåú ä \"%s\" äàãîéï", PWar[playerid][NAME]);
- SendClientMessageToAll(0xFF0000AA, Str);
- return 1;
- }
- if(strcmp(cmd, "/War", true) == 0)
- {
- tmp = strtok(cmdtext, idx);
- new WarNum = strval(tmp);
- if(War[WAR_START] == 1) return SendClientMessage(playerid, 0xFFFF00AA, ".éù ëáø ôòéìåú îåôòìú");
- if(War[WAR_ON] == 0) return SendClientMessage(playerid, 0xFFFF00AA, ".àéï ôòéìåú îåôòìú ëøâò");
- if(PWar[playerid][IN_WAR] == 1) return SendClientMessage(playerid, 0xFFFF00AA, "!àúä ëáø áôòéìåú");
- if(!strlen(tmp)) return format(Str, sizeof Str, "/War %d - :ùéîåù", War[WAR_NUM]) && SendClientMessage(playerid, 0xFF0000AA, Str);
- if(WarNum != War[WAR_NUM]) return format(Str, sizeof Str, "/War %d - :ùéîåù", War[WAR_NUM]) && SendClientMessage(playerid, 0xFF0000AA, Str);
- if(War[WAR_PLAYERS] >= WAR_MAX_PLAYERS) return SendClientMessage(playerid, 0xFFFF00AA, ".ëì äî÷åîåú úåôñéí, àðà äúòæø áñáìðåú òã ùúéâîø äôòéìåú");
- PWar[playerid][IN_WAR] = 1;
- War[WAR_PLAYERS]++;
- format(Str, sizeof Str, "(%d/%d) !áäöìçä Warðùøîú ìôòéìåú ä", War[WAR_PLAYERS], WAR_MAX_PLAYERS);
- SendClientMessage(playerid, 0xFF0D00AA, Str);
- return 1;
- }
- return 0;
- }
- forward WarCd(cd, cdnum);
- public WarCd(cd, cdnum)
- {
- if(cdnum == 1)
- {
- if(cd > 0) cd--, War[WAR_TIMER] = SetTimerEx("WarCd", 1000, false, "dd", cd, cdnum), format(Str, sizeof Str, "~b~[]~b~|~r~/War %d ~b~| ~y~%d ~b~|~g~[]", War[WAR_NUM], cd), GameTextForAll(Str, 1000, 3);
- else
- {
- for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i) && PWar[i][IN_WAR] == 1 && War[WAR_ON] == 1)
- {
- if(War[WAR_PLAYERS] < 2) return SendClientMessageToAll(0xFFFF00AA, "! äôòìéåú áåèìä ò÷á çåñø îùúúôéí"), PWar[i][IN_WAR] = 0, War[WAR_PLAYERS] = 0, War[WAR_ON] = 0, War[WAR_PRICE] = 0, War[WAR_NUM] = 0;
- War[WAR_START] = 1;
- WarCd(10, 2);
- TogglePlayerControllable(i, 0);
- SetPlayerHealth(i, 1000000.00);
- SetPlayerArmour(i, 1000000.00);
- }
- }
- }
- if(cdnum == 2)
- {
- if(cd > 0) cd--, War[WAR_TIMER] = SetTimerEx("WarCd", 1000, false, "dd", cd, cdnum), format(Str, sizeof Str, "~b~[]~b~|~r~/War ~b~| ~y~%d ~b~|~g~[]", cd), GameTextForAll(Str, 1000, 3);
- else
- {
- for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i) && PWar[i][IN_WAR] == 1 && War[WAR_ON] == 1 && War[WAR_START] == 1)
- {
- War[WAR_START] = 1;
- new RandWarPos = random(sizeof(WarSpawns));
- SetPlayerPos(i, WarSpawns[RandWarPos][0], WarSpawns[RandWarPos][1], WarSpawns[RandWarPos][2]);
- switch(random(6))
- {
- case 1: GivePlayerWeapon(i, 26, 1000);
- case 2: GivePlayerWeapon(i, 27, 1000);
- case 3: GivePlayerWeapon(i, 28, 1000);
- case 4: GivePlayerWeapon(i, 30, 1000);
- case 5: GivePlayerWeapon(i, 31, 1000);
- case 6: GivePlayerWeapon(i, 32, 1000);
- }
- SetPlayerInterior(i, 10);
- TogglePlayerControllable(i, 1);
- SetPlayerHealth(i, 100.00);
- SetPlayerArmour(i, 100.00);
- GameTextForPlayer(i, "~g~[] ~r~Good ~p~Luck~g~ []", 3000, 3);
- }
- }
- }
- return 1;
- }
- stock RemovePlayerFromWar(playerid)
- {
- if(PWar[playerid][IN_WAR] == 1 && War[WAR_ON] == 1 && War[WAR_START] == 1) return SpawnPlayer(playerid), PWar[playerid][IN_WAR] = 0, War[WAR_PLAYERS]--, WarCheck();
- return 1;
- }
- forward WarCheck();
- public WarCheck()
- {
- for(new i = 0; i < GetMaxPlayers(); i++) if(IsPlayerConnected(i) && PWar[i][IN_WAR] == 1 && War[WAR_ON] == 1 && War[WAR_PLAYERS] == 1)
- {
- SendClientMessageToAll(-1, "{FFD000}|~~~~~~~~~~~~~~~~~~~~{00B3FF}War{FFD000}~~~~~~~~~~~~~~~~~~~~|");
- format(Str, sizeof Str, "{99FF00}.\"%s\" äåà Waräîðöç áôòéìåú ä", PWar[i][NAME]);
- SendClientMessageToAll(-1, Str);
- format(Str, sizeof Str, "{FF0D00}.$%s :äôøñ ù÷éáì äåà", AddCommas(War[WAR_PRICE]));
- SendClientMessageToAll(-1, Str);
- SendClientMessageToAll(-1, "{FFD000}|~~~~~~~~~~~~~~~~~~~~{00B3FF}War{FFD000}~~~~~~~~~~~~~~~~~~~~|");
- GivePlayerMoney(i, War[WAR_PRICE]);
- format(Str, sizeof Str, "$%s åæëéú á Warîæì èåá, ðéöçú áôòéìåú ä", AddCommas(War[WAR_PRICE]));
- SendClientMessage(i, 0xFFFF00AA, Str);
- War[WAR_PLAYERS] = 0, War[WAR_ON] = 0, War[WAR_PRICE] = 0, War[WAR_NUM] = 0;
- SpawnPlayer(i);
- }
- return 1;
- }
- strtok(const string[], &index,seperator=' ')
- {
- new length = strlen(string);
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- if ((index < length) && (string[index] == seperator))
- {
- index++;
- }
- return result;
- }
- stock strrest(str[], &index) {
- new result[128];
- strmid(result, str, index, strlen(str));
- return result;
- }
- stock AddCommas(number)
- {
- new
- tStr[13]; // Up to 9,999,999,999,999
- format(tStr,sizeof(tStr),"%d",number);
- if(strlen(tStr) < 4)
- return tStr;
- new
- //rNumber = floatround((number+(number/3)),floatround_floor),
- iPos = strlen(tStr),
- iCount = 1;
- while(iPos > 0)
- {
- if(iCount == 4)
- {
- iCount = 0;
- strins(tStr,",",iPos,1);
- iPos ++;
- }
- iCount ++;
- iPos --;
- }
- return tStr;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement