04:17
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Динамическое диалоговое окно Dialog style list
Динамическое диалоговое окно Dialog style list
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.
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Динамическое диалоговое окно Dialog style list
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua