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

ian98

Сталкеры
  • Публикаций

    834
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные ian98


  1. Спойлер
    
    --******************************* Телепорт на первую точку пути работы смарттеррейна...*****************************
    	local se_obj = alife():object(self.object:id())
    	if se_obj ~= nil then
    		if db.spawned_vertex_by_id[se_obj.id] ~= nil then
    			self.object:set_npc_position(level.vertex_position(db.spawned_vertex_by_id[se_obj.id]))
    			db.spawned_vertex_by_id[se_obj.id] = nil
    		elseif db.offline_objects[se_obj.id] ~= nil and db.offline_objects[se_obj.id].level_vertex_id ~= nil then
    			printf("changing position for object[%s] from %s to %s : level vertex [%s] to [%s]", se_obj:name(), vec_to_str(se_obj.position), vec_to_str(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id)), tostring(se_obj.m_level_vertex_id), tostring(db.offline_objects[se_obj.id].level_vertex_id))
    			self.object:set_npc_position(level.vertex_position(db.offline_objects[se_obj.id].level_vertex_id))
    		elseif se_obj.m_smart_terrain_id ~= 65535 then
    			local smart_terrain = alife():object(se_obj.m_smart_terrain_id)
    			if smart_terrain.arriving_npc[se_obj.id] == nil then
    				local smart_task = smart_terrain.job_data[smart_terrain.npc_info[se_obj.id].job_id].alife_task
    				self.object:set_npc_position(smart_task:position())
    			end
    		end
    	end
    --******************************************************************************************************************

     

    Крим предпложительно в xr_motivator.script 161 строчка что-то со смарт таском a nil value пустота или чет типо того, чего быть там не должно. Ну, об этом лог говорит) ес че


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

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

    additional_inventory_weight		= 30
    additional_inventory_weight2	= 30

     


  2. итакисяк ичерез косяк, но своего добился. Насколько это грамотно не могу сказать, будут ли приколы не знаю, но пока все работает как надо - полностью отключенный трейд для всех, за исключением особых персонажей. Сделал я это вот так:

    Спойлер
    
    	if xr_wounded.is_wounded(self.npc) then
    		self.trade_enable = false
    	else
    		local trade_enable = xr_logic.pick_section_from_condlist(db.actor, self.npc, self.a.trade_enable)
    		--printf("npc [%s] self %s *** %s", self.npc:name(), tostring(self.trade_enable), tostring(trade_enable))
    		if self.trade_enable ~= trade_enable then
    			if trade_enable == "true1" then 
    				self.npc:enable_trade()
    			else
    				self.npc:disable_trade()
    			end
    			self.trade_enable = trade_enable
    		end
    	end
    end

     

    Теперь вписывая уже в configs\scripts trade_enable = true1 получаем нпц, с которым можно поторговать. Все остальные не умеют.


  3. Stgs гляну. Иногда поражаюсь своей несообразительности. Я даже не пытался поискать что-то с meet связанное...

    Да, в xr_meet.script прямо русским языком написано Устанавливаем дефолты. Дальше находим def.trade_enable и прописываем false. Полностью отключает трейд. Спасибо за наводку.

    Не полностью. Нужна помощь. При выполнение определенных условий трейд возвращается. Это, возможно, как-то связано с xr_logic, но я там кроме слова кондлист ничего не разобрал... 

  4. В файлах spawn_section..  под некоторыми профилями стоит custom_data = scripts/люьоеназвание.ltx. Если посмотреть эти кастом даты, то можно понять, что это логика слегка правленная под какие-то сценки. Вот. Меня конкретно интересует секция(?) [meet] и строка в ней trade_enabled = false - запрет на торговлю. Раз такая строка существует, то становится ясно, что по дефолту там стоит true. В обшем, был бы рад понять где и как вместо true поставить false, чтобы потом разрешать торговать по своему усмотрению прописывая trade_enabled = true


  5. Policai Ну как это нет такой проблемы. Заснял видео даже. ЗП, самая последняя версия в стим.

    А это видео чуть подольше, но лучше соответствует написанному выше

    Наблюдаем за мкой. Я ее подобрал в одном кондишне, отнес другому нпс и вкинув в него починил и обзавелся патронами. 


  6. Не могу найти ничего по этому поводу. Вообще. А проблема серьезная, это ж прям косяк, который никто(?) не поправил ни в одном моде за 14 лет(еще с ТЧ). Как сделать, чтобы оружие попавшее в руки нпс меняло свой кондишн всего 1 раз. Чтобы выбив ружье, например, в плохом состоянии ты не пошел с этим же ружьем к другому нпс и не починил его просто скинув нпсу в руки. Единственное, что я смог сделать это отключить охоту за оружием, т.е они за стволами теперь не ходят и не обращают на них внимания, но только если оружие не на пути или не брошено прям в руки главным героем. Можно в m_stalker вместимость их инвентарей порезать, чтобы они просто не могли взять новое оружие вообще, но это не самый удовлетворяющий меня вариант, ибо часть лута в них в таком случае может не появлятся(не вмещатся), а рассчитать сколько кг хватит всем нпс как-то сложно. Это надо под каждый профиль inv_max_weight высчитывать оглядываясь на количество лута в рюкзаке. Делать, чтобы у всех нпс было убитое оружие, блин, тоже не хочется. Ограничивать по рангу тоже не хочется. НПС должны ходить со всем оружием и не менять его состояние каждый раз, когда оно попадает к ним в инвентарь. Должны делать это 1 раз. Почему это не таааак.


  7. WildAx  У тебя должна быть распакована gamedata. Вот в ней нужны файлы character_desc_... Находятся по пути gamedata\configs\gameplay. Из себя представляют что-то вроде этого.

    		<!--  merc expirienced 2  -->
    
      <specific_character id="sim_default_killer_2_default_0" team_default = "1">
        <name>GENERATE_NAME_stalker</name>
        <icon>ui_inGame2_merc_2</icon>
        <map_icon x="1" y="0"></map_icon>
        <bio>Опытный сталкер. Детальная информация отсутствует.</bio>
    
        <class>sim_default_killer_2</class>
        <community>killer</community> <terrain_sect>stalker_terrain</terrain_sect>
        <snd_config>characters_voice\human_03\killer\</snd_config>
    
        <rank>45</rank>
    	<money min="1500" max="2500" infinitive="0"/>
        <reputation>0</reputation>
    
        <visual>actors\stalker_merc\stalker_merc_2</visual>
        <supplies>
          [spawn] \n
          exo_outfit \n <= СЮДА ВПИСЫВАЕМ БРОНИК.
          wpn_ak74 \n
          ammo_5.45x39_fmj = 1 \n
          wpn_colt1911 \n
          ammo_11.43x23_fmj  = 1 \n
          grenade_rgd5 = 2 \n
    
    #include "gameplay\character_items_nd.xml"
    #include "gameplay\character_food.xml"
    #include "gameplay\character_drugs_3.xml"
        </supplies>
    #include "gameplay\character_criticals_4.xml"
    #include "gameplay\character_dialogs.xml"
      </specific_character>

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

        <supplies>
          [spawn] \n
          exo_outfit = 1, prob=0.01 \n <= ВЕРОЯТНОСТЬ РЕСПАВНА БРОНИ У ЭТОГО НПС 1 %
          wpn_ak74 \n
          ammo_5.45x39_fmj = 1 \n
          wpn_colt1911 \n
          ammo_11.43x23_fmj  = 1 \n
          grenade_rgd5 = 2 \n
    
    #include "gameplay\character_items_nd.xml"
    #include "gameplay\character_food.xml"
    #include "gameplay\character_drugs_3.xml"
        </supplies>

     

    • Лайк 1

  8. denis2000 Это работает. Вот только не совсем так как мне представлялось. Вот я даю непесю, например, 3 пм - wpn_pm и wpn_pm_1 с wpn_pm_2(с улучшениями). НПС выбирает лучший из вариантов и держит в своих руках и роняет при смерти, а оставшиеся 2 удаляются из его инвентаря, словно их и не было. Возможно ли это?

    так, там что-то изменилось. Ща потестю. мб как их и хотелось.

    К сожалению... Но пропал казус со 100 процентным дефолтным пмом. Теперь у нпс, как я понял, все 3 пм имеются, они также пользуются лучшим из, но при смерти теряют абсолютно все, даже в руках который держали. Эх.


  9. denis2000 все равно не понимаю. В death_manager вижу функцию и стол с предметами

    function keep_item(npc, item)
    	local section = item:section()
    
    	local ini = npc:spawn_ini()
    
    	if ini and ini:section_exist("keep_items")
    			and	section ~= "guitar_a"
    			and	section ~= "harmonica_a"
    			and section ~= "wpn_binoc"
    			and section ~= "device_torch"
    			and section ~= "device_pda" then
    		return
    	end

    убираю все, оставляю например гитару, или добавляю к этому предмет, который я бы хотел не видеть в телах НПЦ.

    function keep_item(npc, item)
    	local section = item:section()
    
    	local ini = npc:spawn_ini()
    
    	if ini and ini:section_exist("keep_items")
    			and	section ~= "guitar_a"
    			and	section ~= "wpn_pm" then
    		return
    	end

    И ничего в игре не меняется. Фонари, бинокли и пда не отображаются на телах сталкеров, а пм появляется, ему тоже все равно.


  10. 61561952a1.png.728a1194c49dea4b8636e50d94596885.png

    Название: Call of Random

    Разработчик: ian98(ПРИ ПОДДЕРЖКЕ ЗАВСЕГДАТАЕВ ТЕМЫ "ВОПРОСЫ ПО МОДДИНГУ ЗП") и любой желающий. 

    Платформа: ЗП+Gunslinger

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

    Спойлер

     

    Спойлер

    Перепройди старый добрый Зов Припяти по-новому!

    Важно! Все вертится вокруг Gunslinger мода, поэтому его наличие это обязательное условие. Скачать ганслингер можно здесь:

    Итак, мод представляет из себя набор правок влияющих на рандом. Каждое перепрохождение станет куда уникальнее, чем когда-либо:

    1. Перевооружение.

    Теперь все нпс в игре вооружены практически всем огнестрелом и огнепуком, кроме недоделанного и сюжетного(например гаусс).

    2. Предметы и их редкость.

    Как в рпг по типу PoE, в игре теперь реализована система классов оружия и брони, а также шлемов: найти на просторах Зоны можно оружиебронюшапку обычного класса, редкого и уникального. Естественно, у каждого нового класса есть преимущество над предыдущим. 

    3. Шустрый. Техник. Бармен.

    Торговля с каждым встречным отключена. Теперь в рюкзаки нпс складываются все возможные в игре предметы первой и не очень необходимости: патроны, медикаменты, еда, броня, шапки, вода, водка и даже артэфакты, спокойствие, с очень маленьким шансом их обнаружения. Кроме того, существует Шустрый с огромной кучей хабара за пазухой. Он теперь занимается случайными заказами, что-то вроде коробок удачи/лутбоксов/кейсов/вот это все, свыше 500 предметов разных классов не оставят и рубля в кармане Лудойора СБУ Дегтярева. Эфабельными остались и техники с барменами в зз. Все чинители стволов, кроме вояки из Припяти, при сдаче им оружия для разборки платят деньги, а бармен как и раньше подстрахует едой и питьем, ну и медициной не обидит, поможет, не за просто так конечно... 

    4. Безумная Зона.

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

    5. Случайные артефакты.

    Теперь в любой аномалии можно найти любой артефакт, а сам артефакт как и оружие со шлемом и броней разбит на классы - обычный, редкий и легендарный. Класс артефакта влияет на его цену и свойства. Убрана линейка квестов "Артефакты на заказ".

    6. Случайные награды за достижения.

    За достижения "Сыщик" и "Охотник на мутантов" игрок получает теперь по одному случайному расходнику(еда, патроны, медицина) раз в сутки.

    7. Случайные награды за миссии.

    Теперь за каждый квест, где по дефолту предусмотрена какая-либо награда(деньги, предмет), игрок получает один случайный предмет из достаточно большого списка.

    8. Больше визуалов! (Customization pack [beta])

    Из мода перенесены визуалы с закрытым лицом для всех несюжетных персонажей. ПРОПИСАНЫ ЕЩЕ НЕ ВСЕ.

    Спойлер

    Это первая моя работа, поэтому косяков вагон.

    1. Случаются вылеты с логом :stack_trace. Случаются редко, да и вообще если воспользоваться этим, то практически не случаются.

    2. При старте новой игры первым делом бежим к Сычу, проверяем диалоги, если у него они сломаны - начинаем игру по новой.

    3. Жесткий пролаг при первом разговоре с Шустрым. Тут главное не паниковать, просто дать движку пропердется. Все будет good.

    Больше проблем не замечал. Пока.

    Спойлер

     

    1. Установить или иметь заранее установленный чистый сталкер зп.

    2. Согласно рекомендациям установщика(отдельная папка для мода, путь к которой без русских букв), поставить версию ганслингера от 31.12.20.

    3. папку gamedata из архива COR перенести в папку с установленным ганслингером. Оттуда же, из папки с гансом, всегда запускать игру и никогда-никогда не соглашаться на обнову, иначе все сломается.

     

     

    • Лайк 2
    • Аплодисменты 1
    • Смех 2
    • Спасибо 1

  11. Скажите как сделать так, чтобы нпс не подбирали оружие, которое ты в них кидаешь? А то они его чинят таким образом(  Запрет в мп ранкс не оч вариант. Правки скрипта икср газер айтемс заставляют игнорить все, что на земле, но не на пути и/или летящее прямиком в непися(в его анус или прямиком в лицо)


    Дополнено 3 минуты спустя
    13 часов назад, Сергей Шубин сказал:

     

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

    Ai addiction 2.06 в гугле находится. Конкретно в нем скрипт xr_addons заставляет непесей улучшать стволы у техников, их улучшения зависят от того принес гг инструменты меху или нет, и цеплять прицелы, глушаки и гранатометы.

    • Лайк 1

  12. aliss Gamedata/configs/weapons - каждое оружие в отдельной папке. Редактируется все, в основном, в файле base. Распаковывать распаковщиком, который найти в гугле по запросу "gunslinger распаковщик", из папки с модом он запускается и там же создает gamedata_unpacked.