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

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


Svoboда

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

Как в STALKER SoC выдать ГГ задание, после прочтения им документа в инвентаре?

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

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


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

@DXatom

Для начала почитать раздел "Уроки по модостроению" + тут - узнаешь много полезного.

Конкретно по вопросу (в общих чертах): делать этот самый документ на классе чего-то съедобного  :) \используемого, затем ловить в обработчике кэллбэка(в классе биндера актера) использование этого объекта, по факту выдавать задание.

Сделал так:

function actor_binder:reinit()


...
self.object:set_callback(callback.use_object, self.use_inventory_item, self)

function actor_binder:net_destroy()
...
self.object:set_callback(callback.use_object, nil)

function actor_binder:use_inventory_item(obj)
if obj ~= nil
then
task_documents.on_use(obj)
end
end

 

 

local object_info_portion = {
task_document="esc_talk_koval_quest_started"
}

function on_use(obj)
for key, val in pairs(object_info_portion) do
if obj:section() == key
then
db.actor:give_info_portion(val)
end
end
end

 

 

[task_document]:identity_immunities
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "food and drugs\task_document"
$prefetch = 32
class = II_ANTIR
cform = skeleton
visual = equipments\item_document_2.ogf
description = "no desc"

inv_name = "Unnamed"
inv_name_short = "Unnamed"
inv_weight = 0.10

inv_grid_width = 2
inv_grid_height = 1
inv_grid_x = 6
inv_grid_y = 18
cost = 0

eat_health = 0
eat_satiety = 0
eat_power = 0
eat_radiation = 0
wounds_heal_perc = 0
eat_portions_num = 1
animation_slot = 4
hud = wpn_vodka_hud

 

 

Работает.

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


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

Скажите, пожалуйста, как стравить двух НПС, а то они не атакуют друг друга.

 

[logic]


active = walker@walker4
on_death = death@koval

[walker@walker4]
path_walk = esc_koval_strela_walk
path_look = esc_koval_strela_look
meet = no_meet

[death@koval]
on_info = %+esc_koval_dead%

 

 

[logic]
active = walker@walker1

[walker@walker1]
path_walk = esc_bandit1_walk
path_look = esc_bandit1_look
meet = default_meet

 

 

стоят прямо лицом к лицу на мосту (Кордон). Спасибо.

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


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

 

 

Чудес не бывает - если у них группировки(community) враждебные друг-другу, то они будут атаковать друг-друга. Ищи ошибку, или в профилях одинаковую группировку им прописал, или в логике есть запрет на атаку.

Да, дело было в community. "freedom" атакует "dolg", но атаковать группировку "bandit" не хочет.

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


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

Во, как раз еще помню свое удивление, когда с этим столкнулся. В game_relations.ltx поправь отношения бандитов и свободы, а то они там нейтральны друг к другу. Если тебе именно это нужно.

Спасибо! То что нужно.

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


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

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