Skocz do zawartości

Czary w grze RPG


Lordis

Rekomendowane odpowiedzi

1. a więc mam narazie 3 rodzaje czarów

 

-leczące

-naprowadzające(jak mam potwora na ataku to wali w niego)

-explozje

 

i właśnie tu chciałbym sie zapytać zrobiłem już że gdy nacisne ikonke czaru to wybuch pojawia sie na graczu

ale nie wiem jak zrobić żeby odbierał hp WSZYSTKIM potworom w odległości 48 pixeli a nie tego co mam na ataku (dla niekapujących tak jak np. UE w tibi)

 

2. jak zrobić żeby potwory i gracz nie mogli wchodzić na siebie ( SOLID nic nie daje zaznaczam i lipa nic )

 

3. jeszcze wruce do czarów mam taki skrypt:

CODE

if (global.player_mp >= 10 ) && (global.atak_npc != -1) && (czas <= 0)

{

instance_create(global.atak_npc.x,global.atak_npc.y,obj_fire)

global.atak_npc.hp -= (global.player_magic * 0.35 )

global.player_mp -= 10

czas = 10

}

else {}

 

 

w nim chodzi o to że jak mam potworka na ataku i mam 10 many to wale w potworka nie

ale chodzi mi o to żeby on walil raz za (global.player_magic * 0.35 ) a gdy naciskam ikonke czaru to dostaje ciągle za (global.player_magic * 0.35 ) dopuki nie zniknie ogień z niego (animacja)

Odnośnik do komentarza
Udostępnij na innych stronach

1. dobra ale właśnie o to chodzi że gdyby to był jeden potworek to bez problemu ale jest ich narazie dwóch a bedzie setki... to co mam tak każdego wpisywać?

 

2.

speed=0
x=xprevious
y=yprevious

to samo jak by był jeden potworek to gitara ale ich bedzie pełno :(

Odnośnik do komentarza
Udostępnij na innych stronach

1.

GML
with(obj_potworek)

{

ds = distance_to_object(hero)

if (ds < 150)

{

hp -= 100

//akcja obrwania

}

}

 

2.

GML
[step moba]

if (distance_to_obiekt(hero) > 10)

{

speed = 3;

direction = point_direction(x,y,hero.x,hero.y);

}

else

speed = 0

 

3.

GML
[create] can = true

 

[przy ataku]

if (can)

{

//akcje strzału

can == false

}

 

[animation end w obiekcie fire] hero.can = true

Odnośnik do komentarza
Udostępnij na innych stronach

możesz zrobić na tablicach, zaraz dam kod.

 

GML
for (i = 0; i < instance_number( mob ); i += 1)

{

obj = instance_find( mob, i);

if ( !instance_exists( obj )) break;

ds = distance_to_object( obj );

if ( ds < 150 )

{

obj.hp -= 100

//jakaś tam akcja

}

}

takie pasuje. Jak coś to zaraz zrobię na listach.

 

 

GML
ds_list_clear(lista)

for (i = 0; i < instance_number( mob ); i += 1)

{

obj = instance_find( mob, i);

ds = distance_to_object( obj );

if ( ds < 150 ) ds_list_add(lista,obj)

}

 

 

for (i = 0; i < ds_list_size(lista); i += 1) with(ds_list_find_value(lista,i)) /*akcja odejmowania hp*/

PS. nie zapomnij stworzyć tej listy w create
Odnośnik do komentarza
Udostępnij na innych stronach

...

 

 
  ds = distance_to_object( obj ); 
   if ( ds < 150 )    
    {     
   obj.hp -= 100    
    }

 

to jeszcze rozumiem ale to

for (i = 0; i < instance_number( mob ); i += 1)
{   
obj = instance_find( mob, i);  
  if ( !instance_exists( obj ))
break;

nie rozumiem :(

Odnośnik do komentarza
Udostępnij na innych stronach

GML
for (i = 0; i < instance_number( mob ); i += 1) // zapętla tyle razy ile jest obiektów "mob"

{

obj = instance_find( mob, i); // znajduje obiekt o numerze i

if ( !instance_exists( obj )) continue; //jeżeli obiekt nie istnieje pomija go

ds = distance_to_object( obj );

if ( ds < 150 )

{

obj.hp -= 100

//jakaś tam akcja

}

}

zastosowanie pętli for
Odnośnik do komentarza
Udostępnij na innych stronach

no to nie rozumiem :( jak dam tam nazwe potworka to bedzie tak to wyglądało:

 

for (i = 0; i < instance_number( m_rat ); i += 1) 
{
obj = instance_find( m_rat, i);
if ( !instance_exists( obj )) continue;
ds = distance_to_object( obj );  

if ( ds < 150 ) 
{      
obj.hp -= 100     
}}

 

i co to da? a jak mam np. 3 potwory m_rat , m_ork i m_bandit ?

Odnośnik do komentarza
Udostępnij na innych stronach

ej no ale to jest też do jednego potworka :(

nie da sie zrobić jednej global zmiennej która by odpowiadała wszystkim potworkom i ją wstawić do mojego czaru?? no bo tu to co ja to bym musiał karzdemu potworkowi dać czy jak ?? bo już sie zamotałem :(

 

EDIT:

 

Dobra może inaczej tak chce zrobić czar który Wybucha wokoło bohatera i uderza pobliskie potwory jak to zrobić??? może macie jakiś inny sposób :)

Odnośnik do komentarza
Udostępnij na innych stronach

JESTEŚ WIELKI STARY :D

 

tylko mi wyskakuje błąd

 

że coś jest nie tak z

 

effect_create_above(ef_ring,x,y,0,c_blue)

 

ale to usunelem i gitara to i tak jakiś efekt graficzny to tam mniejsz :D dzieki dzieki :)

 

EDIT:

ej czyli jak tu są 3 potwory to trzeba podać 3 nazwy a jak ja bede miał 400 to co wtedyteż musze wszystkie wpisywać??

Odnośnik do komentarza
Udostępnij na innych stronach

OK działa a ja tam dałeś:

 

if ( object_index= obj_monster1 || object_index= obj_monster2 || object_index= obj_monster3)

 

to nie dało by sie jakoś skrócić

 

if ( object_index = obj_monster ... )

i tu gdzie kropki dać coś co by odpowiadało np. 1-100 i by było zamiast wpisywania 100 obj_monster wiesz o co chodzi ???

Odnośnik do komentarza
Udostępnij na innych stronach

A po co tak skomplikowanie? Oo

GML
if distance_to_object( hero ) <= 150 && czar1 = true

{

hp -= czar1hp

}

W każdym czarze tworzysz zmienną czarnumer i czarnumerhp.

W pierwszej ustawiasz false, w drugiej tyle życia ile ma odjąć. Prościej, zabawniej itp.

Odnośnik do komentarza
Udostępnij na innych stronach

skoro nie masz pojęcia o gm to nie poprawiaj innych!!

weź pomyśl ile z tym bałaganu...

ogólnie to chodzi o to aby nie zagubić się we własnym kodzie, uważam, ze to co napisałem jest dobre i wydajne, nie robi bajzlu w kodzie.

 

 

 

 

 

 

...jeleń!

 

 

Lordis a od czego jest poczta? :P

Lecha proszę. :D

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ę...