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

[SoC] Ковыряемся в файлах


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

:lol3: Интересно, как это он будет искать их в коде с помощью level.get_target_obj()?

Нажмёт Ctrl+F, введёт информацию, и найдёт... даже странно, что спросили  :shok:

Скажите пожалуйста, где найти параметры точности(попаданий) при стрельбе НПС по ГГ.


hit_probability_gd_novice        = 0.20
hit_probability_gd_stalker        = 0.30
hit_probability_gd_veteran        = 0.40
hit_probability_gd_master        = 0.50

 

 

Эти параметры отвечают за вероятность попадания НПС по ГГ в зависимости от сложности, на которой он играет, т.е. на новичке вероятность попадания равна 20%. Хотя и это не совсем точно, потому что в файле m_stalker.ltx есть параметры "точности" НПС:

;---FIRE DISPERSIONS--------------------------------------------------


disp_walk_stand = 3 ;8 ;6
disp_walk_crouch = 2 ;4 ;3
disp_run_stand = 5 ;14 ;12;8
disp_run_crouch = 4 ;6 ;4
disp_stand_stand = 3 ;4
disp_stand_crouch = 2 ; 2
disp_stand_stand_zoom = 1 ;1.5 ;1
disp_stand_crouch_zoom = 1 ;1.25;1

 

Это дисперсия, или, очень грубо говоря, "неточность", т.е. чем меньше, тем точнее. Как эти параметры учитываются в совокупности с hit_probability_gd_*, я не знаю. Но изменение тех и других даёт заметный результат.

  • Нравится 1

Ага вот где, значит почти каждой группировке или монстру можно подкрутить значение на точность и у каждого будет своё, ништяк тогда, тут только расшифровать эти дисперсии и всё, а у меня ещё вопрос всегда мучал, можно ли новой своей группировке создать файл "ltx" типо такого m_stalker.ltx(например я назову m_boty.ltx и зарегаю его в инклудах)?



Блин на 100% уверен что все играли в СГМ МОД для ТЧ, хочу вытянуть оттуда рацию которая выводит на худ сообщения о смерти сталкеров, в конфигах нашёл как называется "event_radio" только вот скриптов много сколько не проверяю не где нету, может кто знает где она эта рация?

Здравствуйте, может в этой теме мне помогут. Извиняюсь что дублирую сообщения в двух темах т.к. там мне помочь не могут. Я не могу удалить заспавненный скриптом телепорт.

Вот моя функция спавна телепорта.

 

function spawn_tele_kastet1()
local se_obj = alife():create("m_teleport_esc_kastet1",vector():set(-4.934,0.633,267.286),272133,183)
local t = amk.get_anomaly_data(se_obj)
t.sid = 97128
amk.set_anomaly_data(t, se_obj)
end

 

 

 

 

 

А вот функция удаления телепорта. Она взята из arhara_dialog.skript

function delete_teleport_kastet(story_id)
local se_obj = alife():story_object(97128)
if se_obj then
alife():release(se_obj)
news_manager.send_tip(db.actor, "Телепорт отключен", nil, nil, 30000)
end
end

function checking_taken_item77(obj)
if obj:section()=="quest_case_kastet" then delete_teleport_kastet
   end
end 

 

 

 

 

Вот еще данные телепорта из zone_teleport.ltx

 

[m_teleport_esc_kastet1]:zone_teleport_arhara
teleport = standart
script_binding = bind_mteleport.bind
;Параметры нашего телепорта
radius = 4
;Высота захвата телепорта
z_radius = 4

;Куда телепортируемся (телепортация всегда идет в пределах карты)
poz_x = -23.588268280029
poz_y = 1.5940486192703
poz_z = 272.24127197266

; Угол зрения при появлении. Если параметра нет то не меняется
rotate = -0.5 

 

 

 

 

В файле game_story_ids.ltx ID ему прописал. Это - 97128.

 

Сколько не пробовал, телепорт не удаляется при взятии предмета, да и просто в диалог эту функцию вставлял, итог один и тот же.

Пожалуйста помогите мне удалить этот долбанный телепорт.

Изменено пользователем Снайпер56

Как исправить такой вот, вылет скрипта rx_wmgr.script?

 

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : 
[error]Arguments : LUA error: ...р s.t.a.l.k.e.r\shoc\gamedata\scripts\rx_wmgr.script:549: C stack overflow

 

 

 

Вроде жалуется на переполнение стека. Есть какие-либо правки для Ai пака от Rulix aka Bak?

 

З.Ы. Artos, приветствую! Это именно то что было нужно.

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

Снайпер56

Стори айди ограничен в игре максимальным значением в 65535. Больше не ставь, там и так большой запас, тебе хватит.

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

VovanDolg, поставил 59000, не помогает.

Изменено пользователем Снайпер56

Stalker_AleX333, ( привет! :-) )

К твоему сожалению, могу сказать, что rx_wmgr.script достаточно сырой (ИМХО) и в свое время, взяв его за основу, мне пришлось значительно его переработать.

Может кто-то еще вставлял в него костыли, но имея нормальный вариант я уже не интересовался... То, что этот модуль не так часто встречается в сторонних модах, которые пытаются вставлять AI-паки говорит о том, что простенько его подправить не удастся.

Поэтому могу посоветовать или самому глубоко погрузиться в его разборку и правку или найти мод, который включает этот или аналогичный модуль и стабильно работает. Брать из SIMBION'а не советую, т.к. там значительно переработан и переувязан со всей связкой доп. AI-схем (т.е. или пакетом или ничего).

 

Снайпер56, странно создавать объект по одной секцией ("m_teleport_esc_kastet1"), а потом пытаться проверять и удалять по другой (obj:section()=="quest_case_kastet"). Хотя вероятно ты не все пояснил.

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

Если тобою действительно создан телепорт и он присутствует в игре, то функцией delete_teleport_kastet (без каких-либо аргументов "с потолка") удалить его из игры непосредственно из диалога иль иного подходящего места.

 

Подсказка: из скриптов функция вызывается так: delete_teleport_kastet() и используй Lua-чекеры, дабы свои простейшие ошибки выявлять и исправлять самостоятельно, а не ждать по неделям помощи со стороны.

 

 

story_id - имеет формат s32 и может быть < 4294967295 (но не стОит злоупотреблять)

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

Artos, будь другом, подскажи пожалуйста какой функцией это сделать. А то я сам додуматься не могу. Заранее спасибо.

И еще, я использовал функцию удаления Архары вот она:

function delete_teleport_baza_vxod(story_id)
local se_obj = alife():story_object(17000)
if se_obj then
alife():release(se_obj)
news_manager.send_tip(db.actor, "Телепорт на входе в базу отключен", nil, nil, 30000)
end
end

function checking_taken_item45(obj)
    if obj:section()=="kluch_dell_teleport" then delete_teleport_baza_vxod(obj)
 end
end 

 

 

 

Изменено пользователем Снайпер56

Снайпер56, если есть чем думать и это "чем" не пустое - додуматься любой и всегда может. ;-)

Вот тебе 

function checking_taken_item45(obj) --/ имя функции сам меняй/додумывай
  if obj and obj:section() == "kluch_dell_teleport" then --/< тут вставляй свою секцию
    local se_obj = alife():story_object(97128) --/< твой story_id!
    if se_obj then
      news_manager.send_tip(db.actor, "Телепорт на входе в базу отключается", nil, nil, 30000)
      alife():release(se_obj)
    end
  else
    news_manager.send_tip(db.actor, "Нет у актора нужного предмета!", nil, nil, 8000)
  end
end

 

и далее сам додумывай, предварительно все же почитав мануалы по Lua

Еще одна подсказка: Если вызываешь это из диалога - то предмет(аргумент) в этом случае всегда отсутствует!

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

Здравствуйте, подскажите пожалуйста  как заспавнить БТР\ВЕРТОЛЕТ со своими путями и логикой.

 

Залезь в АМК мод и посмотри. Можешь ещё в оригинале глянуть, на ЧАЭС ездил БТР. Вертолёты также есть в оригинале.

ColR_iT

Изменено пользователем ColR_iT
http://www.amk-team.ru/forum/index.php?showtopic=7977 Вот отдельно вертушки,для науки в самый раз.Использован один из способов спавна в bind_stalker.script,пути перемещения в config/scripts Изменено пользователем Боягуз

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

Задача логики такова, НПС сидит у костра с анимками, которые постоянно меняются, при случае когда НПС видит ГГ, у него срабатывает диалог с зарезервированной строчки "meet" 

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

Подскажите пожалуйста как бы можно доработать логику? 

[smart_terrains]
none = true

[dont_spawn_loot]

[logic]
active = remark@base
combat_ignore = combat_ignore

[remark@base]
anim = sit
combat_ignore_cond = always
target = actor
meet = meet
on_timer = 1000| remark@base

[meet]
meet_state = 10|guard@wait
meet_state_wpn = 10|backoff@threat_weap
victim = 10|actor
victim_wpn = 10|actor
use = true
use_wpn = false
syndata = backoff@threat_weap

[combat_ignore]
combat_ignore_cond = always

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

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

Привет всем. У меня такой вопрос: какой скрипт отвечает за юзание предмета? Искал в поиске, но не нашёл.

Заранее спасибо.

 

Тебе в каком плане: конкретно событие юза или вообще?

ColR_iT

 

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

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

Здравствуйте, словил АХТУНГ, Можете подсказать как его исправить или вылечить?

[16-9] get_xml_name for[maingame_pda_msg.xml] returns [maingame_pda_msg.xml]
! Cannot find saved game ~~~ watchdog 93.reason play pre length
* Log file has been saved successfully! 

 

 

 

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

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

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

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

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

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

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

Войти

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

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

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