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

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


Svoboда

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

(изменено)

@Norman Eisenherz

 

function func()
  local lvl = level.name()
  local pos = db.actor:position()
  local n = 1
  local name, obj
  while true do
    name = string.format( "%s_vibros_%s", lvl, n )
    obj = db.zone_by_name [ name ]
    if obj then
      if obj:inside( pos ) then
        return true
      end
    else
      return false
    end
    n = n + 1
  end
end

Это если имена с нумерацией от 1 и по возрастанию. Если вразброс, то придётся всю zone_by_name перебирать в поисках нужных рестрикторов.

Изменено пользователем naxac
  • Полезно 1

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

naxac.gif

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


Ссылка на сообщение
19 часов назад, Jekyll сказал(а):

Что означает bit_not(0) в данном случае?

-1, т.е. нет значения.

  • Спасибо 1
  • Согласен 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Jekyll , вот это

owner_id = bit_not(0)

заменить на

owner_id = p_obj.id

Хотя, по идее, при owner_id = -1 хит и так должен наноситься "от имени" аномалии.

Изменено пользователем naxac
  • Спасибо 1
  • Нравится 1

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

naxac.gif

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


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

@Colder

Скрытый текст

function radiation_anomaly_binder:update(delta)
  object_binder.update(self, delta)
  local actor = db.actor
  if actor then
    local dist = actor:position():distance_to(self.object:position())
    local st = get_hud():GetCustomStatic("radiation_hud_static")
    if dist <= 10 then
      if not st then
        get_hud():AddCustomStatic("radiation_hud_static"), true)
      end
    else
      if st then
        get_hud():RemoveCustomStatic("radiation_hud_static")
      end
    end
  end
end

 

 

  • Полезно 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Colder ,

b:SetStretchTexture(true)

и

b:Init(but_x,but_y,sizes.width*0.7,sizes.height*0.7)

Вместо 0.7 можно другой масштаб поставить, смотря какой нужен.

Изменено пользователем naxac
  • Спасибо 1
  • Согласен 1

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

naxac.gif

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


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

@Капрал Хикс , емнип, за добавление/удаление в этот список неписей отвечают две строчки в se_stalker.script:

actor_stats.add_to_ranking(self.id)

и

actor_stats.remove_from_ranking(self.id)

  • Полезно 1

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

naxac.gif

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


Ссылка на сообщение
1 час назад, Stalkersof сказал(а):

Я хотел респавн сделать.

Поставь на локации респавнер и смарт-террайн, и будет у тебя там респавн.

  • Нравится 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Stalkersof , тебе надо при вызове гуя сохранить ссылку на биндер. Например, так:

 

function generic_object_binder:use_callback(obj, who)

  if self.use_flag == nil and self.object:section()~="m_trader" then

    self.object:set_nonscript_usable(false)

    self.use_flag = true

  end

  local wnd = NewUI4.main()

  level.start_stop_menu( wnd, true )

  wnd.owner = self -- сохраняем ссылку на биндер

  --self:mutanter_use(obj,who)

end

 

А потом в гуе вызывать нужную функцию так:

 

function NewUI4:button1_button_clicked()
	 self.owner:mutanter_use()
	 self:Hide()
end
Изменено пользователем naxac
  • Спасибо 1
  • Согласен 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@WinCap , эти функции вызываются в биндерах неписей и монстров. В скрипте используются заполняемые этими функциями таблицы.

Изменено пользователем naxac
  • Согласен 1
  • Полезно 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Norman Eisenherz , строчка, обрабатывающая это, закомментирована в движке:

 


bool CUIXmlInit::Init3tButton(CUIXml& xml_doc, const char* path, int index, CUI3tButton* pWnd){
    R_ASSERT3(xml_doc.NavigateToNode(path,index), "XML node not found", path);

//.    pWnd->SetFrameMode(xml_doc.ReadAttribInt(path, index, "frame_mode", 0) ? true : false);

    InitWindow            (xml_doc, path, index, pWnd);

 

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

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Norman Eisenherz , да, всё верно, прошу прощения, не в те исходники смотрел.

Судя по всему, там должно быть 12 текстур в этом режиме: (_d, _t, _e, _h) + (_e, _b, _back). Но у тебя не работает так. Странно..

 

В оригинале ЗП это, кстати, используется:

 

 <btn_second_task x="52" y="132" width="120" height="19" hint="ui_show_second_task_wnd" frame_mode="1">

  <window_name>btn_second_task</window_name>

        <texture_e>ui_inGame2_pda_missionlist_button_e</texture_e>

        <texture_t>ui_inGame2_pda_missionlist_button_ht</texture_t>

        <texture_h>ui_inGame2_pda_missionlist_button_ht</texture_h>

        <text align="c" vert_align="c" x="0" y="0" width="120" height="19" font="letterica16">missions_list</text>

        <text_color>

            <t r="255" g="255" b="255"/>

            <d r="255" g="255" b="255"/>

            <e r="200" g="200" b="200"/>

            <h r="170" g="170" b="170"/>

        </text_color>

 </btn_second_task>

 

И описание текстур:

 

     <texture id="ui_inGame2_pda_missionlist_button_e_b" x="30" y="71" width="15" height="19" />

     <texture id="ui_inGame2_pda_missionlist_button_e_back" x="45" y="71" width="1" height="19" />

     <texture id="ui_inGame2_pda_missionlist_button_e_e" x="45" y="71" width="15" height="19" />

 

     <texture id="ui_inGame2_pda_missionlist_button_ht_b" x="104" y="71" width="15" height="19" />

     <texture id="ui_inGame2_pda_missionlist_button_ht_back" x="119" y="71" width="1" height="19" />

     <texture id="ui_inGame2_pda_missionlist_button_ht_e" x="119" y="71" width="15" height="19" />

 

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

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Norman Eisenherz , это работает только с комбо-боксами, используемыми для игровых опций. После disable/enable_id нужно вызвать SetCurrentOptValue - только там заполняется лист с проверкой по этому m_disabled.

Изменено пользователем naxac
  • Нравится 1
  • Полезно 1

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

naxac.gif

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


Ссылка на сообщение
22 часа назад, STALKER_Dragon сказал(а):

Что произойдет ,если скриптово удалить актора, а затем заспавнит по координатам?

А что мешает проверить?

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@_Sk8_AsTeR_ , не там копаешь. Сохранение и загрузка гулага тут ни при чём. Неписи в баре сделаны с индивидуальной логикой, и они так же глючат порой. Тут либо вейпоинт-каллбэк рано срабатывает в move_mgr при загрузке, не давая неписю дойти до нужной точки, либо непись смещается уже после спавна на загрузке и срабатывания этого каллбэка. Или ещё что-то. В общем, в move_mgr смотреть надо.

Изменено пользователем naxac
  • Согласен 1
  • Полезно 2

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

naxac.gif

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


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

@Norman Eisenherz , вторым аргументом в tonumber передаётся основание системы счисления (двоичная - 2, шестнадцатиричная -16 и т.д). string.gsub же вторым аргументом возвращает количество замен. Тут нужно отсечь второй аргумент, например так:

tonumber( (string.gsub(str, …)) )

  • Полезно 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)

@Norman Eisenherz , там, вернее всего, аи-сетки нет. Попробуй после спавна сделать use_ai_locations(false). Типа

local obj = alife():create.....

obj = alife():object(obj.id)

obj:use_ai_locations(false)

Изменено пользователем naxac
  • Согласен 2

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

naxac.gif

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


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

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

AMK-Team.ru

×
×
  • Создать...