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

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

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

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

local bolt=db.actor:object("bolt")
if bolt then db.actor:drop_item_and_teleport(bolt,vector():set(0,0,0)) end

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

Чтобы этого избежать, прежде чем болт выкидывать, нужно другой болт заспавнить в инвентарь.

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

Может кто-нибудь выложить оригинальный аллспавн ТЧ 1.0004? То я свой кажется "Засрал"..

 

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

Как заспавнить вёртолет? Причём не в начале игры, а после диалога

Попробуй через скрипт)

 

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

вылетает с логом

[error]Expression : motion_ID.valid()

[error]Function : CKinematicsAnimated::ID_Cycle

[error]File : E:\stalker\patch_1_0004\xr_3da\SkeletonAnimated.cpp

[error]Line : 136

[error]Description : ! MODEL: can't find cycle:

[error]Arguments : $editor

 

Создаю глобальный мод с новыми локациямЭ

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

[error]Expression : motion_ID.valid()

[error]Function : CKinematicsAnimated::ID_Cycle

[error]File : E:\stalker\patch_1_0004\xr_3da\SkeletonAnimated.cpp

[error]Line : 136

[error]Description : ! MODEL: can't find cycle:

[error]Arguments : $editor

А ты как спавнил? Напиши функцию. И у тебя есть аи вертолета?

 

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

strelok200, При спавне вертолёта через скрипт, обязательно требуется перепаковка net_packet, с переназначением параметров:

 

skeleton_name     = idle
startup_animation = idle

 

Опаа-а!!! Ливер вылез!

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

Заспавни вертолёт через all.spawn, и напиши ему в логике чтобы до определённого момента он сидел за картой и не шумел (engine_sound = false)

Так в GSC делали, иначе придётся познать чудесный мир lua-скриптов.

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Мне кажется лучше установить АИ вертолётов и не парится, как по мне лучший выбор.

И ещё, ребята, дайте пожалуйста ссылку(и) на учебник(и) по LUA, только что бы нормальные были, так что бы от самого начала и по возможности до конца, а то надоело собирать по кускам.

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

strelok200, Юзай net_utils.script из Симбиона (наиболее полная версия менеджера net_packet объектов игры)

Перепаковка, в данном случае будет занимать минимальное количество строк:

local sobj = alife():create("helicopter", ...
if sobj then
    local tbl = net_utils.Get_Data_Helicopter(sobj)  --//считываем данные net_packet объекта
    tbl.skeleton_name     = "idle"                        --//переопределяем требуемые параметры
    tbl.startup_animation = "idle"
    net_utils.Set_Data_Helicopter(tbl, sobj)            --//перезаписываем net_packet объекта
end

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

Опаа-а!!! Ливер вылез!

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

Ulman

http://www.lua.ru/doc/5.6.html

Функции сталкера смотри в соответствующей теме на этом форуме, там их очень хорошо разобрали.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Господа у меня вот такой вопрос.

Вопрос скорее по логике задания.

Я собираюсь отправить ГГ в забег по телепортам. Телепорты помимо того еще и перебрасывают ГГ на другии локации.

Все места необетованные в обычной игре ГГ туда некогда не пройдет.

На каждой локации два этапа в последнем телепорте(через рестриктор) он отправляется на следующую локу и т.д.

Вот возник вопрос как заселить эти места.

Идея такая в конце каждого этапа(на локе из двух подэтапов) есть спейс_рестриктор который и активирует переход на другую локацию.

Хочу его использовать и для заселения локации на которую отправится гг и подчищистки (удаления) все го того что было наспавненно на первой локе. Если ГГ пробежит в телепорт и оставит кого нибуть в живых чтоб потом небыло вопросов.

Все сделано скриптами.

 

Как лучше реализовать поэтапное заселение чтоб перед телепортацией заселить ту локу куда отправимся и удалить то что осталось на первом этапе?

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

Самый простой вариант, т.к заселение скриптами, просто сделай свои секции персонажей (тока в ltx, профили менять не надо)

и к началу\концу каждой секции припиши какой нибудь "ключь", например sim_default_stalker_0_portal_npc

 

А дальше в момент телепортации просто делай перебор по iD\ или по db.storage и ищи через string.finde() те секции персонажей, у которых есть в названии _portal_npc и удаляй их :)

 

Ну и ещё в АМК-скрипте есть возможность сохранять в сейв таблицы. Можешь взять от туда функцию и записывать ID каждого заспавненного тобой НПС, а потом просто перебор этой таблицы и удаление по ID

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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

Юзал поиск, но ничего не нашёл...Подскажите как заспавнить ранненого НПС, а точнее какую ему логику писать? Я вот написал но она не работает, нпс просто стоит под гулагом, но ранненого никак не изображает...

[smart_terrains]

none = true

[logic] active = walker

[walker]

path_walk = vano_help_walk

path_look = vano_help_look

wounded = wounded

meet = no_meet

on_info = {+agr_wounded_stalker_heal} walker@2

[walker@2]

path_walk = vano_way

[wounded]

hp_state = 30|help_me@help|29|wounded_heavy@help_heavy

hp_state_see = 30|wounded@help_see|29|wounded_heavy@help_heavy

psy_state = 50|{=best_pistol}psy_armed,psy_pain@wounded_psy|20| {=best_pistol}psy_shoot,psy_pain@{=best_pistol}wounded_psy_shoot,wounded_psy

hp_victim = 30|nil|10|nil

hp_cover = 30|true|29|false

hp_fight = 30|true|29|false

syndata = wounded@help

help_dialog = vano_help_dialog

 

Изменено пользователем Виталкер
ВИТ@/\|{ЕР
Ссылка на комментарий
...какую ему логику писать?

Если делаешь на ЗП, то попробуй воспользоваться моим методом:

 

[logic] 
active = remark

[remark] 
wounded = wounded
combat_ignore_cond = true
combat_ignore_keep_when_attacked = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
meet = no_meet

[wounded]
hp_state = 101|wounded_heavy@nil
hp_state_see = 101|wounded_heavy@nil
hp_victim = 101|actor
hp_cover = 101|false
hp_fight = 101|false
autoheal = false
not_for_help = false

P.S. Вот, самое основное. Дальше сам допиливай...

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

Хотел спросить, вот есть три вида спавна, all.spawn,скрипт и level.spawn. Короче я через алл.спавн заспавнил разбитую машину, но она "дерётся" - тоесть когда гг к ней прикосается она наносит ему удар и тот умирает...А если в неё стрильнуть, а потом подойти, то всё нормально...Так вот скажите если я через level.spawn заспавню туже машину она будет стоять как "вкопаная"?

Изменено пользователем Виталкер
ВИТ@/\|{ЕР
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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