Please login or register.

Login with username, password and session length
Advanced search  

News:

Forum rules - please read before posting, it can save you a lot of time.

Author Topic: TRUE STORY ADVENTURE Сложности с программированием скриптов  (Read 2202 times)

0 Members and 1 Guest are viewing this topic.

Evgeniy_S

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 3
    • View Profile

Всем доброго времени суток!  O0
Разрабатываю игру, возникли проблемы с программированием скриптов. Нерешенных проблем несколько, хочу в одну тему их запостить, чтобы не разводить кучу тем.

По порядку буду добавлять:
Вообщем, есть NPC у которого необходимо купить предмет за деньги, вот скрип ("висит" на NPC):

Code: WME Script
  1. #include "scripts\base.inc"
  2.  
  3.  
  4. var money= Game.GetItem("money"); // получаем доступ к предмету
  5.                                   //инвернатаря "деньги"
  6. var money_give=false; // проверяет дал ли герой деньги                                                                   
  7.  
  8. on "money"
  9.  
  10. {
  11.   if (money_give==false) //если мы не давали деньги то
  12.   {
  13.   if (money.Amount>=50) //если денег 50 или больше
  14.   {
  15.   Game.Interactive=false;
  16.   Game.SelectedItem = null; // убираем "из рук" деньги
  17.   this.Talk("Ладно, за 50 рублей забирай табурет");
  18.   Game.PlaySound("resources\Ideya_prishla.ogg");
  19.   Game.TakeItem("taburet"); // нам дают предмет за отданные деньги
  20.   var EntTaburet = Scene.GetNode("taburet");
  21.   EntTaburet.Active = false;
  22.   money.Amount=money.Amount-50; // отдали 50 рублей
  23.   money_give=true; // значит мы дали деньги
  24.   Game.Interactive=true;
  25.   }
  26.   else
  27.   this.Talk("Я прошу 50 рублей, ни меньше!!!");
  28.   }
  29.  
  30.   else
  31.   {this.Talk("No");}
  32.  
  33. }

Работает правильно, но проблема в том, что когда уходишь и заходишь снова в сцену всё повторяется по-новой, т.е. NPC снова берёт деньги за предмет который у меня уже в инвентаре.
Чувствую, есть какое просто решение, но вот какое  ::slug
Кто может подсказать, буду благодарен, спасибо.

Если будут ответы, то продолжу вопросики  >:D
С Уважением, Евгений.
Logged
http://www.gamedev.ru/projects/forum/?id=189458 - моя тема на геймдеве

s.belov

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 37
    • View Profile

заменить
var money_give=false
на
global money_give=false
Logged

Evgeniy_S

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 3
    • View Profile

s.belov Здравствуй!  O0
Получилось!! Только не сразу, потребовалось ещё чуток изменить код в начале:
Было:
Code: WME Script
  1. var money_give=false; // проверяет дал ли герой деньги   
Стало:
Code: WME Script
  1. global money_give;
  2.  
  3. if (money_give!=true)                         
  4.         money_give=false;// проверяет дал ли герой деньги                                          
  5. else money_give=true;
Как мне это в голову пришло, я сам не понял, видимо, я сумрачный гений  >:D

И ещё, может кому интересно, переменную money тоже переделал из var в global, но объявляю её в файле base.inc, чтобы любой NPC имел к ней доступ))
Выложил бы ещё раз конечный код, но, думаю, излишне будет, да и как в спойлер, для экономии пространства убрать, не понял что-то  ::slug
С Уважением, Евгений.
Logged
http://www.gamedev.ru/projects/forum/?id=189458 - моя тема на геймдеве

ugo

  • Вредная ворона
  • Regular poster
  • ***
  • Karma: 2
  • Offline Offline
  • Gender: Male
  • Posts: 149
  • Делаю кве?т.
    • View Profile
    • Хранители традиций УниВанга

заменить
var money_give=false
на
global money_give=false

Встречный вопрос к профи.
Получается глобальная переменная остаётся в скрипте NPC, будет ли она читаться из других локаций или надо будет каждый раз указывать путь к скрипту NPC?
Logged

Evgeniy_S

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 3
    • View Profile

ugo, Здравствуй  O0
Quote
будет ли она читаться из других локаций или надо будет каждый раз указывать путь к скрипту NPC?
Думаю каждый раз нужно будет указывать путь к скрипту, по крайней мере, у меня так  ::slug
С Уважением, Евгений.
Logged
http://www.gamedev.ru/projects/forum/?id=189458 - моя тема на геймдеве
 

Page created in 0.355 seconds with 17 queries.