Skocz do zawartości

Rekomendowane odpowiedzi

Opublikowano

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ś?

  • Administratorzy
Opublikowano

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.

  • 3 miesiące temu...
Opublikowano

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]);
Opublikowano

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

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