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

pro12
Пользователи
07.01.15 14:38
Offline
Охранник ни одного преступника убить ?

SanKing
Друзья
07.01.15 15:34
Offline
Цитата pro12 ()
Охранник ни одного преступника убить ?
Что?

pro12
Пользователи
07.01.15 15:50
Offline
Пули мимо проходят.

BlackFulll380
Пользователи
08.01.15 12:33
Offline
Всем привет! в main.scm есть скрипт "PARACHUTE" он вроде не используется в игре, по слухам, якобы "учебник" парашютиста, типа как открыть его во время полета, какими стрелками управлять и т.д. Я уже пробовал делать через клео, но эффекта нет. Может, кто нибудь разберется?
Прикрепления: PARACH.rar(4.1 Kb)

softcrasoft
Пользователи
08.01.15 14:44
Offline
pro12, для попаданий установите точность

Добавлено (08.01.15, 13:37)
---------------------------------------------
BlackFulll380, это исключительно мое мнение. Я думаю, что он устанавливается только в main.scm, и в cleo перенести никак. Увы, есть такие вещи в скриптинге main.scm, которые перенести в cleo нельзя.

Добавлено (08.01.15, 13:44)
---------------------------------------------
Ребят! Вот такой вопрос у меня. Делаю скрипт чтоб при вводе чита "ARMIYA" появлялось 13 человек и защищало меня, но он не работает, sanny builder не ругается.
Вот код скрипта:
Код
{$CLEO}
0000: NOP
:NONAME
wait 250
if
player.Defined($PLAYER_CHAR)
jf @NONAME
NONAME_2
wait 0
Model.Load(#CELLPHONE)
038B: load_requested_models
wait 0
if and
Player.Defined($PLAYER_CHAR)
Model.Available(#CELLPHONE)
not Actor.Driving($PLAYER_ACTOR)
jf @NONAME_2
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1
wait 10000
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0
model.Load(#CELLPHONE)
Model.Load(#M4)
Model.Load(#SWAT)
Model.Load(#SWAT)
model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
Model.Load(#SWAT)
038B: load_requested_models
:NONAME_3
if or
not Model.Available(#M4)
not Model.Available(#CELLPHONE)
jf @NONAME_3
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
Model.Available(#SWAT)
jump @NONAME_3
:NONAME_4
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 5.0 5.0 0.0
4@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
5@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
6@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
7@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
8@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
9@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
10@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
11@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
12@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
13@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
14@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
15@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
16@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
01B2: give_actor 4@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 5@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 6@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 7@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 8@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 29@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 10@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 11@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 12@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 13@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 14@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 15@ weapon 31 ammo 99999 // Load the weapon model before using this
01B2: give_actor 16@ weapon 31 ammo 99999 // Load the weapon model before using this
Actor.WeaponAccuracy(4@) = 100
Actor.Health(4@) = 500
081A: set_actor 4@ weapon_skill_to 2
0631: put_actor 4@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(5@) = 100
Actor.Health(5@) = 500
081A: set_actor 5@ weapon_skill_to 2
0631: put_actor 5@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(6@) = 100
Actor.Health(6@) = 500
081A: set_actor 6@ weapon_skill_to 2
0631: put_actor 6@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(7@) = 100
Actor.Health(7@) = 500
081A: set_actor 7@ weapon_skill_to 2
0631: put_actor 7@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(8@) = 100
Actor.Health(8@) = 500
081A: set_actor 8@ weapon_skill_to 2
0631: put_actor 8@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(9@) = 100
Actor.Health(9@) = 500
081A: set_actor 9@ weapon_skill_to 2
0631: put_actor 9@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(10@) = 100
Actor.Health(10@) = 500
081A: set_actor 10@ weapon_skill_to 2
0631: put_actor 10@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(11@) = 100
Actor.Health(11@) = 500
081A: set_actor 11@ weapon_skill_to 2
0631: put_actor 11@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(12@) = 100
Actor.Health(12@) = 500
081A: set_actor 12@ weapon_skill_to 2
0631: put_actor 12@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(13@) = 100
Actor.Health(13@) = 500
081A: set_actor 13@ weapon_skill_to 2
0631: put_actor 13@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(14@) = 100
Actor.Health(14@) = 500
081A: set_actor 14@ weapon_skill_to 2
0631: put_actor 14@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(15@) = 100
Actor.Health(15@) = 500
081A: set_actor 15@ weapon_skill_to 2
0631: put_actor 15@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(16@) = 100
Actor.Health(16@) = 500
081A: set_actor 16@ weapon_skill_to 2
0631: put_actor 16@ in_group $PLAYER_GROUP
wait 1000
Model.Destroy(#M4)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
Model.Destroy(#SWAT)
end_thread

Некоторые вещи брал из другого скрипта, например модели.
Заранее спасибо.

wmysterio
Администраторы
Скриптер
08.01.15 19:19
Offline
Цитата softcrasoft ()
для попаданий установите точность
задания точности не даёт 100% попадания. дествует опкод так, что бы пули летели в имену точку, куда целится актёр, без смещений. но пули не "умеют" догонять кого-то/что-то, из этого шанс попасть в движующую цель всё равно будет малым.
Цитата BlackFulll380 ()
он вроде не используется в игре
я думаю используется, так как без этого скрипта нельзя было бы управлять парашютом. есть мнение, что мейны под разные версии игры немного отличаются.
Цитата softcrasoft ()
но он не работает, sanny builder не ругается
это из серии "логических" ошибок. Судя по скрипту, все персонажы создаются в одном месте, после чего активным остаётся только последний созданный актёр, из за чего идёт обращение к несуществующим актёрам. Вот я переделал скрипт для этой цели:
Код
{$CLEO}  
0000: NOP  
Model.Load(#CELLPHONE)  
Model.Load(#M4)  
Model.Load(#SWAT)  
038B: load_requested_models

while true
wait 0
     if
     not Player.Defined($PLAYER_CHAR)
     then
     break
     end
      
     if AND
     0AB0:   key_pressed 9 // TAB
     not Actor.Driving($PLAYER_ACTOR)
     then
     Player.CanMove($PLAYER_CHAR) = false
     Actor.SetImmunities($PLAYER_ACTOR,1,1,1,1,1)    
     0729: AS_actor $PLAYER_ACTOR hold_cellphone 1  
     wait 10000  
     0729: AS_actor $PLAYER_ACTOR hold_cellphone 0     
     04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 5.0 5.0 0.0    
     4@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     5@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     6@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     7@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     8@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     9@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     10@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
     2@ += 1.0  
     11@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     12@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     13@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     14@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)  
     2@ += 1.0
     15@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)
     2@ += 1.0
     16@ = Actor.Create(6, #SWAT, 1@, 2@, 3@)     
     01B2: give_actor 4@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 5@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 6@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 7@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 8@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 29@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 10@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 11@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 12@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 13@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 14@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 15@ weapon 31 ammo 99999 // Load the weapon model before using this  
     01B2: give_actor 16@ weapon 31 ammo 99999 // Load the weapon model before using this  
     Actor.WeaponAccuracy(4@) = 100  
     Actor.Health(4@) = 500  
     081A: set_actor 4@ weapon_skill_to 2  
     0631: put_actor 4@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(5@) = 100  
     Actor.Health(5@) = 500  
     081A: set_actor 5@ weapon_skill_to 2  
     0631: put_actor 5@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(6@) = 100  
     Actor.Health(6@) = 500  
     081A: set_actor 6@ weapon_skill_to 2  
     0631: put_actor 6@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(7@) = 100  
     Actor.Health(7@) = 500  
     081A: set_actor 7@ weapon_skill_to 2  
     0631: put_actor 7@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(8@) = 100  
     Actor.Health(8@) = 500  
     081A: set_actor 8@ weapon_skill_to 2  
     0631: put_actor 8@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(9@) = 100  
     Actor.Health(9@) = 500  
     081A: set_actor 9@ weapon_skill_to 2  
     0631: put_actor 9@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(10@) = 100  
     Actor.Health(10@) = 500  
     081A: set_actor 10@ weapon_skill_to 2  
     0631: put_actor 10@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(11@) = 100  
     Actor.Health(11@) = 500  
     081A: set_actor 11@ weapon_skill_to 2  
     0631: put_actor 11@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(12@) = 100  
     Actor.Health(12@) = 500  
     081A: set_actor 12@ weapon_skill_to 2  
     0631: put_actor 12@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(13@) = 100  
     Actor.Health(13@) = 500  
     081A: set_actor 13@ weapon_skill_to 2  
     0631: put_actor 13@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(14@) = 100  
     Actor.Health(14@) = 500  
     081A: set_actor 14@ weapon_skill_to 2  
     0631: put_actor 14@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(15@) = 100  
     Actor.Health(15@) = 500  
     081A: set_actor 15@ weapon_skill_to 2  
     0631: put_actor 15@ in_group $PLAYER_GROUP  
     Actor.WeaponAccuracy(16@) = 100  
     Actor.Health(16@) = 500  
     081A: set_actor 16@ weapon_skill_to 2  
     0631: put_actor 16@ in_group $PLAYER_GROUP     
     Player.CanMove($PLAYER_CHAR) = true
     Actor.SetImmunities($PLAYER_ACTOR,0,0,0,0,0)
     wait 1000
     end
end
0A93: end_custom_thread

pro12
Пользователи
08.01.15 19:28
Offline
{$CLEO .cs}
thread 'Actor'
:Actor
wait 0
if
player.Defined(0)
jf @Actor
if and
not actor.Dead($PLAYER_ACTOR)
not actor.Driving($PLAYER_ACTOR)
0AB0:   key_pressed 57
jf @Actor
:Actor2
repeat
wait 100
until player.Defined(0)
model.Load(#TEC9)
Model.Load(#FAM2)
038B: load_requested_models
if
Model.Available(#TEC9) 
Model.Available(#FAM2)

04C4: create_coordinate 4@ 5@ 6@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0 

3@ = Actor.Create(Gang2,#FAM2, 4@, 5@, 6@)
7@ = Marker.CreateAboveActor(3@)
Marker.SetColor(7@, 1)
0631: put_actor 3@ in_group $PLAYER_GROUP
Actor.WeaponAccuracy(3@) = 750
Actor.GiveWeaponAndAmmo(3@, TEC9, 6000)

077A: set_actor 3@ acquaintance 4 to_actors_pedtype 0 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 1 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 2 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 3 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 4 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 5 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 6 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 7 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 8 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 14 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 10 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 9 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 15 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 16 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 11 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 13 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 12 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 17 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 18 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 19 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 20 // see ped.dat 
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 21 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 22 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 23 // see ped.dat
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 24 // see ped.dat
 
if and
Model.Destroy(#TEC9)
Model.Destroy(#FAM2)
jf    @Actor2           
actor.Health(3@)= 1000
04F7: status_text $HLT 0 line 1 'TEXT4'
while true
wait 0
$HLT = actor.Health(3@)
                                 if or
                                 not player.Defined(0)
                                  8104:   actor $PLAYER_ACTOR near_actor 3@ radius 500.0 500.0 50.0 sphere 0
                     then
           3@ = @Actor
           break
           else
                   if
                   actor.Dead(3@)
                   then
                  
                   break                                  
                   end
           end
end
0151: remove_status_text $HLT
wait 1
actor.RemoveReferences(3@)
jump @Actor2
end_thread
Вроде получилось но охранник не может застрелить преступника во время миссий полиции ?
Отредактировал pro12 - Четверг, 08.01.15, 19:30

wmysterio
Администраторы
Скриптер
08.01.15 20:08
Offline
Цитата pro12 ()
Вроде получилось но охранник не может застрелить преступника во время миссий полиции ?
ну заставить союзника застрелить когото - это ещё постараться нужно smile Я смог только переделать код на более компактный, но не факт, что союзник будет более сильным в бою:
Код
{$CLEO .cs}   
if
not Player.Defined(0)  
then
0A93: end_custom_thread
end

Model.Load(#TEC9)  
Model.Load(#FAM2)  
038B: load_requested_models  

:ACTOR
wait 0
if and  
not actor.Dead($PLAYER_ACTOR)  
not actor.Driving($PLAYER_ACTOR)  
0AB0:   key_pressed 57  
jf @ACTOR  
04C4: create_coordinate 4@ 5@ 6@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0   
3@ = Actor.Create(Gang2,#FAM2, 4@, 5@, 6@)  
7@ = Marker.CreateAboveActor(3@)  
Marker.SetColor(7@, 1)  
0631: put_actor 3@ in_group $PLAYER_GROUP  
Actor.WeaponAccuracy(3@) = 100 // îò 0 äî 100, çíà÷åíèå óêàçûâàòü öåëîå êàê-áû â ïðîöåíàòõ
Actor.GiveWeaponAndAmmo(3@, TEC9, 6000)  

for 0@ = 0 to 24 step 1
077A: set_actor 3@ acquaintance 4 to_actors_pedtype 0@ // see ped.dat  
end

$HLT = 1000
actor.Health(3@) = $HLT
04F7: status_text $HLT type 0 line 1 GXT 'TEXT4'  

while true  
wait 0  
     $HLT = actor.Health(3@)  
     if or  
     Actor.Dead(3@)
     80F2:   not actor $PLAYER_ACTOR near_actor 3@ radius 500.0 500.0 sphere 0     
     then   
     Marker.Disable(7@)
     Actor.RemoveReferences(3@)  
     Actor.DestroyInstantly(3@)     
     0151: remove_status_text $HLT  
     break  
     end   
end  

jump @ACTOR

pro12
Пользователи
08.01.15 20:24
Offline
Не понятно не может убить ?

softcrasoft
Пользователи
08.01.15 22:30
Offline
Такой вопрос
это я называю метками niname и т.д если не так исправте, поясните плиз для чего они нужны, я уже запутался, я программирую на c#и python и не пойм зачем нужны переходы, где на какие переходить. Многие создают загрузку моделей, проверку на загрузку в одной метки, другие в другой. Как все это понять?

wmysterio
Администраторы
Скриптер
08.01.15 22:51
Offline
Цитата pro12 ()
Не понятно не может убить ?
Если это вопрос, то я понятия не имею как на него отвечать smile
Но то, что не может убить то это вполне естественно. "напарники" в игре обычно такими и выходят smile
Цитата softcrasoft ()
niname

Может вы имеете ввиду "noname"?
Цитата softcrasoft ()
поясните плиз для чего они нужны
Если вы програмируете на c#, то
Код
jump @NONAME

:NONAME
тоже самое, что
Код
goto NOMANE;

NONAME:
Если вы имеете ввыду переход gosub, то код
Код
gosub @NONAME

:NONAME
return
это похоже на функцию в c#:
Код
NONAME();

void NONAME(){
return;
}
переход- это по-сути прыжок на другой участок кода, чтобы не выполнять код, рассположенный ниже, а сразу выполнить код с указанной метке в переходе.
Цитата softcrasoft ()
Многие создают загрузку моделей, проверку на загрузку в одной метки, другие в другой. Как все это понять?
Это они делают, чтобы не заставлять игру загружать модель ещё раз(лишний раз):
Код
:LABEL_1
Model.Load(#MODEL_NAME)
XXXX: load_requested_models

:LABEL_2
wait 0
if
Model.Available(#MODEL_NAME)
jf @LABEL_2 // Если мы укажем LABEL_1, то будет опять выполенятся загрузка модели

pro12
Пользователи
08.01.15 23:42
Offline
Цитата wmysterio ()
Если это вопрос, то я понятия не имею как на него отвечать Но то, что не может убить то это вполне естественно. "напарники" в игре обычно такими и выходят 

Тогда нужен опкод на убийства/смерть людей ?

wmysterio
Администраторы
Скриптер
09.01.15 00:27
Offline
Цитата pro12 ()
Тогда нужен опкод на убийства/смерть людей ?
Попробуйте это:
Код
{$CLEO}
Model.Load(#FAM2)
model.Load(#TEC9)
038B: load_requested_models

while true
wait 0
     if
     not Player.Defined($PLAYER_CHAR)
     then
     break
     end
     if  
     056D:   actor 0@ defined
     then
         if
         Actor.Dead(0@)
         then
         Actor.RemoveReferences(0@)
         Actor.DestroyInstantly(0@)
         Marker.Disable(4@)
         end
     else
         if
         0AB0:   key_pressed 9 // TAB
         then
         04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 0.0 -1.0
         0@ = Actor.Create(8, #FAM2, 1@, 2@, 3@)
         Actor.Health(0@) = 2000
         Actor.WeaponAccuracy(0@) = -1
         077A: set_actor 0@ acquaintance 0 to_actors_pedtype 0  
         Actor.GiveWeaponAndAmmo(0@, 32, 6000)
         0114: set_actor 0@ weapon 32 add_ammo 200000
         01B9: set_actor 0@ armed_weapon_to 32
         0631: put_actor 0@ in_group $PLAYER_GROUP
         099F: AS_actor 0@ ignore_weapon_range 1
         0946: set_actor 0@ actions_uninterupted_by_weapon_fire 1
         06F0: set_group 0@ distance_limit_to 3.0
         081A: set_actor 0@ weapon_skill_to 2
         Marker.CreateAboveActor(4@, 0@)
         07E0: set_marker 4@ type_to 1
         end    
     end
end

0A93: end_custom_thread
Если нажать ТАВ, то появится охранник. Если не поможет убивать, то установите ему иммунитеты, тогда уже наверняка не умрёт первым:
Код
Actor.SetImmunities(0@,1,1,1,1,1)

softcrasoft
Пользователи
09.01.15 00:40
Offline
wmysterio, так понятно еще никто не объяснял, спасибо!
Ребят, еще такой вопрос, где ошибка в этом коде, если вы поможете я буду как говориться на седьмом небе от счастья, даже на семдесят седьмом, вот код:
Код
// This file was decompiled using SASCM.ini published by Seemann ([url=http://sannybuilder.com/files/SASCM.rar]http://sannybuilder.com/files/SASCM.rar[/url]) on 13.10.2007
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
:NONAME_2
if
Player.Defined($PLAYER_CHAR)
else_jump @NONAME_2
wait 0
if
0ADC:   test_cheat "PER"
else_jump @NONAME_2
wait 0
Model.Load(#VLA3)
038B: load_requested_models
:NONAME_50
wait 0
if
Model.Available(#VLA3)
else_jump @NONAME_50
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 3.0 0.0
4@ = Actor.Create(Cop, #VLA3, 1@, 2@, 3@)
end_thread
актер не создается не в какую.
И еще такой вопрос, где можно узнать все переменные стандартные. Например здоровья, деньги и т.д.
Жду полета на семдесят седьмое небо с не терпением!
Заранее благодарен.

pro12
Пользователи
09.01.15 01:00
Offline
Это: 04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 3.0 0.0 замени на это 04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0
Отредактировал pro12 - Пятница, 09.01.15, 01:01

wmysterio
Администраторы
Скриптер
09.01.15 01:05
Offline
Цитата softcrasoft ()
актер не создается не в какую.
Вот:
Код
{$CLEO .cs}  
0000:

:NONAME_2
wait 0  
if  
Player.Defined($PLAYER_CHAR)  
jf @NONAME_2  
if  
0ADC:   test_cheat "PER"  
jf @NONAME_2  
Model.Load(#VLA3)  
038B: load_requested_models  

:NONAME_50  
wait 0  
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 3.0 0.0  
4@ = Actor.Create(Cop, #VLA3, 1@, 2@, 3@)  
model.Destroy(#VLA3)
0A93: end_custom_thread
Вводит чит "PER", и актёт устанавливается в нужных координатах. На будущее, используйте 0A93: end_custom_thread в место end_thread в CLEO-скриптах!

wmysterio
Администраторы
Скриптер
09.01.15 01:07
Offline
Цитата softcrasoft ()
И еще такой вопрос, где можно узнать все переменные стандартные. Например здоровья, деньги и т.д.
ну, на это нужно очень много времени приделять, потому, что таких очень много. Первое, что приходит в голову помотрите, что выдаёт вам команда Actor., второе - читайте уроки в архиве, там тоже можно много узнать.

pro12
Пользователи
09.01.15 01:15
Offline
Цитата wmysterio ()
Если нажать ТАВ, то появится охранник. Если не поможет убивать, то установите ему иммунитеты, тогда уже наверняка не умрёт первым:
Когда охранник бегает рядом с CJ-ем,все нормально всех убивает как у меня по скрипту было,но когда он сидит на мотоцикле полиции,или машине полиции с CJ-ем убить преступника с них не может.
Отредактировал pro12 - Пятница, 09.01.15, 01:15

wmysterio
Администраторы
Скриптер
09.01.15 01:54
Offline
Цитата pro12 ()
машине полиции с CJ-ем убить преступника с них не может
Попробуйте так:
Код
{$CLEO}
Model.Load(#FAM2)
model.Load(#TEC9)
038B: load_requested_models

while true
wait 0
     if
     not Player.Defined($PLAYER_CHAR)
     then
     break
     end
     if  
     056D:   actor 0@ defined
     then
         if
         Actor.Dead(0@)
         then
         Actor.RemoveReferences(0@)
         Actor.DestroyInstantly(0@)
         Marker.Disable(4@)
         end
     else
         if
         0AB0:   key_pressed 9 // TAB
         then
         04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 1.0 0.0 -1.0
         0@ = Actor.Create(8, #FAM2, 1@, 2@, 3@)
         Actor.Health(0@) = 2000
         Actor.WeaponAccuracy(0@) = -1
         077A: set_actor 0@ acquaintance 0 to_actors_pedtype 0  
         Actor.GiveWeaponAndAmmo(0@, 32, 6000)
         0114: set_actor 0@ weapon 32 add_ammo 200000
         01B9: set_actor 0@ armed_weapon_to 32
         0631: put_actor 0@ in_group $PLAYER_GROUP
         099F: AS_actor 0@ ignore_weapon_range 1
         0946: set_actor 0@ actions_uninterupted_by_weapon_fire 1
         06F0: set_group 0@ distance_limit_to 3.0
         081A: set_actor 0@ weapon_skill_to 2
         Marker.CreateAboveActor(4@, 0@)
         0713: actor 0@ driveby_actor -1 car -1 point 0.0 0.0 0.0 radius 360.0 4 1 firing_rate 200 // добавил только эту строку
         07E0: set_marker 4@ type_to 1
         end    
     end
end

0A93: end_custom_thread

softcrasoft
Пользователи
09.01.15 02:08
Offline
Ребят так что менять команду актера или строчку выше?
ну а если хочу цифрами обозначать тип то какой опкод использовать?
Да и еще такой вопрос, как можно найти машину ближе к актеру и записать ее в переменную? допустим чтоб потом сделать чтоб он в нее содился.

Добавлено (09.01.15, 01:06)
---------------------------------------------
И еще такой ворос, если не по теме извеняюсь. При знаний основ клео скриптинга, некоторых опкодов, можно ли делать такие миссии как в игре? или как в gta alien city? со звуками и т.д, ил что для этого нужно прочесть?

Добавлено (09.01.15, 01:08)
---------------------------------------------
Ну и еще вопрос, ответ на который я ищу 2 года.
Вот началась миссия, цель допустим парекмахерская и т.д, как сделать в скрипте чтоб эта точка отмечалась на карте? именно как мы отмечаем правой кнопкой мыши.


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