Перейти к контенту

Рекомендуемые сообщения

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

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

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
eye_fov

eye_fov - это угол обзора, eye_range - дистанция обнаружения. Так в том то и вопрос, что дистанция обнаружения работает всегда, то есть независимо от угла обзора, даже если пробовать в полуприсяде подойти со спины к враждебному НПС, то он с этой дистанции обнаружения разворачивается и сразу атакует. Или может я что-то неправильно понимаю?

Изменено пользователем Серый Волк
Ссылка на комментарий

 

 

даже если пробовать в полуприсяде подойти со спины к враждебному НПС, то он с этой дистанции обнаружения разворачивается и сразу атакует
Откуда такие выводы ? В конфигах этот параметр варьируется от 60 до 150, так по твоему получается, что подойдя на 60м к неписю со спины он тебя сразу увидит и атакует ? Вот у меня, получается подобраться к неписям со спины на 15...10м. И не забывай, что кроме зрения у неписей есть еще и слух... А еще есть настройки денжеров, которыми можно вполне добиться достаточного для сюжета стелса...
Ссылка на комментарий

 

 

А еще есть настройки денжеров
а вот с этого момента можно поподробней, пжслста... что это и где искать?

 

 

неписей есть еще и слух... А еще есть настройки денжеров
а вот с этого момента можно поподробнее, пжлста, что это и где искать?
Ссылка на комментарий

Всем привет. Вопрос: где можно найти, как описана система таскания трупов? Еще интересно, что таскание работает только с сочетанием Шаг(Shift) + Использовать(F). Я так понимаю это в движке все? 

Ссылка на комментарий

 

 

 Я так понимаю это в движке все?

Да. Единственное, что вынесено в конфиги, это возможность таскания объекта: наличие визуала таскаемого предмета в секции [ph_capture_visuals].

  • Спасибо 1
Ссылка на комментарий

У меня такой вопрос, для чего задумывался массив db.info_restr? Что он делает сейчас - понятно (ага, sr_danger&sr_territory рыдают), но это в корне не вяжется с его описанием от разрабов (в самих файлах). Возможно кто-то знает секрет. Пока мое предположение такое: разрабы задумывали и неписей гонять по локациям (без потери самих неписей) и выдавать им нужные инфопорции в определенных рестрикторах. Возможно я опять думаю антипартийно, но в итоге мне кажется, что меня обвинят в том что я слишком много всего зарезал, и не потому, что я зарезал нужное, а потому, что зарезал рабочее, но, черт возьми, никто же за 9 лет и не пользовался.

 

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

 

Итак, у кого есть желание побеседовать - давайте побеседуем, а пока я помещаю это все в список "под нож".

  • Согласен 1
Ссылка на комментарий

Здравствуйте. Как правильно выдать инфопоршень при использовании предмета в инвентаре (например, хавки)? Пробовал сделать так:

 

function use_n()
if db.actor then
if db.actor:eat(db.actor:object("секция предмета")) then
db.actor:give_info_portion("поршень")
end
end
end

 

не работает. Предмет уже при взятии в инвентарь тут же исчезает, поршня нет. Что нужно изменить?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий

@Jekyll, и чего ты ожидал? Нужно добавить коллбеки на юз предметов.

Почитай эту статейку. И делай вместо саундов выдачу поршня.

  • Спасибо 1

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий

"Как правильно" - главное, это ПРИНЦИПИАЛЬНО ничего не читать. Тем более на том форуме, где задается вопрос. А то вдруг там ответ в том же разделе имеется - даже целая тема.

 

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

  • Согласен 1
Ссылка на комментарий

Помогите пожалуйста, не могу понять как правильно использовать 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;
}

*>

Изменено пользователем tatarinrafa
Ссылка на комментарий

@FonSwong,

1. Никак. Если только подогнать звук под время анимации.

2. Нет.

 

@tatarinrafa, get_console():get_float() возвращает число с плавающей точкой, т.е. val у тебя станет числом, а ты с ним пытаешься обращаться как с массивом.

Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
Никак. Если только подогнать звук под время анимации.

как это никак, если можно поставить "пустую" текстуру, и когда нужно, подменять текстуру анимацией и одновременно включать звук

Осталось только найти исходники, где это уже делали, подмену текстур, например как в этих видео:

https://youtu.be/aTP3K2-9WqE 

https://youtu.be/4SWunMOnnpM 

https://youtu.be/zbJ5chuGQok 

https://youtu.be/DIEWiwe7-sw 

Изменено пользователем FonSwong
Ссылка на комментарий

@FonSwong, так бы и писал, что надо синхронизировать смену текстуры со звуком. Я думал, ты про смену кадров анимации.

В подписи к видео написано, что для смены текстуры прицела используется Луа-перехватчик от Alpet - для изменения адреса в памяти.

Изменено пользователем naxac
  • Нравится 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

 

 

возможно ли получить значение общего количества патронов в инвентаре?

Если ты имеешь в виду движковую ф-цию, которая вернет тебе искомую цифру - такой нет.

Скриптом получить искомую цифру - без проблем, довольно примитивная ф-ция получится.

Ссылка на комментарий

@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

 

Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

@naxac,

Expression : fatal error

Function : CScriptEngine::lua_error
File : ..\xrServerEntities\script_engine.cpp
Line : 193
Description :
Arguments : LUA error: (null)

stack trace:

0023:0093717F xrCore.dll, xrDebug::fatal()
0023:09906558 xrGame.dll, CDialogHolder::UseIndicators()

 

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...