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

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


Svoboда

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

(изменено)

@Kondr48, если ты хочешь изменить цвет кнопки, чтобы видно было, что она нерабочая, то достаточно сделать копку на классе CUI3tButton (если через xml, то это xml:Init3tButton) и покрасить нужным цветом текстуру *_d кнопки. А потом просто: button:Enable(false).

Окно подсказки к кнопке (hint) скриптово на чистом движке сделать не получится.

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

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

naxac.gif

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


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

каким образом в ЗП можно назначить текст кнопке с помощью скрипта?

button:TextControl():SetText("text")

  • Спасибо 1

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

naxac.gif

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


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

@Kober(BRUC), в ТЧ открыть:

level.start_stop_menu(gui_ryukzak(), true)

Закрыть внутри класса:

self:GetHolder():start_stop_menu(self, true)

В ЗП: открыть:

gui_ryukzak():ShowDialog()

закрыть внутри класса:

self:HideDialog()

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

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

naxac.gif

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


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

@Kober(BRUC), сохраняй кнопки в разных переменных класса, а потом выключай те, которые надо.

 

self.button1 = xml:InitButton....

...

self.button1:Enable(false)

  • Спасибо 1

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

naxac.gif

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


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

@Kober(BRUC),

ТЧ/ЧН:

self.txtt:SetText("Новый текст для static, который завется txtt.")
ЗП:

self.txtt:TextControl():SetText("Новый текст для static, который завется txtt.")
  • Спасибо 1

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

naxac.gif

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


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

@Kober(BRUC), с тем, что функция, в которой ты обращаешься к self, не является методом никакого класса. Соответственно, и self в ней равен nil.

И, заодно, здесь:

if tonumber(_G.main_menu.get_main_menu():GetGSVer()) <= 1.0004 then
local ver_gm = "1.0004 или меньше"
И ниже - надо убрать local, т.к. с его помощью инициализируется новая переменная, которая действует только до elseif. Изменено пользователем naxac
  • Спасибо 1

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

naxac.gif

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


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

В начале - да, она будет действовать во всем коде ниже ее. Но далее - ты каждый раз делаешь новую переменную, которая будет удалена после завершения блока кода.

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

naxac.gif

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


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

@CRAZY_STALKER666, метод position класса game_object возвращает экземпляр класса vector, в котором содержaтся текущие координаты объекта. Что тебе надo перепаковывать и зачем? Передавай как есть.

 

local pos = db.actor:position()

func ( pos )

 

Если надо что-то сделать с координатами, то используй методы класса vector - правда, для этого хотя бы немного надо векторную алгебру знать. Можно костыльно:

 

local x,y,z = pos.x,pos.y,pos.z

-- тут что-то делаешь со значениями...

pos = vector():set(x,y,z)

func ( pos )

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

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

naxac.gif

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


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

@TIGER_VLAD, код клавиши по экшену:

local dik = bind_to_dik(key_bindings.kSPRINT_TOGGLE)

 

upd: пардон, эта функция из X-Ray Extensions, в чистом ТЧ только dik_to_bind есть.

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

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

naxac.gif

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


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

@FonSwong,

1. Никак. Если только подогнать звук под время анимации.

2. Нет.

 

@tatarinrafa, get_console():get_float() возвращает число с плавающей точкой, т.е. val у тебя станет числом, а ты с ним пытаешься обращаться как с массивом.

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

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

naxac.gif

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


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

@FonSwong, так бы и писал, что надо синхронизировать смену текстуры со звуком. Я думал, ты про смену кадров анимации.

В подписи к видео написано, что для смены текстуры прицела используется Луа-перехватчик от Alpet - для изменения адреса в памяти.

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

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

naxac.gif

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


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

@Sla-Sla,

function get_ammo_size(obj)

local pk = net_packet()

obj:STATE_Write(pk)

pk:r_seek(pk:w_tell()-2)

return pk:r_u16() -- ammo_left

end

 

function ammo_count(section)

local n = 0

local sobj

db.actor:iterate_inventory( function (actor, item)

if item:section() == section then

sobj = alife():object( item:id() )

if sobj then n = n + get_ammo_size(sobj) end

end

end, db.actor)

return n

end

 

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

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

naxac.gif

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


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

@Sla-Sla, ЗП? Тогда так:

 

function get_ammo_size(obj)
  local pk = net_packet()
  pk:w_begin(0)
  obj:STATE_Write(pk)
  pk:r_seek(pk:w_tell()-2)
  return pk:r_u16()  -- ammo_left
end

function ammo_count(section)
  local n = 0
  local sobj
  db.actor:iterate_inventory( function (actor, item)
    if item:section() == section then
      sobj = alife():object( item:id() )
      if sobj then n = n + get_ammo_size(sobj) end
    end
  end, db.actor)
  return n
end

 

Использовать:

ammo_cnt = ammo_count("ammo_12x70_buck")
Это если надо конкретные патроны посчитать. А если все подряд, то вместо проверки по секции поставить проверку по классу. Типа
if item:clsid() == clsid.ammo or item:clsid() == clsid.ammo_s then
Изменено пользователем naxac
  • Спасибо 1

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

naxac.gif

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


Ссылка на сообщение
(изменено)
@TIGER_VLAD, в ЧН/ЗП для этого экспортирован отдельный gui-класс, в ТЧ - можно с помощью CUIStatic сделать. Изменено пользователем naxac
  • Спасибо 1

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

naxac.gif

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


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

@FonSwong, в распакованном спавне не все параметры написаны, а только те, которые отличаются от дефолтных. Для того, чтобы узнать структуру пакета, открывай acdc.pl (желательно тот, который чисто для ЗП предназначен) и изучай классы - начиная с того, который тебе нужен - и дальше по наследованию.

Или проще - есть много готовых парсеров (от Artos, xSrteam), используй их (есть в теме "Сборочный цех").

  • Полезно 1

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

naxac.gif

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


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

@Карлан, при чем тут SetWndPos? Я про экспортированный в ЗП и ЧН класс прогресс-бара, которого нет в ТЧ.

 

upd: пардон, в ТЧ он тоже есть, но недоэкспортирован нормально.

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

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

naxac.gif

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


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

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

AMK-Team.ru

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