No więc zaprogramowałem sobie, aby komputer po pewnym czasie stworzył w swojej fabryce pojazd, który:
Będzie miał podwodzie śr. lub cięż. gąsienicowe
Będzie sterowany komputerowo.
Będzie miał silnik spalinowy
Jego bronią będzie podwójne działo lub wyrzutnia rakiet.
Jednak po wyprodukowaniu pojazdu gra mi wywala Range Check Errora.
Mój kod (przepraszam za ten burdel, jeszcze się uczę pewnych spraw)
Code: Select all
EXPORT RandVeh;
EXPORT function CreateRandVeh;
begin
CreateRandVeh;
Wait(0$10);
SetResourceType(GetBase(W2),mat_cans,1000);
RandVeh=(FilterAllUnits( [ [f_engine, engine_combustion],[f_side,8],[f_chassis,us_medium_tracked,[f_or],us_heavy_tracked],[f_control,control_computer],[f_weapon,us_double_gun,[f_or],[f_weapon,us_rocket_launcher] ]]));
enable;
end;
every 1$30 marked 002 do
begin
ComConstruct(F3,vc_chassis=[Rand(us_medium_tracked,us_heavy_tracked)],vc_control=control_computer,vc_engine=engine_combustion,vc_weapon=[Rand(us_double_gun,us_rocket_launcher)]);
ComMoveToArea(RandVeh,RandVehArea);
end;
EXPORT function RandAttack;
begin
RandAttack;
if (FilterAllUnits( [ [f_engine, engine_combustion],[f_side,8],[f_chassis,us_medium_tracked,[f_or],us_heavy_tracked],[f_control,control_computer],[f_weapon,us_double_gun,[f_or],[f_weapon,us_rocket_launcher] ]])) > 8 then
ComMoveToArea(FilterAllUnits( [ [f_engine, engine_combustion],[f_side,8],[f_chassis,us_medium_tracked,[f_or],us_heavy_tracked],[f_control,control_computer],[f_weapon,us_double_gun,[f_or],[f_weapon,us_rocket_launcher], ]]),Attack);
enable;
end;
Zapewne znów chodzi o jąkąś błahostkę, a ja nie mogę jej zobaczyć.
Z góry dziękuję za pomoc.
EDIT: A jeśli kod jest bezsensowny... no to cóż... uczę się troszku jeszcze.