SAIL - GetFacExtDir (pobieranie rozbudów nieistniejącej fb.)

Gotowe kody SAIL'a, informacje na temat moddingu, itd.

Moderator: zoNE

Post Reply
User avatar

Topic author
zoNE
The Great Uniter & Site Administrator
The Great Uniter & Site Administrator
Posts: 1537
Joined: Fri Feb 17, 2006 3:44 pm
Location: Poland
Contact:

SAIL - GetFacExtDir (pobieranie rozbudów nieistniejącej fb.)

#1

Post by zoNE » Tue Jan 19, 2016 12:19 pm

Serpent wrote:Napisałem funkcję która podaje nam wszystkie niezbędne informacje potrzebne do budowy 5 rozbudów do fabryki.

Code: Select all

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;
Jako parametry funkcja przyjmuje koordynaty fabryki oraz jej kierunek. Zwraca natomiast listę z koordynatami i kierunkami dla rozbudów.

Fabryka nie musi istnieć żeby zostały zwrócone koordynaty rozbudów.


Poniżej funkcja testująca:

Code: Select all

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;
Author: Serpent
Topic: viewtopic.php?f=42&t=4654

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest