SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 11/06/2010, 01:58 PM   #11
RAEN
Huge Clucker
 
Join Date: Nov 2007
Posts: 242
Reputation: 4
Default Оптимизация кода

Дайте уже ответ, break; можно ли использовать на данном примере (где под действие цикла попадают несколько игроков) или она будет убивать цикл при соответствии с условием (т.е. по коду с 0 ид)
Code:
for(new i = 0; i < MAX_PLAYERS; i++)
	{
	 if(IsPlayerConnected(i))
       {
	   if(i != 3 )
	   {
	    SendClientMessage(i, COLOR_YELLOW, "ТЕСТ");
	   }
	 }
     }
RAEN is offline   Reply With Quote
Old 11/06/2010, 02:01 PM   #12
eakwarp
High-roller
 
Join Date: Feb 2007
Posts: 1,868
Reputation: 128
Default Оптимизация кода

Quote:
Originally Posted by RAEN
Дайте уже ответ, break; можно ли использовать на данном примере (где под действие цикла попадают несколько игроков) или она будет убивать цикл при соответствии с условием (т.е. по коду с 0 ид)
Code:
for(new i = 0; i < MAX_PLAYERS; i++)
	{
	 if(IsPlayerConnected(i))
       {
	   if(i != 3 )
	   {
	    SendClientMessage(i, COLOR_YELLOW, "ТЕСТ");
	   }
	 }
     }
Нет нельзя.
__________________
More than 10 years of development, more than 40 mb(sic! 1 kk lines+) of source code, more than a two hundred units and more than 35k revisions(upd. aug 2017). Valakas Roleplay - choose your role.

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



[Gamemode] Valakas Trucker Roleplay (Russian).
eakwarp is online now   Reply With Quote
Old 11/06/2010, 02:32 PM   #13
RAEN
Huge Clucker
 
Join Date: Nov 2007
Posts: 242
Reputation: 4
Default Оптимизация кода

Спс за помощь. Какие виды оптимизаций ещё можете предложить
RAEN is offline   Reply With Quote
Old 11/06/2010, 02:35 PM   #14
eakwarp
High-roller
 
Join Date: Feb 2007
Posts: 1,868
Reputation: 128
Default Оптимизация кода

Quote:
Originally Posted by RAEN
Спс за помощь. Какие виды оптимизаций ещё можете предложить
вверху
new MaxPlayers;

в OnGameModeInt
MaxPlayers=GetMaxPlayers();

и соответственно в циклах заменить MAX_PLAYERS на MaxPlayers
__________________
More than 10 years of development, more than 40 mb(sic! 1 kk lines+) of source code, more than a two hundred units and more than 35k revisions(upd. aug 2017). Valakas Roleplay - choose your role.

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



[Gamemode] Valakas Trucker Roleplay (Russian).
eakwarp is online now   Reply With Quote
Old 11/06/2010, 02:47 PM   #15
RAEN
Huge Clucker
 
Join Date: Nov 2007
Posts: 242
Reputation: 4
Default Оптимизация кода

Eakwarp [Valakas.ru] да эту оптимизацию уже давно юзаю...ток чуть по другому...

Какие будут ещё примеры?)
RAEN is offline   Reply With Quote
Old 11/06/2010, 02:52 PM   #16
JesterX
Little Clucker
 
Join Date: Dec 2008
Posts: 5
Reputation: 0
Default Оптимизация кода

Quote:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(i == 3 )
{
SendClientMessage(i, COLOR_YELLOW, "ТЕСТ");
}
}
}
SendClientMessage(3, COLOR_YELLOW, "ТЕСТ");

Гениально? xD
JesterX is offline   Reply With Quote
Old 11/06/2010, 02:54 PM   #17
RAEN
Huge Clucker
 
Join Date: Nov 2007
Posts: 242
Reputation: 4
Default Re: Оптимизация кода

JesterX Как бы тебя не обидеть? Мы тут не о гениальности кода говорим, а о его оптимизации
RAEN is offline   Reply With Quote
Old 11/06/2010, 03:04 PM   #18
JesterX
Little Clucker
 
Join Date: Dec 2008
Posts: 5
Reputation: 0
Default Re: Оптимизация кода

Да не, яж шучу

1. Попробуй использовать меньше public - функции, заменяй их на stock. Разумеется если они не под таймером и без удалённого вызова.
2. Некоторые функции можно ускорить, или найти альтернативные макросы, которые работают быстрее.
3. Избавится от лишнего бессмысленного бреда и быдло кода. Сделать логический подход к операциям.
4. Выровнять код лесенкой, смысла не даёт, зато сразу видно что красиво - а это обнадёживает на дальнейшую работу. :P
JesterX is offline   Reply With Quote
Old 11/06/2010, 03:09 PM   #19
MX_Master
Huge Clucker
 
Join Date: Jul 2007
Posts: 388
Reputation: 5
Default Re: Оптимизация кода

могу показать пример, который максимально оптимизирует такие циклы


stock maxPlayerID;

public OnPlayerConnect ( playerid )
{
if ( playerid > maxPlayerID ) maxPlayerID = playerid;
}

public OnPlayerDisconnect ( playerid, reason )
{
if ( playerid == maxPlayerID )
{
new p;

for ( p = playerid - 1; p >= 0; --p )
{
if ( IsPlayerConnected(p) )
{
maxPlayerID = p;
break;
}
}

if ( p < 0 ) maxPlayerID = 0;
}
}

// ...

for ( new p; p <= maxPlayerID; ++p )
{
if ( IsPlayerConnected(p) )
{
// tro lo lo
}
}



-- правка --
добавил красок
MX_Master is offline   Reply With Quote
Old 11/06/2010, 03:14 PM   #20
RAEN
Huge Clucker
 
Join Date: Nov 2007
Posts: 242
Reputation: 4
Default Re: Оптимизация кода

MX_Master ага хорошая оптимизация, только я про неё слышал не оч. хорошие отзывы... Хотя если говоришь что (максимально оптимизирует), то стоит попробывать
RAEN is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 04:57 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.