dsh 3 824 Опубликовано 20 Марта 2017 @HellRatz, я сейчас вот такое выполнил db.actor:give_money( -db.actor:money() ) и денег стало ровно 0. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 30 Марта 2017 @Graff46, в state_mgr_direction.script посмотри использование set_sight() 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 29 Апреля 2017 АДСКИЕ тормоза Ну, не сказать, что бы адские, но тормозит, да. кто-то пробовал с этим бороться ? Я решил просто циклические задания, коих больше всего, вынести из заданий вообще. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 3 Мая 2017 @TIGER_VLAD, ну естественно скорость зависит от фпс, т.е. от частоты выполнения апдейта. Ведь ты же на каждом апдейте меняешь позицию. Умножай дельту на кол-во секунд, прошедших с прошлого апдейта, что-ли. Текущее время в миллисекундах возвращает time_global(). На каждом апдейте его сохрани, вычти из него предыдущее значение, раздели на кол-во миллисекунд в секунде и умножь на дельту. В этом случае, дельтой будет задаваться скорость в секунду реального времени. Как-то так. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 15 Мая 2017 @hi_flyer, под ТЧ что ты понимаешь? В x-ray extensions есть этот метод. Если тебе нужно именно через нетпакет, то вот код, который я некоторое время использовал function clear_used_ai_locations( sobj ) local pk = get_netpk( sobj, 1 ) if pk and pk:isOk() then local data = pk:get() data.object_flags = bit_and( data.object_flags, bit_not( object_flags.UsedAI_Locations ) ) pk:set( data ) end end dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 22 Мая 2017 @Dennis_Chikin, если я ничего не путаю, то true из этого метода говорит движку, что бы он сохранял клиентский объект при его переходе в оффлайн. Иначе, только при сейве в онлайне. Могу напутать, т.к. давно это смотрел. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 22 Мая 2017 @Dennis_Chikin, у меня осталось в памяти впечатление, что оно делалось для того, что бы сохранять/не сохранять при переходе в оффлайн. Ну а то, как оно работает - это уже второй вопрос. Оно не только в этом вопросе работает совсем не так, как задумывалось и декларировалось. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 27 Мая 2017 @HellRatz, в смысле? Что-то типа такого? local s_box = alife():story_object( my_super_uniq_story_id ) local box = level.object_by_id( s_box.id ) db.actor:iterate_inventory( function( npc, item ) db.actor:trasfer_item( item, box ) end, db.actor ) По памяти писал. Никаких проверок, типа у нашли-ли мы этот ящик и т.п., нет, а стоит добавить. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 31 Мая 2017 @Graff46, в момент спауна ящик в онлайне был? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Июня 2017 @Dennis_Chikin, я в некоторых случаях замечал, что движок как бы запланировал вывод в онлайн какие-то объекты и будет пытаться это делать, даже если их удалить после этого и до их net_spawn-а. Вот такое у меня ощущение осталось. Подробно не разбирался. Просто принял к сведению, что возможны чудеса. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 14 Июля 2017 @vampirnik77 ну, например в нетспауне актора проверяешь флаг. Если его нет, делаешь, что нужно и ставишь этот флаг. В качестве флага может использоваться поршень, а может и что угодно другое. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 15 Июля 2017 @naxac не, если выключится, то получится тот же самый флаг, вид сбоку. А если удалится, то да, оптимизация, так сказать. @vampirnik77 ну вот ещё вариант. Выдавать из нетспауна поршень, у которого в action указана функция. Но опять же, это тот же флаг с видом сбоку, просто проверкой будет заниматься движок. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 15 Июля 2017 @Dennis_Chikin а чего их перебирать-то. Отработал свое и давай, как говорится, до свидания, типа вот такого: on_info = {+night_watch_done} nil %=dsh.release_alive_npc% А вот этим, которые эту проверку засунули в апдейт, я бы руки сразу на место переставил. А то они там еще и не такое в апдейт засунут. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 18 Августа 2017 @Wlad777 вот так как-то local pt = profile_timer() pt:start() -- подозрительный код pt:stop() log2( "работало %s ms", pt:time() ) 2 2 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Августа 2017 1 hour ago, Graff46 said: сделать скролл InitStatic'ку Я делаю scroll <descr_scroll x="247" y="10" width="355" height="150" always_show_scroll="0"/> self.descr_scroll = xml:InitScrollView( "main_dialog:descr_scroll", self.dialog ) и к нему уже аттачу статик с текстом <descr_text x="0" y="0" width="335" height="250" complex_mode="1"> <font font="letterica16" r="255" g="255" b="255"/> </descr_text> self.item_descr = self.xml:InitStatic( "main_dialog:descr_text", self.descr_scroll ) self.item_descr:SetText( self:get_item_description( ui_item.data ) ) self.item_descr:AdjustHeightToText() dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 11 Сентября 2017 @BossBoroda если нет уборщика трупов, то движок убирает, ориентируясь на эти параметры corpse_remove_game_time_interval = 12 ; in hours stay_after_death_time_interval = 12 ; in hours 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 29 Сентября 2017 @shahvkit в этих модах, рецепт - это просто инфопоршень, т.ч. в качестве награды просто выдавай соотв. инфопоршень. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 29 Сентября 2017 @BFG теперь ты слишком усложняешь. Все, что ты описал, нужно только для создания нового рецепта. А для выдачи уже существующего, достаточно выдать соотв. инфопоршень. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 13 Октября 2017 (изменено) @Graff46 это тебе в исходники надо лезть, выяснять. Я не встречал никакого описания для action(), ни вменяемого, ни невменяемого. Каждый раз приходиться из исходников эту информацию по крупицам вытаскивать. А штука эта мощная, на мой взгляд. Изменено 13 Октября 2017 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Октября 2017 Народ, кто разбирается в математике, подскажите пожалуйста. Вот есть у меня два вектора: направление на объект и направление камеры. И есть у меня угол между этими векторами. Так вот, мне нужно определить, что камера смотри на этот объект. Я могу считать, что если камера на расстоянии 2-ух метров от объекта и угол между этими векторами меньше, скажем, 0.3, то камера смотрит на объект. Но если расстояние будет уменьшаться, ведь допустимый угол должен увеличиться, т.к. объект становится больше в камере. Как мне посчитать этот угол для меньшего расстояния, если я задаю, что на расстоянии 2 метра он должен быть меньше 0.3? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение