Вопросы по созданию скриптов
| |
dim1988 |
Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Ответы на самые часто задаваемые вопросы
Как сохранить (компилировать) скрипт? Почему не следует использовать в клео скриптах глобальные переменные? Как узнать координаты мест, через какую прогу? Как поместить игрока в интерьер? Опкод, который открывает все дома в СА Запись в переменную ближайшего педа и проверка его модели Как заставить актёров ходить по определённым координатам Проверка нажатия определённой клавиши Пак пути с анимацией Как сделать так, чтоб 2 миссии следовали друг за другом? Как актёру дать оружие? Как создать транспорт Как создать жёлтый маркер для входа в интерьер? При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить? Как транспорту присвоить определённый цвет? Что делать если пишет ожидалось 'x' параметров? Как написать цветной текст? Номера костей актёра Что такое gosub? Опкоды, связанные с созданием огня Как изменить оружие банд? Образец добавления в игру объектов Проверка нажатия клавиши в игре и список значений Путь или scmpath Как изменить цвет затемнения экрана? Как записать в переменную случайное число из интервала Список стилей боя Как привязать эффект к кости актёра? Как произвести действия, над педами, созданными игрой Как заменить модель игрока Как заставить актёра поднять руки, как при аресте Сброс анимации Как метнуть объект? Как из одного скрипта запустить другой?
+ файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать |
|
| |
Nico |
Дата: Воскресенье, 03.11.2013, 13:20 | Сообщение # 3751 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
RuXman, Я незнаю хочешь ты напиши правильнее |
|
| |
RuXman |
Дата: Воскресенье, 03.11.2013, 13:26 | Сообщение # 3752 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Я незнаю хочешь ты напиши правильнее Ты же сказал всё работает. Значит всё правильно.
Да, все правильно.
Сообщение отредактировал RuXman - Воскресенье, 03.11.2013, 13:30 |
|
| |
Nico |
Дата: Воскресенье, 03.11.2013, 14:04 | Сообщение # 3753 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
Вот тут я подбавил строку Actor.WeaponAccuracy(1@) = 100 после строки 0446: set_actor 1@ immune_to_headshots 1 // 1-вкл. 0-выкл
{$CLEO .cs} 0000: 0@ = 0 // в эту перемунную будем записывать номер актера (отсчет начинаем с 0)
:banda // делаем метку точки, с которой будет начинаться наш цикл wait 0 092B: 1@ = group $PLAYER_GROUP member 0@ // записываем в переменную 1@ актера под номером 0@ 0@ += 1 // прибавляем к номеру актера 1, чтобы на следующем обороте цикла в переменную был записан актер //под следующим номером if 0@ > 7 // 7 - максимальное число актеров в банде, если прошлое действие превысило это число then // тогда 0@ = 0 // запускаем счетчик актеров заного end // обозначение конца действий после условия if Actor.Defined(1@) // ранее мы записали в переменную актера, проверяем существует ли он then // если существует то... 0446: set_actor 1@ immune_to_headshots 1 // 1-вкл. 0-выкл Actor.WeaponAccuracy(1@) = 100 end jump @banda // и прыгаем в начало, чтобы цикл повторилсяДобавлено (03.11.2013, 14:04) --------------------------------------------- RuXman, Мммм? |
|
| |
dim1988 |
Дата: Воскресенье, 03.11.2013, 14:54 | Сообщение # 3754 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Цитата RuXman ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Че вы фигнёй страдаете??? Делаете такие сложные проверки... Зачем? Этот опкод не требует проверки на существование актера. Сам лично проверял!
Проверки на существование актёров, транспорта или объектов никогда не помешают. Мало ли, что может с ними произойти в игре, может на них вообще другой скрипт повлияет. Если они не будут обнаружены, игра вылетит. И в данном случае, я не знаю, почему у тебя не вылетает, но у меня вылетело сразу.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
RuXman |
Дата: Воскресенье, 03.11.2013, 16:30 | Сообщение # 3755 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Вот тут я подбавил строку Actor.WeaponAccuracy(1@) = 100 после строки 0446: set_actor 1@ immune_to_headshots 1 // 1-вкл. 0-выкл Ну да.. все ок
Цитата dim1988 ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Проверки на существование актёров, транспорта или объектов никогда не помешают. Естественно не помешают.
Цитата dim1988 ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) И в данном случае, я не знаю, почему у тебя не вылетает, но у меня вылетело сразу. Хм... очень странно... у меня не вылетает... именно с этим опкодом проверку не требует. Ладно, надо будет еще поэкспериментировать
Добавлено (03.11.2013, 16:30) --------------------------------------------- Цитата RuXman ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) у меня не вылетает Наверное у меня был какой-то баг или что-то типа этого. Опять сделал скрипт без проверки - игра вылетела. А я уже обрадовался, что опкод проверки не требует... Ну что же, придется проверку делать, а я этого так не хотел... вы были правы.
Сообщение отредактировал RuXman - Воскресенье, 03.11.2013, 16:30 |
|
| |
d13m1 |
Дата: Воскресенье, 03.11.2013, 19:14 | Сообщение # 3756 |
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline |
если поисковые опкоды не находят свою цель, то в переменную они записывают 0, поэтому можно просто заменить проверку Actor.Defined(1@) на 1@ > 0. т.к. актер игрока тоже находится опкодом 092B:, то в условие можно добавить соответствующее сравнение переменных в конечном итоге получится :
if and 1@ > 0 87D6: 1@ == $PLAYER_ACTOR // опкод 07D6 проверяет совпадение переменных, чтобы проверить на несовпадение then // меняем 0 на 8 в опкоде .... end
Сообщение отредактировал d13m1 - Воскресенье, 03.11.2013, 19:17 |
|
| |
dim1988 |
Дата: Воскресенье, 03.11.2013, 21:49 | Сообщение # 3757 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Цитата d13m1 ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) если поисковые опкоды не находят свою цель, то в переменную они записывают 0 Насколько я знаю, может записаться и -1. По крайней мере я когда-то использовал проверку not 1@ == -1 и всё работало. Правда, так было пока я не стал использовать клео 4, с её опкодами так не получилось.
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) :D А это уже флуд. За такое наказание полагается.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Nico |
Дата: Понедельник, 04.11.2013, 12:53 | Сообщение # 3758 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
Цитата dim1988 ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Цитата Nico ():D
А это уже флуд. За такое наказание полагается. Да ладно Тебе А в скрипте тоже можно ещё Оружие дать? |
|
| |
RuXman |
Дата: Понедельник, 04.11.2013, 16:53 | Сообщение # 3759 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Можно ли записать в переменную машину, в которую я целюсь? Искал везде где только мог, не нашел опкода. Просто есть опкод, записывающий в переменную нацеленного актера, вот я и подумал, возможно ли такое для машин? Или это слишком сложно? |
|
| |
d13m1 |
Дата: Понедельник, 04.11.2013, 23:43 | Сообщение # 3760 |
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline |
опкода нет, искать прийдется вручную. могу посоветовать отличный пример с разъяснениями от DK (либертисити/files/gta-san-andreas/61143-aimdrivers.html). если будет время - распишу конкретно
Сообщение отредактировал d13m1 - Понедельник, 04.11.2013, 23:44 |
|
| |
RuXman |
Дата: Вторник, 05.11.2013, 16:15 | Сообщение # 3761 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Это для меня слишком сложно, точнее совсем невозможно. Я даже понятия не имею, как он слепил этот скрипт. |
|
| |
Nico |
Дата: Вторник, 05.11.2013, 16:29 | Сообщение # 3762 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
RuXman, Ххахахахаах А каком ты скрипте? |
|
| |
d13m1 |
Дата: Вторник, 05.11.2013, 23:50 | Сообщение # 3763 |
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline |
вот простая функция без всяких наворотов
:_carMouseOver // inc.: 0@ = range 0A8D: 1@ = read_memory 0xB6F1A8 size 2 virtual_protect 0 if or 1@ == 53 1@ == 7 1@ == 8 then actor.StorePos($player_actor, 1@, 2@, 3@) 0AA6: call_method 0x514970 struct 0xB6F028 num_params 6 pop 0 target 4@v start 1@v Z 3@ Y 2@ X 1@ dist 0@ 0AA7: call_function 0x56BA00 num_params 12 pop 12 IgnoreShootThroughStuff 0 IgnoreSomeObjectsForCamera 0 IgnoreSeeThroughStuff 0 dummy 0 object 0 actor 0 car 1 building 0 result 7@v point 8@v target 4@v start 1@v Ret 0@ if 7@ > 0 then 0AEB: 0@ = car_struct 7@ handle if 056E: car 0@ defined then 0AB2: ret 1 0@ end end end 0AB2: ret 1 0
вызывается так: 0AB1: call_scm_func @_carMouseOver 1 range 20.0 store car to 0@ // где 20,0 - дистанция поиска (редактируй сам), а в 0@ будет записана машина, либо 0, если она не найдена или игрок не целится
ps. можно было бы добавить проверки на преграды, но тогда машина не находится, если стоять близко к ней. разбираться с этим как-то влом было
Сообщение отредактировал d13m1 - Вторник, 05.11.2013, 23:53 |
|
| |
Nico |
Дата: Среда, 06.11.2013, 15:15 | Сообщение # 3764 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
d13m1, Скайп дай Если ты Разбераешься в Сриптах ) |
|
| |
d13m1 |
Дата: Среда, 06.11.2013, 20:41 | Сообщение # 3765 |
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline |
Nico, если возникают какие-либо проблемы - описывай их тут; для всего остального есть справка в билдере |
|
| |
RuXman |
Дата: Четверг, 07.11.2013, 11:02 | Сообщение # 3766 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Ххахахахаах А каком ты скрипте? Цитата d13m1 ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) либертисити/files/gta-san-andreas/61143-aimdrivers.html d13m1, спасибо, но откуда ты всё это знаешь? Все эти методы и функции... откуда ты знаешь, что нужно использовать именно этот адрес памяти? И за что он отвечает? С каждым днем убеждаюсь, что о скриптинге я знаю всё меньше и меньше. Всё время появляется то, чего я не знал... |
|
| |
d13m1 |
Дата: Четверг, 07.11.2013, 20:14 | Сообщение # 3767 |
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline |
RuXman, описание адресов памяти и функций можно найти на gtaforums, sannybuilder, gtagaming, gtamodding/wiki. просматриваю на досуге... зачастую там же постят примеры вызовов, ну или на сторонних форумах |
|
| |
Nico |
Дата: Суббота, 09.11.2013, 21:17 | Сообщение # 3768 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
dim1988, RuXman, d13m1, НЕ работает =( В чём дело?
{$CLEO .cs} 0000: 0@ = 0 // в эту перемунную будем записывать номер актера (отсчет начинаем с 0)
:banda // делаем метку точки, с которой будет начинаться наш цикл wait 0 092B: 1@ = group $PLAYER_GROUP member 0@ // записываем в переменную 1@ актера под номером 0@ 0@ += 1 // прибавляем к номеру актера 1, чтобы на следующем обороте цикла в переменную был записан актер //под следующим номером if 0@ > 7 // 7 - максимальное число актеров в банде, если прошлое действие превысило это число then // тогда 0@ = 0 // запускаем счетчик актеров заного end // обозначение конца действий после условия if Actor.Defined(1@) // ранее мы записали в переменную актера, проверяем существует ли он then // если существует то... 0446: set_actor 1@ immune_to_headshots 0 // 1-вкл. 0-выкл Actor.WeaponAccuracy(1@) = 100 Actor.Health(1@) = 500 end jump @banda // и прыгаем в начало, чтобы цикл повторился |
|
| |
d13m1 |
Дата: Суббота, 09.11.2013, 23:57 | Сообщение # 3769 |
Группа: Проверенные
Сообщений: 10
Замечания: 0%
Статус: Offline |
Цитата Nico9161НЕ работаетчто именно? если выкидывает - попробуй поставить wait 0 между 0000: и 0@ = |
|
| |
dim1988 |
Дата: Воскресенье, 10.11.2013, 08:31 | Сообщение # 3770 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) НЕ работает Если ты про headshot, то тебе уже два раза говорили, что надо ставить 1, а у тебя опять 0.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Nico |
Дата: Воскресенье, 10.11.2013, 14:33 | Сообщение # 3771 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
dim1988, d13m1, Не ХедШот всё Норм А точность стрельбы не Идёт =( я там хотел ещё ХП поставить тоже не Шло |
|
| |
RuXman |
Дата: Понедельник, 11.11.2013, 15:01 | Сообщение # 3772 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) А точность стрельбы не Идёт =( Не знаю, вроде должно работать. Может ты думаешь, что пед будет попадать только в голову? Нет. Ты сравни точность 10 и 100. Увидишь разницу... 10% - из 20 выстрелов 5 попаданий. |
|
| |
Nico |
Дата: Понедельник, 11.11.2013, 21:55 | Сообщение # 3773 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
RuXman, Какой нах Хед Шот Точность это Когда он Точно в него попадает а не Косит как нуб |
|
| |
dim1988 |
Дата: Понедельник, 11.11.2013, 22:16 | Сообщение # 3774 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
У тебя парадокс какой-то. immune_to_headshots поставлено 0, так это работает, а в остальных опкодах написано правильно, но не работает. Покажи декомпилированный скрипт.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
RuXman |
Дата: Вторник, 12.11.2013, 15:16 | Сообщение # 3775 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Цитата Nico ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) Точность это Когда он Точно в него попадает а не Косит как нуб Неужели? Ты говоришь очевидные вещи. Я же уже это сказал в сообщении выше. |
|
| |
Nico |
Дата: Суббота, 16.11.2013, 14:44 | Сообщение # 3776 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
dim1988, Всё Работает я тебе отвечаю Я 0 Ставил и всё Норм Правду говорю RuXman, Ну я поставил но не Идёт чё то =( и Хп =(Добавлено (16.11.2013, 14:44) --------------------------------------------- RuXman, dim1988, d13m1, Кто нибудь сможет разобраться? и понять чё за нах?
|
|
| |
DK22Pac |
Дата: Суббота, 16.11.2013, 16:05 | Сообщение # 3777 |
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline |
Nico, быдлота, в кругу друзей и знакомых тоже маты проскакивают?
Мои скрипты Grand Theft Auto III HD Development Team |
|
| |
Ghost_is_coming |
Дата: Суббота, 16.11.2013, 17:00 | Сообщение # 3778 |
Группа: Пользователи
Сообщений: 3
Замечания: 0%
Статус: Offline |
Всем здравствуйте. Я хотел бы узнать что это за опкод: 068E: get_camera_target_point_to $_1 $_2 $_3. |
|
| |
Nico |
Дата: Суббота, 16.11.2013, 23:55 | Сообщение # 3779 |
Группа: Проверенные
Сообщений: 91
Замечания: 0%
Статус: Offline |
DK22Pac, Нормально всё не Говори мне :D |
|
| |
RuXman |
Дата: Воскресенье, 17.11.2013, 05:29 | Сообщение # 3780 |
Группа: Проверенные
Сообщений: 109
Замечания: 0%
Статус: Offline |
Цитата Ghost_is_coming ( ![Ссылка на цитируемый текст](http://s32.ucoz.net/img/fr/ic/1/lastpost.gif) ) что это за опкод: 068E: get_camera_target_point_to $_1 $_2 $_3. Он направляет камеру в координаты $_1 $_2 и $_3 То есть, камера будет смотреть в эту точку. Переменные можно заменить на локальные (типа 1@ 2@ 3@...) или просто написать координаты вместо них. Думаю ты это уже знаешь.... |
|
| |
|