Проблема в функции вывода сообщения -
Makar007 - 05.03.2014
Доброго времени суток.
Сама функция:
PHP Code:
stock SendAdminMessageEx(color, fstring[], {Float, _}:...)
{
#define BYTES_PER_CELL (cellbits / 8)
static const STATIC_ARGS = 3;
new n = (numargs() - STATIC_ARGS) * BYTES_PER_CELL;
if(n)
{
new message[128], arg_start, arg_end;
#emit CONST.alt fstring
#emit LCTRL 5
#emit ADD
#emit STOR.S.pri arg_start
#emit LOAD.S.alt n
#emit ADD
#emit STOR.S.pri arg_end
do
{
#emit LOAD.I
#emit PUSH.pri
arg_end -= BYTES_PER_CELL;
#emit LOAD.S.pri arg_end
}
while (arg_end > arg_start);
// Push the static format parameters.
#emit PUSH.S fstring
#emit PUSH.C 128
#emit PUSH.ADR message
n += BYTES_PER_CELL * 3;
#emit PUSH.S n
#emit SYSREQ.C format
n += BYTES_PER_CELL;
#emit LCTRL 4
#emit LOAD.S.alt n
#emit ADD
#emit SCTRL 4
return SendAdminMessage(color, message);
}
else return SendAdminMessage(color, fstring);
}
stock SendAdminMessage(color, string[])
{
foreach(i)
{
if(PI[i][AdminRank] >= 1) SendClientMessage(i, color, string);
}
return true;
}
Проблема: Не выводится последний %s, %d, %i и т.п
Пример:
PHP Code:
SendAdminMessageEx(COLOR_BROWN,"[ADM]: %s %s[ID %d] выходит на админ дежурство.", PI[playerid][AdminName], GetPlayerNameEx(playerid), playerid);
В чате будет только
[ADM]: %s %s[ID ] выходит на админ дежурство. - последний %d в чат не попадет.
Re: Проблема в функции вывода сообщения -
White_116 - 05.03.2014
static const STATIC_ARGS =
3;
change to
static const STATIC_ARGS =
4;
И лучше не занимайтесь мазохизмом.
Re: Проблема в функции вывода сообщения -
Makar007 - 05.03.2014
Quote:
Originally Posted by White_116
И лучше не занимайтесь мазохизмом.
|
Спасибо. Но...
Почему это мазохизм?
Re: Проблема в функции вывода сообщения -
OKStyle - 06.03.2014
Потому что судя по тестам данная функция куда медленнее обычного формата.
Re: Проблема в функции вывода сообщения -
Makar007 - 06.03.2014
Quote:
Originally Posted by OKStyle
Потому что судя по тестам данная функция куда медленнее обычного формата.
|
Но... это же почти тот же самый формат.
Или нет?
Re: Проблема в функции вывода сообщения -
Stepashka - 06.03.2014
Quote:
Originally Posted by Makar007
Но... это же почти тот же самый формат.
Или нет?
|
Даже не близко...
Re: Проблема в функции вывода сообщения -
Makar007 - 06.03.2014
Quote:
Originally Posted by OKStyle
Потому что судя по тестам данная функция куда медленнее обычного формата.
|
А примерно на сколько медленнее?
Подскажите пожалуйста.
Re: Проблема в функции вывода сообщения -
Mutha_X - 06.03.2014
Quote:
Originally Posted by Makar007
А примерно на сколько медленнее?
Подскажите пожалуйста.
|
Составить тест на скорость работы, состоящий из нескольких строк(<15), вам не позволяет лень или религия?!
Ставлю на последний вариант, ибо на лицо влияние церкви на мозг.
Re: Проблема в функции вывода сообщения -
OKStyle - 07.03.2014
http://pawno.su/showthread.php?t=95514 - в самом низу первого сообщения ссылка на тест скорости подобной конструкции.
Re: Проблема в функции вывода сообщения -
Urukhay - 07.03.2014
Если бы она не нужна была бы, ****** бы ее не делал. Тем более там Ассемблер.
Re: Проблема в функции вывода сообщения -
OKStyle - 07.03.2014
Ага. А ****** стал эталоном программирования? Или ты видел хоть одну его полезную для профессионалов работу? Я - нет. Тем более Ассемблер тут не нужен. 80% англоговорящего форума делают одни и те же скрипты - это делает их нужными что-ли?
Да и вообще - в чём проблема скачать код тестов и проверить разницу скорости по аналогии?
Re: Проблема в функции вывода сообщения -
][Noname][ - 07.03.2014
foreach
Re: Проблема в функции вывода сообщения -
XemyL - 07.03.2014
Quote:
Originally Posted by SPAWN_METAL
foreach
|
Как по мне - ужасная работа. Лично для себя переписал. И код меньше в разы и работает быстрее. Собственно, многие кто разбирается так же сделали.
Re: Проблема в функции вывода сообщения -
Stepashka - 07.03.2014
Quote:
Originally Posted by XemyL
Как по мне - ужасная работа. Лично для себя переписал. И код меньше в разы и работает быстрее. Собственно, многие кто разбирается так же сделали.
|
Смотрим, и там куча связанного:
http://forum.sa-mp.com/showthread.ph...40#post1678140
Re: Проблема в функции вывода сообщения -
OKStyle - 07.03.2014
Quote:
Originally Posted by SPAWN_METAL
foreach
|
Это для нубов, я спрашивал про профессиональные разработки. Кому нужен этот тормозной и неоптимизированный форич с кучей свистелок и перделок от которых сервер заикается? ))
Re: Проблема в функции вывода сообщения -
Urukhay - 08.03.2014
OKStyle, я конечно не хочу тебя унизить, оскорбить или еще что в этом роде. Но ты хоть знаешь каким образом работает этот скрипт(SendMes)? Ты хоть знаешь функции Ассемблера, директиву #emit от и до. Ну тогда сможешь описать любое действие в данном скрипте?
Re: Проблема в функции вывода сообщения -
OKStyle - 08.03.2014
Quote:
Originally Posted by Urukhay
OKStyle, я конечно не хочу тебя унизить, оскорбить или еще что в этом роде. Но ты хоть знаешь каким образом работает этот скрипт(SendMes)? Ты хоть знаешь функции Ассемблера, директиву #emit от и до. Ну тогда сможешь описать любое действие в данном скрипте?
|
А ты ссылку выше вообще смотрел? Судя по всему нет.