CustomGames.ru - Dota 2 пользовательские игры

Dota 2 моддинг => Скриптинг => Тема начата: Primo от 11-10-2017, 14:17:07

Название: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 11-10-2017, 14:17:07
Привет всем. Сегодня моей кастомке дали выделенный сервер, но проблемы не заставили себя ждать.
Какая именно проблема, и из-за чего она появилась я понятия не имею, но со 100% уверенностью могу сказать, что это из-за луа скрипта.
Вопрос собственно вот в чем, как я могу увидеть ошибки в луа скрипте, если они выводятся в консоль только хосту, а тут хостом является выделенный сервер?

И еще, панорама стала жутко лагать, а точнее лагает с повторяющимся таймером. Если на локальном сервере я делаю таймер с задержкой в 0,005сек, и всё работает абсолютно нормально и без лагов, то на выделенном сервере же я ощущаю неимоверные лаги. (грубо говоря, был 100 фпс, стал 30).
Чтобы не было лишних тупых вопросов, таймер через $.Schedule() (Javascript).
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 11-10-2017, 14:25:18
Никак. Самому или с друзьями на своем хосте ловить известные баги.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 11-10-2017, 14:25:56
Ну и без кода твоего таймера никто ничего тебе не скажет
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 11-10-2017, 14:59:03
Ну и без кода твоего таймера никто ничего тебе не скажет
Я и не удивлён, что никто ничего не скажет.
Ровно как и код таймера ничего не скажет.
Код
function onJavaTimerTick( )
{
if(Object.keys(unitConf).length == 0)
{
GameEvents.SendCustomGameEventToServer( "unitpanel_debug", {thisdata : 1} );
//$.Msg(unitConf);
}
$('#income-label').GetChild(1).text = myincome*10;
$('#food-label').GetChild(1).text = myfood+"/"+mymaxfood;
for(var i in unitConf)
{
var thisclass = $(unitConf[i].unitclass);
if(Players.GetGold(Players.GetLocalPlayer()) < unitConf[i].cost || myfood + unitConf[i].food > mymaxfood)
{
thisclass.style.border = "5px solid #9b0000";
}
else
{
thisclass.style.border = "5px solid #199900";
//Game.EmitSound("Quickbuy.Available");
}
}
$.Schedule(0.05, onJavaTimerTick);
}

onJavaTimerTick();
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: rokiboxofficial от 11-10-2017, 15:06:05
Что за кастмока?
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 11-10-2017, 15:09:11
Save the Keeper
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 11-10-2017, 15:12:22
А ты уверен что это из-за панорамы лагает?
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 11-10-2017, 15:20:01
ZLOY, да, причем конкретно из-за таймера. Если увеличить его время, то лагать перестаёт меньше. Если вовсе убрать, то вовсе лаги пропадают.

Но главная проблема не эта, главная связана с lua скриптом, как его можно задебажить нормально. Всё игралось нормально, а тут вафли запилили выделенный сервер и всё сломалось. Как узнать в чем проблема - хз.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: rokiboxofficial от 11-10-2017, 15:29:51
Афигеть, одна из самых популярных кастомок в мире, и создатель сидит с тобой на одном форуме.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 11-10-2017, 16:29:51
Возможно GameRules на вольвовских серверах создается позже чем запускается луа. Но это догадка в стиле Ванги)
Попробуй перенести все обращения к GameRules в Activate хотя-бы
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 11-10-2017, 16:56:45
Возможно GameRules на вольвовских серверах создается позже чем запускается луа. Но это догадка в стиле Ванги)
Попробуй перенести все обращения к GameRules в Activate хотя-бы
Сначала обрадовался, что возможно оно так, но в итоге нет, не так.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: I_GRIN_I от 11-10-2017, 18:00:48
rokiboxofficial, вафля
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 12-10-2017, 00:45:01
Убрали выделенный сервер, похоже что-то пошло не так :с
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 12-10-2017, 06:18:07
Не нужно было скрывать кастомку. Нужно к вольво писать, возможно они бы что-то подсказали или исправили у себя.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 12-10-2017, 16:09:23
ZLOY, вольво писать - сродне в стенку стучать. Писал я, только через час после отправки письма сервера не оказалось.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 12-10-2017, 16:53:16
Крч разобрался благодаря моддоте.
Оборачивайте вызов функции в pcall или xpcall и сможете ловить сообщение об ошибке. Дальше отправляйте в панораму и выводите.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 12-10-2017, 19:39:53
Так а что на дедиках работает не так как у плейерхостов?
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 13-10-2017, 02:01:18
Похоже, что не так, раз у меня кастомка на выделенном сервере по зде пошла. Специально залил отдельно кастомку от основной, чтобы проверить - всё работает, а на выделенном нет.

Может вольво накосячили, хз.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: CryDeS от 14-10-2017, 04:20:51
Да, дебажить баги выделенных сервов то еще удовольствие, когда нигде не повторяется если это не выделенный сервак.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 27-10-2017, 11:15:02
В общем, от безделия решил всё таки исправить проблему, ибо вдруг вольво опять захотят дать выделенный сервер, а у меня не будет возможности исправить.
В итоге, задебажил ошибку, и проблема оказалась в ивенте player_connect_full, он не вызывается, судя по всему. А в нём у меня идёт формирование всех пользовательских данных (еда, инкам, список юнитов и т.д. и т.п.)
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: ZLOY от 27-10-2017, 16:08:55
Самое интересное что этот ивент у меня на дедиках работает без проблем.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 27-10-2017, 16:19:34
ZLOY, ну я бы мог сказать, что проблема в коде, но увы, я его перенёс в OnAllPlayersLoaded, и он прекрасно работает.
Пытался его продебажить через панораму, даже с задержкой делал, вдруг ивент вызывается, когда панорама не готова, но, увы, ничего.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: I_GRIN_I от 28-10-2017, 05:49:37
Primo, худ панорамы грузится ток после стадии пика и планирования, лучшим решением, как по мне, в function() ({}) которая при загрузке скрипта выполняется посылать эвент на сервер для инициализации панорамы
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 28-10-2017, 17:11:27
Primo, худ панорамы грузится ток после стадии пика и планирования, лучшим решением, как по мне, в function() ({}) которая при загрузке скрипта выполняется посылать эвент на сервер для инициализации панорамы
I_GRIN_I, js файл можно подключить напрямую в custom_ui_manifest.xml, и тогда он будет работать во всей панораме.
В теории, тут скорее проблема с дебагом через панораму может быть в том, что может быть так, что сначала вызывается player_connect_full, а потом только грузится панорама у клиента, но проверить это у меня так и не получилось, т.к. ивент просто не работает. Именно поэтому я и делал задержку на отправку ошибки в панораму.
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: I_GRIN_I от 29-10-2017, 08:35:21
Primo, многие функции не будут работать при инициализации из custom_ui_manifest
Название: Re: Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.
Отправлено: Primo от 29-10-2017, 09:23:42
I_GRIN_I, и откуда такие выводы?