Привет, система такова: если я лидер фракции, хочу изменить ранги онлайн в игре, то я прописываю команду /lmenu, выбираю какой ранг хочу изменить и пишу новое название.
Приступим.
Шаг 1. [База данных]
Бежим к своей базе данных, создаем там базу данных под именем police и meria к примеру, у меня такие.
заходим в "Базы данных"
Открыть/закрыть
если нет базы данных, то создаем, если есть, то заходим в существующую, у меня она под именем "pawno".
Открыть/закрыть
спускаемся ниже, пишем в строчке имя: police
количество столбцов: 2
Открыть/закрыть
так же делаем и с таблицей meria
Открыть/закрыть
далее. пишем все и ставим как на скрине. сравнение "cp1251-general-ci"
Открыть/закрыть
так же делаем и для таблицы meria
Открыть/закрыть
ВАЖНО: ОБЯЗАТЕЛЬНО СТАВИМ СРАВНЕНИЕ "cp1251-general-ci" для строчки с "Name" и в строчке "ID" "A_I галочку"!!!
если кому-то лень добавлять, то можете загрузить их
Скачать police
Скачать meria
Так. Разобрались с таблицами. Идем далее. Код.
Шаг 2. [Код]
думаю подключение умеете делать к базе данных)
это можно в любое место.
PHP код:
enum RankN{RID,RName}; //будем записывать в enum номер по порядку рангов, ID т.е 1, 2, 3 и т.д; и само название рангов в RName! Это для фракции ПОЛИЦИЯ!
enum RankNM{RID,RName};//будем записывать в enum номер по порядку рангов, ID т.е 1, 2, 3 и т.д; и само название рангов в RName! Это для фракции МЭРИЯ!
new RankNameM[MAX_PLAYERS][RankNM], RankName[MAX_PLAYERS][RankN]; //создаем переменную, куда и будет все записываться для сохранения
enum NamesR{Name[256]};//будем записывать в enum название ранга для фракции полиция
enum NamesRM{Name[256]};//будем записывать в enum название ранга для фракции мэрия
new MasName[30][NamesR], MasNameM[30][NamesRM]; //создаем переменные, куда и будет все записываться для сохранения
new ID[30], IDM[30]; //максимальное кол-во рангов, у меня 30, изменяйте под своё
new selectpos, selectname[256];
Добавляем саму команду /lmenu в public OnPlayerCommandText(playerid, cmdtext[])
PHP код:
if(strcmp(cmd, "/lmenu", true) == 0)
{
if(Fraction[playerid][FLeader] >= 1)
{
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Редактор", "Редактор рангов", "Добавить", "Отмена");
}
return 1;
}
вывод например в рацию наш ранг:
простенькая команда
PHP код:
if(strcmp(cmd, "/r", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' ')){idx++;}
new offset = idx, result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))){result[idx - offset] = cmdtext[idx];idx++;}
result[idx - offset] = EOS;
if(!strlen(result))return SendClientMessage(playerid, COLOR_GRAD2, "/r ввод текста");
new text[256];
if(Fraction[playerid][FLeader] == 1 || Fraction[playerid][FMember] == 1)//Если я состою в фракции под номером 1, т.е в полиции, то выполним:
{
if(Fraction[playerid][FRank] == 1){strmid(text, MasName[1][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 2){strmid(text, MasName[2][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 3){strmid(text, MasName[3][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 4){strmid(text, MasName[4][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 5){strmid(text, MasName[5][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 6){strmid(text, MasName[6][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 7){strmid(text, MasName[7][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 8){strmid(text, MasName[8][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 9){strmid(text, MasName[9][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 10){strmid(text, MasName[10][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
format(string, sizeof(string), "[Рация] %s %s: %s", text, giveplayer, result);//Создаем сообщение
SendRadioMessage(1, COLOR_LIGHTBLUE, string);//Отправляем
return 1;
}
if(Fraction[playerid][FLeader] == 2 || Fraction[playerid][FMember] == 2)
{
if(Fraction[playerid][FRank] == 1){strmid(text, MasNameM[1][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 2){strmid(text, MasNameM[2][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 3){strmid(text, MasNameM[3][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 4){strmid(text, MasNameM[4][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 5){strmid(text, MasNameM[5][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 6){strmid(text, MasNameM[6][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 7){strmid(text, MasNameM[7][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 8){strmid(text, MasNameM[8][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 9){strmid(text, MasNameM[9][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 10){strmid(text, MasNameM[10][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
format(string, sizeof(string), "[Рация]%s %s[%d]: {FFFFFF}%s", text, giveplayer, playerid, result);//Создаем сообщение
SendRadioMessage(2, COLOR_LIGHTBLUE, string);//Отправляем
return 1;
}
}
return 1;
}
далее в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) дадим серверу команду что нужно дальше делать с нажатой кнопкой "добавить" или "отменить"
PHP код:
if(listitem == 0)
{
if(Fraction[playerid][FLeader] == 1)//Для фракции полиция
{
if(ID[1] == 0){strmid(MasName[1][Name], "редактировать", 0, 64, 255);}//если строчка под номером 1 не заполнена, то подписываем ее "редактировать", так и ниже
if(ID[2] == 0){strmid(MasName[2][Name], "редактировать", 0, 64, 255);}
if(ID[3] == 0){strmid(MasName[3][Name], "редактировать", 0, 64, 255);}
if(ID[4] == 0){strmid(MasName[4][Name], "редактировать", 0, 64, 255);}
if(ID[5] == 0){strmid(MasName[5][Name], "редактировать", 0, 64, 255);}
if(ID[6] == 0){strmid(MasName[6][Name], "редактировать", 0, 64, 255);}
if(ID[7] == 0){strmid(MasName[7][Name], "редактировать", 0, 64, 255);}
if(ID[8] == 0){strmid(MasName[8][Name], "редактировать", 0, 64, 255);}
if(ID[9] == 0){strmid(MasName[9][Name], "редактировать", 0, 64, 255);}
if(ID[10] == 0){strmid(MasName[10][Name], "редактировать", 0, 64, 255);}
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s",
ID[1], MasName[1][Name],
ID[2], MasName[2][Name],
ID[3], MasName[3][Name],
ID[4], MasName[4][Name],
ID[5], MasName[5][Name],
ID[6], MasName[6][Name],
ID[7], MasName[7][Name],
ID[8], MasName[8][Name],
ID[9], MasName[9][Name],
ID[10], MasName[10][Name]);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Редактор", string, "Добавить", "Отмена");
return 1;
}
if(Fraction[playerid][FLeader] == 2)//Для фракции мэрия
{
if(IDM[1] == 0){strmid(MasNameM[1][Name], "редактировать", 0, 64, 255);}
if(IDM[2] == 0){strmid(MasNameM[2][Name], "редактировать", 0, 64, 255);}
if(IDM[3] == 0){strmid(MasNameM[3][Name], "редактировать", 0, 64, 255);}
if(IDM[4] == 0){strmid(MasNameM[4][Name], "редактировать", 0, 64, 255);}
if(IDM[5] == 0){strmid(MasNameM[5][Name], "редактировать", 0, 64, 255);}
if(IDM[6] == 0){strmid(MasNameM[6][Name], "редактировать", 0, 64, 255);}
if(IDM[7] == 0){strmid(MasNameM[7][Name], "редактировать", 0, 64, 255);}
if(IDM[8] == 0){strmid(MasNameM[8][Name], "редактировать", 0, 64, 255);}
if(IDM[9] == 0){strmid(MasNameM[9][Name], "редактировать", 0, 64, 255);}
if(IDM[10] == 0){strmid(MasNameM[10][Name], "редактировать", 0, 64, 255);}
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s",
IDM[1], MasNameM[1][Name],
IDM[2], MasNameM[2][Name],
IDM[3], MasNameM[3][Name],
IDM[4], MasNameM[4][Name],
IDM[5], MasNameM[5][Name],
IDM[6], MasNameM[6][Name],
IDM[7], MasNameM[7][Name],
IDM[8], MasNameM[8][Name],
IDM[9], MasNameM[9][Name],
IDM[10], MasNameM[10][Name]);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Редактор", string, "Добавить", "Отмена");
return 1;
}
}
PHP код:
if(dialogid == 1)
{
if(response)
{
if(Fraction[playerid][FLeader] == 1)
{
if(ID[1] == 1){if(listitem == 0){selectpos = 1;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 0){selectpos = 1;strmid(selectname, MasName[1][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[2] == 2){if(listitem == 1){selectpos = 2;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 1){selectpos = 2;strmid(selectname, MasName[2][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[3] == 3){if(listitem == 2){selectpos = 3;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 2){selectpos = 3;strmid(selectname, MasName[3][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[4] == 4){if(listitem == 3){selectpos = 4;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 3){selectpos = 4;strmid(selectname, MasName[4][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[5] == 5){if(listitem == 4){selectpos = 5;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 4){selectpos = 5;strmid(selectname, MasName[5][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[6] == 6){if(listitem == 5){selectpos = 6;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 5){selectpos = 6;strmid(selectname, MasName[6][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[7] == 7){if(listitem == 6){selectpos = 7;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 6){selectpos = 7;strmid(selectname, MasName[7][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[8] == 8){if(listitem == 7){selectpos = 8;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 7){selectpos = 8;strmid(selectname, MasName[8][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[9] == 9){if(listitem == 8){selectpos = 9;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 8){selectpos = 9;strmid(selectname, MasName[9][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[10] == 10){if(listitem == 9){selectpos = 10;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 9){selectpos = 10;strmid(selectname, MasName[10][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
}
if(Fraction[playerid][FLeader] == 2)
{
if(IDM[1] == 1){if(listitem == 0){selectpos = 1;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 0){selectpos = 1;strmid(selectname, MasNameM[1][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[2] == 2){if(listitem == 1){selectpos = 2;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 1){selectpos = 2;strmid(selectname, MasNameM[2][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[3] == 3){if(listitem == 2){selectpos = 3;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 2){selectpos = 3;strmid(selectname, MasNameM[3][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[4] == 4){if(listitem == 3){selectpos = 4;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 3){selectpos = 4;strmid(selectname, MasNameM[4][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[5] == 5){if(listitem == 4){selectpos = 5;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 4){selectpos = 5;strmid(selectname, MasNameM[5][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[6] == 6){if(listitem == 5){selectpos = 6;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 5){selectpos = 6;strmid(selectname, MasNameM[6][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[7] == 7){if(listitem == 6){selectpos = 7;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 6){selectpos = 7;strmid(selectname, MasNameM[7][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[8] == 8){if(listitem == 7){selectpos = 8;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 7){selectpos = 8;strmid(selectname, MasNameM[8][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[9] == 9){if(listitem == 8){selectpos = 9;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 8){selectpos = 9;strmid(selectname, MasNameM[9][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[10] == 10){if(listitem == 9){selectpos = 10;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 9){selectpos = 10;strmid(selectname, MasNameM[10][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
}
}
}
PHP код:
if(dialogid == 2)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Редактирование", "\n{FFFFFF}Вввести только текст ранга на который хотите изменить, без цифр.", "Добавить", "Отмена");
if(strlen(inputtext) > 1)
{
new idx, length = strlen(inputtext);
while ((idx < length) && (inputtext[idx] <= ' ')){idx++;}
new offset = idx, name[256];
while ((idx < length) && ((idx - offset) < (sizeof(name) - 1))){name[idx - offset] = inputtext[idx];idx++;}
name[idx - offset] = EOS;
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case '1'..'9', 'A'..'Z', 'a'..'z':
return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Редактирование", "{FF0000}Цифры, названия на латинице не пойдёт!\n{FFFFFF}Вввести только текст ранга на который хотите изменить, без цифр.", "Добавить", "Отмена");
}
new query[1000];
CheckMySQLConnection();
if(Fraction[playerid][FLeader] == 1)
{
if(selectpos == 1){ID[1] = 1;if(ID[1] == 1){strmid(MasName[1][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[1][Name]);}}
if(selectpos == 2){ID[2] = 2;if(ID[2] == 2){strmid(MasName[2][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[2][Name]);}}
if(selectpos == 3){ID[3] = 3;if(ID[3] == 3){strmid(MasName[3][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[3][Name]);}}
if(selectpos == 4){ID[4] = 4;if(ID[4] == 4){strmid(MasName[4][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[4][Name]);}}
if(selectpos == 5){ID[5] = 5;if(ID[5] == 5){strmid(MasName[5][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[5][Name]);}}
if(selectpos == 6){ID[6] = 6;if(ID[6] == 6){strmid(MasName[6][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[6][Name]);}}
if(selectpos == 7){ID[7] = 7;if(ID[7] == 7){strmid(MasName[7][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[7][Name]);}}
if(selectpos == 8){ID[8] = 8;if(ID[8] == 8){strmid(MasName[8][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[8][Name]);}}
if(selectpos == 9){ID[9] = 9;if(ID[9] == 9){strmid(MasName[9][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[9][Name]);}}
if(selectpos == 10){ID[10] = 10;if(ID[10] == 10){strmid(MasName[10][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `police` (`Name`) VALUE ('%s')", MasName[10][Name]);}}
mysql_query(query);
mysql_debug(1);
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s",
ID[1], MasName[1][Name],
ID[2], MasName[2][Name],
ID[3], MasName[3][Name],
ID[4], MasName[4][Name],
ID[5], MasName[5][Name],
ID[6], MasName[6][Name],
ID[7], MasName[7][Name],
ID[8], MasName[8][Name],
ID[9], MasName[9][Name],
ID[10], MasName[10][Name]);
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Редактирование", string, "Добавить", "Отмена");
return 1;
}
if(Fraction[playerid][FLeader] == 2)
{
if(selectpos == 1){IDM[1] = 1;if(IDM[1] == 1){strmid(MasNameM[1][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[1][Name]);}}
if(selectpos == 2){IDM[2] = 2;if(IDM[2] == 2){strmid(MasNameM[2][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[2][Name]);}}
if(selectpos == 3){IDM[3] = 3;if(IDM[3] == 3){strmid(MasNameM[3][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[3][Name]);}}
if(selectpos == 4){IDM[4] = 4;if(IDM[4] == 4){strmid(MasNameM[4][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[4][Name]);}}
if(selectpos == 5){IDM[5] = 5;if(IDM[5] == 5){strmid(MasNameM[5][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[5][Name]);}}
if(selectpos == 6){IDM[6] = 6;if(IDM[6] == 6){strmid(MasNameM[6][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[6][Name]);}}
if(selectpos == 7){IDM[7] = 7;if(IDM[7] == 7){strmid(MasNameM[7][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[7][Name]);}}
if(selectpos == 8){IDM[8] = 8;if(IDM[8] == 8){strmid(MasNameM[8][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[8][Name]);}}
if(selectpos == 9){IDM[9] = 9;if(IDM[9] == 9){strmid(MasNameM[9][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[9][Name]);}}
if(selectpos == 10){IDM[10] = 10;if(IDM[10] == 10){strmid(MasNameM[10][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `meria` (`Name`) VALUE ('%s')", MasNameM[10][Name]);}}
mysql_query(query);
mysql_debug(1);
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s",
IDM[1], MasNameM[1][Name],
IDM[2], MasNameM[2][Name],
IDM[3], MasNameM[3][Name],
IDM[4], MasNameM[4][Name],
IDM[5], MasNameM[5][Name],
IDM[6], MasNameM[6][Name],
IDM[7], MasNameM[7][Name],
IDM[8], MasNameM[8][Name],
IDM[9], MasNameM[9][Name],
IDM[10], MasNameM[10][Name]);
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Редактирование", string, "Добавить", "Отмена");
return 1;
}
}
}
return 1;
}
PHP код:
if(dialogid == 3)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Редактирование", "\n{FFFFFF}Вввести только текст ранга на который хотите изменить, без цифр.", "Добавить", "Отмена");
if(strlen(inputtext) > 1)
{
new idx, length = strlen(inputtext);
while ((idx < length) && (inputtext[idx] <= ' ')){idx++;}
new offset = idx, name[256];
while ((idx < length) && ((idx - offset) < (sizeof(name) - 1))){name[idx - offset] = inputtext[idx];idx++;}
name[idx - offset] = EOS;
for(new i = strlen(inputtext); i != 0; --i)
switch(inputtext[i])
{
case '1'..'9', 'A'..'Z', 'a'..'z':
return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Редактирование", "{FF0000}Цифры, названия на латинице не пойдёт!\n{FFFFFF}Вввести только текст ранга на который хотите изменить, без цифр.", "Добавить", "Отмена");
}
new query[1000];
CheckMySQLConnection();
if(Fraction[playerid][FLeader] == 1)
{
if(selectpos == 1){ID[1] = 1;if(ID[1] == 1){strmid(MasName[1][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[1][Name], ID[1]);}}
if(selectpos == 2){ID[2] = 2;if(ID[2] == 2){strmid(MasName[2][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[2][Name], ID[2]);}}
if(selectpos == 3){ID[3] = 3;if(ID[3] == 3){strmid(MasName[3][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[3][Name], ID[3]);}}
if(selectpos == 4){ID[4] = 4;if(ID[4] == 4){strmid(MasName[4][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[4][Name], ID[4]);}}
if(selectpos == 5){ID[5] = 5;if(ID[5] == 5){strmid(MasName[5][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[5][Name], ID[5]);}}
if(selectpos == 6){ID[6] = 6;if(ID[6] == 6){strmid(MasName[6][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[6][Name], ID[6]);}}
if(selectpos == 7){ID[7] = 7;if(ID[7] == 7){strmid(MasName[7][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[7][Name], ID[7]);}}
if(selectpos == 8){ID[8] = 8;if(ID[8] == 8){strmid(MasName[8][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[8][Name], ID[8]);}}
if(selectpos == 9){ID[9] = 9;if(ID[9] == 9){strmid(MasName[9][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[9][Name], ID[9]);}}
if(selectpos == 10){ID[10] = 10;if(ID[10] == 10){strmid(MasName[10][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `police` SET `Name` = '%s' WHERE `ID` = '%i'", MasName[10][Name], ID[10]);}}
mysql_query(query);
mysql_debug(1);
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s",
ID[1], MasName[1][Name],
ID[2], MasName[2][Name],
ID[3], MasName[3][Name],
ID[4], MasName[4][Name],
ID[5], MasName[5][Name],
ID[6], MasName[6][Name],
ID[7], MasName[7][Name],
ID[8], MasName[8][Name],
ID[9], MasName[9][Name],
ID[10], MasName[10][Name]);
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Редактор", string, "Добавить", "Отмена");
return 1;
}
if(Fraction[playerid][FLeader] == 2)
{
if(selectpos == 1){IDM[1] = 1;if(IDM[1] == 1){strmid(MasNameM[1][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[1][Name], IDM[1]);}}
if(selectpos == 2){IDM[2] = 2;if(IDM[2] == 2){strmid(MasNameM[2][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[2][Name], IDM[2]);}}
if(selectpos == 3){IDM[3] = 3;if(IDM[3] == 3){strmid(MasNameM[3][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[3][Name], IDM[3]);}}
if(selectpos == 4){IDM[4] = 4;if(IDM[4] == 4){strmid(MasNameM[4][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[4][Name], IDM[4]);}}
if(selectpos == 5){IDM[5] = 5;if(IDM[5] == 5){strmid(MasNameM[5][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[5][Name], IDM[5]);}}
if(selectpos == 6){IDM[6] = 6;if(IDM[6] == 6){strmid(MasNameM[6][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[6][Name], IDM[6]);}}
if(selectpos == 7){IDM[7] = 7;if(IDM[7] == 7){strmid(MasNameM[7][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[7][Name], IDM[7]);}}
if(selectpos == 8){IDM[8] = 8;if(IDM[8] == 8){strmid(MasNameM[8][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[8][Name], IDM[8]);}}
if(selectpos == 9){IDM[9] = 9;if(IDM[9] == 9){strmid(MasNameM[9][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[9][Name], IDM[9]);}}
if(selectpos == 10){IDM[10] = 10;if(IDM[10] == 10){strmid(MasNameM[10][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `meria` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameM[10][Name], IDM[10]);}}
mysql_query(query);
mysql_debug(1);
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s\
\n%d - %s",
IDM[1], MasNameM[1][Name],
IDM[2], MasNameM[2][Name],
IDM[3], MasNameM[3][Name],
IDM[4], MasNameM[4][Name],
IDM[5], MasNameM[5][Name],
IDM[6], MasNameM[6][Name],
IDM[7], MasNameM[7][Name],
IDM[8], MasNameM[8][Name],
IDM[9], MasNameM[9][Name],
IDM[10], MasNameM[10][Name]);
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Редактор", string, "Добавить", "Отмена");
return 1;
}
}
}
}
PHP код:
if(dialogid == 4)
{
if(response)
{
if(Fraction[playerid][FLeader] == 1)
{
if(ID[1] == 1){if(listitem == 0){selectpos = 1;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 0){selectpos = 1;strmid(selectname, MasName[1][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[2] == 2){if(listitem == 1){selectpos = 2;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}
}else{if(listitem == 1){selectpos = 2;strmid(selectname, MasName[2][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[3] == 3){if(listitem == 2){selectpos = 3;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 2){selectpos = 3;strmid(selectname, MasName[3][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[4] == 4){if(listitem == 3){selectpos = 4;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 3){selectpos = 4;strmid(selectname, MasName[4][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[5] == 5){if(listitem == 4){selectpos = 5;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 4){selectpos = 5;strmid(selectname, MasName[5][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[6] == 6){if(listitem == 5){selectpos = 6;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 5){selectpos = 6;strmid(selectname, MasName[6][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[7] == 7){if(listitem == 6){selectpos = 7;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 6){selectpos = 7;strmid(selectname, MasName[7][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[8] == 8){if(listitem == 7){selectpos = 8;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 7){selectpos = 8;strmid(selectname, MasName[8][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[9] == 9){if(listitem == 8){selectpos = 9;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 8){selectpos = 9;strmid(selectname, MasName[9][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(ID[10] == 10){if(listitem == 9){selectpos = 10;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 9){selectpos = 10;strmid(selectname, MasName[10][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
}
if(Fraction[playerid][FLeader] == 2)
{
if(IDM[1] == 1){if(listitem == 0){selectpos = 1;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 0){selectpos = 1;strmid(selectname, MasNameM[1][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[2] == 2){if(listitem == 1){selectpos = 2;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}
}else{if(listitem == 1){selectpos = 2;strmid(selectname, MasNameM[2][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[3] == 3){if(listitem == 2){selectpos = 3;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 2){selectpos = 3;strmid(selectname, MasNameM[3][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[4] == 4){if(listitem == 3){selectpos = 4;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 3){selectpos = 4;strmid(selectname, MasNameM[4][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[5] == 5){if(listitem == 4){selectpos = 5;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 4){selectpos = 5;strmid(selectname, MasNameM[5][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[6] == 6){if(listitem == 5){selectpos = 6;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 5){selectpos = 6;strmid(selectname, MasNameM[6][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[7] == 7){if(listitem == 6){selectpos = 7;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 6){selectpos = 7;strmid(selectname, MasNameM[7][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[8] == 8){if(listitem == 7){selectpos = 8;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 7){selectpos = 8;strmid(selectname, MasNameM[8][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[9] == 9){if(listitem == 8){selectpos = 9;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 8){selectpos = 9;strmid(selectname, MasNameM[9][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDM[10] == 10){if(listitem == 9){selectpos = 10;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 9){selectpos = 10;strmid(selectname, MasNameM[10][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
}
}
}
И последнее. Загрузка
PHP код:
stock LoadRank()
{
new query[128], result[90];
format(query, sizeof(query), "SELECT * FROM `police`");
CheckMySQLConnection();
mysql_query(query);
mysql_store_result();
new frac = mysql_num_rows();
if(frac > -1)
{
for(new i = 1; i <= frac; i++)
{
mysql_fetch_row_format(result, "|");
sscanf(result, "p<|>is[32]", RankName[i][RID], RankName[i][RName]);
if(RankName[i][RID] == 1){ID[1] = RankName[i][RID];strmid(MasName[1][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 2){ID[2] = RankName[i][RID];strmid(MasName[2][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 3){ID[3] = RankName[i][RID];strmid(MasName[3][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 4){ID[4] = RankName[i][RID];strmid(MasName[4][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 5){ID[5] = RankName[i][RID];strmid(MasName[5][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 6){ID[6] = RankName[i][RID];strmid(MasName[6][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 7){ID[7] = RankName[i][RID];strmid(MasName[7][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 8){ID[8] = RankName[i][RID];strmid(MasName[8][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 9){ID[9] = RankName[i][RID];strmid(MasName[9][Name], RankName[i][RName], 0, 64, 255);}
if(RankName[i][RID] == 10){ID[10] = RankName[i][RID];strmid(MasName[10][Name], RankName[i][RName], 0, 64, 255);}
}
}
mysql_free_result();
format(query, sizeof(query), "SELECT * FROM `meria`");
CheckMySQLConnection();
mysql_query(query);
mysql_store_result();
new meri = mysql_num_rows();
if(meri > -1)
{
for(new i = 1; i <= meri; i++)
{
mysql_fetch_row_format(result, "|");
sscanf(result, "p<|>is[32]", RankNameM[i][RID], RankNameM[i][RName]);
if(RankNameM[i][RID] == 1){IDM[1] = RankNameM[i][RID];strmid(MasNameM[1][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 2){IDM[2] = RankNameM[i][RID];strmid(MasNameM[2][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 3){IDM[3] = RankNameM[i][RID];strmid(MasNameM[3][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 4){IDM[4] = RankNameM[i][RID];strmid(MasNameM[4][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 5){IDM[5] = RankNameM[i][RID];strmid(MasNameM[5][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 6){IDM[6] = RankNameM[i][RID];strmid(MasNameM[6][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 7){IDM[7] = RankNameM[i][RID];strmid(MasNameM[7][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 8){IDM[8] = RankNameM[i][RID];strmid(MasNameM[8][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 9){IDM[9] = RankNameM[i][RID];strmid(MasNameM[9][Name], RankNameM[i][RName], 0, 64, 255);}
if(RankNameM[i][RID] == 10){IDM[10] = RankNameM[i][RID];strmid(MasNameM[10][Name], RankNameM[i][RName], 0, 64, 255);}
}
}
mysql_free_result();
mysql_debug(1);
return 1;
}
заменяйте на свои переменные Fraction[playerid][FRank], Fraction[playerid][FLeader] и т.д
ВАЖНО: ЕСЛИ ХОТИТЕ ДОБАВИТЬ СЛЕДУЮЩИЕ ФРАКЦИИ ДЛЯ ИЗМЕНЕНИЯ РАНГОВ, ДЕЛАЙТЕ ПО ТОМУ ЖЕ ПРИНЦИПУ, С ДОБАВЛЕНИЕМ ПЕРЕМЕННЫХ!
Открыть/закрыть
НАПРИМЕР:
PHP код:
enum RankN{RID,RName};
enum RankNM{RID,RName};
enum RankNS{RID,RName}; это будет наша следующая фракция, в конце S стоит, больше ничего не нужно менять.
new RankNameM[MAX_PLAYERS][RankNM], RankName[MAX_PLAYERS][RankN];
добавить следующую переменную new RankNameS[MAX_PLAYERS][RankNS]; // вместо RankNameM пишем RankNameS; и вместо RankM пишем RankNS которых мы создали
enum NamesR{Name[256]};
enum NamesRM{Name[256]};
добавить еще один енам
enum NamesRS{Name[256]}; вместо NameRM пишем NameRS
new MasName[30][NamesR], MasNameM[30][NamesRM]; //создаем переменные, куда и будет все записываться для сохранения
добавить следующую переменную new MasNameS[MAX_PLAYERS][NamesS]; // вместо MasNameM eпишем MasNameS; и вместо NamesRM пишем NamesRS которых мы создали
new ID[30], IDM[30]; //максимальное кол-во рангов, у меня 30, изменяйте под своё
new IDS[30]; и добавим переменную
и так далее, я думаю вам понятно
далее нужно будет добавить в
OnDialogResponse, в
if(listitem == 0) код:
PHP код:
if(Fraction[playerid][FLeader] == 3) //сменим ид фракции на 3, это следующая будет фракция
{
if(IDS[1] == 0){strmid(MasNameS[1][Name], "редактировать", 0, 64, 255);}
if(IDS[2] == 0){strmid(MasNameS[2][Name], "редактировать", 0, 64, 255);}
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s",
IDS[1], MasNameS[1][Name],
IDS[2], MasNameS[2][Name]);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Редактор", string, "Добавить", "Отмена");
return 1;
}
все переменные заменим на наши созданные, в конце буква [B]S[/B] !
в
PHP код:
if(dialogid == 1)
{
if(response)
{
//после всего кода, добавить:
if(Fraction[playerid][FLeader] == 3)
{
if(IDS[1] == 1){if(listitem == 0){selectpos = 1;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 0){selectpos = 1;strmid(selectname, MasNameS[1][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDS[2] == 2){if(listitem == 1){selectpos = 2;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 1){selectpos = 2;strmid(selectname, MasNameS[2][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
}
}
}
в
PHP код:
if(dialogid == 2)
{
if(response)
{
if(Fraction[playerid][FLeader] == 3)
{
if(selectpos == 1){IDS[1] = 1;if(IDS[1] == 1){strmid(MasNameS[1][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `имя вашей новой таблицы` (`Name`) VALUE ('%s')", MasNameS[1][Name]);}}
if(selectpos == 2){IDS[2] = 2;if(IDS[2] == 2){strmid(MasNameS[2][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "INSERT INTO `имя вашей новой таблицы` (`Name`) VALUE ('%s')", MasNameS[2][Name]);}}
mysql_query(query);
mysql_debug(1);
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s",
IDS[1], MasNameS[1][Name],
IDS[2], MasNameS[2][Name]);
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Редактирование", string, "Добавить", "Отмена");
return 1;
}
}
}
в
PHP код:
if(dialogid == 3)
{
if(response)
{
if(Fraction[playerid][FLeader] == 3)
{
if(selectpos == 1){IDS[1] = 1;if(IDS[1] == 1){strmid(MasNameS[1][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `имя вашей новой таблицы` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameS[1][Name], IDS[1]);}}
if(selectpos == 2){IDS[2] = 2;if(IDS[2] == 2){strmid(MasNameS[2][Name], inputtext, 0, 64, 255);format(query, sizeof(query), "UPDATE `имя вашей новой таблицы` SET `Name` = '%s' WHERE `ID` = '%i'", MasNameS[2][Name], IDS[2]);}}
mysql_query(query);
mysql_debug(1);
format(string, sizeof(string), "\
\%d - %s\
\n%d - %s",
IDS[1], MasNameS[1][Name],
IDS[2], MasNameS[2][Name]);
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Редактирование", string, "Добавить", "Отмена");
return 1;
}
}
}
в
PHP код:
if(dialogid == 4)
{
if(response)
{
//после всего кода, добавить:
if(Fraction[playerid][FLeader] == 3)
{
if(IDS[1] == 1){if(listitem == 0){selectpos = 1;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 0){selectpos = 1;strmid(selectname, MasNameS[1][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
if(IDS[2] == 2){if(listitem == 1){selectpos = 2;format(string, sizeof(string), "\nВввести только текст ранга на который хотите изменить, без цифр.");ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "Редактирование", string, "Добавить", "Отмена");}}
else{if(listitem == 1){selectpos = 2;strmid(selectname, MasNameS[2][Name], 0, 64, 255);format(string, sizeof(string), "\nВввести только текст ранга, без цифр.");ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Добавление ранга", string, "Добавить", "Отмена");}}
}
}
}
в рацию добавить
PHP код:
if(Fraction[playerid][FLeader] == 2 || Fraction[playerid][FMember] == 2)
{
if(Fraction[playerid][FRank] == 1){strmid(text, MasNameS[1][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
if(Fraction[playerid][FRank] == 2){strmid(text, MasNameS[2][Name], 0, 64, 255);}//Узнаем наш ранг, чтобы он отражался в чате
format(string, sizeof(string), "[Рация]%s %s[%d]: {FFFFFF}%s", text, giveplayer, playerid, result);//Создаем сообщение
SendRadioMessage(2, COLOR_LIGHTBLUE, string);//Отправляем
return 1;
}
и последнее добавить, в
stock LoadRank() до строчки return 1;
PHP код:
format(query, sizeof(query), "SELECT * FROM `имя вашей новой `");
CheckMySQLConnection();
mysql_query(query);
mysql_store_result();
new new_frac = mysql_num_rows(); // новая переменная new_frac, для следующей загрузки нужно изменять имя
if(new_frac > -1)
{
for(new i = 1; i <= new_frac; i++)
{
mysql_fetch_row_format(result, "|");
sscanf(result, "p<|>is[32]", RankNameS[i][RID], RankNameS[i][RName]);
if(RankNameS[i][RID] == 1){IDS[1] = RankNameS[i][RID];strmid(MasNameS[1][Name], RankNameS[i][RName], 0, 64, 255);}
if(RankNameS[i][RID] == 2){IDS[2] = RankNameS[i][RID];strmid(MasNameS[2][Name], RankNameS[i][RName], 0, 64, 255);}
}
}
mysql_free_result();
mysql_debug(1);
Обсуждайте, пишите о багах, недочетах, все решим! Лень что-то было оптимизировать, все хорошо работает, на своем сервере тестировал
Автор данной системы: ReSLeaR- т.е я