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

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

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

TREWKO,

у тебя obj - это строка. distance_to надо вызывать для z

 

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

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

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

 

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

Не, всё равно: divaresix.script:55: attempt to call method 'distance_to' (a nil value).

Сделал так:

function test()
local z = level.object_by_id("scaner_anm")
if z then
    if z:distance_to(db.actor) == 10 then
    level.add_pp_effector ("proba.ppe", 1974, false)
end
end
end

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

TREWKO,

вот ведь меня переклинило-то! distance_to вообще нет у game_object, а есть у vector. Правильно так:

z:position():distance_to(db.actor:position())

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

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

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

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

 

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

Так, ну теперь вылета нет, но при выбрасывании объекта на землю и при отбегании от него дальше 5 метров(пробовал и дальше 1.5 км) ноль реакции, хотя должно быть сообщение.

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

TREWKO,

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

 

 

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

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

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

 

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

А, всем спасибо, понял и усёк.

А что значит vector ?

Это что то вроде, от точки до точки стрелочкой, начерченной мысленно?

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

Renson, вот:

function delete_npc()
    for a=10,65635,1 do
    local obj=alife():object(a)
        if obj and string.find(obj:name(),"Название нпс") then
        alife():release(obj,true)
        end
    end
end

 

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

malandrinus, что значит отладочные выводы?

log(...)? Или printf("Текст")?

Изменено пользователем TREWKO
Ссылка на комментарий
А что значит vector ?

Класс такой есть vector. Объект такого класса возвращается методом :position(). Математически это три числа, представляющие проекции некоего направленного отрезка.

 

что значит отладочные выводы?

log(...)? Или printf("Текст")?

log не работает. printf по идее можно перенаправить в файловый вывод. Под ТЧ наиболее удобным способом является вывод в консоль игры. Можно смотреть результат прямо в игре и остаётся лог на диске.

get_console():execute("текст для вывода")

Я это подробно излагал здесь

 

Математически вектор - это обьект пространства,который в часности в координатной форме задается набором обьектов,природа и (или) колличество которых зависит от природы и (или) размерности пространства а суть которых в том,что они являются координатами в одном из базисов этого пространства.

 

нет, ну можно же и так: вектор - это тензор первого ранга. Кому от этого стало бы легче?

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

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

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

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

 

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

malandrinus, Математически вектор - это обьект пространства,который в часности в координатной форме задается набором обьектов,природа и (или) колличество которых зависит от природы и (или) размерности пространства а суть которых в том,что они являются координатами в одном из базисов этого пространства.

==

А ведь можно ;)

А можно еще как матрицу 1 х n рассматривать - это проще,чем тензор :)

 

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

 

TREWKO,Конкретно в игре это означает,если говорить примитивно,координаты.А именно обьект типа table и содержания (x,y,z) - то есть 3 координат,отсчитанных,относительно какого-то нуля.

Кстати интересно было бы знать,по какому принципу расположены нули на локациях.

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

Товарищи, объясните пожалуйста принцип работы таймеров АМК.

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

 

А может быть так, что если я буду называть свои скрипты(файл.script) заглавными буквами, например: XySPiV, то в связки они не будут функционировать?

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

я написал диалог и как сделать, что бы после него непись переходил в боевое состояние и нападал на меня?!

 

я нигде не нашел толкового обьяснения по классам и функциям....(((((

 

вот так !?

 

function <action>killactor</action>

 

или как?!

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

А что такое подпись???

Это место, где модератор пишет "Не задавай глупые вопросы!" :P

Кто посмел писать в моей личной царской подписи,кроме меня ? *crazy*

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

zubr14

пропиши в диалоге

<action>killactor</action>

и,если тебе надо на ЗП,в xr_effects.script пропиши.

function killactor (actor, npc)
    npc:set_relation (game_object.enemy, actor)
end

не проверял,но должно работать.

 

или как?!

я разве не ясно написал? :huh:

<action>killactor</action>

Изменено пользователем Влад
Не бойтесь совершенства. Вам его не достичь.
C. Дали
Ссылка на комментарий

TREWKO,

function delete_npc()

for a=10,65635,1 do

local obj=alife():object(a)

if obj and string.find(obj:name(),"Название нпс") then

alife():release(obj,true)

end

end

end

 

Зачем перебирать кучу неписей и тратить память? :ny_ph34r_1:

Вот так проще

function dell_Вася()

local se_obj = alife():object("Вася")

if se_obj then

alife():release(se_obj, true)

end

end

 

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

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

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

Народ! Спасайте! Я сделал торгоша, у него есть своя кустом-дата, там указан файл торговли и логика(стоять на месте), создаётся через скрипт. А при сохранении\загрузки кустом дата не присваевается нпс(тоесть он ничего непродаёт и валит куда захочет)!

 

есть возможность прописать его в файлах character_desc_***.xml?

 

или же мне всё-таки компилить all.spawn с настройками?

 

ХЕЕЕЛП!!!! :ny_blink:

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

Запнулся на элементарнейшем скрипте :blink: :

function have_tema_eda2()

return sak.have_item_namber("bread",20) ~= false or return sak.have_item_namber("konserva",10) ~= false then

end

Что не так то?

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

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

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

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

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

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

Войти

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

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

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