- Регистрация
- 16 Сен 2017
- Сообщения
- 1,327
- Лучшие ответы
- 0
- Репутация
- 241
Привет!
Что ж, вот и пришло время, когда я напишу, хоть одну команду :ce:
Похожие команды у меня заказывали не раз, и вот, я хочу показать всем, как это делать.
Сразу скажу, что эта команда связяна с MySQL. Я использую r41-4.
Не много о команде на примере...:
Что ж, я все объяснил и по-этому, для начала я опишу все переменные, которые Вам не обходимо заменить на свои:
Код всего этого дела:
Что ж, вот и пришло время, когда я напишу, хоть одну команду :ce:
Похожие команды у меня заказывали не раз, и вот, я хочу показать всем, как это делать.
Сразу скажу, что эта команда связяна с MySQL. Я использую r41-4.
Не много о команде на примере...:
- Допустим, Вам нужно в окне перечислить всех игроков, которые зарегистрированы на Ваш ник. В одном окне будет по 10 игроков, если их будет больше, то появится новая строка/кнопка "Далее...", перейдя по которой, Вам будет показаны еще игроки, которые зарегистрированы на Ваш ник (так же макс 10) и строка/кнопка "Назад...", чтобы вернуться к предыдущим 10-ти игрокам.
Что ж, я все объяснил и по-этому, для начала я опишу все переменные, которые Вам не обходимо заменить на свои:
Переменные мода (заменяются в самом моде)
Переменные базы данных (заменяются в базе данных: определенной таблице)
PHP:
mysql // Переменная базы данных
PHP:
accounts // Таблица аккаунтов в базе сервере
Name // Переменная ника аккаунта в таблице аккаунтов
Referal // Переменная реферала аккаунта в таблице аккаунтов
Код всего этого дела:
PHP:
// Начало мода
static
TotalPlayers[MAX_PLAYERS],
bool: FirstOpenCMD[MAX_PLAYERS],
LastPlayers[MAX_PLAYERS],
TotalPlayersCount[MAX_PLAYERS];
#define dialog_referals 777 // Если у Вас уже есть такой диалог - изменяйте
// OnPlayerConnect
FirstOpenCMD[playerid] = false;
// Конец мода
cmd:referals(playerid)
{
if(!FirstOpenCMD[playerid])
{
TotalPlayers[playerid] =
TotalPlayersCount[playerid] = 0;
}
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
static const mysql_str[] = "select Name from accounts where Referal = '%s' limit %i, 10";
new mysql_string[sizeof(mysql) + MAX_PLAYER_NAME + 3];
format(mysql_string, sizeof(mysql_string), mysql_str, name, TotalPlayers[playerid]);
mysql_query(mysql, mysql_string);
if(!cache_num_rows())return SendClientMessage(playerid, -1, "На Ваш ник никто не регистрировался!");
new
player_name[MAX_PLAYER_NAME],
players_string[25 + MAX_PLAYER_NAME + 2],
total_string[(sizeof(players_string) * 10) + 29 + (17*2)];
strcat(total_string, "{ffffff}Номер\t{ffffff}Имя\n");
for(new i; i < cache_num_rows(); i ++)
{
cache_get_value_index(i, 0, player_name, MAX_PLAYER_NAME);
format(players_string, sizeof(players_string), "{ffffff}%d\t{24c697}%s\n", TotalPlayersCount[playerid] + 1, player_name);
strcat(total_string, players_string);
TotalPlayersCount[playerid] ++;
}
TotalPlayers[playerid] += cache_num_rows();
LastPlayers[playerid] = cache_num_rows();
if(cache_num_rows() == 10) strcat(total_string, "{24c697}Далее...\n");
if(FirstOpenCMD[playerid] && TotalPlayers[playerid] > 10) strcat(total_string, "{afafaf}Назад...");
if(!FirstOpenCMD[playerid]) FirstOpenCMD[playerid] = true;
return ShowPlayerDialog(playerid, dialog_referals, 5, "Ваши рефералы", total_string, "Выбрать", "Отмена");
}
// OnDialogResponse (Если через switch(dialogid))
case dialog_referals:
{
if(!response)return FirstOpenCMD[playerid] = false;
if(!strcmp(inputtext, "Далее...", false) || !strcmp(inputtext, "Назад...", false))
{
if(!strcmp(inputtext, "Назад...", false)) TotalPlayers[playerid] -= (10 + LastPlayers[playerid]);
callcmd::referals(playerid);
}
else FirstOpenCMD[playerid] = false;
}
// OnDialogResponse (Если через if(dialogid ==))
if(dialogid == dialog_referals)
{
if(!response)return FirstOpenCMD[playerid] = false;
if(!strcmp(inputtext, "Далее...", false) || !strcmp(inputtext, "Назад...", false))
{
if(!strcmp(inputtext, "Назад...", false)) TotalPlayers[playerid] -= (10 + LastPlayers[playerid]);
callcmd::referals(playerid);
}
else FirstOpenCMD[playerid] = false;
}
// Анти-сбив диалога (OnDialogResponse)
if(dialogid != dialog_referals && FirstOpenCMD[playerid]) FirstOpenCMD[playerid] = false;
*Если что-то не так работает, или что-то не понятно - пишите в тему.
*Если Вы не можете сами перевести на свою версию MySQL - сделаю за не большую плату.
*Если Вы не можете переделать команду под себя - сделаю за плату.
*Если Вы не можете сами перевести на свою версию MySQL - сделаю за не большую плату.
*Если Вы не можете переделать команду под себя - сделаю за плату.
Последнее редактирование: