Skocz do zawartości
Sutikku

System skilli

Rekomendowane odpowiedzi

Cześć, biorę się za jakiegoś skromnego rpg, takiego wiecie, klasycznego. Taka tibia czy realm of the mad god. Tylko, że offline.

Właśnie chciałem się wziąć za umiejętności, ale nie mam pojęcia jak. Mam 2 pomysły, ale oba wydają mi się zbyt długie i może ma ktoś jakiś koncept w głowie jak to zrobić lepiej, jakoś może mnie naprowadzić na inny tor myślenia. To ja może przedstawię jak ja myślałem.

1) Najprostszy

GML (pseudokod)
if skill==1

{

var f=instance_create(x,y,obj_fireball);

f.direction=direction;

f.speed=10;

}

if skill==2

{

invincible=1;

alarm[x]=240;

}

2) Trochę bardziej uporządkowany, bo coś w stylu paru gotowych umiejętności w postaci skryptów w których zmieniam tylko zmienne w stylu

GML (pseudokod)
if skill==3

{

area_skill(sprite,range,inna_zmienna);

}

if skill==4

{

passive_skill(dlugosc_trwania,invincible)

}

Ale ten sposób znów trochę ogranicza różnorodność umiejętności. Ktoś coś?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Drugi sposób wcale niczego nie ogranicza. Drugi sposób może być po prostu "wycięciem" kodu z obiektu i przeniesieniem do skryptów. Pamiętaj, że skrypty mają dostęp do danego obiektu z którego są wywołane i widzą je tak, jakby były wklejone w tym momencie w ten obiekt.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Drugi lepszy. Ogarnięty kod + o wiele mniej roboty + łatwiej dokonywać małych zmian.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

A gdyby tak array? Powiedzmy ze masz sobie skrypty ponazywane "Skill1" "Skill2" itd

GML
skill = 0; // to co miales w ifach

Skills[0] = Skill1;

Skills[1] = Skill2;

Skills[2] = Skill3;

 

i zdaje sie ze jest taka funkcja jak

GML
script_execute(Skills[skill]);

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie ma tego w Studio.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

script_execute które tylko wywołuje skrypty ze zmiennej dalej jest, poleciało execute_string i inne funkcje które parsują gmla na żywo

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×