Пользователей: 0
Гостей: 408
Всего: 408

» Подробно
» Сегодня


Привет, Гость!

Ник


Пароль


Запомнить?




» Добавить в избранное

» Сделать стартовой

Главная
Форум
Обзор игры
Мир Зоны
Файлы
Галерея
Разное






Форумы > Архив > Склад > Вопросы и ответы (старое, по 21.10.13)

Страница 55 из 64Первая«52535455565758 »Последняя
Быстрый переход:


 

Автор Сообщение
VOva-VIP
[1] Странник
Онлайн статус=0  Профиль    




Посты: 325
Откуда: Миасс
Занятие: Модострой
Возраст: 26

30-07-2013 12:59 GMT3 часа #1671859   Split
Бывaлый, как Алекс_Гордон сказал, так проще сделать. Открываешь gamedata\config\gameplay\character_desc_general.xml, там ищешь секцию ГГ, а в ней: <icon>xxxxxxxxx</icon>, и вместо xxxxxxxxx вставляешь, что тебе нужно. Иконка долговца в экзоскелете: ui_npc_u_stalker_do_exoskeleton
Другие иконки можешь найти здесь: gamedata\config\ui\ui_npc_unique.xml

Злой Ящер, обратись в другую тему, здесь отвечают на вопросы по модостроению

добавлено спустя 2 минут

Возможно ли вернуть вырезанные из игры анимации передвижения? Через SDK просматривал все анимации, в стоячих и сидячих состояниях уже парочку вернул, а вот с ходьбой всё никак понять не могу. Как мне, например, сделать, чтобы сталкер шёл, шатаясь из стороны в сторону?

Сообщение было успешно отредактировано VOva-VIP (30-07-2013 12:59 GMT3 часа, назад)

Polkovnik Petrenko
[1] Странник
Онлайн статус=0  Профиль    




Посты: 239
Откуда: Королёв
Занятие: Охота,пейнтбол
Возраст:

30-07-2013 15:14 GMT3 часа #1671868   Split
Доброго времени суток.Как бороться с вылетом в моде LWTOD(вылет постоянен при быстром беге).Вот лог вылета.
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description : <no expression>
Arguments : LUA error: ...er shadow of chernobyl ru\gamedata\scripts\_g.script:720: attempt to concatenate local 'str2' (a nil value)


Сообщение было успешно отредактировано Polkovnik Petrenko (30-07-2013 15:14 GMT3 часа, назад)

Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
31-07-2013 10:25 GMT3 часа #1671942   Split
VOva-VIP
Судя по тому какие вопросы тут задают - тебе врятли кто ответит. А вообще восстановление анимаций дело запутанное, и статей нормальных по ним тоже нет. Глянь в моде Восстановление старого сюжета, там они 100% должны быть восстановленны.

А меня мучает такая фишка:
В level_task.script есть автоматическая функция коллбеков на взятие тех или иных предметов. Вот она:

Код:
local level_scripts = {
      darkscape_task
}

function proceed()
if db.actor == nil then
return
end
for k, v in pairs( level_scripts ) do
v.proceed()
end


Насколько я понял она распространяется в те файлы, которые прописаны в таблице local level_scripts. В свой darkscape.task я вставляю такой код:

Код:
function proceed()
    local actor = db.actor
       
if actor:object ("box_toolkit_1") then
   db.actor:give_info_portion("ds_box_toolkit_1_get") 
end

if actor:object ("box_toolkit_2") then
   db.actor:give_info_portion("ds_box_toolkit_2_get")
end

if actor:object ("box_toolkit_3") then
   db.actor:give_info_portion("ds_box_toolkit_3_get")
end

end


При взятии этих предметов инфорпоршни просто не выдаются. Всё уже перепроверил - ничего понять не могу.


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

31-07-2013 12:31 GMT3 часа #1671947   Split
Fantom2323, а знаешь почему "мучает"? Потому, что это не автоматическая функция и уж тем более не коллбэк. Это просто функция, которая вызывается из трёх мест: коллбэк на получение инфопорции, взятие и потерю предмета, не более. Но даже при этом твоя конструкция вполне рабочая, только работать будет с задержкой (вероятно). Ты проверяешь не поднятие данных предметов, а уже их наличие в инвентаре. Попробуй поднять нужный предмет, а затем взять какой-нибудь другой, мне почему-то кажется, что при поднятии второго предмета и будет выдан инфопоршень.
А вообще, почему не воспользоваться действительно коллбэками в bind_stalker.script?


