Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Общие вопросы и ответы
denis2000Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Помощь тем кто хочет знать больше о игре и модах

Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7

Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML
[cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл:
1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R])
2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx"
3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо)
Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#"
Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut]
[cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти?
Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда.
Для того чтоб найти LOG необходимо зайти вот сюда:

В Win хр лог находится:

C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs

Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.

В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs

Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка:
...
$app_data_root$ = true | false| $fs_root$| users\
(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx)
...
$logs$ = true| false| $app_data_root$| logs\
(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи)
...
[/cut][cut=Получение более подробной информации о вылете (ХОВАН)]
Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...)
Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так:
Код
function abort(fmt, ...)
                     local reason = string.format(fmt, ...)
                     error_log(reason)
end

Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией

Первый:
Код
Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil)

Второй:
Код
Expression    : 0
Function      : ErrorLog
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp
Line          : 49
Description   : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic'

[/cut]


Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста.
Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими


[cut noguest=Первый юбилей нашей темы]

Здравствуйте господа модостроители, и все так или иначе причастные к этому.
Нашей теме исполнился 1 год.
От души поздравляю Всех Вас дорогие друзья, творческих успехов.
Хочу так же выразить отдельную благодарность denis2000 и ХОВАН.

tracker 23.06.11



[/cut]
 
Voland-777Дата: Сб, 17.06.2017, 11:59 | Сообщение # 2476
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

denis2000, спасибо. Хотел еще бы разузнать по возможности, как и где вычислять координаты HUD-элементов на экране, и где находятся координаты элемента в СГМ, которое отвечает за отображение маленького окошка с числом ранга/хэдшотов на экране после выбора функции отображения этой информации в СГМ-опциях.
 
denis2000Дата: Сб, 17.06.2017, 20:27 | Сообщение # 2477
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата Voland-777 ()
как и где вычислять координаты HUD-элементов на экране

Экран условно - поле 1024х768, х - горизонталь, у - вертикаль, ноль координат в левом верхнем углу экрана.
Цитата Voland-777 ()
и где находятся координаты элемента в СГМ, которое отвечает за отображение маленького окошка с числом ранга/хэдшотов на экране после выбора функции отображения этой информации в СГМ-опциях.

В се элементы в папке configs\ui


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Вс, 18.06.2017, 00:33 | Сообщение # 2478
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

denis2000, а если, скажем, выставить нули в координатах н-ного элемента HUD, он не будет отображаться на экране?
 
denis2000Дата: Вс, 18.06.2017, 10:36 | Сообщение # 2479
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Voland-777, Есть разные худ-элементы, некоторые независимые (их координаты выставляются относительно угла экрана), а некоторые находятся внутри другого элемента (их координаты выставляются относительно родительского контейнера). Но и в том и в другом случае элемент с координатами 0,0 будет виден на экране! Координаты нужно ставить такие чтобы элемент гарантированно был за пределами экрана (0,0:1024,768).

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Вс, 18.06.2017, 12:08 | Сообщение # 2480
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

denis2000, а как быть с конфигами для широкоформатных экранов? На какое разрешение там ориентироваться?
 
denis2000Дата: Вс, 18.06.2017, 20:03 | Сообщение # 2481
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата Voland-777 ()
На какое разрешение там ориентироваться?

Разрешение экрана значения не имеет.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Voland-777Дата: Ср, 21.06.2017, 11:40 | Сообщение # 2482
Эмиссар
Пользователи
Сообщений: 1702
Награды: 9
Репутация: [ 474 ]

denis2000, и еще один вопрос, если можно. Можно ли заставить охрану бункера и сталкеров Тополя/Митяя (в случае гибели первых) атаковать мутантов и зомби, а так же сталкеров, если враг совсем близко к базе?

Сообщение отредактировал Voland-777 - Ср, 21.06.2017, 15:25
 
sergej5500Дата: Пн, 26.06.2017, 21:33 | Сообщение # 2483
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Добрый вечер.

Возможно ли прописать биноклю свойства ночного или контрастного прицела? И как это сделать?
 
denis2000Дата: Пн, 26.06.2017, 23:04 | Сообщение # 2484
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

sergej5500, Напрямую - точно нет, попробуйте через предустановленные апгрейды.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
PrykollДата: Вт, 27.06.2017, 23:05 | Сообщение # 2485
Аномальный Бродяга
Вольные сталкеры
Сообщений: 699
Награды: 9
Репутация: [ 111 ]

Доброго времени суток, господа-бродяги.
Вопрос у меня поимелся заковыристый. Установил мод я забавный, где НПС ходят свободно, подбирают арты и оружие,
мародёрствуют, торгуют и воюют активно. НО!!! В случае гибели НПС в инвентаре его трупа отображается ТОЛЬКО то, что он имел изначально, до подбора/грабежа. Т.Е. - Я продал новичку с обрезом и ПМ несколько стволов (к примеру 1 АК-74, 1 Винторез и 3 вальтер), пару комбезов( куртку бандита и броньку сталкерскую) и два хвоста псевдопсов, он артефакт прямо из-под рук у меня выхватил(злыдень алчный), да ещё и бандитов, мною упокоенных, обобрал безжалостно. И тут, внезапно, он опочил от солдатской пули. Радостно подрываюсь к свежему тельцу, дабы хабар урвать успеть... И что же я вижу в его инвентаре? Только Обрез, ПМ, патроны к ним, и бинтик....
А вот как бы мне прописать все подобранные/купленные им предметы в его почившую тушку? И, желательно весьма, броньку(в которой он, на тот момент одет был )
И это и есть суть вопроса. wink
Игра - Сталкер Тень Чернобыля
Версия 1.0004.
Благодарствую заранее.

