GiveAllweapon
#1

pawn Код:
CMD:giveallweapon(playerid,params[])
{
    if(PInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
        new Weap,WeapName[25], ammo, name[MAX_PLAYER_NAME], string[50];
        if(sscanf(params,"si",Weap, ammo)) return SendClientMessage(playerid,RED,"Usage: /giveallweapon [weapon name] [ammo]");
        if(!IsValidWeapon(Weap)) return SendClientMessage(playerid,RED,"ERROR: Invalid weapon ID");
        ACMDM(playerid,"GIVEALLWEAPON");
        foreach(Player, i)
        {
            PlayerPlaySound(i,1057,0.0,0.0,0.0);
            GivePlayerWeapon(i,GetWeaponIDFromName(Weap),ammo);
        }
        GetWeaponName(Weap,WeapName,25); //3029
        GetPlayerName(playerid,name,sizeof(name));
        format(string,sizeof(string),"Administrator %s has given all players weapon: %s with %d ammo",name,WeapName,ammo);
        SendClientMessageToAll(blue,string);
    }
    else SendClientMessage(playerid,RED,"You are not a high enough level to use this command");
    return 1;
}
Agh got to go to school. Well it says argument mismatch at line 3029. Thanks.
Reply
#2

I suppose this function accepts a string, but you've declared it as in integer:

GetWeaponIDFromName(Weap)
Reply
#3

Quote:
Originally Posted by Vince
Посмотреть сообщение
I suppose this function accepts a string, but you've declared it as in integer:

GetWeaponIDFromName(Weap)
pawn Код:
CMD:giveallweapon(playerid,params[])
{
    if(PInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
        new Weap,WeapID[20], ammo, name[MAX_PLAYER_NAME], string[128];
        if(sscanf(params,"si",Weap, ammo)) return SendClientMessage(playerid,RED,"Usage: /giveallweapon [weapon name] [ammo]");
        if(!IsValidWeapon(Weap)) return SendClientMessage(playerid,RED,"ERROR: Invalid weapon ID");
        ACMDM(playerid,"GIVEALLWEAPON");
        GetWeaponIDFromName(Weap,WeapID,20); //3024
        foreach(Player, i)
        {
            PlayerPlaySound(i,1057,0.0,0.0,0.0);
            GivePlayerWeapon(i,WeapID,ammo); //3028
        }
        GetPlayerName(playerid,name,sizeof(name));
        format(string,sizeof(string),"Administrator %s has given all players weapon: %s with %d ammo",name,Weap,ammo);
        SendClientMessageToAll(blue,string);
    }
    else return SendClientMessage(playerid,RED,"You are not a high enough level to use this command");
    return 1;
}
Changed it a bit and now I get

pawn Код:
C:\Users\Chris\Documents\Serv\Server\gamemodes\COS.pwn(3024) : error 035: argument type mismatch (argument 1)
C:\Users\Chris\Documents\Serv\Server\gamemodes\COS.pwn(3028) : error 035: argument type mismatch (argument 2)
Reply
#4

pawn Код:
CMD:giveallweapon(playerid,params[])
{
    if(PInfo[playerid][Level] >= 3 || IsPlayerAdmin(playerid)) {
        new Weap[24],WeapID, ammo, name[MAX_PLAYER_NAME], string[128];
        if(sscanf(params,"s[24]i",Weap, ammo)) return SendClientMessage(playerid,RED,"Usage: /giveallweapon [weapon name] [ammo]");
        if(!IsValidWeapon(Weap)) return SendClientMessage(playerid,RED,"ERROR: Invalid weapon ID");
        ACMDM(playerid,"GIVEALLWEAPON");
        WeapID = GetWeaponIDFromName(Weap); //3024
        foreach(Player, i)
        {
            PlayerPlaySound(i,1057,0.0,0.0,0.0);
            GivePlayerWeapon(i,WeapID,ammo); //3028
        }
        GetPlayerName(playerid,name,sizeof(name));
        format(string,sizeof(string),"Administrator %s has given all players weapon: %s with %d ammo",name,Weap,ammo);
        SendClientMessageToAll(blue,string);
    }
    else return SendClientMessage(playerid,RED,"You are not a high enough level to use this command");
    return 1;
}
Reply
#5

The IsValidWeapon had an argument mismatch.. when I take it out it compiles fine.
Reply
#6

So give
pawn Код:
WeapID = GetWeaponIDFromName(Weap); //3024
if(!IsValidWeapon(WeapID)) return SendClientMessage(playerid,RED,"ERROR: Invalid weapon ID");
ACMDM(playerid,"GIVEALLWEAPON");
Reply
#7

Thanks.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)