Command problem
#1

Hello SA-MP community.

Here I have this command that I will post below what my problem is.

When I type /trunk show, it works perfect.

When I type /trunk get it does nothing, how come?

Thanks!

pawn Код:
command(trunk, playerid, params[])
{
    new Float:x, Float:y, Float:z;
    GetVehiclePos(OldCar[playerid], x, y, z);
    if(AccessingTrunk[playerid] == 1)
    {
        if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
        {
            if(OwnedVeh(OldCar[playerid]) != 0)
            {
                if(strmatch(vInfo[OwnedVeh(OldCar[playerid])][vOwner], pName(playerid)))
                {
                    new string[128];
                    if(isnull(params)) return SendClientMessage(playerid, WHITE, "Server: /trunk [show/get/put]");
                    else
                    {
                        if(strlen(params) > 1)
                        {
                            if(strmatch("show", params))
                            {
                                SendClientMessage(playerid, WHITE, "[TRUNK INVENTORY]");
                                format(string, sizeof(string), "Money: $%d\nMaterials: %d\nCocaine: %d grams\nMoonshine: %d grams", vInfo[OldCar[playerid]][vTrunkMoney], vInfo[OldCar[playerid]][vTrunkMats], vInfo[OldCar[playerid]][vTrunkCocaine], vInfo[OldCar[playerid]][vTrunkMoonshine]);
                                SendClientMessage(playerid, WHITE, string);
                                return 1;
                            }
                            if(strmatch("get", params))
                            {
                                if(isnull(params)) return SendClientMessage(playerid, WHITE, "Server: /trunk get [weapon/money/materials/cocaine/moonshine]");
                                else
                                {
                                    if(strmatch("money", params))
                                    {
                                        if(isnull(params)) return SendClientMessage(playerid, WHITE, "Server: /trunk get money [amount]");
                                        {
                                            if(vInfo[OldCar[playerid]][vTrunkMoney] >= strval(params))
                                            {
                                                Player[playerid][Money] += strval(params);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else return SendClientMessage(playerid, WHITE, "This isn't your vehicle.");
            }
            else return SendClientMessage(playerid, WHITE, "This vehicle hasn't got a trunk.");
        }
        else return SendClientMessage(playerid, WHITE, "You aren't in range of your own vehicle.");
    }
    else return SendClientMessage(playerid, WHITE, "You aren't accessing any trunk.");
    return 1;
}

Thank you so much!
Reply
#2

pawn Код:
command(trunk, playerid, params[])
{
    new Float:x, Float:y, Float:z;
    GetVehiclePos(OldCar[playerid], x, y, z);
    if(AccessingTrunk[playerid] == 1)
    {
        if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
        {
            if(OwnedVeh(OldCar[playerid]) != 0)
            {
                if(strmatch(vInfo[OwnedVeh(OldCar[playerid])][vOwner], pName(playerid)))
                {
                    new string[128];
                    if(isnull(params)) return SendClientMessage(playerid, WHITE, "Server: /trunk [show/get/put]");
                    else
                    {
                        if(strlen(params) > 1)
                        {
                            if(strmatch("show", params))
                            {
                                SendClientMessage(playerid, WHITE, "[TRUNK INVENTORY]");
                                format(string, sizeof(string), "Money: $%d\nMaterials: %d\nCocaine: %d grams\nMoonshine: %d grams", vInfo[OldCar[playerid]][vTrunkMoney], vInfo[OldCar[playerid]][vTrunkMats], vInfo[OldCar[playerid]][vTrunkCocaine], vInfo[OldCar[playerid]][vTrunkMoonshine]);
                                SendClientMessage(playerid, WHITE, string);
                                return 1;
                            }
                            else if(strmatch("get", params))
                            {
                                print("/trunk 'get'");
                                new params2[12];
                                if(isnull(params2)) return SendClientMessage(playerid, WHITE, "Server: /trunk get [weapon/money/materials/cocaine/moonshine]");
                                else
                                {
                                    if(strmatch("money", params2))
                                    {
                                        print("/trunk 'get' 'money'");
                                        new amount;
                                        if(sscanf(params, "i", amount)) return SendClientMessage(playerid, WHITE, "Server: /trunk get money [amount]");
                                        {
                                            if(vInfo[OldCar[playerid]][vTrunkMoney] >= amount)
                                            {
                                                Player[playerid][Money] += amount;
                                            }
                                            else return SendClientMessage(playerid, WHITE, "You don't have that much money in your trunk.");
                                        }
                                    }
                                    else return SendClientMessage(playerid, WHITE, "Wanker");
                                }
                            }
                        }
                    }
                }
                else return SendClientMessage(playerid, WHITE, "This isn't your vehicle.");
            }
            else return SendClientMessage(playerid, WHITE, "This vehicle hasn't got a trunk.");
        }
        else return SendClientMessage(playerid, WHITE, "You aren't in range of your own vehicle.");
    }
    else return SendClientMessage(playerid, WHITE, "You aren't accessing any trunk.");
    return 1;
}
It prints "/trunk 'get'", nothing more/less.

EDIT: Fuck sake, sorry about the double post. Was meant to be an edit.
Reply
#3

Try this way:
PHP код:
command(trunkplayeridparams[])
{
    new 
Float:xFloat:yFloat:zcmd[10][32];
    
split(paramscmd' ');
    
GetVehiclePos(OldCar[playerid], xyz);
    if(
AccessingTrunk[playerid] == 1)
    {
        if(
IsPlayerInRangeOfPoint(playerid5.0xyz))
        {
            if(
OwnedVeh(OldCar[playerid]) != 0)
            {
                if(
strmatch(vInfo[OwnedVeh(OldCar[playerid])][vOwner], pName(playerid)))
                {
                    new 
string[128];
                    if(
isnull(cmd[1])) return SendClientMessage(playeridWHITE"Server: /trunk [show/get/put]");
                    else
                    {
                        if(
strlen(cmd[1]) > 1)
                        {
                            if(
strmatch("show"cmd[1]))
                            {
                                
SendClientMessage(playeridWHITE"[TRUNK INVENTORY]");
                                
format(stringsizeof(string), "Money: $%d\nMaterials: %d\nCocaine: %d grams\nMoonshine: %d grams"vInfo[OldCar[playerid]][vTrunkMoney], vInfo[OldCar[playerid]][vTrunkMats], vInfo[OldCar[playerid]][vTrunkCocaine], vInfo[OldCar[playerid]][vTrunkMoonshine]);
                                
SendClientMessage(playeridWHITEstring);
                                return 
1;
                            }
                            else if(
strmatch("get"cmd[1]))
                            {
                                if(
isnull(cmd[2])) return SendClientMessage(playeridWHITE"Server: /trunk get [weapon/money/materials/cocaine/moonshine]");
                                else
                                {
                                    if(
strmatch("money"cmd[2]))
                                    {
                                        new 
amount;
                                        if(
sscanf(cmd[3], "i"amount)) return SendClientMessage(playeridWHITE"Server: /trunk get money [amount]");
                                        {
                                            if(
vInfo[OldCar[playerid]][vTrunkMoney] >= amount)
                                            {
                                                
Player[playerid][Money] += amount;
                                            }
                                            else return 
SendClientMessage(playeridWHITE"You don't have that much money in your trunk.");
                                        }
                                    }
                                    else return 
SendClientMessage(playeridWHITE"Wanker");
                                }
                            }
                        }
                    }
                }
                else return 
SendClientMessage(playeridWHITE"This isn't your vehicle.");
            }
            else return 
SendClientMessage(playeridWHITE"This vehicle hasn't got a trunk.");
        }
        else return 
SendClientMessage(playeridWHITE"You aren't in range of your own vehicle.");
    }
    else return 
SendClientMessage(playeridWHITE"You aren't accessing any trunk.");
    return 
1;
}

Reply
#4

Undefined symbol; "split".
Reply
#5

My bad, forgot the function:
PHP код:
//SPLIT
stock split(const strsrc[], strdest[][], delimiter){
    new 
piliaNumlen;
    while(
pi<=strlen(strsrc)){
        if(
strsrc[pi]==delimiter || pi==strlen(strsrc)){
            
len=strmid(strdest[aNum], strsrclipi128);
            
strdest[aNum][len]=0;
            
li=pi+1;
            
aNum++;
        }
        
pi++;
    }
    return 
1;

Reply
#6

It just keeps showing:

"Server: /trunk [show/get/put]"

Instead of doing anything.
Reply
#7

I can't test it right now, but I hope it works now:
PHP код:
command(trunkplayeridparams[]){
    new 
Float:xFloat:yFloat:zcmd[10][32];
    
split(paramscmd' ');
    
GetVehiclePos(OldCar[playerid], xyz);
    if(
AccessingTrunk[playerid]==0) return SendClientMessage(playeridWHITE"You aren't accessing any trunk.");
    else if(
IsPlayerInRangeOfPoint(playerid5.0xyz)) return SendClientMessage(playeridWHITE"You aren't in range of your own vehicle.");
    else if(
OwnedVeh(OldCar[playerid]) == 0) return SendClientMessage(playeridWHITE"This vehicle hasn't got a trunk.");
    else if(
strmatch(vInfo[OwnedVeh(OldCar[playerid])][vOwner], pName(playerid))) return SendClientMessage(playeridWHITE"This isn't your vehicle.");
    else{
        new 
string[128];
        if(
strlen(cmd[1])==0) return SendClientMessage(playeridWHITE"Server: /trunk [show/get/put]");
        else if(
strmatch("show"cmd[1])){
            
SendClientMessage(playeridWHITE"[TRUNK INVENTORY]");
            
format(stringsizeof(string), "Money: $%d\nMaterials: %d\nCocaine: %d grams\nMoonshine: %d grams"vInfo[OldCar[playerid]][vTrunkMoney], vInfo[OldCar[playerid]][vTrunkMats], vInfo[OldCar[playerid]][vTrunkCocaine], vInfo[OldCar[playerid]][vTrunkMoonshine]);
            return 
SendClientMessage(playeridWHITEstring);
        } else if(
strmatch("get"cmd[1])){
            if(
strlen(cmd[2])==0) return SendClientMessage(playeridWHITE"Server: /trunk get [weapon/money/materials/cocaine/moonshine]");
            else if(
strmatch("money"cmd[2])){
                new 
amount;
                if(
sscanf(cmd[3], "i"amount)) return SendClientMessage(playeridWHITE"Server: /trunk get money [amount]");
                if(
vInfo[OldCar[playerid]][vTrunkMoney] >= amount){
                    
Player[playerid][Money] += amount;
                } else return 
SendClientMessage(playeridWHITE"You don't have that much money in your trunk.");
            }
        } else return 
SendClientMessage(playeridWHITE"Wanker"); 
    }

EDIT: I've reorganized a little bit your code, I hope it works that way.
Reply
#8

IT's still doing the same, mate.

Don't know what the hell's wrong. ):
Reply
#9

Did you tested after my edit?
Reply
#10

Quote:
Originally Posted by mati233
Посмотреть сообщение
Did you tested after my edit?
Yes and it's still doing the same.

Pizzy; I'll be there soon. Can't talk though.

EDIT:


Quote:
Originally Posted by CidadeNovaRP
Посмотреть сообщение
Hi, try this:
pawn Код:
command(trunk, playerid, params[])
{
    new Float:x, Float:y, Float:z, parametro[18], string[128], amount;
    GetVehiclePos(OldCar[playerid], x, y, z);
    if(AccessingTrunk[playerid] != 1) return SendClientMessage(playerid, WHITE, "You aren't accessing any trunk.");
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SendClientMessage(playerid, WHITE, "You aren't in range of your own vehicle.");
    if(OwnedVeh(OldCar[playerid]) == 0) return SendClientMessage(playerid, WHITE, "This vehicle hasn't got a trunk.");
    if(!strmatch(vInfo[OwnedVeh(OldCar[playerid])][vOwner], pName(playerid))) return SendClientMessage(playerid, WHITE, "This isn't your vehicle.");
    if(sscanf(params, "s", parametro) || strlen(params)) return SendClientMessage(playerid, WHITE, "Server: /trunk [show/get/put]");
    if(strcmp(parametro, "show", true, 10) == 0)
    {
        SendClientMessage(playerid, WHITE, "[TRUNK INVENTORY]");
        format(string, sizeof(string), "Money: $%d\nMaterials: %d\nCocaine: %d grams\nMoonshine: %d grams", vInfo[OldCar[playerid]][vTrunkMoney], vInfo[OldCar[playerid]][vTrunkMats], vInfo[OldCar[playerid]][vTrunkCocaine], vInfo[OldCar[playerid]][vTrunkMoonshine]);
        SendClientMessage(playerid, WHITE, string);
        return 1;
    }
    else if(strcmp(parametro, "get", true, 10) == 0)
    {
        print("/trunk 'get'");
    }
    else if(strcmp(parametro, "money", true, 10) == 0)
    {
        print("/trunk 'get' 'money'");
        if(sscanf(params, "i", amount)) return SendClientMessage(playerid, WHITE, "Server: /trunk get money [amount]");
        if(vInfo[OldCar[playerid]][vTrunkMoney] >= amount)
        {
            Player[playerid][Money] += amount;
        }
        else
        {
            SendClientMessage(playerid, WHITE, "You don't have that much money in your trunk.");
            return 1;
        }
    }
    else
    {
        SendClientMessage(playerid, WHITE, "Server: /trunk [show/get/put]");
        return 1;
    }
    return 1;
}
EDITEDі
That won't work.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)