Добавлено (27.06.2017, 23:05)
---------------------------------------------
Я осознаю, что причина - в скриптах, там "зачищается" всё "лишнее" из инвентаря НПС, но как "найти и обезвредить" данный скрипт - нет информации. И, ещё, я имел ввиду ВСЕХ НПС, а не конкретного персонажа, примерно, как это реализовано в СГМ COP 2.2 . Третий день, копаюсь в интернете, перелопатил кучу сайтов, но...
Жду и надеюсь nyam


А я-то что? Я мимо шел...



Сообщение отредактировал Prykoll - Вт, 27.06.2017, 21:19
 
denis2000Дата: Ср, 28.06.2017, 10:56 | Сообщение # 2486
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Prykoll,
Скрипт: death_manager.script
Функция: function keep_item(npc, item)
Закоментировать: alife():release(alife():object(item:id()), true)


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
PrykollДата: Ср, 28.06.2017, 14:19 | Сообщение # 2487
Аномальный Бродяга
Вольные сталкеры
Сообщений: 699
Награды: 9
Репутация: [ 111 ]

denis2000, я наипокорнейше извиняюсь, но я нигде не мододел, а посему НАИТУПЕЙШИЙ вопрос: что тут коментить?
Вот эта секция:
[cut noguest]
function keep_item(npc, item)
local section = item:section()

if section == "bolt"
then
return false
end

if section == "device_torch"
-- or section == "device_pda"
or section == "hand_radio"
or section == "guitar_a"
or section == "harmonica_a"
then
alife():release(alife():object(item:id()), true)
return false
end

if always_keep_item[section] == true then
return true
end

local item_id = item:id()
local item_in_slot = npc:item_in_slot(1)
if item_in_slot ~= nil and
item_in_slot:id() == item_id
then
if xiani_config.dm_keep_ammo ~= true then
item:unload_magazine()
end
--' Тут надо уменьшить кондишн оружия
item:set_condition((math.random(15)+75)*item:condition()/100)
return true
end
item_in_slot = npc:item_in_slot(2)
if item_in_slot ~= nil and
item_in_slot:id() == item_id
then
if xiani_config.dm_keep_ammo ~= true then
item:unload_magazine()
end
--' Тут надо уменьшить кондишн оружия
item:set_condition((math.random(15)+75)*item:condition()/100)
return true
end

if xiani_config.dm_keep_items == true then
return true
end
alife():release(alife():object(item:id()), true)
end
[/cut]
Вы уж простите нуба mamba


А я-то что? Я мимо шел...

 
denis2000Дата: Ср, 28.06.2017, 15:50 | Сообщение # 2488
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

[cut]function keep_item(npc, item)
local section = item:section()

if section == "bolt"
then
return false
end

if section == "device_torch"
-- or section == "device_pda"
or section == "hand_radio"
or section == "guitar_a"
or section == "harmonica_a"
then
alife():release(alife():object(item:id()), true)
return false
end

if always_keep_item[section] == true then
return true
end

local item_id = item:id()
local item_in_slot = npc:item_in_slot(1)
if item_in_slot ~= nil and
item_in_slot:id() == item_id
then
if xiani_config.dm_keep_ammo ~= true then
item:unload_magazine()
end
--' Тут надо уменьшить кондишн оружия
item:set_condition((math.random(15)+75)*item:condition()/100)
return true
end
item_in_slot = npc:item_in_slot(2)
if item_in_slot ~= nil and
item_in_slot:id() == item_id
then
if xiani_config.dm_keep_ammo ~= true then
item:unload_magazine()
end
--' Тут надо уменьшить кондишн оружия
item:set_condition((math.random(15)+75)*item:condition()/100)
return true
end

if xiani_config.dm_keep_items == true then
return true
end
--alife():release(alife():object(item:id()), true) --Закоментарено!
end [/cut]


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
PrykollДата: Ср, 28.06.2017, 15:54 | Сообщение # 2489
Аномальный Бродяга
Вольные сталкеры
Сообщений: 699
Награды: 9
Репутация: [ 111 ]

[off]
Цитата denis2000 ()
--alife():release(alife():object(item:id()), true) --Закоментарено!

Всего-то два - поставить surprised !!!
Вот я ...[/off]


А я-то что? Я мимо шел...



Сообщение отредактировал Prykoll - Ср, 28.06.2017, 15:58
 
НаблюдательДата: Ср, 28.06.2017, 23:47 | Сообщение # 2490
Ветеран
Пользователи
Сообщений: 400
Награды: 1
Репутация: [ 59 ]

Приветствую собрание Достойных! smile Умные Люди, объясните плиз недалёкому - я уже писал о понравившемся мне моде на ЗП - Бродяга 1.2.1. В котором мне нравится всё, кроме бешеных аномалий на каждом шагу. В версии Бродяги 1.1 аномалий не больше чем в оригинальной ЗП, но мало нищаков. Смотрите я беру файлы: all.spawn и все папки anomaly целиком, из всех локаций, в версии 1.1, переношу их в версию 1.2.1, начинаю новую игру, но аномалии всё равно возникают везде на каждом шагу и такой же мощности, какой они и были в версии 1.2.1 до замены папок?! Подскажите плиз, уважаемые Мастера, где ещё автор мог прописать эти новые аномалии, если не в папках spawns и аnomaly? Пытался связаться с автором мода - тишина, видимо он его забросил. Сам я больше ничего придумать не могу. Могу даже выложить папки gamedata обеих версий на Яндексе.
 
Поиск: