function CKampManager:checkNpcAbility(npc) local obj = alife():object(npc:id()) local stalk = xrs_utils.read_stalker_params(obj) local vis = tostring(stalk.visual) local npc_id = npc:id() if not self.npc[npc_id] then return end if npc:character_community() ~= "monolith" and npc:character_community() ~= "zombied" and npc:character_community() ~= "dark_stalker" and not string.find(vis,"stalker_bandit_1") and not string.find(vis,"stalker_bandit_5") and not string.find(vis,"stalker_bandit_8") and not string.find(vis,"stalker_do_balon_80") and not string.find(vis,"stalker_do_mask") and not string.find(vis,"_resp") then -- есть колбасу if npc:object("kolbasa") then self.npc[npc_id].states["eat_kolbasa"] = true else self.npc[npc_id].states["eat_kolbasa"] = false end -- пить водку if npc:object("vodka") then self.npc[npc_id].states["eat_vodka"] = true else self.npc[npc_id].states["eat_vodka"] = false end -- пить энергетик if npc:object("energy_drink") then self.npc[npc_id].states["eat_energy"] = true else self.npc[npc_id].states["eat_energy"] = false end -- есть хлеб if npc:object("bread") then self.npc[npc_id].states["eat_bread"] = true else self.npc[npc_id].states["eat_bread"] = false end -- играть на гармошке if npc:object("harmonica_a") then self.npc[npc_id].states["play_harmonica"] = true self.npc[npc_id].states["wait_harmonica"] = true self.kamp_states["pre_harmonica"] = true self.kamp_states["harmonica"] = true self.kamp_states["post_harmonica"] = true else self.npc[npc_id].states["play_harmonica"] = false self.npc[npc_id].states["wait_harmonica"] = false self.kamp_states["pre_harmonica"] = false self.kamp_states["harmonica"] = false self.kamp_states["post_harmonica"] = false end end if npc:character_community() ~= "monolith" and npc:character_community() ~= "dark_stalker" and npc:character_community() ~= "zombied" then -- играть на гитаре if npc:object("guitar_a") then self.npc[npc_id].states["play_guitar"] = true self.npc[npc_id].states["wait_guitar"] = true self.kamp_states["pre_guitar"] = true self.kamp_states["guitar"] = true self.kamp_states["post_guitar"] = true else self.npc[npc_id].states["play_guitar"] = false self.npc[npc_id].states["wait_guitar"] = false self.kamp_states["pre_guitar"] = false self.kamp_states["guitar"] = false self.kamp_states["post_guitar"] = false end -- анекдоты if self.population > 1 then self.kamp_states["pre_joke"] = true self.kamp_states["joke"] = true self.kamp_states["post_joke"] = true else self.kamp_states["pre_joke"] = false self.kamp_states["joke"] = false self.kamp_states["post_joke"] = false end end end
- в списке визуалов добавить нужные только. У меня вроде работает всё.
Сообщение отредактировал Hicks - Суббота, 25.02.2017, 01:55
а я где-то нашел такое, отдельный скрипт, ogse_kamp_eating.script
------------------------------------------------ ----- Скрипт определения разрешения ----- есть пить и курить ----- по визуалу непися, OGSE мод, ----- автор KamikaZze ----- ибо нефиг жевать колбасу противогазом ------------------------------------------------
function can_eat(npc) if npc then local obj = alife():object(npc:id()) if not obj then return false end local stalk = xrs_utils.read_stalker_params(obj) local vis = tostring(stalk.visual)
if vis then for k, v in pairs(forbidden) do if string.find(vis,k) then return false end end end end return true end
как его правильно интегрировать в игру xr_kamp.script
function CKampManager:checkNpcAbility(npc) local npc_id = npc:id()
if npc:character_community() ~= "monolith" and npc:character_community() ~= "zombied" then
local can_eat = ogse_kamp_eating.can_eat(npc) --вот эта строка добавляется -- есть колбасу
Сообщение отредактировал YTroll - Суббота, 25.02.2017, 12:43
buka , как я понимаю - после добавления функции, желательно начать новую игру, файл xr_kamp.script достаточно чувствителен, если править его по ходу уже идущей игры, с кампами постоянно возникают проблемы, но можно так же попробовать сделать так -добавить функцию - загрузиться, постом сохраниться и загрузиться уже с этого последнего сэйва, бывает тоже помогает, но не всегда
мелкий косяк, из-за которого почти все правки из 1.68.4+ не работают: в 1.68.3 в fsgame.ltx у $game_data$ выставлен false
А у меня всегда стоит вот так $game_data$ = false| true| $fs_root$| gamedata\ Потому как оригинальный стоит fsgame.ltx в игре. И всё работает всегда. Никогда не ставлю с модов в игру fsgame.ltx. Т.к не суеверный как некоторые.
а кто знает как сделать что бы монолитовцы не рассказывали истории и анекдотов у костра? , а то какой-то треш - монолит рассказывает историю про то - как группа Вильнова вернулась(((
Сообщение отредактировал YTroll - Четверг, 02.03.2017, 23:56
YTroll, есть такой вариант, пропиши нужное в скрипт xr_kamp: -- Монолитовцы не рассказывают анекдоты и не играют на гитарах, lvg_brest else self.npc[npc_id].states["play_guitar"] = false self.npc[npc_id].states["wait_guitar"] = false self.kamp_states["pre_guitar"] = false self.kamp_states["guitar"] = false self.kamp_states["post_guitar"] = false
self.kamp_states["pre_joke"] = false self.kamp_states["joke"] = false self.kamp_states["post_joke"] = false end
UBAHbKO , спасибо за наводку, попробую, потестирую, а кстати ни кто не знает есть ли где-то уже готовые модели стандартных НПС с исправленным неестественным выгибом суставов, в РМА как минимум выгиб бедер НПС не справлен, трупы бывает лежат мостиком
buka, рекомендую посмотреть, возможно пригодиться Модель ворона для самостоятельной вставки в игру S.T.A.L.K.E.R. SoC. Информация За основу модели лег скелет вороны из ТЧ. В комплекте идут файлы бампов (для особых почитателей). Автор: ed_rez
buka, можно уточнить, задействован экзешник macron четвертой версии? И разве вертикальная синхронизация не работала при bin собранным в svn_portable 232, вроде бы максимальные fps правильно фиксировались до частоты обновления монитора как и задумано.