Enable

Wszystko o modach, patchach i błędach w OW oraz ogólnym programowaniu.
Post Reply
User avatar
Pablo Abruzzi
Soldier level 5
Soldier level 5
Posts: 269
Joined: Mon Jul 28, 2008 3:09 pm
Location: Polska
Contact:

Enable

Post 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???
Si vis pacem, para bellum jeśli chcesz pokoju, gotuj się do wojny.

THE HEROES COMPANY MOD
[progress]100%[/progress]
DONE
http://forum.original-war.net/viewtopic ... 6&start=90
User avatar
Birkart
Soldier level 2
Soldier level 2
Posts: 47
Joined: Sat Sep 20, 2008 5:38 pm
Location: Timbuktu

Post 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
User avatar
Moonstrider
Soldier level 4
Soldier level 4
Posts: 110
Joined: Fri Nov 09, 2007 11:10 pm
Contact:

Post 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:

Code: Select all

counter = 1;
atakx3;
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:

Code: Select all

hcreation(soldat1);
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 :)
Seek your own truth. Always.
User avatar
tex
Soldier level 3
Soldier level 3
Posts: 61
Joined: Mon May 28, 2007 6:03 pm
Location: Czchów
Contact:

Post by tex »

Można by tak jeszcze zrobić

Code: Select all

For i:= 1 to 3 do
Begin
//kod ataku
Wait(10$0);
End;
Image
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post 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
Jeanks zgarnia wszystko ot co xD
User avatar
Birkart
Soldier level 2
Soldier level 2
Posts: 47
Joined: Sat Sep 20, 2008 5:38 pm
Location: Timbuktu

Post 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
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post 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 :]
Jeanks zgarnia wszystko ot co xD
User avatar
YuriStriatov
Site Administrator
Site Administrator
Cuba
Posts: 1395
Joined: Fri Feb 17, 2006 3:02 am
Contact:

Post 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...
Image
User avatar
Jeanks
Soldier level 6
Soldier level 6
Posts: 305
Joined: Fri Feb 16, 2007 1:34 pm
Location: Grudziądz

Post by Jeanks »

No faktycznie zapomniałem nie ten wait tylko w MARKEDZIE ustawic 10, 02 itp
Jeanks zgarnia wszystko ot co xD
Post Reply