Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
26 Мар 2024
Сообщения
25
Здравствуйте, есть вопросы мне нужно чтобы в диалоговом окне писался ник игрока или любой другой текст(именно из переменной) или числа из переменной кто знает подскажите пожалуйста как сделать. И ещё один вопрос как передать id другого игрока в диалоге то есть не того кому этот диалог открывается а допустим команда /invite есть вводишь id и открывается окно с выбором куда пригласить ты выбираешь и инвайтишь этого игрока когда я прописываю что должно произойти при выборе пункта мне нужно указывать на id того игрока но я не могу понять откуда мне его взять подскажите как сделать.🥺
 
pawn love
Активный
Регистрация
26 Сен 2023
Сообщения
198
Pawn:
// ко всем глобальным new
new pID;

CMD:invite(playerid, params)
{
    if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "Используйте: /invite [id]");

    pID = params[0];

// далее показ диалога
}

после того, как ты поместил айди в глобальную переменную, ты сможешь использовать айди в функционале диалога.
 
Пользователь
Регистрация
26 Мар 2024
Сообщения
25
Pawn:
// ко всем глобальным new
new pID;

CMD:invite(playerid, params)
{
    if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "Используйте: /invite [id]");

    pID = params[0];

// далее показ диалога
}

после того, как ты поместил айди в глобальную переменную, ты сможешь использовать айди в функционале диалога.
А вот если одновременно 2 игрока введут эту кмд там же по идеи перепутаются значения или не?
 
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
783
@арбузик, всё верно. В таком случае разумнее будет применять временные переменные, они же pvar'ы.


Pawn:
CMD:invite(playerid, params)
{
    if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, "Используйте: /invite [id]");

    SetPVarInt(params[0], "invite_playerid", playerid);

    // далее показ диалога
}


Объясняю, почему во временную переменную сохраняем именно ID игрока, который ввел команду.
Диалог будет показываться игроку, которому кинули инвайт во фракцию. Дабы узнать, в какую фракцию и от кого предложение - в коде диалога используем примерный код:

Pawn:
case DIALOG_INVITE: {
    new invite_id = GetPVarInt(playerid, "invite_playerid");

    //далее уже ваш код
}
 
Пользователь
Регистрация
26 Мар 2024
Сообщения
25
@арбузик, всё верно. В таком случае разумнее будет применять временные переменные, они же pvar'ы.


Pawn:
CMD:invite(playerid, params)
{
    if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, -1, "Используйте: /invite [id]");

    SetPVarInt(params[0], "invite_playerid", playerid);

    // далее показ диалога
}


Объясняю, почему во временную переменную сохраняем именно ID игрока, который ввел команду.
Диалог будет показываться игроку, которому кинули инвайт во фракцию. Дабы узнать, в какую фракцию и от кого предложение - в коде диалога используем примерный код:

Pawn:
case DIALOG_INVITE: {
    new invite_id = GetPVarInt(playerid, "invite_playerid");

    //далее уже ваш код
}
Не мне нужно чтобы диалог показывался именно тому кто кинул это получается нужно сохранять id того кому кинули?
 
pawn love
Активный
Регистрация
26 Сен 2023
Сообщения
198
Не мне нужно чтобы диалог показывался именно тому кто кинул это получается нужно сохранять id того кому кинули?
что бы диалог показывался тому, кто кинул, необходимо указать playerid в ShowPlayerDialog.

тобишь так:
Pawn:
ShowPlayerDialog(playerid, id_dialog, style_dialog, "", "", "", "");

// id_dialog – айди диалога
// style_dialog – стиль диалога
 
Сверху