Сохранение переменных
|
|
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 19:52 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| есть обьект А, в его создании стоит переменная global.quest1=0, при столкновении игрока с этим обьектом переменная глобал квест равняется 1. Потом перемещаемся в другую комнату, перемещаемся обратно, и эта переменная опять равно 0, а должно чтобы 1 также.Пробовал сувать эту переменную в шаг, без толку..(потому что стоит при столкновении с обьектом А вылазиет сообщение, и если отвечаешь Да, переменная квест становится = 1.Но тк в шаге, она позже опять становится 0.)
|
|
| |
Qvant | Дата: Воскресенье, 03 Апреля 2011, 19:54 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| галочка постоянный объект тебе поможет
|
|
| |
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 20:00 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| ахах спасибо)))чето даже не думал об этом..раньше думал что это только к глубине относится Добавлено (03.04.2011, 19:58) --------------------------------------------- упс..не работает Все равно создается обьект А с переменной равной 0 Добавлено (03.04.2011, 20:00) --------------------------------------------- Помогите ааа!!
|
|
| |
LunarPixel | Дата: Воскресенье, 03 Апреля 2011, 20:08 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Попробуй написать просто quest1=0, без global Сделай объект А постоянным и чтобы он только в одной комнате был.
|
|
| |
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 20:13 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| LunarPixel Не получается, при переходе обратно в 1 комнату переменная квест становится равной 0( Пробовал делать, что когда он переходит обратно в комнату 1 - quest1=1.Только проблема, вдруг игрок до перехода в комнату 2 не подходил к обьекту А.(Не брал квест).Так что надо както подругому((
Сообщение отредактировал fack3637363 - Воскресенье, 03 Апреля 2011, 20:14 |
|
| |
neksins | Дата: Воскресенье, 03 Апреля 2011, 20:13 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| fack3637363, задай обьекту код в событии Room Start примерно такого вида: if room=room0 {x=600 y=790} if room=room1 {x=600 y=790} и так далее. Сам обьект не ставь в другие комнаты кроме первой. квест будет работать и через global.
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 20:15 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| neksins А причем сдесь координаты?Я не очень понял(
|
|
| |
neksins | Дата: Воскресенье, 03 Апреля 2011, 20:17 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| fack3637363, сейчас смастерю примерчик чтобы было понятней. координаты это место где будет появляться игрок при переходе в другую комнату - а значит все данные (стадия квеста, уровень, опыт, предметы) сохраняются
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
LunarPixel | Дата: Воскресенье, 03 Апреля 2011, 20:19 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Вот короче ЛОВИ
|
|
| |
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 20:19 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| neksins А переменную квеста обьекту А (у которого берешь, и который только в одной комнате стоит) Или игроку (который создается и во 2 комнате) И координаты?
|
|
| |
neksins | Дата: Воскресенье, 03 Апреля 2011, 20:25 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| fack3637363, так, сейчас обьясню "на пальцах" обьект игрока постоянный. он появляется на 1ом уровне. берет квест и получает стадию квеста = 1. телепортируется в комнату. Внимание - если игрок не будет постоянным то стадия квеста обнулится при создании игрока (считай мы того убили а тут взяли нового). Поскольку игрок постоянный то ставить его в новую комнату нельзя. Но где же он окажется при старте комнаты? для этого нужен код if room=room0 {x=600 y=790} Смотри, что здесь указано - если комната = room0 (название комнаты) то при появлении там игрок встает на позицую 600,790 это событие указывается в обьекте игрока - добавить новое событие - другие события - старт комнаты. можно ставить неограниченное количество комнат: if room=room0 {x=600 y=790} if room=room1 {x=699 y=720} if room=room2 {x=660 y=190} и т.д. заметь, мы не делаем нового игрока - игрок остается тотже, а значит вся информация о нем сохраняется
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
ек0н | Дата: Воскресенье, 03 Апреля 2011, 20:26 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Объявляй переменную не в повторяющихся событиях а где-то в отдельном скрипте, который запускается один раз при запуске игры, или на титульном экране, например
|
|
| |
neksins | Дата: Воскресенье, 03 Апреля 2011, 20:27 | Сообщение # 13 |
постоянный участник
Сейчас нет на сайте
| добавить пример?
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 20:31 | Сообщение # 14 |
постоянный участник
Сейчас нет на сайте
| Так, сейчас попробую все это переварить в голове, но интересует еще, как сделать чтобы например обьект Б (если переменная квест = 1) появлялся только 1 раз?Но не в создании, например в одной комнате прошел квест, переменная quest1 = 1, и должен появиться оьект Б? Пробовал в шаг if quest1=1(instance_create(bla,bla,objectB), но обьектов Б создается очень много
|
|
| |
neksins | Дата: Воскресенье, 03 Апреля 2011, 20:40 | Сообщение # 15 |
постоянный участник
Сейчас нет на сайте
| fack3637363, я бы сделал так - if quest1=1 global.ololo=1 if global.ololo=1{ instance_create(bla,bla,objectB) global.ololo=2 } хотя может будет постоянно на 1 сбрасывать тогда попробуй так f quest1=1 global.ololo=1 if global.ololo=1{ instance_create(bla,bla,objectB) quest1=2 } так должно помочь... ну мб есть вариант и проще... тогда стадии квеста сдвигай на 1... сейчас залезу в свою РПГ посмотрю как там Добавлено (03.04.2011, 20:36) --------------------------------------------- ну да, вот что стоит у меня: if global.mission=2{show_message('Отличная работа! А теперь бери пушку LoloWeapon_V_1.2 и уничтожь врага!') global.mission=3 global.xp+=50 instance_create(x,y,blaster1); }
Добавлено (03.04.2011, 20:40) --------------------------------------------- fack3637363, как успехи? мне надо офф, если что отвечу позже или завтра, но думаю если ты непонял меня тебя кто-нибудь обьяснит =)
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
LunarPixel | Дата: Воскресенье, 03 Апреля 2011, 20:43 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| Quote (neksins) if room=room0 {x=600 y=790} if room=room1 {x=699 y=720} if room=room2 {x=660 y=190} Зачем это?! А если там 100 комнат будет?! fack3637363, я тебе пример кинул для этого.. посмотри...
|
|
| |
neksins | Дата: Воскресенье, 03 Апреля 2011, 20:44 | Сообщение # 17 |
постоянный участник
Сейчас нет на сайте
| LunarPixel, ну и 100 комнат норм, код не трудный, зато все ясно где появится игрок
Мой проект по типу Guitar Hero ИГРА ВЫПУЩЕНА!
|
|
| |
|
fack3637363 | Дата: Воскресенье, 03 Апреля 2011, 20:51 | Сообщение # 19 |
постоянный участник
Сейчас нет на сайте
| Спасибо ребят всем!Я разобрался!)От части у всех код взял)) Но есть другая проблемка, игрок в комнате 1 создается с координатами 10,10. Перехожу в комнату 2, потом дотрагиваюсь до обьекта Б (например двери) он переходит обратно в комнату 1 и создается с координатами 10,10. Как сделать чтобы при столкновении с обьектом Б он создавался в комнате 1 с координатами (например) 1,1?
|
|
| |
Robin_Locksley | Дата: Воскресенье, 03 Апреля 2011, 20:57 | Сообщение # 20 |
постоянный участник
Сейчас нет на сайте
| Quote (LunarPixel) Не проще хранить переменные в отдельном постоянном объекте, а героя расставить на картах. Вот тогда точно будет понятно, где он появится Проще выделить один невидимый обьект и расставить его во всех комнатах в месте где нужен респ героя. Перемещать в его координаты при старте комнаты самого героя а потом удалять. Если расставить много постоянных героев у тебя получится белиберда
|
|
| |