enum admins
{
ORM: Lvl, //ЛВЛ админки
Nick,
ORM: Report,// О
ORM: Kick, // Киков
ORM: Jail, // Игроков посаженно в тюрьму
ORM: Mute, // Выдано мутов
ORM: Time, // Время онлайн
ORM: Vigovor, // Выговор
ORM: Reasons1, // Предупреждения...
ORM: Reasons2,
ORM: Reasons3,
Skype // Skype Админа
}
OnPlayerDisconnect
if(pStats[playerid][pAdmin] > 0)
{
format(query, sizeof(query), "UPDATE "TABLE_ADMINS" SET Report = '%i',Kick = '%i',Jail = '%i', Mute = '%i', Time = '%i', Vigovor = '%i' WHERE `Nick` = '%s'",astats[0][playerid],astats[1][playerid],astats[2][playerid],astats[3][playerid],astats[4][playerid],pStats[playerid][pVigovor],pStats[playerid][pName]);
mysql_query(query);
if(pStats[playerid][pAdmin] < 7)
{
new adminoff[128];
format(adminoff, 128, "[A] %s[%d] вышел из игры",pStats[playerid][pName],playerid);
SendAdminMessage(COLOR_GREY, adminoff);
}
}
CMD:delacc(playerid,params[])
{
if(GetPVarInt(playerid,"dellac") > gettime())return SendClientMessage(playerid,COLOR_GREY,"Удалять аккаунты можно раз в 120 секунд.");
if(pStats[playerid][pAdmin] < 7|| DostupAdmin[playerid] == false) return true;
new deletenick[MAX_PLAYER_NAME], aid;
if(sscanf(params,"s[24]",deletenick)) return SCM(playerid, COLOR_WHITE, "Введите: /delacc [ник]");
sscanf(deletenick,"u",aid);
if(IsPlayerConnected(aid)) return SCM(playerid, COLOR_WHITE,"Ошибка: Данный игрок в сети. Введите /skick");
if(strcmp(deletenick, "Johhny", true) == 0) return 0;
addlog(playerid,playerid,"/delacc",0,5);
format(query, sizeof(query), "DELETE FROM `users` WHERE `Nick` = '%s'", deletenick);
mysql_query(query);
format(query, sizeof(query), "DELETE FROM `admins` WHERE `Nick` = '%s'", deletenick);
mysql_query(query);
format(nsa,sizeof(nsa),"[A] %s[%d] удалил аккаунт игрока %s",pStats[playerid][pName],playerid, deletenick);
SendAdminMessage(0xFF0000FF, nsa);
SetPVarInt(playerid,"dellac",gettime()+120);
return 1;
}
format(query, sizeof(query), "UPDATE "TABLE_ADMINS" SET Report = '%i',Kick = '%i',Jail = '%i', Mute = '%i', Time = '%i', Vigovor = '%i' WHERE `Nick` = '%s'",astats[0][playerid],astats[1][playerid],astats[2][playerid],astats[3][playerid],astats[4][playerid],pStats[playerid][pVigovor],pStats[playerid][pName]);
|
'ORM:' — это ID созданного сценария, зачем ты ко всем int добавил его?
В ORM нет форматных запросов, там такие запросы: orm_select orm_insert orm_delete P.S. Судя по тому, что в enum у тебя даже 'Nick' как int, то лучше посмотри чужие работы. Поучись, чем сразу делать что-то. |
|
Это был лишь пример. Про 'Nick' я знаю что для него нужно использовать Varchar(24)(Спасибо моему учителю e.G.)
Я лишь хотел оптимизировать эту систему. Используя ORM функций. |
|
Можете ударить своего учителя палкой!
MySQL и ему подобные БД всегда регистрируют под Varchar 256 ячеек, в не зависимости о того сколько вы указали, так что длину меньше 255 можно не указывать, так чисто для себя успокоение. ![]() |
|
Не зная азов, хотел оптимизировать. Писец.
"Не умею даже молоток в руках держать, дайте мне экскаватор, пойду его в канаве утоплю." |
|
Можете ударить своего учителя палкой!
MySQL и ему подобные БД всегда регистрируют под Varchar 256 ячеек, в не зависимости о того сколько вы указали, так что длину меньше 255 можно не указывать, так чисто для себя успокоение. ![]() |
|
Ну если знаешь к примеру что больше 24 ячейки юзаются, а 221 нет... Зачем тогда делать на 255?
Или... Объясни пожалуйста. ![]() |
|
Ну в смысле. 255 ячеек смысл использовать, если из них к примеру будет использоваться всего 24.
|
|
Может быть.
http://phpclub.ru/mysql/doc/char.html Если я делаю VARCHAR(24), то как минимум это удобно потому, что больше 24х символов туда не впишу. Если меньше, то соответственно меньше памяти затрачено будет. Что не так понял? |
|
Это единственное в чем это удобно, когда нужно железобетонно ограничить длинну, и убрать лишние пробелы в конце.
|
|
MySQL и ему подобные БД всегда регистрируют под Varchar 256 ячеек, в не зависимости о того сколько вы указали, так что длину меньше 255 можно не указывать, так чисто для себя успокоение.
![]() |
|
Может быть.
http://phpclub.ru/mysql/doc/char.html Если я делаю VARCHAR(24), то как минимум это удобно потому, что больше 24х символов туда не впишу. Если меньше, то соответственно меньше памяти затрачено будет. Что не так понял? |
enum E_ADMIN_DATA
{
ORM: _ps_ormid,
// mysql synced
Lvl,
Nick,
Report,
Kicks,
Jail,
Mute,
Time,
Vigovor,
Reason1,
Reason2,
Reason3,
Skype
}
new PS[MAX_PLAYERS][E_ADMIN_DATA];
В он GameModeInit
mysql_tquery(1, "SELECT * FROM `admins`", "OnMySQL_Admins");
CMD:acheck(playerid,params[])
{
if(pInfo[playerid][p_access] < 1) return true;
if(sscanf(params,"s[24]",params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /acheck [ник]");
if(IsPlayerConnected(params[0]))
{
if(pInfo[playerid][p_access] < 1) return SendClientMessage(playerid,-1,"Данный игрок не администратор");
new sctring[1500],str[250];
format(str,sizeof(str),"{FFFFFF}Имя Администратора: {1e90ff}%s\n\n",Name(params[0])); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Уровень Администратора: {FF9900}%d\n",pInfo[params[0]][p_access]); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Ответил на репорт: {FF9900}%d\n",astats[0][params[0]]); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Кикнул людей: {FF9900}%d\n",astats[1][params[0]]); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Посадил в тюрьму: {FF9900}%d\n",astats[2][params[0]]); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Выдал молчанку: {FF9900}%d\n",astats[3][params[0]]); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Skype: {FF9900}%s\n",PS[params[0]][Skype]); strcat(sctring,str);
format(str,sizeof(str),"{FFFFFF}Время на сервере: {FF9900}%s\n\n",ConvertMsToTime(astats[4][params[0]])); strcat(sctring,str);
//format(str,sizeof(str),"{FFFFFF}Онлайн за сегодня: {FF9900}%s\n\n",ConvertMsToTime(pInfo[playerid][pOnline])); strcat(sctring,str);
if(PS[params[0]][Vigovor]>=1){ format(str,sizeof(str),"{FFFFFF}Причина выговора: {FF9900}%s\n",PS[params[0]][Reason1]); strcat(sctring,str);}
if(PS[params[0]][Vigovor]>=2){ format(str,sizeof(str),"{FFFFFF}Причина выговора: {FF9900}%s\n",PS[params[0]][Reason2]); strcat(sctring,str);}
if(PS[params[0]][Vigovor]>=3){ format(str,sizeof(str),"{FFFFFF}Причина выговора: {FF9900}%s\n",PS[params[0]][Reason3]); strcat(sctring,str);}
ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX ,"{FF9900}Статистика",sctring,"Закрыть","");
return true;
}
else OnMySQL_Admins();
return true;
}
forward OnMySQL_Admins();
public OnMySQL_Admins()
{
new str[64],params[7],stringinfo[900], sctring[1000],query[1024];
new time = GetTickCount();
for(new x; x < sizeof(PS); x++)
{
PS[x][_ps_ormid] = orm_create("admins");
orm_addvar_int(PS[x][_ps_ormid], PS[x][Lvl], "Lvl");
orm_addvar_string(PS[x][_ps_ormid], PS[x][Nick],MAX_PLAYERS, "Nick");
orm_addvar_int(PS[x][_ps_ormid], PS[x][Report], "Report");
orm_addvar_int(PS[x][_ps_ormid], PS[x][Kicks], "Kick");
orm_addvar_int(PS[x][_ps_ormid], PS[x][Jail], "Jail");
orm_addvar_int(PS[x][_ps_ormid], PS[x][Mute], "Mute");
orm_addvar_string(PS[x][_ps_ormid], PS[x][Time],MAX_PLAYERS, "Time");
orm_addvar_int(PS[x][_ps_ormid], PS[x][Vigovor], "Vigovor");
orm_addvar_string(PS[x][_ps_ormid], PS[x][Reason1],MAX_PLAYERS, "Reason1");
orm_addvar_string(PS[x][_ps_ormid], PS[x][Reason2],MAX_PLAYERS, "Reason2");
orm_addvar_string(PS[x][_ps_ormid], PS[x][Reason3],MAX_PLAYERS, "Reason3");
orm_addvar_string(PS[x][_ps_ormid], PS[x][Skype],MAX_PLAYERS, "Skype");
format(str, 64, "{FFFFFF}Имя Администратора: {1e90ff}%s\n\n",Name(params[0])); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Уровень Администратора: {FF9900}%d\n",params[0]); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Ответил на репорт: {FF9900}%d\n",params[1]); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Кикнул людей: {FF9900}%d\n",params[2]); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Посадил в тюрьму: {FF9900}%d\n",params[3]); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Выдал молчанку: {FF9900}%d\n",params[4]); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Skype: {FF9900}%s\n",Skype); strcat(stringinfo,str);
format(str, 64, "{FFFFFF}Время на сервере: {FF9900}%s\n\n",ConvertMsToTime(params[5])); strcat(stringinfo,str);
if(PS[params[0]][Vigovor]>=1){ format(str,sizeof(str),"{FFFFFF}Причина выговора: {FF9900}%s\n",PS[params[0]][Reason1]); strcat(sctring,str);}
if(PS[params[0]][Vigovor]>=2){ format(str,sizeof(str),"{FFFFFF}Причина выговора: {FF9900}%s\n",PS[params[0]][Reason2]); strcat(sctring,str);}
if(PS[params[0]][Vigovor]>=3){ format(str,sizeof(str),"{FFFFFF}Причина выговора: {FF9900}%s\n",PS[params[0]][Reason3]); strcat(sctring,str);}
orm_apply_cache(PS[x][_ps_ormid], x);
}
printf("[Admin System] Админ Систем загружено | Время: %d (ms)",GetTickCount()-time);
return true;
}