Jump to content

Recommended Posts

AndreySol    100
9 часов назад, _Sk8_AsTeR_ сказал:

таким образом имитируя в зоне бурную деятельность

В радиусе 150м от ГГ.

Share this post


Link to post
Share on other sites
AndrewMor    398
3 часа назад, AndreySol сказал:

В радиусе 150м от ГГ.

Правильнее сказать, в радиусе А-лайфа, он может быть другим.


Сталкер - наше всё!

Share this post


Link to post
Share on other sites
_Sk8_AsTeR_    2

Блин, не хватает своих мозгов смекнуть, как убрать эти паузы между фразами НПС. Ребят, есть предположения куда ковырять? 

Суть: Убрать или свести паузы между фразами НПС, то есть между ИНТРО_ДЖОКЕ и самой шуткой, например, как это в той же CS реализовано. Есть идейки?

Share this post


Link to post
Share on other sites
WinCap    134
1 час назад, _Sk8_AsTeR_ сказал:

Убрать паузы между фразами НПС

Если речь о ТЧ, то копать нужно файл xr_kamp.script.

Точно не знаю, что нужно править, но...

Нужно присмотреться к таблице self.timeout в CKampManager:__init, а также к вызовам xr_sound.set_sound_play в CKampManager:updateNpc, в тех где sound == "pre_joke" и sound == "play_joke", ну  и т.п.

  • Thanks 1

Share this post


Link to post
Share on other sites

Ребята, в конфиге оружия (любого) есть некий параметр -> orientation = 3, 0, 0  : можно ли во время игры изменить параметры, которые заданы в файле *.ltx? Именно скриптом? Там может нетпакетами как-то и т.д... Вот логигу-же можно менять неписям через нетпакеты, может и значения можно? Перезаписывать данные в самом LTX - не обязательно, мне бы именно в игре изменить (хотя если можно LTX менять - то тоже пойдёт) меня конкретно интересуют именно параметры orientation = 3, 0, 0 , ну, вот например во время игры изменить 3 на 0 , возможно такое? Уже пару недель шукаю по всему интернету - не могу ничего путёвого найти ... Буду безмерно благодарен.


Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... ©

Share this post


Link to post
Share on other sites

Здрасьте.

 

Есть ли способ перебора только онлайн-объектов без перебора всех объектов на карте? Скажем, надо обнаружить противника в заданном радиусе, меньшем радиуса A-life.

Share this post


Link to post
Share on other sites
AndreySol    100
1 час назад, Norman Eisenherz сказал:

Есть ли способ перебора только онлайн-объектов без перебора всех объектов на карте?

Чем перебор объектов плох ? Если вызывать разово, по необходимости, а не вешать на апдейт в биндере актера...

 

Если очень надо именно без перебора всех объектов, то надо смотреть в сторону регистрации он-лайновых объектов в глобальную таблицу(в том же db.script к примеру). Судя по "надо обнаружить противника" разговор идет за НПСов, значит надо доделать в xr_motivator.script, в классе биндера регистрацию неписей в нет-спавн и отрегистрацию в нет-дестрой. Там кастати есть попытка такой регистрации\отрегистрации:

function motivator_binder:net_spawn(sobject)
    if not object_binder.net_spawn(self, sobject) then
        return false
    end

    db.add_obj(self.object) <- тута добавляем в таблицу

....

function motivator_binder:net_destroy()
    local st = db.storage[self.object:id()]
    if st.active_scheme then
        xr_logic.issue_event(self.object, st[st.active_scheme], "net_destroy", self.object)
    end

    db.del_obj(self.object) <-- тута убираем из таблицы

...

Тока вышеуказанные ф-ции в db.script выглядят так:

function add_obj(obj) <-- пустышка
end

function del_obj(obj)
    storage[obj:id()] = nil
end

Надо подумать, что же в таблице хранить, и доделать ф-ции.

 

Edited by AndreySol

Share this post


Link to post
Share on other sites

@AndreySol Нет-спавн, скорее всего, не годится, тк проверку требуется выполнять не в момент загрузки, а несколько раз между загрузками. Перебор только db.storage – похоже, то, что нужно. Единственная непонятка: в заголовке [db.script] сказано "база данных живых онлайновых объектов …", но без проверки obj:alive() трупы тоже считаются активными противниками и приведенная ниже проверка выдает "true". Может, в проверке что-то не учтено?

 

Spoiler

function enemy()
	for id, v in pairs(db.storage) do
		local obj = level.object_by_id(id)
		if obj then
			if obj:alive() and ( obj:relation(act) == game_object.enemy or IsMonster(obj) )
			and obj:position():distance_to( act:position() ) < 40 then
				return true
			end
		end
	end

	return false
end

 

Share this post


Link to post
Share on other sites
AndreySol    100
1 час назад, Norman Eisenherz сказал:

сказано "база данных живых онлайновых объектов …"

Ты еще не привык, что в ПЫСовском творении много чего "сказано", да не так в действительности ? Привыкай, меньше непоняток будет.

  • Sad 1

Share this post


Link to post
Share on other sites
naxac    1,399

