Добро пожаловать на Pawno-Info.Ru - Портал о программировании v2.0

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию своим коллегам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andrease? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

[Вопрос] Есть-ли что-то, что можно оптимизировать?

Статус
В этой теме нельзя размещать новые ответы.

foreignspy

• Зарегистрированный •
Регистрация
13 Янв 2020
Сообщения
30
Реакции
2
Привет. Написал систему "загрузки текстур", и, почему-то, кажется, что этот кусок кода будет нагружать сервер. Подскажите, так ли это и если да, то что можно оптимизировать?

Таймер, вызывающийся для отдельного игрока каждые 75 мс. пятьдесят раз.

PHP:
callback:callback_loading_textures ( playerid ) 
{
	if ( IsPlayerConnected ( playerid ) )  
	{
		pl_loading_textures_progress { playerid } += 2 ; // Прогресс загрузки

		if ( ( pl_loading_textures_progress { playerid } + 2 ) <= 100 ) 
		{ // Этот отрезок кода вызвал мои подозрения.
			new 
				string [ 100 + 1 ]; 

			for ( new i = 0 ; i < ( pl_loading_textures_progress { playerid } / 2 ) ; i ++ ) 
				strcat ( string , "I" ) ; 

			PlayerTextDrawSetString ( playerid, pl_loading_textures_td [ 0 ] [ playerid ], string ) ; 

			SetTimerEx ( "callback_loading_textures", 75, false, "i", playerid ) ;  
		} 
		else 
		{
			destroy_loading_textures_tds ( playerid ) ; 
			TogglePlayerControllable ( playerid, true ) ; 

			pl_loading_textures_progress { playerid } = 0 ; 
			pl_loading_textures_status [ playerid ] = false ; 

		}
	} 

	return 1 ; 
}
 

Ne_f0Re3t

• Зарегистрированный •
Регистрация
12 Дек 2019
Сообщения
22
Реакции
5
Возраст
21
Привет. Написал систему "загрузки текстур", и, почему-то, кажется, что этот кусок кода будет нагружать сервер. Подскажите, так ли это и если да, то что можно оптимизировать?

Таймер, вызывающийся для отдельного игрока каждые 75 мс. пятьдесят раз.

PHP:
callback:callback_loading_textures ( playerid ) 
{
	if ( IsPlayerConnected ( playerid ) )  
	{
		pl_loading_textures_progress { playerid } += 2 ; // Прогресс загрузки

		if ( ( pl_loading_textures_progress { playerid } + 2 ) <= 100 ) 
		{ // Этот отрезок кода вызвал мои подозрения.
			new 
				string [ 100 + 1 ]; 

			for ( new i = 0 ; i < ( pl_loading_textures_progress { playerid } / 2 ) ; i ++ ) 
				strcat ( string , "I" ) ; 

			PlayerTextDrawSetString ( playerid, pl_loading_textures_td [ 0 ] [ playerid ], string ) ; 

			SetTimerEx ( "callback_loading_textures", 75, false, "i", playerid ) ;  
		} 
		else 
		{
			destroy_loading_textures_tds ( playerid ) ; 
			TogglePlayerControllable ( playerid, true ) ; 

			pl_loading_textures_progress { playerid } = 0 ; 
			pl_loading_textures_status [ playerid ] = false ; 

		}
	} 

	return 1 ; 
}
как минимум здесь можно "оптимизировать" читабельность кода или тебе нравится читатьвотатак или МожетВотТак? а, ну и еще, проверку на подключенность игрока можно убрать и создавать таймер в том месте где уже игрок подключился и удалять при его выходе
 
Последнее редактирование:

execution

Участник форума
Пользователь
Регистрация
23 Июн 2017
Сообщения
438
Реакции
73
Массив string лучше сделать статически, ибо ни к чему каждые 75мс для каждого игрока создавать локальный массив, только стэк зря забиваешь.
 

foreignspy

• Зарегистрированный •
Регистрация
13 Янв 2020
Сообщения
30
Реакции
2
Массив string лучше сделать статически, ибо ни к чему каждые 75мс для каждого игрока создавать локальный массив, только стэк зря забиваешь.
Добавить к глобальным переменным строку, сохраняющую палочки (речь идёт об "I"), я правильно понял?

---------- Сообщение добавлено в 16:05 ---------- Предыдущее сообщение добавлено в 16:02 ----------

как минимум здесь можно "оптимизировать" читабельность кода или тебе нравится читатьвотатак или МожетВотТак? а, ну и еще, проверку на подключенность игрока можно убрать и создавать таймер в том месте где уже игрок подключился и удалять при его выходе
Понял.
Про читабельность кода, переменные невоттакие, а вот_такие_вот или ВотТакиеВот. Мне по кайфу.
 

red.inc

Участник форума
Пользователь
Регистрация
20 Июл 2019
Сообщения
160
Реакции
7
Возраст
19
Хм. По мне, здесь хватит несколько математических решений.
Во-первых, проверить на заполненность переменной.
Во-вторых, с помощью выше переменной, мы прибавляем значение на 1 и через strcat добавляем палочку.
 

execution

Участник форума
Пользователь
Регистрация
23 Июн 2017
Сообщения
438
Реакции
73
Добавить к глобальным переменным строку, сохраняющую палочки (речь идёт об "I"), я правильно понял?

---------- Сообщение добавлено в 16:05 ---------- Предыдущее сообщение добавлено в 16:02 ----------



Понял.
Про читабельность кода, переменные невоттакие, а вот_такие_вот или ВотТакиеВот. Мне по кайфу.
PHP:
if ( ( pl_loading_textures_progress { playerid } + 2 ) <= 100 ) 
{ // Этот отрезок кода вызвал мои подозрения.
	static 
		string [ 100 + 1 ]; 
	string = "";
	for ( new i = 0 ; i < ( pl_loading_textures_progress { playerid } / 2 ) ; i ++ ) 
		strcat ( string , "I" ) ; 

	PlayerTextDrawSetString ( playerid, pl_loading_textures_td [ 0 ] [ playerid ], string ) ; 

	SetTimerEx ( "callback_loading_textures", 75, false, "i", playerid ) ;  
}
 
Статус
В этой теме нельзя размещать новые ответы.
shape1
shape2
shape3
shape4
shape7
shape8
Сверху