Скриптование - Страница 41 - Скрипты / конфиги / движок - 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/

И снова здравствуйте товарищи. :russian_ru: . Как в зове припяти увести нпц в оффлайн по определенному info_portion при любых условиях. Как торгаш в припяти из OGSM для теней (короче исчез на глазах у актора и на месте нпц проигрался партикл один раз). И еще вопрос: секция [spawner] в зове припяти вобще чтоли не пашет? :russian_ru:

И на последок можно ли в зове припяти спавнить space_restrictor через скрипт, и если можно то как?

Заранее спасибо.

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

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

 

Я хотел сделать такое:Если на Волке одет костюм stalker_outfit, то вывести сообщение:

function drhyrd()
local npc = level_object_by_sid(006)
   local outfit = npc:item_in_slot(6)
     if outfit and outfit:section() == "stalker_outfit" then 
          news_manager.send_tip(db.actor, "stalker_outfit На Волке", 0, "freedom", 10000)
        end
end

 

Функцию ставлю на апдей, запускаю игру, игра не вылетает, но и сообщение не выводится, хотя у Волка же как раз одет stalker_outfit.Не подскажете, в чем дело?

Всем привет. У меня похожий вопрос как у Stalk15, только мне нужно определить название самой модели, которую в данный момент юзает нпс.

Stalk15, у НПС костюмов и слотов как таковых нету...

 

P.S. Можно узнать визуал непися (название модели, которую сейчас использует НПС) и через него определить, что на него одето.

 

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

 

Stalk15, через нет-пакет.

 

По-моему get_current_outfit() вообще не работает и как я говорил у неписей вообще костюмов как таковых нет...

 

P.S. А по нет-пакетам достаточно инф-ии на форуме, также можно посмотреть скрипты того же АМК или IMM (интелликтуал марадер мод или как там его, он в Мастерской есть).

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

Министр

А как узнать визуал непися?

Есть метод get_current_outfit(), но я не знаю, как его правильно применить ...

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

Дайте, пожалуйста, функцию из bind_monster из АМК (в нормальном виде, не в одну строчку), которая биндит партиклы к костям. Просто я в скриптах почти ничего не соображаю...

yjNrc.gif

dSQwF.png

oZ8SF.png

Скажите, правильно ли я проверяю группировку любого НПС?:

local npc_stalker = level.object_by_id(id)
if npc_stalker:character_community() == "stalker" then

А то если я добавлю эту проверку в свой скрипт, то действие перестает срабатывать ...Подскажите, как правильно нужно?

Подскажите, кто знает:

имеются некие координаты (допустим - 1,2,3), как с помощью скрипта определить level_vertex или game_vertex по ним.

 

 

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

h0N0r, stalkerin.gameru.net

Ищи LVID_GVID script

 

h0N0r,

не понял тебя сначала.

Изменено пользователем lexer125
h0N0r, stalkerin.gameru.net

Ищи LVID_GVID script

 

Этот скрипт определяет позицию гг, а нужно по известным координатам на уровне определить их level_vertex или game_vertex (без участия гг, спавн или телепорт на эти координаты).

 

Скажите, правильно ли я проверяю группировку любого НПС?:

Если, в целом, эта функция примерно так выглядит, то да:

for id=1,65535 do
local npc_stalker=level.object_by_id(id)
    if npc_stalker then
        if IsStalker(npc_stalker) and npc_stalker:character_community() == "stalker" then
        ...
        end
    end
end

 

 

Stalk15,

Конечно будет напрягать.

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

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

Knight

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

А как узнать визуал непися?

Есть метод get_current_outfit(), но я не знаю, как его правильно применить ...

На базе АМК выглядит примерно так

 

local se_obj = alife():object(id) -- , где id айдишник непися
local t = amk.read_stalker_params(se_obj)
if t ~= nil then
    local vis = t.visual
    vis = amk.str_explode("\\",vis)
    vis = vis[3] -- теперь vis есть визуал объекта
end

 

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

Stalk15, а зачем на апдейт то? че хотим сделать то?

Untitled-1.png

DimOriN, чего так сложно ?

local npc = level.object_by_id(...)
local visual_outfit = npc:get_visual_name()

Вроде так, хотя не сильно уверен именно это-ли выкинет....

exp​ression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no exp​ression>

Arguments : LUA error: ...mod\sdk\games\gamedata\scripts\dialog_manager.script:393: attempt to compare number with nil

 

Вот такая вот ошибка

 

При редактировании функции выдачи предмета ГГ Волком. Функция работает, но все сейвы убивает

забыто и уничтожено.

DimOriN

Спасибо, надо попробовать...

 

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

Я изпользую строку

for k, v in pairs (db.storage) do

в функции.Функция стоит на апдейте.Скажите, эта строка напрягает игру, или все "нейтрально"?

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

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

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

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

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

Войти

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

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

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