SERVER: Unknown command
#1

Hi all,when I use / car, the message in chat stands out "SERVER: Unknown command", thus command works, help to clean message "SERVER: Unknown command".
Код:
YCMD:car(playerid, params[], help)
{
if(Player[playerid][pAdmin] >= 1)
{
new string[128], carid, carcolor1, carcolor2;
if(!sscanf(params, "iii", carid, carcolor1, carcolor2))
{
if(carid >= 400 && carid <= 611)
{
if(carcolor1 >= 0 && carcolor1 <= 252)
{
if(carcolor2 >= 0 && carcolor2 <= 252)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
CreateVehicle(carid, X+4, Y, Z, 10, carcolor1, carcolor2, 100);
format(string, sizeof(string), "Вы заспавнили автомобиль %s [ID: %d] с цветами [%d, %d]",VehicleNames[carid-400], carid, carcolor1, carcolor2);
return SendClientMessage(playerid,COLOR_GREEN, string);
}
else return SendClientMessage(playerid, COLOR_RED, "Неверный ID цвета!Используйте числа от 0 до 252.");
}
else return SendClientMessage(playerid, COLOR_RED, "Неверный ID цвета!Используйте числа от 0 до 252.");
}
else return SendClientMessage(playerid, COLOR_RED, "Неверный ID транспорта!Используйте от 400 до 611.");
}
else return SendClientMessage(playerid, COLOR_GREEN, "Используйте: /car [ID] [цвет 1][цвет 2].");
}
else return SendClientMessage(playerid, COLOR_RED, "У Вас недостаточно высокий уровень,для использования этой команды!");
}
Reply
#2

Try
pawn Код:
YCMD:car(playerid, params[], help)
{
    if(Player[playerid][pAdmin] >= 1)
    {
        new string[128], carid, carcolor1, carcolor2;
        if(!sscanf(params, "iii", carid, carcolor1, carcolor2))
        {
            if(carid >= 400 && carid <= 611)
            {
                if(carcolor2 >= 0 && carcolor2 <= 252)
                {
                    new Float:X, Float:Y, Float:Z;
                    GetPlayerPos(playerid, X, Y, Z);
                    CreateVehicle(carid, X+4, Y, Z, 10, carcolor1, carcolor2, 100);
                    format(string, sizeof(string), "Вы заспавнили автомобиль %s [ID: %d] с цветами [%d, %d]",VehicleNames[carid-400], carid, carcolor1, carcolor2);
                    SendClientMessage(playerid,COLOR_GREEN, string);
                    return true;
                }
                else return SendClientMessage(playerid, COLOR_RED, "Неверный ID цвета!Используйте числа от 0 до 252.");
            }
            else return SendClientMessage(playerid, COLOR_RED, "Неверный ID транспорта!Используйте от 400 до 611.");
        }
        else return SendClientMessage(playerid, COLOR_GREEN, "Используйте: /car [ID] [цвет 1][цвет 2].");
    }
    else return SendClientMessage(playerid, COLOR_RED, "У Вас недостаточно высокий уровень,для использования этой команды!");
   
    return true;
}
Reply
#3

I know this entirely depends on the coder's personal preference, but I'm just going to note this down as a small suggestion for you.

Instead of doing:
pawn Код:
if(Player[playerid][pAdmin] >= 1)
{
    new string[128], carid, carcolor1, carcolor2;
    if(!sscanf(params, "iii", carid, carcolor1, carcolor2))
    {
        if(carid >= 400 && carid <= 611)
        {
            if(carcolor2 >= 0 && carcolor2 <= 252)
            {
                // ...
            }
            else return SendClientMessage(playerid, COLOR_RED, "Неверный ID цвета!Используйте числа от 0 до 252.");
        }
        else return SendClientMessage(playerid, COLOR_RED, "Неверный ID транспорта!Используйте от 400 до 611.");
    }
    else return SendClientMessage(playerid, COLOR_GREEN, "Используйте: /car [ID] [цвет 1][цвет 2].");
}
You can easily do:
pawn Код:
if(Player[playerid][pAdmin] == 0)
    return SendClientMessage(playerid, COLOR_RED, "У Вас недостаточно высокий уровень,для использования этой команды!");

new carid, carcolor1, carcolor2;
if(sscanf(params, "iii", carid, carcolor1, carcolor2))
    return SendClientMessage(playerid, COLOR_GREEN, "Используйте: /car [ID] [цвет 1][цвет 2].");

if(!(400 <= carid <= 611)) // this is the same as if(carid < 400 || carid > 600)!
    return SendClientMessage(playerid, COLOR_RED, "Неверный ID транспорта!Используйте от 400 до 611.");

if(!(0 <= carcolor1 <= 252) || !(0 <= carcolor2 <= 252))
    return SendClientMessage(playerid, COLOR_RED, "Неверный ID цвета!Используйте числа от 0 до 252.");

// Now rest of the code
return true;
When I got introduced to commands back in 2007, I wasn't really familiar with scripting or programming, so I couldn't even think some more readability could be introduced. I remember having a really heavy scope-in-scope structure :P
Reply
#4

Viniborn,"SERVER: Unknown command" wasn't gone and warning
Код:
D:\Games\SAMP сервер\SampDM\gamemodes\SampDMv.1.2.pwn(203) : warning 225: unreachable code
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Warnings.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)