 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Архив] Помощь новичкам по скриптингу ! #2
| |
| heufix | Дата: Понедельник, 28.09.2009, 02:59 | Сообщение # 1 |
|
Уважаемый человек
Группа:
Продвинутые
Сообщений: 995
Награды: 22
Репутация: 231
Замечания: 80%
Статус: 
| Здравствуйте, хотите научиться скриптингу? пишите сюда, помoжем!(С)[PZ]KYZ[AIR]. Старая Тема уже достаточно полна ответов, это продолжение первой темы. Убедительная просьба к Новичкам: К большому сожалению, на этом форуме экстрасенсы не сидят,поэтому убедительно просим объяснять ваш вопрос/проблему ТАК,чтобы её поняли другие участники, не забывайте приписывать ваш код к своему сообщению(в тег pwn).
Радость
|
| |
|
|
| Awm | Дата: Вторник, 26.07.2011, 04:00 | Сообщение # 3451 |
|
Группа:
I'm V.I.P.
Сообщений: 3235
Награды: 55
Город: Tallinn
Репутация: 1661
Замечания: 0%
Статус: 
| indie, напиши по порядку какие иды должны как идти, а то я что-то не понял вот это Quote (indie) 1) Я не знаю как запрограммировать вторую кнопку (button 2) так, чтобы в подменю при ее нажатии переходило на 1 меню вверх. куда вверх? из какого подменю?
смотри как сделано на википедии, там даже пример приведён, как лучше делать, if() тут юзать муторно лучше switch(listitem)
public OnDialogResponse
Quote 2) До меню третьего уровня (должно быть диалоговое окно с возможностью ввода) вообще дело не доходит. При нажатии на пункт в меню второго уровня диалоговое окно просто перезагружается или хуже того кидает на другое. где меню третьего уровня? где меню второго уровня? на какое кидает? по подробней расскажи а то нечего не понятно.
"Life is hard... life is harder if you're stupid." - John Wayne
Сообщение отредактировал Awm - Вторник, 26.07.2011, 04:02 |
| |
|
|
| indie | Дата: Вторник, 26.07.2011, 13:30 | Сообщение # 3452 |
|
Новенький
Группа:
Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус: 
| Меню первого уровня это окно диалога которое появляется при вхождении на маркер. [cut=Код]Code public OnPlayerEnterCheckpoint(playerid) { // вход на чекпоинт if(!strcmp(checkpointPlace,"ammo")) { // если аммо чекпоинт checkpointEnable=false; // выключает обработку координат ShowPlayerDialog(playerid, ammoMenu, DIALOG_STYLE_LIST, "Аммо", "Оружие ближнего боя\nПистолеты\nДробовики\nПистолеты-пулеметы\nШтурмовые винтовки\nВинтовки\nМетательное\nДругое", "Выбрать","Выход"); } return 1; } [/cut] Меню второго уровня это диалоговое окно которое показывает все оружие одного типа. Третий уровень это диалоговое окно для подтверждения покупки. А по поводу кнопки - я не могу реализовать переходы с одного диалогового окна на другой. Например при нажатии на button2 в меню третьего уровня меня должно кидать на второй, со второго на первый, и с первого закрывать окно полностью.
|
| |
|
|
| forst5 | Дата: Вторник, 26.07.2011, 16:04 | Сообщение # 3453 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус: 
| У меня на сервере стоят Ган зоны. Подскажите пожалуйста как сделать, чтобы оружие банды могли продавать только в гетто и на своей территории, а не везде. И так же с домами... чтобы грабить их могли только в своей терре
|
| |
|
|
| indie | Дата: Вторник, 26.07.2011, 20:00 | Сообщение # 3454 |
|
Новенький
Группа:
Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус: 
| forst5, вставь эту функцию [cut=Код]Code stock IsPlayerInArea(playerid, Float:min_x, Float:min_y ,Float:max_x, Float:max_y) { // проверка где находится игрок new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1; return 0; } [/cut] и используй условный оператор в OnPlayerUpdate чтобы определять местоположение игрока (точнее находится ли он в ганг зоне). А дальше уже мелочи - настроить переменную которая будет отвечать за работоспособность функции передачи денег
|
| |
|
|
| forst5 | Дата: Среда, 27.07.2011, 08:03 | Сообщение # 3455 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус: 
| indie, спасибо! Добавлено (27.07.2011, 08:03) --------------------------------------------- Но всё равно можно по подробней я просто новичок в скриптинге ))
|
| |
|
|
| indie | Дата: Среда, 27.07.2011, 10:28 | Сообщение # 3456 |
|
Новенький
Группа:
Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус: 
| forst5, ну смотри, я так понял оружие покупается у тебя через командную строку. Используешь функцию OnPlayerUpdate чтобы определять координаты игрока, и соответственно возможность покупки оружия. (предварительно не забудь вставить тот код что я кидал ранее) [cut=Код]Code public OnPlayerUpdate(playerid) { if(IsPlayerInArea(playerid,minX,minY,maxX,maxY)) { oppToBuy = true; } else { oppToBuy - false; } return 1; } [/cut] И обновляешь функцию покупки оружия, например [cut=Код]Code stock buyWeapon(аргументы) { if (oppToBuy) { тело функции } else return 1; } [/cut] И не забудь в начале кода присвоить oppToBuy значение false [cut=Код]new bool:oppToBuy=false;[/cut]
Такую-же процедуру делай и с игроками. Это я тебе дал пример с координатами, а ты поменяй код так, чтобы при вхождении на определенную территорию еще проверялся уникальный идентификатор команды, который будет присваиваться при выборе класса
|
| |
|
|
| forst5 | Дата: Среда, 27.07.2011, 10:38 | Сообщение # 3457 |
|
Новенький
Группа:
Пользователи
Сообщений: 48
Награды: 0
Город: NSK
Репутация: -10
Замечания: 0%
Статус: 
| Мне ошибку выдаёт Что не так
Code C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(1116) : error 017: undefined symbol "minX" C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(1117) : warning 215: expression has no effect C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13235) : error 010: invalid function or declaration C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13235) : error 010: invalid function or declaration C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13236) : error 010: invalid function or declaration C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(13237) : error 010: invalid function or declaration C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25639) : error 029: invalid expression, assumed zero C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25639) : error 017: undefined symbol "min_x" C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25642) : error 017: undefined symbol "max_x" C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(25645) : warning 225: unreachable code C:\Documents and Settings\Admin\Рабочий стол\Samp-Rp v 1.3\gamemodes\Samp-Rp.pwn(40761) : error 021: symbol already defined: "OnPlayerUpdate" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
9 Errors.
|
| |
|
|
| indie | Дата: Среда, 27.07.2011, 17:58 | Сообщение # 3458 |
|
Новенький
Группа:
Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус: 
| Ну я тебе подсказал а ты уже начинаешь на шею садиться undefined symbol значит что нет объявления переменной. symbol already defined что переменная объявлена более одного раза. остальное надо смотреть кодДобавлено (27.07.2011, 11:38) --------------------------------------------- Вообщем я написал код для магазина используя диалоговые окна. Спасибо за подсказку использовать switch, с ними действительно легче. Вот только я сначала в case использовал не чистительные значения, и думал почему выдает ошибки но то такое. Если кому-то надо код - обращайтесь Добавлено (27.07.2011, 17:34) --------------------------------------------- Нужна помощь с реализацией командного чата. Нашел код в интернете [cut=Код] Code { if(text[0] == '!') { new name[24], string[256]; GetPlayerName(playerid, name, 24); strdel(text,0,1); format(string, sizeof(string), "*%s: %s", name, text); printf("%s", string); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(gTeam[i] == gTeam[playerid]) SendClientMessage(i, GetPlayerColor(playerid), string); } } [/cut] только не могу понять зачем там strdel(text,0,1); и printf("%s", string); а да, еще строчка выводится 2 раза. Первый раз она пробегается по команде, отсылается и мне. Второй раз только мне пишется (как я понял, не с кем протестировать). Как этого избежать?Добавлено (27.07.2011, 17:58) --------------------------------------------- разобрался. добавил return 0; после SendClientMessage(i, GetPlayerColor(playerid), string);
|
| |
|
|
| HakeRbesT | Дата: Четверг, 28.07.2011, 12:17 | Сообщение # 3459 |
|
Новенький
Группа:
Пользователи
Сообщений: 72
Награды: 0
Город: Новокузнецк
Репутация: 2
Замечания: 0%
Статус: 
| Подскажите, а возможно сделать анти читы на бесконечные патроны и на бессмертие(ГМ)?
З.Ы:Если не трудно подскажите как)
|
| |
|
|
| indie | Дата: Четверг, 28.07.2011, 15:48 | Сообщение # 3460 |
|
Новенький
Группа:
Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус: 
| HakeRbesT, поищи такую вещь как JunkBuster Anti-Cheat\
люди, подскажите пожалуйста, когда я вхожу на чекпоинт у меня должно меняться значение переменной, только в рамках человека который вошел в чекпоинт. Как это реализовать?
|
| |
|
|
| Solitarioni | Дата: Четверг, 28.07.2011, 17:03 | Сообщение # 3461 |
|
Постоялец
Группа:
I'm V.I.P.
Сообщений: 350
Награды: 12
Город: Ростов-на-Дону
Репутация: 198
Замечания: 0%
Статус: 
| Подскажите как разложить значение цвета в формате 0xRRGGBB по цветам. В одну переменную RR в другую GG в третью BB. Или подскажите как будет выглядеть код для перевода шестнадцатиричного числа в десятичное и наоборот.
Справочник стандартных функций:
a_vehicles file.inc a_sampdb.inc a_samp callbacks a_players.inc a_objects.inc
|
| |
|
|
| Solitarioni | Дата: Четверг, 28.07.2011, 18:01 | Сообщение # 3462 |
|
Постоялец
Группа:
I'm V.I.P.
Сообщений: 350
Награды: 12
Город: Ростов-на-Дону
Репутация: 198
Замечания: 0%
Статус: 
| Quote (Lonely_Tramp) Подскажите как разложить значение цвета в формате 0xRRGGBB по цветам. В одну переменную RR в другую GG в третью BB. Или подскажите как будет выглядеть код для перевода шестнадцатиричного числа в десятичное и наоборот.
Ну вот, сам себе отвечаю. Нашёл ответ, немного поэксперементировав. Вот:
Code new gpg = 0xABCDEF; new r,g,b;
r = gpg/65536; g = (gpg-r*65536)/256; b = gpg - r*65536 -g*256;
printf(" R: %x %d\n G: %x %d\n B: %x %d\n ",r,r,g,g,b,b);
Может есть более хороший вариант?
Справочник стандартных функций:
a_vehicles file.inc a_sampdb.inc a_samp callbacks a_players.inc a_objects.inc
|
| |
|
|
| pawman | Дата: Четверг, 28.07.2011, 18:39 | Сообщение # 3463 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 188
Награды: 12
Город: Новороссийск
Репутация: 38
Замечания: 0%
Статус: 
| Столкнулся с проблемой, решил для своей карты сделать бота на вертолете. Захожу на сервер. Логинюсь как админ. Загружаю скрипт. Ввожу /vrecord mynps - В чате пусто, записи не происходит. Все сделал правильно, в чем ошибка?
Разрабатываю карты для сервера. Обращайтесь, качество гарантирую. Мои работы: [MAP+FS]Особняк [MAP+FS]Пляж [MAP+FS]sa_city_bilding Сайт: фаникс.рф
|
| |
|
|
| [SnIcKeRs] | Дата: Пятница, 29.07.2011, 12:10 | Сообщение # 3464 |
|
Новенький
Группа:
Пользователи
Сообщений: 32
Награды: 0
Город: dnepr
Репутация: -12
Замечания: 0%
Статус: 
| ребята помогите пож. в чем ошибка??
Code C:\Users\Серега\Desktop\LSTDM.pwn(7427) : warning 203: symbol is never used: "killss" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
хз
|
| |
|
|
| indie | Дата: Пятница, 29.07.2011, 12:43 | Сообщение # 3465 |
|
Новенький
Группа:
Пользователи
Сообщений: 10
Награды: 0
Город: UA TE, UA KIR
Репутация: 0
Замечания: 0%
Статус: 
| [SnIcKeRs], ты объявил переменную killss но далее по коду к ней нигде нет обращения, т.е. она "висит" без дела
|
| |
|
|
|
 |
|
 | |
| |
|