19.05.2012, 09:19
ColdFusionZ Administration 1.0
Commands: (Total: 24)
/kick [playerid] [reason]
/ban [playerid] [reason]
/setmoney [playerid] [reason]
/meto [playerid]
/tome [playerid]
/akill [playerid]
/explode [playerid]
/ann [message]
/freeze [playerid]
/unfreeze [playerid]
/mute [playerid]
/unmute [playerid]
/login [password]
/register [password]
/setadmin [playerid] [level]
/sethp [playerid] [amount]
/setarmour [playerid] [amount]
/whois [playerid]
/achat [message]
/slap [playerid]
/gmx
/amsg
/ahelp
/cchat
Short description of the commands:
Kick - Kicks the player from the server, also shows the reason.
Ban - Bans the player from the server, also shows the reason.
Setmoney - Gives the wanted amount of money to the selected player.
Meto - Teleports you to the person.
Tome - Teleports the person to you.
Akill - Kills the player.
Explode - Creates an explosion at a player. (Explosion Range: 3.00)
Ann - Shows a global announcement. (PlayerName: message)
Freeze - Freezes the player.
Unfreeze - Unfreezes the player.
Mute - Mutes the player-
Unmute - Unmutes the player-
Login - Logs you in and allows you to save your statistics.
Register - Creates an account with your playername.
Setadmin - Gives administrator rights to the selected player. (Levels: 1-3)
Sethp - Sets the players health to the amount you want.
Setarmour - Sets the players armour to the amount you want.
Whois - Shows the players name, ping, IP, armour, health, money and skin ID.
Achat - Sends a message to all online admins.
Slap - Slaps the player, lifts him up by 5.00 meters.
gmx - GMX's the server.
Amsg - Sends an admin message to the server. ([Admin]: Welcome to my server)
Ahelp - Shows a list of admin commands, also the admin level you must have in-order to use them.
Cchat - Clears the entire chat-box.
Saved on player disconnect: Admin level, player's kicks & bans.
Note: Only RCON & level 3 admins can use the '/setadmin' command.
Includes Needed:-
Dutils- http://dracoblue.net/download/dutils-110/30/
Download: - http://www.mediafire.com/?pea1v0lxb2b68b6- [Admin.pwn]
____________
Commands: (Total: 24)
/kick [playerid] [reason]
/ban [playerid] [reason]
/setmoney [playerid] [reason]
/meto [playerid]
/tome [playerid]
/akill [playerid]
/explode [playerid]
/ann [message]
/freeze [playerid]
/unfreeze [playerid]
/mute [playerid]
/unmute [playerid]
/login [password]
/register [password]
/setadmin [playerid] [level]
/sethp [playerid] [amount]
/setarmour [playerid] [amount]
/whois [playerid]
/achat [message]
/slap [playerid]
/gmx
/amsg
/ahelp
/cchat
Short description of the commands:
Kick - Kicks the player from the server, also shows the reason.
Ban - Bans the player from the server, also shows the reason.
Setmoney - Gives the wanted amount of money to the selected player.
Meto - Teleports you to the person.
Tome - Teleports the person to you.
Akill - Kills the player.
Explode - Creates an explosion at a player. (Explosion Range: 3.00)
Ann - Shows a global announcement. (PlayerName: message)
Freeze - Freezes the player.
Unfreeze - Unfreezes the player.
Mute - Mutes the player-
Unmute - Unmutes the player-
Login - Logs you in and allows you to save your statistics.
Register - Creates an account with your playername.
Setadmin - Gives administrator rights to the selected player. (Levels: 1-3)
Sethp - Sets the players health to the amount you want.
Setarmour - Sets the players armour to the amount you want.
Whois - Shows the players name, ping, IP, armour, health, money and skin ID.
Achat - Sends a message to all online admins.
Slap - Slaps the player, lifts him up by 5.00 meters.
gmx - GMX's the server.
Amsg - Sends an admin message to the server. ([Admin]: Welcome to my server)
Ahelp - Shows a list of admin commands, also the admin level you must have in-order to use them.
Cchat - Clears the entire chat-box.
Saved on player disconnect: Admin level, player's kicks & bans.
Note: Only RCON & level 3 admins can use the '/setadmin' command.
Includes Needed:-
Dutils- http://dracoblue.net/download/dutils-110/30/
Download: - http://www.mediafire.com/?pea1v0lxb2b68b6- [Admin.pwn]
____________
Код:
/* ________________________________________________________________________________ ColdFusionZ Administrationv1.0 by RanSEE ________________________________________________________________________________ Credits: ________ RanSEE ****** Brook T_Pain ________________________________________________________________________________ */ #include <a_samp> #include <dutils> #include <dudb> #include <float> #define COLOR_SYSTEM 0xEFEFF7AA #define COLOR_RED 0xFF0000AA #define COLOR_GREY 0xAFAFAFAA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_PINK 0xE100E1FF #define COLOR_GREY 0xAFAFAFAA #define FILTERSCRIPT #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 #if defined FILTERSCRIPT #pragma unused ret_memcpy #pragma tabsize 4 enum PlayerInfo { AdminLevel, Logged, Muted, Kicks, Bans } new PlayerData[MAX_PLAYERS][PlayerInfo]; forward AdminMessage(color, string[]); public OnFilterScriptInit() { print(" BasicAdmin 1.0 loaded"); SendClientMessageToAll(COLOR_LIGHTBLUE, "SERVER NOTICE: (v1.0) BasicAdmin loaded!"); return true; } public OnFilterScriptExit() { print(" BasicAdmin 1.0 loaded"); SendClientMessageToAll(COLOR_LIGHTBLUE, "SERVER NOTICE: (v1.0) BasicAdmin un-loaded!"); return true; } #else main() { print(" (v1.0) BasicAdmin loaded"); } #endif public OnPlayerText(playerid, text[]) { if(PlayerData[playerid][Muted] == 1) { SendClientMessage(playerid, COLOR_RED, "Unable to talk. (REASON: Muted)"); return 0; } return true; } public OnPlayerConnect(playerid) { if(!udb_Exists(PlayerName(playerid))) { SendClientMessage(playerid, COLOR_WHITE, "Your nickname is not registered, please use /register [password]."); return true; } if(udb_Exists(PlayerName(playerid))) { SendClientMessage(playerid, COLOR_WHITE, "Your nickname is registered, please use /login [password]."); return true; } PlayerData[playerid][Logged] = 0; PlayerData[playerid][Muted] = 0; PlayerData[playerid][AdminLevel] = 0; PlayerData[playerid][Kicks] = 0; PlayerData[playerid][Bans] = 0; return true; } public OnPlayerDisconnect(playerid, reason) { new string[256]; if(PlayerData[playerid][Logged]) { dUserSetINT(PlayerName(playerid)).("AdminLevel", PlayerData[playerid][AdminLevel]); dUserSetINT(PlayerName(playerid)).("PlayerKicks", PlayerData[playerid][Kicks]); dUserSetINT(PlayerName(playerid)).("PlayerBans", PlayerData[playerid][Bans]); } switch(reason) { case 0: format(string, sizeof(string), "%s has left the server. (Timeout)", PlayerName(playerid)); case 1: format(string, sizeof(string), "%s has left the server. (Left)", PlayerName(playerid)); case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", PlayerName(playerid)); } SendClientMessageToAll(COLOR_GREY, string); PlayerData[playerid][Logged] = 0; PlayerData[playerid][Muted] = 0; return false; } dcmd_kick(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { new tmp[256], idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /kick [playerid] [reason]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strrest(params,idx); new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string[256]; GetPlayerName(pid, pname, sizeof(pname)); GetPlayerName(playerid, pname2, sizeof(pname2)); tmp = strrest(params, idx); format(string, sizeof(string), "NOTICE: %s was kicked by Administrator %s. (REASON: %s)", pname, pname2, tmp); SendClientMessageToAll(COLOR_RED, string); PlayerData[pid][Kicks]++; Kick(pid); return true; } else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 1-3) command only."); } dcmd_ban(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new tmp[256], idx; tmp = strtok(params, idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /ban [playerid] [reason]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strrest(params,idx); new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string[256]; GetPlayerName(pid, pname, sizeof(pname)); GetPlayerName(playerid, pname2, sizeof(pname2)); tmp = strrest(params,idx); format(string, sizeof(string), "NOTICE: %s was banned by Administrator %s. (REASON: %s)", pname, pname2, tmp); SendClientMessageToAll(COLOR_RED, string); PlayerData[pid][Bans]++; Ban(pid); return true; } else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 2-3) command only."); } dcmd_setmoney(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 3) { new tmp[256], idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Usage: /setmoney [playerid] [amount]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid, COLOR_GREY, "Incorrect playerid."); return true; } tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Usage: /setmoney [playerid] [amount]"); return true; } new amount = strval(tmp), string[256], pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME]; GetPlayerName(pid, pname, sizeof(pname)); GetPlayerName(playerid, pname2, sizeof(pname2)); format(string, sizeof(string), "NOTICE: %s was given $%d by Administrator %s.", pname2, amount, pname); SendClientMessageToAll(COLOR_WHITE, string); GivePlayerMoney(pid, amount); return true; } else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 3) command only."); } dcmd_meto(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new idx,tmpit[256]; tmpit = strtok(params,idx); if(!strlen(tmpit)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /meto [playerid]"); return true; } new pid = strval(tmpit); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } new Float:playerpos[4],pint; GetPlayerPos(pid,playerpos[0],playerpos[1],playerpos[2]); GetPlayerFacingAngle(pid,playerpos[3]); pint = GetPlayerInterior(pid); if(playerpos[3] > 180.0) { playerpos[3]-=180.0; } else { playerpos[3]+=180.0; } GetXYBehindPlayer(pid,playerpos[0],playerpos[1],3.0); SetPlayerPos(playerid,playerpos[0],playerpos[1],playerpos[2]); SetPlayerFacingAngle(playerid,playerpos[3]); SetPlayerFacingAngle(playerid,playerpos[3]); SetPlayerInterior(playerid,pint); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only."); } dcmd_tome(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new idx,tmpit[256]; tmpit = strtok(params,idx); if(!strlen(tmpit)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /tome [playerid]"); return true; } new pid = strval(tmpit); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } new Float:playerpos[4],pint; GetPlayerPos(playerid,playerpos[0],playerpos[1],playerpos[2]); GetPlayerFacingAngle(playerid,playerpos[3]); pint = GetPlayerInterior(playerid); if(playerpos[3] > 180.0) { playerpos[3]-=180.0; } else { playerpos[3]+=180.0; } GetXYInFrontOfPlayer(playerid,playerpos[0],playerpos[1],3.0); SetPlayerPos(pid,playerpos[0],playerpos[1],playerpos[2]); SetPlayerFacingAngle(pid,playerpos[3]); SetPlayerInterior(pid,pint); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only."); } dcmd_ann(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { new tmp[256],idx; new string[256]; tmp = strtok(params,idx); if(!strlen(params)) return SendClientMessage(playerid,COLOR_GREY,"Usage: /ann [text]"); format(string, sizeof(string), "~r~%s: ~w~%s",PlayerName(playerid), tmp); GameTextForAll(string, 5000, 3); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only."); } dcmd_akill(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 3) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /akill [playerid]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); tmp = strrest(params,idx); format(string,sizeof(string),"%s was killed by Administrator %s.",pname2,pname); SendClientMessageToAll(COLOR_WHITE,string); SetPlayerHealth(pid,0.00); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 3) command only"); } dcmd_explode(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /explode [playerid]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strrest(params,idx); new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256],Float:X,Float:Y,Float:Z; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); GetPlayerName(playerid,pname2,24); GetPlayerName(pid,pname,24); if(!IsPlayerInAnyVehicle(pid)) GetPlayerPos(pid,X,Y,Z); else GetVehiclePos(GetPlayerVehicleID(pid),X,Y,Z); for(new i = 1; i <= 5; i++) CreateExplosion(X,Y,Z,3,0); format(string,sizeof(string),"%s has been exploded by Administrator %s.",pname2,pname); SendClientMessageToAll(COLOR_WHITE,string); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only"); } dcmd_mute(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /mute [playerid]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strrest(params,idx); new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); tmp = strrest(params,idx); format(string,sizeof(string),"%s has been muted by Administrator %s.",pname,pname2); SendClientMessageToAll(COLOR_WHITE,string); PlayerData[pid][Muted] = 1; return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only"); } dcmd_unmute(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /unmute [playerid]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strrest(params,idx); new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); format(string,sizeof(string),"%s has been voiced by Administrator %s.",pname,pname2); SendClientMessageToAll(COLOR_WHITE,string); PlayerData[pid][Muted] = 0; return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only"); } dcmd_freeze(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /freeze [playerid]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strrest(params,idx); new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); format(string,sizeof(string),"%s has been frozen by Administrator %s.",pname,pname2); SendClientMessageToAll(COLOR_WHITE,string); TogglePlayerControllable(pid,0); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only."); } dcmd_unfreeze(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { if(!strlen(params)) return SendClientMessage(playerid,COLOR_GREY,"Usage: /unfreeze [playerid]"); new pid; if(!IsNumeric(params)) pid = ReturnPlayerID(params); else pid = strval(params); if(IsPlayerConnected(pid) && pid != INVALID_PLAYER_ID) { new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); format(string,256,"%s has been unfreezed by Administrator %s.",pname,pname2); SendClientMessageToAll(COLOR_WHITE,string); return TogglePlayerControllable(pid,1); } else return SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only."); } dcmd_setadmin(playerid,params[]) { if(IsPlayerAdmin(playerid) || PlayerData[playerid][AdminLevel] == 3) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /setadmin [playerid] [level]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /setadmin [playerid] [level]"); return true; } new level = strval(tmp); if(level > 3) { SendClientMessage(playerid,COLOR_GREY,"Error: Maximum level - 3"); return true; } new string[256], pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); format(string,sizeof(string),"Congratulations, %s has made you an administrator (Level: %d)",pname2,level); SendClientMessage(pid,COLOR_PINK,string); PlayerData[pid][AdminLevel] = level; return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 3) command only."); } dcmd_sethp(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /sethp [playerid] [amount]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /sethp [playerid] [amount]"); return true; } new newhealth = strval(tmp),string[256],pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); format(string,sizeof(string),"Your health has been set to %d by Administrator %s.",newhealth, pname2); SendClientMessage(pid, COLOR_WHITE,string); SetPlayerHealth(pid,newhealth); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only."); } dcmd_setarmour(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /setarmour [playerid] [amount]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /setarmour [playerid] [amount]"); return true; } new newarmour = strval(tmp),string[256],pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); format(string,sizeof(string),"Your armour has been set to %d by Administrator %s.",newarmour, pname2); SendClientMessage(pid, COLOR_WHITE,string); SetPlayerArmour(pid,newarmour); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only."); } dcmd_whois(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 2) { new tmp[256],idx; tmp = strtok(params,idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /whois [playerid]"); return true; } new pid = strval(tmp); if(!IsPlayerConnected(pid)) { SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid."); return true; } new Float:armour, Float:health; new string[256], vehicleid, pname[MAX_PLAYER_NAME], IP[15], pname2[MAX_PLAYER_NAME]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); GetPlayerArmour(pid,armour); GetPlayerHealth(pid,health); GetPlayerIp(pid, IP, 15); vehicleid = GetVehicleModel(vehicleid); format(string,sizeof(string), "WHOIS: Player name: %s ",pname); SendClientMessage(playerid, COLOR_GREY,string); format(string,sizeof(string), "WHOIS: IP: %s || Ping: %d", IP, GetPlayerPing(pid)); SendClientMessage(playerid, COLOR_GREY,string); format(string,sizeof(string), "WHOIS: Skin ID: %d || Money: $%d",GetPlayerSkin(pid), GetPlayerMoney(pid)); SendClientMessage(playerid, COLOR_GREY,string); format(string,sizeof(string), "WHOIS: Armour: %0.0f || Health: %0.0f", armour, health); SendClientMessage(playerid, COLOR_GREY,string); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only."); } dcmd_achat(playerid,params[]) { if(PlayerData[playerid][AdminLevel] >= 1) { new tmp[256], string[256], idx, pname2[MAX_PLAYERS]; tmp = strtok(params, idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /achat [text]"); return true; } GetPlayerName(playerid,pname2,sizeof(pname2)); format(string, sizeof(string), "[ADMIN] %s: %s", pname2, params); AdminMessage(COLOR_PINK, string); return true; } else return SendClientMessage(playerid, COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only."); } dcmd_slap(playerid,params[]) { if(PlayerData[playerid][AdminLevel] == 3) { new tmp[256],idx; tmp = strtok(params,idx); new pid = strval(tmp); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Usage: /slap [playerid]"); return true; } if(IsPlayerConnected(pid)) { new Float:posX, Float:posY, Float:posZ, Float:health; new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string[256]; GetPlayerName(pid,pname,sizeof(pname)); GetPlayerName(playerid,pname2,sizeof(pname2)); GetPlayerHealth(pid, health); SetPlayerHealth(pid, health-5); GetPlayerPos(pid, posX, posY, posZ); SetPlayerPos(pid, posX, posY, posZ+5); SetCameraBehindPlayer(pid); format(string,sizeof(string),"%s has been slapped by Administrator %s.",pname,pname2); SendClientMessageToAll(COLOR_WHITE, string); return true; } else return SendClientMessage(playerid, COLOR_GREY, "Incorrect playerid."); } else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 3) command only."); } dcmd_register(playerid,params[]) { if(PlayerData[playerid][Logged]) return SendClientMessage(playerid,COLOR_WHITE,"Already logged in."); if(udb_Exists(PlayerName(playerid))) return SendClientMessage(playerid,COLOR_WHITE,"Account already exists, please use /login [password]."); if(strlen(params)==0) return SendClientMessage(playerid,COLOR_GREY,"Usage: /register [password]"); if(udb_Create(PlayerName(playerid),params)) return SendClientMessage(playerid,COLOR_WHITE,"Succesfully register. Please login now, using /login [password]"); return true; } dcmd_login(playerid,params[]) { if(PlayerData[playerid][Logged]) { SendClientMessage(playerid,COLOR_WHITE,"Already logged in."); return true; } if(!udb_Exists(PlayerName(playerid))) { SendClientMessage(playerid,COLOR_WHITE,"Account doesn't exist, please use /register [password]."); return true; } if(!strlen(params)) { SendClientMessage(playerid,COLOR_GREY,"Usage: /login password"); return true; } if(udb_CheckLogin(PlayerName(playerid),params)) { PlayerData[playerid][Logged] = 1; PlayerData[playerid][Kicks] = (dUserINT(PlayerName(playerid)).("PlayerKicks")); PlayerData[playerid][Bans] = (dUserINT(PlayerName(playerid)).("PlayerBans")); PlayerData[playerid][AdminLevel] = (dUserINT(PlayerName(playerid)).("AdminLevel")); SendClientMessage(playerid,COLOR_WHITE,"Successfully logged in!"); return true; } else return SendClientMessage(playerid,COLOR_WHITE,"Incorrect password!"); } dcmd_amsg(playerid,params[]) { if(PlayerData[playerid][AdminLevel] == 3) { new tmp[256], idx; new string[256]; tmp = strtok(params, idx); if(!strlen(params)) return SendClientMessage(playerid, COLOR_GREY,"Usage: /amsg [text]"); format(string, sizeof(string), "[Admin]: %s", params); SendClientMessageToAll(COLOR_LIGHTBLUE, string); return true; } else return SendClientMessage(playerid, COLOR_GREY,"NOTICE: This is an admin (level 3) command only."); } dcmd_gmx(playerid,params[]) { #pragma unused params if(PlayerData[playerid][AdminLevel] == 3) { GameModeExit(); return true; } else return SendClientMessage(playerid,COLOR_GREY, "NOTICE: This is an admin (level 3) command only."); } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(kick, 4, cmdtext); dcmd(ban, 3, cmdtext); dcmd(setmoney, 8, cmdtext); dcmd(meto, 4, cmdtext); dcmd(tome, 4, cmdtext); dcmd(akill, 5, cmdtext); dcmd(explode, 7, cmdtext); dcmd(ann,3,cmdtext); dcmd(freeze, 6, cmdtext); dcmd(unfreeze, 8, cmdtext); dcmd(mute, 4, cmdtext); dcmd(unmute, 6, cmdtext); dcmd(login, 5, cmdtext); dcmd(register, 8, cmdtext); dcmd(setadmin, 8, cmdtext); dcmd(sethp, 5, cmdtext); dcmd(setarmour, 9, cmdtext); dcmd(whois, 5, cmdtext); dcmd(achat, 5, cmdtext); dcmd(slap, 4, cmdtext); dcmd(gmx, 3, cmdtext); dcmd(amsg, 4, cmdtext); if(strcmp(cmdtext,"/ahelp", true) == 0) { if(PlayerData[playerid][AdminLevel] >= 1) { SendClientMessage(playerid,COLOR_LIGHTBLUE, " *|* Administrator Commands *|*"); SendClientMessage(playerid,COLOR_WHITE, "Level 1+: /kick /(un)freeze /(un)mute /ann /cchat /achat"); SendClientMessage(playerid,COLOR_WHITE, "Level 2+: /ban /tome /meto /explode /whois /setarmour /sethp"); SendClientMessage(playerid,COLOR_WHITE, "Lead (3): /setadmin /gmx /amsg /slap /akill"); return true; } else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only"); } if(strcmp(cmdtext, "/cchat", true) == 0) { if(PlayerData[playerid][AdminLevel] >= 1) { for(new i = 1; i <= 49; i++) { SendClientMessageToAll(0, "\n"); } SendClientMessageToAll(COLOR_SYSTEM, "The chat-screen was cleared by an admin."); return true; } else return SendClientMessage(playerid, COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only"); } return 0; } public AdminMessage(color,string[]) { for(new i = 0; i < GetMaxPlayers(); i++) { if(IsPlayerConnected(i)) { if(PlayerData[i][AdminLevel] >= 1) { SendClientMessage(i, color, string); } } } return true; } stock IsNumeric(const string[]) { for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return 0; return true; } stock PlayerName(playerid) { new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, MAX_PLAYER_NAME); return playername; } stock ReturnPlayerID(PlayerName[]) { for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) { new name[24]; GetPlayerName(i,name,24); if(strfind(name,PlayerName,true)!=-1) return i; } return INVALID_PLAYER_ID; } stock GetXYInFrontOfPlayer(playerid,&Float:x,&Float:y,Float:dis) { new Float:pos[3]; GetPlayerPos(playerid,pos[0],pos[1],pos[2]); GetPlayerFacingAngle(playerid,pos[2]); GetXYInFrontOfPoint(pos[0],pos[1],x,y,pos[2],dis); } stock GetXYInFrontOfPoint(Float:x,Float:y,&Float:x2,&Float:y2,Float:angle,Float:distance) { x2 = x + (distance * floatsin(-angle,degrees)); y2 = y + (distance * floatcos(-angle,degrees)); } stock strrest(const string[], index) { new length = strlen(string),offset = index,result[256]; while ((index < length) && ((index - offset) < (sizeof(result) - 1)) && (string[index] > '\r')) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } stock GetXYBehindPlayer(playerid,&Float:x,&Float:y,Float:dis) { new Float:pos[3]; GetPlayerPos(playerid,pos[0],pos[1],pos[2]); GetPlayerFacingAngle(playerid,pos[2]); GetXYBehindPoint(pos[0],pos[1],x,y,pos[2],dis); } stock GetXYBehindPoint(Float:x,Float:y,&Float:x2,&Float:y2,Float:angle,Float:distance) { x2 = x - (distance * floatsin(-angle,degrees)); y2 = y - (distance * floatcos(-angle,degrees)); }