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

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


Svoboда

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

Возможно ты просто не правильно вызывал её:

void give_game_news( -- выдать на экран сообщение
string, -- само сообщение. Может содержать некоторые форматирующие элементы
string, --текстура, из которой берется аватара "отправителя"
Frect, --координаты и размеры вырезаемого из текстуры изображения
int, --начало показа сообщения с текущего момента (в миллисекундах)
int --длительность показа сообщения (в миллисекундах)
) 

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

В наличии есть матрица углов поворота объекта и его позиция. Могу из неё также получить углы Эйлера.
Никто случаем не может показать готовую функцию (можно даже не на Lua, лишь бы понятная была) с помощью которой зная эти данные можно получить направляющий вектор?
(в смысле вектор, который при сложении с позицией показывает на точку в метре от объекта, на которую он смотрит - грубо говоря то что возвращает direction() у объекта или device().cam_dir у камеры)
 
Необходимо получить дирекцию кости, но я могу только углы Эйлера\матрицу поворота из неё вытащить. А как через них получить направляющий вектор (он кстати вроде по другому называется) я честно говоря не знаю. 


UPD: Вроде выкрутился вот такой шнягой:
 

local ph_shell = self.object:get_physics_shell()
local ph_element = ph_shell:get_element_by_bone_name("link")
 

function extract_direction(ph_element)
local m = ph_element:global_transform()
local p,b,h = extract_euler_xzy(m)
return vector():setHP(h, p)
end
 

extract_euler_xzy - http://pastebin.com/6ijsymZ4

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

@Сталкер Лом, к выше сказанному добавлю что называть свою переменную level вообще не очень хорошо, т.к сделав такое:

local level = level.name()

 

Ты в рамках твоей функции ниже уже лишаешься доступа к функциям из namespace level, т.к при попытке допустим такого:

 

local level = level.name()

if level.rain_factor() > 0 then

...

 

У тебя будет вылет, ибо в level у тебя теперь строка хранится.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

@kmsk,

Потому что сразу после создания ствола нельзя получить его клиентский объект - его ещё не существует.

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

Если бы ещё нужный скрипт ещё был бы под рукой, но некоторые здесь поспособствовали, и теперь его придётся искать у себя или брать первый попавшийся. <_<

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

@mumie,на какую игру делаешь? 

Если ТЧ или ЗП, то

http://www.amk-team.ru/forum/index.php?showtopic=10538&page=1

Скачай документацию и посмотри раздел "Получение информации о точке/объекте, куда смотрит актор"

А через это http://www.amk-team.ru/forum/index.php?showtopic=10538&p=831341 будет проще всего нужные из них поставить.

 

На ЧН могуть быть проблемы с не-лицензионными версиями игры, т.к они обычно используют свой xrGame.dll

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

@Старлей, на ЗП перешёл? 
use_ai_locations() есть только там, и используется при спавне оружия в тайники. Пробил бы поиском по скриптам ЗП - нашёл бы пример использования. :)

 

local sobj = alife():create(item, pos_vector[1], pos_vector[2], pos_vector[3])

sobj:use_ai_locations(false) 

 

Должно работать. Функция применяется к серверному объекту, желательно сразу после спавна. (как на примере выше)

 

 

m_netpk от 19 Сентября 2013, новее хз где брать. 

Изменено пользователем *Shoker*
  • Нравится 3

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

@AndreySol, ловил такой баг в ЧН с монстрами. Там если спавнить предметы им в инвентарь напрямую - такой же косяк был. 
Решил следующим образом - сперва спавню предмет в монстре (тот же ящик в твоём случае) а потом повторно через функцию transfer_item перемещаю предмет из монстра в него-же. Тогда игра корректно запоминает кому принадлежит вещь.
Вот пример:

local sobj = sm.spawn_in_inv(section, obj:id()) --> Просто спавн в нужный ящик с таким-то id
level.client_spawn_manager():add( sobj.id, -1, spawn_callback, obj)  --> Колбек на выход sobj (заспавненного предмета) в онлайн, obj в данном примере - клиентский объект ящика


...


--\\ Колбек на появление заспавненого предмета в онлайне 
function spawn_callback(obj, id, item)
      obj:transfer_item(item, obj)
end

Единственное условие - при спавне предмета ящик должен находится в онлайне, либо быть в онлайне в будущем до того как игрок успеет сделать save\load или сменить уровень.

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

@Dennis_Chikin, 

Ну всё правильно. save\load сохраняет в сейв только данные клиентских объектов которые в онлайне. Соответственно если клиентский объект ушёл в оффлайн => он удалился (?), и сохранять у него нечего. Ему на замену приходит серверный объект у которого свой метод сохранения. 

 

Я не знаю что там насчёт ТЧ, но в ЗП в этих случаях (кажется) помогала функция серверного объекта keep_saved_data_anyway() - должна возвращать true (в ЗП есть примеры). Тогда там (по моему) данные даже при смене локации сохранялись, но опять же очень давно это всё проверял. 

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

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

Ну вот в ЗП я сохранял данные и столкнулся с похожей проблемой, keep_saved_data_anyway() мне помог, но как - уже не помню :D.

 

В ЗП с этим есть очень неприятный баг к слову. На оружие можно установить разные типы прицелов (ночной, с увеличением и прочее)

Так вот - тип прицела сохраняется ТОЛЬКО в клиентском объекте оружия (в save\load). Но в серверном объекте про это забыли. Поэтому пока оружие в инвентаре ГГ или рядом с ним - при сохранениях и переходе с локации на локацию всё хорошо. Но стоит бросить оружие, уйти далеко и вернуться - на оружии прицел сбросится на стандартный. 

  • Полезно 1

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

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


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

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