[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Вопросы по скриптингу Sanny Builder
wmysterio
Администраторы
Скриптер
22.11.11 21:52
Offline
Если у вас возник вопрос по скриптингу Sanny Builder, обращайтесь! Мы постараемся решить вашу проблему wink Это ещё не значит, что все прям бросятся решать во чтобы то не стало, но ответ вы сможете вы получить как вариант решения или как невозможность или сложность решения.
УВАЖАЕМЫЕ ПОЛЬЗОВАТЕЛИ! ПРОСЬБА КОД СКРИПТОВ ПОМЕЩАТЬ В КОНСТРУКЦИЮ КОДА:

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.
Прикрепления: 0248203.png(0.9 Kb) · 9085525.png(0.2 Kb)

blackful
Пользователи
29.06.13 12:36
Offline
1.blackful.
2.Взять скейтборд как предмет.
3.Скейт заменён на транспорт " Bike ",взять его можно как предмет -кнопкой " Tab ",положить на землю -кнопка " Enter ",использовать (ехать на скейборде) -кнопка " Tab " или на " F "
4.Ник скрипттера (не обязательно заполнять, нужно если вы хотите что бы именно этот автор делал скрипт)

Добавлено (29.06.13, 11:36)
---------------------------------------------
насчёт скейтборда,из скрипта "SKATE_v03" там опкод есть,автор,если что, то наверно и есть эти опкоды и строки:

Код
:NONAME_200
wait 0
if and
not Actor.Driving($PLAYER_ACTOR)
00E1: player 0 pressed_key 4
0471: actor $PLAYER_ACTOR near_object_in_rectangle 2@ radius 2.0 2.0 flag 0
jf @NONAME_337
Object.Destroy(2@)
gosub @NONAME_1116
070A: AS_actor $PLAYER_ACTOR attach_to_object 2@ offset -0.05 0.0 0.0 on_bone 6 16 perform_animation "NULL" IFP_file "NULL" time -1
21@ = Actor.Angle($PLAYER_ACTOR)
21@ += 90.0
Object.Angle(2@) = 21@
wait 1000
jump @NONAME_650

:NONAME_337
wait 0
if
04E7: object 2@ in_water
jf @NONAME_457
Object.StorePos(2@, 21@, 22@, 23@)
if
not 23@ >= 0.1
jf @NONAME_457
Object.StorePos(2@, 21@, 22@, 23@)
23@ += 0.01
Object.PutAt(2@, 21@, 22@, 23@)
0453: set_object 2@ XY_rotation -90.0 0.0 angle 0.0
jump @NONAME_457

:NONAME_457
wait 0
if or
wasted_or_busted
8471: not actor $PLAYER_ACTOR near_object_in_rectangle 2@ radius 90.0 90.0 flag 0
jf @NONAME_531
Actor.DestroyWithFade(3@)
Car.RemoveReferences(4@)
wait 3000
Object.Destroy(2@)
Car.Destroy(1@)
wait 1000
jump @NONAME_2

:NONAME_531
wait 0
if and
Actor.Driving($PLAYER_ACTOR)
8685: not object 2@ attached
jf @NONAME_196
Car.RemoveReferences(4@)
4@ = Actor.CurrentCar($PLAYER_ACTOR)
jump @NONAME_576

:NONAME_576
wait 0
if
not Actor.Driving($PLAYER_ACTOR)
jf @NONAME_608
wait 3000
jump @NONAME_196

:NONAME_608
wait 0
if
8471: not actor $PLAYER_ACTOR near_object_in_rectangle 2@ radius 90.0 90.0 flag 0
jf @NONAME_576
jump @NONAME_2

:NONAME_650
wait 0
if
00E1: player 0 pressed_key 15
jf @NONAME_809
Object.Destroy(2@)
gosub @NONAME_1116
0453: set_object 2@ XY_rotation 85.0 -90.0 angle 0.0
0992: set_player $PLAYER_CHAR weapons_scrollable 1
if
056E: car 4@ defined
jf @NONAME_200
if
0203: actor $PLAYER_ACTOR near_car 4@ radius 4.0 4.0 flag 0 on_foot
jf @NONAME_200
0681: attach_object 2@ to_car 4@ with_offset 0.0 0.15 -0.2 rotation -55.0 -70.0 -20.0
Object.CollisionDetection(2@) = False
jump @NONAME_200

:NONAME_809
wait 0
if
00E1: player 0 pressed_key 4
jf @NONAME_944
Object.Destroy(2@)
gosub @NONAME_1116
0453: set_object 2@ XY_rotation 45.0 -90.0 angle 0.0
0992: set_player $PLAYER_CHAR weapons_scrollable 1
Object.CollisionDetection(2@) = True
04ED: load_animation "DANCING"
04ED: load_animation "GFUNK"
04ED: load_animation "BIKELEAP"
04ED: load_animation "SWAT"
04ED: load_animation "FINALE"
Model.Load(#NULL)
Model.Load(#BMX)
038B: load_requested_models
jump @NONAME_1231

:NONAME_944
wait 0
if
00E1: player 0 pressed_key 7
jf @NONAME_1029
Object.Destroy(2@)
gosub @NONAME_1116
0992: set_player $PLAYER_CHAR weapons_scrollable 1
069B: attach_object 2@ to_actor $PLAYER_ACTOR with_offset -0.2 -0.2 -0.2 rotation -10.0 -70.0 -10.0
jump @NONAME_200

:NONAME_1029
wait 0
if or
wasted_or_busted
8471: not actor $PLAYER_ACTOR near_object_in_rectangle 2@ radius 90.0 90.0 flag 0
jf @NONAME_650
0992: set_player $PLAYER_CHAR weapons_scrollable 1
Object.Destroy(2@)
wait 1000
if
056E: car 4@ defined
jf @NONAME_2
Car.RemoveReferences(4@)
wait 1000
jump @NONAME_2

:NONAME_1116
Model.Load(#GUN_BOXWEE)
Model.Load(#BAT)
038B: load_requested_models

:NONAME_1128
wait 0
if and
Model.Available(#GUN_BOXWEE)
Model.Available(#BAT)
jf @NONAME_1128
04C4: store_coords_to 21@ 22@ 23@ from_actor $PLAYER_ACTOR with_offset 0.1 0.4 -1.2
2@ = Object.Create(#GUN_BOXWEE, 21@, 22@, 23@)
0992: set_player $PLAYER_CHAR weapons_scrollable 0
Actor.GiveWeaponAndAmmo($PLAYER_ACTOR, BaseballBat, 1)
wait 0
Model.Destroy(#GUN_BOXWEE)
Model.Destroy(#BAT)
return
Евгений_Сергеевич

wmysterio
Администраторы
Скриптер
29.06.13 18:03
Offline
blackful, если не будет соответствующей анимации, то в игре работать будет криво

blackful
Пользователи
30.06.13 01:24
Offline
wmysterio, анимация есть для скейта

Добавлено (30.06.13, 00:24)
---------------------------------------------
wmysterio, сможешь сделать? тем более опкод уже практически есть,только его переделать в нужную форму надо

Евгений_Сергеевич

Werewolf
Проверенные
02.07.13 19:06
Offline

Цитата
// This file was decompiled using sascm.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013

{$VERSION 3.1.1000}
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 

:NONAME_2
0001: wait 0 ms 
00D6: if 
00DF:   actor $PLAYER_ACTOR driving 
004D: jump_if_false @NONAME_2 
03C0: 3@ = actor $PLAYER_ACTOR car 
00D6: if 
056E:   car 3@ defined 
004D: jump_if_false @NONAME_2 
00D6: if 
0AB0:   key_pressed 49 
004D: jump_if_false @NONAME_88 
06A2: get_car 3@ velocity_in_direction_XYZ 0.0 5.0 10.0 
0002: jump @NONAME_88 

:NONAME_88
0001: wait 0 ms 
00D6: if 
0AB0:   key_pressed 50 
004D: jump_if_false @NONAME_134 
06A2: get_car 3@ velocity_in_direction_XYZ 0.0 10.0 20.0 
0002: jump @NONAME_134 

:NONAME_134
0001: wait 0 ms 
00D6: if 
0AB0:   key_pressed 51 
004D: jump_if_false @NONAME_2 
04BA: set_car 3@ speed_to 160.0 
0001: wait 0 ms 
0002: jump @NONAME_2
 

Эм, почему вылетает при нажатий "1"

wmysterio
Администраторы
Скриптер
02.07.13 21:18
Offline
в опкоде 06A2 реализована процедура get, то есть она будет считывать значения, а ты их задаёшь не в виде переменных а как числа.

Werewolf
Проверенные
02.07.13 21:51
Offline
То есть числа мне надо заменить переменными? А предварительно записать в переменные нужные значения?

wmysterio
Администраторы
Скриптер
02.07.13 22:30
Offline
Цитата (Werewolf)
То есть числа мне надо заменить переменными? А предварительно записать в переменные нужные значения?
Это смотря что ты пытаешься сделать. Если нужно считать, то указывать нужно переменные в опкоде 06A2. Если нужно задать, то использовать метод set(задать).  Для транспорта это опкод:
Код
07D5: set_car 3@ velocity_in_direction_XYZ 0.0 5.0 10.0 rotation_velocitiesXY 0.0 0.0 unk 0.0

Werewolf
Проверенные
03.07.13 11:39
Offline
Не мне просто нужно чтоб машина прыгала, из твоих слов я толком не понял тему

blackful
Пользователи
06.07.13 19:22
Offline
wmysterio, не работает,я пробовал как ты сказал,но никакого работоспособности нет,вот исходник:

Код
// 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
04ED: load_animation "DEALER"
Model.Load(3044)
038B: load_requested_models
jump @NONAME_27

:NONAME_27
wait 0
if and
04EE:   animation "DEALER" loaded
Model.Available(3044)
jf @NONAME_27
if and
not Actor.Driving($PLAYER_ACTOR)
0AB0:   key_pressed 9
jf @NONAME_27
Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@)
073F: get_actor_in_sphere 4@ 5@ 6@ radius 2.0 with_pedtype_civilian 1 gang 1 criminal/prostitute 1 handle_as $NAR
if
056D:   actor $NAR defined
089F: get_actor $NAR pedtype_to 10@
if
10@ == 17
if
056D:   actor $NAR defined
jf @NONAME_350
if or
Actor.Model($NAR) == #WMYDRUG
Actor.Model($NAR) == #BMYDRUG
jf @NONAME_350
if
Player.Money($PLAYER_CHAR) > 50
jf @NONAME_350
Player.Money($PLAYER_CHAR) += -50
wait 600
$OBJ = Object.Create(3044, 0.0, 0.0, 0.0)
070A: AS_actor $PLAYER_ACTOR attach_to_object $OBJ offset 0.04 0.1 -0.02 on_bone 5 16 perform_animation "NULL" IFP_file "NULL" time -1
0605: actor $PLAYER_ACTOR perform_animation_sequence "SHOP_PAY" IFP_file "DEALER" 4.0 loop 1 0 0 0 time 12000 // versionA
Model.Destroy(3044)
Actor.RemoveReferences($NAR)
wait 12000
Object.RemoveReferences($OBJ)
Object.Destroy($OBJ)
Camera.Shake(6000)
wait 10000
Camera.Restore_WithJumpCut
jump @NONAME_27

:NONAME_350
wait 0
Actor.RemoveReferences($NAR)
jump @NONAME_27

может что то не дописал?
Евгений_Сергеевич

wmysterio
Администраторы
Скриптер
06.07.13 20:05
Offline
blackful, Пробуй этот код:
Код
{$VERSION 3.1.0027}
{$CLEO .cs}

0000: NOP  
04ED: load_animation "DEALER"  
Model.Load(3044)
038B: load_requested_models  

:NONAME_27
wait 0  
if and
04EE:   animation "DEALER" loaded  
    Model.Available(3044)
jf @NONAME_27  

while true
     if AND
     not Actor.Driving($PLAYER_ACTOR)
     0AB0:   key_pressed 9   
     then
     Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@)
     08E5: get_actor_in_sphere 4@ 5@ 6@ radius 2.0 handle_as $NAR     
         if AND
         Player.Money($PLAYER_CHAR) > 50
         056D:   actor $NAR defined   
         then
         089F: get_actor $NAR pedtype_to 10@  
             if  
             10@ == 17
             then
             Player.Money($PLAYER_CHAR) += -50
             wait 600  
             $OBJ = Object.Create(3044, 0.0, 0.0, 0.0)
             070A: AS_actor $PLAYER_ACTOR attach_to_object $OBJ offset 0.04 0.1 -0.02 on_bone 5 16 perform_animation "NULL" IFP_file "NULL" time -1  
             0605: actor $PLAYER_ACTOR perform_animation_sequence "SHOP_PAY" IFP_file "DEALER" 4.0 loop 1 0 0 0 time 12000 // versionA  
             Actor.RemoveReferences($NAR)
             wait 12000  
             Object.RemoveReferences($OBJ)
             Object.Destroy($OBJ)
             Camera.Shake(6000)
             wait 10000  
             Camera.Restore_WithJumpCut
             end
         end
     end                
wait 0
end
Возможно опкод 08E5 найдёт нужного актёра.

blackful
Пользователи
07.07.13 01:35
Offline
wmysterio, спасибо,попробую)

Добавлено (06.07.13, 22:48)
---------------------------------------------
wmysterio, спасибо тебе) помогло)))

Добавлено (07.07.13, 00:35)
---------------------------------------------
wmysterio, а вот можно прикрепить анимацию DEALER/DEALER_DEAL к дилеру? ну вот когда нажимаю на "Y" происходит анимация дилера DEALER/DEALER_DEAL  а потом уже всё остальное (СЖ достаёт деньги из кармана и отдаёт дилеру,такое я уже прописал анимацию)

Евгений_Сергеевич

Yurko_UA
Друзья
07.07.13 12:20
Offline
Как записать в переменную прицеп, который прицеплен к тягачу?

Добавлено (07.07.13, 11:20)
---------------------------------------------
Я нашел адрес указателя на прицеп: +0x4C8
Как правильно это сделать? А то я в работе с памятью не очень


wmysterio
Администраторы
Скриптер
07.07.13 12:40
Offline
Цитата (Yurko_UA)
Как записать в переменную прицеп, который прицеплен к тягачу?Добавлено (07.07.13, 11:20)
---------------------------------------------
Я нашел адрес указателя на прицеп: +0x4C8
Как правильно это сделать? А то я в работе с памятью не очень
Вот простой пример:
Код
{$cleo}
0000:
model.Load(#LINERUN)
model.Load(#ARTICT1)
038B: load_requested_models

:TheCab_AA
wait 0
if AND
model.Available(#LINERUN)
model.Available(#ARTICT1)
jf @TheCab_AA
0506: set_vehicle_model #ARTICT1 next_variation 3 3
0@ = car.Create(#ARTICT1, -2039.5044, 136.4451, 28.4465)
car.Angle(0@) = 269.9084
1@ = car.Create(#LINERUN, -2025.8435, 136.9129, 28.4438)
car.Angle(1@) = 271.0394
0893: put_trailer 0@ on_cab 1@
model.Destroy(#ARTICT1)
model.Destroy(#LINERUN)

while not actor.InCar($PLAYER_ACTOR, 1@)
      if
      0ab0: 50// 2
      then
           break
      end
wait 0
end

0A97: 5@ = car 0@ struct
0A8E: 6@ = 5@ + 0x4C8   
07AC: detach_trailer 6@ from_cab 1@
0A93: end_custom_thread
При нажатии на 2, прицеп отцепится.

Yurko_UA
Друзья
07.07.13 14:38
Offline
wmysterio, Спасибо за отличный пример использования этого адреса

Добавлено (07.07.13, 13:38)
---------------------------------------------
Вот что сдесь не так? SCMLog жалуется на car defined

Код
:PLACE4_1
wait 0
0AF0: $mycar = get_int_from_ini_file "cleo\truck_1_config.txt" section "STATS" key "mycar"
0AF0: $car = get_int_from_ini_file "cleo\truck_1_config.txt" section "TRUCK" key "car"
0AF0: $trlr = get_int_from_ini_file "cleo\truck_1_config.txt" section "TRUCK" key "trailer"
0AF0: $gruz = get_int_from_ini_file "cleo\truck_1_config.txt" section "TRUCK" key "gruz"
0AF0: $ton = get_int_from_ini_file "cleo\truck_1_config.txt" section "TRUCK" key "ton"
0AF0: $placeid = get_int_from_ini_file "cleo\truck_1_config.txt" section "TRUCK" key "placeid"    
03C0: $car = actor $PLAYER_ACTOR car  
0A97: $carstruct = car $car struct
0A8E: $trailer = $carstruct + 0x4C8
if
056E: car $trailer defined
jf @SELL_4
jump @PLACE4_2

Vital
Модераторы
Скриптер
08.07.13 16:52
Offline
Yurko_UA, ты ведь получаешь адрес структуры, не так ли? Который записан в $trailer. Теперь надо перевести его в хендл при помощи 0AEB. Если я, конечно, не ошибаюсь.
2109: create_special_actor $VITAL in_front_of_computer

Yurko_UA
Друзья
09.07.13 11:33
Offline
Vital, Одну ошибку я исправил, ща попробую догнать, что там переводить

Добавлено (08.07.13, 20:55)
---------------------------------------------
Вот код

Вот доклад SCMLog`a:

Код
thread buy_sell
   Local variables dump:
   515 131073 131074 131075 131076 23658641 34537618 26542228 15007893 131077 13500566 131078 11272343 131079 9633944 131080
   7536793 131081 4718746 131082 2883739 131083 2228380 131084 1310877 0 0 0 0 0 0 0
********************************************

00012670: 00D6
    get numeric params: 1
      param 1 = 0

00012674: 0103
    get numeric params: 8
      param 1 = 1
      param 2 = -996937772
      param 3 = -997390921
      param 4 = 1124202696
      param 5 = 1082130432
      param 6 = 1082130432
      param 7 = 1086324736
      param 8 = 0

00012711: 004D (&IFresult = True)
    get numeric params: 1
      param 1 = -13934 (&label: 0001)

00012718: 0002
    get numeric params: 1
      param 1 = -12725 (&label: 0001)

00012725: 0001
    get numeric params: 1
      param 1 = 0


Как видите, СКМ Лог трындит на 0103 при том, что я в машине нахожусь в том самом месте, если вылезаю с тачки, игра крэшует.

Добавлено (09.07.13, 10:33)
---------------------------------------------
Проблема решена!!!
Отредактировал Yurko_UA - Вторник, 09.07.13, 11:34

Sweeper
Проверенные
09.07.13 13:18
Offline
Почему новая Sanny Builder пишет: неизвестная команда car.Defined(1@)? А в старой версии все было нормально.

wmysterio
Администраторы
Скриптер
10.07.13 01:26
Offline
Sweeper, Это связано с новой версией Sanny Builder, а точнее с базой данных классов в файле Classes.db. Он там попросту отсутствует или переименован.

Sweeper
Проверенные
10.07.13 14:58
Offline
В чем отличия между $PLAYER_ACTOR и  $PLAYER_CHAR?

Werewolf
Проверенные
10.07.13 18:24
Offline
Player Actor можно юзять и для игрока и для актера, а Плауер 4ар, только для игрока

Форум » Игры серии GTA » GTA San Andreas » Вопросы по скриптингу Sanny Builder (Вы можете получить ответы на вопросы по SB)
Поиск: