Problem with commands
#1

Hi,
I've created some commands, but on the command /REPAIR, i can also type /abcdef or such things to activate the REPAIR command, and this is weird.
So far I got this:
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
 	if(!strcmp(cmdtext, "/suicide", true, 8))
		{
	    	SetPlayerHealth(playerid,0);
	   		SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/SUICIDE: {FFFF00}You have killed yourself.");
			return 1;
		}

 	if(!strcmp(cmdtext, "/repair", true, 8))
		if (IsPlayerInAnyVehicle(playerid)==0)
		{
			if (GetPlayerMoney(playerid)<=99)
			{
   				SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}, and you must be in a vehicle.");
				return 1;
			}
			if (GetPlayerMoney(playerid)>=99)
			{
				SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You must be in a vehicle.");
				return 1;
			}
			return 1;
		}
		if (IsPlayerInAnyVehicle(playerid)==1)
		{
			if (GetPlayerMoney(playerid)<=99)
			{
		    	SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}.");
		    	return 1;
	 		}
			if (GetPlayerMoney(playerid)>=99)
			{
				GivePlayerMoney(playerid,-100);
				RepairVehicle(GetPlayerVehicleID(playerid));
	   			SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}Vehicle repaired, {00FFFF}-$100{FFFF00}.");
				return 1;
			}
			return 1;
		}

 	if(!strcmp(cmdtext, "/cmdlist", true, 8))
		{
			SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/CMDLIST {FFFFFF}- {FFFF00}List all commands in the {FF0000}Freeroam{FFFF00} gametype (this message).");
			SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/SUICIDE {FFFFFF}- {FFFF00}Kill your current player.");
	   		SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR {FFFFFF}- {FFFF00}Repair your current vehicle instantly for {00FFFF}$100{FFFF00}.");
			return 1;
		}

	return 0;
}
Reply
#2

Код:
if(!strcmp(cmdtext, "/repair", true, 8))
		if (IsPlayerInAnyVehicle(playerid)==0)
		{
			if (GetPlayerMoney(playerid)<=99)
			{
   				SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}, and you must be in a vehicle.");
				return 1;
			}
			if (GetPlayerMoney(playerid)>=99)
			{
				SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You must be in a vehicle.");
				return 1;
			}
			return 1;
		}
		if (IsPlayerInAnyVehicle(playerid)==1)
		{
			if (GetPlayerMoney(playerid)<=99)
			{
		    	SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}.");
		    	return 1;
	 		}
			if (GetPlayerMoney(playerid)>=99)
			{
				GivePlayerMoney(playerid,-100);
				RepairVehicle(GetPlayerVehicleID(playerid));
	   			SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}Vehicle repaired, {00FFFF}-$100{FFFF00}.");
				return 1;
			}
			return 1;
		}
Replace them with
Код:
if(!strcmp(cmdtext, "/repair", true, 8))
		if (!IsPlayerInAnyVehicle(playerid))
		{
			if (GetPlayerMoney(playerid)<=99)
			{
   				SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}, and you must be in a vehicle.");
				return 1;
			}
			if (GetPlayerMoney(playerid)>=99)
			{
				SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You must be in a vehicle.");
				return 1;
			}
			return 1;
		}
		if (IsPlayerInAnyVehicle(playerid))
		{
			if (GetPlayerMoney(playerid)<=99)
			{
		    	SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}.");
		    	return 1;
	 		}
			if (GetPlayerMoney(playerid)>=99)
			{
				GivePlayerMoney(playerid,-100);
				RepairVehicle(GetPlayerVehicleID(playerid));
	   			SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}Vehicle repaired, {00FFFF}-$100{FFFF00}.");
				return 1;
			}
			return 1;
		}
Reply
#3

There's no difference, when I type /a or such thing after the /REPAIR command, it does execute REPAIR. Why?
Reply
#4

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/suicide", true, 8))
    {
        SetPlayerHealth(playerid,0);
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/SUICIDE: {FFFF00}You have killed yourself.");
        return 1;
    }

    if(!strcmp(cmdtext, "/repair", true, 8))
    {
        if(IsPlayerInAnyVehicle(playerid)==1)
        {
            if (GetPlayerMoney(playerid)<=99)
            {
                SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}, and you must be in a vehicle.");
                return 1;
            }
            return 1;
        } else return SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You must be in a vehicle.");
        return 1;
    }
    if (IsPlayerInAnyVehicle(playerid)==1)
    {
        if (GetPlayerMoney(playerid)<=99) return SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}.");
        if (GetPlayerMoney(playerid)>=99)
        {
            GivePlayerMoney(playerid,-100);
            RepairVehicle(GetPlayerVehicleID(playerid));
            SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}Vehicle repaired, {00FFFF}-$100{FFFF00}.");
            return 1;
        }
        return 1;
    }

    if(!strcmp(cmdtext, "/cmdlist", true, 8))
    {
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/CMDLIST {FFFFFF}- {FFFF00}List all commands in the {FF0000}Freeroam{FFFF00} gametype (this message).");
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/SUICIDE {FFFFFF}- {FFFF00}Kill your current player.");
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR {FFFFFF}- {FFFF00}Repair your current vehicle instantly for {00FFFF}$100{FFFF00}.");
        return 1;
    }

    return 0;
}
This should work. You forgot to open the IsPlayerInAnyVehicle in your repair command.
Reply
#5

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/suicide", true))
    {
        SetPlayerHealth(playerid,0);
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/SUICIDE: {FFFF00}You have killed yourself.");
        return 1;
    }

    if(!strcmp(cmdtext, "/repair", true))
    {
        if (!IsPlayerInAnyVehicle(playerid))
        {
            SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You must be in a vehicle.");
            return 1;
        }
        if (GetPlayerMoney(playerid) < 100)
        {
            SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}You need at least {00FFFF}$100{FFFF00}.");
            return 1;
        }
        GivePlayerMoney(playerid,-100);
        RepairVehicle(GetPlayerVehicleID(playerid));
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR: {FFFF00}Vehicle repaired, {00FFFF}-$100{FFFF00}.");
        return 1;
    }

    if(!strcmp(cmdtext, "/cmdlist", true))
    {
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/CMDLIST {FFFFFF}- {FFFF00}List all commands in the {FF0000}Freeroam{FFFF00} gametype (this message).");
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/SUICIDE {FFFFFF}- {FFFF00}Kill your current player.");
        SendClientMessage(playerid,COLOR_WHITE,"{FF0000}/REPAIR {FFFFFF}- {FFFF00}Repair your current vehicle instantly for {00FFFF}$100{FFFF00}.");
        return 1;
    }

    return 0;
}
Reply
#6

Mademan, your code worked. Thanks!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)