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

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий

Artos, да вот у меня как раз мысль, может имя я не то использую, так как в character_desc_bar у него имя bar_psih, но в секции спавна он bar_bar_psih. Хотя имена которые написаны в табличке, это имена из секций спавна.

И кстати, а какие ещё схемы лекарей есть, хотя бы известные, может у меня такова ещё стоит? Хотя на деле я знаю только xrs_medic.

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

Stalkersof

В том то и дело, что нету стандартной привязки.

Но если ты делаешь под ЧН/ЗП, то можешь из мода SGM вытащить универсальную схему xr_move.

Она как раз использует не вейпоинты а вертексы, которые можно скриптом снять в любой доступной для НПС точки локации.

Но тут тебе как минимум понадобятся знания чтобы адаптировать эту схему. Впрочем там не шибко сложно на самом деле. Total Commander и WinMerge в помощь :)

 

Ежели работаешь под ТЧ, тогда тут я точно не знаю, м.б тоже есть мод где переделывали схемы.

 

 

Ulman

Ты в табличку написал его name или его section в ltx?

По идее писать надо первое. Оно в all.spawn есть.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий
*Shoker*, да, написал то, что в all.spawn`е, но его пихают все аптечками, проверил, думал схема глючит, так нет, бедного Толика никто не вылечил.
Ссылка на комментарий
for i = 0, 65534 do
local sobj = alife():object(i)
  if sobj then
    if my_script.IsAnoArt(sobj) then

 

Есть такой кусок кода. Помогите написать скрипт "IsAnoArt" (на который указана ссылка в коде), который возвращал бы true, если sobj - это артефакт или аномалия.

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

В скрипте _g.script есть ананлоги IsStalker\IsWeapon

 

Копируешь один такой, тока там где классы сталкеров\оружия заменяешь на классы артефактов. Классы можно глянуть в скрипте lua_help.script

 

C++ class clsid {

....

const art_bast_artefact = 0;

const art_black_drops = 1;

const art_cta = 3;

const art_dummy = 4;

const art_electric_ball = 5;

const art_faded_ball = 6;

const art_galantine = 7;

const art_gravi = 8;

const art_gravi_black = 2;

const art_mercury_ball = 9;

const art_needles = 10;

const art_rusty_hair = 11;

const art_thorn = 12;

const art_zuda = 13;

const artefact = 41;

const artefact_s = 97;

 

 

Вот вроде все.

Ulman

Скинь скрипт xr_medic или как там.

 

Вопрос:

Кто знает, как можно телепортировать объект (НПС) в ТЧ\ЧН?

Хотя бы в офлаине. У меня пока два варианта:

1) Попробовать указать .position в свойствах серверного объекта (понадобится ли его перевод в оффлаин?)

2) Попробовать перевести в оффлаин и в STATE_READ\WRITE переписать позицию, что то вроде того, как в Arena Extension в лампах переписывалась дирекция.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

*Shoker*, я как-то пытался "телепортировать" труп непися в ТЧ (как раз оффлайн). При просмотре с другой локации видно, что NPC переместился в заданную точку. Но стоит перебраться на "родную" для трупа локацию, как он (труп) тут же оказывается на прежнем месте. В общем, поковырялся с часик, и бросил эту затею (хотел эдакое "оффлайн-кладбище" сделать, но потом сделал свой уборщик трупостволов, и отказался от этой фишки :)).

Stalkersof, таких неписей (без использования оллспона) заспонить несложно. Стандартной функцией создаём нужных NPC на заданных позициях. Почему нельзя спонить "кучей", как обычно это делается, поясню ниже. Затем (ну, я так поступаю - просто и удобно :)) парой функций из набора АМК (read_salker_params/write_stalker_params) вписываем им в "кустодату" логику, основанную на схеме поведения remark, в которой нужно указать, что сталкеры должны смотреть в сторону игрока (target = actor). Вот почему нельзя спонить "кучей" - чтобы каждый сталкер под этой схемой находился на отдельной позиции (предполагаю, что это будет засада, не так ли ;)?) Там же в логике укажи условие перехода неписей в "боевое состояние" - то есть, как у тебя написано, при приближении игрока (скажем, on_actor_dist_le_nvis = 100| remark@bey_vragov %=здесь функция для "обижания" неписей на игрка, если их группировка не враждебна к игроку%). Собственно, всё. По итогам боя можно либо отправить неписей в какой-нибудь смарт, либо оставить под той же схемой, либо загнать в nil - тогда они тупо будут слоняться по местности, пока их кто-нибудь (или что-нибудь) не прикончит. Ну, я предполагаю, что по итогам боя они все должны погибнуть, верно ;)?

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

Вот ссылка на мой скрипт. Я вот думаю, а можно попробовать "обойти психа" таким способом, мне так =VENOM= советовал обойти обыск трупа:

if IsStalker(obj) and obj:name() == "stalker_name" then return false end

Так вот оно действительно помогло, только вот я не знаю где в xrs_medic это прописать.

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

=VENOM=

Спасибо конечно ничего не понял.

Стандартной функцией создаём нужных NPC на заданных позициях.

Что это за функция.

Затем (ну, я так поступаю - просто и удобно ) парой функций из набора АМК (read_salker_params/write_stalker_params) вписываем им в "кустодату" логику, основанную на схеме поведения remark, в которой нужно указать, что сталкеры должны смотреть в сторону игрока (target = actor).

Мне бы примерчик какой одного нпс тогдаб допер.

 

А так. Сделали засаду по рескриптору(нпс на основе имеющихся со своим именем для спавна) без логики. При входе в область спавняца нпс в близи за деревьями и кустами. Так как они близко то сразу реагируют на гг и дают ему жару.

Вообще так можно делать?

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

Ulman

 

Непонятно почему не работает. Твоего психа точно так зовут? Сделай перебор по ID, выводя имена( sobj:name() ) всех сталкеров в игре и потом в логе найди его имя. М.б игра циферки приписала.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Ulman

Разбери спавн свой и перешли alife_05_bar или какой там ltx файл от него.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Stalkersof, делать можно как угодно, ты разработчик - тебе и карты в руки :).

Стандартная функция, создающая объекты в игре, в целом выглядт так:

alife():create("item_section_name", vector():set(x, y, z), level_vertex_id, game_vertex_id)

Но. С другой стороны, если ты собрался создавать рестриктор, при входе в который будет выдаваться команда на спон неписей, то всё равно придётся ковырять all.spawn. А если придётся ковырять all.spawn, то почему заодно не добавить нужных NPC на нужных позициях с заранее продуманной и настроенной логикой, которые "появятся" при входе в рестриктор?

Другое дело, если нужно, чтобы спон неписей происходил по условию (как ты вначале писал, по условной фразе в диалоге)... Стучись в личку.

Ссылка на комментарий
*Shoker*, да разобрал я спавн и там у него нормальное имя, вот лучше объясните как выводить имена в лог сталкеров и желательно монстров?
Ссылка на комментарий

Разобрал аллспавн с помощью асdc, сменил точку старта гг, его начальный ассортимент, заспаунил машинку), заспаунил нового НПС.. После этих действий слетел апдейт висящий на акторе, отвещающий за сохранение вещей в тайниках. Т.Е. После загрузки все тайники отмеченные на карте становятся пустыми. Из-за чего появилась эта проблема? До этого в xrSpawner'е спаунил машину и парочку мутантов. Если удалить аллспавн из геймдаты то все нормально работает.

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

Помогите привинтить данный скрипт к АМК 1.4.1. А то чувствую сам я всё это не осилю.

И так:

Часть 1 - Не понял, нужен ли вообще этот кусок кода и если да, то куда его пихать?

Часть 2 - Тоже не известно в какой файл прописывать всё это добро, понял только что нужно оставить все функции кроме:

-- создается переход из ЧАЭС в Припять
    create_chaes2pripyat_exit()

Т.к. в АМК она уже имеется.

Далее нужно прописать info-portions в config\gameplay\_info_sa.xml и всё, остальные шаги можно пропустить за ненадобностью.

 

 

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

Подскажите, какой самый лёгкий метод спавн, а точнее самый точный...Тоесть я к примеру хочу заспавнить дверь, а точные координаты измерить немогу, только примерные...Подскажите какой самый точный метод спавна?!

ВИТ@/\|{ЕР
Ссылка на комментарий

Виталкер, все они основаны на координатах, так что без замеров, это пальцем в небо.

Ребята, так можно как то вывести в лог имена монстров и сталкеров, хоть как то?

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

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

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

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

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

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

Войти

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

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

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