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

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий
max_max_08, да просто вылет давольно рандомный и бывает вылет через минут 5 а бывает вообще не славливаю... Изменено пользователем Ulman
Ссылка на комментарий

Приветствую всех. Очень прошу помочь. Раньше отписывался, что не могу настроить постоянный спаун изломов и прочей вырезанной из обычной игры нечисти. Долго ковырялся, но...К сожалению так и не смог осилить. Вроде бы вырезанных монстров в игру добавил (вставил из стандартной игры файлы), и смарттеррейны с ними прописываются...А части монстров внутри их (я их тоже вставил) и респаун ну никак. В частности у изломов никак не спавнятся части, и сам он с остальными вырезанными респауниться не хочет.

Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с)

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

Ренсон, есть вот такая функция

function delete_marsh_haker_stalker()

for a=10,65635,1 do

local obj=alife():object(a)

if obj and string.find(obj:name(),"marsh_haker_stalker") then

alife():release(obj,true)

end

end

end

 

 

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

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

Делаю мод С командой и в команде нету нормального человека который знает лог .

У меня такая проблема.

 

Expression    : vertex || show_restrictions(m_object)
Function      : CPatrolPathManager::select_point
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\patrol_path_manager.cpp
Line          : 155
Description   : any vertex in patrol path [esc_assault_escape_btr_path1] in inaccessible for object [esc_novice_attacker1]

 

что надо править в чем ошибка ?

Заранее благодарен

Моя жизнь это S.T.A.L.K.E.R.


 

Ссылка на комментарий
Knyaz, скорее всего тебя просто на гугле забанили. Пересоздай точку патрульного пути в другом месте. Изменено пользователем iDreD
Ссылка на комментарий

Knyaz

В переводе на русский - "ни одна вершина пути ... не доступна объекту ..."

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

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

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

Народ помогите, я заспавнил непесей сообирал координаты с блокнотиком, бегал по новым локациям и собирал, кароче насобирал заспавнил, все "ЛЕВЫЕ" НПС с каторыми поговорить нельзя норм стоят, почти все.

dir.position видимо не правильный, хотя пробывал 3 раза и ничего не менялось.

Заспавнил нового непися и он стоит боком, хотя должен смотреть в центр как я и предусматривал, но почему то стоит боком.

Дай те норм скрипт для снятие координат или помогите разобратся в чем дело :)

 

Прочти пункт правил 2.5.

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

Kirag

А можно ли как то этими рестрикторами заставить неписей обходить аномалии средствами движка?

Knyaz

Глянь в АМК или ОГСМ на ТЧ (точно не помню, могу ошибаться, есть и в других модах)

Скрипт xr_patrol

Где то у кого то это правилось.

Руслан

А ты через all.spawn делаешь?

 

Там по моему нельзя через :direction() снимать, координаты другие. Их лучше в СДК смотреть.

 

 

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

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

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

Руслан, на, это скрипт от bardak'а. Для АМК 1.4, но адаптировать 2 файла (перенести пару абзацев) думаю сможешь. Выводит координаты, вертексы, направление.

http://depositfiles.com/files/knoi49m1h

Самый некомпетентный на форуме.

Ссылка на комментарий
iDreD, и что будет? они исчезнут? мне просто необходимо сделать на время деревню пустой, а потом снова наполнить. Как наполнить я знаю)))

Нужно просто через состояние гулага перевести весь гулаг офлайн пример -гулаг петрухи и ко (гулаг новайс атакер)

с начала игры сидят офлайн ,по инфопоршню гулаг переходит в состояние при котором все онлайн

Короче там можно просто тупо скопипастить состояние гулага просто заменив условия перехода на свои и добавить в список работ номер этого состояния

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

 

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

Помогите написать скрипт:

Если NPC с сидом 1 враг игроку, то npc удаляется.

 

Добавлено через 179 мин.:

Что не так в этом скрипте?

 

function director_war()

local npc = level_object_by_sid(8800)

local npc_position = npc:position()

local npc_game_vertex = npc:game_vertex_id()

local npc_level_vertex = npc:level_vertex_id()

if amk.get_npc_relation(npc,db.actor)=="enemy" then

alife():release(alife():object(npc:id()), true)

alife():create("m_controller_old",npc_position,npc_level_vertex,npc_game_vertex,65535)

end

end

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

speczadanie, легче сделать это через логику.

[spawner];это контролирует оффлайн НПСа
cond = {-set_npc_offline}

[logic]
active = walker@get_enemy

[walker@get_enemy]
path_walk = my_path
path_look = my_path_look
on_info = {=actor_enemy} %+set_npc_offline%;эта строка проверяет, что актор враг нам, а если враг то выдаём поршен который переводит нас в оффлайн

Соответственно нужно будет создать новый инфопоршн set_npc_offline.

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

пытаюсь передать неписю в логику параметры пребывания под смартами.Так

 

[smart_terrains]

esc_lager = {=time_ust(6:8)}

esc_fabrika_bandit = {=time_ust(8:6)}

 

 

 

function time_ust(actor, npc, p)

local t1 = p[1]

local t2 = p[2]

return level.get_time_hours() >= t1 and level.get_time_hours() <= t2

end

 

 

 

Как правильно сделать это?

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

_Призрак_

А можно подробней? Желательно функцию, которая добавит рестриктор аномалии в запрещённый.

 

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

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

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

*Shoker*,

функция add_restrictions(in_restrictions, out_restrictions)

добавляет соответственно in и out рестрикторы

Но способ то этот всеми используется, в том числе и в АМК для обхода аномалий. И это из-за него куча вылетов: в соседней теме очередной вылет, что недоступна точка пути.

При удалении аномалии, которая у кого-нибудь в рестрикторах прописана, будет безлоговый вылет.

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

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

Спасибо за ответ. Надо будет глянуть, правда не совсем понятно как из аномалии in\out рестрикторы выдрать.

 

Вот ещё хотел спросить, в теме народной солянки как то это проскакивало, никто не знает метода, чтобы как нибудь измерить насколько скрипт нагружает игру? Я хочу сделать простенькую систему, которая будет показывать как много процессорного времени забирает скрипт.

Думал через time_global() но его значение во время апдейта не меняется...

 

Суть в том, что хочу перед вызовом функции пустить счётчик, а после вызова функции остановить и глянуть, сколько времени прошло после вызова функции.

 

 

 

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

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

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

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

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

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

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

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

Войти

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

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

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