SA-MP Forums Archive
Problem with commands - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Problem with commands (/showthread.php?tid=276374)



Problem with commands - Superthijs - 13.08.2011

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;
}



Re: Problem with commands - RowdyrideR - 13.08.2011

Код:
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;
		}



Re: Problem with commands - Superthijs - 13.08.2011

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


Re: Problem with commands - Wesley221 - 13.08.2011

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.


Re: Problem with commands - MadeMan - 13.08.2011

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;
}



Re: Problem with commands - Superthijs - 13.08.2011

Mademan, your code worked. Thanks!