сильный вопрос :sarcastic:
http://stalkerin.gameru.net/wiki/index.php/%D0%A0%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%86%D0%B5%D0%B2
В папке misc -S.T.A.L.K.E.R\gamedata\config\misc есть папки торговцев-shop_ххххх,где ххх-имя торговца ,возьмём например бармена его папка shop_barman открываем её и видим три документа с разрешением ltx эти документы открываем блокнотом первый- barman_buy-здесь прописаны цены на покупку торговцем у вас ,второй-barman_supl-здесь прописаны предметы которые у торговца есть в наличии,после названия предмета напр. amk_metka-стоят две цифры,первая-количество предметов,вторая-вероятность появления,если вторая будет 1 то вероятность появления 100%,ну и третий-barman_trade-здесь прописаны цены с какими торговец будет продавать товар вам,если стоят 1 то цена будет 100% от номинала.Что-бы предмет который вам нужен появился в продаже у торговца его нужно прописать в два документа barman_trade и barman_supl
Прописывание в продажу квестовых предметов
Квестовые предметы (которые даются при выполнении некоторых квестов и их нет в "свободной продаже" у торговцев) имеют особенность - "по умолчанию" их нельзя продавать в игре и обычным способом их нельзя прописать в продажу.
Это ограничение обходится, для этого предмет сначала нужно сделать "обычным", который можно покупать продавать, а лишь потом прописывать в продажу.
Описание практически всех квестовых предметов находятся в файлах ***.ltx, в названиях которых есть items, основные из них: items.ltx , quest_items.ltx , unique_items.ltx , arhara_items.ltx
Пример - прописывание в продажу телевизор, его название - televizor. Описание телевизора находится в файле quest_items.ltx, вот с него и начнем - находится он в папке - gamedata - config - misc файл quest_items.ltx
Затем открываем файл quest_items.ltx и ищем строки
[televizor]:identity_immunities
...... (много всего разного) .....
quest_item = true
и меняем quest_item = true на quest_item = false
закрываем этот файл и соглашаемся с изменениями.
При поиске описания друго предмета - ищем аналогичную строчку
[название_предмета]:identity_immunities
Теперь прописываем телевизор в торговлю, как описано выше.
Закрываем, сохраняем, запускаем игру, идем к торговцу и в продаже у него должен быть телевизор, покупаем ,
и идем отдавать телевизор по квесту.
И еще замечание - чтоб сработали некоторые квесты, предметы необходимо подбирать на локах, где эти квесты спавнятся по сюжету игры. Если получили предмет и квест не сработал - попробуйти выложить его из рюкзака и подобрать на нужной локации.
Struck
Думается мyе что ты поторопился? дав совет vhodnoylogin ... и уж фраза "ребёнку ясно же" тем более неуместна.
2-ой вариант условием "not st.mon_callbacks" может отсечь нечто полезное.
И вообще пара вопросов на засыпку:
1. "Чем отличается 'счлить', объединить и интегрировать коды?"
2. "Чем отличается объединение кодов 'обычных' скриптов и AI-схем поведения?"
Artos
1 слить -- совместить, объединить -- два кода объеденить в один, интегрировать -- смотря что и куда :-)
2 Опять же смотря что ты подразумеваешь под объединением "обычных" скриптов, сам код или всего лишь вызовы, AI-схемы объединяются(а точнее аи паки) вызовами в скриптах
добавлено спустя 2 минут
Artos в том случае лучше функции совместить
local st = get_storage(npc:id(),"events") -- "зелёное" здесь что такое?
отредактировал(а) Struck: 31-05-2010 22:33 GMT3 час. Снова в строю.
Struck
"events" - в данном случае аргумент, с которым вызывается функция. В данном случае это метка/имя для внесения в сторадж (хранилище) неписи признака 'взятости' под управление данными схемами. Условно - аналог 'st.mon_callbacks' для второго случая.
Сливанием именно и занимались вы сегодня. И хотя это жаргонное выражение, но по сути - соединение нескольких скриптов руководстdуясь только одним принципом:"Ничего не потерять и не сделать фатальных ошибок."
"Объединение" - понятие/название, которым уже принято неопытными модмейкерами называть слияние/соединение скриптов. Хотя это определение общее и для слияния/соединения и для интеграции.
Интеграция - применительно к данному случаю, объединение как кодов/функций/переменных/материалов, так и функционала/алгоритмов. Причем порой происходит усечение какого-либо функционала/алгоритма или же его наращивание.
Пояснить все это не просто (сам поинимал, когда задавал вопрос). Попробую все же ...
Основные недостатки, допускаемые неопытными модмейкерами
при так называемом "сливании/объединении" различных кодов для получения "солянки"/"адаптации под конкретный мод":
1. При совпадении названий секций объекта, которые имеют различия, и оставляется одна какая-то секция.
В случае предмета - предмет теряет какие-то свойства, изменяет параметры. В лучшем случае на игре это может не сказаться, в худшем - коллизии/фатальные ошибки, причем если предмет достатояно редок, ошибки могут возникать редко и эпизодически.
2. При совпадении названий функций, которые имеют различия, и оставляется одна какая-то функция.
Могут усекаются/изменяться некоторые условия/результаты выполнения. На что это может повлиять можно догадываться, но велика вероятность что изменяется/теряется что-то заложенное разработчиком кода. В худшем случае при совпадении некоторых условий/событий могут возникать критические ошибки.
3. Параллельные операции:
Нередко объединяемые коды содержат однотипные операции, например сканирования объектов, определение названий, секций, и т.п. Многократные однотипные циклы, проверки условий, особенно в апдейтах биндеров приводят к снижению FPS и лагам.
Следует объединять однотипные операции и/или использовать уже ранее вычисленные значения, что требует уже не просто слияния, а модификации самих исходных кодов.
4. Взаимоисключающие/дублирующиеся операции:
Простейший пример: "ГГ лечит сталкера". Если У ГГ есть аптечка - он ее отдает НПС и за это получает повышение ранга/симпатии.
Если оба совмещаемых кода предусматривают аналогичное, то при 1 (одной) аптечке у ГГ, вторая функция проверки может натолкныться на отсутствие таковой (аптечка была уже передана 1-ой функцией) и при небезопасно написанном коде выдать ошибку.
При нескольких - ГГ лишается 2-х аптечек, место одной и получает двойные повышения ранга/симпатии.
Подобные коллизии могут быть самыми разными и в различных ситуациях.
Следует исключать коллизии, усекая параллельные дублирования.
5. Взаимоисключающие условия:
Простейший пример: "Одновременная работа различных AI-схем".
При работе, например, схемы выброса (НПС прячутся в укрытия) и сна (спит под кусточком) парадоксально будет выглядеть спяший НПС при грохотах/разрядах и радиации.
При некорректном совмещении, например, схем сна и собирательства (могут быть любые), активация схем может поставить НПС в ступор/заставить 'дергаться', т.к. ему придется не делать выбор, а пытаться выполнить одновременно обе схемы.
Следует в коды совмещаемых схемы вносить дополнительные условия (де)активации, для исключения коллизий.
Понятие "интеграция кодов" как раз и подразумевает НЕ бездумное "слияние", а объединение кодов с внесением дополнительных изменения исключающих различные коллизии, дублирование и пр.
Все вышеизложенное достаточно схематично и неполно. Изложен краткий концепт (суть). Невозможно дать всеобъемлющее и универсальное пояснение/рецепт, т.к. все коды/материалы различны и многогранны.
Различные побочные недостатки типа 'мусора' из неиспользуемых/отключенных материалов в данном случае не рассматриваются как существенные.
Николай ФеНиКс
А если прочитать лог и подумать? Ищи и убирай (если файл не нужен) инклуд с ссылкой на этот файл. Уже ведь фиг знает сколько моддингом занимаешься, должен же знать :-)
Николай ФеНиКс оттуда где она у тебя записана! Мы не ясновидящие что у тебя там за файлы. Похоже что у тебя в одной из моделей НПС неправильно написана ссылка на кэпчур модели. папка gamedata\models\captures\***_captures.ltx или ***.ltx
добавлено спустя 1 минуту
похоже он этот файл ищет не по адресу а в корне гэймдаты. Попробуй поискать этот файл по моему адресу, либо попробуй сходный файл засунуть в корень гэймдаты. Хотябы локализуешь проблему.
отредактировал(а) blackraven6: 01-06-2010 17:52 GMT3 час.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
Люди, здравствуйте.
Можно ли сымитировать выстрел? То есть мы стреляем из одного оружия, а стреляет на самом деле другое. Не знаю, как это осуществить. Может заспавнить невидимое оружие перед нашим стволом и дать ему выстрелить (вот тут интересный момент: может ли оружие само стрелять?) и деспавнить его обратно.
Есть ли какие-нибудь идеи по поводу имитации выстрела?
PS: Если убить непися, то во время падения его оружие будет стрелять. Как это сделано и можно ли это применить в данном случае?
Зачем доказывать кому-то, что ты настоящий мужик? Лучше потратьте это время на добрые дела!
vhodnoylogin Как бы это в фалауте сделал - знаю, а как в сталкере...
Николай ФеНиКс Я монстров не делал, только НПС, но у них ИМХО одинаково должно быть.
Справа во вкладке Object Items выделяем строку Object и переходим во вкладку Item Properties. Тянем полоску до конца и в самом низу кликаем на три маленькие точки напротив User Data . Появится окно, в которое нужно вписать такую строчку типа "models\capture\файл_настроек.ltx" (у меня это "models\capture\stalker_nebo.ltx") и жмем ОК.
добавлено спустя 25 секунд
Так должно быть у НПС.
отредактировал(а) blackraven6: 01-06-2010 18:18 GMT3 час.
Журнал
- модель M79
- модель HK SL-8
- модель Milkor m32 WIP
всё я нашёл в одной из моделей было прописано криво=)
добавлено спустя 2 минут
у меня в юзер дате было вот так прописано:
#include "human_captures.ltx"
[immunities]
immunities_sect = low_resistance
[bone_protection]
bones_protection_sect = stalker_soldier_1
когда только начинал этим заниматься просто фиг знает чё лепил...=) руки бы оторвать...
добавлено спустя 5 минут
vhodnoylogin
возможно-то оно возможно, но вопрос осуществимо ли??? зачем это тебе надо?
и как это должно работать, всё зависит от этого. где у кого когда ствол должен выстрелить?
отредактировал(а) Николай ФеНиКс: 01-06-2010 18:36 GMT3 час.
[error]Expression : no_assert
[error]Function : CALifeStoryRegistry::add
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_story_registry.cpp
[error]Line : 30
[error]Description : Specified story object is already in the Story registry!
Я всего лишь заспанил спейс рестриктор через скрипт на Свалке, а саму функцию спавна вызывал на Кордоне.Если я спавню спейс рестриктор на Кордоне, вызвав функцию, находясь на Кордоне, то все работает.А если заспавню на Свалке, вызвав функцию на Кордоне, то при переходе на Свалку вылет...Это что, нельзя спавнить рестрикторы в офлайне?Как можно избежать такого вылета?
отредактировал(а) Stalk15: 02-06-2010 16:49 GMT3 час. Новые фишки для сталкера(см. журнал)
Есть вопросец:после продажи Гаусса, найденного в Припяти Бармену, последний ничего не хочет покупать, аналогично с продажей(!).Покопавшись в файлах, сделал Бармену деньги небесконечными, сохранил изменения, загрузился, иду торговать.У Бармена денег -21731 рубль, как исправить такое?Если вообще можно поправить, ибо ходить за патронами к Сидоровичу нет никакой охоты
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.