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.
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.
Код:
/*
________________________________________________________________________________
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));
}
Wow man, that's a great script.
it took me 4 hours.