SA-MP Forums Archive
GivePlayerWeapon help - 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: GivePlayerWeapon help (/showthread.php?tid=184368)



GivePlayerWeapon help - Bates - 19.10.2010

Hi sa:mp community. I have a problem with GivePlayerWeapon. When i executes the command, i dont get the gun. Thanks in advance.

pawn Код:
command(agiveweapon, playerid, params[])
{
    new WeaponN[ 60 ], Names[ 2 ][ MAX_PLAYER_NAME ], string[ 128 ], id, weaponid, ammo;
    if( sscanf( params, "ud", id, weaponid ) )
    {
        if( Player[playerid][AdminLevel] >= 3 )
        {
            SendClientMessage( playerid, SYNTAXMSG, "SYNTAX: /agiveweapon [playerid] [weaponid] [ammo] " );
        }
    }
    else
    {
        if( Player[playerid][AdminLevel] >= 3)
        {
            if(IsPlayerConnectedEx(id) )
            {
                if(weaponid >= 1 && weaponid < 47)
                {
               
                    GetPlayerName( id, Names[ 0 ], MAX_PLAYER_NAME );
                    GetPlayerName( playerid, Names[ 1 ], MAX_PLAYER_NAME );
                   
                    if(weaponid == 19)
                    {
                        SetPlayerSpecialAction(id, SPECIAL_ACTION_USEJETPACK);
                        format( string, sizeof( string ), "You have given %s a Jetpack (Weapon ID: 19).", GetName(id), weaponid);
                        SendClientMessage( playerid, WHITE, string);
                        format( string, sizeof( string ), "You have been given a Jetpack, from %s. ", GetName( playerid ) );
                        SendClientMessage(id, WHITE, string);
                        Player[id][HasJetpack] = 1;
                       
                        format( string, sizeof( string ), "%s has been given weapon %d by %s.", Names[ 0 ], weaponid, Names[ 1 ] );
                        AdminActionsLog( string );
                        format( string, sizeof( string ), "[ADMINMSG:] %s gave a Jetpack to %s.", Names[ 0 ], Names[ 1 ] );
                        SendToAdmins( ADMINACTION, string, 0 );
                    }
                    else
                    {
                        GetWeaponName(weaponid, WeaponN, sizeof(WeaponN) );
                        GivePlayerWeapon(id, weaponid, ammo );
                        format( string, sizeof( string ), "You have given %s a %s (Weapon ID: %d).", GetName(id), WeaponN, weaponid);
                        SendClientMessage( playerid, WHITE, string);
                        format( string, sizeof( string ), "You have been given a %s, from %s.", WeaponN, GetName( playerid ) );
                        SendClientMessage(id, WHITE, string);

                        format( string, sizeof( string ), "%s has been given weapon %d by %s.", Names[ 0 ], weaponid, Names[ 1 ] );
                        AdminActionsLog( string );
                        format( string, sizeof( string ), "[ADMINMSG:] %s gave a %d(%s ,%d ) to %d.", Names[ 1 ], WeaponN, weaponid, ammo, GetName(id), Names[ 0 ] );
                        SendToAdmins( ADMINACTION, string, 0 );
                    }
                }
                else
                {
                    SendClientMessage( playerid, SYNTAXMSG, "Invalid weapon ID." );
                }
            }
            else
            {
                SendClientMessage( playerid, SYNTAXMSG, "That player is not connected or isn't logged in." );
            }
        }
        else
        {
            SendClientMessage( playerid, SYNTAXMSG, "You are not authroized to use that command." );
        }
    }
    return 1;
}



Re: GivePlayerWeapon help - JaTochNietDan - 19.10.2010

It would appear that you're never storing any information for the amount of ammunation you're giving the player, so the variable "ammo" will always be 0, therefore the gun given to the player will have no ammunation and therefore be lost. This is what you may be looking for to fix it.

pawn Код:
if( sscanf( params, "udd", id, weaponid,ammo ) )



Re: GivePlayerWeapon help - Bates - 19.10.2010

Thank you very much!