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

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


Halford

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

А, теперь ясно почему у меня управление отключалось, значит надо оставить эту строку в виде use = boolean, и дописать условие на расстояние в метрах и там вызывать уже run_talk_dialog?

 

Тогда последний вопрос чтобы 'погадалками' не заниматься, поддерживает ли meet on_actor_dist_le.

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


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

Мои потуги привели к такому вылету:

 

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: ...g\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:170: C stack overflow

 

 

Происходит на расстоянии ~3-ёх метров как раз

 

Функция:

function run_gopnik_dlg()
local obj = alife():story_object(10003).id
if obj then
db.actor:run_talk_dialog(obj)
end
end

 

Строчка в логике:

use            = %=run_gopnik_dlg% false, true

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


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

ColR_iT, все ясно, спасибо, инфопоршень можно и через remark выдать в принципе.

 

"Спасибо" пишем в личку. А метод выдачи инфопорции выбирать тебе, главное, чтобы не далеко от оппонента.

ColR_iT

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

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


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

ColR_iT, либо я чего-то напортачил, либо self не работает, вылетаю с таким логом:

 

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: ...shing\s.t.a.l.k.e.r\gamedata\scripts\xr_logic.script:371: attempt to call field 'set_scheme' (a nil value)

 

[logic]

active = walker

 

[walker]

path_walk = esc_gopnik_1_walk

path_look = esc_gopnik_1_look

on_actor_dist_le = 20| remark@infogop

 

[remark@infogop]

anim = claim

on_info = {-esc_gopnik_talk} %=run_gopnik_dlg% meet

 

[meet]

meet_state = 10| {+esc_gopnik_info} threat_fire %=killactor%, claim@ {+esc_gopnik_info} talk_abuse, wait | 5 | claim %+esc_gopnik_info%; wait | 2 | claim;state

meet_state_wpn = 10| {+esc_gopnik_info} threat_fire %=killactor%, claim@ {+esc_gopnik_info} talk_abuse, wait

victim = 10| actor

victim_wpn = 10| actor

use = {+esc_gopnik_talk} self, true

use_wpn = false

 

 

 

function run_gopnik_dlg()

if not has_alife_info("esc_gopnik_talk") then

db.actor:give_info_portion("esc_gopnik_talk")

end

end

 

 

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


Ссылка на сообщение
:) так, self значит существует, тогда пошел дальше ковыряться... Изменено пользователем Struck

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


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

Artos, в твоем варианте диалог всегда будет начинаться если НПС находится на расстоянии ~3 метров, а не единожды, я вот такую поправку внес, на мой взгляд оптимально, потому что 'эскейпом' такой диалог завершить нельзя.

 

   --/#+# ограничение на принуждение к диалогу:
      if self.npc:name() == "mon_stalker" then --/ с О-Сознанием разговор 'особый'
        db.actor:run_talk_dialog(self.npc)
      elseif self.npc:position():distance_to_sqr(db.actor:position()) < 6 then --/ для остальных не далее ~2.4-x метра.
      if not has_alife_info("run_talk_info") then
      db.actor:give_info_portion("run_talk_info")
        db.actor:run_talk_dialog(self.npc)
        end
        elseif self.npc:position():distance_to_sqr(db.actor:position()) >6 then
        db.actor:disable_info_portion("run_talk_info")
      end
      --/

 

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


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

Как передаются в скриптовый диалог speaker1 и speaker2, применим ли relocate_item к скриптовому диалогу?

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


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

Artos, хорошо, задам вопрос по другому, мне нужно написать похожую функцию на relocate_item для скриптового диалога, я знаю что первыми передаются два нужных мне аргумента(speaker1, speaker2). Смотрю опять же коды SIMBION'a, там сделано через transfer_item, вопрос тогда такой, данным способом будет отображатся talk_message со списком переданных вещей от одного обекта другому(на мотив функции relocate_item из news_manager.script), или нет? Просто если нет, то тогда можно просто спавнить нужному нпс список вещей в инвентарь.

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


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

Не подскажете название инфопоршня который выдается при вылезании из подвалов х16? Просто копаться лень...предполагаю что это yan_kill_brain_done либо yantar_attack_start, но проверять это - времязатратное занятие.

 

Ты предлагаешь проверить кому-то другому?

ColT_iT

 

facepalm.gifГде ты увидел что я кому-то что-либо предлагаю? Я спросил, т.к. думаю, что кто-нибудь в этом возможно копался и знает наверняка, это же 'ковырялка', не?

 

volazar, ага, я о нем, спасибо.

Изменено пользователем Struck
  • Не нравится 2

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


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

Тогда как сделать, что бы НПС не смотрел на актора, а куда ему указано...без зацикливания ремарка. victim не подходит, у меня он должен в точку смотреть.

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


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

Artos, ясно, спасибо, тогда остается только ремарк.

 

ColR_iT, Emoticon-Facepalm.gif ну я в общем то прежде чем писать, читаю и пробую, я вроде не спрашивал как такое в [meet] сделать, ибо там даже в самой схеме берется id.

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


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

1.Где находится логика Борова?(портянки нашел только в gulag_dark_valley.script)

 

2.Трудно-ли добавить 'свое' задание в task manager?(конкретно надо добавить "принести несколько итемов"). Есть, как вариант написать аналог find_item, только поменять проверку наличия итемов. И как для каждого НПС сделать свою строку диалога "Мне нужна работа. Есть что на примете?"?

  • Нравится 1
  • Не нравится 1

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


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

ins33, можно написать ему самоликвидирование.

---------------------------------------------------------------

Как называется анимация сидения сталкера допустим на стуле(как Шустрый в ЗП), в библиотеке анимаций этого не нашел, в SDK тоже не увидел, подскажите хоть название в SDK если есть, остальное сделаю...просто не припомню, что бы в оригинале кто-нибудь сидел просто так.

  • Не нравится 1

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


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

volazar, state_mgr_animation_list и state_lib я смотрел прежде чем писать. <_<

 

По мануалу: там указаны анимации, которых в ТЧ нету(или я не нашел). Можете носом ткнуть где анимация сидения на стуле сталкера в ТЧ?(stul, stul_0 и stul_podyem не в счет).

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


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

Как в однотипный квест на убийство рандомного сталкера можно прописать бандита?(sim_stalker_novice на что заменить?)

 

А ты проверь, что такое sim_stalker_novice и узнаешь, что нужно вписывать.

ColR_iT

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

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


Ссылка на сообщение
А ты проверь, что такое sim_stalker_novice и узнаешь, что нужно вписывать.

 

Ну наверное я бы не спрашивал если бы не понял что это такое, не?

 

В менеджере русским по белому и написано

obj:profile_name() == self.task_info[v].target

А ты что думаешь, что эти задания только файлом task_manager.script ограничивается? В данном случае он тебе и не нужен, хотя ясно даёт понять где нужно искать sim_stalker_novice.

 

Только вот такого имени я как раз и не нахожу, только всякие sim_stalker_novice_default1 и т.д.

А это и не имя. :)

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

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


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

Ну а что это тогда?...не class же. Я так и не догоняю че надо поставить.

 

Bingo! Именно класс. Почитай вот здесь, как выбираются профиля для спавна: >>Click Me<<, здесь принцип тот же.

ColR_iT

 

Я блин первым делом(до того как задал вопрос) класс и ставил(причем брал как из character_desc_simulation, так и из character_desc_darkvalley), и чето нихрена у меня ничего не работало...и не работает.

 

О, вроде подобрал нужный класс..теперь выбирает как надо вроде. Раньше не те классы ставил получается.

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

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


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

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