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

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

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

Так, по спавну разобрался спасибо danу (вот уж чел конкретно и понятно объясняет), т.е. тупо ПРОВЕРЯЕМ всё, пишем туда, по логике и переходу на др. локу, надо првильно прописать переключение НПСа на ремарку и из неё следующую схему в которой указываем луки и волки от УЖЕ имеющегося "лагеря" на нужной локе - он туда "нелёгкой моряцкой походкой" уйдёт

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

Не соответствует. N6260

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

Ребята, нужен прекондишн на проверку 3х одинаковых предметов, сам скрипт. И за одно проверка 3х разных предметов.

arkawa, спасибо.

==============================================================

эта функция не работает

function posil_est()
return sak.have_item_namber("предмет",1) ~= false
return sak.have_item_namber("предмет",1) ~= false
return sak.have_item_namber("предмет",1) ~= false
end

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

function posil_est()
return sak.have_item_namber("предмет",1) ~= false and sak.have_item_namber("предмет",1) ~= false and sak.have_item_namber("предмет",1) ~= false
end

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

function posil_est()

return sak.have_item_namber("wpn_svu_m1",1) ~= false количество одинаковых предметов

end

 

function posil_est()

return sak.have_item_namber("предмет",1) ~= false количество одинаковых предметов

return sak.have_item_namber("предмет",1) ~= false

return sak.have_item_namber("предмет",1) ~= false

end

эта функция проверяет, что продмет есть, если поменять "false" на "true" будет проверка на отсутствие заданного предмета

Не соответствует. N6260

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

Доброго времени суток!

 

Знающие люди, помогите с проблемой. Два дня корячусь, весь моск уже вынесла.

 

В "забытой деревне" создаю гулаг монолитовцев. Всё прописано где надо, это уже не первый мой гулаг. Тем более этот по определению рабочий, взят со всеми потрохами из НС5 от Дэна. Все координаты прописаны верно, сам гулаг в аллспавне и скриптах, логика, пути итд. Спавню аллспавном любого нужного монолитовца в этот гулаг. При начале новой игры успеваю увидеть как этот непись начинает шагать куда-то в степь, куда ему совсем не надо и вылет с ошибкой в state_mgr.script stack overflow.

 

Что я делаю не так? Хоть головой об стенку бейся... :(

---------------------------------

www.amk-zone.de

Ссылка на комментарий
Wlad777, лог поподробнее дай, на вскидку ИМХО переполнение кол-ва "движняка" для файла, а по-поводу "шагания в степь" косяк в логике сталки "безголовые" спавнятся

Не соответствует. N6260

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

When things coded in all.spawn file are spawned? I mean those which don't have any conditions nor triggers - do they spawn on the first level entry, or... on the new game creation?

sooner or later... you will meet the undertaker...

utak3r

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

utak3r,

 

Если правильно перевёл google, то ответ будет такой :)

 

Добавленные в all.spawn объекты появляются с началом новой игры. Если создаются только новые пути в файлах типа way_****, то новая игра не нужна.

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

Есть вопрос к знающим людям...

После адаптации Smart monster parts нужно начинать новую игру?

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

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: ...:\games\stalker\gamedata\scripts\bind_monster.script:324: attempt to index global 'smart_monster_parts' (a nil value)

 

stack trace:

 

 

Вроде все везде добавил и прописал...

 

Kirag возможно ты был прав, но я сделал по другому - перетащил весь скрипт в bind_monster и все заработало ^_^

Изменено пользователем Galil
Ссылка на комментарий
Добавленные в all.spawn объекты появляются с началом новой игры.

 

Well, I'm changing parameters of spawning lagers in alife_*.ltx... buuuuu :(

Ok, thanks for your reply.

 

Or maybe... is there any way of respawning the main actor somewhere else, like it was in alphas? Testing some things this way is... well, it's getting impossible :(

sooner or later... you will meet the undertaker...

utak3r

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

utak3r,

 

Опять же, если google перевёл правильно...

 

Ответ:

