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

[SoC] Ковыряемся в файлах


Halford

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

Добрый вечер всем!:drinks:
Вопрос такой.... Как сделать так, чтобы при клацании на предмет в инвентаре, начался проигрываться какой либо аудиофайл?
И ещё один.. Вот есть у меня waypoint, как сделать так, чтобы непись начал ходить по нему тогда, когда я захочу (например, после какого то диалога)?

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


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

Добрый вечер всем! :drinks:
Назрело много вопросов касаемо всего и обо всём)

1. Как сделать так, чтобы после использования предмета, через n-ое время он возвращался обратно? (для Гитары, например)

2. Попытался сделать юзабельную гитару по уроку , всё гуд, скрипт сделал, музычку настроил, но при использовании - звук обычной аптечки. Класс ставил аптеки. Может надо свой создавать?
 



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

4. (не совсем вопрос, скорее догадка)
Вот например, мне надо чтобы в ящике, в нужный мне момент спавнилось определённое барахло. Прописывать спавн барахла в определённый момент, надо в логике space restrictora, используя on_info?

5. При замене музыки в главном меню (при чём не важно, заменяю ли я wasteland2,  или прописываю свою музыку в ui_mm_main), выскакивает конкретная ошибка. Хотя, _l и _r .ogg файлы я создал, но вылазит такая ошибка.

Скрытый текст

Expression    : ovi->channels==1
Function      : CSoundRender_Source::LoadWave
File          : E:\stalker\sources\trunk\xrSound\SoundRender_Source_loader.cpp
Line          : 71
Description   : Invalid source num channels:
Arguments     : d:\mood\s.t.a.l.k.e.r. Òåíü ×åðíîáûëÿ\gamedata\sounds\music\mm_l.ogg



Всем заранее спасибо, что отвечаете очередному васяну :grin2:
 

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


Ссылка на сообщение
12 часов назад, Norman Eisenherz сказал:

@Hind 

1. Просто переспавн – по идее, в уроке это должно быть.

2. (Не могу потестить – огорожено роскомзабором)
3. Проверка через [bind_stalker.script] on_use(obj): если в инвентаре нет предмета Y, переспавнить предмет X без звуков и анимации. По умолчанию событие "применить расходник" не привязано – надо будет добавить callback.use_object в reinit() и net_destroy(), ниже свой обработчик. Другой вариант – отслеживать сброс предмета через существующее событие on_item_drop(obj).
4. Проверка через [bind_stalker.script] info_callback(npc, info_id), либо создать новый инфо-поршень в общем конфиге и там же прописать вызов своего спавнера через <action>script_name.function_name</action>. Если спавн не разовый, придется отключать инфо перед каждым повтором.
5. Есть ли у новой музыки настройки дальности/громкости? Через SDK можно сделать по образцу исходных файлов.

Да уж.. С моим опытом, честно, из всего что ты написал - не понятно ничерта (относится к скриптам))
Нет ли у тебя каких то людей которые могут расталковать, что да как писать чтобы заработало, или, тем каких то на форуме?:biggrin:
По поводу первого пункта, не подскажешь в каком уроке?

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


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

@Houdini_oneтак понятно, прикол в том, что выставил всё, саунд вставил куда надо, но при тыкании - вместо запланированного саунда, звук аптеки.

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

И ещё.. Пара вопросов назрело

Как сделать так, чтобы при клацании на юзабельный предмет, выполнялось определённое действие (давался инфопрошень, спавнился другой предмет, добавлялась статья в энциклопедию)?

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

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


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

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

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


Ссылка на сообщение
13.08.2022 в 19:57, Houdini_one сказал:

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

Можно поподробнее pls? 

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


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

@Houdini_one а как насчёт например выдачи другого предмета (предметов) при юзании одного?

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

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


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

@mole venomousне робит... Даже просто скопировав твой код и вставив, юзанув аптечку ничё не происходит. Скрипт добавил в bind_stalker.script. В самый конец кода.


Или может я тупой, и надо было вставлять куда то в другое место? :biggrin:

Изменено пользователем Hind
забыл дописать

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


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

 

function actor_binder:net_destroy()

    if(actor_stats.remove_from_ranking~=nil)then
     self.object:set_callback(callback.use_object, nil)
        actor_stats.remove_from_ranking(self.object:id())
    end
--    game_stats.shutdown ()

 


 

Скрытый текст

function actor_binder:reinit()
   self.object:set_callback(callback.use_object, self.use_object, self)
    object_binder.reinit(self)


Функцию actor_binder:use_object(obj) в конец скрипта @mole venomous
А всё равно ничерта не пашет

Изменено пользователем Hind
забыл дописать

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


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

@Houdini_one
Абсолютно всё сделал так, как ты сказал - и вот вылазит эррорка теперь при юзании аптеки :)
До этого функция с вызовом use_item валялась где то в конце скрипта, и не вызывала проблем (как и каких-либо действий)

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: ... Òåíü ×åðíîáûëÿ\gamedata\scripts\bind_stalker.script:193: attempt to call global 'use_item' (a nil value)

Изменено пользователем Hind
забыл дописать

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


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

@mole venomous
аналогично..
  dmb.use_item(obj)  - сама штука которая вызывает функцию из другого скрипта, и на которую ругается

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: ... Òåíü ×åðíîáûëÿ\gamedata\scripts\bind_stalker.script:193: attempt to index global 'dmb' (a nil value)

Да.. Ещё такой прикол, если переместить
function actor_binder:use_object(obj)
  dmb.use_item(obj)    
end
в сааамый конец скрипта, то вылета не произойдет.
Но стоит положить его вниз после function actor_binder:on_item_drop (obj), то происходит вылет.
 

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


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

Работает)
Ещё подскажите, как сделать задержку в скриптах? Типа..
Вот юзанул я аптеку и через 5 секунд она появляется снова

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


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

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

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


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

@Houdini_oneа вот если мне надо, чтобы при входе в рестриктор, он первый начал базарить, и переставал начинать диалог после давания какой либо инфы?

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


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

Хай всем
Кто нибудь знает, как сделать "именной" пда, который будет падать с каждого убитого, и иметь имя и фамилию владельца в названии?

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


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

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