Перейти к содержанию

QueroMas

Разработчики
  • Публикаций

    104
  • Зарегистрирован

  • Посещение

  • Победитель дней

    3

Сообщения, опубликованные QueroMas


  1. 27 минут назад, BarmaGlot сказал:

    QueroMas Можно использовать триггер-инфопоршень. Типа методов game_object:

        function has_info(string)
        function dont_has_info(string)
        function give_info_portion(string)
        function disable_info_portion(string)
    И цеплять этот уникальный string (например, "npc_got_quest_item_xxx") либо в контекст актёра, либо в контекст самого непися, исходя из логики сюжета.

    Это не совсем корректно, с моей точки зрения, больше выглядит как костыль. К тому же название модели через инфопоршень не сохранишь.
     

    14 минут назад, makdm сказал:

    Я так думаю, что метод net_spawn(sobject) обрабатывается движком первым. А затем уже идет обработка метода load(reader)

    Ставьте ваш спавн в UPDATE, проблема, думаю, исчезнет.

    Смотрите, сделал скрин вывода всех сообщений. Eсли я сделал f5/f9 в оффлайне для конкретного НПС, а потом пришел к нему - для него load не срабатывает. А если я делаю f5/f9 в онлайне для НПС, то load срабатывает (второй скрин)
     

    Спойлер

    ss_vlad_01-04-23_23-13-45_(shadows_valley).jpgss_vlad_01-04-23_23-29-51_(shadows_valley).jpg


  2. 9 часов назад, denis2000 сказал:

    Метод load для motivator_binder работает 100%. Проверяйте внимательнее - идея кода принципиально верная.

    Но, зачем это делать здесь, в скрипте, совершенно не понятно! Может раскидаете, что вам так настойчиво нужно спавнить?

    Я в спавн секцию прописываю какие-то предметы для спавна, когда мне нет необходимости создавать отдельный профиль для НПС. Плюс замена модели НПС (когда выбирается рандомно), плюс выдача рандомного оружия.
    Почему я решил что load не срабатывает - просто добавил вывод смс в методы save/load, и при вышеперечисленном алгоритме действий метод load не срабатывает.


  3. День добрый, написал код в xr_motivator для спавна предметов НПС.
     

    function motivator_binder:__init (obj) super(obj)
    	self.spawned_items = false
    end
    
    function motivator_binder:net_spawn(sobject)
    	if not self.spawned_items then
    		self.spawned_items = true
        	-- тут происходит спавн предметов
        end
    end
    
    function motivator_binder:save(packet)
      	packet:w_bool(self.spawned_items)
    end
    
    function motivator_binder:load(reader)
      	self.spawned_items = reader:r_bool()
    end

    Т.е. по логике один раз заспавнилися предметы, и дальше self.spawned_items должно быть всегда true для данного НПС.
    Но получается так: начинается новая игра, прихожу в лагерь к НПС и для них срабатывает этот код - все заспавнилось как надо. Но, дальше ухожу от них (чтоб все эти НПС перешли в офлайн), далее в офлайне для них f5-f9, снова прихожу к ним, и для них ещё раз срабатывает данный код. Выяснил, что не срабатывает метод load, и получается что self.spawned_items снова false.

    Как можно решить данную проблему?


  4. День добрый!
    Red Panda(isobolevskiy), подскажи пожалуйста - скачал СДК (последний пре-релиз XRay Engine 1.7.00-pre-15), закинул gamedata и rawdata из SDK 0.7, запускаю LevelEditor.exe из Bin\x64\Development\ - в диспетчере задач процесс висит, и внизу в трее иконка есть, но сам SDK так и не запустился. Можешь подсказать, в чем проблема может быть?