dimak
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 1494
Откуда: Архангельск
Занятие: ТЧ - МОД "Возвращение Шрама"
Возраст: 51

31-07-2013 13:45 GMT3 часа #1671950   Split
Цитата
Как мне, например, сделать, чтобы сталкер шёл, шатаясь из стороны в сторону?


Это делается в моделях. Сам не делал, но скриптово не создать. По примеру, как сделать из любого перса зомби сталкера, либо пьяного сталкера, чтобы шёл и качался из стороны в сторону.


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
31-07-2013 14:28 GMT3 часа #1671954   Split
ColR_iT
Вот смотри, я всегда когда что нибудь делаю - сразу тестирую, никогда не леплю того что потом может не работать. Действительно, моя конструкция рабочая, но не срабатывает. Всё эти 3 предмета я забираю из ящика к себе в инвентарь, после того как возьму квест, но не один инфопоршень не выдаётся. Есть конечно и другие способы (давно бы мог их заюзать) но мне этот кажется более универсальным, тем более что раз не работает - значит "особняк", а раз "особняк" - надо разобраться.

добавлено спустя 6 минут

И ещё, пока ты здесь, подскажи мне пожалуйста.

Сделал такой диалог, нужно чтобы он исчезал после того как ГГ отдаст все инструменты технику. На всякий случай вот скелет диалога:

Код:
<dialog id="searcher_technik_out_toolkit">
     <precondition>darkscape_task.ds_out_all_box_toolkit</precondition>
      <phrase_list>
        <phrase id="0">
        <text>Я насчёт инструментов.</text>
        <next>1</next>
    </phrase>
        <phrase id="1">
        <text>Что-то нашел? Или спросить что хочешь?</text>
        <next>2</next>
        <next>3</next>
        <next>4</next>
        <next>5</next>
        <next>6</next>
    </phrase>
    <phrase id="2">
        <precondition>darkscape_task.ds_have_box_toolkit_1</precondition>
        <text>Я нашел инструменты для грубой работы.</text>
        <action>darkscape_task.ds_out_box_toolkit_1</action>   
        <give_info>ds_box_toolkit_1_out</give_info>
        <next>21</next>
    </phrase>
    <phrase id="3">
        <precondition>darkscape_task.ds_have_box_toolkit_2</precondition>
        <text>Я нашел инструменты для тонкой работы.</text>
        <action>darkscape_task.ds_out_box_toolkit_2</action>   
        <give_info>ds_box_toolkit_2_out</give_info>
        <next>31</next>
    </phrase>
    <phrase id="4">
        <precondition>darkscape_task.ds_have_box_toolkit_3</precondition>
        <text>Я нашел инструменты для настройки.</text>
        <action>darkscape_task.ds_out_box_toolkit_3</action>     
        <give_info>ds_box_toolkit_3_out</give_info>
        <next>41</next>
    </phrase>
    <phrase id="5">
        <dont_has_info>ds_box_toolkit_plases</dont_has_info>
        <text>Где мне стоит их поискать?</text>
        <next>51</next>
    </phrase>
    <phrase id="6">
        <text>Да так, ничего важного.</text>
  <action>dialogs.break_dialog</action>
    </phrase>
    <phrase id="21">
        <text>Ну вот, хоть что-то уже есть, всё лучше чем голыми руками работать. Держи аванс, заслужил.</text>
        <action>darkscape_task.ds_box_toolkit_1_reward</action>
    </phrase>
    <phrase id="31">
        <text>Отличный набор, как мне его не хватало... Эх, что это я, вот держи за работу.</text>
        <action>darkscape_task.ds_box_toolkit_2_reward</action>
    </phrase>
    <phrase id="41">
        <text>С такими инструментами я не то что стволы да броню чинить буду - я с ними ракету в небо запущу, хе-хе. Спасибо огромное, это тебе за услугу.</text>
        <action>darkscape_task.ds_box_toolkit_3_reward</action>
    </phrase>
    <phrase id="51">
        <text>Здесь в окрестностях есть заправка, бензина там конечно давно уже нет, а вот инструменты думаю найдутся, только осторожнее - там бандиты себе лагерь разбили.</text>     
        <give_info>ds_box_toolkit_plases</give_info>
    </phrase>
       </phrase_list>
    </dialog>


А вот сама проверочка, (которая в самом вверху диалога)

Код:
function ds_out_all_box_toolkit()
        if not has_alife_info("ds_box_toolkit_1_out") and not has_alife_info("ds_box_toolkit_2_out") and not has_alife_info("ds_box_toolkit_3_out") then     
           return true
      else
           return false
        end
end


Мне нужно чтобы при получении всех 3 поршней - диалог исчезал, а он исчезает после получения 1, любого поршня из списка, что поправить нужно?

Сообщение было успешно отредактировано Fantom2323 (31-07-2013 14:28 GMT3 часа, назад)

ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

31-07-2013 15:52 GMT3 часа #1671958   Split
Fantom2323, а, теперь ясно почему не работает - функция proceed вызывается только из трех колбеков и колбек на взятие предмета из ящика к ним не относится. Подними предмет с земли и получишь инфопорцию (возможно после поднятия следующего предмета, хотя вряд ли).
Цитата
мне этот кажется более универсальным
Ключевое слово здесь - "кажется". Это не так - универсальностью здесь и не пахнет, а вот дополнительные расходы на вызов функции это запросто.

По диалогу...
Попробуй такую функцию:
Код:
function ds_out_all_box_toolkit ()
    local actor = db.actor
    return actor:dont_has_info("ds_box_toolkit_1_out") and actor:dont_has_info("ds_box_toolkit_2_out") and actor:dont_has_info("ds_box_toolkit_3_out")
end
Если не сработает, значит одна из инфопорций уже есть у ГГ.


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
31-07-2013 19:38 GMT3 часа #1671975   Split
ColR_iT
И ещё такой вопрос. Мне надо создать адекватную логику приветствия и прощания НПС с ГГ. Что я только не делал, как только не изголялся, но ничего не получается, НПС здоровается и прощается с ГГ либо криво, либо никак. Вот например:

Код:
[walker@idle]
path_walk = ds_searcher_barmen_walk
path_look = ds_searcher_barmen_look
meet = meet@hello
on_actor_dist_ge_nvis = 3 | {-ds_barmen_bye_played} remark@bye %+ds_barmen_bye_played%
on_actor_dist_ge_nvis2 = 6    | %-ds_barmen_bye_played% walker@idle

[meet@hello]
meet_state = 2|ward@ds_searcher_barmen_hello|
victim = 2|actor

[remark@bye]
anim = ward
snd = ds_searcher_barmen_bye
on_signal = sound_end | walker@idle


То ли не прощается, то ли делает это при встрече, не помню уже. Может быть посоветуешь как правильно логику перестроить?


ViRTuS19
[1] Странник
Онлайн статус=0  Профиль    




Посты: 11
Откуда:
Занятие: Самообразование в различных областях.
Возраст:

31-07-2013 21:11 GMT3 часа #1671983   Split
Всем Добрых суток.
Есть в интернете отдельный архив с Лиманском? Пак качать не могу, интернет слабый.


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

01-08-2013 11:23 GMT3 часа #1672044   Split
VOva-VIP ,
1. В state_lib.script вставляешь:
Код:
drunk_walk_0 = { weapon = "none",
movement = move.walk,
mental = anim.free,
bodystate = move.standing,
animstate = "stand",
animation = "drunk_walk_0"
},

2. В state_mgr_animation_list.script:
Код:
drunk_walk_0 = { prop = { maxidle = 1,
sumidle = 1,
rnd = 100 },
into = nil,
out = nil,
idle = nil,
rnd = { [0] = { "drunk_walk_0" }}},

Всё! Это пьяный сталкер идёт шатаясь, руки в карманах. В распакованном олл.спавне, в way_... .ltx прописывай эту анимацию (drunk_walk_0) своему НПС и смотри. Есть ещё анимация очень пьяного. Вот:
--идёт сильно шатаясь:
Код:
drunk = { weapon = "none",
movement = move.walk,
mental = anim.free,
bodystate = move.standing,
animstate = "stand",
animation = "drunk"
},


Код:
drunk = { prop = { maxidle = 1,
sumidle = 1,
rnd = 100 },
into = nil,
out = nil,
idle = nil,
rnd = { [0] = { "drunk" }}},

