Перейти к контенту

Рекомендуемые сообщения

Помогите
Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...e.r. - Çîâ Ïðèïÿòè\gamedata\scripts\sim_board.script:226: attempt to index local 'spawn_smart' (a nil value)

Что бы быть конкретнее, я удалил всех нпс в припяти. После чего в файлах удалил что бы они не спавнились

  • Не нравится 1
Ссылка на комментарий

Всем привет. Подскажите пожалуйста как при помощи скрипта отключить кнопки использования ПДА. Суть вопроса:

Скрытый текст

Создал отдельный предмет "пда для актера" и по моему сюжету, если гг теряет свой пда кнопки вызова (карта, контакты и задания - не доступны). Только как это сделать не знаю. Потому что знание скриптов 0

 

Pir%40t%40s.gif

Ссылка на комментарий

@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
Ссылка на комментарий
В 07.11.2017 в 12:36, sv6o6o9a сказал:

attempt to index local 'spawn_smart' (a nil value)

ЗП не моя платформа, но могу предположить навскидку, что, например, вместе с НПС удалены также и смарты, из-за чего симуляционный скрипт и не может найти какой-то смарт в своей временной таблице.

Кроме того, имеет смысл проверить и почистить конфиг "configs\misc\simulation.ltx", ведь в нём вполне могли остаться строки, соответствующие удалённым объектам.

  • Согласен 1
Ссылка на комментарий

@Kirgudu достаточно как раз вычистить этот самый simulation.ltx. Еще можно пройтись поиском и убрать из кастом даты смартов респавн сквадов неписей и мобов или же просто потереть эти смарты из спавна. В любом случае, simulation.ltx чистить нужно.

Изменено пользователем BoBaH_671

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
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

Ссылка на комментарий

@sv6o6o9a рад за тебя. В ЗП никаких АМК меток нету. Так что дальше твой косяк.

  • Согласен 1

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий

Помогите, как сделать переход по локациям?
Я удалил проводников и хочу сделать чтобы был переход по локациям прям как в Сталкер ТЧ

Ссылка на комментарий

Можно ли скриптом "повесить" актора в пространстве? Чтоб он завис в воздухе.

Пробовал делать через "db.actor:set_actor_position( ... точка в пространстве ... )",

и обновлять через апдейт - в результате камеру "колбасит не по-детстки".

Можно конечно, что-нибудь спавнить под актором и фиксировать, но это не то.

Есть варианты? Именно скриптом.

Ссылка на комментарий

Кто-то тут "полетом" занимался, @TIGER_VLAD возможно. Что-то я такое припоминаю.

 

  • Согласен 1
Ссылка на комментарий
3 часа назад, Shkiper2012 сказал:

Можно ли скриптом "повесить" актора в пространстве? Чтоб он завис в воздухе.

Пробовал делать через "db.actor:set_actor_position( ... точка в пространстве ... )"

set_actor_position не точно устанавливает позицию актора. 

Если ЗП, можешь раз установить позицию(не на апдейте) и выключить гравитацию : level.physics_world():set_gravity(0). 

Если ТЧ(исходники), можешь перенести метод set_gravity из ЗП. 

А я для ТЧ xray extensions, с помощью m_netpk спавнил под актором невидимую плоскость и фиксировал. Вот : 

 

Изменено пользователем TIGER_VLAD
  • Нравится 1
  • Полезно 1
Ссылка на комментарий

Коллеги, доброго времени суток.

В этой теме уже встречался данный вопрос, но остался без ответа - каким образом зарегистрировать callback от кнопки, чтобы он таки заработал, если сама кнопка помещена в CUIScrollView? Сколько вариантов не перепробовал - все одно, не вызывается (CoP)

Ссылка на комментарий

@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
Ссылка на комментарий
8 hours ago, Charsi said:

@Faustle , в окно главного меню добавил скроллвью и в него две кнопки - всё работает.

 

Странно, но, в любом случае, большое спасибо, значит моя проблема в реализации. Буду разбираться. Движок, с которым я работаю не совсем CoP - CoC 1.4.22, но изменений в GUI классах, судя по исходникам, не было. Единственный момент, который приходит в голову - что-то не так с аттачем дочернего CUIWindow, в котором размещена кнопка.

Ссылка на комментарий

Вот что значит, по ночам писать вредно... Просмотрел закомментированную строку, хотя проверял и переписывал все несколько раз.

Все работает, вопрос снят.

  • Смешно 1
Ссылка на комментарий

Господа, выручайте. Наткнулся на самую настоящую для моих мозгов аномалию! В общем, написал я небольшой таймер

Скрытый текст
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")
    end
end

Сама функция таймера "time_update_spam()"у меня вызывается из скрипта bind_stalker - функции actor_binder:update(delta)

И все великолепно работает, таймер исправно запускает функции через отведённое время. Но вот проблема. Падает фпс! Как только загрузился - от 60 до 100 фпс. Через 5 минут реального времени всегда фпс падает до 10. Именно из-за таймера. Или функции, которую он вызывает, не знаю. Стоит только закомментить в Бинд_Сталкере строчку с вызовом функции таймера и перезагрузить игру как фпс снова возвращается на былые значения. Что это может быть?

Изменено пользователем Kirgudu
Добавлено Kirgudu,

Пункт 2.0 правил форума, устное предупреждение.

Ссылка на комментарий

@_Sk8_AsTeR_ вероятно потому, что на каждом апдейте ты делаешь новый level.add_call(). Вообще не понятно, зачем тебе все так сложно. Вызывай из апдейта сразу action_timer. Ведь там же есть проверка, наступило нужное время или нет.

Ссылка на комментарий

@_Sk8_AsTeR_ level.add_call() - по сути callback. Ее не нужно самому ставить на апдейт, это делается движком. Фактически, функция работает следующим образом - ты вызываешь level.add_call, с первым аргументом в виде функции, которая будет вызываться до тех пор, пока не вернет true, после чего произойдет вызов второго аргумента. В твоем случае, получается рекурсивный вызов функции - отсюда и тормоза системы.

  • Полезно 1
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...