Вопросы по созданию скриптов
| |
dim1988 |
Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Ответы на самые часто задаваемые вопросы
Как сохранить (компилировать) скрипт? Почему не следует использовать в клео скриптах глобальные переменные? Как узнать координаты мест, через какую прогу? Как поместить игрока в интерьер? Опкод, который открывает все дома в СА Запись в переменную ближайшего педа и проверка его модели Как заставить актёров ходить по определённым координатам Проверка нажатия определённой клавиши Пак пути с анимацией Как сделать так, чтоб 2 миссии следовали друг за другом? Как актёру дать оружие? Как создать транспорт Как создать жёлтый маркер для входа в интерьер? При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить? Как транспорту присвоить определённый цвет? Что делать если пишет ожидалось 'x' параметров? Как написать цветной текст? Номера костей актёра Что такое gosub? Опкоды, связанные с созданием огня Как изменить оружие банд? Образец добавления в игру объектов Проверка нажатия клавиши в игре и список значений Путь или scmpath Как изменить цвет затемнения экрана? Как записать в переменную случайное число из интервала Список стилей боя Как привязать эффект к кости актёра? Как произвести действия, над педами, созданными игрой Как заменить модель игрока Как заставить актёра поднять руки, как при аресте Сброс анимации Как метнуть объект? Как из одного скрипта запустить другой?
+ файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать |
|
| |
Den_spb |
Дата: Суббота, 16.06.2012, 06:42 | Сообщение # 3241 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Quote (Artalus) в том то и дело, что там их 3 штуки, и ни один не работает Выбирать нужно опкод, подходящий для конкретной ситуации. Для сложения дробных чисел, оба из которых записаны в локальные переменные, существует только один опкод: 005B: 4@ += 17@ // (float) Он нормально работает, часто его использую. Quote (Artalus) про hex-буфер можно поподброднее? Где-нибудь в конце скрипта (так, чтобы на него не перешло исполнение кода) создаётся hex-буфер. Адрес буфера получаем с помощью опкода вычисления адреса метки - 0AC6: 0@ = label @label offset. К полученному адресу прибавляем нужное смещение, а дальше как обычно читаем/пишем память опкодами 0A8D/0A8C. Пример: создадим буфер на 8 байт и запишем в него значение двух переменных - 0@ и 1@ (размер одной переменной - 4 байта). Затем скопируем значения буфера в переменные 2@ и 3@ Code {$CLEO} 0@ = 12345 1@ = -897.59
0AC6: 31@ = label @Buffer offset 0A8C: write_memory 31@ size 4 value 0@ virtual_protect 0 31@ += 4 0A8C: write_memory 31@ size 4 value 1@ virtual_protect 0
0AC6: 31@ = label @Buffer offset 0A8D: 2@ = read_memory 31@ size 4 virtual_protect 0 31@ += 4 0A8D: 3@ = read_memory 31@ size 4 virtual_protect 0
0A93:
:Buffer hex 00 00 00 00 00 00 00 00 end
Quote (DK22Pac) scm-функции. Да, scm-функции тоже позволяют экономить переменные, т.к. внутри функции используется собственный набор из 32 локальных переменных. |
|
| |
SPIRITS |
Дата: Суббота, 16.06.2012, 09:48 | Сообщение # 3242 |
Группа: Проверенные
Сообщений: 103
Замечания: 0%
Статус: Offline |
Ну кто нибудь ответит на вопросы на 108 страницы? |
|
| |
Den_spb |
Дата: Суббота, 16.06.2012, 10:01 | Сообщение # 3243 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
1) Количество переменных увеличить нельзя. 2) Не используй для обычных скриптов формат cm, т.к. это формат миссии, а в любой момент времени в игре может быть запущено не более одной миссии.
Сообщение отредактировал Den_spb - Суббота, 16.06.2012, 10:02 |
|
| |
dim1988 |
Дата: Суббота, 16.06.2012, 11:27 | Сообщение # 3244 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (Jin) Cлушайте,у меня ни как не получаеться сделать так чтоб обьект цеплялся к педу и двигался обьект а за ним и пед. Изучи этот скрипт.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
SPIRITS |
Дата: Суббота, 16.06.2012, 11:50 | Сообщение # 3245 |
Группа: Проверенные
Сообщений: 103
Замечания: 0%
Статус: Offline |
Den_spb, Ну это понятно, я буду cs и cm использовать только для создание новых актеров так как мне не достаточно 33 локальных перемен |
|
| |
DK22Pac |
Дата: Воскресенье, 17.06.2012, 00:54 | Сообщение # 3246 |
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline |
Quote (Den_spb) Да, scm-функции тоже позволяют экономить переменные, т.к. внутри функции используется собственный набор из 32 локальных переменных. Уточню: при выполнении scm-функции, происходит копирование значений переменных в некий буффер. При возвращении - значения восстанавливаются. Вроде так)
Мои скрипты Grand Theft Auto III HD Development Team |
|
| |
Jin |
Дата: Воскресенье, 17.06.2012, 05:06 | Сообщение # 3247 |
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline |
dim1988, о спасибоо,чё то я перестал, учиться по чужим скриптам)
Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010) |
|
| |
MrMADRYAN |
Дата: Воскресенье, 17.06.2012, 19:41 | Сообщение # 3248 |
Группа: Проверенные
Сообщений: 387
Замечания: 40%
Статус: Offline |
Привет всем! Может кто-то помнит скрипт, идея там была поиск рандомного персонажа, и если его тип 8, то его делали бессмертным (типо грув бессмертен), так вот, меня попросили поучавствовать в одной разработке, а там нужен такой скрипт, у себя потерял (ибо на FTP сервере, где все моды помойка и туда не захожу около года). Может кто-то поможет его найти? (Исходник скрипта было в страницах до 100 в этой теме. Писать заново не могу, забыл я всё, как ушёл из моддинга. |
|
| |
Jin |
Дата: Понедельник, 18.06.2012, 05:50 | Сообщение # 3249 |
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline |
MrMADRYAN, ну вот,но это я написал сам.
Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010) |
|
| |
MrMADRYAN |
Дата: Понедельник, 18.06.2012, 13:33 | Сообщение # 3250 |
Группа: Проверенные
Сообщений: 387
Замечания: 40%
Статус: Offline |
Jin, я из скрипта буду вытаскивать данный с помощью C++, а он, по резалтам моего теста так и не вернул состояние актёра в год моде. Как сделать такое же, что было в том потерянном скрипте, я вот один из нужных кодов вспомнил, вот. надо бы с ним. 0AE1: $actor = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_deads 1 //IF and SET |
|
| |
dim1988 |
Дата: Понедельник, 18.06.2012, 17:57 | Сообщение # 3251 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
MrMADRYAN, так поставь этот опкод вместо Quote (Jin) 0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 10@ closest_ped_to 1@ Кстати, 0AB5: действует только на актёров которые вблизи.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Jin |
Дата: Понедельник, 18.06.2012, 17:58 | Сообщение # 3252 |
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline |
MrMADRYAN, ну я не знаю есть аткой вариант но у меня он не работает почему то.
dim88, хех у тебя сообщений 1995 как год моего рождения))
Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010)
Сообщение отредактировал Jin - Понедельник, 18.06.2012, 18:00 |
|
| |
DK22Pac |
Дата: Понедельник, 18.06.2012, 18:06 | Сообщение # 3253 |
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline |
Jin, старайся сохранять исходники и не декомпилировать свои скрипты. Так делают только нубы.
Мои скрипты Grand Theft Auto III HD Development Team |
|
| |
MrMADRYAN |
Дата: Понедельник, 18.06.2012, 18:08 | Сообщение # 3254 |
Группа: Проверенные
Сообщений: 387
Замечания: 40%
Статус: Offline |
Хм, в том скрипте, Jin, этот код сначала был 0AE1: 4@ = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 0 pass_deads 1 //IF and SET а потом так 0AE1: 4@ = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_deads 1 //IF and SET Дело в том, что бы поймать из dll файла (в моём случае catload.dll) статус бандита (бессмертен ли он), а этот код, он возвращает игре как раз то, что мне и нужно, но это почему-то в случае приведённом выше не работает. |
|
| |
SPIRITS |
Дата: Понедельник, 18.06.2012, 18:11 | Сообщение # 3255 |
Группа: Проверенные
Сообщений: 103
Замечания: 0%
Статус: Offline |
dim1988, За инфу про 0A5B спасибо, а то я думал что он берет актеров которые находятся на расстояние двух машин |
|
| |
MrMADRYAN |
Дата: Понедельник, 18.06.2012, 18:51 | Сообщение # 3256 |
Группа: Проверенные
Сообщений: 387
Замечания: 40%
Статус: Offline |
Короче. Тут запустил FTP'шку, порылся, вдруг вспомнил я название, сам скрипт прикрепил к сообщению. Все спасибо, кто хотел помочь.
|
|
| |
Den_spb |
Дата: Вторник, 19.06.2012, 04:55 | Сообщение # 3257 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Недавно же давал заготовку для 0AE1-0AE3 ( http://gtascriptd88.ucoz.ru/forum/2-3-8442-16-1339080938 ) Надо бы добавить это в список часто задаваемых вопросов ("Как произвести действия, над педами, созданными игрой?")
Сообщение отредактировал Den_spb - Вторник, 19.06.2012, 04:56 |
|
| |
Jin |
Дата: Вторник, 19.06.2012, 06:25 | Сообщение # 3258 |
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline |
DK22Pac, так я и есть нуб)Да и вообще разница то какая?темболее я же пишу скрипт не как вы с Den_spb ,я пишу как "новичок" поэтому не вижу разницы,у меня в скрипте ни чего не преобразуеться.
Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010) |
|
| |
dim1988 |
Дата: Вторник, 19.06.2012, 08:33 | Сообщение # 3259 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (Den_spb) Надо бы добавить это в список часто задаваемых вопросов Сделано, хотя лично я не понял, почему речь об актёрах, а ты там используешь опкоды для объектов.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
SPIRITS |
Дата: Вторник, 19.06.2012, 08:53 | Сообщение # 3260 |
Группа: Проверенные
Сообщений: 103
Замечания: 0%
Статус: Offline |
dim1988, Тот опкод записывает в переменную машины, и актеры все в одну вот только не рабочий, я пробовал уже |
|
| |
dim1988 |
Дата: Вторник, 19.06.2012, 09:58 | Сообщение # 3261 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
В одну переменную и актёров, и машины, и объекты? Да ладно. И вообще какой-то странный код. Откуда там 8AE3, вроде сам опкод на проверку не похож.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
dim1988 |
Дата: Вторник, 19.06.2012, 10:03 | Сообщение # 3262 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Что вы меня путаете, вот что в справке написано Quote 0AE3: $object = random_object_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 //IF and SET
0AE1 получает хэндл случайного объекта, находящегося рядом с точкой в определенном радиусе, устанавливает результат логической операции TRUE, если объект найден, и FALSE, если нет.
Параметры [in] Переменная, в которую будет записан хэндл полученного объекта; [in] X-координата точки, около которой ищется объект; [in] Y-координата точки, около которой ищется объект; [in] Z-координата точки, около которой ищется объект; [in] Радиус поиска; [in] Флаг, задающий поиск, начиная с последнего найденного этим опкодом (чтобы не натыкаться постоянно на один и тот же объект при цикличном поиске).
(там где красным выделено – это опечатка в справке, должно быть 3) Ничего удивительного, что он не работает. Den_spb, наверное, хотел написать 0AE1, он предназначен для актёров. Но всё равно это не проверка.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Den_spb |
Дата: Вторник, 19.06.2012, 15:59 | Сообщение # 3263 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Quote (dim1988) Сделано, хотя лично я не понял, почему речь об актёрах, а ты там используешь опкоды для объектов. Да, по ошибке написал опкод для объекта. Но для актёров конструкция будет точно такая же, только вместо 0AE3 будет 0AE1 (а для машин соответственно 0AE2). И важно правильно устанавливать значения "find next".
Quote (dim1988) Но всё равно это не проверка. Этот опкод относится к группе двойных опкодов, т.е. являющихся одновременно и командой, и проверкой. Об этом говорит комментарий "IF and SET" |
|
| |
dim1988 |
Дата: Вторник, 19.06.2012, 16:29 | Сообщение # 3264 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (Den_spb) Этот опкод относится к группе двойных опкодов, т.е. являющихся одновременно и командой, и проверкой. Об этом говорит комментарий "IF and SET" А как он тогда работает в качестве проверки? Является ли переменная актёром, находящимся около игрока?
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Jin |
Дата: Вторник, 19.06.2012, 17:25 | Сообщение # 3265 |
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline |
dim1988, кстать ,а где ты такую подробную справку нашёл именно по опредлённому опкоду?я вообще такое в Сб не находил.Только по другим опкодам.
Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010) |
|
| |
Den_spb |
Дата: Вторник, 19.06.2012, 17:31 | Сообщение # 3266 |
Мастер по скриптингу
Группа: Проверенные
Сообщений: 295
Замечания: 0%
Статус: Offline |
Quote (dim1988) А как он тогда работает в качестве проверки? Является ли переменная актёром, находящимся около игрока? Если этот опкод выполняется как проверка, то он всё равно попытается найти актёра. Если актёр будет найден, то условие будет выполнено, а если актёр не будет найден, то условие будет не выполнено.
Добавлено (19.06.2012, 17:31) --------------------------------------------- Quote (Jin) dim1988, кстать ,а где ты такую подробную справку нашёл именно по опредлённому опкоду?я вообще такое в Сб не находил.Только по другим опкодам. Справка по опкодам КЛЕО3 есть в справке СБ (раздел КЛЕО3) Справка по опкодам КЛЕО4 поставляется вместе с библиотекой КЛЕО4.
Сообщение отредактировал Den_spb - Вторник, 19.06.2012, 17:32 |
|
| |
Jin |
Дата: Вторник, 19.06.2012, 17:33 | Сообщение # 3267 |
Группа: Друзья
Сообщений: 193
Замечания: 0%
Статус: Offline |
Den_spb, спасибо про Quote (Den_spb) Справка по опкодам КЛЕО3 есть в справке СБ (раздел КЛЕО3) знал,а вот про клео 4 не знал,надо бы прочесть для общего развития)
Скачать альбом Лумен-Лучшее(2008) Скачать Хиты Европы Плюс(2000-2010) |
|
| |
SPIRITS |
Дата: Вторник, 19.06.2012, 18:38 | Сообщение # 3268 |
Группа: Проверенные
Сообщений: 103
Замечания: 0%
Статус: Offline |
Теперь понял почему у меня ни чего не было Вот вопрос Опкодом 0AE1 Если в find_next установить 0 То это значит что после нахождения актера, опкод не будет искать нового? И что значит pass_deads? Что будет если поставить 1, или 0 |
|
| |
SHREDER |
Дата: Вторник, 19.06.2012, 18:40 | Сообщение # 3269 |
Группа: Пользователи
Сообщений: 49
Замечания: 0%
Статус: Offline |
Я вот создал чела и сделал чтоб он за мной ходил. Но он не садится со мной в машину и не стреляет в тех кого я мочу. Мне бы как-то это сделать
[url=http://nick-name.ru/sertificates/777287/][img]http://nick-name.ru/forum/Vanya_8778.gif[/img][/url] |
|
| |
SPIRITS |
Дата: Вторник, 19.06.2012, 18:44 | Сообщение # 3270 |
Группа: Проверенные
Сообщений: 103
Замечания: 0%
Статус: Offline |
SHREDER, в группу игрока установи, и тогда будет стрелять в того кого хочет Я так для клона делал |
|
| |
|