Не все и не во всех вариантах анимации работают корректно. Например: "drunk" у меня отлично отыгрывает бандит, а долговец идёт задом наперёд почему-то...


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

01-08-2013 12:53 GMT3 часа #1672047   Split
Arist, в таком случае, Fantom2323 "поднимал" другие предметы, либо не правильно проверял наличие инфопорции.

Fagot_, если не секрет, а от куда информация о параметрах для подключения анимаций в файлах state_lib.script и state_mgr_animation_list.script?

Fantom2323, что касается приветствия... Значение параметров on_actor_dist_* ни коем образом не определяет подходит ли ГГ или отходит, они лишь проверяют расстояние, поэтому вполне логично, что НПС прощается, когда ты подходишь к нему. Поэтому у тебя два варианта:
1. В активной секции, где НПС должен тебя встречать, проверяешь расстояние на котором ПНС будет приветствовать ГГ; включаешь схему remark (где будет отыгрываться анимация и звук); после этого переводишь НПС на другую похожую схему, где опять проверяешь расстояние на котором НПС будет прощаться, поскольку в данный момент ГГ будет точно ближе указанного расстояния, то проверка будет определять именно отдаление актора.
В логике это будет выглядеть так:
Будет здорово, если ты не будешь открывать спойлер а попытаешься по алгоритму, что я дал, написать логику самостоятельно
Код:
[walker@waiting_coming_actor] ; ждём прихода игрока
on_actor_dist_le = 5 | remark@welcome_actor ; проверяем подошёл ли ГГ

[remark@welcome_actor] ; приветствуем игрока
; и по окончании звука переходим на схему, где будем ждать ухода игрока
on_signal = sound_end | walker@waiting_care_actor

[walker@waiting_care_actor] ; ждём ухода игрока
on_actor_dist_ge = 7 | remark@goodbye_actor ; проверяем отошёл ли ГГ

[remark@goodbye_actor] ; прощаемся с игроком
; и переходим на схему ожидания ГГ, после проигрывания звука
on_signal = sound_end | walker@waiting_coming_actor

Я упустил обязательные параметры схем, чтобы донести суть. Надеюсь мысль ясна.

2. Дописывать функцию, которая будет определять отходит ли ГГ или подходит, исходя из изменения расстояния между ГГ и НПС.


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

01-08-2013 19:49 GMT3 часа #1672059   Split
ColR_iT , не секрет. Нашёл в инете это:
ВЫРЕЗАННЫЕ АНИМАЦИИ (ТЧ):

chistit ruje_1 Чистка ружья сидя на чем либо.
dmg_norm_idle_0 Стоит и держится одной рукой за бок и тяжело дышит (Раненый)
dmg_norm_idle_1 Тоже самое что и dmg_norm_idle_0
dmg_norm_run_back_0 Раненый НПС отходит назад.
dmg_norm_run_fwd_0 Раненый НПС бежит вперёд.
dmg_norm_run_fwd_1 Раненый НПС хромая идёт вперёд.
doc_agr_0
drink_idle_10 Пьяный, держится за что-либо.
drink_idle_11 Пьяный, держится за что-либо.
drink_idle_2_1 Пьяный.
drink_idle_2_2 Тоже что и drink_idle_2_1, только НПС переменается с руки на руку...
drink_idle_3_0 Из положения drink_idle_2_2 ложит руку на руку,потом ложит голову на руки,засыпает.
drink_idle_3_1 -- drink_idle_3_4
drink_idle_5_0 -- drink_idle_5_1 Очень пьяный. (Присутствует скриншот).
drink_idle_7 -- drink_idle_5_1 НПС в пьяном состоянии крепко спит. (Присутствует скриншот).
drunk НПС идёт, шатаясь в разные стороны
drunk_idle_0 НПС стоит на месте и шатается (руки в карманах)
drunk_walk_0 НПС идет пытаясь показаться не пьяным (руки в карманах)
free_facer_0 НПС с левой руки бьёт кулаком.
idle_to_wounded_0 -- idle_to_wounded_3 Падения НПСов
ispug_0 -- ispug_3 НПС пугаеться.
k stene НПС прислонился к стене...(как в ЗП когда не отдаешь артефакт Сталкеру)
kurit sidya_ 0 Курит сидя.
monolith_0 -- monolith_5 Какой-то странный подвешенный НПС получается,то к верх ногами
то не пойми как...
myach_1 -- myach_2 Бьёт ногой по мячу.
prison_0 -- prison_1 НПС склонившись над лежащим смотрит на него, потом махает рукой над ним
и принимает стоячее положение...
sidya_boltaet_0 Сидит и болтает.
smeh Смеётся.
spit_4 Пытается заснуть, сидит качается чешет руку.
stoya_kurit_2_0 Курит стоя.
stoya_nos Ковыряеться в носу.
stoya_sopli Чихает.
stul Сидит и чистит ствол.
udar_0 Бьёт кулаком с размаху.
wedro Ногой пинает что-то (якобы ведро)
chasovoy_0 С оружием в руках чешит спину,нагинается вперёд и назад(делает зарядку).
chasovoy_1 Чешит задницу
chasovoy_2 Оглядываеться на горизонт.
chasovoy_3 Зевает.
chasovoy_4 Чешит голову.
chest_0, chest_0_idle_0 Переходит с идловой аниации, стоит смирно.
chest_0_idle_1 Стоит смирно, перехода с идловой анимки нету.
chest_0_idle_2 Отдаёт честь.
chest_0_idle_3 Получил команду "Вольно".
knopka_0 -- knopka_2 Нажимает на кнопку
metering_0_draw_0 -- 1 Цикл анимации, достаёт детектор с кармана.
metering_0_hide_0 -- 1 Цикл анимации, прячет детектор в карман.
metering_0_idle_0 Стоит с детектором в руках, никакой паники.
metering_0_idle_11 Детектор начинает лагать.
metering_0_idle_12 Детектор начинает лагать.
metering_0_idle_6 ПАНИКА!!!Детектор запиликал, везде аномалии, сталкер отходит назад,
прикрывает себя рукой (Судя по всему - выброс)...

Открыл файлы state_lib , state_mgr_animation_list и, по аналогии с уже существующими секциями, сделал новые. А откуда информация насчёт этих двух файлов, точно не помню, но по-моему на "сталкерине" вычитал. Не все анимации опробовал. Кроме нескольких "пьяных", ещё работает "курит сидя"(только без сигареты), "чистит ружьё". "Курит стоя" не провильно работает - нпс, на самом деле, курит сидя.

Сообщение было успешно отредактировано Fagot_ (01-08-2013 19:49 GMT3 часа, назад)

Вертолет
[1] Странник
Онлайн статус=0  Профиль    




Посты: 14
Откуда:
Занятие:
Возраст:

01-08-2013 14:45 GMT3 часа #1672060   Split
Скажите из-за чего происходят вылеты без лога и как с ними бороться?


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

01-08-2013 15:09 GMT3 часа #1672062   Split
Fagot_, всё ясно - ключевое выражение "по аналогии". Я просто подумал, что ты где-то нашёл определение параметров в этих файлах и возможные их значения.


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

01-08-2013 19:53 GMT3 часа #1672074   Split
--------------------------------------------
ColR_iT, нет. К сожалению, в направлении моддинга область моих познаний ограничена, поэтому "по аналогии"...

Всех приветствую. Делал квест, ничего не предвещало беды, но вдруг случилось страшное:
Код:
Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\task_manager.script:471: attempt to index local 'sel_task' (a nil value)


Это произошло при переходе на локацию, где я установил рестриктор. Вот он:
Код:
function restrictor_x18_diplomat()
--local se_obj = alife():create("space_restrictor",vector():set(8.794,-8.176,48.947),3800,1162) --х18
local se_obj = alife():create("space_restrictor",vector():set(-74.271,0.447,-424.868),87140,826)-- у фермы
local custom = "[logic]\n"..
"active = sr_idle\n"..
"[sr_idle]\n"..
"on_actor_inside = nil %+gavrosh_umer +proval_zadaniya%"
rewrite_restrictor(se_obj, custom, 6.0)
end

Переношу рестриктор на ту локацию, где нахожусь (для проверки), вхожу в него - ничего не происходит, инфопоршни не выдаются. Если после спавна рестриктора сохраниться, то при загрузке этого сохранения вылет с тем же логом. В task_manager строка 471 выглядит так:

--' Проверяем, что жив выдавший квест.
local parent = alife():story_object(story_by_parent[sel_task.parent])
if parent == nil or (parent.alive ~= nil and not parent:alive()) then
self.task_info[self.active_task_by_type[p1]].status = "failed"
self.task_info[self.active_task_by_type[p1]].last_task_time = game.get_game_time()
return true
end

---------------------------------------
Квест выдаёт мой новый персонаж...

Кто подскажет - почему так не красиво происходит?


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

01-08-2013 19:55 GMT3 часа #1672075   Split
Fagot_, мне почему-то думается, что ты знаешь что именно говорит тебе вылет (не может найти ключ sel_task в таблице story_by_parent), но ты не знаешь почему, так?
Если да, то каким образом мы должны догадываться как у тебя формируется таковая таблица и как в этой таблице оказывается данный ключ?


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

01-08-2013 20:10 GMT3 часа #1672077   Split
ColR_iT , благодарю за подсказку! Добавил в таблицу story_by_parent своего квестодателя, но теперь другой вылет:
Код:
Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\bind_stalker.script:431: attempt to concatenate field '?' (a nil value)


Строка 431 в bind_stalker:
get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])

Ну, тут я совсем непонимаю...


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
01-08-2013 20:16 GMT3 часа #1672078   Split
ColR_iT
Приветствую! За предложенную логику - огромное спасибо, работает как надо. Если бы ты знал сколько нервов и времени я убил на поиски нужной логики... А если не трудно ещё подсобишь?

1.Мне нужна функция-таймер, для диалога, чтобы по истечении времени выдался инфопоршень.

2.И такой ещё вопрос, не знаешь почему иногда некоторые НПС "зависают" не отыгрывая свою логику. Просто тупо стоят на месте, без анимации, пялятся в одну точку, игнорируя активную схему и переходы на другие схемы. При этом даже оффлайн-онлайн им не помогает. Вот логика этого НПС:

Код:
[logic]
active = walker@idle
trade = misc\trade_searcher_trader.ltx
combat_ignore = combat_ignore

[walker@idle]
path_walk = ds_searcher_trader_walk
path_look = ds_searcher_trader_look
combat_ignore_cond = always
on_actor_dist_le_nvis = 2 | remark@meet

[remark@meet]
anim = ward
snd = ds_searcher_trader_hello
combat_ignore_cond = always
on_signal = sound_end | walker@wait

[walker@wait]
path_walk = ds_searcher_trader_walk
path_look = ds_searcher_trader_look
combat_ignore_cond = always
on_actor_dist_ge_nvis = 3 | remark@bye

[remark@bye]
anim = ward
snd = ds_searcher_trader_bye
combat_ignore_cond = always
on_signal = sound_end | walker@idle

[combat_ignore]


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

01-08-2013 20:18 GMT3 часа #1672079   Split
Fagot_, это явно какой-то глюк. Ты что-то прописывал в биндер? И посмотри есть ли у тебя выше указанной тобою строки вот такая конструкция:
Код:
local game_difficulty = reader:r_u8()
local load_treasure_manager = false     
if game_difficulty >= 128 then           
    game_difficulty = game_difficulty - 128
    load_treasure_manager = true           
end
И вообще, попробуй начать новую игру.


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

01-08-2013 20:39 GMT3 часа #1672082   Split
ColR_iT , прописывал в bind_stalker следующее:
в function actor_binder:net_spawn(data)
Код:
-- Случайный спавн мутантов при заходе на локацию:
spawn_sluchainji.random_spawn()


в function actor_binder:on_item_take (obj)
Код:
--ОТСЛЕЖИВАНИЕ ПОЯВЛЕНИЯ ПРЕДМЕТОВ В ИНВЕНТАРЕ:
if db.actor then
name = obj:section()
if db.actor:object("pda_gavrosha") ~= nil then
db.actor:give_info_portion("infa_pda_gavrosh")
end
end


в function actor_binder:update(delta)
...
Код:
-- Новости:
    news_main_data.show_news_main()

...
Код:
--==потрёпаный броник в начале НИ \Artos\:
          local se_actor_suite = alife():create( "stalker_outfit", vector(), 0, 0, db.actor:id() )
          level.client_spawn_manager():add(se_actor_suite.id, 65535, my_callback_suite, "metka")
