Kod na zapis bazy jest dość krótki
Code: Select all
export baza;
var jedn, filtr;
baza=[];
filtr=FilterAllUnits([[f_side,side_bazy],[f_type,3]]);
for jedn in filtr do
Begin
if GetBType(jedn) in [b_lab, b_lab_half, b_lab_full] then
baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetLabKind(jedn,1),GetLabKind(jedn,2),GetIdent(jedn)]]
else
baza=baza^[[GetBType(jedn),GetX(jedn),GetY(jedn),GetDir(jedn),GetBLevel(jedn),GetNation(jedn),GetIdent(jedn)]];
end;
SaveVariable(baza,'Baza");
jeśli w misji dostępne są jakieś inne budynki z dodatkowymi parametrami, np.: wieżyczki, to wystarczy dodać odpowiednie if, tu dodając GetWeapon (a tak btw, to identycznie można zapisywać środowisko, na które miał wpływ gracz). Następnie wczytanie:
Code: Select all
var baza, jedn;
baza=LoadVariable('Baza',[]);
for jedn in baza do
Begin
bc_type=jedn[1];
bc_level=jedn[5];
uc_side=jedn[6];
if jedn[1] in [b_lab, b_lab_half, b_lab_full] then
Begin
bc_kind1=jedn[7];
bc_kind2=jedn[8];
end;
CreateAndPlaceBuildingXYD(jedn[2],jedn[3],jedn[4]);
end;
Co do tworzenia ropy jak skrzynki:
Code: Select all
CreateResourcesXY(2,ilosc,X,Y,materializacja);
ilosc to liczba od 1 do 5, materializacja 0 lub 1.
Pozatym kod powinien wyglądać tak:
Code: Select all
filterunitsinarea(A6,[[f_alive],[f_side,3],[f_type,unit_human]])
Seek your own truth. Always.