Так-же когда пишите условие, например if(AB = 1 && CC = 1 && AA = 1 && VV = 1) , трамбуйте все по порядку, чтобы не давать лишнею нагрузку на сервер, например, Вам нужно проверить есть ли у игрока что-либо, допустим переменная 1, и далее вам надо опять же проверить где он находится, Вы сначала делаете проверку на переменную например if(Playerinfo[playerid][pAdmin] == 1) только потом проверку на локацию, например: if(Playerinfo[playerid][pAdmin] == 1 && IsPlayerInRangeOfPoint(playerid, Radius, X, Y, Z)) выполнение. Это уже будет не оптимизированный вариант: if(IsPlayerInRangeOfPoint(playerid, Radius, X, Y, Z) && Playerinfo[playerid][pAdmin] == 1)
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
ZirkiN со стороны выполнения сценария одинаково, а со стороны оптимизации намного лучше. Хотя бы потому-что если первая переменная не ровняется одному, смысл продолжать сценарий нет, а значит он не будет проверять игрока на местность. Так-что вовсе не одно и тоже.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
DizeL-ZR- трудно ещё как трудно, когда у тебя на сервере больше 100 игроков, и мод достаточно большой, если сделать всё по уму, все такие проверки оптимизировать, то можно достаточно сэкономить запросов (использование процессора). Сначала когда мод, проблем нет, работает быстро даже если вообще не оптимизировать, а когда мод нарастает, сразу видишь результаты.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
ZirkiN со стороны выполнения сценария одинаково, а со стороны оптимизации намного лучше.
Да оптимизация работы - это и есть оптимизация выполнения сценария. Походу ты даже не понимаешь до конца выражение if(Playerinfo[playerid][pAdmin] == 1 && IsPlayerInRangeOfPoint(playerid, Radius, X, Y, Z)).
Quote (toneysix)
если сделать всё по уму, все такие проверки оптимизировать, то можно достаточно сэкономить запросов (использование процессора). Сначала когда мод, проблем нет, работает быстро даже если вообще не оптимизировать, а когда мод нарастает, сразу видишь результаты.
'если сделать всё по уму' то таких проблем не возникнет (исключая естественный прирост трудоемкости)
Quote (toneysix)
сэкономить запросов (использование процессора).
омг, это называется Тик
all:GMCC ~2% current:GMCC.C.L0 ~49%
Сообщение отредактировал ZirkiN - Среда, 30.12.2009, 08:17
ZirkiN что за бред? Ты видимо понять не можешь в чём заключается оптимизация, во первых && сначала проверяет первое условие , если оно ровняется одному (по нашему примеру) то он идёт дальше, если же нет, то он останавливает проверку и возвращается. Или ты считаешь, что проверить игрока на местность это всё равно что, проверить игрока на переменную? Не думаю так.
Причём тут твой тик, я объясняю на русском языке всё, что было для других пользователей понятно. А потом вот ищи что ты имел ввиду со своим тиком. Я даю разумные понятия.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Сообщение отредактировал toneysix - Среда, 30.12.2009, 08:06
Ты видимо понять не можешь в чём заключается оптимизация
я то как раз прекрасно понимаю :P
Quote (toneysix)
во первых && сначала проверяет первое условие
во первых первое 'условие' находится справа, это стандарт с++ - все операции выполняются исходя из их приоритета справа на лево поэтому правильно говорить левый операнд
Quote (toneysix)
А потом вот ищи что ты имел ввиду со своим тиком. Я даю разумные понятия.
пользователь введет в гугл "тик процессора" и найдет, а если введет "запрос процессора", то не найдет
all:GMCC ~2% current:GMCC.C.L0 ~49%
Сообщение отредактировал ZirkiN - Среда, 30.12.2009, 08:45
во первых первое 'условие' находится справа, это стандарт с++ - все операции выполняются исходя из их приоритета справа на лево К счастью pawno не написал на c++, очень похоже на обычный си и паскаль.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
ZirkiN да, но ты открой паскаль и посмотри, и второе, мне совершенно не интересно знать, что там у си, мы ведем речь о PAWNO, я это не просто так взял, я читал на оф.форуме уроки по оптимизации, достаточно было понять суть. Кто хочет оптимизировать свой мод, ну если мы конечно имеем ввиду о серьезном проекте, тот будет придерживаться этих правил, а именно составлять правильные условие, в правильном порядке.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Кто хочет оптимизировать свой мод, ну если мы конечно имеем ввиду о серьезном проекте, тот будет придерживаться этих правил, а именно составлять правильные условие, в правильном порядке.
на самом деле оптимизация заключается не только в очистке кода от лишних входов в трудоемкие функции, но и в сбалансировании используемых ресурсов 300мессаг кстати я ждал что ты мне приведешь что-то типо наглядного докозательства что && берет сначала левый операнд и если тот 0 - то возвращает 0 без рассмотрения правого типо [pwn]public OnGameModeInit(){ new lol; printf(" 1 && 1 "); lol = Operand(0,1) && Operand(1,1); printf(" 0 && 1 "); lol = Operand(0,0) && Operand(1,1); printf(" 1 && 0 "); lol = Operand(0,1) && Operand(1,0); printf(" 0 && 0 "); lol = Operand(0,0) && Operand(1,0); }
Я взял && как чисто для теста, вообще конечно наглядно всё выглядит примерно так if(playerinfo[playerid][pAdmin] != 1) return false; if(!IsPlayerInRangeOfPoint(playerid, Radius, X, Y, Z)) return false; Что и требовалось доказать не так ли? На счёт правой или левой стороны, так переставь местами, тут речь идёт совсем о другом.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Сообщение отредактировал toneysix - Среда, 30.12.2009, 08:45
Опять не понял смысл, смысл состоит не в том, что ты там доказал, что оператор работает с права налево, а в том, чтобы трамбовать условия. Ты же не будешь запускать цикл, если например какая то переменная не ровна чему-то.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru