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

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


Svoboда

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

Хочу сделать чтобы при взятии записки из тайника появлялся другой тайник (как в ОП-2 Коллекционер). В файле bind_stalker.script в самый низ этой функции добавил:
 

function actor_binder:on_item_take (obj)
    level_tasks.proceed(self.object)
if xrs_ai then xrs_ai.actor_item_take(obj) end
    --game_stats.update_take_item (obj, self.object)
inventory.on_item_take(obj)
-- added by xStream for AMK miniSDK
amk.on_item_take(obj)
-- end of addition
repack_ammo.on_take(obj)
if rx_ai then
rx_ai.actor_item_take(obj)end
art_hit.hit_by_art(obj)
--verg_art_hit.on_item_take(obj)
 
--visual_fix
if obj:clsid() == clsid.equ_stalker_s or obj:clsid() == clsid.equ_exo then
local outfit = db.actor:get_current_outfit()
if outfit and outfit:id() ~= obj:id() then
db.actor:transfer_item(outfit, db.actor)
 
if db.actor then
name = obj:section()
if db.actor:object("bread") ~= nil then
db.actor:give_info_portion("boxkvest2_dal")
end
end
end
end
end
 
При этом инфопоршень выглядит так:
<info_portion id="boxkvest2_dal"><action>kvestovik.spawn_boxkvest2</action></info_portion>
 
Но при наличии хлеба тайник boxkvest2 не появляется. Что не так?

 

@Хемуль36рус, По моему в акторе это настраивается, там где аттачмент.

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

 

 

 

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


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

@Dennis_Chikin, Спасибо, работает и с одной if obj:section() == "bread" then db.actor:give_info_portion( "boxkvest2_dal" ) end. А второе условие  if obj:section() == "bread" then kvestovik.spawn_boxkvest2() end я так понял, для вызова функции напрямую без поршня? 

Да. dc

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

 

 

 

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


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

Всем привет. Не знаю, может не  в тему пишу - как сделать (в ТЧ), что бы при получении ГГ нескольких определенных инфопоршней на экране появлялось опред. сообщение? Спасибо.

 

 

 

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


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

@k01jan, тем что один поршень - одна функция.

@svarog2741, а куда прописать local porsh и дальше ? Function hhy() -- на апдейт - тоже не совсем понял - hhy произвольно, или именно так? И что значит на апдейтif has_info("porsh") then - тут всё понятно с условием, а куда его писать, в конец биндера под функцию, или в любую скрипт-папку?

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

 

 

 

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


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

@svarog2741, в разделе function actor_binder:update(delta) перед последним эндом сделал так:

repack_ammo.on_update()
if xrs_ai then xrs_ai.actor_update(delta)
end
if rx_ai then rx_ai.actor_update()
end

function test_prosto()
local testporsh = {"test1","test1","test3"}
if has_info("testporsh") then smski.poluchil_porsh
end

end

---------------------------------------------------------------------------
function actor_binder:save(packet)
if rx_ai then rx_ai.actor_save(packet) end
art_hit.save()

то что выделено жирным - это моё, остальное уже было.  "test1" - инфопоршень. Правильно?
 
p.s. Нет, не правильно. Сделал так:
function test_prosto
local porsh = {"test1","test1","test3"}
if has_info("porsh") then smski.poluchil_porsh
end
Получаю вылет:
[error]Arguments     : LUA error: ...r\stalker Тени Чернобыля\gamedata\scripts\sak.script:8: attempt to index local 'actor' (a nil value)
Потом закоммент. строку с функцией, все равно тот же вылет. Что не так?
Изменено пользователем Outfater

 

 

 

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


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

@svarog2741,  как именно правильно? Можно здесь скопировать мои "правильные" строчки и показать? И почему вылетает, если правильно?

 

 

 

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


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

@svarog2741, не позволяет психика? А по моему, ты просто не знаешь как правильно расписать - local porsh игра вообще не видит, нет такой команды. Только зря потратил время...

 

 

 

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


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

@Dennis_Chikin, да никто мне ни чем не обязан.

@svarog2741, просто если не знаешь точно, то лучше не пытаться. Я уже и без луа разобрался как надо и всё сделал (там вообще по другому надо). Но за то, что пытались помочь - спасибо всем.

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

 

 

 

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


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

@ed_rez, у меня немного не так:

if has_alife_info ("test1") and
   has_alife_info ("test2") and
   has_alife_info ("test3") then
   self.object:give_info_portion("test123")
end
если именно для сообщений на экран, то только через поршень.

 

 

 

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


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

Всем привет. Подскажите кто знает, как через поршень (в ТЧ) установить ГГ новый параметр скорости восстановления здоровья, или заживления раны, или повысить переносимый вес, и т.п. Спасибо.

 

Ни как. Это не задается через поршни. dc

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

 

 

 

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


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

@Dennis_Chikin, через предмет в инв. тоже нельзя?

 

Только артом на пояс, либо съеданием аптечек и иже с ними (см. конфиги аптечек), или писать в свойства актора (actor.health = , actor.radiation = и т.д.). Вес - только костюмами.

Читайте уже документацию: куча ссылок везде висит, по всем разделам и темам. dc

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

 

 

 

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


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

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