sehrget | Дата: Пятница, 02.01.2015, 21:19 | Сообщение # 1 |
Постоялец
Группа:
Продвинутые
Сообщений: 393
Награды: 2
Город: Украина\Черкассы
Замечания: 40%
Статус:
| Решил сделать для своего сервера /members в диалоговом окне + менюшку для лидера. Само диалоговое окно - все понятно, обычный цикл и так далее(это сделать не составит труда), но вопрос в том, как узнать на какого именно игрока кликнул лидер чтобы показать ему само меню?
|
|
|
|
an21 | Дата: Суббота, 03.01.2015, 00:43 | Сообщение # 2 |
Уверенный в себе
Группа:
Продвинутые
Сообщений: 150
Награды: 1
Город: localhost
Репутация: 233
Замечания: 0%
Статус:
| таким же циклом только вставить условие: i == listitem
silver break project developer
Сообщение отредактировал an21 - Суббота, 03.01.2015, 00:43 |
|
|
|
valych | Дата: Пятница, 09.01.2015, 01:34 | Сообщение # 3 |
Освоившийся
Группа:
Продвинутые
Сообщений: 103
Награды: 1
Город: kiev
Репутация: 22
Замечания: 0%
Статус:
| Допустим у тебя есть вот такая команда /members: [pwn]if(!strcmp(cmd, "/members", true)) { // тут делаешь разные проверки, к примеру является ли игрок лидером и т.д. new memberlist[256]; // далее у нас задача в диалоговом окне отобразить список всех членов организации/фракции/банды кто как называет for(new i = 0; i < MAX_PLAYERS; i++) { if(!IsPlayerConnected(i) || PlayerInfo[playerid][pMember] != PlayerInfo[i][pMember]) continue; new name[24]; GetPlayerName(i, name, 24); format(string, 26, "%s\n", name); strcat(memberlist, string); } ShowPlayerDialog(playerid, DIALOG_ID, DIALOG_STYLE_LIST, "Список", memberlist, "Выбрать", "Закрыть"); }[/pwn]
Далее в OnDialogResponse:
[pwn]if(dialogid == DIALOG_ID) { if(!response) return 1; new clickedid = -1; // в эту переменную запишем ID выбранного игрока for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[playerid][pMember] == PlayerInfo[i][pMember]) clickedid++; // подсчитываем кол-во игроков состоящих в его организиции if(clickedid == listitem) // поскольку в диалог. окне мы отображали всех игроков по порядку, то как только нам встречается игрок, с порядковым номером (из состоящих в организации), который равняется номеру, выбранного из списка { clickedid = i; // мы записываем ID этого игрока и выходим из цикла break; } } if(clickedid == -1) return 1; // тут можешь что-нибудь написать // далее идут твои действия по отношению к выбранному игроку }[/pwn] Системка не идеальна, но идею, думаю, я тебе подбросил Я ее, кстати, не тестировал, но она должна работать
Видео-уроки по pawn.
|
|
|
|