Скриптование - Страница 55 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

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

Тема для обсуждения скриптов всего и всех в серии игр 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
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/

Zeek

вот рабочая ф-и я ей спавнел и монстров и НПСов.

function ka ()
alife():create("fracture_normal",vector():set(265.403,18.471,529.419),1420998,287)
end

Изменено пользователем Министр
87728-stalker.gif

ФеНиКс,

(first_speaker, second_speaker) - не чушь :).Сюда передаются два объекта ведущих диалог.Оно никак не мешает.(по крайней мере в ТЧ и не думаю что в ЗП иначе)

ZeeK,

вроде всё нормально...может координаты не верны?Попробуйте заспавнить рядом с ГГ...

db.actor:position()

только сместите немного...например по х.

Я не верю в то что нельзя спавнить npc скриптом

Изменено пользователем Министр

Люди хелп! Помогите разобраться с алл спавном. Вот создаю респавн излома:

[l01_escape_870]
; cse_abstract properties
section_name = respawn
name = esc_fracture_respawn
position = -238.69424428477,-17.530403137207,-96.331878662109
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 10
distance = 10
level_vertex_id = 16883
object_flags = 0xffffff3e
custom_data = <<END
[respawn]
respawn_section = fracture_weak
;max_count = 10
;min_count = 3
max_spawn = 3
idle_spawn = medium
conditions = 100
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 0

; se_respawn properties

Но ничего не происходит! Что я сделал не так?

Подскажите, плиз, как скриптово в ТЧ заставить НПС проиграть определённую анимацию? А определить координаты взрыва гранаты, которую бросил ГГ?

yjNrc.gif

dSQwF.png

oZ8SF.png

Народ где прописать [smart_terrains] none = true что бы НПСя не засасывало в гулаг?

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

В файле логики этого непися, а если такового нет то непись будет подчиняться правилам общей логики в т.ч. и привлекаться

в ближайший гулаг на свободные работы.

