06.04.2014, 20:03
Hello, I haven't scripted in like a year, and have rarely used mysql. I was making a vehicle system, and for some reason, my public function isn't b eing called or something. I tested it to make sure nothing was getting cut off in the query, but it's all fine. So, can someone look at this code and see if I did something wrong (which I obviously did)?
I posted the entire gamemode since it doesn't have much right now. The vehicle system is obvious (VehicleCheck function, VehicleInfo enumerator, etc).
pawn Код:
/*
Author: venom.
Script version: v1.3
*/
//
#include <a_samp>
#include <a_mysql>
#include <zcmd>
#include <sscanf2>
#include <streamer>
#include <crashdetect>
//
#define MYSQL_HOST "localhost"
#define MYSQL_USER "root"
#define MYSQL_BASE "samp_db"
#define MYSQL_PASS ""
//
#define NEW_SKIN 299
//
#define MAX_HOUSES 200
#undef MAX_VEHICLES
#define MAX_VEHICLES 400
//
#define SERVER_NAME "Unknown RP"
#define COLOR_LIGHTRED 0xCC0404C8
#define COLOR_LIGHTBLUE 0x0080FFC8
#define COLOR_WHITE 0xFFFFFFC8
#define COLOR_GBLUE 0x8080FFC8
#define COLOR_ADMIN 0x008040C8
#define COLOR_RANGE1 0xBBBBBBC8
#define COLOR_RANGE2 0x909090C8
#define COLOR_PURPLE 0xFF80FFC8
//
main()
{
print("\n");
print(" Gamemode made by Steven ");
print("\n");
}
//
#define LOGIN_DIALOG 400
#define REGISTER_DIALOG 800
#define DIALOG_BUYCAR 500
#define DIALOG_SURE 501
//
new PlayerText:buycarpreview;
new buycarid;
//
enum pInfo
{
pSQLID,
pName[24],
pPass[24],
pAdmin,
pBanned,
pPosX,
pPosY,
pPosZ,
pAngle,
pSkin,
pFaction,
pDivision,
pRank
}
new PlayerInfo[MAX_PLAYERS][pInfo];
//
enum vInfo
{
vID,
vModel,
vOwner[24],
vColor[3],
vPos[5],
vLocked
}
new VehicleInfo[MAX_VEHICLES][vInfo];
new bool:vCreated[MAX_VEHICLES];
//
new sqldb, query[1000];
//
stock GetName(playerid)
{
new AccName[MAX_PLAYER_NAME];
GetPlayerName(playerid, AccName, sizeof(AccName));
return AccName;
}
//
stock ClearChat()
{
new lines = 20;
for(new i = 1; i != lines; i++) SendClientMessageToAll(COLOR_WHITE, "");
return 1;
}
//
stock LoadPlayer(playerid)
{
new temp[24];
cache_get_row(0, 0, temp); PlayerInfo[playerid][pSQLID] = strval(temp);
cache_get_row(0, 1, temp); PlayerInfo[playerid][pName] = temp;
cache_get_row(0, 2, temp); PlayerInfo[playerid][pPass] = temp;
cache_get_row(0, 3, temp); PlayerInfo[playerid][pAdmin] = strval(temp);
cache_get_row(0, 4, temp); PlayerInfo[playerid][pBanned] = strval(temp);
cache_get_row(0, 5, temp); PlayerInfo[playerid][pPosX] = strval(temp);
cache_get_row(0, 6, temp); PlayerInfo[playerid][pPosY] = strval(temp);
cache_get_row(0, 7, temp); PlayerInfo[playerid][pPosZ] = strval(temp);
cache_get_row(0, 8, temp); PlayerInfo[playerid][pAngle] = strval(temp);
cache_get_row(0, 9, temp); PlayerInfo[playerid][pSkin] = strval(temp);
cache_get_row(0, 10, temp); PlayerInfo[playerid][pFaction] = strval(temp);
cache_get_row(0, 11, temp); PlayerInfo[playerid][pDivision] = strval(temp);
cache_get_row(0, 12, temp); PlayerInfo[playerid][pRank] = strval(temp);
return 1;
}
//
stock SavePlayer(playerid)
{
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET adminlevel ='%d' WHERE accname ='%e'", PlayerInfo[playerid][pAdmin], GetName(playerid));
mysql_query(sqldb, query);
//
new Float: x, Float: y, Float: z, Float: angle;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET posx ='%f' WHERE accname ='%e'", x, GetName(playerid));
mysql_query(sqldb, query);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET posy ='%f' WHERE accname ='%e'", y, GetName(playerid));
mysql_query(sqldb, query);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET posz ='%f' WHERE accname ='%e'", z, GetName(playerid));
mysql_query(sqldb, query);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET angle ='%f' WHERE accname ='%e'", angle, GetName(playerid));
mysql_query(sqldb, query);
//
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET skin ='%d' WHERE accname ='%e'", GetPlayerSkin(playerid), GetName(playerid));
mysql_query(sqldb, query);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET faction ='%d' WHERE accname ='%e'", PlayerInfo[playerid][pFaction], GetName(playerid));
mysql_query(sqldb, query);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET division ='%d' WHERE accname ='%e'", PlayerInfo[playerid][pDivision], GetName(playerid));
mysql_query(sqldb, query);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET rank ='%d' WHERE accname ='%e'", PlayerInfo[playerid][pRank], GetName(playerid));
mysql_query(sqldb, query);
return 1;
}
//
stock GetRankName(faction, rank)
{
new string[15];
if(faction == 1)
{
if(rank < 0) format(string, sizeof(string), "N/A");
if(rank == 0) format(string, sizeof(string), "Cadet");
if(rank == 1) format(string, sizeof(string), "Officer");
if(rank == 2) format(string, sizeof(string), "Sr. Officer");
if(rank == 3) format(string, sizeof(string), "Sergeant");
if(rank == 4) format(string, sizeof(string), "Captain");
if(rank == 5) format(string, sizeof(string), "Deputy Chief");
if(rank == 6) format(string, sizeof(string), "Chief");
else format(string, sizeof(string), "N/A");
}
return string;
}
stock GetDivisionName(faction, division)
{
new string[25];
if(division == 1) format(string, sizeof(string), "Training and Recruitment");
else format(string, sizeof(string), "N/A");
return string;
}
stock GetAdminRank(level)
{
new string[25];
if(level <= 0) format(string, sizeof(string), "N/A");
if(level == 1) format(string, sizeof(string), "Server Moderator");
if(level == 2) format(string, sizeof(string), "Administrator");
if(level == 3) format(string, sizeof(string), "Senior Administrator");
if(level == 4) format(string, sizeof(string), "Head Administrator");
if(level == 5) format(string, sizeof(string), "Executive Administrator");
else format(string, sizeof(string), "N/A");
return string;
}
stock ProxDetector(playerid, col1, col2, col3, proxstring[])
{
for(new i; i != MAX_PLAYERS; i++)
{
new Float: x, Float: y, Float: z;
GetPlayerPos(playerid, x, y, z);
if(IsPlayerInRangeOfPoint(i, 2.5, x, y, z))
{
SendClientMessage(i, col1, proxstring);
}
else if(IsPlayerInRangeOfPoint(i, 5.0, x, y, z))
{
SendClientMessage(i, col2, proxstring);
}
else if(IsPlayerInRangeOfPoint(i, 7.5, x, y, z))
{
SendClientMessage(i, col3, proxstring);
}
}
return 1;
}
stock VehicleGetFreeSlot()
{
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(!vCreated[i]) return i;
}
return -1;
}
//
forward InsertPlayer(playerid);
public InsertPlayer(playerid)
{
PlayerInfo[playerid][pSQLID] = cache_insert_id(sqldb);
return 1;
}
//
forward LogRegCheck(playerid);
public LogRegCheck(playerid)
{
new rows = mysql_num_rows();
if(!rows)
{
ClearChat();
ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Register", "Welcome to "SERVER_NAME"\nThis account is not created, please register.", "Register", "Disconnect");
}
if(rows == 1)
{
LoadPlayer(playerid);
if(PlayerInfo[playerid][pBanned] == 1)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "This account is banned");
Kick(playerid);
}
else
{
ClearChat();
ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Login", "Welcome to "SERVER_NAME"\nThis account is created, please login.", "Login", "Disconnect");
}
}
return 1;
}
//
forward VehicleCheck(playerid);
public VehicleCheck(playerid)
{
new rows = mysql_num_rows();
new vehicleid = VehicleGetFreeSlot();
if(!rows) return 1;
for(new i = 0; i < rows; i++)
{
new temp[24];
cache_get_row(i, 0, temp); VehicleInfo[vehicleid][vModel] = strval(temp);
cache_get_row(i, 1, temp); VehicleInfo[vehicleid][vPos][0] = strval(temp);
cache_get_row(i, 2, temp); VehicleInfo[vehicleid][vPos][1] = strval(temp);
cache_get_row(i, 3, temp); VehicleInfo[vehicleid][vPos][2] = strval(temp);
cache_get_row(i, 4, temp); VehicleInfo[vehicleid][vPos][3] = strval(temp);
cache_get_row(i, 5, temp); VehicleInfo[vehicleid][vOwner] = temp;
cache_get_row(i, 6, temp); VehicleInfo[vehicleid][vColor][0] = strval(temp);
cache_get_row(i, 7, temp); VehicleInfo[vehicleid][vColor][1] = strval(temp);
cache_get_row(i, 8, temp); VehicleInfo[vehicleid][vLocked] = strval(temp);
VehicleInfo[vehicleid][vID] = CreateVehicle(VehicleInfo[vehicleid][vModel], VehicleInfo[vehicleid][vPos][0], VehicleInfo[vehicleid][vPos][1], VehicleInfo[vehicleid][vPos][2], VehicleInfo[vehicleid][vPos][3], VehicleInfo[vehicleid][vColor][0], VehicleInfo[vehicleid][vColor][1], -1);
vCreated[vehicleid] = true;
format(query, sizeof(query), "%d || %f || %f || %f || %f || %s || %d || %d || %d", VehicleInfo[vehicleid][vModel], VehicleInfo[vehicleid][vPos][0], VehicleInfo[vehicleid][vPos][1], VehicleInfo[vehicleid][vPos][2], VehicleInfo[vehicleid][vPos][3], VehicleInfo[vehicleid][vOwner], VehicleInfo[vehicleid][vColor][0], VehicleInfo[vehicleid][vColor][1], VehicleInfo[vehicleid][vLocked]);
print(query);
}
return 1;
}
//
forward BanExCB(playerid, giveplayername[], reason[]);
public BanExCB(playerid, giveplayername[], reason[])
{
new rows = mysql_num_rows();
if(!rows)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " That player doesn't exists!");
}
else if(rows == 1)
{
if(cache_get_row_int(0, 4, sqldb) == 1) return SendClientMessage(playerid, COLOR_LIGHTRED, " That player is allready banned!");
else if(cache_get_row_int(0, 4, sqldb) == 0)
{
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET banvar ='1' WHERE accname ='%e'", giveplayername);
mysql_tquery(sqldb, query);
new string[128];
format(string, sizeof(string), " AdmCmd: Admin %s banned(Offline) %s Reason: %s", GetName(playerid), giveplayername, reason);
SendClientMessageToAll(COLOR_LIGHTRED, string);
printf(string);
}
}
return 1;
}
//
forward UnbanPlayer(playerid, giveplayername[]);
public UnbanPlayer(playerid, giveplayername[])
{
new rows = mysql_num_rows();
if(!rows)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "That player doesn't exists in server's database!");
}
if(rows == 1)
{
new temp[24];
cache_get_row(0, 4, temp);
if(strval(temp) == 1)
{
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET banvar ='0' WHERE accname ='%e'", giveplayername);
mysql_tquery(sqldb, query);
new string[64];
format(string, sizeof(string), " AdmCmd: Admin %s unbanned %s!", GetName(playerid), giveplayername);
printf(string);
format(string, sizeof(string), " You have unbanned %s!", giveplayername);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
else if(strval(temp) == 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " That player isn't banned!");
}
}
return 1;
}
//
forward TimerKick(playerid);
public TimerKick(playerid)
{
Kick(playerid);
return 1;
}
//
public OnGameModeInit()
{
sqldb = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_BASE, MYSQL_PASS);
SetGameModeText("URP v0.1");
mysql_debug(1);
CreateDynamicPickup(1239, 1, 2131.7590, -1151.3231, 24.0595, -1, -1, -1, 100.0);
CreateDynamic3DTextLabel("Jefferson Dealership\nType /buycar to buy a car", 0xFFFF00FF, 2131.7590, -1151.3231, 24.0595, 50, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 100.0);
return 1;
}
//
public OnGameModeExit()
{
mysql_close(sqldb);
return 1;
}
//
public OnPlayerConnect(playerid)
{
mysql_format(sqldb, query, sizeof(query), "SELECT * FROM accounts WHERE accname = '%e' LIMIT 0,1", GetName(playerid));
mysql_tquery(sqldb, query, "LogRegCheck", "i", playerid);
return 1;
}
//
public OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);
return 1;
}
//
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success) return SendClientMessage(playerid, COLOR_LIGHTRED, " You have entered an unknown command! Use /help to see a list of available commands!");
return 1;
}
//
public OnPlayerText(playerid, text[])
{
new string[128];
format(string, sizeof(string), " %s says: %s", GetName(playerid), text);
ProxDetector(playerid, COLOR_WHITE, COLOR_RANGE1, COLOR_RANGE2, string);
return 0;
}
//
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == LOGIN_DIALOG)
{
if(!response) return Kick(playerid);
if(strcmp(inputtext, PlayerInfo[playerid][pPass], true) == 0)
{
SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPosX], PlayerInfo[playerid][pPosY], PlayerInfo[playerid][pPosZ], PlayerInfo[playerid][pAngle], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
new string[64];
format(string, sizeof(string), "{8080FF}UnknownRP: {FFFFFF}Welcome back, %s!", GetName(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
mysql_format(sqldb, query, sizeof(query), "SELECT * FROM vehicles WHERE owner = '%e' LIMIT 2", GetName(playerid));
mysql_tquery(sqldb, query, "VehicleCheck", "i", playerid);
}
else
{
ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_PASSWORD, "Login", "Wrong password! Try again!", "Login", "Disconnect");
}
return 1;
}
if(dialogid == REGISTER_DIALOG)
{
if(!response) return Kick(playerid);
if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Register", "Password should be from 8 to 24 charachters long!", "Register", "Disconnect");
mysql_format(sqldb, query, sizeof(query), "INSERT INTO accounts (accname, accpass) VALUES ('%e', '%e')", GetName(playerid), inputtext);
mysql_tquery(sqldb, query, "InsertPlayer", "i", playerid);
SetSpawnInfo(playerid, 0, NEW_SKIN, 2101.7244, -1366.6266, 23.9844, 182.4922, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
new string[64];
format(string, sizeof(string), "{8080FF}UnknownRP: {FFFFFF}Welcome, %s!", GetName(playerid));
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
if(dialogid == DIALOG_BUYCAR)
{
if(!response) return 0;
buycarpreview = CreatePlayerTextDraw(playerid, 320.0, 240.0, "_");
PlayerTextDrawFont(playerid, buycarpreview, TEXT_DRAW_FONT_MODEL_PREVIEW);
PlayerTextDrawUseBox(playerid, buycarpreview, 1);
PlayerTextDrawBoxColor(playerid, buycarpreview, 0x000000FF);
PlayerTextDrawTextSize(playerid, buycarpreview, 40.0, 40.0);
switch(listitem)
{
case 0: buycarid = 400;
case 1: buycarid = 401;
case 2: buycarid = 405;
case 3: buycarid = 412;
}
ShowPlayerDialog(playerid, DIALOG_SURE, DIALOG_STYLE_MSGBOX, "Vehicle", "Are you sure you want to buy this vehicle?\nPlease search the name of the vehicle online to see what it looks like", "Yes", "No");
return 1;
}
if(dialogid == DIALOG_SURE)
{
if(!response) return 0;
//Take Money here
mysql_format(sqldb, query, sizeof(query), "INSERT INTO vehicles (model, posx, posy, posz, posa, owner, color1, color2, locked) VALUES ('%d', '%f', '%f', '%f', '%f', '%e', '%d', '%d', '%d')", buycarid, 2126.5962, -1142.9784, 24.8155, 4.8569, GetName(playerid), 0, 0, 1);
mysql_tquery(sqldb, query);
print(query);
mysql_format(sqldb, query, sizeof(query), "SELECT * FROM vehicles WHERE owner = '%e' LIMIT 2", GetName(playerid));
mysql_tquery(sqldb, query, "VehicleCheck", "i", playerid);
return 1;
}
return 0;
}
//
command(help, playerid, params[])
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Help: Commands");
SendClientMessage(playerid, COLOR_LIGHTRED, "Chat: /b, /l(ocal), /me, /do");
return 1;
}
command(buycar, playerid, params[])
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, 2131.7590, -1151.3231, 24.0595))
{
ShowPlayerDialog(playerid, DIALOG_BUYCAR, DIALOG_STYLE_LIST, "Vehicles", "Landstalker - $15,000\nBravura - $17,000\nSentinal - $16,000\nVoodoo - $20,000\n", "Buy", "Cancel");
}
else return SendClientMessage(playerid, COLOR_LIGHTRED, "You are not in range of a dealership!");
return 1;
}
command(giverank, playerid, params[])
{
if(PlayerInfo[playerid][pFaction] >= 5 || PlayerInfo[playerid][pDivision] == 1)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
}
else
{
new giveplayerid, rank, string[128];
if(sscanf(params, "ui", giveplayerid, rank)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /giverank [playerid] [rank]");
if(PlayerInfo[playerid][pFaction] != PlayerInfo[giveplayerid][pFaction]) return SendClientMessage(playerid, COLOR_LIGHTRED, "You are not in the same faction as that person!");
if(rank == PlayerInfo[giveplayerid][pRank]) return SendClientMessage(playerid, COLOR_LIGHTRED, "That person is already that rank!");
if(PlayerInfo[playerid][pFaction] <= PlayerInfo[giveplayerid][pFaction]) return SendClientMessage(playerid, COLOR_LIGHTRED, "You are lower than or the same rank as that person!");
else if(rank < PlayerInfo[giveplayerid][pRank])
{
format(string, sizeof(string), "You have demoted %s to %s", GetName(giveplayerid), GetRankName(PlayerInfo[playerid][pFaction], rank));
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "You have been demoted to %s by %s", GetRankName(PlayerInfo[playerid][pFaction], rank), GetName(playerid));
SendClientMessage(giveplayerid, COLOR_WHITE, string);
}
else if(rank > PlayerInfo[giveplayerid][pRank])
{
format(string, sizeof(string), "You have promoted %s to %s", GetName(giveplayerid), GetRankName(PlayerInfo[playerid][pFaction], rank));
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "You have been promoted to %s by %s", GetRankName(PlayerInfo[playerid][pFaction], rank), GetName(playerid));
SendClientMessage(giveplayerid, COLOR_WHITE, string);
}
PlayerInfo[giveplayerid][pRank] = rank;
}
return 1;
}
command(setdivision, playerid, params[])
{
if(PlayerInfo[playerid][pFaction] >= 5)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
}
else
{
new giveplayerid, division, string[128];
if(sscanf(params, "ui", giveplayerid, division))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /setdiv(ision) [playerid] [division]");
SendClientMessage(playerid, COLOR_WHITE, "Available Divisions: [1] TnR");
return 1;
}
if(PlayerInfo[playerid][pFaction] != PlayerInfo[giveplayerid][pFaction]) return SendClientMessage(playerid, COLOR_LIGHTRED, "You are not in the same faction as that person!");
if(division == PlayerInfo[giveplayerid][pDivision]) return SendClientMessage(playerid, COLOR_LIGHTRED, "That person is already in that division!");
format(string, sizeof(string), "You've put %s in the %s division", GetName(giveplayerid), GetDivisionName(PlayerInfo[playerid][pFaction], division));
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "You've been put in the %s division by %s", GetDivisionName(PlayerInfo[playerid][pFaction], division), GetName(playerid));
SendClientMessage(giveplayerid, COLOR_WHITE, string);
PlayerInfo[giveplayerid][pDivision] = division;
}
return 1;
}
command(makeadmin, playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] != 5)
{
return 0;
}
else
{
new level, giveplayerid, string[128];
if(sscanf(params, "ui", giveplayerid, level)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /makeadmin [playerid] [level]");
format(string, sizeof(string), " You have made %s a level %d admin!", GetName(giveplayerid), level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " %s promoted you to level %d admin!", GetName(playerid), level);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET adminlevel = '%d' WHERE accname = '%e'", level, GetName(giveplayerid));
mysql_tquery(sqldb, query);
PlayerInfo[playerid][pAdmin] = level;
}
return 1;
}
//
command(kick, playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] != 1)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
}
else
{
new giveplayerid, reason[32], kickstring[128];
if(sscanf(params, "us[32]", giveplayerid, reason)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE: /kick [playerid] [reason]");
format(kickstring, sizeof(kickstring), " AdmCmd: Admin %s kicked %s, Reason: %s", GetName(playerid), GetName(giveplayerid), reason);
SendClientMessageToAll(COLOR_LIGHTRED, kickstring);
printf(kickstring);
Kick(giveplayerid);
}
return 1;
}
//
command(ban, playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] != 2)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
}
else
{
new giveplayerid, reason[32], banstring[128];
if(sscanf(params, "us[32]", giveplayerid, reason)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE: /ban [playerid] [reason]");
if(!IsPlayerConnected(giveplayerid))
{
SendClientMessage(playerid, COLOR_LIGHTRED, " That player is not connected! Use /banex!");
}
else
{
format(banstring, sizeof(banstring), " AdmCmd: Admin %s banned %s, Reason: %s", GetName(playerid), GetName(giveplayerid), reason);
SendClientMessageToAll(COLOR_LIGHTRED, banstring);
printf(banstring);
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET banvar ='1' WHERE accname ='%e'", GetName(giveplayerid));
mysql_tquery(sqldb, query);
}
}
return 1;
}
//
command(banex, playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] != 4)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
}
else
{
new giveplayername[24], reason[32];
if(sscanf(params, "s[24]s[32]", giveplayername, reason)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE: /banex [player name] [reason]");
mysql_format(sqldb, query, sizeof(query), "SELECT * FROM accounts WHERE accname ='%e' LIMIT 0, 1", giveplayername);
mysql_tquery(sqldb, query, "BanExCB", "iss", playerid, giveplayername, reason);
}
return 1;
}
//
command(unban, playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] != 3)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
}
else
{
new giveplayername[24];
if(sscanf(params, "s[24]", giveplayername)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE: /unban [player name]");
mysql_format(sqldb, query, sizeof(query), "SELECT * FROM accounts WHERE accname ='%e'", giveplayername);
mysql_tquery(sqldb, query, "UnbanPlayer", "is", playerid, giveplayername);
}
return 1;
}
//
command(admin, playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, " You are not allowed to use this command!");
else
{
new string[128],
level = PlayerInfo[playerid][pAdmin];
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE: /(a)dmin [chat]");
format(string, sizeof(string), " %d Admin %s: %s", GetAdminRank(level), GetName(playerid), params);
for(new i; i != MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pAdmin] != 0)
{
SendClientMessage(i, COLOR_ADMIN, string);
}
else
{
// Nothing
}
}
}
return 1;
}
//
command(a, playerid, params[])
{
return cmd_admin(playerid, params);
}
//
CMD:changepassword(playerid, params[])
{
new oldpw[24], newpw[24];
if(sscanf(params, "s[24]s[24]", oldpw, newpw)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE: /changepassword [current pw] [new pw]");
if(strcmp(oldpw, PlayerInfo[playerid][pPass], true) == 0)
{
if(strlen(newpw) > 24 || strlen(newpw) < 8)
{
SendClientMessage(playerid, COLOR_LIGHTRED, " New password must be between 8 and 24 charachters long!");
}
else
{
mysql_format(sqldb, query, sizeof(query), "UPDATE accounts SET accpass = '%e' WHERE accname = '%e'", newpw, GetName(playerid));
mysql_tquery(sqldb, query);
SendClientMessage(playerid, COLOR_LIGHTBLUE, " You have succesfully changed your password! Please relog to continue!");
SetTimerEx("TimerKick", 1000, false, "i", playerid);
}
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, " Wrong current password!");
}
return 1;
}
//
CMD:me(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE:/me [emote]");
new string[128];
format(string, sizeof(string), " * %s %s", GetName(playerid), params);
ProxDetector(playerid, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, string);
return 1;
}
//
CMD:do(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE:/do [action]");
new string[128];
format(string, sizeof(string), " * %s (( %s ))", params, GetName(playerid));
ProxDetector(playerid, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, string);
return 1;
}
//
CMD:b(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE:/b [OOC Chat]");
new string[128];
format(string, sizeof(string), " (( %s [%d]: %s ))", GetName(playerid), playerid, params);
ProxDetector(playerid, COLOR_WHITE, COLOR_RANGE1, COLOR_RANGE2, string);
return 1;
}
//
CMD:local(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE, " USAGE:/(l)ocal [IC Chat]");
new string[128];
format(string, sizeof(string), " %s says: %s", GetName(playerid), params);
ProxDetector(playerid, COLOR_WHITE, COLOR_RANGE1, COLOR_RANGE2, string);
return 1;
}
//
CMD:l(playerid, params[])
{
return cmd_local(playerid, params);
}