691
Скриптинг / Re: Проблема со скриптом охраны
« : Апрель 02, 2014, 10:01:58 am »
Это CLEO скрипт?
Если да, то: не юзай глобальные переменные типа $1307, используй локальные 1@ 2@ и т.д.
----------------------------------------------------------------------------------
Далее:
***ты загружаешь модели
поэтому тебе нужно делать проверку, загрузились ли модели, и лишь потом создавать чела с оружием:
*** ты создаешь чувака:
----------------------------------------------------------------------------------
***ты используешь одну переменную в двух противоречивых местах:
P.S. Может еще че есть, но пока - это то, что бросилось в глаза.
Если да, то: не юзай глобальные переменные типа $1307, используй локальные 1@ 2@ и т.д.
----------------------------------------------------------------------------------
Далее:
***ты загружаешь модели
Код: [Выделить]
model.Load(#AK47)
Model.Load(#BALLAS2)
038B: load_requested_models
А потом сразу создаешь чувака и даешь ему оружиеКод: [Выделить]
3@ = Actor.Create(gang2,#BALLAS2, 1@, 2@, 3@)
$1307 = Marker.CreateAboveActor(3@)
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0
0631: put_actor 3@ in_group $PLAYER_GROUP
01B2: give_actor 3@ weapon 30 ammo 6000 // Load the weapon model before using this
, а модели игрока и оружия могут не успеть прогрузиться.поэтому тебе нужно делать проверку, загрузились ли модели, и лишь потом создавать чела с оружием:
Код: [Выделить]
0248: model #AK47 available
0248: model #BALLAS2 available
----------------------------------------------------------------------------------*** ты создаешь чувака:
Код: [Выделить]
3@ = Actor.Create(gang2,#BALLAS2, 1@, 2@, 3@)
а уже потом получаешь координаты игрока, в которые нужно спавнить "охранника":Код: [Выделить]
04C4: create_coordinate 1@ 2@ 3@ from_actor $PLAYER_ACTOR offset 0.0 1.2 0.0
, т.е. нужно это поменять местами.----------------------------------------------------------------------------------
***ты используешь одну переменную в двух противоречивых местах:
Цитировать
3@ = Actor.Create(gang2,#BALLAS2, 1@, 2@, 3@)Это нормально, если ты хочешь оптимизировать код, но лишь если код позволяет это сделать, но у тебя ниже идут строки:
Цитировать
$HLT = actor.Health(3@) // кстати здесь опять нужно заменить глоб. переменную на локальную- и в результате - каша. В общем замени переменную актера 3@ на 4@, чтобы не путалось с координатами.
if or
not player.Defined(0)
0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET
then
break
else
if
actor.Dead(3@)
P.S. Может еще че есть, но пока - это то, что бросилось в глаза.