Перейти к содержанию

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

 
 
3 часа назад, Contentic сказал:

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

В xr_effects добавь функцию:

function relocate_actor_inventory_to_box(actor, npc, p)
	local function transfer_object_item(item)
		if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" then
			db.actor:transfer_item(item, inv_box_1)
		end
	end
	inv_box_1 = get_story_object (p[1])
	actor:inventory_for_each(transfer_object_item)
end

Здесь прописаны исключения для бинокля, ножа и фонарика, соответственно, по аналогии, можно дописывать сколько угодно предметов.
Использовать просто: %=relocate_actor_inventory_to_box(ид_ящика)%

  • Мастер! 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Guys, i need help. В логике нпс, когда пишешь on_info, возможно использовать два условия для перехода к некст секции? Или это бред? Если не бред, то как это правильно написать?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

stalker032 Ты читал руководство GSC по логике? 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

on_info = {+info1 +info2 -info3 =actor_has_item(item)} %=func1 +info4 +info5% sr_idle@start

Ну и если тебе надо два условия, которые переходят в разные секции пиши так:

on_info = {+info1} sr_idle@start
on_info2 = {+info2} sr_idle@end

А вообще, по поводу логики есть отличная статья, к которой я обычно обращаюсь: Логика Сталкера

Там всё разделено по частям, для НПС, SR и PH, ну и прочее, по типу "колбеков". Почитай на досуге.

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun о спасибо большое, ты лучший!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ладно, настало время и мне что-то спросить)

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

И второе тоже касается скриптов. На базе анимпоинта делаю спящих сталкеров (sleeper не очень удобен и не очень подходит в моём случае), через play_sound воспроизвожу звуки сна из соответствующей папки. В целом норм, но хотелось бы, чтоб они храпели не безостановочно.  Есть ли более цивилизованный способ? Может, в файлах есть или кто-то писал функцию проигрывания рандомно берущихся из папки звуков с рандомным же периодом? Смотрел, как это у раненых реализовано, но руками не трогал, ибо большую часть кода не разобрал)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
8 часов назад, Крим сказал:

У тебя ошибка. В active написано - animpoint, а в логике НПС есть только animpoint@plateau_stalker_exclusive_questnpc.

Просто пропиши в active = animpoint@plateau_stalker_exclusive_questnpc

И все заработает.

Тут советую все-таки написать какой-нибудь другой инфопоршень. Например, give_gauss_info


Дополнено 1 минуту спустя

Здесь ты кое-что перепутал. level_spot = quest_npc, trade = trader\mechanic\medic\guider\quest_npc


Дополнено 4 минуты спустя

Если видишь подобное в вылете, то это значит, что игра что-то не может открыть. В твоем случае, секцию с логикой. Но я могу и ошибаться.

Тут новая ошибка появилась. 

Спойлер

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...ker call of pripyat\gamedata\scripts\xr_logic.script:939: bad argument #1 to 'gfind' (string expected, got nil)
 

stack trace:

ХЗ чё не так. Может формат не тот где-то в скрипте.

Спойлер

[logic@plateau_stalker_exclusive_questnpc]
active = animpoint@plateau_stalker_exclusive_questnpc
suitable = {=check_npc_name(plateau_stalker_exclusive_questnpc)}true
prior = 90
level_spot = trader\mechanic\medic\guider\quest_npc
trade = quest_npc

[animpoint@plateau_stalker_exclusive_questnpc]
use_camp = false
meet = no_meet
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
invulnerable = false
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
cover_name = plateau_stalker_exclusive_debil_animpoint
on_info = {+infoportion} %=give_item(wpn_gauss)%

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, shadept сказал:

level_spot = trader\mechanic\medic\guider\quest_npc
trade = quest_npc

Попробуй это исправить. Ошибки не видишь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
39 минут назад, Крим сказал:

Попробуй это исправить. Ошибки не видишь?

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


Дополнено 3 минуты спустя
39 минут назад, Крим сказал:

Попробуй это исправить. Ошибки не видишь?

Исправил. Игра ещё крашится с такой же ошибкой. Может ещё что-то забыл, но нету с чем сверить.

UPD: Исправил всё.


Дополнено 46 минуты спустя

У меня вот другая проблема теперь - кастомный портрет для квестового перса не работает. Указал правильно координаты и всё в XML, имя тоже указал в character_desc и ui_actor_portrets одинаковое, но в игре просто синий прямоугольник.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

FATAL ERROR
 
[error]Expression    : ai().level_graph().valid_vertex_id(vertex->data().level_vertex_id())
[error]Function      : CPatrolPathManager::select_point
[error]File          : D:\prog_repository\sources\trunk\xrGame\patrol_path_manager.cpp
[error]Line          : 173
[error]Description   : patrol path[esc_arm_base_chasleep13_walk], point on path ["wp01|a=sleep"],object [esc_arm_base_patrule_40195]
 

stack trace:
В чём беда?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

stalker032 Вроде точка пути не на АИ-сетке.

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Изменено пользователем Крим

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

stack trace:

0023:0A30E8B3 xrGame.dll, CDialogHolder::CDialogHolder()
0023:0A30FB45 xrGame.dll, CDialogHolder::CDialogHolder()
0023:05DEA5B4 lua.JIT.1.1.4.dll, lua_getinfo()
0023:05DEA898 lua.JIT.1.1.4.dll, lua_getinfo()
0023:05DE20A5 lua.JIT.1.1.4.dll, lua_call()
0023:05DEAAE8 lua.JIT.1.1.4.dll, lua_yield()
0023:03979DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall()

а здесь, в чём проблем?

upd: Вылет вылечил, но это связано с логикой, если я правильно понял.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

shadept Вот, нашел

Спойлер

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, Крим сказал:

shadept Вот, нашел

  Иконки (Скрыть контент)

 

 

Оказывается я забыл положить ui_actor_portrets.xml в textures_descr.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как сделать состояние похмеля у гг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Спойлер

Destroying Direct3D...
* RM_Dump: textures  : 0
* RM_Dump: rtargets  : 0
* RM_Dump: vs        : 0
* RM_Dump: ps        : 0
* RM_Dump: dcl       : 0
* RM_Dump: states    : 0
* RM_Dump: tex_list  : 0
* RM_Dump: matrices  : 0
* RM_Dump: lst_constants: 0
* RM_Dump: v_passes  : 0
* RM_Dump: v_elements: 0
* RM_Dump: v_shaders : 0
refCount:pBaseZB 1
refCount:pBaseRT 1
DeviceREF: 1

В чём причина вылета, кто знает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Есть ли проверка на попадание в части тела нпс, к примеру в голову? было же вроде где-то

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ребят, куда вписать файл таск менеджера кастомной локации (tm_location.ltx) чтобы он в игре читался и работал? В system.ltx не нашел его.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

stalker032 это лог норм завершения игры, а не вылета.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Paradox27kms сказал:

Есть ли проверка на попадание в части тела нпс, к примеру в голову? было же вроде где-то

Проверяется только через hit нужного НПС: {=hitted_on_bone(bip01_head)} - проверка, чтобы был нанесён хит по голове.

2 часа назад, shadept сказал:

Ребят, куда вписать файл таск менеджера кастомной локации (tm_location.ltx) чтобы он в игре читался и работал? В system.ltx не нашел его.

gamedata\configs\misc\task_manager.ltx


Дополнено 9 минуты спустя
10 часов назад, Daniil1989 сказал:

Как сделать состояние похмеля у гг.

Выпей водки.

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

А есть возможность создать функцию, которая отключает и активирует определенное количество аномалий? Подскажите.

Изменено пользователем Крим

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 минуты назад, Крим сказал:

А есть возможность создать функцию, которая отключает и активирует определенное количество аномалий? Подскажите.

Юпитер, задание Аномальное растение: там не спавн аномалий, а их включение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Neptun благодарю, надо попробовать


Дополнено 57 минуты спустя

Neptun а где найти список остальных костей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Paradox27kms сказал:

где найти список остальных костей?

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


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   2 пользователя онлайн