idea CreateUnit

Moderator: Inkwizytor

ODPOWIEDZ
eJay
Posty: 769
Rejestracja: 10 stycznia 2007, 18:31
ID Steam:

idea CreateUnit

Post autor: eJay »

Hejka

Chciałbym aby ktoś sprobowal rozwiazac moj problem. Otoz mam sobie misje i chcialbym aby po aktywacji pewnego wyzwalacza kilkadziesiat metrow dalej utworzyly sie nowe jednostki wroga. Problem jest taki, ze wyczytalem na jednym forum informacje iz, zeby skorzystac z CreateUnit nalezy najpierw utworzyc tam jakas grupe i do niej podlaczyc nowo utworzona jednostke.

Ja chce to zrobic na 2 sposoby:
- za pomoca markera tzn. ustawic na mapie marker 100x100 i chce aby w tym polu pojawilo sie kilka jednostek w losowych miejscach
- chce, aby nowo utworzone jednostki pojawily sie w konkretnych miejscach.

Co mam zrobić?
gremdek
Posty: 261
Rejestracja: 13 grudnia 2006, 16:53
ID Steam:

Re: idea CreateUnit

Post autor: gremdek »

zrób sobie najpierw jedną jednostkę daleko poza terenem działań.
nazwij ją Dummy.
wstaw też element logiczny o nazwie Server, aby skrypt był mp friendly.

Kod: Zaznacz cały

if(! local Server):exitwith{};
_pos = [((getmarkerpos "marker") select 0) + (random 100 - 50),((getmarkerpos "marker") select 1) + (random 100 - 50)] ;
_unit = "klasa jednostki, np. soldierWB" createUnit [_pos, group Dummy];
[_unit] join grpnull;
if(true):exitwith{};

to jest to losowe ustawienie, jak chcesz konkretne to po prostu zmień _pos. każda jednostka będzie bez grupy(to join grpnull robi ze wywala jednostkę z grupy Dummiego).
Ostatnio zmieniony 01 lipca 2007, 09:58 przez gremdek, łącznie zmieniany 1 raz.
cfog skończył się na kill'em all
Awatar użytkownika
kondor
Posty: 1526
Rejestracja: 13 marca 2007, 11:50
ID Steam: Przemek_kondor
Kontakt:

Re: idea CreateUnit

Post autor: kondor »

gremdek pisze:

Kod: Zaznacz cały

if!(local Server):exitwith{};
_pos = [((getmarkerpos "marker") select 0) + (random 100 - 50),((getmarkerpos "marker") select 1) + (random 100 - 50)] ;
_unit = "klasa jednostki, np. soldierWB" createUnit [_pos, group Dummy];
[_unit] join grpnull;
if(true):exitwith{};
if(! local Server)... a nie if !(local Server)...
http://community.bistudio.com/wiki/Cont ... -Statement
eJay
Posty: 769
Rejestracja: 10 stycznia 2007, 18:31
ID Steam:

Re: idea CreateUnit

Post autor: eJay »

gremdek, a moglbys konkretniej z tą zmiana _pos?? I czy zmienia sie jakies wartosci w tym kodzie przy zmiane wielkosci markera??
Awatar użytkownika
Grey
Posty: 104
Rejestracja: 12 lutego 2007, 15:24
ID Steam:

Re: idea CreateUnit

Post autor: Grey »

if(! local Server):exitwith{};
Jesli skrypt jest odpalony poza serwerem, zakoncz skrypt

_pos = [((getmarkerpos "marker") select 0) + (random 100 - 50),((getmarkerpos "marker") select 1) + (random 100 - 50)] ;
Nowa pozycja generowanej pozycji rowna się pozycja X markera o nazwie "marker" +-50 metrow i pozycja Y "markera" +-50metrow.

_unit = "klasa jednostki, np. soldierWB" createUnit [_pos, group Dummy];
stworz jednostke o klasie "klasa jednostki" (np. SoldierWB) na pozycji wczesniej wskazanej przez _pos. Nowa jednostka ma byc dolaczona do grupy jednostki o nazwie wlasnej "Dummy" (umieszczonej w edytorze)

[_unit] join grpnull;
Dodaj nowo utworzona jednostke do NIEISTNIEJACEJ grupy czyli stworz nowa grupe dla niej.

if(true):exitwith{};
Koniec kodu (po co to?)



Wg Raedora (http://community.bistudio.com/wiki/createUnit) funkcja createunit nic nie zwraca. Wpis pochodzi z 2006 roku czyli z OFP co mnie dziwi.
Nie sprawdzalem, jak jest w ArmA. Byc moze trzeba nieco bardziej skomplikowac skrypt, aby odlaczyc nowopowstala jednostke od grupy Dummy.
Najlatwiej wzbogacic creatunit o:

_unit = "klasa jednostki, np. soldierWB" createUnit [_pos, group Dummy,"createdUnit = this"];

A nastepnie

[createdUnit] join grpnull;

Ale tu sie pojawiaja kolejne komplikacje w przypadku bardziej skomplikowanego uzycia w trakcie misji. Jesli gremdekowa propozycja dziala, byloby najwygodniej.
eJay
Posty: 769
Rejestracja: 10 stycznia 2007, 18:31
ID Steam:

Re: idea CreateUnit

Post autor: eJay »

Misja jest pod SP, wiec wszelkie wpisy sluzace za mp friendly mozna sobie darować 8) Poprobuje pozniej, ale dzieki.
ODPOWIEDZ

Wróć do „Edytor - tworzenie misji, skrypty oraz programowanie”