Вопросы

elishanky
Новичок
Привет, как сделать диалог который нужно будет вести ид игрока, а потом появился другой диалог туда текст и срабатывала команда /sms [id] [text]
 

Поделиться сообщением


Ссылка на сообщение

6 ответов на этот вопрос

  • 0
Sleash
Завсегдатый

В начало мода:

#define sms_dlg_1 3000
#define sms_dlg_2 3001

Активация диалогов:

ShowPlayerDialog(playerid, sms_dlg_1, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите ID игрока""Ввод""Отмена");

В OnDialogResponce:
 

  открыть спойлер

 

Поделиться сообщением


Ссылка на сообщение
  • 0
elishanky
Новичок
  В 11/12/2023 в 15:14, Sleash сказал:

В начало мода:

#define sms_dlg_1 3000
#define sms_dlg_2 3001

Активация диалогов:

ShowPlayerDialog(playerid, sms_dlg_1, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите ID игрока""Ввод""Отмена");

В OnDialogResponce:
 

  открыть спойлер

 

Читать далее...  

братан ошибки выдаёт, а через case как сделать?

Поделиться сообщением


Ссылка на сообщение
  • 0
elishanky
Новичок
  В 11/12/2023 в 15:24, Sleash сказал:

вместо
if(dialogid == sms_dlg_1)
case sms_dlg_1:
и анологично со sms_dlg_2

Читать далее...  

error 001: expected token: ",", but found ";"

на эту строку 

format(t_cmd, 82, "%d %d", GetPVarInt(playerid, "dlg_sms_id"); callcmd::sms(playerid, t_cmd);

разобрался добавив )одну скобку GetPVarInt(playerid, "dlg_sms_id")), Но теперь при вводе ид диалог закрывается

Отредактировано пользователем elishanky

Поделиться сообщением


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

@elishanky Попробуйте такой код:
 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid) {
        case sms_dlg_1: {
            if !response *then return false;
            if !strlen(inputtext) *then return ShowPlayerDialog(playerid, sms_dlg_1, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите ID игрока""Ввод""Отмена");
            for(new i = 0; i < strlen(inputtext); i++) {
                switch(inputtext[i]) {
                    case '0'..'9'continue;
                    defaultreturn ShowPlayerDialog(playerid, sms_dlg_1, DIALOG_STYLE_INPUT, "СМС""{990F0F}Был введён неверный ID игрока\n{ffffff}Введите ID игрока""Ввод""Отмена");
                }
            }
            SetPVarInt(playerid, "dlg_sms_id", strval(inputtext));
            ShowPlayerDialog(playerid, sms_dlg_2, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите сообщение""Отправить""Отмена");
        } case sms_dlg_2: {
            if !response *then return false;
            if !strlen(inputtext) *then return ShowPlayerDialog(playerid, sms_dlg_2, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите сообщение""Ввод""Отмена");
            if strlen(inputtext) > 70 *then return ShowPlayerDialog(playerid, sms_dlg_2, DIALOG_STYLE_INPUT, "СМС""{990f0f}Длина сообщения не может быть более 70-и символов\n{FFFFFF}Введите сообщение""Ввод""Отмена");
            new t_cmd[82];
            format(t_cmd, 82"%d %s", GetPVarInt(playerid, "dlg_sms_id"), inputtext);
            callcmd::sms(playerid, t_cmd);
            DeletePVar(playerid, "dlg_sms_id");
        }
    }
    return 1;
}

 

Отредактировано пользователем Sleash

Поделиться сообщением


Ссылка на сообщение
  • 0
elishanky
Новичок
  В 11/12/2023 в 18:36, Sleash сказал:

@elishanky Попробуйте такой код:
 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid) {
        case sms_dlg_1: {
            if !response *then return false;
            if !strlen(inputtext) *then return ShowPlayerDialog(playerid, sms_dlg_1, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите ID игрока""Ввод""Отмена");
            for(new i = 0; i < strlen(inputtext); i++) {
                switch(inputtext[i]) {
                    case '0'..'9'continue;
                    defaultreturn ShowPlayerDialog(playerid, sms_dlg_1, DIALOG_STYLE_INPUT, "СМС""{990F0F}Был введён неверный ID игрока\n{ffffff}Введите ID игрока""Ввод""Отмена");
                }
            }
            SetPVarInt(playerid, "dlg_sms_id", strval(inputtext));
            ShowPlayerDialog(playerid, sms_dlg_2, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите сообщение""Отправить""Отмена");
        } case sms_dlg_2: {
            if !response *then return false;
            if !strlen(inputtext) *then return ShowPlayerDialog(playerid, sms_dlg_2, DIALOG_STYLE_INPUT, "СМС""{FFFFFF}Введите сообщение""Ввод""Отмена");
            if strlen(inputtext) > 70 *then return ShowPlayerDialog(playerid, sms_dlg_2, DIALOG_STYLE_INPUT, "СМС""{990f0f}Длина сообщения не может быть более 70-и символов\n{FFFFFF}Введите сообщение""Ввод""Отмена");
            new t_cmd[82];
            format(t_cmd, 82"%d %s", GetPVarInt(playerid, "dlg_sms_id"), inputtext);
            callcmd::sms(playerid, t_cmd);
            DeletePVar(playerid, "dlg_sms_id");
        }
    }
    return 1;
}

 

Читать далее...  

(25944) : error 002: only a single statement (or expression) can follow each "case"
(25944) : error 028: invalid subscript (not an array or too many subscripts): "dialogid"
(25944 -- 25945) : error 001: expected token: "}", but found "case"
(25944 -- 25945) : fatal error 107: too many error messages on one line

Отредактировано пользователем elishanky

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • tgfoscar
      От tgfoscar
      Требуется свободное владение C++. Античит, новый способ добавления техники на сервер, совместимость с CEF и возможность добавления полезных функций. За дополнительной информацией обращайтесь к wayne_gm в Discord.
    • enotplaysupptor
      От enotplaysupptor
      Основа для мода Samp для начинающих
      Скачать файл ╔══════════════════════════════════════════════════╗
      ║               Test-RolePlay v0.1           ║
      ║       Современная основа для SA-MP серверов      ║
      ╚══════════════════════════════════════════════════╝
      ✦ О ПРОЕКТЕ:
         Добро пожаловать в Test-RolePlay - мод с нуля, 
         созданный как универсальная основа для SA-MP проектов.
         Проект был создан для тех кто не знает с чего начать и начинающих разработчиков
         Версия: T-RP v0.1 [Актуальная]
      ✦ ОСНОВНЫЕ ПЛАГИНЫ:
         ▸ CrashDetect    - отладка ошибок
         ▸ MySQL R41+     - работа с базой данных
         ▸ Pawn.CMD       - система команд
         ▸ Pawn.Regex     - регулярные выражения
         ▸ SKY            - улучшенные игровые функции
         ▸ sscanf2        - парсинг параметров
         ▸ Streamer       - динамические объекты
         ▸ TOTP           - двухфакторная аутентификация
      ✦ КЛЮЧЕВЫЕ СИСТЕМЫ:
         ┌──────────────────────────────────────────────┐
         │ 🔹 Умная регистрация/авторизация:            │
         │    - Хеширование паролей                     │
         │    - Привязка Email                          │
         │    - Выбор пола и расы персонажа             │
         ├──────────────────────────────────────────────┤
         │ 🔹 Командная система:                        │
         │    - Полный набор РП-команд                  │
         │    - Расширенные админ-команды               │
         ├──────────────────────────────────────────────┤
         │ 🔹 Игровое меню:                             │
         │    - Персональная статистика                 │
         │    - Настройки аккаунта                      │
         │    - Система жалоб и вопросов                │
         ├──────────────────────────────────────────────┤
         │ 🔹 Дополнительные системы:                   │
         │    - АФК-режим с автоматическим детектом      │
         │    - Интегрированный античит (Nex-AC)        │
         └──────────────────────────────────────────────┘
      ✦ ПЛАНЫ РАЗРАБОТКИ:
         » Добавление новых игровых систем
         » Оптимизация существующего кода
         » Расширение возможностей для администраторов
         » Улучшение пользовательского интерфейса
      Если увижу что вы хотите что бы я продолжил разработку данного мода пишите или можете проявиться большую активность










      Добавил enotplaysupptor Добавлено 09.07.2025 Категория Моды Автор Я  
    • Nekit2019
      От Nekit2019
      Добрый день, имеется сервер в CRMP 0.3е (старичок, знаю, решил поностальгировать) . меняю погоду через ркон, но она скипается через пару минут на нулевую! Не пойму от чего, скриптом отдельно на погоду нет. Пожскажите, может в gamemod0 или где еще и куда прописать можно погоду? либо чтоб менялась сама, либо статическую. Вставлял из инета код в гейммод на рандомную погоду через пол часа с уведомлениями - результат такой же, меняется на 1-20 ,но сама сбрасывается на 0 через минуту.