Skocz do zawartości

On cały czas strzela...


Rekomendowane odpowiedzi

Mam taki oto wspaniały kod:

{
if can_shoot=true
and bron1=1 and global.ammoj>=0 then
can_shoot = false;
image_speed = 0.2;
image_index = 0;
sound_play(snd_shot);
with(obj_player)
{
var obj;

obj=instance_create(x,y,obj_pocisk)
obj.x=x+0.001*cos(direction*pi/180)
obj.y=y-0.001*cos(direction*pi/180)
obj.speed=20
obj.direction=direction
}

Jest jednak problem, bo postać strzela cały czas i nie stosuje się do zmiennych: bron1, ammoj, can_shoot...może przyda się informacja, że takich kodów jest 3 i każdy ma inaczej z bron, ammo...po zmianie broni i tak wszystkie 3 strzelają z karabinu...

Odnośnik do komentarza
Udostępnij na innych stronach

Klamry......

if ( can_shoot ) = true and bron1 = 1 
{
     if ( global.ammoj ) > 0 
     {
          can_shoot = false;
          image_speed = 0.2;
          image_index = 0;
          sound_play(snd_shot);
          with(obj_player)
          {
               var obj;
               obj=instance_create(x,y,obj_pocisk)
               obj.x=x+0.001*cos(direction*pi/180)
               obj.y=y-0.001*cos(direction*pi/180)
               obj.speed=20
               obj.direction=direction
          }
     }
}

Odnośnik do komentarza
Udostępnij na innych stronach

@LM: Kiedy mi chodzi o nie stosowanie się kreowania pocisków do powyższego kodu, a nie o jakieś banalne alarmy czy koniec amunicji...

maxpayne: OK, ale czy przy global.ammoj=0 on nie powinien "nie" strzelać...?

W sensie, że to nie rozwiązało problemu i dalej strzela koleś, ale słucha się przynajmniej can_shoot i bron1...

Odnośnik do komentarza
Udostępnij na innych stronach

Nie rozumiem o to chodzi?

if ( can_shoot ) = true and bron1 = 1 
{
     if ( global.ammoj ) > 0 
     {
          can_shoot = false;
          image_speed = 0.2;
          image_index = 0;
          sound_play(snd_shot);
          obj_player = instance_create(x,y,obj_pocisk);
          obj_pocisk.x = x+0.001*cos(direction*pi/180);
          obj_pocisk.y = y-0.001*cos(direction*pi/180);
          obj_pocisk.speed = 20;
          obj_pocisk.direction = direction;
     }
}

 

???????

Odnośnik do komentarza
Udostępnij na innych stronach

if ( can_shoot ) = true and bron1 = 1

{

if ( global.ammoj ) > 0

{

can_shoot = false;

global.ammoj-=1

image_speed = 0.2;

image_index = 0;

sound_play(snd_shot);

obj_player = instance_create(x,y,obj_pocisk);

obj_pocisk.x = x+0.001*cos(direction*pi/180);

obj_pocisk.y = y-0.001*cos(direction*pi/180);

obj_pocisk.speed = 20;

obj_pocisk.direction = direction;

}

}

Teraz powinno chodzić xP

Odnośnik do komentarza
Udostępnij na innych stronach

Bo po if'ie zawsze robi się pierwsza akcją którą napotka. W tym przypatku to wykonywał tylko can_shoot = false; Nic więcej. To wszystko (cała "funkcja strzału") musiała być w klamrach "{}" aby działało tak jak chcesz :)

 

Tak powinno działać:

{
if can_shoot=true  and bron1=1 and global.ammoj>=0 then 
{
can_shoot = false;
image_speed = 0.2;
image_index = 0;
sound_play(snd_shot);
with(obj_player)
{
var obj;

obj=instance_create(x,y,obj_pocisk)
obj.x=x+0.001*cos(direction*pi/180)
obj.y=y-0.001*cos(direction*pi/180)
obj.speed=20
obj.direction=direction
}
}

Odnośnik do komentarza
Udostępnij na innych stronach

@Up: Nie będzie działać, bo nie dałeś na końcu } xD a z resztą, ja mu napisałem to na początku, a wy to cały czas piszecie. <_<

Zawsze się czepiam :P .

Tylko że ty dawałeś zły kod -.- Nie wciskaj ludziom kitu. Przyjrzyj się swojemu kodowi.

Pozdrawiam,

Iv!n.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...