PDA

Просмотр полной версии : [Вопрос] stock adminnames



Kurbanoff
05.03.2018, 22:40
Всем привет, сделал уровень админки до 4 то есть
Администратор #1, #2 , #3, #4 и Руководитель Проекта


new AdminNames[9][64] = {"Неизвестно", "Хелпер","Гл.Хелпер","Кикер",
"Администратор", "Администратор", "Администратор", "Администратор","Руководитель Проекта"};

И юзаю в командах так


new arank[64];
arank = IsAdminName(PlayerInfo[playerid][pHelper],PlayerInfo[playerid][pAdmin]);
format(string, sizeof(string), "%s получил молчанку от %sа %s ",ClickedPlayerName,arank, pName );
SendClientMessageToAll(COLOR_LIGHTRED, string);

Вот сток


stock IsAdminNames(Helper, Admin)
{
if (Helper > 0 ) return Helper;
else if (Admin > 0)
{
if (Admin == 9999) Admin = 9;
return Admin + 1;
}
else return 0;
}

Теперь когда я стану Рук Проекта пишу в /aad или же /ao (там же юзаю new arank[64];) ничего не выйдет, то есть команда не работает а вот например у админа #1 2 3 4 работает, как исправить ?
Когда даю админку 1 уровня - в /aad пишет что "Хелпер F_K: сообщение" но я на самом деле Админ 1 уровня

geneff
05.03.2018, 22:50
Капец вы сложные :sad:



static const AdminNames[][] =
{
"Неизвестно",
"Администратор",
"Администратор",
"Администратор",
"Администратор",
"Руководитель Проекта"
};

format(string, sizeof(string), "%s получил молчанку от %sа %s ",ClickedPlayerName, AdminNames[переменная где хранится уровень администратора], pName );
SendClientMessageToAll(COLOR_LIGHTRED, string);

Kurbanoff
05.03.2018, 22:52
Капец вы сложные :sad:



static const AdminNames[][] =
{
"Неизвестно",
"Хелпер",
"Гл.Хелпер",
"Кикер",
"Администратор",
"Администратор",
"Администратор",
"Администратор",
"Руководитель Проекта"
};

format(string, sizeof(string), "%s получил молчанку от %sа %s ",ClickedPlayerName, AdminName[переменная где хранится уровень администратора], pName );
SendClientMessageToAll(COLOR_LIGHTRED, string);


Ого, для этого мне вес мод переделывать . есть вариант исправить который я скинул ?

Long-
06.03.2018, 02:03
Я же вам кидал на другом форуме вариант, и расписывал как лучше.

DeimoS
06.03.2018, 09:53
stock IsAdminNames лучше вызывать при авторизации под админку и сразу обновлять уровень админки в переменной с админокой (можно даже и без stock). То бишь:

//Тут загрузка данных в PlayerInfo[playerid][pAdmin]
if(PlayerInfo[playerid][pAdmin] >= sizeof(AdminNames))
PlayerInfo[playerid][pAdmin] = sizeof(AdminNames)-1;
Ибо зачем каждый раз проверять уровень админки и подстраивать его под правильный, если это можно сделать один раз?
И уже код выглядит так

format(string, sizeof(string), "%s получил молчанку от %sа %s ",ClickedPlayerName, AdminNames[PlayerInfo[playerid][pAdmin]], pName );
SendClientMessageToAll(COLOR_LIGHTRED, string);
А чтоб не мучится с pHelper, удали эту переменную из мода и хелперов храни в pAdmin (первые два уровня pAdmin - хелперы, а дальше уже админы)