Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
плагин как то не любит работать с "strlen" (параметры) передаваемые кмд процессором.
так по мне было написано что принцип работы этого процессора схож с ZCMD, вот сним можно работать с strlen, а с dc_cmd никак.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Простой пример -
PHP код:
CMD:test(playerid,params[])
{
if(sscanf(params, "s[64]", params[0]))
return SendClientMessage(playerid, COLOR_WHITE, "/test [Text]");
if(strlen(params[0]) >= 64)
return SendClientMessage(playerid, COLOR_GREY,"TEST: sokratite text.");
static const
test_msg[] = " %s %s";
new
test_string[ sizeof(test_msg) - (2*2) + MAX_PLAYER_NAME + 64 ]
;
format(test_string,sizeof(test_string), test_msg, Player[playerid][pName], params[0]);
SetPlayerChatBubble(playerid,params[0],0xDD90FFFF,30.0,10000);
return true;
}
Начнём с того, что для чего ты обрабатываешь всего лишь 1 параметр через sscanf, если он в массиве params и так есть? Ты данные из строки в эту же строку и записываешь
И закончим тем, что так проверка естественно не будет срабатывать, ибо ты в самом sscanf указал размер строки в 64 символа и sscanf будет записывать в массив именно 64 символа, а остальной текст отбрасывать, выплёвывая в консоль предупреждение об этом.
Вот как твоя команда должна выглядеть
А вот как твой вариант будет работать, хоть это и неправильная реализацияPHP код:
CMD:test(playerid,params[])
{
if(isnull(params))
//if(!strlen(params))//Либо так, но первый вариант быстрее
return SendClientMessage(playerid, COLOR_WHITE, "/test [Text]");
if(strlen(params) >= 64)
return SendClientMessage(playerid, COLOR_GREY,"TEST: sokratite text.");
static const
test_msg[] = " %s %s";
new
test_string[ sizeof(test_msg) - (2*2) + MAX_PLAYER_NAME + 64 ]
;
format(test_string,sizeof(test_string), test_msg, Player[playerid][pName], params);
SetPlayerChatBubble(playerid,params,0xDD90FFFF,30.0,10000);
return true;
}
PHP код:
CMD:test(playerid,params[])
{
if(sscanf(params, "s[65]", params[0]))
return SendClientMessage(playerid, COLOR_WHITE, "/test [Text]");
if(strlen(params[0]) >= 64)
return SendClientMessage(playerid, COLOR_GREY,"TEST: sokratite text.");
static const
test_msg[] = " %s %s";
new
test_string[ sizeof(test_msg) - (2*2) + MAX_PLAYER_NAME + 64 ]
;
format(test_string,sizeof(test_string), test_msg, Player[playerid][pName], params[0]);
SetPlayerChatBubble(playerid,params[0],0xDD90FFFF,30.0,10000);
return true;
}
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Salik_Davince (22.03.2016) Unreal (25.04.2016)
я привел простой пример с работой с sscanf, ну дело не в этом, спасибо.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Обновление (оптимизация/добавление новых фишек) будет?
Pro-pawn.ru
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)