All pastes #948801 Raw Edit

Something

public text v1 · immutable
·published 2008-03-19 13:09 UTC
rendered paste body
#include <a_samp>
#include <core>
#include <float>
#include <dudb>

new logged[MAX_PLAYERS];
new money[MAX_PLAYERS];
new playername[MAX_PLAYER_NAME];

#define TEAM_HERO 1 // Team Vagos
#define TEAM_CRIMINAL 2 // Team Ballas
#define TEAM_ADMIN 3
#define TEAM_KIDNAP 4
#define TEAM_COP 5

#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_GREY 0xAFAFAFAA
#define OBJECTIVE_COLOR 0xFFFF00AA
#define COLOR_RED  0xCD5C5CAA
#define COLOR_LIGHTBLUE 0x48D1CCAA
#define COLOR_BLACK 0x000000AA
#define COLOR_ERROR 0x800000AA
#define COLOR_GREEN 0x00FF00AA
#define COLOR_ADMIN 0xA52A2AAA

new read[MAX_PLAYERS];
new Menu:RulesMenu;
new Menu:Rules;
new Text:gTextDraw;
new LoggedHaha;
new FrozenHaha;
new frozen[MAX_PLAYERS];
new Kidnapped[MAX_PLAYERS];
new KidnapTimer;

new CountText[1][10] = {
    "30"
};

new Count = 9;

static gTeam[MAX_PLAYERS];

forward SetPlayerToTeamColor(playerid); // Speler naar teamkleur zetten
forward SetupPlayerForClassSelection(playerid); // Speler klaarmaken voor setup
forward SetPlayerTeamFromClass(playerid,classid); // Speler in team zetten
forward ExitTheGameMode(); // uit gamemode gaan
forward LoggedIn(playerid);
forward FrozenIn(playerid);
forward Kidnap(playerid);
forward Jailed(playerid);
forward CountDown();

main()
{
    print("\n----------------------------------");
    print(" RPG San Fierro Hero\n");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
	{
			SetGameModeText("RPG San Fierro Hero");
            SetWorldTime(8); // tijd in uren.
            ShowNameTags(1); // Spelers namen boven health balk aan of uit. Nu aan
            ShowPlayerMarkers(1); // Blokjes op radar aan of uit? Nu aan

            // Vehicles Vagos ---------- Zet hier de autos van de Vagos neer

			CreateVehicle(484, -3443.102, 1514.267, 0.1724623, 0.0, 18, 36, 99999999);

            AddPlayerClass(120, -1568.027, 681.1583, 7.1875,270.0,46,1,0,0,0,0);
            AddPlayerClass(228, -1568.027, 681.1583, 7.1875,270.0,46,1,0,0,0,0);
            AddPlayerClass(163, -1568.027, 681.1583, 7.1875,270.0,46,1,0,0,0,0);

            AddPlayerClass(22, -1496.554, 918.931, 7.1875,270.0,0,0,0,0,0,0);
            AddPlayerClass(1, -1496.554, 918.931, 7.1875,270.0,0,0,0,0,0,0);
            AddPlayerClass(1, -1496.554, 918.931, 7.1875,270.0,0,0,0,0,0,0);

			AddPlayerClass(22, -1519.892, 677.1359, 139.2734,270.0,46,1,0,0,0,0);

			AddPlayerClass(22, -1519.892, 677.1359, 139.2734,270.0,46,1,0,0,0,0);

            AddPlayerClass(22, -1519.892, 677.1359, 139.2734,270.0,46,1,0,0,0,0);//cop
            
			gTextDraw = TextDrawCreate( 460.0, 420.0, "RPG San Fierro Hero!");
            TextDrawFont(gTextDraw, 0);
			TextDrawUseBox(gTextDraw, 0);
			RulesMenu = CreateMenu("Accept rules? Or don't",1,200,200,400,35);
			AddMenuItem(RulesMenu, 0, "Read the rules");
			AddMenuItem(RulesMenu, 0, "Agree");
			AddMenuItem(RulesMenu, 0, "Disagree");
			Rules = CreateMenu("The rules:",1,200,200,400,35);
			AddMenuItem(Rules, 0, "Do NOT hack~n~Do NOT spam~n~Do NOT ask for admin~n~Do NOT abuse glitches");
	}
    return 1;
}
public OnPlayerConnect(playerid)
{
	new string[128];
	new PlayerName[MAX_PLAYER_NAME];
	GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
	format(string, sizeof(string), "%s has joined the server", PlayerName);
	SendClientMessageToAll(COLOR_GREEN, string);
	Kidnapped[playerid] = 0;
	frozen[playerid] = 0;
	read[playerid] = 0;
    SetPlayerColor(playerid,COLOR_GREY); // Kleur
    GameTextForPlayer(playerid,"RPG San Fierro Hero",2000,5); // Text
    SendClientMessage(playerid, COLOR_RED, "Welcome to this gamemode");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Good luck, and have fun :)");
    logged[playerid] = 0;
	EnableStuntBonusForAll(0);
	return 1;
}
public SetupPlayerForClassSelection(playerid)
{
    SetPlayerInterior(playerid,11);
    SetPlayerPos(playerid,-1653.57,519.6589,53.62505);
    SetPlayerCameraPos(playerid,-1648.57,519.6584,53.62505);
    SetPlayerCameraLookAt(playerid,-1653.57,519.6589,53.62505);
    SetPlayerFacingAngle(playerid,0.0);
}
public SetPlayerTeamFromClass(playerid,classid)
{
    if(classid == 0 || classid == 1 || classid == 2)
    {
        gTeam[playerid] = TEAM_HERO;
    }
	else if(classid == 3 || classid == 4 || classid == 5)
	{
        gTeam[playerid] = TEAM_CRIMINAL;
	}
	else if(classid == 6)
	{
		gTeam[playerid] = TEAM_ADMIN;
	}
	else if(classid == 7)
	{
		gTeam[playerid] = TEAM_KIDNAP;
	}
	else if(classid == 8)
	{
		gTeam[playerid] = TEAM_COP;
	}
	return 1;
    }

