Page 1 of 1
Budowa obiektów (bardziej skomplikowana)
Posted: Mon Jun 15, 2009 2:09 pm
by Scyzoryk
Chodzi o to, że nie znając Id inżyniera, zbudował on właśnie budnek na danych kordach. Jeżeli sie da np. losowy inżynier z danej arei w ustawionym czasie pujdzie i sbuduje szyb naftowy na XYR. Proszę o pomoc
Posted: Mon Jun 15, 2009 3:49 pm
by tex
Masz tu kod, ale jeśli jakiś inżynier będzie na danej arei wtedy pójdzie budować.
Code: Select all
export inzynierki;
starting
begin
inzynierki:=FilterUnitsInArea(area,([[f_side,1],[f_type,unit_human],[f_class,class_engineer]]));
end;
Every 0$1 Marked 01 do
begin
ComBuild(inzynierki, b_oil_mine, x, y, strona budynku);
end;
// gdzies tam w kodzie wystarczy
Every 20$0 do
begin
// twoja misja i dajesz
Enable(01);
end;
Sprawdzałem 100% działa

Posted: Mon Jun 15, 2009 4:30 pm
by Scyzoryk
właśnie o to mi chodziło, wielkie dzięki. Tylko co jeśli będzie wiecej niz 1 inżynier w arei np. 4?
Posted: Mon Jun 15, 2009 5:13 pm
by tex
No to wszyscy pójdą ;p jeśli chcesz oddzielnie to ja już nie wymyśle

może późnej. Ale im więcej inżynierów tym szybciej

Posted: Mon Jun 15, 2009 5:41 pm
by Scyzoryk
no ja wiem że szybciej ^^. Ale chciałbym aby kolejny inżynier z tej arei za chwilę zaczoł budowac następny budynek.
Posted: Mon Jun 15, 2009 7:18 pm
by tex
Dobra specjalnie dla ciebie zrobiłem.
Code: Select all
export inzynierki;
starting
begin
inzynierki:=FilterUnitsInArea(area,([[f_side,1],[f_type,unit_human],[f_class,class_engineer]]));
end;
Every 0$1 Marked 01 do
begin
ComBuild(inzynierki[1], b_oil_mine, x, y, strona budynku);
ComBuild(inzynierki[2], b_oil_mine, x, y, strona budynku);
ComBuild(inzynierki[3], b_oil_mine, x, y, strona budynku);
ComBuild(inzynierki[4], b_oil_mine, x, y, strona budynku);
end;
// gdzies tam w kodzie wystarczy
Every 20$0 do
begin
// twoja misja i dajesz
Enable(01);
end;
Każdy inżynier ma ident i jeżeli będzie 4 inżynierów każdy ma końcówkę 1,2,3,4 w nawiasie []
Good Job

Posted: Mon Jun 15, 2009 7:27 pm
by Birkart
Code: Select all
begin
inzynierki=[FilterUnitsINArea(area,([[f_side,side],[f_class,class_engineer]]));
eng1= inzynierki[Rand(1,inzynierki)];
eng2=inzynierki[rand(2,inzynierki)] diff eng1;
ComBuild(eng1,b_oil_tower,x,y,r);
ComBuild(eng2,b_oil_tower,x,y,r);
end;
itd.
btw. po co tyle blokow every?
Posted: Mon Jun 15, 2009 7:31 pm
by tex
Lubie every ;p tak jak ktoś ma już misję cała to tak dla rozjaśnienia całej sprawy

Posted: Mon Jun 15, 2009 7:35 pm
by Birkart
every moze i sa wygodne
ale jak jest duzo zbednych blokow to sie mod tnie, zwlaszcza na starszych kompach :p
Posted: Mon Jun 15, 2009 7:37 pm
by tex
Nie chce już robić z tego off topa ale jak ktoś jest początkujący to trzeba mu rozpisać, i dać jakiś łatwy kod. A nie żeby się zastanawiał co do czego,itp

Posted: Mon Jun 15, 2009 9:10 pm
by Scyzoryk
thx dla obydwu, oba działaja bardzo dobrze, pozatym że musiałem troche poprawić kod texa bo kompilator wykrywał błędy
Posted: Tue Jun 16, 2009 9:12 am
by Anarchy
Scyzoryk wrote:thx dla obydwu, oba działaja bardzo dobrze, pozatym że musiałem troche poprawić kod texa bo kompilator wykrywał błędy
Ty?:P
Posted: Tue Jun 16, 2009 9:59 am
by tex
Sprawdzałem swój kod i działa wszystko, chyba że dałeś to dla objaśnienia x,y,strona budynku ;p to będą błędy. ;d
Posted: Tue Jun 16, 2009 11:31 am
by Scyzoryk
tak anarchy ja
tex wrote:Sprawdzałem swój kod i działa wszystko, chyba że dałeś to dla objaśnienia x,y,strona budynku ;p to będą błędy. ;d
nie jestem taki tępy ^^