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

или

Также указывайте полный код скрипта, иначе причина ошибок может быть и не выявлена.

Внимание! От этого момента тема предназначена ещё и для заказов скриптов и миссий. Я это сделал по одной причине - пользователи постоянно путают/или не ищут темы и приводят заказ здесь. Теперь этой путаницы не будет. Здесь можно проводить заказы, но Вы должны указать в начале поста текст "НА ЗАКАЗ". Постарайтесь как можно детальнее объяснить суть скрипта.
Прикрепления: 0248203.png(1Kb) · 9085525.png(0Kb)

Slivkin-Sergey
Модераторы
31.07.14 13:53
Offline
Код выложить для начала.

Shon_Uoker
Пользователи
31.07.14 16:35
Offline
Спасибо, уже разобрался!

Добавлено (31.07.14, 15:35)
---------------------------------------------
Создал такой скрипт:

Код
{$CLEO .cs}
create_thread @job1    
        
:job1
wait 0
Marker.CreateIconAndSphere($Mark,52, 2129.9299, -2276.4841, 20.6643)
if
0101: actor $PLAYER_ACTOR stopped_near_point 2508.7458 -1683.5065 13.56 radius 3.0
jf @job1
03E5: show_text_box 'job1'
end_thread

Но при попытки компиляции появляется ошибка: Недостаточно параметров. Ожидалось 8 параметров.
Подскажите новичку smile
Ещё: создавал Транспорт по справке в Sanny Builder, а при компиляции такая же ошибка, только пишет 13 параметров вместо 8. 
Скрипт:

Код
{$CLEO .cs}
create_thread @MyCars
:MyCars
wait 0
014B: $Car = init_parked_car_generator #BIKE 8 8 0 alarm 0 door_lock 0 1 400 at 2391.0374, -1914.8796, 13.5469 angle 270.0
014C: set_parked_car_generator $Car cars_to_generate_to 101
end_thread
Отредактировал Shon_Uoker - Четверг, 31.07.14, 17:30

Yurko_UA
Модераторы
Модератор
31.07.14 17:55
Offline
Цитата Shon_Uoker ()
{$CLEO .cs} create_thread @MyCars
:MyCars
wait 0
014B: $Car = init_parked_car_generator #BIKE 8 8 0 alarm 0 door_lock 0 1 400 at 2391.0374, -1914.8796, 13.5469 angle 270.0
014C: set_parked_car_generator $Car cars_to_generate_to 101
end_thread
Опкод "end_thread" только для клео миссий и миссий в main.scm
Опкод create_thread @MyCars только для main.scm

{$CLEO .cs} 
thread 'MyCars '

:MyCars 
wait 0 
014B: 1@ = init_parked_car_generator #BIKE 8 8 0 alarm 0 door_lock 0 1 400 at 2391.0374, -1914.8796, 13.5469 angle 270.0 
014C: set_parked_car_generator 1@ cars_to_generate_to 101 
0A93: end_custom_thread

Также в клео-скриптах вместо новых глобальных переменных (те, что со знаком $) лучше использовать локальные (0@ ... 31@)

Добавлено (31.07.14, 16:55)
---------------------------------------------
{$CLEO .cs} 
thread 'job1'  
Marker.CreateIconAndSphere(1@,52, 2129.9299, -2276.4841, 20.6643) 
        
:job1 
wait 0 
if 
0101: actor $PLAYER_ACTOR stopped_near_point 2508.7458 -1683.5065 13.56 radius 3.0 
jf @job1 
03E5: show_text_box 'job1' 
0A93: end_custom_thread


Shon_Uoker
Пользователи
31.07.14 18:12
Offline
Та же ошибка в первом случае Ошибка в строке: 0101: actor...
Та же ошибка во втором случае с MyCars, ошибка в строке: 014B: 1@...
sad

wmysterio
Администраторы
Скриптер
31.07.14 18:26
Offline
Цитата Shon_Uoker ()
Та же ошибка в первом случае Ошибка в строке: 0101: actor...
Нужно указать все 8 параметров опкода
Код
{$CLEO .cs}   
thread 'job1'    
1@ = Marker.CreateIconAndSphere(52, 2129.9299, -2276.4841, 20.6643)   
        