public SetPlayerToTeamColor(playerid)
{
    if(gTeam[playerid] == TEAM_HERO) {
        SetPlayerColor(playerid,COLOR_RED); // geel
    } else if(gTeam[playerid] == TEAM_CRIMINAL) {
        SetPlayerColor(playerid,COLOR_BLACK); // roze/paars
    } else if(gTeam[playerid] == TEAM_ADMIN) {
        SetPlayerColor(playerid,COLOR_ADMIN); // roze/paars
    } else if(gTeam[playerid] == TEAM_KIDNAP) {
        SetPlayerColor(playerid,COLOR_YELLOW); // roze/paars
    } else if(gTeam[playerid] == TEAM_COP) {
        SetPlayerColor(playerid,COLOR_YELLOW); // roze/paars
    }
}
public OnPlayerRequestClass(playerid, classid)
{
    SetupPlayerForClassSelection(playerid);
    SetPlayerTeamFromClass(playerid,classid);

    if(classid == 0 || classid == 1 || classid == 2) {
        GameTextForPlayer(playerid,"~y~HERO",1000,5);
    } else if(classid == 3 || classid == 4 || classid == 5) {
        GameTextForPlayer(playerid,"~r~CRIMINAL",1000,5);
    }
    else if(classid == 6) {
        GameTextForPlayer(playerid,"~y~ADMIN",1000,5);
	}
	else if(classid == 7) {
	    GameTextForPlayer(playerid,"KIDNAPPER",1000,5);
	}
	else if(classid == 8) {
	    GameTextForPlayer(playerid,"COP",1000,5);
	}
    TextDrawHideForPlayer(playerid, gTextDraw);
	return 1;
}
public OnPlayerSpawn(playerid)
{
	SetPlayerTeamFromClass(playerid, GetPlayerSkin(playerid));
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid,0);
	if(gTeam[playerid] == TEAM_HERO)
    {
        GameTextForPlayer(playerid,"Avoid the Terrorist!", 6000,5);
    }
    else if(gTeam[playerid] == TEAM_CRIMINAL)
    {
        GameTextForPlayer(playerid,"Kill the ~y~Minister!", 6000,5);
    }
    else if(gTeam[playerid] == TEAM_ADMIN)
    {
		if(IsPlayerAdmin(playerid) == 0)
		{
			SetPlayerHealth(playerid, 0.0);
		    SendClientMessage(playerid, COLOR_RED, "You are NOT admin. You get killed");
	    }
		else
		{
			GameTextForPlayer(playerid,"Hello admin :)", 6000,5);
			read[playerid] = 1;
		}
	}
	else if (gTeam[playerid] == TEAM_KIDNAP)
	{
	    GameTextForPlayer(playerid,"Kidnap civics or cops!",6000,5);
	}
	else if (gTeam[playerid] == TEAM_COP)
	{
	    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your job is to bring peace on the streets");
	    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Read your /commands please.");
	}
	if(logged[playerid] == 0)
    {
		frozen[playerid] = 1;
		FrozenHaha = SetTimer("FrozenIn", 1000, 999);
		LoggedHaha = SetTimer("LoggedIn", 1000, 999);
	}
	else
	{
	    KillTimer(FrozenHaha);
	    KillTimer(LoggedHaha);
	}
	if(read[playerid] == 0)
	{
    TextDrawShowForPlayer(playerid, gTextDraw);
    ShowMenuForPlayer(RulesMenu, playerid);
    }
	return 1;
}
public ExitTheGameMode()
{
    GameModeExit();
}
public OnPlayerDeath(playerid, killerid, reason)
{
    new deathstr[256];
    new whodiedname[MAX_PLAYER_NAME+1];
    new whokilledname[MAX_PLAYER_NAME+1];
    new deathreasonstr[256];

    GetPlayerName(playerid,whodiedname,MAX_PLAYER_NAME);
    GetWeaponName(reason,deathreasonstr,255);

    if(killerid == INVALID_PLAYER_ID) {
        if(strlen(deathreasonstr)) {
            format(deathstr,256,"%s died (%s)",whodiedname,deathreasonstr);
        } else {
            format(deathstr,256,"%s died",whodiedname);
        }
        SendClientMessageToAll(OBJECTIVE_COLOR, deathstr);
    } else {
        GetPlayerName(killerid,whokilledname,MAX_PLAYER_NAME);
        if(gTeam[killerid] != gTeam[playerid]) {
            // Valid kill
            if(strlen(deathreasonstr)) {
                format(deathstr,256,"%s was killed by %s (%s)",whodiedname,whokilledname,deathreasonstr);
            } else {
                format(deathstr,256,"%s was killed by %s",whodiedname,whokilledname);
            }
            SendClientMessageToAll(OBJECTIVE_COLOR, deathstr);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
         }
        else {
            // Team kill
            format(deathstr,256,"%s killed team-mate %s (%s)",whokilledname,whodiedname,deathreasonstr);
            SendClientMessageToAll(OBJECTIVE_COLOR, deathstr);
        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256],tmp[256], tmp2[256];
    new idx;
    new string[256];
    cmd = strtok(cmdtext, idx);
	if(strcmp(cmd, "/kidnap", true) == 0)
	{
	new Float:x2, Float:y2, Float:z2;
	GetPlayerPos(playerid, Float:x2, Float:y2, Float:z2);
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /kidnap (id)");
	return 1;
	}
	new victimplayerid = strval(tmp);
	if(IsPlayerConnected(victimplayerid))
    {
		if(gTeam[playerid] == TEAM_KIDNAP)
		{
			if(gTeam[playerid] == TEAM_KIDNAP)
			{
			    if(GetPlayerMoney(victimplayerid) > 0)
			    {
					if(IsPlayerInAnyVehicle(playerid))
					{
			    		Kidnapped[playerid] = 1;
						KidnapTimer = SetTimer("Kidnap", 240000, 1);
						new victimname[24];
						new kidnapname[24];
						new giveplayerid = strval(tmp);
						GetPlayerName(giveplayerid, victimname, 24);
						GetPlayerName(playerid, kidnapname, 21);
						SendClientMessage(victimplayerid, COLOR_RED, "You are kidnapped by %s", kidnapname);
						SendClientMessage(playerid, COLOR_GREEN, "You kidnapped him!");
						TogglePlayerControllable(victimplayerid, 0);
					}
					else
					{
						SendClientMessage(playerid, COLOR_RED, "You have to be in a vehicle to kidnap a player");
					}
				}
				else
				{
				    SendClientMessage(victimplayerid, COLOR_RED, "You can't afford 5000. To bad.");
				}
			}
			else
			{
					SendClientMessage(playerid, COLOR_RED, "You are not close enough");
			}
		}
    	else
		{
		    SendClientMessage(playerid, COLOR_RED, "You are not a kidnapper");
	    }
	}
	else
    {
		format(string, sizeof(string), "ID: %d Is not connected", victimplayerid);
		SendClientMessage(playerid, 0xD2691EAA, string);
	}
	if(strcmp(cmd, "/release", true) == 0)
	{
	    if(Kidnapped[victimplayerid] == 1)
		{
			TogglePlayerControllable(victimplayerid, 1);
			SendClientMessage(victimplayerid, COLOR_GREEN, "You are released");
			SetPlayerPos(playerid, Float:x2, Float:y2, Float:z2);
			new iRandomNumber = random(5000);
			GivePlayerMoney(playerid, iRandomNumber);
		}
		else
		{
		    SendClientMessage(playerid, COLOR_RED, "This player isn't kidnapped");
		}
	}
	return 1;
   }
   	if(strcmp(cmd, "/arrest", true) == 0 && gTeam[playerid] == TEAM_COP)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /arrest (id)");
	return 1;
	}
	new jailedplayerid = strval(tmp);

	if(IsPlayerConnected(jailedplayerid))
    {
		if(GetPlayerWantedLevel(jailedplayerid) == 5)
		{
		    if(GetDistanceBetweenPlayers(playerid, jailedplayerid) < 3)
			{
				new jailname[24];
				new adminname[24];
				new jailed[256];
				new giveplayerid = strval(tmp);
				new Float:x, Float:y, Float:z;
				new car;
				GetPlayerPos(playerid, Float:x, Float:y, Float:z);
				car = CreateVehicle(523, Float:x+2, Float:y+2, Float:z+2, 360.0, 0,1,90000);
				PutPlayerInVehicle(playerid, car, 0);
				PutPlayerInVehicle(jailedplayerid, car, 1);
				TogglePlayerControllable(jailedplayerid, 0);
				GetPlayerName(giveplayerid, jailname, 24);
				GetPlayerName(playerid, adminname, 21);
				format(jailed, sizeof(jailed), "%s has been arrested by, %s", jailname, adminname);
				SendClientMessageToAll(0xFF7F50AA, jailed);
				SetTimerEx("Busted", 1000, 30, "i", jailedplayerid);
			}
			else
			{
			    SendClientMessage(playerid, COLOR_RED, "Player too far away");
			}
		 }
		 else
		 {
		    SendClientMessage(playerid, COLOR_RED, "This player isn't wanted");
		 }
	}
	else
	{
		format(string, sizeof(string), "ID: %d Is not connected", jailedplayerid);
		SendClientMessage(playerid, 0xD2691EAA, string);
  	}
	return 1;
 	}
	if (strcmp("/kill", cmdtext, true, 10) == 0)
	{
		SetPlayerHealth(playerid, 0.0);
		return 1;
	}
	if (strcmp("/credits", cmdtext, true, 10) == 0)
	{
	    SendClientMessage(playerid, COLOR_GREEN, "Gamemode created by Jeroen");
	    SendClientMessage(playerid, COLOR_GREEN, "Thanks to =>Sandra<=");
	    SendClientMessage(playerid, COLOR_GREEN, "Thanks to Sa-mp.com");
	    SendClientMessage(playerid, COLOR_GREEN, "Gamemode created by Jeroen");
		return 1;
	}
	if (strcmp("/wanted", cmdtext, true, 10) == 0)
	{
		SetPlayerWantedLevel(playerid, 5);
 		SetPlayerColor(playerid, COLOR_BLACK);
	    if(gTeam[playerid] == TEAM_COP)
	    {
	        SendClientMessage(playerid, COLOR_RED, "You can't use this command");
	        return 0;
		}
		return 1;
	}
    GetPlayerName(playerid, playername, sizeof(playername));
    if(strcmp(cmd, "/register", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /register (password)");
        }
        else
        {
            if (!dini_Exists(udb_encode(playername)))
            {
                dini_Create(udb_encode(playername));
                dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
                dini_IntSet(udb_encode(playername), "money", 0);
                format(string, sizeof(string), "Account %s Created! You can now loggin with password: %s.", playername, tmp);
                SendClientMessage(playerid, COLOR_YELLOW, string);
            }
            else
            {
                format(string, sizeof(string), "%s already registered.", playername,tmp);
                SendClientMessage(playerid, COLOR_RED, string);
            }
        }
        return 1;
    }


    if(strcmp(cmd, "/login", true) == 0)
    {
        if(logged[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_RED, "You are already logged in!");
            return 1;
        }
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_YELLOW, "Use: /login [password]");
        }
        else
        {
            if (dini_Exists(udb_encode(playername)))
            {
                tmp2 = dini_Get(udb_encode(playername), "password");
                if (udb_hash(tmp) != strval(tmp2))
                {
                    SendClientMessage(playerid, COLOR_RED, "Wrong password");
                }
                else
                {
                    frozen[playerid] = 1;
					logged[playerid] = 1;
                    money[playerid] = dini_Int(udb_encode(playername), "money");
                    format(string, sizeof(string), "%s, you are now logged in! You've got %d dollar", playername, money[playerid]);
                    SendClientMessage(playerid, COLOR_GREEN, string);
                    GivePlayerMoney(playerid, money[playerid]);
                }
            }
            else
            {
                format(string, sizeof(string), "The account %s doesn't exist yet! Create an account by using /register [password]", playername);
                SendClientMessage(playerid, COLOR_RED, string);
            }
        }
        return 1;
    }
    if(strcmp(cmd, "/adkick", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /adkick (id)");
	return 1;
	}
	new kickedplayerid = strval(tmp);

	if(IsPlayerConnected(kickedplayerid)) {
	new kickname[24];
	new adminname[24];
	new kicked[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, kickname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(kicked, sizeof(kicked), "%s has been kicked by admin, %s", kickname, adminname);
	SendClientMessageToAll(0xFF7F50AA, kicked);
	Kick(kickedplayerid);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", kickedplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
 	if(strcmp(cmd, "/adhugg", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /adhugg (id)");
	return 1;
	}
	new huggedplayerid = strval(tmp);

	if(IsPlayerConnected(huggedplayerid)) {
	new huggname[24];
	new adminname[24];
	new hugged[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, huggname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(hugged, sizeof(hugged), "%s has been hugged by admin, %s", huggname, adminname);
	SendClientMessageToAll(0xFF7F50AA, hugged);
	GameTextForPlayer(huggedplayerid, "~p~You are hugged", 5000,6);
	GivePlayerMoney(huggedplayerid, 6000);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", huggedplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}

	if(strcmp(cmd, "/adban", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /adban (id)");
	return 1;
	}
	new bannedplayerid = strval(tmp);

	if(IsPlayerConnected(bannedplayerid)) {
	new banname[24];
	new adminname[24];
	new kicked[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, banname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(kicked, sizeof(kicked), "%s has been kicked by admin, %s", banname, adminname);
	SendClientMessageToAll(0xFF7F50AA, kicked);
	Ban(bannedplayerid);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", bannedplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/adfreeze", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /adfreeze (id)");
	return 1;
	}
	new frozenplayerid = strval(tmp);

	if(IsPlayerConnected(frozenplayerid)) {
	new frozenname[24];
	new adminname[24];
	new frozen1[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, frozenname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(frozen1, sizeof(frozen1), "%s has been frozen by admin, %s", frozenname, adminname);
	SendClientMessageToAll(0xFF7F50AA, frozen1);
	TogglePlayerControllable(frozenplayerid, 0);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", frozenplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/adunfreeze", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /adunfreeze (id)");
	return 1;
	}
	new unfrozenplayerid = strval(tmp);

	if(IsPlayerConnected(unfrozenplayerid)) {
	new unfrozenname[24];
	new adminname[24];
	new unfrozen[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, unfrozenname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(unfrozen, sizeof(unfrozen), "%s has been unfrozen by admin, %s", unfrozenname, adminname);
	SendClientMessageToAll(0xFF7F50AA, unfrozen);
	TogglePlayerControllable(unfrozenplayerid, 1);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", unfrozenplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/adblow", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /adblow (id)");
	return 1;
	}
	new blowenplayerid = strval(tmp);

	if(IsPlayerConnected(blowenplayerid)) {
	new blowenname[24];
	new adminname[24];
	new blowen[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, blowenname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(blowen, sizeof(blowen), "%s has been blowen by admin, %s", blowenname, adminname);
	SendClientMessageToAll(0xFF7F50AA, blowen);
	new Float:x, Float:y, Float:z;
	GetPlayerPos(playerid, Float:x, Float:y, Float:z);
	CreateExplosion(Float:x, Float:y, Float:z, 9, 0);
	CreateExplosion(Float:x, Float:y, Float:z, 9, 0);
	CreateExplosion(Float:x, Float:y, Float:z, 9, 0);
	CreateExplosion(Float:x, Float:y, Float:z, 9, 0);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", blowenplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/disarm", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /disarm (id)");
	return 1;
	}
	new disarmedplayerid = strval(tmp);

	if(IsPlayerConnected(disarmedplayerid)) {
	new disarmedname[24];
	new adminname[24];
	new disarmed[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, disarmedname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(disarmed, sizeof(disarmed), "%s has been disarmed by admin, %s", disarmedname, adminname);
	SendClientMessageToAll(0xFF7F50AA, disarmed);
	ResetPlayerWeapons(disarmedplayerid);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", disarmedplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/reset", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /reset (id)");
	return 1;
	}
	new resettenplayerid = strval(tmp);

	if(IsPlayerConnected(resettenplayerid)) {
	new resetname[24];
	new adminname[24];
	new resetten[256];
	new giveplayerid = strval(tmp);
	GetPlayerName(giveplayerid, resetname, 24);
	GetPlayerName(playerid, adminname, 21);
	format(resetten, sizeof(resetten), "Account: %s has been resetten by admin, %s", resetname, adminname);
	SendClientMessageToAll(0xFF7F50AA, resetten);
	ResetPlayerWeapons(resettenplayerid);
	ResetPlayerMoney(resettenplayerid);
	SetPlayerHealth(resettenplayerid, 100.0);
	SetPlayerArmour(resettenplayerid, 0.0);
	SetPlayerScore(resettenplayerid, 0);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", resettenplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
    if(strcmp(cmd, "/goto", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /goto (id)");
	return 1;
	}
	new gotoplayerid = strval(tmp);

	if(IsPlayerConnected(gotoplayerid)) {
	new gotoname[24];
	new typedname[24];
	new adminname[24];
	new giveplayerid = strval(tmp);
	GetPlayerName(playerid, typedname, 24);
	GetPlayerName(giveplayerid, gotoname, 24);
	GetPlayerName(playerid, adminname, 21);
 	new Float:x, Float:y, Float:z;
 	GetPlayerPos(gotoplayerid, Float:x, Float:y, Float:z);
 	SetPlayerPos(playerid, Float:x, Float:y, Float:z);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", gotoplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/bring", true) == 0 && IsPlayerAdmin(playerid) == 1)
	{
	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /bring (id)");
	return 1;
	}
	new bringplayerid = strval(tmp);

	if(IsPlayerConnected(bringplayerid)) {
	new bringname[24];
	new typedname[24];
	new adminname[24];
	new giveplayerid = strval(tmp);
	GetPlayerName(playerid, typedname, 24);
	GetPlayerName(giveplayerid, bringname, 24);
	GetPlayerName(playerid, adminname, 21);
 	new Float:x, Float:y, Float:z;
 	GetPlayerPos(playerid, Float:x, Float:y, Float:z);
 	SetPlayerPos(bringplayerid, Float:x, Float:y, Float:z);
	}
	else {
	format(string, sizeof(string), "ID: %d Is not connected", bringplayerid);
	SendClientMessage(playerid, 0xD2691EAA, string);
	}
	return 1;
	}
	if(strcmp(cmd, "/say", true) == 0 && IsPlayerAdmin(playerid) == 1)
      {
      if(cmdtext[5] == 0) {
      SendClientMessage(playerid, 0xFF0000FF, "USAGE: /say [action]");
      return 1;
      }
      new str[128];
      GetPlayerName(playerid, str, sizeof(str));
      format(str, sizeof(str), "*Admin %s says: %s", str, cmdtext[5]);
      SendClientMessageToAll(0x48D1CCAA, str);
   	  return 1;
  	  }
	if(strcmp(cmd, "/adan", true) == 0 && IsPlayerAdmin(playerid) == 1)
      {
      if(cmdtext[5] == 0) {
      SendClientMessage(playerid, 0xFF0000FF, "USAGE: /adan [text]");
      return 1;
      }
      new str[128];
	  format(str, sizeof(str), "*Admin %s says: %s", str, cmdtext[5]);
   	  return 1;
  	  }
	new playermoney;
	new sendername[MAX_PLAYER_NAME];
	new giveplayer[MAX_PLAYER_NAME];
	new giveplayerid, moneys;
	if(strcmp(cmd, "/givecash", true) == 0) {
		tmp = strtok(cmdtext, idx);

		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_RED, "USAGE: /givecash [playerid] [amount]");
			return 1;
		}
		giveplayerid = strval(tmp);

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) {
			SendClientMessage(playerid, COLOR_RED, "USAGE: /givecash [playerid] [amount]");
			return 1;
		}
 		moneys = strval(tmp);

		//printf("givecash_command: %d %d",giveplayerid,moneys);


		if (IsPlayerConnected(giveplayerid)) {
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			playermoney = GetPlayerMoney(playerid);
			if (moneys > 0 && playermoney >= moneys) {
				GivePlayerMoney(playerid, (0 - moneys));
				GivePlayerMoney(giveplayerid, moneys);
				format(string, sizeof(string), "You have sent %s (id: %d), $%d.", giveplayer,giveplayerid, moneys);
				SendClientMessage(playerid, COLOR_YELLOW, string);
				format(string, sizeof(string), "You have recieved $%d from %s (id: %d).", moneys, sendername, playerid);
				SendClientMessage(giveplayerid, COLOR_YELLOW, string);
			}
			else {
				SendClientMessage(playerid, COLOR_YELLOW, "Invalid transaction amount.");
			}
  }
		else {
  		format(string, sizeof(string), "%d is not an active player.", giveplayerid);
		SendClientMessage(playerid, COLOR_YELLOW, string);
		 }
		return 1;
	}
    return 0;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
TogglePlayerControllable(playerid, 1);
new Menu:Current = GetPlayerMenu(playerid);

if (Current == RulesMenu)
{
switch(row) {
case 0: {ShowMenuForPlayer(Rules, playerid); TogglePlayerControllable(playerid, 0);}
case 1: {TogglePlayerControllable(playerid, 1); read[playerid] = 1;}
case 2: {Kick(playerid);}
}
}
if (Current == Rules)
{
switch(row) {
case 0: {ShowMenuForPlayer(RulesMenu, playerid); TogglePlayerControllable(playerid, 0);}
}
}
return 1;
}

public OnPlayerExitedMenu(playerid)
{
new Menu:Current = GetPlayerMenu(playerid);
if (Current == RulesMenu || Rules)
{
TogglePlayerControllable(playerid, 0);
ShowMenuForPlayer(RulesMenu, playerid);
}

else {
TogglePlayerControllable(playerid, 0);
}

return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    money[playerid] = GetPlayerMoney(playerid);
    dini_IntSet(udb_encode(playername), "money", money[playerid]);
    logged[playerid] = 0;
    return 1;
}
public LoggedIn(playerid)
{
		if(logged[playerid] == 0)
		{
			TogglePlayerControllable(playerid, false);
			GameTextForPlayer(playerid, "/login [password] before spawning!", 2000, 1);
		}
}
public FrozenIn(playerid)
{
		if(frozen[playerid] == 1 && logged[playerid] == 1)
		{
			TogglePlayerControllable(playerid, true);
			KillTimer(LoggedHaha && FrozenHaha);
		}
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	SendClientMessage(playerid, COLOR_GREY, "You are now driving a vehicle");
	return 1;
}
stock GetDistanceBetweenPlayers(playerid, otherplayer)
{
    new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
    new Float:tmpdis;
    GetPlayerPos(playerid, x1, y1, z1);
    GetPlayerPos(otherplayer, x2, y2, z2);
    tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2, x1)), 2) + floatpower(floatabs(floatsub(y2, y1)), 2) + floatpower(floatabs(floatsub(z2, z1)), 2));
    return floatround(tmpdis);
}
public Kidnap(playerid)
{
	KillTimer(KidnapTimer);
	TogglePlayerControllable(playerid, 1);
}
public Jailed(playerid)
{
	GameTextForPlayer(playerid, "You are busted for 30 seconds", 5000, 1);
	SetTimer("CountDown", 1000, 0);
}
public CountDown()
{
    if (Count > 0)
    {
        GameTextForAll(CountText[Count-1], 1000, 5);
        Count--;
        SetTimer("CountDown", 1000, 0);
    }
    else
    {
        GameTextForAll("~g~~h~You are released!", 1500, 5);
        Count = 30;
    }
    return 1;
}