Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #include <a_samp>
- #include <zcmd>
- #include <streamer>
- #if defined FILTERSCRIPT
- #define COL_OLIVE "{B9C900}"
- #define COL_WHITE "{FFFFFF}"
- #define MAX_MINES (5)
- #define MAX_SERVERMINES (100)
- new totalMines[MAX_PLAYERS];
- new serverMines[MAX_SERVERMINES];
- new bool:isLive[MAX_SERVERMINES];
- new bool:isImmune[MAX_PLAYERS];
- new Text3D:mineText[MAX_SERVERMINES];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------");
- print("land mine filterscript by BigGroter");
- print("-----------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("\n------------------------------------------");
- print("Unloading land mine filterscript by BigGroter");
- print("--------------------------------------------\n");
- return 1;
- }
- #else
- #endif
- public OnPlayerConnect(playerid)
- {
- totalMines[playerid] = 0;
- isImmune[playerid] = false;
- return 1;
- }
- CMD:placemine(playerid, params[])
- {
- if(totalMines[playerid] >= MAX_MINES) return SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You may not place any more mines!");
- new idx = getFreeMineSlot();
- if(serverMines[idx] >= MAX_SERVERMINES) return SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You may not place any more mines, the server amount has been reached!");
- new Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x,y,z);
- mineText[idx] = CreateDynamic3DTextLabel("DANGER: land mine", 0xFF0000FF , x, y, z, 4.5);
- serverMines[idx] = CreateDynamicCircle(x, y, 2.5);
- isLive[idx] = false;
- ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 0, 0, 0, 1, 1, 1);
- SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"The mine will become live in ten seconds, leave the area before you get blown up yourself!");
- SetTimerEx("mineTimer", 10000, false, "d", idx);
- totalMines[playerid]++;
- new i = CountDynamicAreas();
- printf("%d mines", i);
- return 1;
- }
- CMD:immune(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You are not authorized to use this command!");
- if(isImmune[playerid] == true)
- {
- isImmune[playerid] = false;
- SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You can now be killed by land mines.");
- }
- else
- {
- isImmune[playerid] = true;
- SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You are now immune to land mines!");
- }
- return 1;
- }
- CMD:immunelist(playerid, params[])
- {
- new message[128], pName[MAX_PLAYER_NAME];
- SendClientMessage(playerid, -1, "These people are currently "#COL_OLIVE#"immune"#COL_WHITE#" to land mines:");
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- {
- if(isImmune[i])
- {
- GetPlayerName(playerid, pName, sizeof(pName));
- format(message, sizeof(message), "%s", pName);
- SendClientMessage(playerid, -1, message);
- }
- }
- }
- return 1;
- }
- CMD:removemine(playerid, params[])
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You are not authorized to use this command!");
- if(!IsPlayerInAnyDynamicArea(playerid)) return SendClientMessage(playerid, -1, ""#COL_OLIVE#"INFO: "#COL_WHITE#"You are not near any mines!");
- for(new i=0;i<MAX_SERVERMINES;i++)
- {
- if(IsPlayerInDynamicArea(playerid, serverMines[i]))
- {
- DestroyDynamicArea(serverMines[i]);
- DestroyDynamic3DTextLabel(mineText[i]);
- }
- }
- return 1;
- }
- CMD:minehelp(playerid, params[])
- {
- SendClientMessage(playerid, -1, ""#COL_OLIVE#"LM CMDS: "#COL_WHITE#"/placemine, /immunelist, /minehelp");
- if(IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, -1, ""#COL_OLIVE#"LM ADM CMDS: "#COL_WHITE#"/removemine, /immune");
- }
- return 1;
- }
- stock getFreeMineSlot()
- {
- new i = CountDynamicAreas();
- return i+1;
- }
- forward OnPlayerEnterDynamicArea(playerid, areaid);
- public OnPlayerEnterDynamicArea(playerid, areaid)
- {
- if(!isLive[areaid]) return 1;
- if(isImmune[playerid]) return 1;
- new vehid, Float:x, Float:y, Float:z;
- GetPlayerPos(playerid, x,y,z);
- if(IsPlayerInAnyVehicle(playerid))
- {
- vehid = GetPlayerVehicleID(playerid);
- SendClientMessage(playerid, -1, "You drove over a land mine!");
- SetVehicleHealth(vehid, 0);
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- {
- if(!isImmune[i])
- {
- if(IsPlayerInVehicle(i, vehid))
- {
- SetPlayerHealth(i, 0);
- }
- }
- }
- }
- }
- else
- {
- SendClientMessage(playerid, -1, "You stepped on a land mine!");
- SetPlayerHealth(playerid, 0);
- }
- CreateExplosion(x,y,z,0, 12);
- return 1;
- }
- forward mineTimer(mineID);
- public mineTimer(mineID)
- {
- isLive[mineID] = true;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement