Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Ошибка main player not found


jedbez

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

Находясь в рейде периодически возникает ошибка

 

Error: addon GroupPos: Game::LuaGroupGetMembers: main player not found, details: int __cdecl Game::LuaGroupGetMembers(struct lua_State *)

 

не могу врубиться чего ето он?

 

Может где то здесь?

 

local members = group.GetMembers()
for i=1,5 do
  if members then
    if members then
      if members.className then

        ...........
      else
        ...........
      end
    end
  end
end

Ссылка на комментарий
Поделиться на другие сайты

"Периодически" - понятие растяжимое. Когда конкретно не выяснил?

Когда этот код отрабатывается?

 

Как возможный вариант появления ошибки - вход в игру аватара, находящегося в рейде

 

...

Нафига такой страшный цикл с такими странными проверками?

Проверка на members ваще в цикле не нужна, проверка на members в нормальном цикле (for in do) тоже была бы не нужна

Ссылка на комментарий
Поделиться на другие сайты

Это я знаю. Но аватар давно уже экзист 

Чаще всего наблюдаю находясь в рейде и при переходе в инсту правда не всегда, т.е. рейд сформирован уже давно, Аватара в принципе не ищу, нет необходимости.

Код обрабатывается при создании группы, изменении группы, создании рейда, изменении рейда и при неопределенности класса игрока по таймеру, иногда такое случается.

 

Короче файл прикладываю.

 

Есть предположение, что при прохождении в инсту теряется аватар и соответственно PosAvatar=avatar.GetPos() начинает глючить... хотя это не логично.

Ссылка на комментарий
Поделиться на другие сайты

Это я знаю. Но аватар давно уже экзист

 

Хз кто там и где екзист, но вот это в коде точно есть

local PriznakGroupTexture=true
...
function Init()
...
common.RegisterEventHandler( OnTime, "EVENT_SECOND_TIMER" )
...
end
--------------------------------------------------------------------------------
Init()
 

function OnTime()
if PriznakGroupTexture then
-- LogToChat("Чик")
local members = group.GetMembers()
for i=1,5 do
if members then
PriznakGroupTexture=false
if members[i] then
if members[i].className then
local bt=common.GetAddonRelatedTexture( members[i].className )
Strelki[i]:SetForegroundTexture( bt )
Strelki[i]:SetBackgroundTexture( bt )
else
PriznakGroupTexture=true
end
end
end
end
end
end
Ссылка на комментарий
Поделиться на другие сайты

Проверь EVENT_AVATAR_CREATED.

Проверил, нету там обращений к аватару

Там идет

Загрузка cfg

создание кнопок и надписей cfg панели

создание панелей стрелок

отображение CheckButton 

Запуск событий AOPanel

 

 

common.RegisterEventHandler( OnTime, "EVENT_SECOND_TIMER" )

Согласен, могла бы давать ошибку, но вставил проверку на существование группы

...

local members = group.GetMembers()
....

if members then  если группа существует, тогда......
......

 

 

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

Надо как то поймать этот баг.

Ссылка на комментарий
Поделиться на другие сайты

жуть

вместо Init()

common.RegisterEventHandler(Init, "EVENT_AVATAR_CREATED")

и в OnTime бы проверку if avatar.IsExist() then

скорей всего при переходе из локи в локу во время загрузке может выдать avatar.IsExist()==false

Ссылка на комментарий
Поделиться на другие сайты

Согласен, могла бы давать ошибку, но вставил проверку на существование группы

Песец.. Какая "проверка на существование группы"?

Ты постоянно за каким то Х проверяешь переменную которая ваще не меняется в цикле

Ошибка идет при вызове функции group.GetMembers, а не после

Error: addon GroupPos: Game::LuaGroupGetMembers: main player not found, details: int __cdecl Game::LuaGroupGetMembers(struct lua_State *)

Если хочется нагородить кучу проверок - ставь предварительно перед  group.GetMembers проверку на avatar.IsExist() 

Ссылка на комментарий
Поделиться на другие сайты

Ок, действительно, в цикле не логично ставить проверку на группу, щас исправлю, но это не существенно

Если не делать проверку, вот тогда при работе с группой кучу ошибок вывалиться. При смене локации системой теряется состав группы.

Всем спс, буду думать.

Ссылка на комментарий
Поделиться на другие сайты

Проверь EVENT_AVATAR_CREATED.

Проверил, нету там обращений к аватару

Я имел ввиду "проверь когда приходит это событие", а не "что отрабатывает по этому событию". Вполне может получиться так, что при переходе из одной локации в другую аватар уничтожается, а потом создается заново. В таком случае между уничтожением аватара и созданием нового может отработать код без аватара.

скорей всего при переходе из локи в локу во время загрузке может выдать avatar.IsExist()==false

Вот это я и имел ввиду.

Ссылка на комментарий
Поделиться на другие сайты

[off]Сетраска, ты вот вроде нармальный пацан, но иногда как брякнешь - так хоть стой, хоть падай...[/off]

 

У меня по этому ивенту во всех аддонах первоначальная инициализация идет

Тебе рассказать чо бы в них было, если бы аватар каждый раз уничтожался-создавался при переходе между зонами?

 

"Это событие" приходит 1 раз за игровую сессию, и никуда данные об аватаре и сам аватар не пропадают до самого ее закрытия

 

[off]усе, закругляюсь[/off] 

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования