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

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


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

alex5773, Откaтись, пeрeустaнови всe. Из скaзонного вышe, у тeбя мод для чистого стaлкa, тaк кaк сaм говорил, что бeз проблeм. --- Конфиг нe прaвится -провeрь пути. Дa и в AМК1.4.1, снaйпeр- aддон врeзaн. Eсли, портируeш мод в свою сборку -это ужe твоя aдaптaция! --- Почeму в тeмe модa вопрос нe зaдaть?

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

У меня весьма интересная проблема - когда хочешь поговорить с НПС, то при нажатии первой фразы ничего не происходит. Просто тупо щёлкаешь на фразу, а эффекта ноль. То есть диалог в данном случае невозможно начать. Сначала думал, что мышка барахлит, но проверил на другом моде - всё нормально. Если у кого была подобная проблема (в чём я сомневаюсь), подскажите. Я сам думаю что дело в неправильно сделанных(-ом) html-кодах(-е). Но обычно при этом игра вылетает, а в этом случае нет. Никакой диалог не хочет работать. Думаю, я ясно изложил суть проблемы.

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

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

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

Сэр Макс

Всё, сейчас решил. Вся проблема была в неправильно написанном мною скрипте, который был прописан в бинде под апдейт, и, видимо, не давал выполняться некоторым другим функциям игры, среди которых и оказалась функция чередования фраз в диалоге. Это мой мод. Скрипт пришлось отбросить.

 

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

P.S. Цитировать посты полностью - запрещено!

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

proger_Dencheek, этой функцией ты получаешь не обязательно оружие, а тот предмет, который держит непись в руках. Это может быть и бутылка, хлеб и т.п.

Ну а если проверил что держит именно оружие - то читай нет-пакет оружия и из него определяй что за патроны в стволе. Материалов на эту тему в инете предостаточно да и во многих модах имеются соотв. проверки (функции).

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Добрый день. Такой вопрос: с чем могут быть связаны подобные вылеты

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CResourceManager::_GetBlender

[error]File : E:\stalker\patch_1_0004\xr_3da\ResourceManager.cpp

[error]Line : 49

[error]Description : <no expression>

[error]Arguments : Shader 'effects\shadow_world' not found in library.

 

 

stack trace:

 

 

Открывал shaders.xr, файл shadow_world в папке effects там есть

К20

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

А где можно найти файл в котором прописано то что после начала игры проигрывается видео, а потом начинает говорить сидорович, как можно отключить этот его разговор?

 

На все вопросы, что ты задаёшь, уже давным давно даны ответы, при чём не раз. Поэтому для таких случаем и придумали поиск.

ColR_iT

 

Прошу прощения, я ввожу в поиск, начало сидоровича, и не находит ничего

Изменено пользователем ColR_iT
Ссылка на комментарий

Всем привет.

Вопрос:

Разъясните пожалуйста, с каким значением используются условия:

{+info -info =func !func ~number}

 

{+infoportion} - при наличии инфопоршня infoportion

{-infoportion} - при отсутствии инфопоршня infoportion ???

{=function} - не знаю. И в каком формате писать? "file.function" ?

и так далее

 

 

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

 

P.S. В поиск не удалось вбить, не допускает знаки "{" и т.д.

Изменено пользователем stalkerok007
Ссылка на комментарий

Кто-нибудь помогите разобраться с шейдером shadow_world. У меня этот вылет чуть ли не на каждом шагу. Я адаптировал real_artefact_activation_in_fps. Возможно из-за него

К20

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

stalkerok007, информация к размышлению:

'+' --/ при условии наличия инфопоршня - задается имя проверяемого инфопоршня
'-' --/ при условии отсутствия инфопоршня - задается имя проверяемого инфопоршня
'~' --/ с вероятностью % - задается число N и (упрощенно) выполняется с рандомной вероятностью math.random(N)
'=' --/ при условии возврата функцией 'истина' (true) - задается имя функции
'!' --/ при условии возврата функцией 'ложь' (false) - задается имя функции

 

Имя функции задается "штатно", т.е. задается имя функции, которая должна быть в файле xr_conditions.script.

Параметры для функции дефолтно отсутствкют, но их тоже можно передавать, но также "штатно", примеры чему смотри в оригинальных файлах игры.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

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

Блин при загрузке игры вылетает, Квест делал по уроку, все вроде-бы точно так-же сделал, перепроверил, но не получается исправить http://www.amk-team....topic=6356&st=0

Вот лог:

Expression : false

Function : CXml::Init

File : E:\stalker\patch_1_0004\xrXMLParser\xrXMLParser.cpp

Line : 87

Description : XML file:gameplay\game_tasks.xml value: errDescr:Error reading end tag.

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

 

За дублирование постов в разных темах - плюс в шкалу.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий
vasya092, разве лог ни о чем не говорит? Даже без знания английского нетрудно догодаться, что в файле game_tasks.xml ты где-то закрывающий тег ">" удалил-забыл поставить.
Ссылка на комментарий

Clayman, нет, ты неправильно говоришь. Ошибка не в game_tasks.xml, а в ***_tasks.xml, где прописан сам конфиг и структура квеста. Скорее всего, конфиг вставлен криво, где-то допущена ошибка в тэгах, и в итоге вылет. Но ссылается он именно на game_tasks, так как здесь прописаны инклуды файлов с квестами.

vasya092, видео прописано в файле config\ui\ui_movies.xml, а именно тэг intro_game. Там есть ссылка на видео и звуковое сопровождение. Если хочешь что-то изменить, "колдовать" надо именно там.

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

Ну да, я это и имел ввиду, ошибка Error reading end tag настолько распространена и является следствием спешки-невнимательности при копи-пасте и печатании ручками.

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

Artos, спасибо.

А можно то же самое, но для %+info -info =func !func ~number%

%+info% - выдача инфопоршня

%-info% - "отбирание" инфопоршня

...

 

Изменено пользователем stalkerok007
Ссылка на комментарий

Спасибо Clayman и Sany@Prizrak, там в самом уроке получилась опечатся с тегами, или просто мозила криво отобразила код.

Но тепеь появилась новая ошибка, с логом:

stack trace:

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

stalkerok007

Не думал, что "это" кто-то читает. Только хотел тебя предупредить - копи-пастом нужно осторожнее заниматься...

По делу:

Всё что заключено в фигурные скобки ("{ }") - это так называемые условия. Их может быть пять: +, -, !, =, ~.

Символы + и - применяются только к инфопорциям. Соответственно:

{-infoportion} - требуется, чтобы отсутствовал инфопоршень;

{+infoportion} - наоборот, требуется наличие инфопорции.

Символы ! и = применяются только к функциям. Поэтому:

{!function} - требуется, чтобы функция вернула истину (true);

{=function} - требуется возврата от функции лжи (false).

Функции при этом должны быть вписаны в файле xr_condition.script.

Символ ~ отдельная тема. Применяется он так:

{~number} - задаёт вероятность. Но (!) не совсем в том смысле в котором многие привыкли воспринимать слово вероятность. Я однажды писал каким образом просчитывается эта вероятность:

{~number} - вероятность перключения схемы.

В качестве number имеет смысл указывать число от 1 до 100. Вероятность высчитывается следующим образом:

number сравнивается со случайным числом в диапазоне от 0 до 100 и если number больше, то считается, что условие вернуло истину, т.е. произойдёт переход на другую схему.

Для вот такого примера:

on_info = {~50} scheme1

Вероятность перехода будет равна 50%. Но актуально это будет только в случае одной секции с условием, если их будет несколько, например:

on_info = {~30} scheme1, {~55} scheme2, scheme3

То для перехода на первую схему вероятность составит 30%, а вот для перехода на вторую схему scheme2 составит не 55%, как написано, а всего лишь 25%. Объясню почему именно так:

Как я уже сказал, указанное число number (в нашем случае, для первого условия это 30) сравнивается со случайным числом в диапазоне от 0 до 100 (для наглядности объяснения предположим, что случайное число равно 45) и если number больше, то условие проходит. Меньше тридцати могут выпасть числа от 0 до 29, т.е. 30 из 100, что составляет 30% всех чисел. Поскольку 30 < 45, то первое условие не сработало и проверяется следующее. Для следующего числа 55, чтобы условие вернуло истину, необходимо, чтобы случайное число было меньше него, т.е. от 0 до 54. НО! Поскольку, если бы выпало одно из чисел в диапазоне от 0 до 29, то выполнилось бы первое условие, поэтому в данном примере, для выполнения второго условия, необходимо, чтобы случайное число было от 30 до 54, а это 25 чисел из 100, что составляет 25%. Если бы случайное число было бы больше предполагаемого нами, к примеру не 45, а 70, то и второе условие не выполнилось и переход произошёл бы на третью схему scheme3, к слову говоря, вероятность перехода на эту схему составляет 45% (100% - 30% (из первого условия) - 25% (из второго условия)).

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

on_info = {~55} scheme1, {~30} scheme2, scheme3

Переход на схему scheme2 не произойдёт ни при каких условиях.

 

 

Всё что заключено в знаки процента ("% %") - это так называемые эффекты. Т.е. это то, что должно произойти. При этом, здесь используются только три символа: +, -, =.

Символы + и -, как и прежде используются для только инфопорций:

%+infoportion% - выдать указанную инфопорцию;

%-infoportion% - забрать указанную инфопорцию.

И символ = используется с функцией:

%=function% - выполнить функцию. Функция должна находится в файле xr_effects.script.

Всё. Никаких более символов для эффектов нет!

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

Помогите плз!


[17779]
; cse_abstract properties
section_name = stalker
name = gendalf
position = -178.303314,4.790452,-275.126373
direction = 0, 0, 0
version = 118
script_version = 6
; cse_alife_trader_abstract properties
money = 5000
character_profile = marsh_unik_npc9
; cse_alife_object properties
game_vertex_id = 3366
distance = 3.5
level_vertex_id = 51891
object_flags = 0xffffffbf
custom_data = <<END
[logic]
cfg = scripts\esc_stalker_hunter.ltx
[smart_terrains]
none = true
END
story_id = 9640
; cse_visual properties
visual_name = actors\cs\stalker_nebo_rukzak
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
health = 2
dynamic_out_restrictions =
dynamic_in_restrictions =
; cse_alife_monster_abstract properties
; cse_alife_human_abstract properties
equipment_preferences = 1, 0, 0, 2, 0
main_weapon_preferences = 2, 2, 1, 2
smart_terrain_id = 65535
; cse_ph_skeleton properties
; se_stalker properties
upd:health = 2
upd:timestamp = 0x6d6d695f
upd:creature_flags = 0x75
upd:position = -178.303314,4.790452,-275.126373
upd:o_torso = 0, 0, 0
upd:g_squad = 1
upd:g_group = 5
; cse_alife_human_stalker properties
upd:start_dialog =

 


<specific_character id="marsh_unik_npc9" team_default = "1">
<name>Гендальф</name>
<icon>ui_npc_u_stalker_neytral_balon_4</icon>
<bio>escape_trader_bio</bio>
<class>marsh_unik_npc9</class>
<community>cs</community>
<terrain_sect>stalker_terrain</terrain_sect>
<rank>367</rank>
<reputation>60</reputation>
<money min="600" max="2000" infinitive="0"/>
<snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type>
<visual>actors\cs\stalker_nebo_rukzak</visual> <supplies> [spawn] \n
wpn_ak74 = 1, launcher \n
ammo_5.45x39_fmj \n
</supplies>
#include "gameplay\character_criticals_3.xml"
#include "gameplay\character_food.xml"
<actor_dialog>gendalf</actor_dialog>
<actor_dialog>gendal_finish</actor_dialog>
</specific_character>

 


;SNIPER ADDON
;Меченый(Стрелок)
[logic]
active = remark@search
[remark@fire]
combat_ignore_cond = always
danger_ignore = danger_ignore
radius = 0
anim = ward
wounded = wounded@work
sniper = true
[smart_terrains]
none = true
[remark@search]
combat_ignore_cond = always
combat_ignore_keep_when_attacked = true
danger_ignore = danger_ignore
anim = ward
target = actor
wounded = wounded@work
[wounded@work]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

 

Так в таске вешаю метку:


<object_story_id>marsh_unik_npc9</object_story_id>
<infoportion_complete>gendalf_dialog_3</infoportion_complete>

 

 

При получении квеста спавнится переход на локу где само задание. При выполнении квеста опять спавню переход назад, но к проводнику. Метка ставится на выполненое задание на координаты перехода назад на болота к проводнику на базу ЧН. Если Гендольфа или проводника убивают вылет на дед манагер. И главное


function peredacha(actor,npc)
local inv_box_1 = level_object_by_sid(9640)
out_object = db.actor
in_object = inv_box_1
db.actor:inventory_for_each(transfer_object_items)
end
function vozvrat(actor,npc)
local inv_box_1 = level_object_by_sid(9640)
in_object = db.actor
out_object = inv_box_1
out_object:inventory_for_each(transfer_object_item)
end

Эти функции не работают!

Пытался скриптом ИД присвоить, но всегда ловил вылет по логике, перешёл на АЛЛ, пару дней мучаюсь, пока тишина. Подскажите где ошибся, СПС.

 

Используй спойлер сам. Cyclone

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

Кто нибудь знает, каким образом рассчитывается защита от повреждений у бронежилетов? Просто проценты защиты в outfit.ltx часто не совсем совпадают со значениями для этих бронежилетов в damages.ltx. Может учитывается еще износостойкость или защита головы? Не могу понять.. :mellow:

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

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...