[ Новые сообщения · Участники · Правила форума · Поиск · 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)

Werewolf
Проверенные
11.08.12 21:36
Offline
wmysterio, Исходник а различие между CS и исходником

Мне Fastman92 дал не мало исходников сказал что они мне помогут когда мы общались по скайпу, но я не могу в них разобраться

Добавлено (11.08.2012, 19:36)
---------------------------------------------
wmysterio, Я говорю про драйв би режим игрока прицел не колебается
Когда я активировал через память режим драйв режим то прицел постоянно вперед только идет


wmysterio
Администраторы
Скриптер
11.08.12 21:49
Offline
Quote (Werewolf)
Когда я активировал через память режим драйв режим то прицел постоянно вперед только идет
Я использовал опкод:
Code
0713: actor $PLAYER_ACTOR driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 360.0 8 1 firing_rate 100
Здесь 360.0 - это угол обзора, в данном случаи актёр может поворачивать прицел на все углы. Если поставить 100.0, то он сможет только на 100.0 градусов поворачивать прицел, дальше игра не пустит.

Quote (Werewolf)
Исходник а различие между CS и исходником
В исходниках присутствуют команды такие команды, как while, then, else, continue и сам код построен аккуратно, с комментариями(хотя есть исключение, когда эти команды попросту не нужны) - то есть он читабельный. Если такого не наблюдается в коде, значит это не исходник, а просто откомпилированный код.

Werewolf
Проверенные
11.08.12 21:53
Offline
wmysterio, Я лично исходники удалял и когда я поднимал вопрос по созданию панели надо было представить исходник то я представил компилированный код и while, then, erlse, continue я не использую так как не понимаю их значение, мне легче читать компилированный код сам CS

а что значит point 0.0 0.0 0.0 и 8 1 firing_rate 100

Добавлено (11.08.2012, 19:53)
---------------------------------------------
А этот опкод работает если игрок на водительском месте?


wmysterio
Администраторы
Скриптер
11.08.12 22:51
Offline
Quote (Werewolf)
А этот опкод работает если игрок на водительском месте?
Да, работает. Садишь СЖ на место водителя и запускаешь драйв режим.

wmysterio
Администраторы
Скриптер
11.08.12 22:52
Offline
Quote (Werewolf)
Этот опкод правда может дать актеру драв би режим без лазейки в память ?
Дать то можно, но управление этим режимом очень неудобное

Werewolf
Проверенные
11.08.12 22:57
Offline
wmysterio, Вот блядство прицел так же колибается он такой же как и при лазейки в памяти, видно в игре не предусмотрен драйв би с водительского места

wmysterio
Администраторы
Скриптер
11.08.12 23:17
Offline
Werewolf, дело всё в камере. она пытается повернуть в сторону двигателя, по этому её так дёргает sad
Нужно покопаться в опкодах, может удастся как то отключить такое поведение

Tom_Harison
Друзья
SA:MP Scripter
11.08.12 23:19
Offline
счетчик показывает что я убил 51 балласов, но я убил более 200.
Если убивать балласа который стреляет к счетчику добавится единицу, а если стрелять в водилу нечего..
Нормально, молодец wmysterio

wmysterio
Администраторы
Скриптер
11.08.12 23:35
Offline
Quote (Tom_Harison)
Если убивать балласа который стреляет к счетчику добавится единицу, а если стрелять в водилу нечего..
Хм... Странно... У меня засчитывает только когда я прострелю бак байка happy

Slivkin-Sergey
Модераторы
12.08.12 12:32
Offline
Вот я откопал в поисковике опкод 0472: actor $PLAYER_ACTOR near_object_in_rectangle 0@ radius 5.0 5.0 flag 0 on_foot. Как им воспользоваться, чтоб проверить приближение игрока к объекту 5@ на метр?

wmysterio
Администраторы
Скриптер
12.08.12 16:30
Offline
Slivkin-Sergey, установи оба параметра 5.0 на 1.0

Slivkin-Sergey
Модераторы
13.08.12 18:52
Offline
Code
// 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---------------
thread 'STARTER'  

:STARTER_11
wait 0  
if  
   $ONMISSION == 0  
jf @STARTER_11  
1@ = Marker.CreateIconAndSphere(38, 2516.715, -1675.623, 14.0238)

:STARTER_55
wait 0  
if and
   $ONMISSION == 0  
00ED:   actor $PLAYER_ACTOR 0 near_point 2516.715 -1675.623 radius 0.5 0.5 on_foot  
jf @STARTER_55  
wait 500  
Marker.Disable(1@)
00BE: text_clear_all  
03E6: remove_text_box  
00BA: show_text_styled GXT 'BASTNAME' time 1000 style 2  
fade 0 1000  
wait 1000  
0A94: start_custom_mission "BAST"   
jump @STARTER_11


Почему-то не показывается текст "BASTNAME", хотя все .fxt файлы на месте.

Code
// 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 .cm}

//------------- Mission ---------------
thread 'BAST'  

:BAST_1
gosub @BAST_53  
if  
wasted_or_busted  
jf @BAST_38  
gosub @BAST_307  

:BAST_38
wait 0  
$ONMISSION = 0  
mission_cleanup  
end_thread  

:BAST_53
wait 0  
increment_mission_attempts  
$ONMISSION = 1  
Player.CanMove($PLAYER_CHAR) = False
023C: load_special_actor 'SWEET' as 1 // models 290-299  
038B: load_requested_models  

:BAST_112
wait 0  
if and
023D:   special_actor 1 loaded  
04EE:   animation "PED" loaded  
jf @BAST_112  
1@ = Actor.Create(CivMale, #SPECIAL01, 0.0, 0.0, 0.0)
wait 1  
select_interior 1  
0860: link_actor $PLAYER_ACTOR to_interior 1  
0860: link_actor 1@ to_interior 1  
Actor.PutAt($PLAYER_ACTOR, 2525.013, -1679.756, 1015.499)
Actor.PutAt(1@, 2535.95, -1672.965, 1015.499)
Actor.Angle(1@) = 175.3315
0605: actor 1@ perform_animation_sequence "SEAT_IDLE" IFP_file "PED" 4.0 loop 0 0 0 1 time -1 // versionA  
wait 500  
fade 1 500  
02A3: enable_widescreen 1  
0804: AS_actor $PLAYER_ACTOR walk_to 2535.0295 -1674.5607 1015.4986 angle 0.0 radius 0.2 animation "ROADCROSS" IFP_file "PED" 4.0 LA 0 LX 0 LY 0 LF 0 LT -1  
wait 7000
Player.CanMove($PLAYER_CHAR) = True
$ONMISSION = 0  
end_thread  

:BAST_307
wait 0  
gosub @BAST_320  
return  

:BAST_320
wait 0  
mission_cleanup  
return  


Сам код миссии (на всякий).

В том проблема, что после становления на маркер экран затемняется, и миссия запускается, но перед этим надо подождать минут 5 с чёрным экраном wacko .

Yurko_UA
Друзья
13.08.12 19:47
Offline
Привет всем! От появилась проблемка

Написал скрипт, чтоб на дорогах до тракторов цепляло плуг, для грузовых машин прицепы и т.д. , но скрипт не работает, вылетает игра при загрузке.

Делал вроди все правильно, писал по примеру одного скрипта.

Вот текст моего скрипта:

Code


// 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---------------
0001: wait 0 ms  
0004: $Y = 0.0  
0004: $X = 0.0  
0004: $Z = 0.0  
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 380.0 380.0 30.0  
04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset -380.0 -380.0 -30.0  
0002: jump @NONAME_99  

:NONAME_99
0001: wait 0 ms  
053E: 0@ = get_random_car_with_model -1 in_rectangle_cornerA 1@ 2@ cornerB 4@ 5@  
00D6: if and
8039:   not  0@ == -1  
82CA:   not car 0@ bounding_sphere_visible  
0137:   car 0@ model == #TRACTOR  
004D: jump_if_false @NONAME_99  
0002: jump @NONAME_160  

:NONAME_160
0001: wait 0 ms  
0209: 10@ = random_int_in_ranges 605 612  
00D6: if or
0038:   10@ == 611  
0038:   10@ == 610  
0038:   10@ == 607  
0038:   10@ == 606  
004D: jump_if_false @NONAME_160  
0001: wait 0 ms  
0247: load_model 10@  
038B: load_requested_models  

:NONAME_229
0001: wait 0 ms  
00D6: if  
0248:   model 10@ available  
004D: jump_if_false @NONAME_229  
0001: wait 0 ms  
00A5: 20@ = create_car 10@ at $X $Y $Z  
0893: put_trailer 20@ on_cab 0@  
02AA: set_car 0@ immune_to_nonplayer 1  
00AF: set_car 0@ driver_behaviour_to 1  
01C3: remove_references_to_car 0@ // Like turning a car into any random car  
01C3: remove_references_to_car 20@ // Like turning a car into any random car  
0249: release_model 10@  
0002: jump @NONAME_314  

:NONAME_314
0001: wait 0 ms  
053E: 0@ = get_random_car_with_model -1 in_rectangle_cornerA 1@ 2@ cornerB 4@ 5@  
00D6: if and
8039:   not  0@ == -1  
82CA:   not car 0@ bounding_sphere_visible  
004D: jump_if_false @NONAME_314  
00D6: if or
0137:   car 0@ model == #LINERUN  
0137:   car 0@ model == #PETRO  
0137:   car 0@ model == #RDTRAIN  
004D: jump_if_false @NONAME_314  
0002: jump @NONAME_402  

:NONAME_402
0001: wait 0 ms  
0209: 10@ = random_int_in_ranges 434 592  
00D6: if or
0038:   10@ == 435  
0038:   10@ == 450  
0038:   10@ == 584  
0038:   10@ == 591  
004D: jump_if_false @NONAME_402  
0001: wait 0 ms  
0247: load_model 10@  
038B: load_requested_models  

:NONAME_471
0001: wait 0 ms  
00D6: if  
0248:   model 10@ available  
004D: jump_if_false @NONAME_471  
0001: wait 0 ms  
00A5: 20@ = create_car 10@ at $X $Y $Z  
0893: put_trailer 20@ on_cab 0@  
02AA: set_car 0@ immune_to_nonplayer 1  
00AF: set_car 0@ driver_behaviour_to 1  
01C3: remove_references_to_car 0@ // Like turning a car into any random car  
01C3: remove_references_to_car 20@ // Like turning a car into any random car  
0249: release_model 10@  
0002: jump @NONAME_556  

:NONAME_556
0001: wait 0 ms  
053E: 0@ = get_random_car_with_model -1 in_rectangle_cornerA 1@ 2@ cornerB 4@ 5@  
00D6: if and
8039:   not  0@ == -1  
82CA:   not car 0@ bounding_sphere_visible  
0137:   car 0@ model == #TOWTRUCK  
004D: jump_if_false @NONAME_556  
0002: jump @NONAME_617  

:NONAME_617
0001: wait 0 ms  
0209: 10@ = random_int_in_ranges 603 606  
00D6: if or
0038:   10@ == 604  
0038:   10@ == 605  
004D: jump_if_false @NONAME_617  
0001: wait 0 ms  
0247: load_model 10@  
038B: load_requested_models  

:NONAME_670
0001: wait 0 ms  
00D6: if  
0248:   model 10@ available  
004D: jump_if_false @NONAME_670  
0001: wait 0 ms  
00A5: 20@ = create_car 10@ at $X $Y $Z  
0893: put_trailer 20@ on_cab 0@  
02AA: set_car 0@ immune_to_nonplayer 1  
00AF: set_car 0@ driver_behaviour_to 1  
01C3: remove_references_to_car 0@ // Like turning a car into any random car  
01C3: remove_references_to_car 20@ // Like turning a car into any random car  
0249: release_model 10@  
0002: jump @NONAME_99  


Надеюсь тут мне помогут wink

Добавлено (13.08.2012, 17:47)
---------------------------------------------
и еще, как узнать координаты относительно автомобиля, актера? И координаты относительно геометрического центра актёра?


SanKing
Друзья
14.08.12 10:19
Offline
Yurko_UA,
04C4: create_coordinate $10 $20 $30 from_actor $Actor offset 0.0 0.0 0.0// заносит в переменные $10 $20 $30 расстояние от геом. центра актёра по координатным осям.

Yurko_UA
Друзья
14.08.12 12:01
Offline
Поможете?

NARC
Проверенные
14.08.12 16:36
Offline
Quote (Slivkin-Sergey)
Почему-то не показывается текст "BASTNAME", хотя все .fxt файлы на месте
Длина строки превышает 7 символов, вот и не выводится

Yurko_UA, ну алгоритм правильный, только не понятно почему модели 611, 610, 607, 606 ты отнёс к Cab'ам wacko
в место прицепления пробуй приаттачить опкодом
Code
0683: attach_car 2@ to_car 0@ with_offset 0.0 -4.6 0.0 rotation 15.0 0.0 0.0

wmysterio
Администраторы
Скриптер
14.08.12 17:18
Offline
Quote (NARC)
только не понятно почему модели 611, 610, 607, 606 ты отнёс к Cab'ам
Ты частично прав. Они цепляются не ко всем моделям транспорта, однако они могут чеплятся как кэбы.

Quote (Yurko_UA)
Поможете?
Помогу. Собственно ничего особо не пришлось редактировать, только поиск машин поменял:
Code
{$CLEO .cs}   
0000:

while true
      04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0       
      if
      0AE2: 0@ = random_vehicle_near_point 1@ 2@ 3@ in_radius 100.0 find_next 0 pass_wrecked 1 //IF and SET
      then
          if
          82CA:   not car 0@ bounding_sphere_visible   
          then          
              if   
              0137:   car 0@ model == #TRACTOR   
              then   
              0AB1: call_scm_func @NANAME_1 1 0@
              end       
              if OR
              0137:   car 0@ model == #LINERUN    
              0137:   car 0@ model == #PETRO    
              0137:   car 0@ model == #RDTRAIN
              then    
              0AB1: call_scm_func @NANAME_2 1 0@
              end   
              if
              0137:   car 0@ model == #TOWTRUCK    
              then
              0AB1: call_scm_func @NANAME_3 1 0@
              end                         
          end    
      end        
wait 0
end

// scm-функции:
goto @NANAME_1_1
:NANAME_1
0209: 1@ = random_int_in_ranges 605 612    
if or   
1@ == 611    
1@ == 610    
1@ == 607    
1@ == 606    
jf @NANAME_1
0247: load_model 1@    
038B: load_requested_models    

:NANAME_1_A   
wait 0
if    
model.available(1@)     
jf @NANAME_1_A
00A5: 2@ = create_car 1@ at 0.0 0.0 0.0    
0893: put_trailer 2@ on_cab 0@    
02AA: set_car 0@ immune_to_nonplayer 1    
00AF: set_car 0@ driver_behaviour_to 1    
01C3: remove_references_to_car 0@   
01C3: remove_references_to_car 2@    
0249: release_model 1@
0AB2: ret 0
:NANAME_1_1

goto @NANAME_2_1
:NANAME_2
0209: 1@ = random_int_in_ranges 434 592    
if or   
1@ == 435    
1@ == 450    
1@ == 584    
1@ == 591    
jf @NANAME_2
0247: load_model 1@    
038B: load_requested_models    

:NANAME_2_A   
wait 0
if    
model.available(1@)     
jf @NANAME_2_A
00A5: 2@ = create_car 1@ at 0.0 0.0 0.0    
0893: put_trailer 2@ on_cab 0@    
02AA: set_car 0@ immune_to_nonplayer 1    
00AF: set_car 0@ driver_behaviour_to 1    
01C3: remove_references_to_car 0@   
01C3: remove_references_to_car 2@
0249: release_model 1@
0AB2: ret 0
:NANAME_2_1

goto @NANAME_3_1
:NANAME_3
0209: 1@ = random_int_in_ranges 603 606    
if or   
1@ == 604    
1@ == 605   
jf @NANAME_3
0247: load_model 1@    
038B: load_requested_models    

:NANAME_3_A   
wait 0
if    
model.available(1@)     
jf @NANAME_3_A
00A5: 2@ = create_car 1@ at 0.0 0.0 0.0    
0893: put_trailer 2@ on_cab 0@    
02AA: set_car 0@ immune_to_nonplayer 1    
00AF: set_car 0@ driver_behaviour_to 1    
01C3: remove_references_to_car 0@   
01C3: remove_references_to_car 2@     
0249: release_model 1@
0AB2: ret 0
:NANAME_3_1
Ну и ещё сделал цепления кэбов в scm-функциях

Yurko_UA
Друзья
14.08.12 17:19
Offline
NARC, а как узнать координаты относительно автомобиля?

Добавлено (14.08.2012, 15:19)
---------------------------------------------
wmysterio, спасибо, попробую!


NARC
Проверенные
14.08.12 17:20
Offline
Yurko_UA,
Code
0407: store_coords_to 120@ 130@ 140@ from_car 543@ with_offset -0.337 1.566 0.657  

wmysterio
Администраторы
Скриптер
14.08.12 17:21
Offline
Quote (Yurko_UA)
спасибо, попробую!
только иногда бывают вылеты. а так же почему то тракторов игнорирует. В большинстве случаев ничего не цепляет

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