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 :P 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 :P
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 ^^