Author: SerpentSerpent píše:Napisałem funkcję która podaje nam wszystkie niezbędne informacje potrzebne do budowy 5 rozbudów do fabryki.
Jako parametry funkcja przyjmuje koordynaty fabryki oraz jej kierunek. Zwraca natomiast listę z koordynatami i kierunkami dla rozbudów.Kód: Vybrat vše
Export Function GetFacExtDir(x, y, dir); var list, i; begin list := []; Case dir of 0: begin list := [[x-4, y-4, 2], [x-3, y, 1], [x+4, y, 4], [x+3, y+3, 5], [x, y+4, 0]]; end; 1: begin list := [[x, y-4, 3], [x-3, y-3, 2], [x-3, y, 1], [x, y+3, 0], [x+4, y+4, 5]]; end; 2: begin list := [[x, y-3, 3], [x+3, y, 4], [x, y+4, 0], [x-3, y, 1], [x-4, y-4, 2]]; end; 3: begin list := [[x+3, y, 4], [x+4, y+4, 5], [x-4, y, 1], [x, y-4, 3], [x-3, y-3, 2]]; end; 4: begin list := [[x, y+4, 0], [x+3, y+3, 5], [x+3, y, 4], [x, y-3, 3], [x-4, y-4, 2]]; end; 5: begin list := [[x-4, y, 1], [x, y-4, 3], [x+4, y+4, 5], [x+3, y, 4], [x, y+3, 0]]; end; End; result := list; End;
Fabryka nie musi istnieć żeby zostały zwrócone koordynaty rozbudów.
Poniżej funkcja testująca:Kód: Vybrat vše
Export Function CreateFactoryWithExt(x, y, d); // test function var i, list, fac; begin list := GetFacExtDir(x, y, d); uc_side := 1; uc_nation := 1; bc_type = b_factory; fac = CreateAndPlaceBuildingXYD(x, y, d); for i = 1 to 5 do begin bc_type = [b_ext_laser, b_ext_gun, b_ext_radar, b_ext_noncombat, b_ext_rocket][i]; CreateAndPlaceBuildingXYD(list[i][1], list[i][2], list[i][3]); display_strings := list[i]; Wait(0$01); end; End;
Topic: https://forum.original-war.net/viewtopi ... =42&t=4654