Jump to content

Recommended Posts

@плащ, в ТЧ нет такого метода, чтоб определить наличие предмета на поясе. Но есть скрипт, с помощью которого это можно сделать, в Солянке есть (а, может, и в АМК, точно не знаю), называется inventory.script. Посмотри его, там через сканирование инвентаря определяется, какие предметы находятся на поясе (их секции и id) Edited by naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Сталкер Лом, тебе это нужно, я так понял, для того, чтобы при следующем заходе на локацию спавнились новые аномалии? Тогда можно сохранить имя текущего уровня в пстор и на net_spawn актора повесить проверку:

function create()
    local level = level.name()
    if not has_alife_info("dynamic_anoms_to_"..level) then
        db.actor:give_info_portion("dynamic_anoms_to_"..level)
    end

    local sl = xr_logic.pstor_retrieve(db.actor,"dla","")
    if sl~="" and level~=sl then
        db.actor:disable_info_portion("dynamic_anoms_to_"..sl)
        xr_logic.pstor_store(db.actor,"dla",level)
    end
end
Т.о. при переходе на другую локацию новый поршен будед выдаваться, а старый удаляться. (точно названия ф-ций из xr_logic не помню, так что проверь (= ) Edited by ColR_iT

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

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

Не то, видать, читал. Почитай это: Назначение скриптам горячих кнопок. Часть 3.

А по поводу состояния предмета - если он у тебя на классе антирада, то помимо скриптового "obj:set_condition...", нужно писать кондишен в объект через нет_пэкет,

Edited by naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@Full Noob, лишнего в статье нет ничего. Если тебе нужно только нажатия отлавливать, делай по первому варианту - и всё.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@AndreySol, просто этот ящик с броником при спавне нужно засунуть в оффлайн, а потом достать оттуда назад в онлайн.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@mumie, смотри в lua_help доступные для этого класса методы. В основном по их названию понятно предназначение. Класс, вроде, называется CUITrackBar.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@Gaz24, ну, во-первых, ранг нпс, получаемый функцией npc:charactr_rank() - это число. А во-вторых, ранг нпс нужно проверять в функции drop_manager:__init(npc), т.к. именно сюда передаётся объект нпс при спавне лута, здесь уже можно получит его ранг, а от него уже и плясать.
  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Хемуль36рус, конечно можно:

function npc_set_freedom (actor, npc)
    if npc then
       printf ("NPC [%s] NOW IN FREEDOM COMMUNITY", npc:name())
       npc:set_character_community ("freedom", 0, 0)
    end
end
Edited by naxac
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

Привет всем.

Сегодня пробовал сменить имя главного героя через net_packet. Взял all.spawn, acdc, написал скрипт. Вроде работает, но имя меняется только около иконки, которая показывается при разговоре/торговле, и в КПК в разделе "Ранги".

С нпс то же самое, но это решается отправкой непися в оффлайн на небольшое время сразу после изменения пэкета. С ГГ же такое не прокатывает.

Может, кто-нибудь сталкивался? Как решить?

@Dennis_Chikin, надо, чтобы новое имя отображалось везде. В окне диалога с нпс вместе с фразами, в КПК в разделе статистики, чтобы его можно было получить через actor:character_name()...


Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Dennis_Chikin, в том-то и дело, что непонятно где ещё нужно что поменять. Перерыл весь нет_пэкет актора, никаких больше упоминаний про имя не нашел. Пробовал поменять профиль в пэкете - меняется только иконка на ту, что в новом профиле записана, остальное без изменений...

Непонятно.

Всё, разобрался. Я же только серверный объект ковырял, а нужно ещё и клиентский...


Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Simonov50,

Frect():set(x1, y1, x2, y2) - первые две - координаты верхнего левого угла, третья и четвёртая - нижнего правого. Вроде, так.


Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@Simonov50, доступ к экземпляру другого класса ты получаешь через self.lb_kv:GetItem(item_index). Точнее, этим методом ты и получаешь экземпляр класса lbx_kv, и далее можешь делать с ним всё, что угодно его методами.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Winsor, что-то вроде этого:

local npc
local aPos = db.actor:position()
local npc_online = {}
for k,v in pairs(db.storage) do
  npc = level.object_by_id(k)
  if npc and isStalker(npc) and npc:alive() and aPos:distance_to(npc:position())<50 then
    npc_online[k] = npc
  end
end
  • Thanks 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@UnLoaded, в AttachChild, когда у дочернего окна уже есть parent. Т.е., оно уже приаттачено к чему-нибудь. Edited by naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites
@madrazor, в проекте X-Ray Extensions есть функция для проигрывания худовых анимаций. Там же есть каллбэк для актера на нажатие клавиш.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Stalkeruga_238, "на примере этого" не получится - для перехода на другую локацию нужен level_changer.

А "привязать" - через каллбэк use_object в биндере актера.

Edited by naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Romz, можно что-то вроде этого сделать:

local level_changed = false
local last_level = xr_logic.pstor_retrieve(db.actor, "llvl", "")
if last_level ~= level.name() then
  level_changed = true
  xr_logic.pstor_store(db.actor, "llvl", level.name())
end
Edited by naxac
  • Thanks 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

@Romz, проще всё это "повесить" на инфопоршни - по одному на каждую локацию (например, "<имя_уровня>_info"). При заходе на локу проверяешь поршень, если его нет, то спавнишь аномалии и выдаёшь поршень. При начале выброса все инфо дисаблишь и удаляешь все аномалии на всех уровнях. По завершении выброса - делаешь как при заходе на локацию.

  • Thanks 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Share this post


Link to post
Share on other sites

AMK-Team.ru

×
×
  • Create New...