Возможно как-то прописать логику машине не трогая нет пакеты? (чтобы можины было заспавнить элементарно через

alife():create(section,XYZ)

И добавка:

Возможно ли вывести на экран для каждого типа оружия свою рамку(где написано кол-во патронов и иконка коробки от них)

87728-stalker.gif

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

Кстати гуглил один вопросик и меня вывело на страничку на сталкер-портале,где обсуждалась логика транспорта в игре и вот там попалось сообщение.что кто то прикрутил БТР логику непися -это надо же так гнать

gulag_empty(gulag_name) - проверка того, что гулаг пуст или вообще не существует.

 

gulag_population_le(gulag_name, num) - проверка того, что количество народу в гулаге <= num

 

gulag_casualities_ge(gulag_name:num) – проверка того, что гулаг понес потери => num NB! Потери гулага не обнуляются, так что с этой функцией работать аккуратно

Тут выше был вопрос о проверке численности гулага

Народ, пытаюсь вырезать Динамические Аномалии для оригинального ЗП из АРС ЗП мода, но при игровом тестинге, при окончании выброса вылетаю с таким логом:

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ... - Зов Припяти\gamedata\scripts\level_anomaly.script:3298: attempt to call global 'isAnomaly' (a nil value)

 

 

stack trace:

 

 

Объясните, как такого избежать? Почему пустое значение появляется?

Вроде бы отсылка идет к этим строчкам

local an_count

function AnomalyManager:create_anomaly_table()

if an_count then return end

for a=1, #self.level_name_table, 1 do

if self.lname == self.level_name_table[a] then

if self.lname == "zaton" then an_count = 429

elseif self.lname == "jupiter" then an_count = 382

else an_count = 188

end

local n_count=1

for b=1, an_count, 1 do

anomaly_table[n_count] = 65535

n_count=n_count+1

end

for c=1, 65534, 1 do

local sobj = alife():object©

if sobj and isAnomaly(sobj) then

local cust = get_custom_data(sobj)

if cust and cust ~= "" and string.find(cust, "_on_") and string.find(cust, self.lname) then

cust = xr_s.str_explode("_",cust)

anomaly_table[tonumber(cust[4])] = tonumber(cust[3])

end

end

end

end

end

end

 

 

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

ZeeK,

Потому что не скопировал функцию isAnomaly. Проверь _g.script

Если имя функции пишется без имени модуля впереди, то она лежит в _g.script

 

А как нибудь можно сделать копию пда на скриптах?...видел видео где добавлены кнопки в пда, вот там скорее всего делали скриптом, ибо все кнопки пда обрабатываются движком насколько я знаю

Вот в этом моде есть пда - скрипт называется огсм_нотепад. Копия правда не очень точная, но функции пда выполняет

Изменено пользователем _Призрак_

Freedom

Продолжая вытаскивать динамические аномалии из АРС ЗП мода сталкнулся еще и с таким вылетом

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ....e.r. - Зов Припяти\gamedata\scripts\se_zones.script:38: attempt to call field 'add_anomaly' (a nil value)

 

 

stack trace:

 

 

Как поправить?

 

Я так понял запарка в этой функции

 

local actor = alife():object(0)

if actor and level_anomaly and not string.find(self:section_name(),"_field") and game_graph():vertex(actor.m_game_vertex_id):level_id() == game_graph():vertex(self.m_game_vertex_id):level_id() then

ars_mod.add_anomaly(self.id,self.position,level_anomaly.get_radius(self))

end

end

 

 

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

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

Гость БолотныйДоктор

ФеНиКс

Нашел способ избавится от требования убрать оружие при разговоре, но действует на всех поголовно.

 

Расскажи как сделал?

 

пробывал это:

[meet]

meet_state = 3 | nil@nil

meet_state_wpn = 3 | nil@nil

use_wpn = true

victim = 0 | actor

victim_wpn = 0 | actor

use = true

 

подходит только для чистого неба

 

Все получилось и для ЗП

 

В активно секции логики добавляешь

 

out_restr = zat_a2_sr_noweap

 

и в секции meet

 

[meet]

close_anim = nil

close_victim = nil

far_anim = nil

far_victim = nil

close_distance = 0

far_distance = 0

close_snd_distance = 3

use = {=actor_enemy} false, true

allow_break = false

meet_on_talking = false

Изменено пользователем БолотныйДоктор

Логика НПЦ - это конечно хорошо, но как подредактировать логику монстров? Я хочу, чтобы контролёр ещё и вещами швырялся - как полтергейст!

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

Всем привет! Пипл подскажите кто может, как заспавнить скриптом объект типа мебели для ТЧ? И если можно по подробней. Три дня роюсь, а конкретной инфы найти не могу, есть что то но в описании ничего не разобрать.

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

помогите кто нибуть нужен спальник на тч ну со всеми скриптами чтобы он спать хотел каждые примерно часов 10-12 в скриптах я полный ноль самому сделать не получается

 

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

hakim лучше всего через аллспавн по моему через скрипт такие обьекты ваще нельзя заспавеить

Реклама любых модов бесплатно на моём

сайте писать в личку

serega-gamer через скрипт это сделать можно. Вот тебе спальник http://rghost.ru/3282861 если что не понятно по настройке пиши в ЛС.

serega-gamer

Скачай DreamMod ver.0.2b или abc_sleep_mod(что почти одно и то же) -а уж настраивать под себя сам будешь.

 

hakim,

Элементарно - создашь конфиг как обычному предмету в файле items и указываешь в качестве визуала любой объект мебели из папки meshes - там есть и столы, и стулья, и полки и т.д. Сам предмет спавнишь обычной функцией create().

Мужики возник вопрос: как отследить последний воспроизведенный НПСом звук? Я конечно понимаю что это все происходит в xr_sound.script в функции:

 

function play_sound(npc, themes, timeout)
--// а именно на строке:
--// для входных
npc:play_sound(snd.into_id, 1, 0, 1, 0, db.sound[npc_id].last_snd[snd.into_id]+1)

--// для рандомных
npc:play_sound(snd.rnd_id, timeout+1, timeout, 1, 0, s)
...

 

Но само воспроизведение звука немного не ясно ... тут испоьзуеться вроде такой метод:

    function play_sound(number, number, number, number, number, number);

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

 

Еще пробовал просто вместо npc ставить db.actor либо переопределял ГГ как объект но все-равно не хочет воспроизводить звук возле ГГ. НПС проверял так:

if type(npc) == 'number' then
news_manager.send_tip(db.actor,"НПС = числу",0,"project_sip",10000)
elseif type(npc) == 'table' then
news_manager.send_tip(db.actor,"НПС = таблице",0,"project_sip",10000)
elseif type(npc) == 'string' then
news_manager.send_tip(db.actor,"НПС = строке",0,"project_sip",10000)
else
news_manager.send_tip(db.actor,"НПС = чему-то другому",0,"project_sip",10000)
end

Ставил сразу после воспроизведения звука. Выводит: "НПС = чему-то другому". Также копался в sound_theme.script но так и не нашел как формируеться название звука. Надеюсь на вашу помощь :)

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

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

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

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

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

Войти

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

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

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