Неизвестная ошибка. Как узнать ошибки lua на выделенном сервере.

  • Автор темы Автор темы Primo
  • Дата начала Дата начала

Primo

Пользователь
26 Авг 2016
65
0
Привет всем. Сегодня моей кастомке дали выделенный сервер, но проблемы не заставили себя ждать.
Какая именно проблема, и из-за чего она появилась я понятия не имею, но со 100% уверенностью могу сказать, что это из-за луа скрипта.
Вопрос собственно вот в чем, как я могу увидеть ошибки в луа скрипте, если они выводятся в консоль только хосту, а тут хостом является выделенный сервер?

И еще, панорама стала жутко лагать, а точнее лагает с повторяющимся таймером. Если на локальном сервере я делаю таймер с задержкой в 0,005сек, и всё работает абсолютно нормально и без лагов, то на выделенном сервере же я ощущаю неимоверные лаги. (грубо говоря, был 100 фпс, стал 30).
Чтобы не было лишних тупых вопросов, таймер через $.Schedule() (Javascript).
 
Никак. Самому или с друзьями на своем хосте ловить известные баги.
 
Ну и без кода твоего таймера никто ничего тебе не скажет
 
Ну и без кода твоего таймера никто ничего тебе не скажет
Я и не удивлён, что никто ничего не скажет.
Ровно как и код таймера ничего не скажет.
Код:
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();
 
Последнее редактирование модератором:
А ты уверен что это из-за панорамы лагает?
 
ZLOY, да, причем конкретно из-за таймера. Если увеличить его время, то лагать перестаёт меньше. Если вовсе убрать, то вовсе лаги пропадают.

Но главная проблема не эта, главная связана с lua скриптом, как его можно задебажить нормально. Всё игралось нормально, а тут вафли запилили выделенный сервер и всё сломалось. Как узнать в чем проблема - хз.
 
Афигеть, одна из самых популярных кастомок в мире, и создатель сидит с тобой на одном форуме.
 
Возможно GameRules на вольвовских серверах создается позже чем запускается луа. Но это догадка в стиле Ванги)
Попробуй перенести все обращения к GameRules в Activate хотя-бы
 
Возможно GameRules на вольвовских серверах создается позже чем запускается луа. Но это догадка в стиле Ванги)
Попробуй перенести все обращения к GameRules в Activate хотя-бы
Сначала обрадовался, что возможно оно так, но в итоге нет, не так.
 
Последнее редактирование модератором:
Убрали выделенный сервер, похоже что-то пошло не так :с
 
Не нужно было скрывать кастомку. Нужно к вольво писать, возможно они бы что-то подсказали или исправили у себя.
 
ZLOY, вольво писать - сродне в стенку стучать. Писал я, только через час после отправки письма сервера не оказалось.
 
Крч разобрался благодаря моддоте.
Оборачивайте вызов функции в pcall или xpcall и сможете ловить сообщение об ошибке. Дальше отправляйте в панораму и выводите.
 
Так а что на дедиках работает не так как у плейерхостов?
 
Похоже, что не так, раз у меня кастомка на выделенном сервере по зде пошла. Специально залил отдельно кастомку от основной, чтобы проверить - всё работает, а на выделенном нет.

Может вольво накосячили, хз.
 
Да, дебажить баги выделенных сервов то еще удовольствие, когда нигде не повторяется если это не выделенный сервак.
 
В общем, от безделия решил всё таки исправить проблему, ибо вдруг вольво опять захотят дать выделенный сервер, а у меня не будет возможности исправить.
В итоге, задебажил ошибку, и проблема оказалась в ивенте player_connect_full, он не вызывается, судя по всему. А в нём у меня идёт формирование всех пользовательских данных (еда, инкам, список юнитов и т.д. и т.п.)
 
Реклама: