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

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

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

кровоSTALKER, а сам то как думаешь? У тебяж в руках огромный справочник в виде оригинальных скриптов, ты там хоть в одном месте такой ужас видел? Сначала меня удивило then в конце, а потом я еще и второй return увидел, почитай статьи по lua...

 

з.ы. через условие делай и возвращай true или false в зависимости от ситуации.

Возможно всё, ну или почти всё.
Ссылка на комментарий

кровоSTALKER,

Есть тег code. Его использование + форматирование кода - это элементарное уважение к людям на форуме. Это не считая того, что аккуратное форматирование - на самом деле серьёзное средство выявления ошибок, типа лишних или недостающих end-ов.

function have_tema_eda2()
    return sak.have_item_namber("bread",20) or sak.have_item_namber("konserva",10)
end

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Решил сделать в ТЧ небольшую базу одиночек на кордоне и сразу же столкнулся с проблемой спауна. Связываться с all.spawn мне не особо хочется и хотелось бы заспаунить нпс на базе через скрипт. Но тут я столкнулся со следующей проблемой: для спавна к примеру 8 разных нпс я так понял придется писать 8 функций спавна, но беда не в этом. Эти функции как-то нужно вызывать, а вот в этом и главная проблема. Вызывать через диалоги - значит наблюдать очень нехилые подвисания и тормоза. Если вызывать через db.script то получится слишком большое его "замусоривание". Для 8 нпс уже требуется немало места - а для нескольких баз и того больше.

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

Сталкеры!

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

function s_stop()
end

function s_play(path)
snd_obj2 = xr_sound.get_safe_sound_object(path)
snd_obj2:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d)
end

function random_sound_amb()
local sounds = {
[[special_amb\bdog_howling_1]],
[[special_amb\bdog_howling_2]],
[[special_amb\crow1]]}
s_play(table.getn(sounds))
end

function volume01()
snd_obj2.volume() = 0.1
end

function volume02()
snd_obj2.volume() = 0.2
end

function volume03()
snd_obj2.volume() = 0.3
end

function volume04()
snd_obj2.volume() = 0.4
end

function volume05()
snd_obj2.volume() = 0.5
end

function volume06()
snd_obj2.volume() = 0.6
end

Где кот зарылся?

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

TREWKO,

для начала, volume - это вроде не функция, а свойство. так что snd_obj.volume = ... (работает или нет не проверял). Далее, зачем тебе несколько функций установки громкости? Зачем вообще паковать в функцию действие из всего одной однотипной строки?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

TREWKO

Ммм... И в чем тут рандом - s_play(table.getn(sounds))? Что-то мне подсказывает, что задумывалось все, ну примерно, вот так - s_play(sounds[math.random(table.getn(sounds))]).

 

 

628e0.jpg

e2bc8.jpg

Suum cuique…

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

TREWKO

Не знаю, что и где у тебя там суется... Но зачем в качестве аргумента, в функцию s_play(path), передаешь размер таблицы, если нужно путь?

628e0.jpg

e2bc8.jpg

Suum cuique…

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

Таак... С назначением и содержимым файла npc_profile.xml худо-бедно я разобрался. Но вот файл spawn_sections.ltx для меня пока - темный лес. Судя по моим тестам, он нужен только при спавне скриптом, ибо через алл спавн все спавнится отлично и без него. Прав ли я? :ny_mellow:

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

dimka.qwer,

похоже на то, поскольку в all.spawn везде используется только секция stalker

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

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

 

Ссылка на комментарий
:russian_ru: Народ, столкнулся с проблемой - поставил бтр на кордоне и заложил маршрут а бтр зараза ни куда не едет- че делать. как заставить это ведро на колесах не только стрелять но и ездить? (бензин вроде есть... :ny_biggrin: )

Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу.

 

Ссылка на комментарий
Таак... С назначением и содержимым файла npc_profile.xml худо-бедно я разобрался. Но вот файл spawn_sections.ltx для меня пока - темный лес. Судя по моим тестам, он нужен только при спавне скриптом, ибо через алл спавн все спавнится отлично и без него. Прав ли я? :ny_mellow:

 

Уточню файл spawn_sections.ltx используется респаунами из алл спавна

 

[2130]

; cse_abstract properties

section_name = respawn

name = gar_bandit_respawn_1

position = -255.842391967773,0.402019500732422,-16.2054500579834

direction = -0.020167512819171,3.69857480109204e-005,0.00183404912240803

 

; cse_alife_object properties

game_vertex_id = 309

distance = 9.09999942779541

level_vertex_id = 7422

object_flags = 0xffffff3e

custom_data = <<END

[respawn]

conditions = 0

respawn_section = gar_bandit_respawn_1,3,gar_bandit_respawn_2,2 имена секций из файла spawn_sections.ltx

;max_count = 12

;min_count = 5

max_spawn = 2

idle_spawn = medium

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

 

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

Ага, теперь понятно :lol: Т.е при спавне нпс "поштучно" возиться с этим файлом нет смысла. Вопрос о спавне смартом пока открыт)

Изменено пользователем dimka.qwer
Ссылка на комментарий
Phantom1305

Если речь идет о заселении новых локаций, то вообще лучше все это делать через SDK и не извращаться.

У меня к сожалению СДК отсутствует и я думаю что я тут не один такой, поэтому лучше через алл спаун смартами))))

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

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

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

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

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

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

Войти

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

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

×
×
  • Создать...