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

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


Svoboда

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

Вообще по идее должно затягивать, но для надежности можешь вызвать после спавна:

obj:brain():update()
local smart_terrain_id = obj:smart_terrain_id()
if smart_terrain_id ~= 65535 then
--затянуло в гулаг
else
--не затянуло
end

Так сделано в респавнерах(se_respawn.script)

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


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

не просто перебрать все предметы, а учесть неполные пачки патронов и навешанные на оружие глушители, прицелы и прочее

Все реально, но кода получается много :ny_rolleyes:

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


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

вывод на экран можно сделать через

get_hud():GetCustomStatic

get_hud():AddCustomStatic

посмотри как эти функции используются в оригинальных скриптах и в АМК

 

ну а подсчет веса вести для начала так же, как в АМК считают объем:

ставить коллбеки на поднятие/выбрасывание предмета

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

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


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

ZeeK,

В ЗП так <action>spawn_test.spawn_muzhik1</action> инфопоршни уже не работают.

Теперь ручками в actor_binder:info_callback ставить проверку на свой инфопоршень и вызывать функцию

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

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


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

TREWKO,

при отбегании от него дальше 5 метров

Тогда бы так и написал :)

if z:position():distance_to(db.actor:position()) > 5 then

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


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

Такой вариант не катит.

То что написал ты, используется по-другому

local xml = CUIScriptWnd()

--...
--здесь нужно создать и зарегистрировать MessageBox под именем "TECT"
--...

-- здесь ты получаешь ранее созданный MessageBox
local message_box = xml:GetMessageBox("ТЕСТ")

-- и здесь можешь с ним что-нибудь сделать, например, показать

Почему бы не посмотреть, как уже сделано в оригинале. MesssageBox`ы, например, выводятся в главном меню.

Вот как сделано в ЗП(файл ui_main_menu.script):

  local message_box = CUIMessageBoxEx()
  message_box:InitMessageBox("message_box_quit_windows")
  message_box:ShowDialog(true)

Можно найти пример и в ТЧ

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

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


Ссылка на сообщение
Возможно такое(Если ГГ видит Долговца, то...)?:

if db.actor:see("dolg_regular") then

ГГ никого не видит, то есть функция db.actor:see всегда возвращает false. Наоборот проверить можно

 

И возможна ли проверка попадения какого либо объекта в зону(аномалию, спейс рестриктор)?

Что то типа:

local obj = "wpn_pm"

local am = "zone_flame"

if obj попал в am then

проверка будет выглядеть так:

if am:inside(obj:position()) then

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


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

Влад :)

local wpn_sec = actor:item_in_slot(slot):section()

Зря section() вызвал - у тебя wpn_sec присвоилась строка с названием секции оружия. У ней понятное дело никакого метода clsid() нет

Попробуй написать просто

local wpn_sec = actor:item_in_slot(slot)

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


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

Unnamed Black Wolf,

Через точку это если серверный объект, а там был клиентский

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


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

Darien,

нет, позиция записи не может быть меньше позиции чтения :) Посмотри внимательней на код в симбионе и асдс - там должны использоваться 2 пакета: один получается из STATE_Write, другой из UPDATE_Write

По идее параметры, начинающиеся на upd_, должны вычитываться из пакета, полученного UPDATE_Write

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


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

Darien,

Не понимаю. Почему не используешь ту функцию, которая не читает upd_ и не использует UPDATE_Write?

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


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

antreg,

В шапке даны ссылки на цикл статей. Собственно ответы на твои вопросы там есть.

 

1) Вопрос №1: В конечной точке пути [lesnik_walk] (wp6 которая) прописана анимка |a=run. Возможно, это не совсем корректно. Что должно быть там? И ещё: в некоторых примерах путей "волкеров" в конечной точке прописаны такие анимки:

wp06|sig=final или

wp06|sig=return или

wp06|arrive

Что это за анимки и как они работают на финальной точке и на что влияют? Просто разницы большой не наблюдается.

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

 

2) Вопрос №2: Точек walk 7 штук, а точек look три. Эти три точки look флажками привязаны к трём точкам walk, которые не друг за другом идут. Надо ли в этом случае "связывать" точки look друг с другом линком, так же, как связаны точки walk?

Точки path_look связывать не надо - связи в этих путях игнорируются.

 

3) Вопрос №3: в точках walk флажки стоят только у тех точек, которые привязаны к точкам look, в которых отыгрывается анимация или в которой остановка и направление взгляда задаётся. У остальных точек walk pх:flags = не проставлены. Это правильно? Или же всё-таки надо проставлять флажки (с последовательными номерами) у всех точек walk?

Информации по таким тонкостям в сети практически нет, поэтому, думаю многим такая схема движения может быть интересна.

Этими флажками связываются точки path_walk и path_look, то есть в точке path_walk c заданным флажом НПЦ посмотрит в точку из path_look с таким же флажком. Цитат из доки по ссылке:

В точках path_walk, которым соответствуют точки пути path_look (стоят одинаковые флажки) персонаж останавливается и смотрит в определенную точку, при этом отыгрывая (или не отыгрывая) определенную анимацию.

 

 

Byurrer,

возможно ошибка в

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)


if gulag_type == "esc_bandits_smart_terrain" then
        return npc_community == "dolg"
    end
...

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

Напиши так:

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)


if gulag_type == "esc_bandits_smart_terrain" then
        return npc_community == "stalker"
    end
...

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

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


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

Министр,

:)) жестоко себя ведешь

 

SDR-team, попробуй так:

function buhaem()
   local item = db.actor:object("vodka")
   if item then
      db.actor:eat(item)
   end
end

надеюсь у тебя хоть скрипт, где эта функция лежит, называется pal.script?

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


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

SkyLoader,

попробуй разобраться, как сделано у xStream`а. Самому тебе придется написать тоже самое.

Ну и malandrinus тебе правильно все проблемы расписал. В теории алгоритм для ТЧ простой:

- говоришь НПЦ уйти в онлайн

- дожидаешься его ухода

- перепаковываешь на новый визуал

- возвращаешь обратно.

 

На практике все сложнее.

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


Ссылка на сообщение
Другой вопрос - как красиво поймать атаку монстра на актора ?

можно попробовать в апдейте монстра получать best_enemy и текущую анимацию. когда best_enemy актор и анимация атакующая - вот она и атака на монстра. Но не очень красиво :)

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


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

ZeeK,

Потому что не скопировал функцию isAnomaly. Проверь _g.script

Если имя функции пишется без имени модуля впереди, то она лежит в _g.script

 

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


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

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