Дмитрий |
Дата: Воскресенье, 03.06.2012, 10:06 | Сообщение # 1 | Сообщить о нерабочей теме
|
Регистрация: | 03.12.2011
|
Страна: | Российская Федерация |
Репутация: |
14
|
Сообщений: | 1421 |
Награды: |
4
+
|
Статус: |
|
| Для начала изменим OnPlayerConnect Находим такие строки: Code if(fexist(string)) [color=orange]{ gPlayerAccount[playerid] = 1; SendClientMessage(playerid, COLOR_YELLOW, "SERVER: That nick is registered, please login"); SendClientMessage(playerid, COLOR_WHITE, "HINT: You can now login by typing /login <password>"); return 1; } else { gPlayerAccount[playerid] = 0; SendClientMessage(playerid,COLOR_YELLOW,"You dont have an account. Please register by using /register [password]"); return 1; } [moder]И заменяем на [/moder] Code if(fexist(string)) { gPlayerAccount[playerid] = 1; new loginmsg[256+1]; format(loginmsg,256,"Сообщение, которое будет отображено внутри диалогового окна"); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Название окна",loginmsg,"Левая кнопка(логин)","Правка кнопка(отмена)"); } else { gPlayerAccount[playerid] = 0; new loginmsg[256+1]; format(loginmsg,256,"Сообщение, которое будет отображено внутри диалогового окна"); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Название окна",loginmsg,"Левая кнопка(регистрация)","Правка кнопка(отмена)"); } Итак, диалоговые окна созданы, теперь надо определить их действия [moder]Добавляем public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) [/moder] Code public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new tpass[256];//преобразованный пароль if(dialogid == 1)//итак, наше первое окно { if(response) // при нажатие на левую кнопку (логин) { if(!strlen(inputtext))// если оставляет пустую строку, выводим ему опять окно { new loginmsg[256+1]; format(loginmsg,256,"Сообщение, которое будет отображено внутри диалогового окна"); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Название окна",loginmsg,"Левая кнопка(логин)","Правка кнопка(отмена)"); return 1; } strmid(tpass, inputtext, 0, strlen(inputtext), 255); Encrypt(tpass); OnPlayerLogin(playerid,tpass); } else // если нажимает правую кнопку (отмена) { Kick(playerid); // здесь вы уже сами выбирайте, но я кикну его, ибо я хочу, чтобы он авторизовывался } } else if(dialogid == 2)//переходим ко второму диалоговому окну (регистрация) { if(response)// всё так-же, это нажатие левой кнопки (регистрация) { if(!strlen(inputtext)) // если поле осталось пустым, выводим ему опять диалоговое окно { new loginmsg[256+1]; format(loginmsg,256,"Сообщение, которое будет отображено внутри диалогового окна"); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Название окна",loginmsg,"Левая кнопка(регистрация)","Правка кнопка(отмена)"); return 1; } strmid(tpass, inputtext, 0, strlen(inputtext), 255); Encrypt(tpass); OnPlayerRegister(playerid,tpass); // теперь давайте отправим его на логин new loginmsg[256+1]; format(loginmsg,256,"Сообщение, которое будет отображено внутри диалогового окна"); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Название окна",loginmsg,"Левая кнопка(логин)","Правка кнопка(отмена)"); } else // нажатие правой кнопки (отмена) { Kick(playerid); // мне опять это не нравится и я его кикаю. } } return 1; } Теперь надо сделать так, чтобы диалоговое окно не закрывалось при неправильном пароле [moder]Находим в OnPlayerLogin [/moder] Code gPlayerLogTries[playerid] += 1; if(gPlayerLogTries[playerid] == 4) { Ban(playerid); } [moder]и заменяем на [/moder] Code gPlayerLogTries[playerid] += 1; new loginmsg[256+1]; format(loginmsg,256,"Сообщение, которое будет отображено внутри диалогового окна"); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Название окна",loginmsg,"Левая кнопка(логин)","Правка кнопка(отмена)"); if(gPlayerLogTries[playerid] == 4) { Ban(playerid); } В данной системе диалоговое окно будет показываться игроку сразу при подключении и не факт, что у него всё прогрузится. Так что если вы останетесь недовольными, можете перенести 1-ый показ диалогового окна в OnPlayerRequestClass
(Если хотите, чтобы сообщение внутри диалогового окна переходило на следующую строку, добавляем \n Пример: Первая строка\nВторая строка\nТретья строка)
From Russia With Love!
|
|
|
|