dsh 3 824 Опубликовано 7 Ноября 2017 Поделиться Опубликовано 7 Ноября 2017 @Pir@t@s вообще, можно отбиндить соотв. кнопки. Но если 1 hour ago, Pir@t@s said: знание скриптов 0 то я бы посоветовал "ох, не ходил бы ты туда, Стрелок". Вот скрипт, который делает "поломку" ПДА с помощью отбиндивания кнопок: https://github.com/dsh2dsh/op2ogse/blob/master/gamedata/scripts/dsh_broken_pda.script Правда я сомневаюсь, что это тебе поможет. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Kirgudu 1 204 Опубликовано 8 Ноября 2017 Поделиться Опубликовано 8 Ноября 2017 В 07.11.2017 в 12:36, sv6o6o9a сказал: attempt to index local 'spawn_smart' (a nil value) ЗП не моя платформа, но могу предположить навскидку, что, например, вместе с НПС удалены также и смарты, из-за чего симуляционный скрипт и не может найти какой-то смарт в своей временной таблице. Кроме того, имеет смысл проверить и почистить конфиг "configs\misc\simulation.ltx", ведь в нём вполне могли остаться строки, соответствующие удалённым объектам. 1 Инструмент Ссылка на комментарий
Overfirst 630 Опубликовано 8 Ноября 2017 Поделиться Опубликовано 8 Ноября 2017 (изменено) @Kirgudu достаточно как раз вычистить этот самый simulation.ltx. Еще можно пройтись поиском и убрать из кастом даты смартов респавн сквадов неписей и мобов или же просто потереть эти смарты из спавна. В любом случае, simulation.ltx чистить нужно. Изменено 8 Ноября 2017 пользователем BoBaH_671 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
sv6o6o9a 1 Опубликовано 8 Ноября 2017 Поделиться Опубликовано 8 Ноября 2017 2 часа назад, BoBaH_671 сказал: @Kirgudu достаточно как раз вычистить этот самый simulation.ltx. Еще можно пройтись поиском и убрать из кастом даты смартов респавн сквадов неписей и мобов или же просто потереть эти смарты из спавна. В любом случае, simulation.ltx чистить нужно. теперь такой лог Expression : fatal error Function : CInifile::r_section File : D:\prog_repository\sources\trunk\xrCore\Xr_ini.cpp Line : 475 Description : <no expression> Arguments : Can't open section 'amk_metka'. Please attach [*.ini_log] file to your bug report Ссылка на комментарий
Overfirst 630 Опубликовано 8 Ноября 2017 Поделиться Опубликовано 8 Ноября 2017 @sv6o6o9a рад за тебя. В ЗП никаких АМК меток нету. Так что дальше твой косяк. 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
sv6o6o9a 1 Опубликовано 9 Ноября 2017 Поделиться Опубликовано 9 Ноября 2017 Помогите, как сделать переход по локациям? Я удалил проводников и хочу сделать чтобы был переход по локациям прям как в Сталкер ТЧ Ссылка на комментарий
Overfirst 630 Опубликовано 9 Ноября 2017 Поделиться Опубликовано 9 Ноября 2017 Платформа какая? В ютубе есть урок по созданию перехода на ЗП. Ранее был известен под ником BoBaH_671. Ссылка на комментарий
sv6o6o9a 1 Опубликовано 9 Ноября 2017 Поделиться Опубликовано 9 Ноября 2017 1 минуту назад, BoBaH_671 сказал: Платформа какая? Зов Припяти, можешь ссылку дать на ютуб? Ссылка на комментарий
Shkiper2012 35 Опубликовано 18 Ноября 2017 Поделиться Опубликовано 18 Ноября 2017 Можно ли скриптом "повесить" актора в пространстве? Чтоб он завис в воздухе. Пробовал делать через "db.actor:set_actor_position( ... точка в пространстве ... )", и обновлять через апдейт - в результате камеру "колбасит не по-детстки". Можно конечно, что-нибудь спавнить под актором и фиксировать, но это не то. Есть варианты? Именно скриптом. Адаптация мода "AtmosFear" для мода "Боевая Подготовка" v.2.0.2. Адаптация мода "Магазинное питание" для мода "Боевая Подготовка" v.2.0.2. Ссылка на комментарий
dsh 3 824 Опубликовано 18 Ноября 2017 Поделиться Опубликовано 18 Ноября 2017 Кто-то тут "полетом" занимался, @TIGER_VLAD возможно. Что-то я такое припоминаю. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 18 Ноября 2017 Поделиться Опубликовано 18 Ноября 2017 (изменено) 3 часа назад, Shkiper2012 сказал: Можно ли скриптом "повесить" актора в пространстве? Чтоб он завис в воздухе. Пробовал делать через "db.actor:set_actor_position( ... точка в пространстве ... )" set_actor_position не точно устанавливает позицию актора. Если ЗП, можешь раз установить позицию(не на апдейте) и выключить гравитацию : level.physics_world():set_gravity(0). Если ТЧ(исходники), можешь перенести метод set_gravity из ЗП. А я для ТЧ xray extensions, с помощью m_netpk спавнил под актором невидимую плоскость и фиксировал. Вот : Скрытый текст https://www.youtube.com/watch?v=x1kV10IP1oQ Изменено 18 Ноября 2017 пользователем TIGER_VLAD 1 1 Ссылка на комментарий
Faustle 2 Опубликовано 20 Ноября 2017 Поделиться Опубликовано 20 Ноября 2017 Коллеги, доброго времени суток. В этой теме уже встречался данный вопрос, но остался без ответа - каким образом зарегистрировать callback от кнопки, чтобы он таки заработал, если сама кнопка помещена в CUIScrollView? Сколько вариантов не перепробовал - все одно, не вызывается (CoP) Ссылка на комментарий
Charsi 440 Опубликовано 20 Ноября 2017 Поделиться Опубликовано 20 Ноября 2017 @Faustle , в окно главного меню добавил скроллвью и в него две кнопки - всё работает. self.scroll = xml:InitScrollView("scroll", self) -- скролл self.btn1 = xml:Init3tButton("btn1", nil) --кнопка1 self:Register (self.btn1, "btn1") self.btn2 = xml:Init3tButton("btn2", nil) --кнопка2 self:Register (self.btn2, "btn2") self.scroll:AddWindow(self.btn1, true) -- добавляем кнопки в скролл self.scroll:AddWindow(self.btn2, true) self:AddCallback("btn1", ui_events.BUTTON_CLICKED, function() log("bnt1_down") end) -- ставим колбеки self:AddCallback("btn2", ui_events.BUTTON_CLICKED, function() log("bnt2_down") end) 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Faustle 2 Опубликовано 20 Ноября 2017 Поделиться Опубликовано 20 Ноября 2017 8 hours ago, Charsi said: @Faustle , в окно главного меню добавил скроллвью и в него две кнопки - всё работает. Странно, но, в любом случае, большое спасибо, значит моя проблема в реализации. Буду разбираться. Движок, с которым я работаю не совсем CoP - CoC 1.4.22, но изменений в GUI классах, судя по исходникам, не было. Единственный момент, который приходит в голову - что-то не так с аттачем дочернего CUIWindow, в котором размещена кнопка. Ссылка на комментарий
Faustle 2 Опубликовано 20 Ноября 2017 Поделиться Опубликовано 20 Ноября 2017 Вот что значит, по ночам писать вредно... Просмотрел закомментированную строку, хотя проверял и переписывал все несколько раз. Все работает, вопрос снят. 1 Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 22 Ноября 2017 Поделиться Опубликовано 22 Ноября 2017 (изменено) Господа, выручайте. Наткнулся на самую настоящую для моих мозгов аномалию! В общем, написал я небольшой таймер Скрытый текст local time_news = 10 local time_m = 1 local time_h = time_m * 60 local time_d = time_h * 24 local rnd = math.random function time_update_spam() local iTimer = amk.game_minutes() iTimer = amk.game_minutes() + math.random(time_h, time_d) --как только грузанулись взвелся таймер, рандом от часа до дня ИГРОВОГО -- далее функция ожидания истечения таймера-- local function check_timer() return amk.game_minutes() > iTimer end -- ставим её на апдейт level.add_call(check_timer, action_timer)end function action_timer() if time_news < amk.game_minutes() then time_news = amk.game_minutes() + rnd(time_d) -- время через которое будет вызываться сообщение news_main.do_RANDOM_NEWS() --функция, которую мне нужно вызывать с некоторым промежутком времени -- amk.send_tip( "заголовок", "таймер истёк", 1, 15, "common_channel") endend Сама функция таймера "time_update_spam()"у меня вызывается из скрипта bind_stalker - функции actor_binder:update(delta) И все великолепно работает, таймер исправно запускает функции через отведённое время. Но вот проблема. Падает фпс! Как только загрузился - от 60 до 100 фпс. Через 5 минут реального времени всегда фпс падает до 10. Именно из-за таймера. Или функции, которую он вызывает, не знаю. Стоит только закомментить в Бинд_Сталкере строчку с вызовом функции таймера и перезагрузить игру как фпс снова возвращается на былые значения. Что это может быть? Изменено 23 Ноября 2017 пользователем Kirgudu Добавлено Kirgudu, 23 Ноября 2017 Пункт 2.0 правил форума, устное предупреждение. Ссылка на комментарий
dsh 3 824 Опубликовано 23 Ноября 2017 Поделиться Опубликовано 23 Ноября 2017 @_Sk8_AsTeR_ вероятно потому, что на каждом апдейте ты делаешь новый level.add_call(). Вообще не понятно, зачем тебе все так сложно. Вызывай из апдейта сразу action_timer. Ведь там же есть проверка, наступило нужное время или нет. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Faustle 2 Опубликовано 23 Ноября 2017 Поделиться Опубликовано 23 Ноября 2017 @_Sk8_AsTeR_ level.add_call() - по сути callback. Ее не нужно самому ставить на апдейт, это делается движком. Фактически, функция работает следующим образом - ты вызываешь level.add_call, с первым аргументом в виде функции, которая будет вызываться до тех пор, пока не вернет true, после чего произойдет вызов второго аргумента. В твоем случае, получается рекурсивный вызов функции - отсюда и тормоза системы. 1 Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 23 Ноября 2017 Поделиться Опубликовано 23 Ноября 2017 @dsh @Faustle Спасибо за подсказки. Следуя вашим советам столкнулся с новой проблемой: таймер между вызовом моей функции работает. Однако первичный вызов функции происходит без задержки, моментально. А это мне не подходит. То есть как только я гурзанул сейв сразу вызывается моя функция, и только после этого заводится таймер. Как можно вызвать задержку на выполнение ф-ции? Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 23 Ноября 2017 Поделиться Опубликовано 23 Ноября 2017 (изменено) В продолжение своей проблемы Исходя из информации, полученной выше от ребят, получается мы имеем вызов моей функции action_timer() из bind_stalker из ф-ции actor_binder:update(delta). Значит моя ф-ция автоматически обновляется. Тогда вопрос, что я делаю не так? Скрытый текст local time_news = 0 local iTimer = 0 function action_timer() time_news = amk.game_minutes() + 2 if time_news < amk.game_minutes() then news_main.do_RANDOM_NEWS() end end Ведь по идее, исходя из это, мой скрипт должен работать следующим образом: объявленной переменной time_news присваивается значение - игровое время + 2 минуты. И если эта переменная меньше чем игровое время в данный момент, то выполняется другая основная моя ф-ция do_RANDOM_NEWS(). И того выходит, что после загрузки сейва через 2 минуты игрового времени должна непрерывно начать постоянно вызываться моя основная ф-ция do_RANDOM_NEWS(), но этого не происходит. Оказывается почему-то что всегда переменная time_news перманентно больше игрового времени в данный момент. Как так? Изменено 23 Ноября 2017 пользователем _Sk8_AsTeR_ Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти