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

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

Тема для обсуждения скриптов всего и всех в серии игр 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/
Gektor,Ну наверное заспавнить аномалию по тем же координатам,что и бочку.
Правильно заданный вопрос- уже половина ответа!

Ну или скриптом задавать координаты электры, типа:

local obj = "barrel"

local anm = "zone_flame"

получаем какнить сам обьект...

obj:position = anm:position

Сам даже толком не знаю...

А можно ли сделать так чтобы если ГГ находится в определенном радиусе от динамического обьекта то получат ГГ хит как когда в костер заходиш тока вокруг обьекта и штобы обьект бы все время в центре данной территории (тоесть обьект шевелится и территория шевельтся) :russian_ru:

И еще - между local anm = "zone_flame"

и

obj:position = anm:position

спавн обьекта находится? или что там? :russian_ru:

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

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

 

Gektor, хм....

В общем :

Делаешь имена объектов(бочки и электры) уникальными

например

бочка - my_ballon

электра - my_electra

получаешь сначала "бочку" по имени ,её координаты , получаешь электру и через пакет задаёшь ей позицию бочки.

Или поизвращаемся:

спавнишь только бочку

а на её позици проигрываешь любой нужный эффект и при приближении кого-либо даёшь ему хит , играешь звук и эффект.

obj:position = anm:position

А вот это, по моей памяти, ничего не даст :) , кроме как вылета(не факт, не помню).

Изменено пользователем меченый(стрелок)

можно воспользоваться известной со школьной доски функцией :) или методом объекта(а точней методом его позиции) distace_to или функцией between из _g.script

math.sqrt(((x2*x2)-(x1*x1))+((y2*y2)-(y1*y1))+((z2*z2)-(z1*z1)));--школьная функция :)

Если теорией то

Расстояние между двумя точками равняется корню квадратному из суммы разностей квадратов соответсвующих координат точек.Или как-то так :)

Изменено пользователем меченый(стрелок)

как вернуть дырки на НПС (следы от ранений)

вот пример:

_http://img.gameru.net/?v=270a5.jpg -- скрин

87728-stalker.gif

Насколько знаю, чтобы вернуть их, нужно производить правки в движке игры.:(

 

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

⠀

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

all.spawn ЗП.

Объясню подробнее: спавню ящик как физ.объект.

Начинаю новую игру - нет ящика.

Спавыню его, с теми же координатами как physic_destroyable_object. Есть ящик, разбиваю, есть куча патронов.

[32027]

;спавню как physic_object

;; cse_abstract properties

;section_name = physic_object

;name = val_box_16

;position = -1.156,1.520,21.196

;direction = -0.811,-0.356,-0.463

;; cse_alife_object properties

;game_vertex_id = 1883

;distance = 0

;level_vertex_id = 164199

;; cse_visual properties

;visual_name = dynamics\box\box_metall_01

;; cse_ph_skeleton properties

;skeleton_flags = 1

;; cse_alife_object_physic properties

;physic_type = 0x3

;mass = 10

;upd:num_items = 0

;****************************** теперь как physic_destroyable_object

section_name = physic_destroyable_object

name = val_box_16

position = -1.156,1.520,21.196

direction = -0.811,-0.356,-0.463

; cse_alife_object properties

game_vertex_id = 1883

distance = 0

level_vertex_id = 164199

object_flags = 0xffffff3a

custom_data = <<END

[logic]

active = nil

[drop_box]

items = ammo_5.45x39_fmj,10

END

; cse_visual properties

visual_name = dynamics\box\box_metall_01

; cse_ph_skeleton properties

skeleton_name =

; cse_alife_object_physic properties

physic_type = 0x3

mass = 5

 

 

Имеется ли лимит количества для спавнящихся объектов определенного типа?

Предыдущие секции спавнят физ.объекты нормально, а начиная с этой и далее - фигу.

Если же в следующих секциях спавнить объекты другого типа, спавняться нормально.

Хотелось бы понять природу данной "аллергии".

Спасибо.

ага. Поидее, на динам объекты прописаны валмарки. Надо порыться, попробовать прописать сталкерам и монстрам их. Вот только как?

FWR mod
Обитаю здесь и здесь

Так же известен, как: ~<Red>~

Где то на компе лежит куча стволов, и весьма хороших, фишка в том, буду ли я выкладывать их еще

:)

AK74,

спавню ящик как физ.объект.... нет ящика.

Ограничений на количество объектов быть не должно, кроме общего ограничения в 65535 объектов.

По сравнению со стандартной секцией физического объекта не вижу поля object_flags. Вообще, откуда взят шаблон для секции? Что за версия acdc?

 

 

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

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

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

 

2 malandrinus

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

Видимо +36 на улице, для моей "крыши" даром не прошли. :(

 

ЗЫ. acdc от АМК ЗП.

 

ЗЫ1. Извините мне мою назойливость, но можно поподробнее про 65535:

Это максимальное количество секций для всего all.spawn или для каждой локи?

Спасибо.

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

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

Я скопировал из Солянки(из meshes\monsters\kosti\scelet.ogf) модельку скелетика и спавню ее в ЗП, через all.spawn.

Проблема заключается в том, что костяшки, время от времени начинают летать, как-будто попали в Карусель, хотя аномалий там вообще нет.

А бывает что лежат спокойно, как и положено покойникам.

Как бы прекратить эти их не санкционированные полеты?

AK74

Ты спавнишь скелета как физ объект или как монстра? Если как монстра то у меня к тебе очень много вопросов

Freedom

AK74,

Просто верните старую, немного недоработанную модель из ОГСЕ. Кости будут падать единым целым.

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

Хотел спросить - как остановить постоянный вызов функции в бинд_сталкере?

Ну тоесть, имею функцию:

if db.actor:object("digger_pda") then
     db.actor:give_info_portion("find_instr")
      news_manager.send_tip(db.actor, "digger_tip", 10, "stalker", 10000)
       local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\military\digger_msg]])
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
   end

Это добро сидит у меня на апдейтере в бинд_сталкер. Когда я подбираю нужный мне предмет то получаю занятный результат в виде постоянно приходящих сообщений и постоянно проигрываемой звуковой дорожки. Подскажите пожалуйста - как быть?

кровоSTALKER

ИМХО, конечно, но может и сработает...

попробуй так:

local bFlag = false --/ флаг-триггер (это не в теле функции!!!) 
if bFlag then return end --/ на выход (сразу после функции!!!)
if db.actor:object("digger_pda") then
     db.actor:give_info_portion("find_instr")
  bFlag = true
      news_manager.send_tip(db.actor, "digger_tip", 10, "stalker", 10000)
       local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\military\digger_msg]])
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
   end

 

 

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

Вопросец созрел...

как сделать чтобы НПС реагировали на звуки исходящие от ГГ?

ну допустим есть предмет который при взятии в руки и активации начинает воспроизводить мелодию...

а НПСы(если ГГ в метре от этих(этого) НПС(ов) ) реагируют, ну допустим, говорят вот это мастер и т.п или отрицательно, т.е. рандомно реагируют на этот звук.

 

 

Изменено пользователем ФеНиКс
87728-stalker.gif

Нее, я решил проблему старым добрым методом - инфопоршнями). Вот функция, может кому пригодится:

    if db.actor:object("digger_pda") then
     db.actor:give_info_portion("find_instr") 
      if has_alife_info("find_instr") and not has_alife_info("script_info") then
       news_manager.send_tip(db.actor, "digger_tip", 0, "stalker", 10000)
        local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\military\digger_msg]])
        snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
         db.actor:give_info_portion("script_info")
        end 
   end

 

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

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

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

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

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

Войти

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

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

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