Skocz do zawartości

Zablokowane Problem ze skryptem.


David Dark

Rekomendowane odpowiedzi

Witam,

zajalem sie nowymi skryptami do wyrzucania itemkow z potworkow. Po sprawdzeniu wszystkich dostepnych skryptow nie uzyskiwalem efektu o ktory mi chodzi wiec sprobowalem stworzyc swoj wlasny. Jest to pierwszy skrypt z argumentami, ktory zrobilem wiec spodziewalem sie, ze cos bedzie nie tak. :jezor:

No wiec chodzi w nim o to, aby sprawdzil czy w konkretnej pozycji znajduje sie juz jakis przedmiot i tylko przedmiot, a nie np. potwor. Skrypt ma za zadanie sprawdzic odpowiednia pozycje i zwrocic wartosc true lub false ktora jest potem sprawdzana(drugi skrypt) przy umieszczaniu przedmiotow i tworzy przedmiot w wolnym miejscu i tylko dopiero gdy sie okaze ze wszystkie okoliczne miejsca sa zajete tworzy przedmiot w miejscu gdzie umarl potworek niezaleznie od tego czy jest tam przedmiot czy nie.

 

A co jest problemem: skrypt tworzy wszystkie przedmioty w jednym miejscu - pod potworkiem.

 

Jesli ktos wie co zle napisalem prosze o pomoc, z gory dzieki ;)

 

GML

//scrypt scr_checkdrop(x,y)

// skrypt sprawdza czy dany obiekt znajduje sie w danej pozycji i zwraca wartosc true lub false.

var xxx, yyy, drop;

 

xxx = argument0;

yyy = argument1;

 

drop = instance_position(xxx,yyy,obj)

if(drop = noone) {return true;}

if(drop != noone) {return false;}

 

GML
//skrypt do tworzenia przedmiotu xx = x; yy = y;

// przykladowy skrypt ktory wyszukuje wolna pozycje w okolicy.

if scr_checkdrop(xx,yy){createditem = instance_create(xx,yy,obj)exit};

if scr_checkdrop(xx+32,yy){createditem = instance_create(xx+32,yy,obj)exit};

if scr_checkdrop(xx-32,yy){createditem = instance_create(xx-32,yy,obj)exit};

if scr_checkdrop(xx,yy+32){createditem = instance_create(xx,yy+32,obj)exit};

if scr_checkdrop(xx,yy-32){createditem = instance_create(xx,yy-32,obj)exit};

if scr_checkdrop(xx+32,yy+32){createditem = instance_create(xx+32,yy+32,obj)exit};

if scr_checkdrop(xx-32,yy-32){createditem = instance_create(xx-32,yy-32,obj)exit};

if scr_checkdrop(xx-32,yy+32){createditem = instance_create(xx-32,yy+32,obj)exit};

if scr_checkdrop(xx+32,yy-32){createditem = instance_create(xx+32,yy-32,obj)exit};

if place_free(xx,yy){createditem = instance_create(xx,yy,obj)exit};

Odnośnik do komentarza
Udostępnij na innych stronach

Argumenty w skryptach liczy się od 0, a nie od 1 :)

Może to był ten błąd :)

 

GML
//scrypt scr_checkdrop(x,y)

var xxx, yyy, drop;

xxx = argument0;

yyy = argument1;

drop = instance_position(xxx,yyy,o_item)

if(drop = noone) {return true;}

if(drop != noone) {return false;}

Odnośnik do komentarza
Udostępnij na innych stronach

Shocker51374 rzadzisz :thumbsup:

 

Dziala jak nalezy :) Latwo taka glupia rzecz przegapic :P

 

Dzieki za pomoc! :)

 

 

 

OK zedytowalem tez pierwszy post i dodalem maly komentarz do skryptu. tak zeby jesli ktos bedzie go potrzebowal bedzie mogl go uzyc w swoim projekcie

 

Temat zamykam

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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