Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Fallout v0.6
- * Copyright (C) 2009 Lazarus
- */
- #include <a_samp>
- #define orange 0xF4A419AA
- #define yellow 0xFFFF00AA
- #define red 0xFF0000AA
- forward SpawnPlayerClass(playerid);
- forward SquareShake(objectid);
- forward ResetSpam(playerid);
- forward UpdatesUpdate();
- forward DecideWinners();
- forward StartFalling();
- forward SolarFall();
- forward CountDown();
- forward HackCheck();
- forward LoseGame();
- forward GMX();
- enum eInfo
- {
- shaketimer[101],
- numberout[101],
- shake[101],
- timer[2],
- count,
- dead,
- join,
- end
- }
- enum pInfo
- {
- spamcounter,
- spawned,
- sentold,
- lost,
- sent
- }
- new Info[eInfo];
- new PlayerInfo[MAX_PLAYERS][pInfo];
- main()
- {
- print("--------------");
- print(" Fallout v0.6 ");
- print("--------------");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Fallout v0.6");
- UsePlayerPedAnims();
- SetWeather(18);
- AddPlayerClass(0, 2482.1921, -1660.4783, 161.0000, 269.1425, 0, 0, 0, 0, 0, 0);
- GMX();
- CreateObject(1697, 2482.1921, -1660.4783, 165.0000, 31.8000, 0.0000, 0.0000);
- CreateVehicle(522, 2482.1921 - random(35), -1660.4783 + random(45), 161.0000, random(360), -1, -1, -1);
- CreateVehicle(522, 2482.1921 - random(35), -1660.4783 + random(45), 161.0000, random(360), -1, -1, -1);
- SetTimer("UpdatesUpdate", 2000, 1);
- SetTimer("HackCheck", 2000, 1);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetTimerEx("SpawnPlayerClass", 1000, 0, "i", playerid);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][sent] = 1;
- PlayerInfo[playerid][sentold] = 0;
- if(Info[count] == 0)
- {
- PlayerInfo[playerid][spawned] = 1;
- }
- else
- {
- PlayerInfo[playerid][spawned] = 0;
- }
- new pname[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(string, sizeof(string), "\"%s\" has joined the game", pname);
- SendClientMessageToAll(orange, string);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new pname[MAX_PLAYER_NAME], string[128];
- GetPlayerName(playerid, pname, sizeof(pname));
- switch(reason)
- {
- case 0: format(string, sizeof(string), "\"%s\" has left the game (Timed Out/Crashed)", pname);
- case 1: format(string, sizeof(string), "\"%s\" has left the game (Normal/Voluntary)", pname);
- case 2: format(string, sizeof(string), "\"%s\" has left the game (Kicked/Banned)", pname);
- }
- SendClientMessageToAll(orange, string);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(PlayerInfo[playerid][spawned] == 1)
- {
- SetPlayerCameraPos(playerid, 2417.0642, -1684.6013, 185.3610);
- SetPlayerCameraLookAt(playerid, 2490.0061, -1614.1761, 160.2135);
- SetPlayerPos(playerid, 2482.1921, -1660.4783, 166.0000);
- SetPlayerFacingAngle(playerid, 90);
- TogglePlayerControllable(playerid, 0);
- GameTextForPlayer(playerid, "~g~Be patient!~n~A new game will start soon...", 5000, 3);
- }
- else
- {
- SetPlayerPos(playerid, 2482.1921 - random(39), -1660.4783 + random(47), 161.0000);
- SetPlayerFacingAngle(playerid, random(360));
- }
- new skinid;
- start:
- skinid = random(300);
- switch(skinid)
- {
- case 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289: goto start;
- }
- SetPlayerSkin(playerid, skinid);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(PlayerInfo[playerid][lost] == 0 && Info[end] == 0 && PlayerInfo[playerid][lost] == 0)
- {
- GameTextForPlayer(playerid, "~r~You lose!", 5000, 3);
- PlayerInfo[playerid][lost] = 1;
- }
- PlayerInfo[playerid][spawned] = 1;
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- PlayerInfo[playerid][sent]++;
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- PlayerInfo[playerid][spamcounter]++;
- if(PlayerInfo[playerid][spamcounter] == 1)
- {
- SetTimerEx("ResetSpam", 3000, 0, "i", playerid);
- }
- if(PlayerInfo[playerid][spamcounter] == 3 + 1)
- {
- SendClientMessage(playerid, red, "Stop talking so fast! Wait a few seconds, next time it's a kick");
- return 0;
- }
- if(PlayerInfo[playerid][spamcounter] == 3 + 2)
- {
- Kick(playerid);
- }
- return 1;
- }
- public SpawnPlayerClass(playerid)
- {
- SpawnPlayer(playerid);
- return 1;
- }
- public SquareShake(objectid)
- {
- if(objectid == 0)
- {
- return KillTimer(Info[shaketimer][objectid]);
- }
- switch(Info[shake][objectid])
- {
- case 0, 5:
- {
- SetObjectRot(objectid, 31.8, 2, 0);
- }
- case 1, 6:
- {
- SetObjectRot(objectid, 33.8, 0, 0);
- }
- case 2, 7:
- {
- SetObjectRot(objectid, 31.8, -2, 0);
- }
- case 3, 8:
- {
- SetObjectRot(objectid, 29.8, 0, 0);
- }
- case 4, 9:
- {
- SetObjectRot(objectid, 31.8, 0, 0);
- }
- case 10:
- {
- new Float:X, Float:Y, Float:Z;
- GetObjectPos(objectid, X, Y, Z);
- MoveObject(objectid, X, Y, Z - 100, 4);
- }
- case 11..99:
- {
- SetObjectRot(objectid, 31.8 - ((Info[shake][objectid] * 2) - 20), 0, 0);
- }
- case 100:
- {
- DestroyObject(objectid);
- KillTimer(Info[shaketimer][objectid]);
- }
- }
- Info[shake][objectid]++;
- return 1;
- }
- public ResetSpam(playerid)
- {
- PlayerInfo[playerid][spamcounter] = 0;
- return 1;
- }
- public UpdatesUpdate()
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][sent] == PlayerInfo[i][sentold])
- {
- PlayerInfo[i][spawned] = 1;
- SpawnPlayer(i);
- }
- PlayerInfo[i][sentold] = PlayerInfo[i][sent];
- }
- }
- public DecideWinners()
- {
- SetTimer("GMX", 5000, 0);
- Info[end] = 1;
- SendClientMessageToAll(yellow, "Winners:");
- new pname[MAX_PLAYER_NAME], string[128], winners;
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][lost] == 0 && PlayerInfo[i][spawned] == 0 && IsPlayerConnected(i) == 1)
- {
- winners++;
- GetPlayerName(i, pname, sizeof(pname));
- format(string, sizeof(string), "%d) %s", winners, pname);
- SendClientMessageToAll(yellow, string);
- SetPlayerScore(i, GetPlayerScore(i) + 1);
- }
- }
- if(winners == 0) SendClientMessageToAll(red, "No winners this time!");
- return 1;
- }
- public StartFalling()
- {
- Info[timer][0] = SetTimer("SolarFall", 500, 1);
- SetTimer("LoseGame", 500, 1);
- return 1;
- }
- public SolarFall()
- {
- new objectid, go;
- for(new i = 0; i < 101; i++) if(Info[numberout][i] == -1) go++;
- if(go == 3)
- {
- if(Info[dead] == 0) SetTimer("DecideWinners", 5000, 0);
- KillTimer(Info[timer][0]);
- Info[dead] = 1;
- return 1;
- }
- start:
- objectid = random(101);
- if(Info[numberout][objectid] != -1) goto start;
- Info[numberout][objectid] = 0;
- Info[shaketimer][objectid] = SetTimerEx("SquareShake", 100, 1, "i", objectid);
- new alive, connected;
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) == 1) connected++;
- if(IsPlayerConnected(i) == 1 && PlayerInfo[i][spawned] == 0) alive++;
- }
- if(alive == 0 && Info[dead] == 0 && connected != 0)
- {
- SetTimer("DecideWinners", 5000, 0);
- Info[dead] = 1;
- }
- return 1;
- }
- public CountDown()
- {
- new string[128], number[8];
- string = "~g~ Starting in ~y~";
- format(number, sizeof(number), "%d", Info[count]);
- strins(string, number, strlen(string));
- GameTextForAll(string, 1000, 3);
- Info[count]--;
- if(Info[count] == 0) KillTimer(Info[timer][1]);
- return 1;
- }
- public HackCheck()
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- new Float:X, Float:Y, Float:Z, string[128], pname[MAX_PLAYER_NAME];
- GetPlayerName(i, pname, sizeof(pname));
- GetPlayerPos(i, X, Y, Z);
- if(floatround(Z) >= 168 && IsPlayerConnected(i) == 1)
- {
- format(string, sizeof(string), "\"%s\" has been kicked for air break hacking", pname);
- SendClientMessageToAll(orange, string);
- Kick(i);
- }
- if(GetPlayerWeapon(i) != 0 && GetPlayerAmmo(i) != 65535 && IsPlayerConnected(i) == 1)
- {
- format(string, sizeof(string), "\"%s\" has been kicked for weapon hacking", pname);
- SendClientMessageToAll(orange, string);
- Kick(i);
- }
- }
- return 1;
- }
- public LoseGame()
- {
- new Float:X, Float:Y, Float:Z;
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][spawned] == 1) continue;
- GetPlayerPos(i, X, Y, Z);
- if(Z <= 158 && Info[end] == 0 && Info[end] == 0 && PlayerInfo[i][lost] == 0)
- {
- GameTextForPlayer(i, "~r~You lose!", 5000, 3);
- PlayerInfo[i][lost] = 1;
- }
- if(Z <= 50 && IsPlayerInAnyVehicle(i) == 1)
- {
- SetPlayerHealth(i, 0);
- }
- }
- return 1;
- }
- public GMX()
- {
- for(new i = 0; i < 101; i++)
- {
- DestroyObject(i);
- Info[numberout][i] = -1;
- KillTimer(Info[shaketimer][i]);
- KillTimer(Info[timer][0]);
- Info[shake][i] = 0;
- }
- Info[count] = 10;
- Info[dead] = 0;
- Info[end] = 0;
- CreateObject(1697, 2482.1921, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1660.4783, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1655.1112, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1649.7442, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1644.3772, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1639.0102, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1633.6432, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1628.2762, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1622.9092, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1617.5422, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2482.1921, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2477.7395, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2473.2869, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2468.8343, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2464.3817, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2459.9291, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2455.4765, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2451.0239, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2446.5713, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- CreateObject(1697, 2442.1187, -1612.1752, 160.0000, 31.8000, 0.0000, 0.0000);
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- PlayerInfo[i][lost] = 0;
- PlayerInfo[i][sent] = 1;
- PlayerInfo[i][sentold] = 0;
- PlayerInfo[i][spawned] = 0;
- SetPlayerHealth(i, 100);
- SpawnPlayer(i);
- }
- for(new i = 0; i < 2; i++) SetVehicleToRespawn(i);
- Info[timer][1] = SetTimer("CountDown", 1000, 1);
- SetTimer("StartFalling", 10000, 0);
- new string[128], hour, minute, second;
- gettime(hour, minute, second);
- format(string, sizeof(string), "A new game has started - %d:%d:%d", hour, minute, second);
- SendClientMessageToAll(orange, string);
- return 1;
- }
Add Comment
Please, Sign In to add comment