...
-- добавляем свою функцию коллбэка на спавн в игру потрёпанного броника:
function my_callback_suite(metka, id, obj)
  obj:set_condition(0.3) -- портим броник до 30%
end


Всё.


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


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

01-08-2013 20:38 GMT3 часа #1672083   Split
Fantom2323
1. А у тебя есть какие-то варианты? Ты пробовал делать?

2. Причин может быть уйма, но зачастую это ошибка где-то в скриптах. Когда-то находил один из возможных вариантов исправления, но уже и не помню где и как.
P.S. Твою логику можно сократить вот так:
Код:
[logic]
active = walker@idle
trade = misc\trade_searcher_trader.ltx
combat_ignore = combat_ignore

[walker@idle]
path_walk = ds_searcher_trader_walk
path_look = ds_searcher_trader_look
combat_ignore_cond = always
on_actor_dist_le_nvis = 2 | remark@meet

[remark@meet]
anim = ward
snd = ds_searcher_trader_hello
combat_ignore_cond = always
on_signal = sound_end | walker@wait

[walker@wait]:walker@idle
on_actor_dist_ge_nvis = 3 | remark@bye

[remark@bye]:remark@meet
snd = ds_searcher_trader_bye
on_signal = sound_end | walker@idle

[combat_ignore]


P.S. удовлетвори, пожалуйста моё любопытство - ты сразу посмотрел под спойлер, с вариантом приветствия или нет?


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
01-08-2013 20:58 GMT3 часа #1672084   Split
ColR_iT
1. У меня есть единственный таймер из старого скрипта моих новостей.
Код:
local time_period ={
90000 
}

time_news = 0

