[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[Pawno-Урок]Длинный диалог
Дата: 28.04.2011, Четверг, 22:05:33 | Сообщение # $NUMBER
Группа: Гл. Модераторы
Сообщений: 220
Репутация: 253+
FFFUUU
Длинный диалог
Все наверно сталкивались с длинным диалогом. Вот есть решение проблемы

Для начала создаем

Code
new pddMSG[18][] = {  
/*0*/        {"<< 1. Общие правила >>\n"},  
/*1*/        {"Обгон транспортного средства разрешен только с левой стороны,\n"},  
/*2*/        {"При этом водитель обязан убедться что встречная полоса свободна на достаточном для обгона расстоянии\n"},  
/*3*/        {"При ДТП водители обязаны позвонить в полицию 911, и дождаться ДПС\n"},  
/*4*/        {"\n"},  
/*5*/        {"<< 2. Скорость движения >>\n"},  
/*6*/        {"В пределах города разрешается движение транспортных средств со скоростью не более 50 км/ч\n"},  
/*7*/        {"В жилых зонах и на дворовых территориях не более 30 км/ч\n"},  
/*8*/        {"За пределами города ограничений скорости нет\n"},  
/*9*/        {"\n"},  
/*10*/        {"<< 3. Остановка и стоянка >>\n"},  
/*11*/        {"Остановка и стоянка транспортных средств разрешается на правой стороне дороги на обочине\n"},  
/*12*/        {"В специально отведеных для этого местах"},  
/*13*/        {"\n"},  
/*14*/        {"<< 4. ДПС >>\n"},  
/*15*/        {"При виде автомобиля с включеной сиреной, водитель обязан сбавить скорость и прижаться к обочине\n"},  
/*16*/        {"Водитель обязан предъявит пасспорт/лицензии/документы на машину патрульному, если тот попросил"},  
/*17*/        {""}  
};

Последнюю 17 строку всегда делайте пустой, так как 16 не отобразиться, хз почему так получается

Команду для просмотра

Code
if(strcmp(cmd, "/pdd", true) == 0)  
     {  
             new pdddialog[2148];//примерное число букв))  
             format(pdddialog,sizeof(pdddialog), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",//вписываем сколько тут строк  
             pddMSG[0],pddMSG[1],pddMSG[2],pddMSG[3],pddMSG[4],pddMSG[5],pddMSG[6],pddMSG[7],pddMSG[8],pddMSG[9],pddMSG[10],pddMSG[11],pddMSG[12],pddMSG[13],pddMSG[14],pddMSG[15],pddMSG[16],pddMSG[17]);//вписываем сколько тут строк  
             ShowPlayerDialog(playerid,132,DIALOG_STYLE_MSGBOX,"Правила дорожного движения", pdddialog, "Прочитал", "");  
         return 1;  
     }

Автор:Hawkins
Дата: 29.04.2011, Пятница, 00:12:18 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 144
Репутация: 6+
спасибо большое))

Добавлено (28.04.2011, 23:32:57)
---------------------------------------------
не знаю как давать +)

Добавлено (28.04.2011, 23:55:45)
---------------------------------------------
блин. добавляю ещё 3 строчки после этого и вылазят ошибки
error 018: initialization data exceeds declared size
error 010: invalid function or declaration

вот тут 18 new pddMSG[18][] = { сменил на 21 и сделал так pddMSG[17],pddMSG[18],pddMSG[19],pddMSG[20]
почему ошибки?

Добавлено (28.04.2011, 23:58:04)
---------------------------------------------
вот тут format(pdddialog,sizeof(pdddialog), "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", тоже прибавил ещё %s%s%s

Добавлено (29.04.2011, 00:12:18)
---------------------------------------------
всё решил проблему)
сори за флуд

Дата: 29.04.2011, Пятница, 04:24:33 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 414
Репутация: 886+
через string не проще?
Дата: 29.04.2011, Пятница, 22:31:52 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 101
Репутация: 155+
А не легче просто
Code
if(strcmp(cmd, "/pdd", true) == 0)   
      {   
              format(pdddialog,sizeof(pdddialog), "Текст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\
              \nтекст\n",//вписываем сколько тут строк   
              ShowPlayerDialog(playerid,ID DIALOGA,DIALOG_STYLE_MSGBOX,"Правила дорожного движения",string,"Прочитал", "");   
              }//Тут ещё вроде скобка должна стоять
          return 1;   
      }

Чёто типо этого
Дата: 13.06.2011, Понедельник, 01:07:39 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 15
Репутация: 11+
парни а как так длинный /stats сделать?
Дата: 13.06.2011, Понедельник, 10:58:41 | Сообщение # $NUMBER
Группа: VIP
Сообщений: 1021
Репутация: 815+
Ice_Kid, Ты хочешь что бы у тебя было все в столбик ?
Тоесть:
Имя .....
Фамилия .....
Lvl ...
Работа?
если да то используй \n
Дата: 13.06.2011, Понедельник, 13:12:03 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 627
Репутация: 361+
String + format
Дата: 24.08.2011, Среда, 11:32:21 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 21
Репутация: -5+
Сначало создаем команду которая будет выводить диалоговое окно.
Code
if (strcmp("/animlist", cmdtext, true) == 0)
{
ShowPlayerDialog(playerid,100,DIALOG_STYLE_LIST,"Список анимаций","Поднять руки\nПисать\nСидеть\nПоказать средний палей\nСтоять ровно\nУпасть типо плохо\nПрыгнуть\nÏðûãíóòü\nБокс\nАнимация Арреста","Выбрать","Отмена");-100id диалога замен ите на свое
return 1;
}

Теперь делаем так что бы все наши анимации работали
Code
else if(dialogid == 100)-здесь тоже надо заменить на свое число
{
if(response)
{
if(listitem == 0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);//Анимация
}
if(listitem == 1)
{
SetPlayerSpecialAction(playerid,68);//Анимация
}
if(listitem == 2)
{
ApplyAnimation(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); //Анимация// Sit
}
if(listitem == 3)
{
ApplyAnimation(playerid,"PED","fucku",4.0,0,0,0,0,0);//Анимация
}
if(listitem == 4)
{
ApplyAnimation(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1);//Анимация
}
if(listitem == 5)
{
ApplyAnimation(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); //Анимация
}
if(listitem == 6)
{
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); //Анимация
}
if(listitem == 7)
{
ApplyAnimation(playerid,"PED","EV_dive",4.0,0,1,1,1,0);//Анимация
}
if(listitem == 8)
{
ApplyAnimation(playerid,"GYMNASIUM","GYMshadowbox",4.0,1,1,1,1,0);//Анимация
}
if(listitem == 9)
{
ApplyAnimation(playerid,"ped", "ARRESTgun", 4.0, 0, 1, 1, 1, -1); //Анимация
}
}
}

Все отлично работает.Делал сам
  • Страница 1 из 1
  • 1
Поиск: