Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий
Серый Волк 841 Опубликовано 29 Августа 2016 Поделиться Опубликовано 29 Августа 2016 (изменено) eye_fov eye_fov - это угол обзора, eye_range - дистанция обнаружения. Так в том то и вопрос, что дистанция обнаружения работает всегда, то есть независимо от угла обзора, даже если пробовать в полуприсяде подойти со спины к враждебному НПС, то он с этой дистанции обнаружения разворачивается и сразу атакует. Или может я что-то неправильно понимаю? Изменено 29 Августа 2016 пользователем Серый Волк Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
UnLoaded 313 Опубликовано 30 Августа 2016 Поделиться Опубликовано 30 Августа 2016 даже если пробовать в полуприсяде подойти со спины к враждебному НПС, то он с этой дистанции обнаружения разворачивается и сразу атакуетОткуда такие выводы ? В конфигах этот параметр варьируется от 60 до 150, так по твоему получается, что подойдя на 60м к неписю со спины он тебя сразу увидит и атакует ? Вот у меня, получается подобраться к неписям со спины на 15...10м. И не забывай, что кроме зрения у неписей есть еще и слух... А еще есть настройки денжеров, которыми можно вполне добиться достаточного для сюжета стелса... Ссылка на комментарий
Серый Волк 841 Опубликовано 30 Августа 2016 Поделиться Опубликовано 30 Августа 2016 А еще есть настройки денжерова вот с этого момента можно поподробней, пжслста... что это и где искать? неписей есть еще и слух... А еще есть настройки денжеров а вот с этого момента можно поподробнее, пжлста, что это и где искать? Новое меню и интерфейс для ЗП, Наличные деньги для SGM 1.7, Новый инвентарь для ЗП, Новые меню для Солянки и Солянки+ООП+К+МА Ссылка на комментарий
UnLoaded 313 Опубликовано 30 Августа 2016 Поделиться Опубликовано 30 Августа 2016 можно поподробнее Искать\читать тут 1 Ссылка на комментарий
TIGER_VLAD 361 Опубликовано 5 Сентября 2016 Поделиться Опубликовано 5 Сентября 2016 Всем привет. Вопрос: где можно найти, как описана система таскания трупов? Еще интересно, что таскание работает только с сочетанием Шаг(Shift) + Использовать(F). Я так понимаю это в движке все? Ссылка на комментарий
SkyLoader 53 Опубликовано 6 Сентября 2016 Поделиться Опубликовано 6 Сентября 2016 Я так понимаю это в движке все? Да. Единственное, что вынесено в конфиги, это возможность таскания объекта: наличие визуала таскаемого предмета в секции [ph_capture_visuals]. 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 6 Сентября 2016 Поделиться Опубликовано 6 Сентября 2016 У меня такой вопрос, для чего задумывался массив db.info_restr? Что он делает сейчас - понятно (ага, sr_danger&sr_territory рыдают), но это в корне не вяжется с его описанием от разрабов (в самих файлах). Возможно кто-то знает секрет. Пока мое предположение такое: разрабы задумывали и неписей гонять по локациям (без потери самих неписей) и выдавать им нужные инфопорции в определенных рестрикторах. Возможно я опять думаю антипартийно, но в итоге мне кажется, что меня обвинят в том что я слишком много всего зарезал, и не потому, что я зарезал нужное, а потому, что зарезал рабочее, но, черт возьми, никто же за 9 лет и не пользовался. В общем тут вопрос такой больше философский, я прошу привести реальный пример из практики где это хотя бы раз когда-то использовалось (и, самое главное, оправданно), также, если такого не найдется, то я прошу каждого попытаться придумать теоретический пример где бы это было оправданно использовано, в противном случае не вижу причин оставлять это в скриптах, по мне так это очередной рудиментарный хлам, почему я считаю, что он рудиментарный - я объяснить смогу. Итак, у кого есть желание побеседовать - давайте побеседуем, а пока я помещаю это все в список "под нож". 1 Ссылка на комментарий
Jekyll 92 Опубликовано 9 Сентября 2016 Поделиться Опубликовано 9 Сентября 2016 Здравствуйте. Как правильно выдать инфопоршень при использовании предмета в инвентаре (например, хавки)? Пробовал сделать так: function use_n()if db.actor thenif db.actor:eat(db.actor:object("секция предмета")) thendb.actor:give_info_portion("поршень")endendend не работает. Предмет уже при взятии в инвентарь тут же исчезает, поршня нет. Что нужно изменить? New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор Русификатор для игры Vendetta: Curse of Raven's Cry Ссылка на комментарий
Overfirst 637 Опубликовано 9 Сентября 2016 Поделиться Опубликовано 9 Сентября 2016 @Jekyll, и чего ты ожидал? Нужно добавить коллбеки на юз предметов. Почитай эту статейку. И делай вместо саундов выдачу поршня. 1 Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Dennis_Chikin 3 661 Опубликовано 12 Сентября 2016 Поделиться Опубликовано 12 Сентября 2016 "Как правильно" - главное, это ПРИНЦИПИАЛЬНО ничего не читать. Тем более на том форуме, где задается вопрос. А то вдруг там ответ в том же разделе имеется - даже целая тема. Ага, в свете наличия специальных тем - это тоже важно: писать в любую другую, но только не в ту, которой вопрос касается. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
FonSwong 33 Опубликовано 12 Сентября 2016 Поделиться Опубликовано 12 Сентября 2016 Как синхронизировать "seq" анимацию со звуком?"seq" анимацию можно запускать и останавливать вручную? Ссылка на комментарий
tatarinrafa 3 Опубликовано 12 Сентября 2016 Поделиться Опубликовано 12 Сентября 2016 (изменено) Помогите пожалуйста, не могу понять как правильно использовать console:get_float local console = get_console() local val = {0.00,0.00,0.00} val = console:get_float("r__detail_density") if val[3] ~= 0.00 then local text = "gogogo" news_manager.send_tip(db.actor, text, 0, "trader", 20000) end float get_console_float(CConsole* c, LPCSTR cmd){float min = 0.0f, max = 0.0f;float val = c->GetFloat ( cmd, min, max );return val;} float CConsole::GetFloat( LPCSTR cmd, float& min, float& max ) const{min = 0.0f;max = 0.0f;IConsole_Command* cc = GetCommand(cmd);CCC_Float* cf = dynamic_cast(cc);if ( cf ){cf->GetBounds(min, max);return cf->GetValue();}return 0.0f;} *> Изменено 12 Сентября 2016 пользователем tatarinrafa Ссылка на комментарий
naxac 2 477 Опубликовано 13 Сентября 2016 Поделиться Опубликовано 13 Сентября 2016 (изменено) @FonSwong, 1. Никак. Если только подогнать звук под время анимации. 2. Нет. @tatarinrafa, get_console():get_float() возвращает число с плавающей точкой, т.е. val у тебя станет числом, а ты с ним пытаешься обращаться как с массивом. Изменено 13 Сентября 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
FonSwong 33 Опубликовано 13 Сентября 2016 Поделиться Опубликовано 13 Сентября 2016 (изменено) Никак. Если только подогнать звук под время анимации. как это никак, если можно поставить "пустую" текстуру, и когда нужно, подменять текстуру анимацией и одновременно включать звук Осталось только найти исходники, где это уже делали, подмену текстур, например как в этих видео: https://youtu.be/aTP3K2-9WqE https://youtu.be/4SWunMOnnpM https://youtu.be/zbJ5chuGQok https://youtu.be/DIEWiwe7-sw Изменено 13 Сентября 2016 пользователем FonSwong Ссылка на комментарий
naxac 2 477 Опубликовано 13 Сентября 2016 Поделиться Опубликовано 13 Сентября 2016 (изменено) @FonSwong, так бы и писал, что надо синхронизировать смену текстуры со звуком. Я думал, ты про смену кадров анимации. В подписи к видео написано, что для смены текстуры прицела используется Луа-перехватчик от Alpet - для изменения адреса в памяти. Изменено 13 Сентября 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Sla-Sla 43 Опубликовано 15 Сентября 2016 Поделиться Опубликовано 15 Сентября 2016 Всем добрый день. У меня вопрос, возможно ли получить значение общего количества патронов в инвентаре? Ссылка на комментарий
UnLoaded 313 Опубликовано 15 Сентября 2016 Поделиться Опубликовано 15 Сентября 2016 возможно ли получить значение общего количества патронов в инвентаре? Если ты имеешь в виду движковую ф-цию, которая вернет тебе искомую цифру - такой нет. Скриптом получить искомую цифру - без проблем, довольно примитивная ф-ция получится. Ссылка на комментарий
Sla-Sla 43 Опубликовано 16 Сентября 2016 Поделиться Опубликовано 16 Сентября 2016 @UnLoaded, мне скриптом и надо. Можешь показать код? Ссылка на комментарий
naxac 2 477 Опубликовано 16 Сентября 2016 Поделиться Опубликовано 16 Сентября 2016 (изменено) @Sla-Sla, function get_ammo_size(obj) local pk = net_packet() obj:STATE_Write(pk) pk:r_seek(pk:w_tell()-2) return pk:r_u16() -- ammo_left end function ammo_count(section) local n = 0 local sobj db.actor:iterate_inventory( function (actor, item) if item:section() == section then sobj = alife():object( item:id() ) if sobj then n = n + get_ammo_size(sobj) end end end, db.actor) return n end Изменено 16 Сентября 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Sla-Sla 43 Опубликовано 16 Сентября 2016 Поделиться Опубликовано 16 Сентября 2016 @naxac, Expression : fatal error Function : CScriptEngine::lua_errorFile : ..\xrServerEntities\script_engine.cppLine : 193Description : Arguments : LUA error: (null)stack trace:0023:0093717F xrCore.dll, xrDebug::fatal()0023:09906558 xrGame.dll, CDialogHolder::UseIndicators() Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти