All pastes #1410266 Raw Edit

Gijsmin

public cpp v1 · immutable
#1410266 ·published 2009-05-02 11:10 UTC
rendered paste body
#include <a_samp>#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 Dracobluenew 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 FILTERSCRIPTpublic OnFilterScriptInit(){	print("\n--------------------------------------");	print(" Blank Filterscript by your name here");	print("--------------------------------------\n");	return 1;}public OnFilterScriptExit(){	return 1;}#elsemain(){	print("\n----------------------------------------------");	print(" Gijs min Developer Script (Gijsmin@gmail.com)");	print("----------------------------------------------\n");}#endifpublic 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 <Location> 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 <PlayerName / ID>");	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 <PlayerName / ID>");	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 <PlayerName / ID>");	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 <PlayerName / ID>");	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;}