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

или

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

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

wmysterio
Администраторы
Скриптер
13.05.12 20:18
Online
Quote (KiLLeR96)
три грувовца.
Code
077A: set_actor 1@ acquaintance 4 to_actors_pedtype 8 // see ped.dat  
077A: set_actor 2@ acquaintance 4 to_actors_pedtype 8 // see ped.dat  
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 8 // see ped.dat  

KiLLeR96
Модераторы
Модератор
15.05.12 14:24
Offline
Как удалить обьект, поставленный в Med, через скрипт?
МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
15.05.12 15:09
Online
Quote (KiLLeR96)
Как удалить обьект, поставленный в Med, через скрипт?
Никак. В МепЕдиторе создаётся статическая карта, то есть её нельзя изменять, но есть ряд объектов, которые могут поддаться на удаление, но после определённого времени они всё равно создаются.

Slivkin-Sergey
Модераторы
15.05.12 15:36
Offline
:okay_guy: Извините, разберусь.

Добавлено (15.05.12, оверкогда):
------------------------------------------------
Подскажите, что я неправильно делаю в скрипте (вариант с переменной я не понял, сварганил по-обычному). Когда СЖ вылезает из тачки, действие миссии продолжается, и его не зовут обратно?
Code
:MISSION_0_3045
wait 0   
if   
     Actor.InCar($PLAYER_ACTOR, $Sweet_Car)
jf @MISSION_0_3045   
Marker.Disable(4@)
while not Actor.InCar($PLAYER_ACTOR, $Sweet_Car)
00BC: show_text_highpriority GXT 'GETBACK' time 5000 flag 1
4@ = Marker.CreateAboveCar($Sweet_Car)
07E0: set_marker 4@ type_to 1   
wait 0
end
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1  // “, C¢œ¦, ¤¦o £poœŸo¥žo? Y ¢ac c —pa¦ka¯œ —¨ža ¦pa¢a?
и блаблабла
Отредактировал Slivkin-Sergey - Вторник, 15.05.12, 15:36

KiLLeR96
Модераторы
Модератор
15.05.12 15:52
Offline
Slivkin-Sergey, а где проверка существует ли машина? Если игра вылетает, то это из-за того что проверяется сидит ли актёр в машине, которой нет.
МоДиРатОр)))000)))))

Slivkin-Sergey
Модераторы
15.05.12 15:56
Offline
KiLLeR96, если бы только из-за этого sad Я создавал машину перед этим.
Code
wait 2000  
if  
    Model.Available(#GREENWOO)
jf @MISSION_0_2826  
select_interior 0  
0860: link_actor $Actor_Sweet to_interior 0  
0860: link_actor $PLAYER_ACTOR to_interior 0  
Actor.PutAt($PLAYER_ACTOR, 2519.162, -1678.689, 14.6282)
Actor.Angle($PLAYER_ACTOR) = 51.9413
0674: set_car_model #GREENWOO numberplate "DRUGBAD"  
$Sweet_Car = Car.Create(#GREENWOO, 2508.825, -1672.539, 13.3811)
Car.Angle($Sweet_Car) = 349.9006
0229: set_car $Sweet_Car primary_color_to 9 secondary_color_to 15  
Actor.PutAt($Actor_Sweet, 2516.579, -1675.089, 13.9829)
Camera.Restore_WithJumpCut
Player.CanMove($PLAYER_CHAR) = True
4@ = Marker.CreateAboveCar($Sweet_Car)
07E0: set_marker 4@ type_to 1  
wait 1000  
02A3: enable_widescreen 0  
fade 1 1000  
wait 1000  
05CA: AS_actor $Actor_Sweet enter_car $Sweet_Car passenger_seat 0 2500 ms  
00BC: show_text_highpriority GXT 'INTRO13' time 5000 flag 1  // Cašœc© ¢ ~b~¯a¥œ®y C¢œ¦a~w~.

:MISSION_0_3045
wait 0  
if  
    Actor.InCar($PLAYER_ACTOR, $Sweet_Car)
jf @MISSION_0_3045  
Marker.Disable(4@)
while not Actor.InCar($PLAYER_ACTOR, $Sweet_Car)
00BC: show_text_highpriority GXT 'GETBACK' time 5000 flag 1
4@ = Marker.CreateAboveCar($Sweet_Car)
07E0: set_marker 4@ type_to 1  
wait 0
end
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1  // “, C¢œ¦, ¤¦o £poœŸo¥žo? Y ¢ac c —pa¦ka¯œ —¨ža ¦pa¢a?

KiLLeR96
Модераторы
Модератор
15.05.12 19:44
Offline

Игра мгновенно вылетает. Почему?

Добавлено (15.05.2012, 17:44)
---------------------------------------------
wmysterio, напиши плиз цикл для актёров а то нифига не получается

МоДиРатОр)))000)))))

wmysterio
Администраторы
Скриптер
15.05.12 22:29
Online
Quote (KiLLeR96)
напиши плиз цикл для актёров а то нифига не получается

Quote (KiLLeR96)
Create($PED
Зачем там $Ped ?

Quote (Slivkin-Sergey)
Когда СЖ вылезает из тачки, действие миссии продолжается, и его не зовут обратно?
Это из за цикла while. Там просто будет цикла пока актёр на в машине. Перед этим сж садился в неё, следуя условие не выполнилось, а значит будут выполнятся опкоди ниже, то есть
Code
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1  // “, C¢œ¦, ¤¦o £poœŸo¥žo? Y ¢ac c —pa¦ka¯œ —¨ža ¦pa¢a?
и блаблабла
Нужно убрать not перед условием.

KiLLeR96
Модераторы
Модератор
16.05.12 11:10
Offline
Сделать чтобы педы дрались пока не останется один выживший?
МоДиРатОр)))000)))))

Slivkin-Sergey
Модераторы
16.05.12 13:09
Offline
Не помогло sad Все равно не реагирует.

Добавлено (16.05.2012, 11:09)
---------------------------------------------
Вернее, глючит. Я сажусь в машину - маркер не исчезает, выхожу из машины - маркер не исчезает, текст миссии начинает показываться.


wmysterio
Администраторы
Скриптер
16.05.12 13:53
Online
Quote (KiLLeR96)
Сделать чтобы педы дрались пока не останется один выживший?
Вот мой скрипт педов:
Code
{$VERSION 3.1.0027}
{$CLEO}

// -- main ----
0000:

var
$ACTOR: array 6 of actor
$INDEX: integer
$INDEX_1: integer
$INDEX_2: integer
$INDEX_3: integer
$INDEX_4: integer
$INDEX_5: integer
end

:DRAKA
thread 'DRAKA'
wait 0
04C4: store_coords_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 from_actor $PLAYER_ACTOR with_offset 0.0 3.0 -1.0  
gosub @DRAKA_1
wait 2000

for $INDEX_1 = 0 to 5 step 1
wait 0
     $ACTOR[$INDEX_1] = actor.Create(7, #BALLAS1, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3)    
     actor.Angle($ACTOR[$INDEX_1]) = 0.0
     actor.WeaponAccuracy($ACTOR[$INDEX_1]) = 100
     actor.Health($ACTOR[$INDEX_1]) = 150
     077A: set_actor $ACTOR[$INDEX_1] acquaintance 4 to_actors_pedtype 7 // see ped.dat  
     077A: set_actor $ACTOR[$INDEX_1] acquaintance 0 to_actors_pedtype 0 // see ped.dat
     01B2: give_actor $ACTOR[$INDEX_1] weapon 30 ammo 600 // Load the weapon model before using this  
     $TEMPVAR_FLOAT_1 += 3.0
end

repeat
wait 3000
$MAN = 0

     for $INDEX = 0 to 5 step 1
     wait 0
         if
         actor.Defined($ACTOR[$INDEX])
         then
             if
             not actor.dead($ACTOR[$INDEX])
             then  
                 for $INDEX_2 = 5 downto 0 step 1
                     if
                     $INDEX == $INDEX_2
                     then
                         continue
                     else
                         if
                         actor.Defined($ACTOR[$INDEX_2])
                         then
                             if
                             not actor.Dead($ACTOR[$INDEX_2])
                             then
                             05E2: AS_actor $ACTOR[$INDEX] kill_actor $ACTOR[$INDEX_2]
                             else
                    continue
                             end
                         else  
                             continue
                         end    
                     end             
                 end   
             else
                 continue      
             end
         else
             continue
         end
     end  
                      
     for $INDEX_3 = 5 downto 0 step 1
     wait 0
         if
         actor.Defined($ACTOR[$INDEX_3])
         then
             if
             not actor.dead($ACTOR[$INDEX_3])
             then  
                 for $INDEX_4 = 0 to 5 step 1
                     if
                     $INDEX_3 == $INDEX_4
                     then
                         continue
                     else
                         if
                         actor.Defined($ACTOR[$INDEX_4])
                         then
                             if
                             not actor.Dead($ACTOR[$INDEX_4])
                             then
                             05E2: AS_actor $ACTOR[$INDEX_3] kill_actor $ACTOR[$INDEX_4]
                             else
                    continue
                             end
                         else  
                             continue
                         end    
                     end             
                 end        
             else
                 continue      
             end
         else
             continue
         end
     end                 
                    
     for $INDEX = 0 to 5 step 1
     wait 0
         if
         actor.Defined($ACTOR[$INDEX])
         then
             if
             actor.dead($ACTOR[$INDEX])
             then  
             $MAN += 1
             else
             $INDEX_5 = $INDEX  
             end
         end
     end
until $MAN == 5
0812: AS_actor $ACTOR[$INDEX_5] perform_animation "FALL_glide" IFP_file "PED" 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time 10000 // versionB  
wait 4000
0A93: end_custom_thread

:DRAKA_1
wait 0
model.Load(#BALLAS1)
model.Load(#AK47)
038B: load_requested_models  

:DRAKA_2
wait 0
if AND
model.Available(#AK47)
model.Available(#BALLAS1)
jf @DRAKA_2
return
Это на скору руку делал, но скрипт рабочий. Последний выживший будет как бы левитировать.

wmysterio
Администраторы
Скриптер
16.05.12 16:49
Online
Quote (Slivkin-Sergey)
Вернее, глючит. Я сажусь в машину - маркер не исчезает, выхожу из машины - маркер не исчезает, текст миссии начинает показываться.
попробуй в цикле создавать маркеры и удалять их

Slivkin-Sergey
Модераторы
16.05.12 17:04
Offline
Quote (wmysterio)
попробуй в цикле создавать маркеры и удалять их

Code
wait 0
  while 044B:   actor $PLAYER_ACTOR on_foot  
  00BE: text_clear_all  
  00BC: show_text_highpriority GXT 'GETBACK' time 5000 flag 1  
  5@ = Marker.CreateAboveCar(0@)                    
  07E0: set_marker 5@ type_to 1   
  wait 0
  if
  actor.InCar($PLAYER_ACTOR, 0@)
  jf @DRUGRAID_1
   marker.Disable(5@)
   wait 0
  end
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1  // “, C¢œ¦, ¤¦o £poœŸo¥žo? Y ¢ac c —pa¦ka¯œ —¨ža ¦pa¢a?

И создал, и удалил (правда, я перед этим не практиковался в циклах). Теперь вообще не работает. sad

wmysterio
Администраторы
Скриптер
19.05.12 12:45
Online
Quote (Slivkin-Sergey)
И создал, и удалил (правда, я перед этим не практиковался в циклах). Теперь вообще не работает
Попробуй тогда без while. Вот мой старый шаблон:
Code
072A: put_actor $PLAYER_ACTOR into_car $CAR driverseat // сначала садим СЖ в машину

:CAR
wait 0
marker.Disable($CarMark)
018A: 1@ = create_checkpoint_at $X $Y $Z  
03BC: 2@ = create_sphere_at $X $Y $Z radius 2.0  
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1 // Ежай в точку

:CAR_1
wait 0

if
not actor.InCar($PLAYER_ACTOR, $CAR)
then
jump @CAR_3
end

if AND
actor.InCar($PLAYER_ACTOR, $CAR)
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere $X $Y $Z radius 3.0 3.0 3.0  
then
jump @CAR_5
end
jump @CAR_1
             
:CAR_3
wait 0
marker.Disable(1@)
03BD: destroy_sphere 2@  
$CarMark = marker.CreateAboveCar($CAR)
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1 // Садись в машину!

:CAR_4
wait 0
if
actor.InCar($PLAYER_ACTOR, $CAR)
then
jump @CAR
end
jump @CAR_4

:CAR_5
wait 0
marker.Disable(1@)
03BD: destroy_sphere 2@  

//   MISSION PASSED

Slivkin-Sergey
Модераторы
19.05.12 15:13
Offline
Блин, тут небольшая проблемка. У меня по сюжету миссии СЖ и еще один актёр садится в машину, и между ними происходит диалог (4 текста), и после этого диалога появляется чекпоинт (и текст: едь туда-то). А пока игрок едет к чекпоинту, между ними опять происходит диалог. И надо чтоб при всем этом когда игрок вылезает его бы звали назад. Это нереально? sad

wmysterio
Администраторы
Скриптер
19.05.12 15:24
Online
Quote (Slivkin-Sergey)
Это нереально?
всё реально :)
Code
072A: put_actor $PLAYER_ACTOR into_car $CAR driverseat  
0430: put_actor $ACTOR into_car $CAR passenger_seat 0   
0@ = 0.0

:CAR
wait 0
marker.Disable($CarMark)
018A: 1@ = create_checkpoint_at $X $Y $Z    
03BC: 2@ = create_sphere_at $X $Y $Z radius 2.0    
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1 // Езжайте к точке

:CAR_1
wait 0

if OR
not actor.InCar($ACTOR, $CAR)
not actor.InCar($PLAYER_ACTOR, $CAR)
then
jump @CAR_3
end

if AND
actor.InCar($PLAYER_ACTOR, $CAR)
actor.InCar($ACTOR, $CAR)
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere $X $Y $Z radius 3.0 3.0 3.0    
then
jump @CAR_5
end

if
0@ == 1.0
then
00BC: show_text_highpriority GXT 'DIALOA1' time 3500 flag 1 // дилог 1
end

if
0@ == 4.0
then
00BC: show_text_highpriority GXT 'DIALOA2' time 3500 flag 1 // дилог 2
end

if
0@ == 7.0
then
00BC: show_text_highpriority GXT 'DIALOA3' time 3500 flag 1 // дилог 3
end

0@ += 0.05
jump @CAR_1
                 
:CAR_3
wait 0
marker.Disable(1@)
03BD: destroy_sphere 2@    
$CarMark = marker.CreateAboveCar($CAR)
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1 // Садитесь в машину

:CAR_4
wait 0
if AND
actor.InCar($ACTOR, $CAR)
actor.InCar($PLAYER_ACTOR, $CAR)
then
jump @CAR
end
jump @CAR_4

:CAR_5
wait 0
marker.Disable(1@)
03BD: destroy_sphere 2@    

//   MISSION PASSED   

Slivkin-Sergey
Модераторы
19.05.12 15:47
Offline
Code
:CAR   
   wait 0   
   if
   Actor.InCar($PLAYER_ACTOR, 0@)
   jf @CAR
   marker.Disable(4@)     

   :CAR_1   
   wait 0   
   if OR   
   not actor.InCar($Actor_Sweet, $CAR)   
   not actor.InCar($PLAYER_ACTOR, $CAR)   
   then   
   jump @CAR_3   
   end   
   if AND   
   actor.InCar($PLAYER_ACTOR, $CAR)   
   actor.InCar($ACTOR, $CAR)   
   then   
   jump @CAR_5   
   end   

   if   
   16@ == 1.0   
   then   
00BC: show_text_highpriority GXT 'DIALOG1' time 3500 flag 1  // “, C¢œ¦, ¤¦o £poœŸo¥žo? Y ¢ac c —pa¦ka¯œ —¨ža ¦pa¢a?
   end   

   if   
   16@ == 4.0   
   then   
00BC: show_text_highpriority GXT 'DIALOG2' time 4000 flag 1  // • ®e Ÿ®a«, Cœƒ›e, ¯¨ c ®œ¯œ ®e¯®o™o ¢¨£œžœ...
   end   

   if   
   16@ == 7.0   
   then   
00BC: show_text_highpriority GXT 'DIALOG3' time 5000 flag 1  // ‹ce ¤¦o ¬ £o¯®«, ª¦o kak €ož©¥o o®œ £oky£až ¦op¤ažky ¢ ‚že® Œapke...
   end   

   16@ += 0.05   
   jump @CAR_1   
                     
   :CAR_3   
   wait 0   
   4@ = marker.CreateAboveCar(0@)   
   00BC: show_text_highpriority GXT 'GETBACK' time 3500 flag 1

   :CAR_4   
   wait 0   
   if AND   
   actor.InCar($Actor_Sweet, 0@)   
   actor.InCar($PLAYER_ACTOR, 0@)   
   then   
   jump @CAR   
   end   
   jump @CAR_4   

   :CAR_5   
   wait 0   
018A: 6@ = create_checkpoint_at 2001.874 -1157.937 21.1277   
03BC: 5@ = create_sphere_at 2001.874 -1157.937 21.1277 radius 4.0

Извиняюсь конечно за надоедливость. Когда я сажусь в машину, появляется текст "Возвращайся в машину", и над самой машиной появляется мигающий красный маркер. Когда выхожу из машины, маркер перестает мигать. Захожу - все по-новой.
Отредактировал Slivkin-Sergey - Суббота, 19.05.12, 15:47

wmysterio
Администраторы
Скриптер
19.05.12 16:56
Online
Quote (Slivkin-Sergey)
Извиняюсь конечно за надоедливость. Когда я сажусь в машину, появляется текст "Возвращайся в машину", и над самой машиной появляется мигающий красный маркер. Когда выхожу из машины, маркер перестает мигать. Захожу - все по-новой.
А машина там точно $car ???
Quote
not actor.InCar($Actor_Sweet, $CAR)
not actor.InCar($PLAYER_ACTOR, $CAR)
В других случаях ты используешь 0@. по идеи нужно поменять $CAR на 0@.

Slivkin-Sergey
Модераторы
19.05.12 21:02
Offline
У меня еще вопросик. Вот я прописал миссию, которая стартует с начала новой игры. Но при ее начале она не воспроизводится, а игрок появляется на спавне и появляется сразу чекпоинт для начала второй миссии!
Code

thread 'MAIN'  
//спаун игрока, одевание и т.д. с этим трейдом проблем нет
062A: change_float_stat 23 to 500.0  
$PLAYER_ACTOR = Actor.EmulateFromPlayer($PLAYER_CHAR)
Actor.Angle($PLAYER_ACTOR) = 66.3548
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group  
$SWEET_TOTAL_PASSED_MISSION = 0  
Camera.SetBehindPlayer
Player.Build($PLAYER_CHAR)
Player.CanMove($PLAYER_CHAR) = True
start_mission 2
  0879: enable_gang_wars 0
  start_mission 0
  wait 0
  start_mission 1
  076C: set_zone 'GAN1' gang 1 density_to 40   
  076C: set_zone 'GAN2' gang 1 density_to 80   
  076C: set_zone 'IWD1' gang 0 density_to 40   
  076C: set_zone 'IWD2' gang 0 density_to 80   
  076C: set_zone 'IWD3A' gang 2 density_to 40   
  076C: set_zone 'IWD3B' gang 2 density_to 80   

//и прочая джигурдень

//-------------Mission 2----------------
//Originally: Intro

:INTRO
thread 'INTRO'
gosub @INTRO_19  
if  
wasted_or_busted  
jf @INTRO_19  
gosub @FAILRET

:MFAIL
$ONMISSION = 0  
mission_cleanup  
end_thread  

:INTRO_19
increment_mission_attempts  
$ONMISSION = 1  
03F0: enable_text_draw 1
jump @INTRO_26

:INTRO_26
wait 0
054C: use_GXT_table 'INTRO'  
wait 1000
00C0: set_current_time_hours_to 22 minutes_to 30  
fade 0 0  
wait 0  
Player.CanMove($PLAYER_CHAR) = False
02A3: enable_widescreen 1
033F: set_text_draw_letter_size 0.8 1.8  
0342: enable_text_draw_centered 1  
0343: set_text_draw_linewidth 600.0  
060D: draw_text_shadow 0 color_RGBA 0 0 0 255  
033E: set_draw_text_position 320.0 224.333 GXT 'INT1_B'
wait 5000
fade 0 500
wait 500
fade 1 500
gosub @FAILRET
create_thread @STARTER
return  

:MISSION_0_29_144
wait 0  
gosub @FAILRET
create_thread @STARTER
return

:FAILRET
wait 0
return

wmysterio
Администраторы
Скриптер
20.05.12 14:03
Online
Quote (Slivkin-Sergey)
//и прочая джигурдень
Эта джигурдень мне и нужна, что бы посмотреть полную картину smile

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