PHP код:
Код
#include <a_samp>
#include <a_mysql>
#include <sscanf2>
#include YSI\y_commands
#include YSI\y_master
/////////////////////////////////////////////////new/////////////////////////////////////////////////////////////////////////
new connection, Query[100], str[128];
//////////////////////////////////////////////enum/////////////////////////////////////////////////////////////////////
main();
enum pInfo
{
pAdmin,
pKills,
pDeath
};
new PlayerInfo[MAX_PLAYERS] [pInfo];
///////////////////////////////////////////////forward//////////////////////////////////////////////////////////////////////
forward Register(playerid);
forward LoginPlayer(playerid, password);
forward OnQueryFinish(qQuery[]);
public OnGameModeInit()
{
connection = mysql_connect("localhost","root","test","");
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
mysql_format(connection,Query,sizeof(Query),"SELECT * FROM `users` WHERE `username` = '%e'", plname(playerid));
mysql_function_query(connection,Query,false,"Register", "d", playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
mysql_format(connection, Query, sizeof(Query), "UPDATE `users` SET `money` = %d, `admin` = %d, `kills` = %d, `death` = %d", GetPlayerMoney(playerid), PlayerInfo[pInfo] [pAdmin], PlayerInfo[pInfo] [pKills], PlayerInfo[pInfo] [pDeath]);
mysql_function_query(connection, Query, false, "OnQueryFinish", "s" ,Query);
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid == INVALID_PLAYER_ID)
{
PlayerInfo[playerid] [pKills] ++;
PlayerInfo[playerid] [pDeath] ++;
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case 0:
{
if (!response) return Kick(playerid);
mysql_format(connection, Query, sizeof(Query), "SELECT * FROM `users` WHERE `username` = '%e' AND `password` = '%e'", plname(playerid), inputtext);
mysql_function_query(connection, Query, false, "LoginPlayer", "ds", playerid, inputtext);
}
case 1:
{
if (!response) return Kick(playerid);
new IP[50];
GetPlayerIp(playerid, IP, sizeof(IP));
mysql_format(connection, Query, sizeof(Query), "INSERT INTO `users` (`username`, `password`, `money`,`kills`, `death`, `admin`, `ip`) VALUES ('%e', '%e', '10000', '0', '0', '0', '0', '%e')", plname(playerid), inputtext, IP);
mysql_function_query(connection, Query, false, "OnQueryFinish", "s", Query);
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
///////////////////////////////////////////////////stock/////////////////////////////////////////////////////////////////////
stock plname(playerid)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
return pname;
}
////////////////////////////////////////////////////public///////////////////////////////////////////////////////////////////
public LoginPlayer(playerid, password)
{
mysql_store_result(connection);
if(mysql_num_rows(connection) == 1)
{
if (mysql_retrieve_row(connection))
{
mysql_fetch_field_row(str, "Money"); GivePlayerMoney(playerid, strval(str));
mysql_fetch_field_row(str, "Admin"); PlayerInfo[playerid] [pAdmin] = (strval(str));
mysql_fetch_field_row(str, "Death"); PlayerInfo[playerid] [pDeath] = (strval(str));
mysql_fetch_field_row(str, "Kill"); PlayerInfo[playerid] [pKills] = (strval(str));
SendClientMessage(playerid, -1, "Пароль верный");
}
}
else
{
SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid,"WrongPassword") + 1);
if (GetPVarInt(playerid, "WrongPassword") == 4)
{
SendClientMessage(playerid, -1, "Вы ввели 4 раза неправильно пароль!");
return Kick(playerid);
}
format(str, sizeof(str), "Ник %s Обнаружен в системе", plname(playerid));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Авторизация", str, "ок", "отмена");
SendClientMessage(playerid, -1, "Пароль неверный");
}
mysql_free_result(connection);
return 1;
}
public Register(playerid)
{
mysql_store_result(connection);
if( mysql_num_rows(connection) == 1)
{
format(str, sizeof(str), "Здравствуйте %s Введите ваш пароль", plname(playerid));
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PASSWORD, "Авторизация", str, "ок", "отмена");
}
else
{
format(str, sizeof(str), "Здравствуйте %s Придумайте пароль", plname(playerid));
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Регистрация", str, "ок", "отмена");
}
mysql_free_result(connection);
return 1;
}
public OnQueryFinish(qQuery[])
{
printf("Query %s!", qQuery);
return 1;
}