Artos , я и раньше добавлял новое оружие и ничего не вылетало, всё работало, а сейчас первый раз такой вылет из-за нового добавленного оружия. Подскажи куда именно нада прописывать в файле mp_ranks.ltx, вроде бы везде прописал, перепроверил.
Byurrer
Оружие с надетым аддоном можно спавнить двумя вариантами:
1. При спавне НПС в его профиле в секции [spawn] ... . Примеров достаточно в оригинале (типа "wpn_ak47 = 1, scope launcher cond = 0.9 \n").
2. Спавнить wpn_ak47 с параметром 'scope_status = 1' в конфиге + сам прицел и ... Пристыковывать скриптами.
2-й вариант, навскидку сейчас не дам, т.к. это не просто. Требуется помимо запоминания Ids автомата и прицела, присваивать 'родительский' Id прицелу и устанавливать флаг 'надетого' прицела автомату.
Посмотри в готовых схемах AI для оружия, там должно быть.
Artos как я понял это все делается в в конфиге описания НПС?
добавлено спустя 3 минут
Но как сделать спавн у ГГ этого оружия с надетым прицелом через скрипт? Условия уже сделаны и работают осталось ток эту команду, не знаю как всяко пробовал ...
отредактировал(а) Byurrer: 03-07-2010 14:15 GMT3 час. project S.I.P
Byurrer
Не знаю что для тебя "конфиг описания НПС", но я имел ввиду "specific_character" НПС в соттветствующих 'character_desc_XXX.xml'.
Нет штатных команд 'надеть' прицел.
Я описал во 2-м варианте, что одной командой и даже десятком не обойтись ... sevitov_yura
Подскажи куда именно нада прописывать в файле mp_ranks.ltx, вроде бы везде прописал, перепроверил.
Так прописал или неправильно прописал? Подсказать как прописать или ЧТО неправильно прописал?
В любом случае для подсказки недостаточно информации!
Посмотри в том же Арсенал-моде как прписан в этом файле или в любом другом, в котором 'p90' имеется и сравни как у тебя. Или свой файл в студию (под спойлер) - может подскажем ошибку.
Byurrer
Не нужно переспрашивать по нескольку раз то, что уже написано:
Artos: 2-й вариант, ... Требуется помимо запоминания Ids автомата и прицела, присваивать 'родительский' Id прицелу и устанавливать флаг 'надетого' прицела автомату.
Посмотри в готовых схемах AI для оружия, там должно быть.
Наверное эти слова говорят о том, что это и возможно и уже реализовано и даже 'где реализовано' и можно посмотреть.
Сделать конечно не просто. Хотя ... 'простота' - понятие относительное. Помешь как, один раз сделаешь - далее и для тебя 'просто' будет.
Напрминаю, дабы опять не портить отношения: Хотя я могу достаточно многое сделать в выложить, но(!) делаю это достаточно редко (у меня свои критерии/заморочки) и стараюсь делать так, чтобы человек и сам подумал/потрудился/научился и смог сказать: "Это я сам сделал".
Artos отношения теперь вряд ли испортятся! Хотя я поддерживаюсь такого же мнения (почти сам всему учился и то чему научился делаю в разы чем когда меня учили ...), но если честно то вообще понять не могу ... а ты не знаешь в каком моде это уже реализовано?
Byurrer
Ближе к вечеру смогу (если еще потребуется) ответить посущественнее. Сейчас и времени маловато и отлучиться нужно.
Смотри схемы AI пакета от Bak (aka Rulix), на АМК сайте должны быть. Там как минимум подствольники 'надеваются', можно 'по аналогии' ...
Надевать прицел для неписей по сути бессмысленно (ИМХО), точнее стрелять не будут. Это только видимость добавит, что НПС в руках держит 'крутую' пушку.
Artos
(по вопросу Stalk15 )
Это моя ошибка - совершенно зря вынес определение npc из тела функции - (вчера поспешил с переделкой этой функции - а сегодня проверил - действительно не работает (у меня так вообще ни разу) - причем npc (волк) определяется внутри функции.
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Понятно ... пишем с коленки и естественно не исключены ошибки. :-)
Но, Stalk15 пишет же: "... Начал чуть-чуть понимать скрипты ..." - так что ошибка более И его, нежели ...
Я просто написал, как я понял данную строку, но вы меня поправили - теперь мне более понятней стало.Кстати, спасибо вам, я сделал, как вы сказали и локальную npc написал в теле функции - все работает.Правда чуть-чуть не так, как надо, но с этим я постараюсь разобраться.
----------------------------------------------------------------------------------------------- Artos
Ой, я в просте не правильно написал, а в самом скрипте локальная npc за телом функции.
отредактировал(а) Stalk15: 03-07-2010 16:36 GMT3 час. Новые фишки для сталкера(см. журнал)
Stalk15
Если ты "сделал, как вы сказали ..." и "локальную npc написал в теле функции ..." - то скорее всего в очередной раз совершил ошибку, наступая вновь на те же грабли, путаясь в переменных.
Локальная переменная 'прс' уже передается как входной аргумент и ее переопредление - скорее всего ошибочно!
Здравствуйте! Я тут впервые не подскажет ли кто-нибудь как в логике БТРа прописать скрипт чтоб он стрелял в монстров а не в актора.
PS Большое спасибо!
Artos
А можно ли как-нибудь обойтись без использования xr_motivator.script?Я просто скрипт дополнил, так как действие срабатывало неоднократно, при выполнении условий и наткнулся на вылет.Вот и думаю, может вылетает из-за второго бинда из xr_motivator.script...
Stalk15
Для чего ВТОРОЙ раз 'биндить'?!
Для чего ты 'биндишь'? Для того, чтобы твоя функция периодически вызывалась/обновлялась.
Делать это можно разными способами:
- а) через актор-биндер - это постоянно и относительно ГГ.
- б) через 'xr_motivator' - это относительно всех онлайн сталкеров.
... и др.
Твоя функция полностью укладывается в б), т.к. именно относительно НПС (сталкеров) ты и выполняешь проверки/действия!
Ну а то, что у тебя срабатывает неоднократно - 'гнилая' логика условий!
Сам посмотри, любая непись подошла ближе 4-х метров - флаг срабатывает. 'Отошла' - возвращается в исходное!
И ты хочешь чтобы единожды срабатывало? ;-)
Или флаг-триггер обрабатывает одну конкретную непись или делай кучу флагов, раз проверяешь всех подряд!
Или делай перебором всех неписей, тогда биндь именно из актор-биндера. Byurrer
Извини, но ... считаю этого:
Смотри схемы AI пакета от Bak (aka Rulix), на АМК сайте должны быть.
более чем достаточно для того, чтобы и сообразить и найти где ...
На память точное название и линк не помню. Потратить время на поиск - считаю тебе полезнее! Заодно и что-то еще полезное найдешь.
Колотун
Чтобы БТР не стрелял именно в ГГ в секциях конфигов его логики не должно быть строки 'target = actor'.
Прописать скрипт в конфиги логики, чтобы стрелял именно в монстров - нельзя. Это делается сторонними скриптами/схемами, которые берут под контроль БТР.
Artos я просто не так понял! Теперь займусь делом! Буду искать! Спасибо что надоумил!
добавлено спустя 25 минут
Вот вопрос:
как я понял это локальные переменные, но что они значат?
local exowpnid
local restore_slot
local suit_last_sect
local g_change
local re_sect
local wdat = {} --это есть таблица?
local upd = 0
отредактировал(а) Byurrer: 03-07-2010 18:02 GMT3 час. project S.I.P
Stalk15
1. 'Биндить' - жаргонарий от модмейкеров.
Означает: включить вызов функции в какой-либо метод в файлах типа 'bind_XXX.script' (биндерах).
Как правило это методы update()? но нередко и типа hit_callback(), death_callback(), ...
Сами 'биндеры' - НЕ биндят. ;-)
Ты бы поизучал общую структуру игры.
2. Ты НЕ проверяешь условаи "ГГ отошел ...", а всего лишь "рассточние от ГГ до НПС более чем ...?".
И, повторяю(!), т.к. у тебя в фенкции проверка идет НЕ ОДНОГО КОНКРЕТНОГО, а всех онлайн НПС, то можно самому догадаться, что почти всегда(!) будут НПС, которые дальше чем твоя дистанция проверки - а это значит, что твой флаг-триггер почти всегда будет сброшен.
Делай выводы и меняй алгоритм/логику. Byurrer
Не задавай подобные вопросы.
Локальные переменные обзываются как взбредет в голову программисту/кодеру и 'что' они означают знает только он или тот, кто в зависимости от контента кодов может понять, что же имелось ввиду.
Т.о. из твоего вопроса без контента даже про таблицу нельзя однзначно сказать, т.к. она может оказаться userdat'ой.
Трактовать же что обозначает каждая переменная - нередко непросто и требует и времени и всех необходимых материалом/кодов. Так что вначале сам разбирайся и уж если что не понял - формулируй вопрос (с достаточной для ответа информацией).
Artos понял, значит локальные переменные могут задаваться позже в самой функции а тут при их объявлении (в самом начале скрипта) они могут как таковые не указываться, так или нет? просто меня удивило что локальным переменным не присвоено значение!
Byurrer
Тебе стОит прочитать основы программирования.
Если как ты говоришь, про свой список, это в начале скрипта - то это обычное первичное объявление переменных.
При объявлении переменных НЕ обязательно присваивать им какое-либо значение.
Если значение НЕ присвоено - дефолтно переменной присваивается значение 'nil'.
Давайте не будем тут про азы выспрашивать.
Подразумевается, что спрашивающий хотя бы азы программирования (LUA) удосужился прочитать.
Artos
М-м, понятно ....Нуу...Чтож придумать...Ни что в голову не идет.:gamer1: ...
Мож кто подсказку какую-нибудь даст, как выйти из такой ситуации?;-)
Stalk15
Сформулируй что ты хочешь получить, т.е какова задача, попробуем что-то посоветовать.
Только пока забудь о том, что у тебя есть какие-то заготовки.
Твоя ошибка в том, что ты НЕ скрипты пытаешься под задачи писать/менять, а пытаешься свои задачи подстроить под чьи-то заготовки, которые и не до конца понимаешь и не умеешь пока подстраивать.
Ну, вообщем недавно ЗП прошел, а потом ТЧ влючил и как-то стремно стало - в ЗП Сталкеры хоть как-то реагируют на ГГ - здаровуются, а в ТЧ, как столбы стоят и молчат(за исключением торговцев(Сидр, Бармен)).Вот я и хочу сделать, чтоб когда подошел к НПС - он здаровается с ГГ.
#Stalk15 :
Вот я и хочу сделать, чтоб когда подошел к НПС - он здаровается с ГГ.
Это уже реализовано самими разработчиками, но потом убрано. Чтобы восстановить, достаточно изменить в файле script_sound.ltx в секции [talk_hello_rnd] строку:
stalker = 1,waiting\wait_ ;talk\neutral_greeting\greeting_
так:
stalker = 1,talk\neutral_greeting\greeting_
И большинство NPC в игре начнут здороваться с актёром, потому что большинство из них находятся по гулагом и у большинства из них в настройках meet прописано:
meet_state = 10| wait@{=actor_friend}talk_hello_friend,talk_hello
wait - анимация;
после @ идёт звуковая схема.
Да и в xr_meet.script дефолтом прописано поздороваться, отыграв звук из секции talk_hello (функция action_meet_wait:initialize())
Также можно сделать, чтоб они и на дождливую погоду ругались...
отредактировал(а) Максим Р.: 03-07-2010 21:03 GMT3 час.
Stalk15
Ну теперь немного понятнее ...
Боюсь огорчу тебя, т.к. то, что ты озвучил, врядли тебе пока по зубам.
Это нужно писать AI-схему поведения НПС. Тут простыми или даже сложными скриптами не отделаешься.
Если все же хочешь сам попробовать - посмотри уже имеющиеся схемы AI. Есть и в оригинале схемы (хотя бы 'xr_abuse.script'), вроде как и от модмейкеров типа: сон, торговля между неписями ...
Посмотри что и как и изменив условия и действия на свои - может что и получится.
Максим Р.
Вероятно под 'здороваются' Stalk15 понимает не только озвучку, а и все остальное сопутствующее, т.е. и анимацию и пр. Т.е. именно схему поведения относительно некоторой конкретной задачи.
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.