PDA

Просмотр полной версии : [Вопрос] Лаги при подключении инклуда



codeo
31.05.2014, 12:05
Всем привет, подскажите почему при подключении этого инклуда ( http://pastebin.com/8BsUA00F ) при онлайне мод начинает лагать/глючить, инклуд мне очень нужен( подскажите что с ним не так..

[ForD]
31.05.2014, 12:18
Для начала не думаю что проблема в инклуде,хотя там цикл в цикле что не есть гуд =\

codeo
31.05.2014, 12:23
Нет, проблема именно в инклуде, при его подключении начинает лагать(..

DeimoS
31.05.2014, 15:27
Цикл в цикле ничего плохого не сделает. Многие системы без подобного способа не реализовать. Просто нужно умело управляться с ними.
По поводу инклюда. Стоит его оптимизировать просто. Ну, например, PlayerToPoint совершенно не нужна. Или циклы сделаны криво. Да много всяких мелочей, которые увеличат быстродействие.
А по поводу лагов - подключите инклюд к пустому моду и посмотрите что будет. Вряд ли инклюд виной лагов. Скорее всего ваш мод просто уже настолько загажен, что хостин не справляется с нагрузкой

codeo
31.05.2014, 18:24
а могут быть лаги из за того что в стоке AddAutoGate создается таймер?

Salvacore
31.05.2014, 18:35
Попробуй вшить инклуд в мод.
Skype: pwn.pro помогу.

codeo
31.05.2014, 19:54
Вшил, ничего не изменилось, при авторизации зависает диалог авторизации/регистрации и часто кикает ackslimit
Без инклуда все прекрасно работает и без лагов..(

Salvacore
31.05.2014, 19:58
Может у тебя в моде второй PlayerToPoint?

codeo
31.05.2014, 20:18
Нет, нету

- - - Добавлено - - -

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

codeo
31.05.2014, 21:25
Подскажите правильно ли я сделал ворота по клавише?



if(newkeys == 65536)
{
for(new ID = 0; ID < MAX_GATES; ID++)
{
if(Gate[ID][Created] == 1)
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GateEnter(i,ID))
{
SomeoneNearGate[ID] = 1;
}
else
{
if(SomeoneNearGate[ID] == 0)
{
MoveObject(Gate[ID][GateObject],Gate[ID][closeX],Gate[ID][closeY],Gate[ID][closeZ],5);
}
}
}
}
if(SomeoneNearGate[ID] == 1)
{
MoveObject(Gate[ID][GateObject],Gate[ID][openX],Gate[ID][openY],Gate[ID][openZ],5);
}
SomeoneNearGate[ID] = 0;
SetTimerEx("GateClose", 4000, false, "d", 4);
}
}
}



forward GateClose();
public GateClose()
{
for(new ID = 0; ID < MAX_GATES; ID++)
{
if(SomeoneNearGate[ID] == 0)
{
MoveObject(Gate[ID][GateObject],Gate[ID][closeX],Gate[ID][closeY],Gate[ID][closeZ],5);
}
}
}

DeimoS
01.06.2014, 08:20
Может вы всё же сделаете то, что просил сделать я? Или уже закрывайте тему и решайте самостоятельно, раз так отчаянно игнорируете мои просьбы о использовании инклюда в new.pwn

codeo
01.06.2014, 12:23
DeimoS, Проблема похоже в таймере на 100мс, я и решил это проверить заменив таймер на клавишу, вот и спрашиваю правильно ли я сделал..