function time_update_news()
  local time = time_global()
   if time_news < time then
      time_news = time + time_period[math.random(#time_period)] 
     news_monsters.monsters_news()
    end
end


Но, если я правильно понимаю его только на апдейт, а на диалог нельзя вешать.

P.S. Твою логику взял сразу, т.к. повторюсь - времени и нервов было потрачено достаточно, чтобы впасть в ступор. Как раз и задал тебе этот вопрос именно от того самого "ступора".

P.S.S. Кстати протестировав ещё раз логику - заметил что НПС может зависнуть на ремарке приветствия, даже не произнеся фразу...


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

02-08-2013 06:31 GMT3 часа #1672085   Split
Fantom2323 , извиняюсь, что вмешиваюсь... Вот:

В свой скрипт вставляешь:
Код:
local iTimer
function start_Timer_60_s()
        iTimer = time_global() + 60*1000 -- таймер на 60сек.
end
function timer_60_s() -- вызывается из ':update' сталкер-биндера
        if iTimer and iTimer < time_global() then
                iTimer = nil
            твой_скрипт.функция()
        end
end
function функция()
db.actor:give_info_portion("поршень")
end


В bind_stalker.script :
function actor_binder:update(delta)
--таймеры:
твой_скрипт.функция()

...

В диалог: <action>твой_скрипт.start_Timer_60_s</action>

Только есть одна проблема - сейв/лоад или переход на др.локацию - и таймер слетает...

Сообщение было успешно отредактировано Fagot_ (02-08-2013 06:31 GMT3 часа, назад)

dimak
[3] Новобранец
Онлайн статус=0  Профиль    




Посты: 1494
Откуда: Архангельск
Занятие: ТЧ - МОД "Возвращение Шрама"
Возраст: 51

01-08-2013 23:36 GMT3 часа #1672094   Split
Fantom2323 твой нпс похоже вступает в ступор от того, что он торгаш.

Код:
trade = misc\trade_searcher_trader.ltx


Закомменти строку эту и проверь. Такое есть у торговцев нпс. У них лучше ремарку любую отыграть в путях, чем обыгрывать такими способами, как на подходе к нему

Код:
on_actor_dist_le_nvis = 2 |
и т.д.

Fagot_ Вырезанные анимки я также добавлял раньше, но некоторые пришлось убрать из-за подвисания логики ключевых персов, но кое-какие оставил, ибо работают без головняков, но только с правкой скрипта того же xr_remark.script Однажды я вернул анимку сидящего нпс, который чистит ствол. Всё работало как надо, но позже, когда зашёл повторно на эту локу, при приближении к нему, схватил коварный неизлечимый вылет, указывающий на этот скрипт. Теперь только эта анимка работает без проблем, если не считать того, что стул ему под зад сложно привязать. Может присесть мимо стула.


Fagot_
[1] Странник
Онлайн статус=0  Профиль    




Посты: 283
Откуда: СССР, Владивосток.
Занятие: Мод Равновесие-2
Возраст: 130

02-08-2013 04:57 GMT3 часа #1672105   Split
dimak , да, я тоже замудохался с сидящим персом - то мимо стула сядет, то на него, но после оффлайн/онлайн - мимо. Потом зажал стул в угол, нацелил пятую точку сталкера на него и всё, стулу падать было некуда. Вылета не было, но на всякий случай, не мог бы ты показать, как модифицировал xr_remark.script ?


Джей Джей
[1] Banned
Онлайн статус=0  Профиль    




Посты: 7
Откуда: Бийск
Занятие: Радоваться жизни и модострой сталкер
Возраст: 121

02-08-2013 07:58 GMT3 часа #1672107   Split
Как создать миссию???Только скажите все с толком с чувством с расстановкой...Подробно опешите что каждая строка означает,а то скачал сборник по модострою а там шляпа какая-то.


ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

02-08-2013 12:20 GMT3 часа #1672111   Split
Fantom2323
На апдейт, я имею ввиду биндер актора, можно и не вешать таймер, можно задать свой апдейт на время при помощи функции
Код:
level.add_call(func_precondition, func_effect)
Данная "конструкция" создаст свой апдейт. Здесь func_precondition - это безымянная функция которая должна возвращать false, пока биндер должен работать, как только необходимо прекратить апдейт, то нужно вернуть true; а func_effect - это тоже безымянная функция, которая выполниться сразу после того, как биндер прекратит работу.
Здесь готового варианта не будет ибо хочу, чтобы люди думали, а не занимались копи-пастом.


dimak
Цитата
У них лучше ремарку любую отыграть в путях, чем обыгрывать такими способами, как на подходе к нему
Позволь полюбопытствовать, а как ты в путях задашь условие, что НПС должен что-то сделать когда ГГ подойдёт к нему на определённое расстояние?


Джей Джей, и это всё, что ты хочешь!? Может сразу сюжет тебе написать? А то как-то ради одной миссии париться не охота...


Джей Джей
[1] Banned
Онлайн статус=0  Профиль    




Посты: 7
Откуда: Бийск
Занятие: Радоваться жизни и модострой сталкер
Возраст: 121

02-08-2013 15:42 GMT3 часа #1672123   Split
ColR_iT Бро,как создать диалог помощь НПС,к примеру:
Привет сталкер,какой-то ты бледный весь вялый...Может помочь чем нибудь??
Ну ты понял если ты играл В lost world requital

добавлено спустя 15 минут

ColR_iT Что скажешь?

добавлено спустя 4 минут

ColR_iT Бро, ты тут???

добавлено спустя 15 минут

ColR_iT Бро,ты долго учился по скриптам и логики?Сколько кг успокоительного покупал???

добавлено спустя 2 минут

ColR_iTТЫ ЧТО ЗАЛИП???

Сообщение было успешно отредактировано Джей Джей (02-08-2013 15:42 GMT3 часа, назад)

ColR_iT
[1] Странник
Онлайн статус=0  Профиль    




Посты: 398
Откуда: Киев
Занятие: Логика, скриптование
Возраст: 35

02-08-2013 15:55 GMT3 часа #1672125   Split
Джей Джей, я задал риторический вопрос. И вообще это был сарказм.


Fantom2323
[1] Странник
Онлайн статус=0  Профиль    




Посты: 778
Откуда: 25 RUS
Занятие: Универсальное модостроение
Возраст: 28

29-08-2013
02-08-2013 16:38 GMT3 часа #1672126   Split
Джей Джей
Шлёпай на этот сайт - http://stalkerin.gameru.net/ Раздел: База Знаний - Конфиги.

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

ColR_iT
Понял только то, что пока одна функция не выключиться - вторая не будет работать. Не то чтобы я что-то выпрашиваю, но у меня нет даже понятия о том как сделать такой апдейт.




Форумы > Архив > Склад > Вопросы и ответы (старое, по 21.10.13)

Страница 55 из 64Первая«52535455565758 »Последняя


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



???????@Mail.ru Rambler's Top100
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2024 «Stalker-Portal.ru»