SAIL - "Wyodrębnienie" labolatoriów.

Wszelkie pytania na temat SAIL'a i modowania OW.
Ответить
Аватара пользователя
Xero Rozbójca
Soldier level 6
Soldier level 6
Сообщения: 391
Зарегистрирован: Вс мар 08, 2009 5:13 pm
Откуда: Szukaj w kioskach...

SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Xero Rozbójca »

Witam.
Od zawsze mam problem z wyodrębnieniem kilku tych samych budynków, które są budowane po sobie bez użycia identów, a potem, chcę je np. rozbudować w evencie.

http://pastebin.pl/24707 Proszę o to kod. Oczywiście jest on wycięty.

Dodatkowo:

Код: Выделить всё

export sklad, fabryka, lab, lab1;
export function rozbudowa;
begin
sklad=ComBuild(arab1, b_depot, 116,6, 3);
wait(0$1);
fabryka=AddComBuild(arab1, b_workshop, 134,15, 3);
end;
Wie ktoś, jak je wyodrębnić?
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Изображение
Аватара пользователя
Xero Rozbójca
Soldier level 6
Soldier level 6
Сообщения: 391
Зарегистрирован: Вс мар 08, 2009 5:13 pm
Откуда: Szukaj w kioskach...

Re: SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Xero Rozbójca »

Topic refresh!
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Изображение
Аватара пользователя
Gwrhkhsh
Soldier level 6
Soldier level 6
Сообщения: 398
Зарегистрирован: Пт май 21, 2010 5:56 pm
Откуда: Wrocław

Re: SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Gwrhkhsh »

Код: Выделить всё

#ident = FilterAllUnits([f_btype, #stała budynku]);
albo

Код: Выделить всё

on BuildingComplete(build)
   if GetBType(build) = #stała budynku then #ident = build 
To dwa najwygodniejsze z możliwych wyjść. Sposób, którego używasz, działać nie będzie.
Аватара пользователя
Xero Rozbójca
Soldier level 6
Soldier level 6
Сообщения: 391
Зарегистрирован: Вс мар 08, 2009 5:13 pm
Откуда: Szukaj w kioskach...

Re: SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Xero Rozbójca »

Sam już wpadłem jak zrobić. Polak chce, Polak potrafi ^^

Ustawiłem na mapie aree, gdzie mają być budowane labolatoria i w kodzie napisałem coś takiego:

Код: Выделить всё

if GetBType(budynek)=b_lab and GetSide(budynek)=7 and isInArea(budynek, alab) then
begin
naukowcy;
ComEnterUnit([n,n1,n2,n3], budynek);
ComResearch(budynek, tech_solpow);
AddComResearch(budynek, tech_soleng);
AddComResearch(budynek, tech_oilpow);
AddComResearch(budynek, tech_oileng);
AddComResearch(budynek, tech_tech1);
AddComResearch(budynek, tech_tech2);
end;
if GetBType(budynek)=b_lab and GetSide(budynek)=7 and isInArea(budynek, alab1) then
begin
ComEnterUnit([n4,n5,n6], budynek);
wait(0$20);
ComUpgradeLab(budynek, b_lab_weapon);
end;
end;
Wszystko śmiga ładnie i jest cacy ;]
Temat do zamknięcia :D
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Изображение
Аватара пользователя
Gogeta103
Soldier level 5
Soldier level 5
Сообщения: 196
Зарегистрирован: Вт дек 18, 2007 4:57 pm

Re: SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Gogeta103 »

No niby wszystko pięknie cacy, ale co będzie jak laboratorium zbudujemy gdzie indziej a nie na tej twojej "arei". Jakoś dziwnie ten twój kod widzę. Ty może wiesz gdzie budować, ale my jako przyszli odbiorcy moda możemy tego nie wiedzieć. No chyba, że coś innego wymyśliłeś?
Radzio
Site Administrator
Site Administrator
Poland
Сообщения: 2898
Зарегистрирован: Пт июл 28, 2006 10:58 am
Откуда: Bialystok, Poland

Re: SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Radzio »

Trzeba było użyć eventu.
Аватара пользователя
Xero Rozbójca
Soldier level 6
Soldier level 6
Сообщения: 391
Зарегистрирован: Вс мар 08, 2009 5:13 pm
Откуда: Szukaj w kioskach...

Re: SAIL - "Wyodrębnienie" labolatoriów.

Сообщение Xero Rozbójca »

Код: Выделить всё

on BuildingComplete(budynek) do
begin
if GetBType(budynek)=b_depot and GetSide(budynek)=7 then
begin
SetResourceType(GetBase(budynek), mat_cans, 2000);
SetResourceType(GetBase(budynek), mat_oil, 2000);
SetResourceType(Getbase(budynek), mat_siberit, 2000);
end;
if GetBType(budynek)=b_workshop and GetSide(budynek)=7 then
begin
ComUpgrade(budynek);
lab=AddComBuild(arab1, b_lab, 108,6, 2);
lab1=AddComBuild(arab1, b_lab, 115,14, 5);
sloneczko=AddComBuild(arab1, b_solar_power, 120,3, 3);
sloneczko1=AddComBuild(arab1, b_solar_power, 124,4, 2);
end;
if GetBType(budynek)=b_lab and GetSide(budynek)=7 and isInArea(budynek, alab) then
begin
naukowcy;
ComEnterUnit([n,n1,n2,n3], budynek);
ComResearch(budynek, tech_solpow);
AddComResearch(budynek, tech_soleng);
AddComResearch(budynek, tech_oilpow);
AddComResearch(budynek, tech_oileng);
AddComResearch(budynek, tech_tech1);
AddComResearch(budynek, tech_tech2);
end;
if GetBType(budynek)=b_lab and GetSide(budynek)=7 and isInArea(budynek, alab1) then
begin
ComEnterUnit([n4,n5,n6], budynek);
wait(0$20);
ComUpgradeLab(budynek, b_lab_weapon);
end;
end;

On UpgradeComplete(buda) do
begin
if GetLabKind(buda, 1)=b_lab_weapon and GetSide(buda)=7 then
begin
ComResearch(buda, tech_Gatling);
AddComResearch(buda, tech_Gun);
AddComResearch(buda, tech_Explos);
AddComResearch(buda, tech_Rocket);
AddComResearch(buda, tech_weap1);
AddComResearch(buda, tech_weap2);
AddComResearch(buda, tech_weap3);
end;
end;                    

On ResearchComplete(tech, lab) do
begin
if GetTech(tech, 1)=tech_tech2 and GetBType(lab)=b_lab and isInArea(lab, alab) then
begin
ComUpgradeLab(lab,... // tu nie dokończyłem pisać ;p
Instrukcja jest dla komputera, aby wiedział, gdzie budować :P

A skoro Gogeta wiesz, jak wyodrębnić budynki, gdy np. gracz je wybuduje, to proszę , napisz mi co napisać.
"Osoby, stawiające więcej niż trzy znaki interpunkcyjne obok siebie, mają problemy ze zdrowiem psychicznym."

Изображение
Ответить