GMC Bulgaria

Здравейте ( Вход | Регистрация )

 
Reply to this topicStart new topic
Помощ за Room_set_persistent(), Не работи...
psycho666
коментар 23:05:07, 28-January-2012, Saturday
Коментар #1


Новодошъл
*

Група: Потребител
Коментари: 22
Регистриран: 29.12.11
Град: Враца
Потребител № 1702



Привет на всички...
В момента всички стаи в играта ми са persistent. Проблема ми е, че след добавяне на още 5 пъти повече стаи лага ще стане умопомрачителен, за това реших да пооправя малко нещата, като persistent да е само стаята, в която се намира героя... И така.

Ако героя влезе в room1 ползвам кода:
room_set_persistent(room1,1)
instance_create(16,400,obj_hero)
global.location=1

Когато излезе от room1 и влезе в room2 използвам кода:
room1:
if(obj_hero.x<16){
room_set_persistent(room1,0)
//destroy hero
}

room2:
instance_create(784,400,obj_hero)
room_set_persistent(room2,1)
global.location=2

Ползвам location за други цели, които не са важни в момента. Проблема е:
instance_create() се изпълнява. Все пак героя ми е в стаята.
global.location се променя, защото това, за което го ползвам си работи.
room_set_persistent() не се изпълнява... Не знам защо. Ползвам имената на стаите, които копирам от програмата, пробвах с 1/0 и true/false...

Не знам вече какво да правя, но стаите не са persistent.
Къде греша?


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
TALANTO
коментар 23:37:57, 28-January-2012, Saturday
Коментар #2


BEST ENTRY award - зад.1/2008
Икона на група

Група: VIP
Коментари: 597
Регистриран: 19.04.07
Град: Kюстендил
Потребител № 539



Май някои неща не са ти ясно, но не знам до каква степен ще ти ги обясня. Room persistent се изплозва, когато искаш всички променливи по дадена стая да се запазят след НАПУСКАНЕТО й. Демек ако в room0 си сложил обект player с координати 10, 10 и го преместиш на друго място (например 25,30), след това отидеш в room1 и се върнеш обратно в room0, то този обект (и всички други) няма да се е върнал на 10,10, а ще си стои на 25, 30. На кратко както си го оставил си остава така.

Колкото до "лага", за който говориш - според мен няма да го има понеже тук говорим само за заделяне по-голямо количество оперативна памет, а не работа на процесора.

По твоя въпрос много ясно, че room0 няма да ти е pesistent, защото ти сам я правиш да е false при напускане на стаята.
По друг начин казано:
Отиваш в room1 - persistent = true;
При напускане на room1 правиш persistent = false;
Е току що ти сам го направи false. Говоря за този код:
Цитат
Когато излезе от room1 и влезе в room2 използвам кода:
room1:
if(obj_hero.x<16){
room_set_persistent(room1,0)
//destroy hero
}


Обяснението се получи доста велико и разбираемо. Дано си разбрал.


--------------------
"Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!.
Go to the top of the page
 
+Quote Post
psycho666
коментар 23:46:51, 28-January-2012, Saturday
Коментар #3


Новодошъл
*

Група: Потребител
Коментари: 22
Регистриран: 29.12.11
Град: Враца
Потребител № 1702



Аз точно това искам. Докато съм в room1 и отида в инвентара, като се върна героя да е пак на същото място. За това при стартиране на room1 я правя persistent. След като отида в room2, room1 вече не ми е необходима да е persistent, за това давам 0, но сетвам room2 да е персистънт. така ако съм в room2 и вляза в инвентара, скиловете или евентуално в куест руума като се върна в руум2 героя ще е там, дето го зарязвам последно. Проблема е, че като вляза в инвентара и се върна в руум2 героя го няма, т.е. стаята не е сетната като персистънт. Ако сложа отметката в settings на room-а всичко е наред. Но не искам всички стаи да са винаги персистънт. В момента имам само 3 територии и скилове, инвентар и менюта. Куестовете допълнително ще натоварят нещата, а в крайната игра плана е за 17 територии с над 100 противника, над 200 итема, а даже не съм почнал куестовете. Те ще гълтат още ресурси.

Но просто кода не работи а не знам защо. Стаята просто не се сетва като персистънт когато трябва.


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
TALANTO
коментар 23:55:09, 28-January-2012, Saturday
Коментар #4


BEST ENTRY award - зад.1/2008
Икона на група

Група: VIP
Коментари: 597
Регистриран: 19.04.07
Град: Kюстендил
Потребител № 539



Мисля, че сега те разбирам.

Искаш да кажеш, че инвентара ти е отделна стая, така ли?
И при room1 няма проблем, но с room2 има.

Вероятно става грешка с името на стаята. Пробвай следния код:

Цитат
room2:
instance_create(784,400,obj_hero)
room_set_persistent(room,1)
global.location=2


Това room трябва да върне индекса на текущата стая. Ако стане така ще измислим нещо базирано на този принцип.


--------------------
"Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!.
Go to the top of the page
 
+Quote Post
psycho666
коментар 00:00:22, 29-January-2012, Sunday
Коментар #5


Новодошъл
*

Група: Потребител
Коментари: 22
Регистриран: 29.12.11
Град: Враца
Потребител № 1702



Цитат(TALANTO @ 23:55:09, 28-January-2012, Saturday) *
Това room трябва да върне индекса на текущата стая. Ако стане така ще измислим нещо базирано на този принцип.

искаш да кажеш, че ако ползвам room_set_persistent(room,1) това автоматично ще сетне стаята, в която съм като персистънт?

Цитат(TALANTO @ 23:55:09, 28-January-2012, Saturday) *
Искаш да кажеш, че инвентара ти е отделна стая, така ли?
И при room1 няма проблем, но с room2 има.


Да, инвентара ми е отделна стая... И не... нито една стая не е както трябва... Нито room2, нито room1...

PS: не... пак не става... Ако предварително сложа в сетинга че е персистънт - да. ако не сложа отметката - не се сетва като персистънт...


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
TALANTO
коментар 00:10:35, 29-January-2012, Sunday
Коментар #6


BEST ENTRY award - зад.1/2008
Икона на група

Група: VIP
Коментари: 597
Регистриран: 19.04.07
Град: Kюстендил
Потребител № 539



За да не превръщаме форума в чат ти правя пример, изчакай малко.

Цитат(psycho666 @ 00:00:22, 29-January-2012, Sunday) *
искаш да кажеш, че ако ползвам room_set_persistent(room,1) това автоматично ще сетне стаята, в която съм като персистънт?

ДА.


Edit:
Интересното е, че и при мен не става. Може би persistent трябва да се сетне преди стаята да е заредена. Демек не може да се използва в текущата стая.
Ако го направя с глобални променливи ще ти върши ли работа?

И още един въпрос - от какъв зор инвентара ти е в друга стая?


--------------------
"Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!.
Go to the top of the page
 
+Quote Post
psycho666
коментар 00:24:14, 29-January-2012, Sunday
Коментар #7


Новодошъл
*

Група: Потребител
Коментари: 22
Регистриран: 29.12.11
Град: Враца
Потребител № 1702



Как ще стане с глобални променливи? в смисъл не ми идва наум как да ползвам глобалните променливи...
инвентара ми е в друга стая, защото така ми дойде когато започнах играта. А и честно казано не измислих начин как да го вкарам в същата стая... Може би трябваше да създам огромен обект с малки слотове + екипирането + инфо панелче, но реших да го събера в друга стая редом със статистиките - атака, стамина и т.н. Погледни я ако искаш играта, има я във форума...
Ще пробвам да сетна стаята преди да съм влязъл в нея и ще дам резултата...

PS: така, работи това както трябва. Благодаря много smile.gif


--------------------
Monstrocity (beta) Поиграйте, коментирайте, 80% от функционалността е готова. Останалото ще се появи на по-късне етап. Съобщавайте за бъгове за да ги отстранявам. :)
Go to the top of the page
 
+Quote Post
TALANTO
коментар 00:42:48, 29-January-2012, Sunday
Коментар #8


BEST ENTRY award - зад.1/2008
Икона на група

Група: VIP
Коментари: 597
Регистриран: 19.04.07
Град: Kюстендил
Потребител № 539



Направих примера с глобалните променливи. Доста глупости се насъбраха. В криейта на object0 съм написал какво да изтриеш, ако искаш обекта да не започва от начало при нова стая.

Прикачен файл  primerBla.gm6 ( 11.02k ) Брой сваляния: 10


едит:
Виждам, че си се оправил, но все пак виж и другия вариант.


--------------------
"Последно: 18:05:07, 21.09.12" След две години мълчание пак проговори...
ИГРИ И ПРИМЕРИ НА САЙТА МИ!.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 потребител(и) четат тази тема (1 гости и 0 скрити)
0 Потребител(и):

 



Олекотена версия Час: 04:39:15, 19.05.24