SA-MP Forums Archive
Оптимизация кода - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Оптимизация кода (/showthread.php?tid=153915)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13


Оптимизация кода - RAEN - 11.06.2010

Rто может сказать как можно оптимизировать мод с помощью функций: continue; break;
На примере кода (с коментами плз):

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



Оптимизация кода - BaRRyS3R - 11.06.2010

код - бред.

во первых проще сделать так:

Code:
SendClientmessage(3, COLOR_YELLOW, "TEST");
во вторых у тебя переменной playerid пытаються присвоить значение, что не возможно вданном случае, т.к нужно делать прверку ( == ), а не присваивание.
в третьих, у тебя цикл просто так пробежит, ибо ты ищешь переменную i, а сравниваешь - playerid.

я думаю тебе еще рано брейк, и континью юзать =\


Оптимизация кода - RAEN - 11.06.2010

омг да этот код я для теста привел чтобы могли показать примеры оптимизации кода (подумаешь очепятка)... Вот другой

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



Оптимизация кода - Fro1sha - 11.06.2010

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



Оптимизация кода - RAEN - 11.06.2010

Fro1sha спасибо за коментарии и то что ничего не объяснил... И кстати твой пример работает только для 1 игрока а не для 499 как в моем.


Оптимизация кода - Fro1sha - 11.06.2010

Quote:
Originally Posted by RAEN
Fro1sha спасибо за коментарии и то что ничего не объяснил...
Оно будет работать для стольки игроков сколько онлайн. Эта строчка значит "if(!IsPlayerConnected(i)) continue;", что если игрок не онлайн продолжить дальше.
if( i == 3 )
{
SendClientMessage(i, COLOR_YELLOW, "ТЕСТ");
break;
}

Это значит что если i = 3, то послать сообщение 3 иду и закончить цикл break

Quote:
Originally Posted by RAEN
И кстати твой пример работает только для 1 игрока а не для 499 как в моем.
У тебя тоже самое, только цикл будет идти до конца


Оптимизация кода - RAEN - 11.06.2010

Quote:

И кстати твой пример работает только для 1 игрока а не для 499 как в моем.
У тебя тоже самое, только цикл будет идти до конца

Дык в моём случае, как я понял break; уже применить не получится...т.к. выполняется не для 1 игрока.


Оптимизация кода - BaRRyS3R - 11.06.2010

break; в твоём примере - закончит выполнять цикл. без него, после наахождения ид 3 он пойдет дальше до 500.


Оптимизация кода - RAEN - 11.06.2010

BaRRyS3R это понятно... я и говорю что её поулчается нельзя применять в циклах, где нужно применить определенное действие к нескольким игрокам (как в моём примере)... Можно применить только в примере Fro1sha


Оптимизация кода - Fro1sha - 11.06.2010

break удобна тем, что когда что-то ищешь в цикле, нашел, остановил, чтобы не тратить время дальше


Re: Оптимизация кода - Zeex - 11.06.2010

http://forum.sa-mp.com/index.php?topic=117573.0 - про это забыли что ли?


Re: Оптимизация кода - RAEN - 11.06.2010

Zeex а ты языковыми разделами не ошибся?


Re: Оптимизация кода - MX_Master - 11.06.2010

Quote:
Originally Posted by RAEN
MX_Master ага хорошая оптимизация, только я про неё слышал не оч. хорошие отзывы... Хотя если говоришь что (максимально оптимизирует), то стоит попробывать
Грань сильной оптимизации очень тонкая, поэтому вы должны точно знать, что делаете, и что ваш код в точности делает.

Приведи здесь эти отзывы, чтобы не быть голословным.


Quote:
Originally Posted by Zeex
http://forum.sa-mp.com/index.php?topic=117573.0 - про это забыли что ли?
те, кто не умеет оптимизировать стандартными средствами, тому даже самый при самый золотой плагин - не поможет


Re: Оптимизация кода - Fro1sha - 11.06.2010

Quote:
Originally Posted by JesterX
1. Попробуй использовать меньше public - функции, заменяй их на stock. Разумеется если они не под таймером и без
Чем public не угодил? zcmd вроде как раз на них работает и вроде ловчее через них . Знаю одно про них, что от них размер мода увеличивается.


Re: Оптимизация кода - MX_Master - 11.06.2010

А размер имеет значение? (((:


Re: Оптимизация кода - eakwarp - 11.06.2010

Quote:
Originally Posted by MX_Master
А размер имеет значение? (((:
Размер против возможности удаленно вызывать функцию.


Re: Оптимизация кода - JesterX - 11.06.2010

Каждый public имеет свой индекс, и вызывается именно по индексу, в отличии от остальных. Кто не верит есть функция funcidx. Логично предположить, что это затраты времени!?

zcmd - всего лишь неудачный клон dcmd, кто его использует - тот точно неудачник


Re: Оптимизация кода - MX_Master - 11.06.2010

У меня паблики это сами колбэки и функции, которые запускаются по таймеру, остальное все - stock. Если у кого-то не так, то ваш код - не оптимизирован. Удаленно я функций не запускаю.


Re: Оптимизация кода - ZaR - 11.06.2010

Вопрос по теме. Есть ли смысл каждый раз при выполнении запроса к базе мускуля коннектится, и после запроса клозить?


Re: Оптимизация кода - eakwarp - 11.06.2010

Quote:
Originally Posted by s3ap
Вопрос по теме. Есть ли смысл каждый раз при выполнении запроса к базе мускуля коннектится, и после запроса клозить?
Что то у тебя запредельно бессмысленные идеи) Закрывать коннект к базе разумно лишь в том случае если ты решил к другой приконнектиться.