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

Скриптование


Svoboда

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

Здравствуйте, как сделать выдачу сообщения на экран после выдачи инфопорции? Тоесть захожу в спейс рестриктор, он выдает инфопорцию и появляется сообщение на экране. Помогите


Разобрался, вдруг кому будет нужно. Сделал я это так:

 

1.Регистрируем новую инфопорцию:

 

        <info_portion id="Имя инфопорции">
        <action>Скрипт.Название_функции</action>
        </info_portion>

При получении этой инфопорции срабатывает функция через скрипт.

2.В рестрикторе указываем такую логику:

 

[logic]
active = sr_idle
 
[sr_idle]
on_actor_inside = %+Имя инфопорции%
END
 

3.Создаем скрипт с фунцией:

 

function Название_фунции(actor, npc)
news_manager.send_tip(actor, "%c[255,255,128,128] Текст сообщения %c[default]", nil, "stalker", nil, 30000)
end

 


Единственный вопрос,  

    xr_sound.set_sound_play(npc, "rostok_kruglov_help_6")  -- выдает вылет, если используется функция через рестриктор, через диалог все работает, как быть? Я так понял, что здесь указано npc ( как отправитель сообщения со звуком, как указать для регистра?

Поделиться этим сообщением


Ссылка на сообщение

@Карлан,спасибо) 


Вылет
 

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: ...games\s.t.a.l.k.e.r\gamedata\scripts\xr_sound.script:17: attempt to index field '?' (a nil value)

Поделиться этим сообщением


Ссылка на сообщение

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

Поделиться этим сообщением


Ссылка на сообщение

Как сделать срабатывание функции через некоторое время после вызова? Например,чтоб сообщение приходило через 15сек.

У меня возникает странный вопрос: внутрь bind_stalker.script хоть раз доводилось заглядывать, или "не царское это дело" ? dc

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

Поделиться этим сообщением


Ссылка на сообщение

@AndreySol,Ситуация такова:

function teleport(actor, npc)
level.add_cam_effector("camera_effects\\empty.anm", 160608, false,"tp.teleportate")
level.add_pp_effector("peace_fade.ppe", 160608, false)
end
 
function teleportate()
level.add_pp_effector ("teleport.ppe", 16060800, false)
db.actor:set_actor_position( vector( -241.71509460448, -26.742816052856, -304.54711914063 ) )
    sms_guider()
end
 
function sms_guider()
news_manager.send_tip(db.actor, "%c[255,255,128,128] Ну вот и добрались, я развязываю тебе глаза и 
 
ухожу. Не пытайся меня искать, удачи! %c[default]", nil, "stalker", nil, 30000)

end


Нужно, чтоб после телепорта спустя 15 сек. приходило сообщение. 

Таймер так и не понял как применять, может вписал не правильно.

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

Поделиться этим сообщением


Ссылка на сообщение

Получилось, только в таком случае в фкнкции указываются секунды, а не милисекунды, тоесть не 15000, а 15.

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

Поделиться этим сообщением


Ссылка на сообщение

@Vadyanchikus, в сталкере есть непонятная лично мне особенность, сначала нужно забирать итем у актора, а потом дальше че-нить фигарить, иначе у актора нифига забираться не будет, несмотря на появленное сообщение. Так что переставь порядок функций и отпишись заработало или нет.

 

Замечательно забирается. dc

 

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

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

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

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

Поделиться этим сообщением


Ссылка на сообщение

Меня интересует вопрос относительно инфопорций, как при взятии предмета выдать инфопорцию?

И возможно ли пополнять ассортимент торговцев в разной последовательности? Как я понял после получения инфопорции , ассортимент заменяется, а мне нужно чтоб он пополнялся.

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

Поделиться этим сообщением


Ссылка на сообщение

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

Цитата из первого поста темы:

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

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.

2.1.1, устное предупреждение

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

Поделиться этим сообщением


Ссылка на сообщение
Не все что Вам нужно(хочется) есть в движке... Придется пользоваться тем, что есть.

Да и что не устраивает ? Сделайте несколько секций торговли, так чтобы каждая следующая дополняла(пополняла) предыдущую - и переключайтесь по инфо-порциям между ними...

Благодарю, я уже додумался до этого, просто этот способ муторный и я надеялся, что есть более простой. И такой вопрос, если вероятность появления предмета поставить на 1, то по идеи должен же убраться баг с разным ассортиментом при перезагрузке?

Изменено пользователем Kirgudu
исправил цитату

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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