Для тестирования изменений на дальних от места старта игры локациях, можно спавнить актора сразу на нужной локации. Делается это также, как и спавн любого NPC. Просто меняются координаты спавна, gvertex и lvertex в файле alife_l01_escape.ltx на необходимые. Взять координаты можно из путей level_changer или любой точки _look_ NPC, находящихся на нужной локации.

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

utak3r

Маленькое дополнение: для корректного спавна ГГ надо еще менять upd:position. Иначе на нужном уровне заспавнит, но не там, где надо, а черт знает где. На армейских складах вообще за карту выбрасывало :)

 

Galil

Ты где-то накосячил в smart_monster_parts.script, судя по логу. Проверь закрытие всех скобок, наличие всех end-ов, не перепутал ли где == (сравнение) и = (приравнивание) и тому подобные ошибки. Что-то не так с синтаксисом, почти наверняка, программа вообще не воспринимает этот файл и не понимает, чего от нее хотят.

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

Мои работы:

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

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

Soul Cube

 

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

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

знающие люди подскажите пожалуйста как исправить этот очень досадный баг? :(

 

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

 

Я догадываюсь что ошибка в логике нового нпс. я хотел создать торговца и логику взял из тутора вот:

[smart_terrains]

none = true

 

[logic]

active = walker

trade = misc\trade_kntrader.ltx

trader_flags = 0

inv_max_weight = 10000

on_death = death

 

[walker]

path_walk = esc_sin_kntrader_walk

path_look = esc_sin_kntrader_look

meet = meet

 

[meet]

use = true

use_wpn = true

meet_talk_enabled = true

 

. но с этой логикой вылеты! что делать?

Изменено пользователем Бубалех

убийство гарика и жорика главный стимул дойти до бара

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

ребят тут про скрипты говорят в том числе и ЗП я понимаю?

Просто кто нибудь может показать или объяснить как написать функцию к квесту что бы вкл музон какой нибудь при взятии квеста?

Не соответствует. N6260

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

В диалоге пишешь <action>my_sound_play.play</action>, затем создаёшь скрипт

snd_obj = {}

snd_obj = xr_sound.get_safe_sound_object([[soundtrack\escape_theme]])

 

function s_stop()

if snd_obj:playing()==true then snd_obj:stop() end

end

 

function s_play(path)

s_stop()

snd_obj = xr_sound.get_safe_sound_object(path)

snd_obj:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d)

end

 

-- device\pda\pda_tip - это путь до файла без расширения .ogg

local sound_types = {"[[device\pda\pda_objective]]"}

 

function play()

s_play(sound_types)

end

содержания и всё, когда клацнешь на реплику диалога заиграет нужный тебе звук.

 

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

Функцию любезно предостаил DEXXX.

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

Небольшой вопрос. В скрипте написано \escape_theme. Escape это ведь Кордон. Даже если скрипт для ЗП,всё равно escape писать надо?

Мой ник читается гузерус.
Ссылка на комментарий

Вроде бы нет, напиши путь до амбиента затона (sounds/music/ambients/zaton_amb пишу с телефона поэтому может путь или название файла неправельные, сами найдете думаю ;-) )

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

Как я понял, escape_theme надо писать если квест на Кордоне. Тогда если квест на Затоне или Юпитере надо писать соответственно zaton_theme и jupiter_theme?

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

Ребят помогите homo пока не sapiensу совместить моды. Я в этом деле новичок, ещё толком ничего не умею, пытаюсь совместить ИММ(мародёр) и АИ мод, всё вроде понемногу получается, но когда пытаюсь совместить скрипты, вылетает. Ставлю отдельно моды, работают, а как только добавляю скрипты из другого мода, вылетает. Как я понял, скрипты ссылаются друг на друга, и изменения в одном скрипте надо компенсировать изменениями в другом, потому если в одном прописаны конфиги одного мода, а в другом из другого, то вылет. Я к примеру совместил несколько скриптов из двух модов, имм и аи, дописал недостающие строки, а когда докидываю в папку скрипты из марадёр мода, те, которых нет в аи моде, мне выбивает лог, что мол ошибка в строке того скрипта, что я докинул.

Подскажите, если кто что знает, буду очень благодарен.

Если обращаюсь не в ту тему, прошу извинить.

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

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

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

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

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

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

Войти

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

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

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