dsh 3 824 Опубликовано 3 Марта 2015 (изменено) Подскажите пожалуйста, есть A:position() и B:position(). Мне нужно получить направление из A в B. Я правильно понимаю, что в результате vector():sub( B:position(), A:position() ) я как раз получаю нужный direction? @Карлан, я пытаюсь использовать level.perform_ray_pick_query() и не могу понять, что именно не работает. Слишком много неизвестных. Вот и уточняю. Изменено 21 Июля 2015 пользователем Dennis_Chikin dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 29 Марта 2015 Подскажите, пожалуйста, про actor_stats.add_points(string, string, number, number). Не могу найти описание параметров. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 29 Марта 2015 (изменено) @UnLoaded, не, не понятно. Если вторая цифра - на сколько увеличить ранг, то что означает первая цифра? А если последняя цифра - это на сколько увеличить ранг, то в чем отличие от db.actor:set_character_rank(db.actor:character_rank()+value)? Изменено 29 Марта 2015 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 30 Марта 2015 @UnLoaded, я так же поигрался со "stalkerkills", там то же знатная бредятина выходит. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 30 Марта 2015 (изменено) @Карлан, я тестирую add_points() на движке из OGSE 0.6.9.3. Возможно, там что-то изменили на эту тему, но работает оно явно не так, как в приведенном коде. Вот такой вызов: actor_stats.add_points( "stalkerkills", "bandit_expirenced", 1, 1 ) не всегда приводит к увеличению счетчиков. Так, пора определиться с терминами. В ПДА, раздел статистика разделен на две части. В левой - общая статистика. В правой - список сталкеров с рангами и соотв. им счетчики. Притом, на каждого приходится два счетчика. Превый отображается, как xN, а второй - просто число. Так вот, при выполнении вышеуказанной функции, напомню, что я это делаю на движке из OGSE 0.6.9.3, число xN всегда увеличивается на 1, сколько бы раз я не выполнил это. А вот со вторым числом все хуже. Покажу лучше по другому. В начале имеем Бандит, опытный x0 0 Вызываю функцию, как указано. В ПДА вижу Бандит, опытный x1 1 Вызываю еще раз. В ПДА вижу Бандит, опытный x2 1 В дальнейшем, последнее число увеличиваться не будет. А изменится оно только в том случае, если я выполню add_points() с последним аргументом отличным от того, что показывается в ПДА, в последней колонке. И величина в ПДА изменится на разницу, а не просто прибавится. Вот такие вот чудеса. Изменено 30 Марта 2015 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Апреля 2015 Направьте, пожалуйста, в нужном направлении. Хочу понять, по каким условиям непись выставляет в торговлю оружие, которое у него текущее. Да и не только текущее. Чем вообще определяется, будет-ли первый встреченный сталкер продавать что-то, что у него есть, или не будет? Спасибо. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Апреля 2015 @UnLoaded, @Карлан, не-не, я наверное не точно выразился. Меня интересует не то, что сталкер в принципе будет продавать или не будет. Меня интересует именно то оружие, которое у него в руках/за спиной. Вот открываю я торговлю со сталкером и вижу, что он спокойно продает свой единственный калаш. Вот как мне это изменить? Нужно, что бы сталкеры ни в каком случае не выставляли в продажу свое единсвенное оружие. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Апреля 2015 @Dennis_Chikin, @Карлан, вот смотрю я в rx_wmgr.script соляночный. Там вижу манипулирование какими-то запрятанными инвентарными ящиками и постоянный трансфер оружия между ящиком и неписем. И это все только для того, что бы у сталкеров спрятать оружие, что бы они свое единственное не продали? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Апреля 2015 @Dennis_Chikin, может кто-то задался тем-же вопросом, что и я, и сделал такое. Что бы неразумные неписи не продали хитрому Меченному единственный калаш. У меня, собственно говоря, этот вопрос возник потому, что я перенес в ОП-2 rx_wmgr из OGSE 0.6.9.3, в котором убрано все это манипулирование ящиками, и обнаружил вот такое вот поведение. Вот теперь думаю, что с этим делать. Объявить фичей или багом. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 15 Апреля 2015 (изменено) Может кто-нибудь мне подскажет. Вот бежит у нас отряд Макса, на Армейских складах, штурмовать группу Черепа на хуторе. А на пути бац и аномалия. И обойти они ее почему-то не могут, хотя скрипт обхода аномалий есть. Он рестрикторы для них расставляет, а они мечутся вперед-назад и все. Кто-нибудь может рассказать, почему так происходит? Изменено 15 Апреля 2015 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 16 Апреля 2015 А что на радиусы смотреть. Даже если обход аномалий заставит кого-то из группы Макса аномалию обойти, он сразу же бежит назад, в исходную точку. Что-то мне начинает казаться, что единственный вариант - это прописывать их путь в исключения, чтобы там не генерировались аномалии. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Мая 2015 , если ты из OGSE взял анимации, то нужно из всех моделей костюмов удалить анимацию экзоскелета. Кажется exo_animation.omf. Под рукой компьютера нет, поэтому в названии могу ошибаться. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 13 Июня 2015 @Struck, о, кстати, зачем в вышеприведенном коде используется квадрат расстояния, вместо просто расстояния? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Июля 2015 Поиском не нашел, т.ч. спрошу здесь. Как можно отловить клик мышью на карте в ПДА? Если это вообще возможно. Спасибо. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 9 Июля 2015 Подскажите пожалуйста, знающие люди, как правильно организовывать прокручиваемый текст, который в свою область не помещается? Вот сейчас у меня есть: <descr_scroll x="247" y="10" width="355" height="150" always_show_scroll="0"/> <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.descr_scroll = xml:InitScrollView( "main_dialog:descr_scroll", self.dialog ) self.item_descr = xml:InitStatic( "main_dialog:descr_text", self.descr_scroll ) Далее просто делается self.item_descr:SetText( game.translate_string( text ) ) Текст скроллируется, с этим все нормально. Но не нравится мне, что у descr_text пришлось сделать фиксированную высоту в 250 и поэтому, что особенно хорошо видно с коротким текстом, скроллируется пустое место. Как бы это правильно сделать, что бы если текст помещается в descr_text, то скроллинга бы не было, а если не помещается, то уже был скроллинг? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 10 Июля 2015 Поправлю. Этот метод называется AdjustHeightToText(). Эксперименты показывают, что он работает, как надо. Только мне не помогает. Складывается такое впечатление, что ScrollView, после инициализации, игнорирует изменение размеров своего содержимого. А если у него выполнять Clear(), с последующим AddWindow() нового статика с текстом, то все работает, но через пару секунд, после такой манипуляции, игра вылетает. Такое впечатление, что вылетает при очистке мусора. Такое предположение у меня из-за наличия паузы перед вылетом. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Июля 2015 , спасибо большое - работает! У меня вылетало из-за того, что я не делал DetachFromParent() статику. Если просто делать AdjustHeightToText(), без очистки скоролла и добавления туда нового статика - не реагирует. Естественно, я вызывал AdjustHeightToText() после SetText(). dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 19 Июля 2015 То-ли я не могу найти, то-ли что. Подскажите пожалуйста, есть GUI элемент для ввода многострочного текста? EditBox - однострочный. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 27 Июля 2015 Кто использует респаунеры из Солянки, которые при спауне мутантов делают вот так: local t = amk.read_monster_params( obj ) if ( not t.custom ) or string.len( t.custom ) == 0 then local cfg_name = utils.cfg_get_string( sini, "respawn", "creature_binded_logic", false, false, false, "" ) t.custom = "[logic]\ncfg = scripts\\amk\\" .. cfg_name .. ".ltx" amk.write_monster_params( t, obj ) end Имейте ввиду, если в файле, подключаемом через вышеуказанный "cfg", есть [smart_terrains] none = true , то оно никем читаться не будет и ваш мутант тут-же уйдет в подходящий, свободный гулаг. Вообще, соляночный код меня поражает. Кто-то, вероятно, сделал подключение логики таким образом. А кто-то другой начал писать файлы логики со smart_terrains, даже не удосужившись проверить, а работает-ли оно. И все это годами используется и всем пофиг. А я удивляюсь, да что за фигня, куда делись тушканы на остановке АТП, которые там раз в сутки должны респаунится. А они ушли на АТП, в гулаг тушканов. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 2 Августа 2015 А я вот всю дорогу думал, что он вообще ни в какой гулаг не пойдет. Может я не прав ? При наличии [smart_terrains] none = true не пойдет. Ты правильно думал. Но! При условии, что эту секцию кто-нибудь прочитает и соотв. действия выполнит. Например, в приведенном мной примере [logic] cfg = tra\la\la\mylogic.ltx наличие [smart_terrains] в файле mylogic.ltx ни на что не влияет. Секцию [logic] читает xr_logic.script, а ему смарт террейны до лампочки. Но в приведенном мной примере проблема даже не в этом, а в том, что сразу после alife():create() мутанта и до записи ему custom data, которая идет в следующих строках, мутант попадает в свободный гулаг. Как я это обошел, можно посмотреть тут: https://github.com/dsh2dsh/op2ogse/commit/4a8691d89e89b1aaa5323258566ac70b3e9c0ab1 См. в самом низу изменения в se_monster.script и se_respawn.script. Грязный хак, но лучше решения я придумать не смог. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение