dimazhelek
Специалист
когда я узнал о ORM функциях в мускуле и что они на много оптимизирование обычных функций мускула я решил поставить их к себе но проблемка, их сложно понять кто разбирается в ORM-ах помогите пожалуйста) такая проблемка вроде мод подключил все правильно но когда создается акк, создается только ник и все другие параметры равны 0
версия mysql r8 r34 можете поставить этот код себе и проверить)
как видите ормы действительно оптимизированее но чо то не канает
PHP:
#include <a_samp>
#include <a_mysql>
#define DIALOG_LOGIN 100
#define DIALOG_REGISTER 101
new SQL = -1;
enum E_PLAYER {
ORM:ORM_ID,
ID,
Name[MAX_PLAYER_NAME+1],
Money,
Level,
};
new Player[MAX_PLAYERS][E_PLAYER];
main(){}
public OnGameModeInit()
{
mysql_log();
SQL = mysql_connect("127.0.0.1", "root", "acc", "");
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)
{
GetPlayerName(playerid, Player[playerid][Name], MAX_PLAYER_NAME);
new ORM:ormid = Player[playerid][ORM_ID] = orm_create("players");
orm_addvar_int(ormid, Player[playerid][ID], "id");
orm_addvar_string(ormid, Player[playerid][Name], MAX_PLAYER_NAME+1, "Name");
orm_addvar_int(ormid, Player[playerid][Money], "money");
orm_addvar_int(ormid, Player[playerid][Level], "level");
orm_setkey(ormid, "Name");
orm_select(ormid, "OnPlayerDataLoad", "d", playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(Player[playerid][ID] != 0) {
orm_update(Player[playerid][ORM_ID]);
}
orm_destroy(Player[playerid][ORM_ID]);
for(new E_PLAYER:e; e < E_PLAYER; ++e)
Player[playerid][e] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
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)
{
SetPlayerScore(playerid,Player[playerid][Level]);
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 DIALOG_REGISTER:
{
orm_insert(Player[playerid][ORM_ID], "OnPlayerRegister", "d", playerid);
}
}
return true;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
forward OnPlayerDataLoad(playerid);
public OnPlayerDataLoad(playerid)
{
switch(orm_errno(Player[playerid][ORM_ID]))
{
case ERROR_OK: {
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Àâòîðèçàöèÿ", "Ââåäèòå ïàðîëü", "Àâòîðèçàöèÿ", "Âûéòè");
}
case ERROR_NO_DATA: {
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Ðåãèñòðàöèÿ", "Ââåäèòå áóäóùèé ïàðîëü:", "Ðåãèñòðàöèÿ", "Âûéòè");
}
}
orm_setkey(Player[playerid][ORM_ID], "ID");
return 1;
}
как видите ормы действительно оптимизированее но чо то не канает
Последнее редактирование:
