Weapon Giving problem.
#1

The following code doesn't actually give the player the weapon.

pawn Код:
stock GiveOwnedWeapons(playerid)
{
    GivePlayerWeapon(playerid, Player[playerid][Weapon][0], Player[playerid][WeaponAmmo][0]);
    printf("0: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][0], Player[playerid][WeaponAmmo][0]);
   
    GivePlayerWeapon(playerid, Player[playerid][Weapon][1], Player[playerid][WeaponAmmo][1]);
    printf("1: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][1], Player[playerid][WeaponAmmo][1]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][2], Player[playerid][WeaponAmmo][2]);
    printf("2: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][2], Player[playerid][WeaponAmmo][2]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][3], Player[playerid][WeaponAmmo][3]);
    printf("3: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][3], Player[playerid][WeaponAmmo][3]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][4], Player[playerid][WeaponAmmo][4]);
    printf("4: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][4], Player[playerid][WeaponAmmo][4]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][5], Player[playerid][WeaponAmmo][5]);
    printf("5: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][5], Player[playerid][WeaponAmmo][5]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][6], Player[playerid][WeaponAmmo][6]);
    printf("6: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][6], Player[playerid][WeaponAmmo][6]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][7], Player[playerid][WeaponAmmo][7]);
    printf("7: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][7], Player[playerid][WeaponAmmo][7]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][8], Player[playerid][WeaponAmmo][8]);
    printf("8: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][8], Player[playerid][WeaponAmmo][8]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][9], Player[playerid][WeaponAmmo][9]);
    printf("9: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][9], Player[playerid][WeaponAmmo][9]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][10], Player[playerid][WeaponAmmo][10]);
    printf("10: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][10], Player[playerid][WeaponAmmo][10]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][11], Player[playerid][WeaponAmmo][11]);
    printf("11: GivePlayerWeapon(playerid, %d, %d);", Player[playerid][Weapon][11], Player[playerid][WeaponAmmo][11]);

    return 1;
}
Although it is reading it correctly, here's the printf results:

Код:
[38:20 - 37] 0: GivePlayerWeapon(playerid, 1, 10);
[38:20 - 37] 1: GivePlayerWeapon(playerid, 2, 10);
[38:20 - 37] 2: GivePlayerWeapon(playerid, 3, 10);
[38:20 - 37] 3: GivePlayerWeapon(playerid, 4, 10);
[38:20 - 37] 4: GivePlayerWeapon(playerid, 5, 10);
[38:20 - 37] 5: GivePlayerWeapon(playerid, 6, 10);
[38:20 - 37] 6: GivePlayerWeapon(playerid, 7, 10);
[38:20 - 37] 7: GivePlayerWeapon(playerid, 8, 10);
[38:20 - 37] 8: GivePlayerWeapon(playerid, 9, 10);
[38:20 - 37] 9: GivePlayerWeapon(playerid, 10, 10);
[38:20 - 37] 10: GivePlayerWeapon(playerid, 11, 10);
[38:20 - 37] 11: GivePlayerWeapon(playerid, 12, 10);
I set all the ammo to 10 in the SQL, then gave the weapon id to the name id. (EG: Weapon1 - 1, Weapon2 - 2)

That read correctly.

It just isn't giving the weapon as it should..
Reply
#2

Bump.
Reply
#3

i did something for u (Y) try it, if u dont like it i can always redo it, it draft it from my /afrisk and tried to make it understand for you, Hope u like it ,

pawn Код:
//under the stock u have above
    for(new i=0; i<13; i++)
    {
        GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
        if(weapons[i][0] != Player[playerid][weapon][i] && weapons[i][1] != 0)
        {
            format(string, sizeof(string), " %s (Ammo: %d) (Hacked)", RWN(weapons[i][0]), weapons[i][1]);
            SendClientMessage(playerid, green, string);
            weaps++;
        }
        else if(weapons[i][0] == Player[playerid][weapon][i] && weapons[i][0] != 0)
        {
            format(string, sizeof(string), " %s (Ammo: %d)", RWN(Player[playerid][weapon][i]), weapons[i][1]);
            SendClientMessage(playerid, green, string);
            weaps++;
        }
     }
//put it somewhere        
stock RWN(weaponid)
{
    new name[32];
    GetWeaponName(weaponid, name, sizeof(name));
    if(weaponid == 0) format(name, sizeof(name), "None");
    return name;
}
Reply
#4

What's that got to do with my problem?
Reply
#5

What script are you using?
It's possible your script has some form of anti-cheat and that function won't work.
Nothing seems wrong with the script.

Search around for something else that gives a weapon and see what function it uses.
For example, my script uses GivePlayerValidWeapon.
Reply
#6

It's my own script, from 0 lines. I haven't implemented an anti-cheat yet so that's not the problem.
Reply
#7

pawn Код:
stock GiveOwnedWeapons(playerid)
{
    GivePlayerWeapon(playerid, Player[playerid][Weapon][0], Player[playerid][WeaponAmmo][0]);
    printf("0: GivePlayerWeapon(playerid,(GUN) %s,(AMMO) %d);", RWN(Player[playerid][Weapon][0]), Player[playerid][WeaponAmmo][0]);
    return 1;
}

stock RWN(weaponid)
{
    new name[32];
    GetWeaponName(weaponid, name, sizeof(name));
    if(weaponid == 0) format(name, sizeof(name), "None");
    return name;
}
test that n tell me if it works
Reply
#8

I did this:

Set weapon1 = 1, weapon2 = 2, weapon3 = 3 and so on, up to 12.

I set all of the ammo to 10, and edited the stock GiveOwnedWeapons to this;

pawn Код:
stock GiveOwnedWeapons(playerid)
{
    GivePlayerWeapon(playerid, Player[playerid][Weapon][0], Player[playerid][WeaponAmmo][0]);
    printf("0: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][0]), Player[playerid][WeaponAmmo][0]);
   
    GivePlayerWeapon(playerid, Player[playerid][Weapon][1], Player[playerid][WeaponAmmo][1]);
    printf("1: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][1]), Player[playerid][WeaponAmmo][1]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][2], Player[playerid][WeaponAmmo][2]);
    printf("2: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][2]), Player[playerid][WeaponAmmo][2]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][3], Player[playerid][WeaponAmmo][3]);
    printf("3: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][3]), Player[playerid][WeaponAmmo][3]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][4], Player[playerid][WeaponAmmo][4]);
    printf("4: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][4]), Player[playerid][WeaponAmmo][4]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][5], Player[playerid][WeaponAmmo][5]);
    printf("5: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][5]), Player[playerid][WeaponAmmo][5]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][6], Player[playerid][WeaponAmmo][6]);
    printf("6: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][6]), Player[playerid][WeaponAmmo][6]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][7], Player[playerid][WeaponAmmo][7]);
    printf("7: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][7]), Player[playerid][WeaponAmmo][7]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][8], Player[playerid][WeaponAmmo][8]);
    printf("8: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][8]), Player[playerid][WeaponAmmo][8]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][9], Player[playerid][WeaponAmmo][9]);
    printf("9: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][9]), Player[playerid][WeaponAmmo][9]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][10], Player[playerid][WeaponAmmo][10]);
    printf("10: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][10]), Player[playerid][WeaponAmmo][10]);

    GivePlayerWeapon(playerid, Player[playerid][Weapon][11], Player[playerid][WeaponAmmo][11]);
    printf("11: GivePlayerWeapon(playerid, %s, %d);", RWN(Player[playerid][Weapon][11]), Player[playerid][WeaponAmmo][11]);
   
    return 1;
}
The RWN stock is in place.

It printed this:

Код:
[50:17 - 22] 0: GivePlayerWeapon(playerid, Brass Knuckles, 10);
[50:17 - 22] 1: GivePlayerWeapon(playerid, Golf Club, 10);
[50:17 - 22] 2: GivePlayerWeapon(playerid, Nite Stick, 10);
[50:17 - 22] 3: GivePlayerWeapon(playerid, Knife, 10);
[50:17 - 22] 4: GivePlayerWeapon(playerid, Baseball Bat, 10);
[50:17 - 22] 5: GivePlayerWeapon(playerid, Shovel, 10);
[50:17 - 22] 6: GivePlayerWeapon(playerid, Pool Cue, 10);
[50:17 - 22] 7: GivePlayerWeapon(playerid, Katana, 10);
[50:17 - 22] 8: GivePlayerWeapon(playerid, Chainsaw, 10);
[50:17 - 22] 9: GivePlayerWeapon(playerid, Dildo, 10);
[50:17 - 22] 10: GivePlayerWeapon(playerid, Dildo, 10);
[50:17 - 22] 11: GivePlayerWeapon(playerid, Vibrator, 10);
What's seriously wrong with this? -.-
Reply
#9

i gave u the names , u want the ids instead?

and if u put weapon ids 1-12 then u will see 1-12 -____-, i think nothing is wrong with it

id put the names of weaponid 1-12 and the ammo it has


i think the function is working 100%
Reply
#10

Yo Getty , Hows it going bro?. What i think is the problem is here!
Код:
[50:17 - 22] 0: GivePlayerWeapon(playerid, Brass Knuckles, 10);
[50:17 - 22] 1: GivePlayerWeapon(playerid, Golf Club, 10);
[50:17 - 22] 2: GivePlayerWeapon(playerid, Nite Stick, 10);
[50:17 - 22] 3: GivePlayerWeapon(playerid, Knife, 10);
[50:17 - 22] 4: GivePlayerWeapon(playerid, Baseball Bat, 10);
[50:17 - 22] 5: GivePlayerWeapon(playerid, Shovel, 10);
[50:17 - 22] 6: GivePlayerWeapon(playerid, Pool Cue, 10);
[50:17 - 22] 7: GivePlayerWeapon(playerid, Katana, 10);
[50:17 - 22] 8: GivePlayerWeapon(playerid, Chainsaw, 10);
[50:17 - 22] 9: GivePlayerWeapon(playerid, Dildo, 10);
[50:17 - 22] 10: GivePlayerWeapon(playerid, Dildo, 10);
[50:17 - 22] 11: GivePlayerWeapon(playerid, Vibrator, 10);
Listen half of those Weapons take Slot 0 and 1 for weapons so you wont be able to get all of those weapons but i think you will be getting one or two weapons on hand after loading them for a playerid.

Try Putting those values as Deagle , Combat Shotgun , Ak47 , Grenade. And then check them!

Btw where exactly are you calling the function below?
pawn Код:
GiveOwnedWeapons(playerid);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)