Вопросы по созданию скриптов
|
|
dim1988 |
Дата: Воскресенье, 19.07.2009, 18:43 | Сообщение # 1 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Ответы на самые часто задаваемые вопросы
Как сохранить (компилировать) скрипт? Почему не следует использовать в клео скриптах глобальные переменные? Как узнать координаты мест, через какую прогу? Как поместить игрока в интерьер? Опкод, который открывает все дома в СА Запись в переменную ближайшего педа и проверка его модели Как заставить актёров ходить по определённым координатам Проверка нажатия определённой клавиши Пак пути с анимацией Как сделать так, чтоб 2 миссии следовали друг за другом? Как актёру дать оружие? Как создать транспорт Как создать жёлтый маркер для входа в интерьер? При компиляции выдаёт ошибку перехода на нулевой оффсет,что это и как исправить? Как транспорту присвоить определённый цвет? Что делать если пишет ожидалось 'x' параметров? Как написать цветной текст? Номера костей актёра Что такое gosub? Опкоды, связанные с созданием огня Как изменить оружие банд? Образец добавления в игру объектов Проверка нажатия клавиши в игре и список значений Путь или scmpath Как изменить цвет затемнения экрана? Как записать в переменную случайное число из интервала Список стилей боя Как привязать эффект к кости актёра? Как произвести действия, над педами, созданными игрой Как заменить модель игрока Как заставить актёра поднять руки, как при аресте Сброс анимации Как метнуть объект? Как из одного скрипта запустить другой?
+ файл от пользователя нашего сайта Absolute . Здесь перечислены все вопросы из этой этой темы и ответы на них. Скачать |
|
| |
dim1988 |
Дата: Понедельник, 16.08.2010, 13:18 | Сообщение # 1021 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (Ford) Car.RemoveReferences(3@) Попробуй убрать эту команду.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Ford |
Дата: Понедельник, 16.08.2010, 15:49 | Сообщение # 1022 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Попробовал убрать, но всеравно после уезда тачки через несколько секунд происходит вылет, как-будто игра не знает куда её деть. |
|
| |
dim1988 |
Дата: Понедельник, 16.08.2010, 16:10 | Сообщение # 1023 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Блин, ну автор ступил, убери всё это Quote 0650: destroy_particle 7@ 0650: destroy_particle 8@ 0650: destroy_particle 13@ 0650: destroy_particle 14@ Car.RemoveReferences(3@) Оно кстати 2 раза встречается.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Ford |
Дата: Понедельник, 16.08.2010, 16:23 | Сообщение # 1024 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Спасибо огромное, но всеравно вылет. Может нельзя чтобы все в одном скрите было, приезд тачки, уезд, движение за игроком, еще и броня в придачу. |
|
| |
dim1988 |
Дата: Понедельник, 16.08.2010, 17:41 | Сообщение # 1025 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Не, как раз так и надо, как управлять машиной созданной в другом скрипте. Я больше ошибок не вижу, кроме переменных 32@ и 33@, но раз вылетает когда машину отпустишь, дело не в них.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
MrMADRYAN |
Дата: Понедельник, 16.08.2010, 19:18 | Сообщение # 1026 |
Группа: Проверенные
Сообщений: 387
Замечания: 40%
Статус: Offline |
Какие модели банды играка в GTA Vice City? |
|
| |
Ford |
Дата: Вторник, 17.08.2010, 13:04 | Сообщение # 1027 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Вечер добрый. Подскажите как в скрипте название стандартного авто заменить на название дополнительно установленного, а то я заменяю начинаю компелировать а название дополнительно установленного изчезает. (Я конкретно знаю что можно так как некоторые авторы пишут: такое-то, такое-то замените на свое это дополнительно установленное). |
|
| |
dim1988 |
Дата: Вторник, 17.08.2010, 13:15 | Сообщение # 1028 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
А ты своё авто прописал в файлах папки data? Если у него есть ID то его можно использовать в скрипте.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Ford |
Дата: Вторник, 17.08.2010, 14:00 | Сообщение # 1029 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Да прописал, но все равно при компилировании авто изчезает появляется такая строка: 014B: 1@ = init_parked_car_generator -1 color -1 -1 1 alarm 0 door_lock 0 0 10000 at -1829.183 1289.824 31.747 angle 19.0 |
|
| |
dim1988 |
Дата: Вторник, 17.08.2010, 14:55 | Сообщение # 1030 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
А какой ID у твоей машины?
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Ford |
Дата: Вторник, 17.08.2010, 15:12 | Сообщение # 1031 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
612 и 613 А вот проги с помощью которых установлен дополнительный транспорт: SA Handling Adder SA More Vehicles Vehicle Audio Editor Ultimate |
|
| |
ЧИтЕР |
Дата: Вторник, 17.08.2010, 15:53 | Сообщение # 1032 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Почему не выводится текст: Code {$CLEO} wait 1000 :start thread 'SORV' wait 0 00BC: show_text_highpriority GXT 'SOR1' time 5000 flag 1 wait 0 Файл текста: Code SOR1 СМС: BS ZPNFLAWEHS HA |
|
| |
dim1988 |
Дата: Вторник, 17.08.2010, 16:07 | Сообщение # 1033 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Ну тогда попробуй эти ID написать в скрипте вместо названия модели. Хотя я не уверен, что получится, я когда-то так же пробовал использовать в скрипте новых педов, но они не загружались. А где этот текст? Я имею ввиду в каком файле, gxt или fxt.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Ford |
Дата: Вторник, 17.08.2010, 16:09 | Сообщение # 1034 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Dim спасибо за подсказку - ты действительно гений скриптинга. Цитирую тебя: "А ты своё авто прописал в файлах папки data? Если у него есть ID то его можно использовать в скрипте." У меня несколько разных, глобальных модификаций GTA SA. Так вот настройки Sanny Builder 3 были выставлены на GTA без добавленных авто, исправил настройки сразу перестали пропадать названия добавленных авто в скрипте. |
|
| |
ЧИтЕР |
Дата: Вторник, 17.08.2010, 16:14 | Сообщение # 1035 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Quote (dim1988) А где этот текст? Я имею ввиду в каком файле, gxt или fxt. в fxt файле.А что,что-то не так ? |
|
| |
dim1988 |
Дата: Вторник, 17.08.2010, 16:36 | Сообщение # 1036 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Ну тогда у тебя должен быть GxtHook.cleo, если есть, то текст должен быть. Возможно что-то не так в этом fxt файле, попробуй переписать нужную строку. И чтоб проверить текст, нужно выйти из игры, а потом снова запустить её, а не только сэйв.
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
ЧИтЕР |
Дата: Вторник, 17.08.2010, 16:41 | Сообщение # 1037 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Quote (dim1988) Ну тогда у тебя должен быть GxtHook.cleo, если есть, то текст должен быть. Возможно что-то не так в этом fxt файле, попробуй переписать нужную строку. И чтоб проверить текст, нужно выйти из игры, а потом снова запустить её, а не только сэйв. Все нормально работает на других файлах (не моего производства ) |
|
| |
Ford |
Дата: Среда, 18.08.2010, 07:47 | Сообщение # 1038 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Подскажите: Как этот скрипт изменить чтобы действовал он не на автомобили , а на один вертолет пробовал изменить строку Actor.Driving($PLAYER_ACTOR) на строку Actor.DrivingVehicleType($PLAYER_ACTOR, #SPARROW) но скрипт перестает вообще работать (нужно чтоб хоть один вертолет летал со скоростью звука). // This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 0000: NOP :NONAME_2 wait 100 0AB4: 0@ = var 6 if not 0@ == 1 else_jump @NONAME_2 if Actor.Driving($PLAYER_ACTOR) else_jump @NONAME_2 if and 0@ = 304493 &0(0@,1i) == 16711680 else_jump @NONAME_168 03C0: 0@ = actor $PLAYER_ACTOR car if 81F3: not car 0@ in_air else_jump @NONAME_2 02E3: 1@ = car 0@ speed if not 1@ > 250.0 else_jump @NONAME_244 1@ *= 1.5 1@ += 4.0 Car.SetSpeedInstantly(0@, 1@) Car.RemoveReferences(0@) :NONAME_168 if and 0@ = 304494 &0(0@,1i) == 255 else_jump @NONAME_237 03C0: 0@ = actor $PLAYER_ACTOR car Car.SetSpeedInstantly(0@, 0) Car.RemoveReferences(0@) 1@ = Car.Angle(0@) Car.Angle(0@) = 1@ :NONAME_237 jump @NONAME_2 :NONAME_244 wait 10 Car.SetSpeedInstantly(0@, 250.0) wait 100 jump @NONAME_2 |
|
| |
dim1988 |
Дата: Среда, 18.08.2010, 10:48 | Сообщение # 1039 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
Quote (Ford) пробовал изменить строку Actor.Driving($PLAYER_ACTOR) на строку Actor.DrivingVehicleType($PLAYER_ACTOR, #SPARROW) В общем-то так и надо, ты уверен что указал именно ту модель, которую надо?
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
Ford |
Дата: Среда, 18.08.2010, 11:17 | Сообщение # 1040 |
Группа: Проверенные
Сообщений: 190
Замечания: 20%
Статус: Offline |
Да именно та модель, мне нужно чтобы в моде Back to the Future - эта самая делореан летала с офигенной скоростью, в самом моде начинаешь менять - она только разгоняется быстрее, но летит с тойже скоростью. Я пробовал из двух разных скриптов сделать один ускорения для вертолета но не получается (как я говорил раньше - я в скриптенге только понимаю как заменить клавиши, как поставить авто в нужные координаты и как заменить названия педов - но не более, а для этого больших познаний в скриптенге не надо). А эту строку менял, и car на heli и бесполезно, скрипт перестает работать. |
|
| |
FIRE_DRAGON |
Дата: Среда, 18.08.2010, 11:49 | Сообщение # 1041 |
Группа: Проверенные
Сообщений: 48
Замечания: 0%
Статус: Offline |
Quote (dim1988) Создатель Группа: Администраторы Сообщений: 1058 Репутация: 116 ± Статус: OfflineНу тогда у тебя должен быть GxtHook.cleo, если есть, то текст должен быть. Возможно что-то не так в этом fxt файле, попробуй переписать нужную строку. И чтоб проверить текст, нужно выйти из игры, а потом снова запустить её, а не только сэйв. и попробуй cleo3 пересутановить
|
|
| |
ЧИтЕР |
Дата: Среда, 18.08.2010, 14:24 | Сообщение # 1042 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Все,я уже разобрался! Вот почему-то игре название строки SOR1 не понравилось!я поставил другое.Добавлено (18.08.2010, 14:24) --------------------------------------------- Как заставить актера идти по пути ? |
|
| |
Lost_forever |
Дата: Среда, 18.08.2010, 16:22 | Сообщение # 1043 |
Скриптер
Группа: Проверенные
Сообщений: 705
Замечания: 0%
Статус: Offline |
Quote (ЧИтЕР) Как заставить актера идти по пути ? 05DE: AS_actor 54@ walk_around_ped_path
Forever |
|
| |
ЧИтЕР |
Дата: Среда, 18.08.2010, 18:13 | Сообщение # 1044 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Quote (Lost_forever) 05DE: AS_actor 54@ walk_around_ped_path Да не по тому пути. Вот,не работает: Code 05D6: clear_scmpath 05D7: add_point_to_scmpath 1242.9303 -2037.0483 60.1032 05D7: add_point_to_scmpath 1211.8881 -2037.4423 68.6737 0615: define_action_sequences 8@ 0605: actor -1 perform_animation_sequence "ROADCROSS" from_file "PED" 4.0 loop 0 0 0 1 -1 05D8: AS_assign_scmpath to_actor $PLAYER_ACTOR flags 4 0 0605: actor -1 perform_animation_sequence "IDLE_taxi" from_file "PED" 4.0 loop 0 0 0 0 -1 0616: define_action_sequences_end 8@ 0618: assign_actor $PLAYER_ACTOR to_action_sequences 8@ 061B: remove_references_to_action_sequences 8@ |
|
| |
dim1988 |
Дата: Среда, 18.08.2010, 18:17 | Сообщение # 1045 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
В справке же есть пример Quote 05D6: clear_scmpath // очищаем путь,если создаёте новый,как сейчас,то писать необходимо 05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293 // задаём точку(дом OG) 05D7: add_point_to_scmpath 2494.9099 -1682.17 12.32 // задаём точку (дом CJ'я) 05D7: add_point_to_scmpath 2470.1248 -1661.6222 13.3293 задаём точку(дом OG) 05D8: AS_assign_scmpath to_actor 50@ flags 4 0 // и вот этой командой заставляем актёра
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
TRINITY |
Дата: Среда, 18.08.2010, 21:30 | Сообщение # 1046 |
Группа: Пользователи
Сообщений: 3
Замечания: 0%
Статус: Offline |
Привет всем.Помогите пожалуйста. создаю с помощью опкода статус текст. 04F7: status_text $Var 0 line 1 'HEALTH' записал здоровье игрока в переменную но упорно не хочет здоровье игрока тратиться |
|
| |
dim1988 |
Дата: Среда, 18.08.2010, 21:56 | Сообщение # 1047 |
Создатель
Группа: Администраторы
Сообщений: 2242
Статус: Offline |
TRINITY, там скорее всего надо сделать цикл с проверкой на количество здоровья и обновлять код 04F7:
Mortal Kombat Conquest for GTA SA V2.0 GTA Invasion V2.0 Частная собственность |
|
| |
TRINITY |
Дата: Среда, 18.08.2010, 21:59 | Сообщение # 1048 |
Группа: Пользователи
Сообщений: 3
Замечания: 0%
Статус: Offline |
dim1988, ясно спасибо за помощь подскажи как это сделать))
Сообщение отредактировал TRINITY - Среда, 18.08.2010, 22:03 |
|
| |
DK22Pac |
Дата: Четверг, 19.08.2010, 03:50 | Сообщение # 1049 |
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline |
В этом нет надобности. 047F работает вместе с 0151. Создаём статус-текст-обновляем переменную-удяляем статус-текст. (По крайней мере, именно так в гта3, на СА я не тестил.) Почитай в справке СБ кодинг-циклы. Если во время цикла надо только проверять здоровье игрока, то будет выглядеть примерно так: Code $Var = Actor.Health($PLAYER_ACTOR) 04F7: status_text $Var 0 line 1 'HEALTH' while true wait 0 if Player.Defined($PLAYER_CHAR) jf @NEUDACHA // Еcли игрок не обнаружен $Var = Actor.Health($PLAYER_ACTOR) end Ну или "метками" Code $888 = Actor.Health($PLAYER_ACTOR) 04F7: status_text $Var 0 line 1 'HEALTH' :LOOP wait 0 if Player.Defined($PLAYER_CHAR) jf @NEUDACHA // Еcли игрок не обнаружен $Var = Actor.Health($PLAYER_ACTOR) jump @LOOP Ну а чтобы убрать статус-текст, есть опкод: Code 0151: remove_status_text $Var В игре не тестил И ещё добавлю, что в клео-скриптах крайне нежелательно использовать глобальные переменные (а эти опкоды юзать можно только с глобальными). Решение этой проблеме смотреть тут (Спасибо Seeman'у) Вот с этим вариантом: Code 0AB1: call_scm_func @AddStatusText 4 VARNUMBER = 10 TYPE = 1 GXT = @StatusText LINE = 0 //будем юзать переменную 10@ :LOOP wait 0 if Player.Defined($PLAYER_CHAR) jf @NEUDACHA // Еcли игрок не обнаружен 10@ = Actor.Health($PLAYER_ACTOR) jump @LOOP Конечно, между :LOOP и jump @LOOP можно написать ещё проверок, например, если игрок достиг каких-то координат, прыгать на метку с убиранием текста(0AB1: call_scm_func @RemoveStatusText 1 VARNUMBER = 10), тем самым и "выходя" из цикла. Ну а это Code :AddStatusText 0AB1: call_scm_func @__VarToOffset 1 0@ 0@ 0AB1: call_scm_func @__LabelToOffset 1 2@ 2@ 0AA6: call_method 0x0044CDA0 struct 0x00BA1788 num_params 4 pop 0 ( LINE = 3@ GXT = 2@ TYPE = 1@ VARNUMBER = 0@ ) 0AB2: ret 0
:RemoveStatusText 0AB1: call_scm_func @__VarToOffset 1 0@ 0@ 0AA6: call_method 0x0044CE80 struct 0x00BA1788 num_params 1 pop 0 ( VARNUMBER = 0@ ) 0AB2: ret 0
:SetTimer 0AB1: call_scm_func @__VarToOffset 1 0@ 0@ 0AB1: call_scm_func @__LabelToOffset 1 2@ 2@ 0AA6: call_method 0x0044CD50 struct 0x00BA1788 num_params 3 pop 0 ( TYPE = 1@ GXT = 2@ VARNUMBER = 0@ ) 0AB2: ret 0
:StopTimer 0AB1: call_scm_func @__VarToOffset 1 0@ 0@ 0AA6: call_method 0x0044CE60 struct 0x00BA1788 num_params 1 pop 0 ( VARNUMBER = 0@ ) 0AB2: ret 0
:__VarToOffset 0A9F: 1@ = current_thread_pointer 0A8E: 2@ = 1@ + 0xDC // mission Flag 0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0 if 2@ == 1 then 1@ = 0x00A48960 // mission locals else 1@ += 0x3C end 0@ *= 4 005A: 1@ += 0@ // address of the local variable 1@ -= 0xA49960 0AB2: ret 1 1@
:__LabelToOffset if 0@ == 0 then 0AB2: ret 1 0 end 0A9F: 1@ = current_thread_pointer 1@ += 0x10 0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 // baseIP 0062: 1@ -= 0@ // label address 1@ += 3 0AB2: ret 1 1@
:StatusText 0900: 'HEALTH' //-----Это единственное, что нужно изменить. 0000: Просто поместить в конец своего скрипта (например, после команды 0a93: end_custom_thread) Надеюсь понятно обьяснил. dim1988, что делает опкод 09ef? Написал код, менял параметры, но никаких изменений не увидел=( Code {$CLEO} 0000: for 0@ = #LANDSTAL to #UTILTR1 09EF: set_behind_camera_autoposition_mode_for_car_model 0@ distance 2.0 altitude_multiplier 0.0 angle_X 0.0 end 0a93:
Мои скрипты Grand Theft Auto III HD Development Team
Сообщение отредактировал DK22Pac - Четверг, 19.08.2010, 04:16 |
|
| |
ЧИтЕР |
Дата: Четверг, 19.08.2010, 12:44 | Сообщение # 1050 |
Группа: Проверенные
Сообщений: 168
Замечания: 0%
Статус: Offline |
Quote (dim1988) В справке же есть пример Спс,все работает.Только я не могу понять,как задать актеру угол разворота ? Как заставить актера бежать ?
Сообщение отредактировал ЧИтЕР - Четверг, 19.08.2010, 13:06 |
|
| |