Чисто профессиональный юмор для близко знакомых с моим кодом.
Вид для печати
Чёрд, да если верить таким отзывам, из-за меня на Pro-Pawn одни проблемы.
Что ж, расставлю все точки над "i".
Ещё в прошлом году я придумал такой трюк с подсчётом размера строки, чтобы, как многие из вас уже догадались, уменьшить используемый серверов объём стекового пространства.
Я думал, этой программой уже никто не пользуется.
Да, у топикстартера в 1-м варианте код выглядит раздутым, и учитывая скудные возможности препроцессора в компиляторе Pawn, вряд ли с этим можно что-то сделать.
Но в то же время такой код куда более универсален. Если нужно изменить содержимое форматной строки, придётся... всего лишь изменить это содержимое - остальную работу компилятор сделает сам, не нужно ничего пересчитывать.
IMO, именно таким и должен быть качественный код.
Если же полагаться на сторонние программы вроде SimplePawn, каждый раз придётся выискивать её, чтобы пересчитать всё заново.
По сути всё сводится к "хочешь поменять текст? живо ищи калькулятор! или SimplePawn!" -_-
Пожалуй, это и оказалось основной причиной прекращения дальнейшей разработки той программы.
Daniel_Cortez, Да ема е. Я уже почти все команды переписал...
Мне это не очень важно, учитывая, если код качественный и обрабатывается быстрее.Цитата:
Да, у топикстартера в 1-м варианте код выглядит раздутым
Теперь я вообще не понимаю, что всё таки лучше? Мнения расходятся...
Никто не ответит? Просто остановился на половине, а дальше не знаю как именно писать. Буду благодарен.
:D
Тут твой выбор, есть 2 мнения, выбирай что ближе.(1)
Я в свое время предпочел такой вариант. Как предложил ^_^:
Просто, понятно и работает как часики. А гнаться за милисекундами, как уже говорилось много раз не стоит.PHP код:
CMD:freeze(playerid, params[])
{
new strcmd[59];//Вместо потерянной памяти из сегмента данных используем стек, при этом теряем 0 байтов
if(PInfo[playerid][pAdmin] < 1) return Message(playerid, COLOR_RED,"(Ошибка): {FF6666}Вам недоступна данная команда.");
else if(sscanf(params, "i", params[0])) return Message(playerid, COLOR_GREEN,"(Используйте): {669966}/freeze [ID Player]");
else if(!IsPlayerConnected(params[0])) return Message(playerid, COLOR_RED,"(Ошибка): {FF6666}Игрока нет на сервере.");
format(strcmd, sizeof(strcmd), "Администратор %s(%d) Вас заморозил.", Nick(playerid));
Message(params[0], COLOR_RED, strcmd);
format(strcmd, sizeof(strcmd), "Вы заморозили игрока %s(%d).", Nick(params[0]));
Message(playerid, COLOR_RED, strcmd);
return TogglePlayerControllable(params[0], false);
}
Подобного слогана придерживался.Цитата:
Раз не погнался, два не погнался, и тут вдруг твой мод оказывается RLS'ом.
Я бы предпочёл 1-й способ, так как от начала с ним работаю.
Суть не в этом.
Если 1-й способ будет считаться медленнее 2-ого, но качественным и универсальным, то считается ли он эффективным?
Или же всё в порядке, оба одинаковы и выбирать уже на свой вкус?
Я так точного ответа и не услышал. Можете просто мне ответить, что считается лучшим вариантом?
- - - Добавлено - - -
Так как, после 3-ого поста, я переписал практически половину своего кода.
Не очень-то увлекает меня переписывать код по-несколько раз. Просто, хочу точно закрепить у себя в голове что лучше и, в дальнейшем, придерживаться этих способов, естественно, до появления новых "продвинутых" :)
Вопрос не решён.
А ты затести, какой вариант команды быстрее.