abramcumner 1 146 Опубликовано 12 Августа 2013 @Dennis_Chikin, по-прежнему ничего не ясно. Что ты хочешь изменить/исправить? Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 26 Мая 2014 Похоже, или только первый раз срабатывают. Или - по времени. Но явно - не получится нормально отслеживать и использовать.Выдается только в первый раз потому, что в последующие разы она уже есть у ГГ. Можно при получении инфопорции дизейблить ее, тогда она будет выдаваться и во второй раз, и в третий. Или в декларацию инфопорций прописать дизейбл остальных. 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 27 Мая 2014 news_manager.send_tip(db.actor, "%c[255,255,255,128]Невозможно отремонтировать оружие. Ремкомплект в плохом состоянии!", nil, nil, 3000) а вот этот кошмарПо правильному строку "%c[255,255,255,128]Невозможно отремонтировать оружие. Ремкомплект в плохом состоянии!" надо вынести в text/rus/*.xml и грузить в скрипте через game.translate_string() Или можешь просто сменить кодировку в файле скрипте с utf-8 на вин1251 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 19 Июня 2014 Почему вылет ?Потому что у тебя не net_dummy? Ну и используешь setCallback соооовсем не по назначению. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 19 Июня 2014 @AndreySol, для начала найди как вернуть именно net_cse_absract. В примере Artos`а указано m_netpk.net_cse_abstract(sobj), почему так не делаешь? local pk = m_netpk.get(obj_add) -- запрос нет-пакетаВозвращает обычные нет-пакеты типа net_se_stalker или net_cse_alife_item Чтобы setcallback нормально работал, у тебя в нужном классе se_*.script должен быть прописан его вызов. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 19 Июня 2014 но этого похоже мало - self.cb_netpk видимо нужно объявить где-то в районе se_outfit:__init() и инициализировать ? Как это сделать правильно ?Это как раз и делает net_cse_abstract:setCallback То есть логика следующая должна быть, ставишь setCallback, ждешь пока движок вызовет STATE_Write, а там уже твоя функция сработает и запишет, что надо. Ну и движок можно подтолкнуть - потасовать онлайн/оффлайн. Может быть у Artos`а все это уже есть в setCallback... А тебе кстати нужна именно cse_abstract часть? А то если нет, то все это и не нужно. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 30 Июня 2014 Спавн в инвентарь онлайнового объекта в движке обрабатывается отдельным "ускоренным" образом. Итем выводится сразу же в онлайн. Поэтому запись нет-пакетов и не срабатывает. По идее после строчки alife():create уже можно запросить клиентский объект. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 27 Августа 2014 Мог. Проверить-то легко: добавь вывод в лог в начало net_spawn и после db.add_actor Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 12 Декабря 2014 @BlooderDen, так почему ты не хочешь/не можешь сделать так: db.actor.power = my_script_power_restore_speed * delta Пусть движок сам обсчитывает свое движковое, тебе только остается учесть твою добавку. 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 12 Декабря 2014 Собственно Desertir все расписал. В "формуле" нет ничего сложного - 3-й класс: путь равен скорость помноженное на время. my_script_power_restore_speed - это просто переменная, которую можно менять в зависимости от каких-либо условий, а delta аргумент binder:update. вот прямо следующей строкой и дописываем банально: db.actor.power = db.actor.power + 0.1 это будет полное восстановление выносливости за 10 секунд. 2 abramcumner: разве дельта, а не абсолютное значение ? С дельтой можно без уродца, а простой и понятной формулой. 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 13 Декабря 2014 Не acr, а arc. Это сам себе мод - контейнеры для артефактов, дневники контролеров и еще какие-то стимуляторы.Вообще-то там не было дельты, там было сделано самым корявым способом из всех. Просто прибавлялась некоторая константа на каждом апдейте. Естественно, что у всех рано или поздно значение убегало в ту или иную сторону. "И это единственно верный вариант для моделирования более мене реального поведения системы." - случайны интервалы от 20 до 70 ms, да еще их все учитывать и хранить ? Когда надо одно действие раз в n секунд ?Ничего хранить не надо. Просто одно умножение и одно присваивание. Прямой аналог - равномерное прямолинейное движение - чтобы посчитать путь надо просто умножить скорость на прошедшее время. Ландавшиц смотрит на этот пост с удивлением.Так и есть - он непонимает, зачем его приплели Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 19 Января 2015 Попробуй посмотреть, как сделано управление кострами в последнем OGSE - там совершенно точно они прямо перед ГГ разжигались.Там костры онлайн/оффлайн не переключаются специально, только включается/выключается аномалия. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 9 Апреля 2015 self:AttachChild( w ) Кнопку мы после каждого нажатия перерисовываем, но как бы вроде разве недостаточно w = CUIButton(), чтобы старая удалилась ? Это надо еще какое-то волшебное слово сказать ? Сслыка на кнопку в родительском окне не дает ей удалиться. Возможно поможет DetachChild. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 9 Апреля 2015 Правда зачем тебе сохранять условные константы мне не ясно.Возможно за тем, что у игрока "quit" и "use" могут быть забиндены на другие кнопки? Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 9 Апреля 2015 (изменено) @abramcumner, ну их тогда и указывать, или я чего не понял? В любом случае они же должны в каком-то массиве хранится.У каждого игрока они могут быть свои и надо восстановить именно их, а не абстрактные. А так в движке хранятся, еще в user.ltx Можно разобрать user.ltx и запомнить оттуда настройки. Вроде папка к нему в fsgame.ltx прописана - по идее можно грузить через ini_file Можно еще проверить, что возвращает get_console():execute("bind quit") Изменено 9 Апреля 2015 пользователем abramcumner Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 9 Апреля 2015 плюс назначит на "quit" пустое значение(уже проверял).Насколько я помню, если в консоли набрать "bind quit", то вернется забинденная клавиша. Так ведь структура не ltx-кая, навряд-ли прочтет что-то.Читать по строке и искать bind quit. Да и все равно, даже если все срастется - нормально будет работать тока на правленом движке, где восстановлена выдача инфо-порций окна диалогов по нормальному.Почему, unbind можно еще делать в коллбеке на юзе нпц, а обратный бинд в функции на выходе из диалога. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 28 Апреля 2015 @Zander_driver, нет, нельзя. Инклудов нет даже в движке, они убираются прямо при загрузке конфигов. Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 24 Мая 2015 , так на какой строчке биндер вешается? Может у тебя в биндере дальше переменная s используется? 1 Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 24 Мая 2015 Причем именно на апдейте надо это делать. При единичном вызове все нормально работает почему-то.Проверь перед зависанием вызывался Add или Get. И что будет, если вариант 2 переписать в виде: local s = get_hud():AddCustomStatic("static", true) s:wnd():SetText("text") Поделиться этим сообщением Ссылка на сообщение
abramcumner 1 146 Опубликовано 28 Мая 2015 P.S. Таймеры - не нужны ! ™ На самом деле тот же actor:give_game_news() задержку сам умеет, без всяких таймеров. Так что здесь осталось только по тому, что переносилось когда-то незадумываясь над смыслом переносимого.А give_game_news() с задержкой переживает сейв/лоад? А то так смс "доходить" не будут Поделиться этим сообщением Ссылка на сообщение