Скрипты для GTA от dim1988 aka d88

Главная | Регистрация | Вход

Приветствую Вас Гость | RSS
[Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Вопросы по созданию скриптов
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
Quote (Ford)
612 и 613

Ну тогда попробуй эти ID написать в скрипте вместо названия модели. Хотя я не уверен, что получится, я когда-то так же пробовал использовать в скрипте новых педов, но они не загружались.
Quote (ЧИтЕР)
SOR1

А где этот текст? Я имею ввиду в каком файле, 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 файле, попробуй переписать нужную строку. И чтоб проверить текст, нужно выйти из игры, а потом снова запустить её, а не только сэйв.

Все нормально работает на других файлах (не моего производства biggrin )
 
 
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, ясно спасибо за помощь
подскажи как это сделать)) biggrin


Сообщение отредактировал TRINITY - Среда, 18.08.2010, 22:03
 
 
DK22Pac Дата: Четверг, 19.08.2010, 03:50 | Сообщение # 1049
Группа: Проверенные
Сообщений: 205
Замечания: 0%
Статус: Offline
Quote
обновлять код 04F7:

В этом нет надобности.
047F работает вместе с 0151.
Создаём статус-текст-обновляем переменную-удяляем статус-текст. (По крайней мере, именно так в гта3, на СА я не тестил.)
Quote
как это сделать

Почитай в справке СБ кодинг-циклы.

Если во время цикла надо только проверять здоровье игрока, то будет выглядеть примерно так:

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

В игре не тестил cool

И ещё добавлю, что в клео-скриптах крайне нежелательно использовать глобальные переменные (а эти опкоды юзать можно только с глобальными). Решение этой проблеме смотреть тут (Спасибо 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
 
 
Поиск:

Copyright dim1988 aka d88 © 2025
Сайт управляется системой uCoz