#include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 // Thanks to Dracoblue new AnnCounter,Freezed[MAX_PLAYERS], Announcement[5][128] = { "This Announcement has been used for the Developer Test", "Any Announcement here", "You can use 5 lines", "http://forum.sa-mp.nl", "Development test" }; enum KILLDEATHS { Deaths, Kills }; new KillDeathSave[MAX_PLAYERS][KILLDEATHS]; new Float:Spawns[][5] = { {000.000, 000.000, 000.000, 000.000}, {000.000, 000.000, 3000.000, 000.000}, {000.000, 000.000, 000.000, 000.000}, {000.000, 000.000, 000.000, 000.000}, {000.000, 000.000, 000.000, 000.000} }; #if defined FILTERSCRIPT public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Blank Filterscript by your name here"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #else main() { print("\n----------------------------------------------"); print(" Gijs min Developer Script (Gijsmin@gmail.com)"); print("----------------------------------------------\n"); } #endif public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Gijs Min"); AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 1 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 2 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 3 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 4 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 5 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 6 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 7 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 8 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 9 AddStaticVehicle(0, 000.000, 000.000, 000.000, 000.000, -1, -1); // 10 SetTimer("AnnounceMents",180000,1); return 1; } public OnGameModeExit() { return 1; } forward AnnounceMents(); public AnnounceMents() { switch(AnnCounter) { case 0: {SendClientMessageToAll(0xFFFF00AA, Announcement[0]); AnnCounter++; } case 1: {SendClientMessageToAll(0xFFFF00AA, Announcement[1]); AnnCounter++; } case 2: {SendClientMessageToAll(0xFFFF00AA, Announcement[2]); AnnCounter++; } case 3: {SendClientMessageToAll(0xFFFF00AA, Announcement[3]); AnnCounter++; } case 4: {SendClientMessageToAll(0xFFFF00AA, Announcement[4]); AnnCounter++; } } } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnPlayerConnect(playerid) { new RandomSpawns = random(sizeof(Spawns)); SetPlayerPos(playerid, Spawns[RandomSpawns][0], Spawns[RandomSpawns][1],Spawns[RandomSpawns][2]); SetPlayerFacingAngle(playerid, Spawns[RandomSpawns][3]); Freezed[playerid]=0; return 1; } public OnPlayerDisconnect(playerid, reason) { Freezed[playerid]=0; return 1; } public OnPlayerSpawn(playerid) { if(Freezed[playerid]==1) TogglePlayerControllable(playerid, false); return 1; } public OnPlayerDeath(playerid, killerid, reason) { SetPlayerScore(playerid, GetPlayerScore(playerid)-1); SetPlayerScore(killerid, GetPlayerScore(killerid)+1); ResetPlayerMoney(playerid); KillDeathSave[playerid][Deaths]++; KillDeathSave[killerid][Kills]++; new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (x > 1995.5 && x < 1518.0 && y > 2006.0 && y < 1569.0 && IsPlayerConnected(killerid)) { SetTimerEx("GiveMoneyAfterSomeTime", 5000, 0, "ii", playerid, 10000); // this will give money after 5 seconds else the money will be reseted } return 1; } forward GiveMoneyAfterSomeTime(playerid, money); public GiveMoneyAfterSomeTime(playerid, money) { GivePlayerMoney(playerid, money); return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerPrivmsg(playerid, recieverid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(ban,3,cmdtext); dcmd(kick,4,cmdtext); dcmd(freeze,6,cmdtext); dcmd(unfreeze,8,cmdtext); dcmd(taxi,4,cmdtext); if (strcmp("/stats", cmdtext, true, 10) == 0) { new string[128]; format(string,sizeof(string), "You have Killed %d People And you Died %d times.",KillDeathSave[playerid][Kills],KillDeathSave[playerid][Deaths]); SendClientMessageToAll(0xFFFF00AA, string); return 1; } return 0; } dcmd_taxi(playerid, params[]) { if(!strlen(params)) { SendClientMessage(playerid, 0xFFFF00AA, "Where u wanna go ? Type: /taxi Example /taxi hello"); SendClientMessage(playerid, 0xFFFF00AA, "hello , development , sa-mp , gijs , lvp"); // sorry i don't know any location } if(!strcmp(params,"hello",true)) { if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You need 100 $ to goto this place!"); SetPlayerPos(playerid, 000.000, 000.000, 000.000); SetPlayerFacingAngle(playerid, 000.000); GivePlayerMoney(playerid, -100); } if(!strcmp(params,"development",true)) { if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You need 100 $ to goto this place!"); SetPlayerPos(playerid, 000.000, 000.000, 000.000); SetPlayerFacingAngle(playerid, 000.000); GivePlayerMoney(playerid, -100); } if(!strcmp(params,"sa-mp",true)) { if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You need 100 $ to goto this place!"); SetPlayerPos(playerid, 000.000, 000.000, 000.000); SetPlayerFacingAngle(playerid, 000.000); GivePlayerMoney(playerid, -100); } if(!strcmp(params,"gijs",true)) { if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You need 100 $ to goto this place!"); SetPlayerPos(playerid, 000.000, 000.000, 000.000); SetPlayerFacingAngle(playerid, 000.000); GivePlayerMoney(playerid, -100); } if(!strcmp(params,"lvp",true)) { if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You need 100 $ to goto this place!"); SetPlayerPos(playerid, 000.000, 000.000, 000.000); SetPlayerFacingAngle(playerid, 000.000); GivePlayerMoney(playerid, -100); } return 1; } dcmd_ban(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You cannot use this command!"); new id,string[128],Name[MAX_PLAYER_NAME],AdminName[MAX_PLAYER_NAME]; if(sscanf(params, "u", id)) SendClientMessage(playerid, 0xFFFF00AA, "USAGE: /ban "); else if(!IsPlayerConnected(playerid)) SendClientMessage(playerid, 0xFFFF00AA, "Error: This player is not online!"); GetPlayerName(playerid, AdminName, sizeof(AdminName)); GetPlayerName(id, Name, sizeof(Name)); format(string,sizeof(string), "Administrator %s has banned Player %s",AdminName,Name); SendClientMessageToAll(0xFFFF00AA,string); Ban(id); return 1; } dcmd_kick(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You cannot use this command!"); new id,string[128],Name[MAX_PLAYER_NAME],AdminName[MAX_PLAYER_NAME]; if(sscanf(params, "u", id)) SendClientMessage(playerid, 0xFFFF00AA, "USAGE: /Kick "); else if(!IsPlayerConnected(playerid)) SendClientMessage(playerid, 0xFFFF00AA, "Error: This player is not online!"); GetPlayerName(playerid, AdminName, sizeof(AdminName)); GetPlayerName(id, Name, sizeof(Name)); format(string,sizeof(string), "Administrator %s has kicked Player %s",AdminName,Name); SendClientMessageToAll(0xFFFF00AA,string); Kick(id); return 1; } dcmd_freeze(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You cannot use this command!"); new id,string[128],Name[MAX_PLAYER_NAME],AdminName[MAX_PLAYER_NAME]; if(sscanf(params, "u", id)) SendClientMessage(playerid, 0xFFFF00AA, "USAGE: /Freeze "); else if(!IsPlayerConnected(playerid)) SendClientMessage(playerid, 0xFFFF00AA, "Error: This player is not online!"); GetPlayerName(playerid, AdminName, sizeof(AdminName)); GetPlayerName(id, Name, sizeof(Name)); format(string,sizeof(string), "Administrator %s has Freezed Player %s",AdminName,Name); SendClientMessageToAll(0xFFFF00AA,string); TogglePlayerControllable(id, false); Freezed[id]=1; return 1; } dcmd_unfreeze(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFF00AA, "Error: You cannot use this command!"); new id,string[128],Name[MAX_PLAYER_NAME],AdminName[MAX_PLAYER_NAME]; if(sscanf(params, "u", id)) SendClientMessage(playerid, 0xFFFF00AA, "USAGE: /UnFreeze "); else if(!IsPlayerConnected(playerid)) SendClientMessage(playerid, 0xFFFF00AA, "Error: This player is not online!"); GetPlayerName(playerid, AdminName, sizeof(AdminName)); GetPlayerName(id, Name, sizeof(Name)); format(string,sizeof(string), "Administrator %s has UnFreezed Player %s",AdminName,Name); SendClientMessageToAll(0xFFFF00AA,string); TogglePlayerControllable(id, true); Freezed[id]=0; return 1; } stock sscanf(string[], format[], {Float,_}:...) // Thanks to Y_less { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos]) > ' ' && ch != delim) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { setarg(paramPos, 0, _:floatstr(string[stringPos])); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; }