Page 1 of 1
Enable
Posted: Mon Apr 27, 2009 7:18 pm
by Pablo Abruzzi
Mam problem z funkcją enable, otóż chciałbym, aby atak był co dziesięć minut, ale tylko 3 razy, próbowałem różnych kombinacji:
Code: Select all
....
enable(3);
....
....
enable;
Wait(10$0);
disable;
Ale nie podziałało. Proszę o pomoc.
I tak przy okazji to jak zrobić, aby jednostki wroga (ludzie) mieli poziomy losowe, albo, np: minimum:2, maximum:10???
Posted: Mon Apr 27, 2009 7:27 pm
by Birkart
ja bym to zrobił tak
gdzies tam w tym bloku
Code: Select all
every12$34 marked numer do
if jakas_zmienna<3 the
begin
enable
if jakas_zmienna>3 then
begin
jakas_zmienna=jakas_zmienna+1;
end;
if jakas_zmienna=3 then
begin
Disable(numer);
end;
cos_tam;
kod_na_atak;
end;
osobiscie tego nie probowalem ale powinno dzialac jak wstawisz zmienne i komendy
Posted: Mon Apr 27, 2009 9:45 pm
by Moonstrider
Ja zrobiłbym to nieco inaczej
Code: Select all
export counter;
Export Function atakx3;
Begin
for counter <= 3 do
Begin
counter += 1 { nie wiem czy '+=' zadziała w SAILu... jeśli nie zmienisz to na
counter = counter +1 }
// kod ataku
Wait(10$0);
end;
end;
i gdzieś po Starting lub jakimś warunku:
A co do losowych poziomów żołnierzy, to jeśli chcesz ich robić masowo to robisz to funkcją:
Code: Select all
Export Function hcreation(name);
Begin
hc_sex=Rand(1,2);
hc_attr=[Rand(10,12),Rand(10,12)];
hc_skills=[Rand(2,10),0,0,0];
name=CreateHuman;
end;
no i tworzysz ludzi:
a jeśli to pojedyńcze ludki to określając odpowiednie wartości wstawiasz Rand(a,b)... nie zapomnij dać na początku Randomize; i RandomizeAll; zaraz po Starting tak na wzelki wypadek

Posted: Sun Jun 14, 2009 9:10 am
by tex
Można by tak jeszcze zrobić
Code: Select all
For i:= 1 to 3 do
Begin
//kod ataku
Wait(10$0);
End;
Posted: Sun Jun 14, 2009 12:58 pm
by Jeanks
Code: Select all
starting
begin
disable(01):
disable(02):
disable(03): / wyłączasz wszystkie marked te poniżej
Gdzieś w kodzie np w dialogu OD którego ma się zacząć liczyć czas do PIERWSZEGO ATAKU dajesz.
np.
Every 10$0 do
begin
//jakis dialog
Enable(01);
Enable(02);
Enable(03);
........
Every 0$0.1 MARKED 01 do
begin
wait(10$0);
//kod ataku
end;
Every 0$0.1 MARKED 02 do
begin
wait(20$0);
//kod ataku
end;
Every 0$0.1 MARKED 03 do
begin
wait(30$0);
//kod ataku
end;
SPRAWDZILEM DZIALA
Posted: Mon Jun 15, 2009 7:30 pm
by Birkart
a jak chcesz 5 ataków?
albo 7?
to co wiecej bloków every dasz?
nawet na dobrych kompach mod sie potrafi przerazliwie ciac jak jest tak upchany zbednymi blokami....
co do losowych poziomów to
Code: Select all
begin
PrepareSoldier(0,rand(min_level,max_level);
sol=CreateHuman;
end;
na losowego żolnierza :p
Posted: Tue Jun 16, 2009 7:50 am
by Jeanks
Kompa nie ma prawa zmulić bo bloki będą się uruchamiać jeden na 10minut. A siedem raczej by niestosował bo nikt by 70min niechciał się męczyć z jednym zadaniem typu "Odeprzyj falę ruskich czołgów" pzdr dla kumatych :]
Posted: Tue Jun 16, 2009 11:34 am
by YuriStriatov
Jeanks jak raz na 10 minut jak blok sie uruchamia co 1 sekunde i potem czeka 10 minut, czyli ogolnie po 10 minutach ci sie ten blok zacznie uruchamiac co sekunde. Dlaczego?
Code: Select all
Every 0$0.1 MARKED 01 do
begin
wait(10$0);
//kod ataku
end;
Powinno byc
Code: Select all
Every 10$0 MARKED 01 do
begin
//kod ataku
end;
I wtedy bedzie faktycznie co 10 minut...
Posted: Tue Jun 16, 2009 1:25 pm
by Jeanks
No faktycznie zapomniałem nie ten wait tylko w MARKEDZIE ustawic 10, 02 itp