[Pawno-Урок]Длинный диалог
|
|
Дата: 28.04.2011, Четверг, 22:05:33 | Сообщение # $NUMBER
Группа: Гл. Модераторы
Сообщений: 220
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
спасибо большое))Добавлено (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
через string не проще?
|
|
|
Дата: 29.04.2011, Пятница, 22:31:52 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 101
А не легче просто 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
парни а как так длинный /stats сделать?
|
|
|
Дата: 13.06.2011, Понедельник, 10:58:41 | Сообщение # $NUMBER
Группа: VIP
Сообщений: 1021
Ice_Kid, Ты хочешь что бы у тебя было все в столбик ? Тоесть: Имя ..... Фамилия ..... Lvl ... Работа? если да то используй \n
|
|
|
Дата: 13.06.2011, Понедельник, 13:12:03 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 627
String + format
|
|
|
Дата: 24.08.2011, Среда, 11:32:21 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 21
Сначало создаем команду которая будет выводить диалоговое окно. 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); //Анимация } } }
Все отлично работает.Делал сам
|
|
|