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

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


Svoboда

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

(изменено)
@losiara, после спавна сохрани ккда-нибудь id или имя объекта (в пстор), а в нужный момент - загрузи из пстора, получи объект и удали. И из пстора тоже, чтоб место не занимать. Изменено пользователем naxac
  • Спасибо 1

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

naxac.gif

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


Ссылка на сообщение
@losiara, из логики при смерти мутанта вызывается функция в xr_effects, которая считает убитых кабанов, записывая количество в пстор. А в диалоге в прекондишенах проверяется это количество.
  • Спасибо 1

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

naxac.gif

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


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

А есть вариант заспавнить предмет учитывая его направление (dir)? То есть с определенным наклоном, поворотом..

В m_netpk есть такая возможность - почитай про работу с абстрактной частью нет-пакета.

  • Спасибо 1
  • Нравится 1

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

naxac.gif

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


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

SetWndSize крашит игру

Потому что в ТЧ нет такого метода в классе CUIStatic. Да и в других тоже.

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

naxac.gif

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


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

@Romz, попробуй так:

function ts_get_weapon_ammo_type(sobj)
  local pk = net_packet()
  cse_alife_item_weapon.STATE_Write( sobj, pk )
  pk:r_seek( pk:w_tell() - 2 )
  return pk:r_u8()
end
Изменено пользователем naxac
  • Спасибо 1

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

naxac.gif

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


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

@Romz, при перезагрузке содержимое инвентаря актера уничтожается, как и сам актер. Поставь в начале скрипта проверку на наличие серверного объекта разряжаемой пушки:

if alife():object(item:id()) == nil then return end

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

naxac.gif

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


Ссылка на сообщение
@FonSwong, в ЗП в классе CUITextWnd для этого есть метод AdjustHeightToText. В ТЧ такой же метод добавлен в класс CUIStatic в проекте X-Ray Extensions, в чистом его нет.

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

naxac.gif

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


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

Где можно увидеть все опции для прописки в xml файлах для окон?

В исходниках: xrGame\ui\UIXmlInit.cpp

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

naxac.gif

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


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

@Romann, код, конечно, страшный))

Для начала надо бы кэшировать секцию перед проверкой, чтобы столько раз ее не получать.

И еще, лучше составить таблицу, где секция = количество денег, чтобы столько раз не перебирать elseif...or...then, а брать значения оттуда.

И чтобы было имя из характера, надо делать character_name().

  • Спасибо 1

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

naxac.gif

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


Ссылка на сообщение
@Romann, проще уж в скриптах, чем писать каждый раз ини, сохраняя массивы, а потом их загружать.

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

naxac.gif

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


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

@hi_flyer, можно, если известно его имя из all.spawn, или еще какой-нибудь идентефикатор (id или story_id)

local respawn = alife():object("respawn_name")

respawn:spawn(100)

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

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

naxac.gif

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


Ссылка на сообщение
(изменено)
@Sla-Sla, либо использовать CUIScrollView, в который добавлять статик с текстом. Изменено пользователем naxac
  • Полезно 1

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

naxac.gif

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


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

А если без левых функций, то можно так:

function get_current_ammo(wpn)
     if not wpn then return nil end

     local sobj = alife():object(wpn:id())
     if not sobj then return nil end

     local pk = net_packet()
     sobj:STATE_Write(pk)
     pk:r_seek(pk:w_tell() - 1)
     local ammo_type = pk:r_u8()

     local ammo = {}
     local str = system_ini():r_string(wpn:section(), "ammo_class")
     for s in string.gfind(str, "[%w%-%._]+") do
          ammo[#ammo+1] = s
     end

     return ammo[ammo_type+1]
end

 

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

naxac.gif

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


Ссылка на сообщение
@PTB, name - имя таймера, delay - время в секундах, parametres - параметры, которые будут переданы в функцию срабатывания таймера.
  • Спасибо 1

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

naxac.gif

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


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

@ins33, а какая у тебя таблица? Непрерывная последовательность или ассоциативный массив? И вообще как-то странно все у тебя и непонятно.

В первом случае можно сделать так:

for i, v in ipairs(tbl) do
  if v:find("_delete") then
    table.remove(tbl, i)
  end
end
Во втором - так (если ключи - это строки)

for k in pairs(tbl) do
  if k:find("_delete") then
    tbl[k] = nil
  end
end

table.remove(obj, "_flame") --> bad argument #1 to 'remove' (table expected, got userdata)

Для table.remove первым аргументом передается таблица (последовательность), вторым - индекс, по которому надо удалить поле со смещением последующих индексов. Ты же передаёшь серверный объект и строку, для чего это вообще делается - не ясно.

Почитай документацию по Луа.

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

naxac.gif

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


Ссылка на сообщение
(изменено)
@Zander_driver, в метод load биндера передается не нет-пакет нпс, а отдельный поток на чтение. Это только с Сахаровым так? Изменено пользователем naxac

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

naxac.gif

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


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

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

AMK-Team.ru

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