@Norman Eisenherz, в db.storage не только живые онлайновые объекты, а вообще все объекты, имеющие логику: ящики, рестрикторы, вертолёты, двери и прочие физ. объекты. Так что надо проверять ещё и по классу (isStalker, isMonster).

Edited by naxac
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

Это сообщение проигнорировали .. 

https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&comment=1272641

Ладно, попробую задать вопрос по другому.

Пишу программу для настройки HUD оружия. Настройка будет производиться за пару минут визуально на экране без перезагрузок, вот (это не реклама стороннего ресурса):

http://the-zone.ru/threads/programma-po-nastrojke-hud-oruzhija-proshu-nemnozhko-pomoschi.467/#post-29091

 

Итак, сталкер запускается, считывает параметры orientation = 1,0,0 в память, потом что-то делает со значениями и разбивает каждое значение на два значения да ещё и изменяет на другие (возможно т.к. это координаты, то задаются в ltx  в градусах, а в памяти хранятся в радианах), т.е было = 1,0,0 а в памяти хранится: -0,02 +0,02, 0 0, 0 0

помогите найти в памяти значение те же что и в ltx, либо как узнать по какой формуле игра расчитывает координаты для оружия в руках ГГ?

Edited by Баба ЯГА

Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... ©

Share this post


Link to post
Share on other sites
Graff46    418

@Баба ЯГА, Нужно в движке выносить в скрипты смену оринтанции оружия или по смещениям памяти но это дезассемблирование...


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
Norazord    0

Как сделать бесконечный цикл?_Хочу сделать так,_чтобы постоянно через какое-то время_(допустим 10 секунд)_давался инфопоршень._Возможно ли такое сделать или нет?_Вот что то придумал,_но что то не работает._Игра не крашится но и код не рабочий._Заранее спасибо!

while true do
   function action_script()
      db.actor.give_infoportion("spawn_enemy")
   end
  function timeri()
     local tim = time_global() + 10000
	
     local function check()
        return time_global() > tim
	end
	
      level.add_call(check, action_script)
    end
  end
  


  

Edited by W.A.S.P.
пунктуация
Добавлено  W.A.S.P.,

Правила форума, п. 2.5 (правописание)

Сутки чтения.

О правописании на форуме - здесь.

Следите за пунктуацией - https://pixelplus.ru/studio/stat/pravila-postanovki-probela-ryadom-so-znakami-prepinaniya/

Share this post


Link to post
Share on other sites
Kirgudu    646
local timer, delta = 0, 10000
local function check_and_execute()
  if timer < time_global() then
    timer = time_global() + delta
    return action_func()
  end
  return false
end

function action_func()
  -- что-то делаем
  -- при необходимости прервать цикл добавляем:
  -- return true
end

-- запуск
level.add_call(check_and_execute, function() end)

 

Edited by Kirgudu

Share this post


Link to post
Share on other sites
A-P-S    0

Здравствуйте! Есть такой режим прохождения (Stalker Call of Chernobyl) "Одна жизнь", где игрок может сохранятся до момента первой смерти. Иногда игровой баг, повлёкший смерть ГГ, может уничтожить всё пройденное. Режим "Одна жизнь" или "hardcore_mode" в скрипте - хотелось бы поправить и увеличить до 3-х жизней. По идее решаемо для Скриптёра - в общем нужна ваша помощь.

Edited by A-P-S

Share this post


Link to post
Share on other sites
AndreySol    100

Такой вопросец. Вот имеем, к примеру, для некого объекта экспортированную ф-цию, допустим my_function(). Требуется такая штука: в каком то конфиге прописана эта ф-ция:

func_name    = my_function

Надо прочитать(это понятно как сделать) и затем вызвать эту ф-цию для объекта. Т.е. как то так:

local obj = npc:object("наш_объект")

if obj then

     obj:my_function()

end

Подскажите, как такое сделать, если вообще возможно.

 

  • Confused 1

Share this post


Link to post
Share on other sites
WinCap    134

@AndreySol, например так:

-- Если функция без аргументов
obj["имя_функции"](obj)

-- Если функция с аргументами a, b, c
obj["имя_функции"](obj, a, b, c)

 

  • Thanks 1
  • Like 1

Share this post


Link to post
Share on other sites
pass1ve    0

Как добавить бинокль и фонарик на мультиплеер??

56 минут назад, pass1ve сказал:

Как добавить бинокль и фонарик на мультиплеер??

Короче я даун и уже всё сам сделал, просто папку назвал не configs, а config, вот и не видел бинокль и фонарик)

Лучше подскажите как из главного меню убрать лишние пункты, например сетевая игра.

В интернете ничего не нашёл.

Share this post


Link to post
Share on other sites

Здрасьте.

 

Укорачивание строки, если она хотя бы на 2 символа больше заданной длины:

        local q_name = string.len(text)
        if q_name > 35 and q_name ~= 36 then
            text = string.sub(text, 1, 35) .. "…"
        end

 

Вариант "and q_name ~= 36" работает, а вариант "and not q_name == 36" – нет (вылета нет, но строка остается без изменений). Почему?

  • Downvote 1

Share this post


Link to post
Share on other sites
Kirgudu    646

Потому что срабатывает как "and (not q_name) == 36", а не "and not (q_name == 36)", вестимо.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...