:job1   
wait 0   
if   
0101:   actor $PLAYER_ACTOR in_sphere 2508.7458 -1683.5065 13.56 radius 3.0 3.0 3.0  sphere 0 stopped
jf @job1   
03E5: show_text_box 'job1'   
0A93: end_custom_thread
У Вашем случаи было только 5 из 8.
Цитата Shon_Uoker ()
Та же ошибка во втором случае с MyCars, ошибка в строке: 014B: 1@...
Такой-же ответ: укажите правильное к-во параметров:
Код
{$CLEO .cs}   
thread 'MyCars'  
014B: 1@ = init_car_generator #BIKE color 8 8 force_spawn 0 alarm 0 door_lock 0 min_delay 1 max_delay 400 at 2391.0374 -1914.8796 13.5469 angle 270.0  
014C: set_parked_car_generator 1@ cars_to_generate_to 101   
0A93: end_custom_thread

Shon_Uoker
Пользователи
01.08.14 13:48
Offline
Огромное Вам спасибо, wmysterio!

Добавлено (01.08.14, 12:48)
---------------------------------------------
Привет всем! Столкнулся с такой проблемой:
Сделал несколько актеров и добавил анимации. У первого актера анимация проигрывается, а у остальных нет. Подскажите пожалуйста, что делать. Заранее спасибо!
Скрипт:

Код
{$CLEO .cs}

thread 'actors_for_job1'

//Çàãðóçêà ìîäåëåé
model.Load(#WMYCONB) //íà÷àëüíèê ñêëàäà
model.Load(#DWMYLC2) //äàëüíîáîéùèê
model.Load(#BMYCON)  //ðàáîòíèê ñêëàäà
model.Load(#WMYSGRD) //îõðàííèê ñêëàäà
model.Load(#WMYCON)  //ïðîðàá
038B: load_requested_models

//Ñîçäàíèå àêòåðà "Ïüÿíûé ðàáîòíèê ñêëàäà"
:worker1
1@ = Actor.Create(CivMale, #BMYCON, 2191.7241, -2245.2095, 13.509)
wait 0
Actor.Angle(1@) = 230.0
04ED: load_animation "CRACK"
04EE: animation "CRACK" loaded
0605: actor 1@ perform_animation_sequence "CRCKIDLE2" from_file "CRACK" 4.0 loop 1 0 0 1 -1 ms
wait 1000
jump @prorab

//Ñîçäàíèå àêòåðà "Ïðîðàá"
:prorab
3@ = Actor.Create(CivMale, #WMYCON, 2194.3992, -2278.4136, 13.5469)
Actor.Angle(3@) = 47.0
wait 0
04ED: load_animation "CRACK"
04EE: animation "GANGS" loaded
0605: actor 3@ perform_animation_sequence "PRTIAL_GNGTLKH" from_file "GANGS" 4.0 loop 1 0 0 1 -1 ms
wait 1000
jump @worker_2

//Ñîçäàíèå àêòåðà "Ðàáîòíèê ñêëàäà" ðàçãîâàðèâàþùèé ñ ïðîðàáîì
:worker_2
wait 0
4@ = Actor.Create(CivMale, #BMYCON, 2193.5093, -2277.6011, 13.5469)
Actor.Angle(4@) = 225.0
wait 1000
jump @worker_3

//Ñîçäàíèå àêòåðà "Ðàáîòíèê ñêëàäà"  êóðèò
:worker_3
5@ = Actor.Create(CivMale, #BMYCON, 2209.1672, -2286.3472, 14.7647)
Actor.Angle(5@) = 132.0
wait 0
04ED: load_animation "LOWRIDER"
04EE: animation "CRACK" loaded
0605: actor 5@ perform_animation_sequence "F_smklean_loop" from_file "LOWRIDER" 4.0 loop 1 0 0 1 -1 ms    

0A93: end_custom_thread
Отредактировал Shon_Uoker - Пятница, 01.08.14, 17:06

SnakeR
Проверенные
01.08.14 15:31
Offline
Народ, а кто нибудь может подсказать где в мейне найти кусок кода, который отвечает за мини игру про лоурайдеров?

BoPoH
Друзья
01.08.14 17:36
Offline
Цитата Shon_Uoker ()
Сделал несколько актеров и добавил анимации. У первого актера анимация проигрывается, а у остальных нет.

Прежде чем использовать анимации, их нужно загрузить.

Shon_Uoker
Пользователи
02.08.14 07:00
Offline
Разобрался, спасибо!

Добавлено (02.08.14, 06:00)
---------------------------------------------
Опять у меня "нуба" возник вопрос:
Делал скрипт покупки одежды. Если игрок встает на сферу, то: игроку нельзя двигаться, пропадает радар, появляется надпись внизу. Если игрок нажал D то у игрока меняется скин, если нажал SPACE, то у игрока скин остается навсегда, и пропадают деньги(типа купил), если нажал ENTER, то: у игрока возвращается прошлый скин, появляется радар, игрок может двигаться. Вот мой скрипт, но почему то надпись появляется сразу после начала новой игры, и когда встаю на сферу, то ничего не происходит.


Код
{$CLEO .cs}

03BC: $SHOP = create_sphere_at 217.3893 -99.0854 1005.2578 radius 1.0
if and
wait 0
not Actor.Driving($PLAYER_ACTOR)
0101:actor $PLAYER_ACTOR in_sphere 217.3893 -99.0854 1005.2578 radius 1.0 1.0 1.0 sphere 0 stopped
jf @SHOP1

:SHOP1
wait 0
Actor.Angle($PLAYER_ACTOR) = 95
01B4: toggle_player $PLAYER_CHAR can_move 0
0581: toggle_radar 0
00BB: show_text_lowpriority GXT 'SHOP1' time 5000 flag 1
jump @SHOP2

:SHOP2
if and
0@ = 304536
wait 0
&0(0@,1i) == 0xFF
jf @skin1
:skin1
Model.Load(#BMORI)
038B: load_requested_models  
09C7: change_player $PLAYER_CHAR model_to #BMORI
if and
wait 0
&0(0@,1i) == 0x00FF0000
jf jump @SHOP3

:SHOP3
wait 0
if  
not Model.Available(#SBMYTR3)  
then  
Model.Load(#SBMYTR3)  
038B: load_requested_models  
end  
09C7: change_player $PLAYER_CHAR model_to #SBMYTR3  
01B4: toggle_player $PLAYER_CHAR can_move 1
0581: toggle_radar 1
   
0A93: end_custom_thread

wmysterio
Администраторы
Скриптер
02.08.14 11:46
Offline
Цитата Shon_Uoker ()
Делал скрипт покупки одежды. Если игрок встает на сферу, то: игроку нельзя двигаться, пропадает радар, появляется надпись внизу. Если игрок нажал D то у игрока меняется скин, если нажал SPACE, то у игрока скин остается навсегда, и пропадают деньги(типа купил), если нажал ENTER, то: у игрока возвращается прошлый скин, появляется радар, игрок может двигаться. Вот мой скрипт, но почему то надпись появляется сразу после начала новой игры, и когда встаю на сферу, то ничего не происходит.
Вот образец. Я не тестировал в игре, но должно что-то получитс
Код
{$CLEO .cs}   
  thread 'SHOP'  
  03BC: $SHOP = create_sphere_at 217.3893 -99.0854 1005.2578 radius 1.0   

  :SHOP_1  
  wait 0  
  if and   
  not Actor.Driving($PLAYER_ACTOR)   
  0101:actor $PLAYER_ACTOR in_sphere 217.3893 -99.0854 1005.2578 radius 1.0 1.0 1.0 sphere 0 stopped   
  jf @SHOP_1   
  gosub @SHOP_LOAD_MODEL  
  0665: get_actor $PLAYER_ACTOR model_to 1@  
  PLayer.CanMove($PLAYER_CHAR) = false  
  Actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)   
  Actor.Angle($PLAYER_ACTOR) = 95.0   
  0581: enable_radar 0  
  00BB: show_text_lowpriority GXT 'SHOP1' time 5000 flag 1   
  2@ = 0  

  :SHOP2   
  wait 0  
  if  
  0AB0:   key_pressed 32 // Space  
  then  
  jump @SHOP_END  
  end  
  if  
  0AB0:   key_pressed 13 // Enter  
  then  
      if  
      82F2:   not actor $PLAYER_ACTOR model == 1@  
      then  
      09C7: change_player $PLAYER_CHAR model_to 1@   
      end  
  jump @SHOP_END  
  end  
  if  
  0AB0:   key_pressed 68 // D  
  then  
  2@ += 1  
      if  
      2@ > 1  
      then  
      2@ = 0  
      end  
      if  
      2@ == 0  
      then  
      09C7: change_player $PLAYER_CHAR model_to #SBMYTR3  
      else  
      09C7: change_player $PLAYER_CHAR model_to #BMORI  
      end  
  wait 1000  
  end  
  jump @SHOP2  

  :SHOP_LOAD_MODEL  
  if  
  not Model.Available(#SBMYTR3)  
  then  
  Model.Load(#SBMYTR3)   
  end  
  if  
  not Model.Available(#BMORI)  
  then  
  Model.Load(#BMORI)     
  end   
  038B: load_requested_models   
  return  

  :SHOP_END  
  Player.CanMove($PLAYER_CHAR) = true  
  Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)   
  Model.Destroy(#SBMYTR3)  
  Model.Destroy(#BMORI)   
  0A93: end_custom_thread
P.S В дальнейшем, используйте только 1 заголовок для метод и меняйте её окончания. Лично у меня иногда игра крашит из того, что я использую разный префикс для меток. Плюс, по-моему, код лучше читается.

BoPoH
Друзья
02.08.14 17:30
Offline
Цитата wmysterio ()
:SHOP_1
wait 0
if and  
not Actor.Driving($PLAYER_ACTOR)  
0101:actor $PLAYER_ACTOR in_sphere 217.3893 -99.0854 1005.2578 radius 1.0 1.0 1.0 sphere 0 stopped  
jf @SHOP1  

Ошибка. Переименуй метку SHOP_1 в SHOP1 или наоборот.

SnakeR
Проверенные
03.08.14 13:15
Offline
Ставлю на карту тачку

Код
0@ = car.Create(#VOODOO,2573.1941, -2194.3745, -0.2187)  
car.Angle(0@) = 0.0

Создаю актера отдельно 
Код
actor.Create($IVAN,4,#BMYPOL1,2571.1941, -2194.3745, -0.2187)
actor.Angle($IVAN) = 0.0

потом пытаюсь его посадить в машину 
Код
036A: put_actor $IVAN in_car 0@
  В итоге, он появляется рядом с машиной как труп, причем когда машина прорисовывается, кажется что она падает на него, тот же эффект если создавать актера сразу как водителя

Код
actor.CreateAsDriver($IVAN,4,#BMYPOL1,0@)
В чем может быть проблема?

И еще, в файле где хранятся аудиозоны, добавил свою с нужными координатами, но она не работает(
Запускаю ее так
Код
0917: audio_zone 'LOWRIDERS' enable_sound 1

Добавлено (03.08.14, 12:15)
---------------------------------------------
И еще, вот эти опкоды на тачку никак не действуют


Код
0ABE: vehicle 0@ engine_on
067F: set_car 0@ headlights 1

Vital
Друзья
Скриптер
03.08.14 16:14
Offline
Насчёт актёра идей пока нет у меня, а вот про два опкода нашёл кое-что на очень полезном сайте, которым рекомендую пользоваться, если нет уверенности в работе опкодов: http://gtag.gtagaming.com/opcode-database/
Там сказано, что 0АВЕ это вообще условие и должно выглядеть вот так: "0ABE: is_car_engine_on 0@", в SB формулировка другая, но есть отличная черта всех условий - отступ перед началом текста опкода. И этот опкод вернёт true в блоке условий, если двигатель машины включён.
А 067F имеет, судя по описанию на сайте, следующие флаги:
0 = NO_CAR_LIGHT_OVERRIDE
1 = FORCE_CAR_LIGHTS_OFF
2 = FORCE_CAR_LIGHTS_ON
Что значит 0, я не очень понимаю, а вот остальное вполне ясно: 1 - выкл, 2 - вкл.

wmysterio
Администраторы
Скриптер
03.08.14 21:46
Offline
Цитата SnakeR ()
В итоге, он появляется рядом с машиной как труп, причем когда машина прорисовывается, кажется что она падает на него, тот же эффект если создавать актера сразу как водителя
Попробуй эти
Код

072A: put_actor $IVAN into_car 0@ driverseat
072B: put_actor $IVAN into_car 0@ passengerseat 0
или
Код
05CB: AS_actor $IVAN enter_car 0@ as_driver 0 ms
05CA: AS_actor $IVAN enter_car 0@ passenger_seat 0 time 0
Вот, я смонтировал скрипт:
Код
{$CLEO}
Model.Load(#VOODOO)
Model.Load(#BMYPOL1)
038B: load_requested_models

0@ = Car.Create(#VOODOO, 2497.2532, -1674.491, 13.3359)
Car.Angle(0@) = 18.9113
0129: $IVAN = create_actor_pedtype 4 model #BMYPOL1 in_car 0@ driverseat

Model.Destroy(#VOODOO)
Model.Destroy(#BMYPOL1)

0A93: end_custom_thread
Цитата SnakeR ()
И еще, вот эти опкоды на тачку никак не действуют
Я проверял - работают. В первом случаи это обычная проверка на то, включен ли двигатель у транспорта. В поисковике Sanny Builder'e очень легко распознать проверку от процедуры или свойства. Как правило после : стоит несколько пробелов - значит условие.

Другой метод, если не знаете является команда условием, то в поисковике укажите знак ^. У вашем случаи, я в поисковик вбил "^engine" и Санник указал на то, что опкод 0ABE является проверкой. Этот знак выбирает все условия со всего найденного. Но это если у вас отсутствует интернет лучше применять.

Опкод 067F тоже работает. Параметры:
0 - зависит от текущего времени ( Если ночь, то включить. Если день, то выключить )
1 - выключить в независимости от времени суток
2 - включить в независимости от времени суток

BoPoH
Друзья
03.08.14 23:59
Offline
Цитата wmysterio ()
Другой метод, если не знаете является команда условием, то в поисковике укажите знак ^. У вашем случаи, я в поисковик вбил "^engine" и Санник указал на то, что опкод 0ABE является проверкой. Этот знак выбирает все условия со всего найденного. Но это если у вас отсутствует интернет лучше применять.

Забавно. Не знал об этом.

wmysterio
Администраторы
Скриптер
04.08.14 09:38
Offline
Цитата BoPoH ()
Забавно. Не знал об этом.
До недавнего времени я тоже не знал. Случайно зашел в "Справка->Редактор->Поиск опкодов" и вдумчиво прочитал содержимое(до этого как-то небыло нужды). Есть целый ряд возможностей поиска "с дополнительным фильтром". Возможно я неправильно вписал фильтр, но он не всегда точно ловит опкоды. Например, строка
Код
% actor car -sphere -near -train -cube -rectangle ^
почему-то словил опкод 09D0, который не соответствует фильтру. Вроде должно ловить все опкоды, в которой наблюдается последовательность слов "actor car", условные опкоды а также опкоды, что не содержат слов "sphere", "near", "train", "cube" и "rectangle" sad Нужно на форум SB спросить. Пусть объяснят точнее или добавят что-то новенькое в фильтры.

SnakeR
Проверенные
04.08.14 12:00
Offline
Спасибо за ответы) По аудио зонам я так понимаю пока никто помочь не может?)

Добавлено (04.08.14, 10:48)
---------------------------------------------
Как ни крутил но с актером эффект тот же) он просто дохнет)

Добавлено (04.08.14, 11:00)
---------------------------------------------
И еще такой вопрос, в бд на том сайте варианты написания опкодов одни, в санни вторые, в скриптах третьи, где блин правда?) Фары и двиг заработали только так

Код
0ABF: set_vehicle 0@ engine_state_to 1
067F: set_car 0@ lights 2

wmysterio
Администраторы
Скриптер
04.08.14 12:31
Offline
Цитата SnakeR ()
в бд на том сайте варианты написания опкодов одни, в санни вторые
на том сайте опкоды описаны в оригинальном виде. Например:
Код
0053 create_player #NULL at 2488.562 -1666.865 12.8757 store_to $PLAYER_CHAR
Sanny Builder меняет местами некоторые параметры. Например у СБ так:
Код
0053: $PLAYER_CHAR = create_player #NULL at 2488.562 -1666.865 12.8757
Как видите, переменная, в которую будет заносится игрок находятся в разных местах. Seemann объяснил это тем, что так более читабильно. А описание в скриптах это уже третье дело. Можно назвать и так
Код
0053: $PLAYER_CHAR = sozdat_igroka_s_modelyu #NULL v_tochke 2488.562 -1666.865 12.8757
Сути не меняет. В последнее время описание опкодов делалось из выходом мобильной ГТА СА, где нашлись оригинальные названия опкодов (или планировалось). Если использовать старые версии СБ, то описание могут отличатся, но параметры остаются теже.

SnakeR
Проверенные
04.08.14 14:39
Offline
Понятно, только эксперименты спасут меня) С актером все таки печаль-тоска, все время его машина убивает( Уже все варианты что нашел перепробовал...

Добавлено (04.08.14, 13:39)
---------------------------------------------
Все больше ковыряясь думаю о том, что проще взять и выдрать контент из игры и собрать игру заново на том же Unity3D... И возможностей дофига и ограничений нет...


wmysterio
Администраторы
Скриптер
04.08.14 14:53
Offline
Цитата SnakeR ()
что проще взять и выдрать контент из игры и собрать игру заново на том же Unity3D...
Сложно сказать. Unity не такой уж и лёгкий как кажется на первый взгяд + выдрать контент тоже не гладко.
Цитата SnakeR ()
С актером все таки печаль-тоска, все время его машина убивает( Уже все варианты что нашел перепробовал...
Скиньте полный код скрипта. По обрывках сложно что-то комментировать.

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