shape1
shape2
shape3
shape4
shape7
shape8

Секундные паблики


Статус
Закрыто для дальнейших ответов.

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
Всем привет.

Ребята, сегодня речь пойдёт о секундных пабликах, которые на сегодняшний день, лично по моему мнению, есть в каждом моде.

Что такое секундный паблик? Это паблик, который обновляется каждую секунду с помощью таймера типа SetTimer.

К чему же я клоню? Клоню я к тому, что как раз из-за таких секундных пабликов, в моде происходит краш, сейчас объясню почему. В большинстве случаев краш мода из-за секундых пабликов происходит именно на хостинге. Проблема в том, что если у вас в секундном паблике находится слишком много кода, то серверная машина не успевает обработать весь этот код за одну секунду, и из-за этого в моде происходит краш.

Сейчас продемонстрирую решение данной проблемы.


По стандарту, мы создаём в паблике OnGameModeInit таймер типа SetTimer. Рассмотрим аргументы данного таймера.

1dfc6a871706ac19590e743a6da10ce8.png


Работать мы будем с аргументом repeating. Данный аргумент отвечает за то, будет ли функция повторятся или нет.

По стандарту мы привыкли ставить значение true, этого нельзя делать не в коем случае! Именно из-за этого в моде происходит краш.

Вы зададите вопрос: "Если мы выставим значение false, то наш секундный паблик не будет повторятся. Как сделать чтобы он повторялся?". Сделать это очень просто! Тот же самый таймер, который мы создавали в паблике OnGameModeInit, нам нужно прописать в нашем секундном паблике.

Пример:

public OnGameModeInit()
{
SetTimer("OneSecondTime", 1000, false);
return true;
}

Код:
public OneSecondTime()
{
	//Здесь ваш код
    SetTimer("OneSecondTime", 1000, false);
	return true;
}
Вывод: пока код не обработается полностью, паблик не начнёт обновляться заново.

На этом всё!

Урок подготовил: TheSeLToN
 
Последнее редактирование модератором:

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
@Drakoncik, 1000 - это одна секунда. 1000*60 - это уже минута, т.е. 60 секунд.
 
C

compan

Гость
Гость
В описании пишите про SetTimerEx, а в коде используете SetTimer.
 
И по-моему, это полный бред. Хоть сколько там кода, краш он никак не должен вызывать, максимум что - скорость выполнения поставленной задачи. Краш может произойти если только из-за какого-то определенного участка кода. Сугубо моё мнение.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.