
żuker napisał(a):Witam,
robię misję z udziałem zombie i nie wiem jak zrobić żeby się spawnowały w równych odstępach czasu? Np. co 60 sekund?
Proponowałbym na przyszłość napisać więcej szczegółów, bo z GG wiem że chodzi o moje zombie, o skrypt i o misje MP, ale z treści to nie wynika.
Moja propozycja jest taka - wstawić wyzwalacz, nazwać go spawn1, warunek dać true i w przy aktywacji wpisać [spawn1,60,6] exec "spawn.sqs". Poza tym trzeba gdzieś na mapie umieścić jednego zombie o nazwie z1 i wstawić element logiczny o nazwie serwer.
Do misji wrzucić skrypty spawn.sqs o następującej zawartości
- Kod: Zaznacz cały
?!(local serwer): exit
_pos = _this select 0
_pause = _this select 1
_howMany = _this select 2
#GrandLoop
_point = getPos _pos
_i = 0
#Loop
_point = [(_point select 0) - 25 + random(50),(_point select 1) -25 + random(50)]
_los = random(3)
?(_los<=1):_zombiak1 = "ALDI_zombiak1" createUnit [_point,group z1,"[this] join grpNull;[this] exec {hunt.sqs}; this switchMove {Lying}"]
?(_los>1 && _los<=2):_zombiak1 = "ALDI_zombiak2" createUnit [_point,group z1,"[this] join grpNull;[this] exec {hunt.sqs}; this switchMove {Lying}"]
?(_los>2):_zombiak1 = "ALDI_zombiak3" createUnit [_point,group z1,"[this] join grpNull;[this] exec {hunt.sqs}; this switchMove {Lying}"]
~1
_i = _i + 1
?(_i<_howMany): goto "Loop"
~_pause
goto "GrandLoop"
Pierwszy parametr określa miejsce spawnowania, drugi odstęp czasowy, a trzeci ilość zombie spawnowanych za jednym razem.
Dodatkowo potrzeba skryptu hunt.sqs o następującej treści
- Kod: Zaznacz cały
?!(local serwer): exit
_zombiak = _this select 0
lista = [x1,x2,x3,x4,x5,x6]
_n = count lista - 1
#start
_i = -1
_bliski = _zombiak
_dist = 100000
#smallLoop
_i = _i + 1
?(!alive (lista select _i)):goto "smallLoop"
_rob = lista select _i
?((_rob distance _zombiak) < _dist): _bliski = lista select _i
?((_rob distance _zombiak) < _dist): _dist = (_zombiak distance _rob)
?(_i < _n): goto "smallLoop"
_zombiak doMove getPos _bliski
@(("SoldierWMedic" countType [nearestObject[_zombiak,"SoldierWMedic"]] == 1) || (time % 300 == 0))
?("SoldierWMedic" countType [nearestObject[_zombiak,"SoldierWMedic"]] == 0): goto "start"
#loop
_bliski = nearestObject[_zombiak,"SoldierWMedic"]
_zombiak doMove getPos _bliski
_zombiak reveal _bliski
_zombiak DoFire _bliski
~Param1
?(alive _zombiak): goto "loop"
exit
W tablicy lista muszą się znaleźć wszystkie nazwy jednostek, które mają być ściagane przez zombie. Ponadto zombie będą atakować raczej tylko sanitariuszy zachodu - tak już w moich misjach jest.