Enable

Wszystko o modach, patchach i błędach w OW oraz ogólnym programowaniu.
Responder
Avatar de Usuario
Pablo Abruzzi
Soldier level 5
Soldier level 5
Mensajes: 269
Registrado: Lun Jul 28, 2008 3:09 pm
Ubicación: Polska
Contactar:

Enable

Mensaje por 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:

Código: Seleccionar todo

....
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
Avatar de Usuario
Birkart
Soldier level 2
Soldier level 2
Mensajes: 47
Registrado: Sab Sep 20, 2008 5:38 pm
Ubicación: Timbuktu

Mensaje por Birkart »

ja bym to zrobił tak

gdzies tam w tym bloku

Código: Seleccionar todo

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
Avatar de Usuario
Moonstrider
Soldier level 4
Soldier level 4
Mensajes: 110
Registrado: Vie Nov 09, 2007 11:10 pm
Contactar:

Mensaje por Moonstrider »

Ja zrobiłbym to nieco inaczej :)

Código: Seleccionar todo

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:

Código: Seleccionar todo

counter = 1;
atakx3;
A co do losowych poziomów żołnierzy, to jeśli chcesz ich robić masowo to robisz to funkcją:

Código: Seleccionar todo

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:

Código: Seleccionar todo

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.
Avatar de Usuario
tex
Soldier level 3
Soldier level 3
Mensajes: 61
Registrado: Lun May 28, 2007 6:03 pm
Ubicación: Czchów
Contactar:

Mensaje por tex »

Można by tak jeszcze zrobić

Código: Seleccionar todo

For i:= 1 to 3 do
Begin
//kod ataku
Wait(10$0);
End;
Imagen
Avatar de Usuario
Jeanks
Soldier level 6
Soldier level 6
Mensajes: 305
Registrado: Vie Feb 16, 2007 1:34 pm
Ubicación: Grudziądz

Mensaje por Jeanks »

Código: Seleccionar todo

 

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
Avatar de Usuario
Birkart
Soldier level 2
Soldier level 2
Mensajes: 47
Registrado: Sab Sep 20, 2008 5:38 pm
Ubicación: Timbuktu

Mensaje por 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

Código: Seleccionar todo

  begin
    PrepareSoldier(0,rand(min_level,max_level);
    sol=CreateHuman;
  end;

na losowego żolnierza :p
Avatar de Usuario
Jeanks
Soldier level 6
Soldier level 6
Mensajes: 305
Registrado: Vie Feb 16, 2007 1:34 pm
Ubicación: Grudziądz

Mensaje por 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
Avatar de Usuario
YuriStriatov
Site Administrator
Site Administrator
Cuba
Mensajes: 1395
Registrado: Vie Feb 17, 2006 3:02 am
Contactar:

Mensaje por 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?

Código: Seleccionar todo

Every 0$0.1 MARKED 01 do 
begin 
wait(10$0); 
//kod ataku 
end;
Powinno byc

Código: Seleccionar todo

Every 10$0 MARKED 01 do 
begin 
//kod ataku 
end;
I wtedy bedzie faktycznie co 10 minut...
Imagen
Avatar de Usuario
Jeanks
Soldier level 6
Soldier level 6
Mensajes: 305
Registrado: Vie Feb 16, 2007 1:34 pm
Ubicación: Grudziądz

Mensaje por Jeanks »

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