[Ajuda] pickupgun
#1

Ola, tou usando esse sistema para dropar/pegar armas usadas do chao! entao, as armas sao dropadas normalmente. Porem quando usa-se o comando /pickupgun para pegar a arma, a arma some do chao mas nao vai para o jogador. simplesmente desaparece!

alguem da uma olhada pfv:
PHP код:
// This is a comment.
// ^^lol a comment.
//=================//
#include <a_samp>// by SA-MP
#include <streamer>// by Incognito
#include <zcmd>// by Zeex
#include <foreach>// by ******
//=================//
#define MAX_DROP_ITEMS 1000//Change it to set the max weapons that can be dropped.
#define COLOR_ACTION 0xFFC0CBFF//Gay Pink Color
//=================//
new string[128], sendername[MAX_PLAYER_NAME], DropObject[MAX_DROP_ITEMS];
//=================//
enum dData
{
    
DropGunAmmount[2],//ModelID & Bullets
    
Float:DropGunPosX,
    
Float:DropGunPosY,
    
Float:DropGunPosZ,
    
DropGunVWorld,
    
DropGunInterior,
};
new 
DropInfo[MAX_DROP_ITEMS][dData];
//=================//
new GunObjectIDs[200] ={
   
1575,  331333334335336337338339341321,    322323324325326342343344, -1,  -, -,
   
346347348349350351352353355356372357358359360361362363364365366367,
   
3683691575
};
//=================//
public OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
"Drop Gun FS by a fat guy.....Loaded!!!");
    print(
"--------------------------------------\n");
    return 
1;
}
//=================//
stock GetGunObjectID(WeaponID)
{
    if (
WeaponID || WeaponID 64)
    {
        return 
1575;
    }
    return 
GunObjectIDs[WeaponID];
}
//=================//
stock DropGun(playeridGunIDGunAmmoFloat:XFloat:YFloat:Zworldinterior)
{
    new 
name[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,name,sizeof(name));
    if(
GunID != && GunAmmo != 0)
    {
        for(new 
0sizeof(DropInfo); i++)
          {
              if(
DropInfo[i][DropGunPosX] == 0.0 && DropInfo[i][DropGunPosY] == 0.0 && DropInfo[i][DropGunPosZ] == 0.0)
              {
                  
DropInfo[i][DropGunAmmount][0] = GunID;
                  
DropInfo[i][DropGunAmmount][1] = GunAmmo;
                  
DropInfo[i][DropGunPosX] = X;
                  
DropInfo[i][DropGunPosY] = Y;
                  
DropInfo[i][DropGunPosZ] = Z;
                  
DropInfo[i][DropGunVWorld] = world;
                  
DropInfo[i][DropGunInterior] = interior;
                  
DropObject[i] = CreateDynamicObject(GetGunObjectID(GunID), XYZ-180.00.00.0world);
                return 
1;
              }
        }
        return 
1;
    }
    return 
1;
}
//=================//
stock RemovePlayerWeapon(playeridweaponid)//Credits to Xalphox
{
    if(!
IsPlayerConnected(playerid) || weaponid || weaponid 50)
        return;
    new 
saveweapon[13], saveammo[13];
    for(new 
slot 0slot 13slot++)
        
GetPlayerWeaponData(playeridslotsaveweapon[slot], saveammo[slot]);
    
ResetPlayerWeapons(playerid);
    for(new 
slotslot 13slot++)
    {
        if(
saveweapon[slot] == weaponid || saveammo[slot] == 0)
            continue;
        
GivePlayerWeapon(playeridsaveweapon[slot], saveammo[slot]);
    }
    
GivePlayerWeapon(playerid01);
}
//=================//
public OnFilterScriptExit()
{
    print(
"Drop Gun FS by a fat guy.....Unloaded :( ");
    return 
1;
}
//=================//
public OnPlayerDeath(playeridkilleridreason)
{
    new 
Float:X,Float:Y,Float:Z;
    
GetPlayerPos(playeridXYZ);
    
DropGun(playeridGetPlayerWeapon(playerid),GetPlayerAmmo(playerid),X,Y,Z,GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
    return 
1;
}
//=================//
command(dropgunplayeridparams[])
{
    new 
Float:X,Float:Y,Float:Z;
     new 
GunID GetPlayerWeapon(playerid);
    new 
GunAmmo GetPlayerAmmo(playerid);
     
GetPlayerName(playeridsendernamesizeof(sendername));
    
GetPlayerPos(playeridXYZ);
    
RemovePlayerWeapon(playeridGunID);
     
DropGun(playeridGunID,GunAmmo,X,Y,Z,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
     
format(stringsizeof(string), "* %s drops his weapon to the pavement."sendername);
       
SendLocalMessage(playeridstring10.0COLOR_ACTIONCOLOR_ACTION);
      return 
1;
}
//=================//
command(pickupgunplayeridparams[])
{
    for(new 
0sizeof(DropInfo); i++)
    {
        if (
IsPlayerInRangeOfPoint(playerid2.0,DropInfo[i][DropGunPosX],DropInfo[i][DropGunPosY],DropInfo[i][DropGunPosZ]))
        {
            if(
GetPlayerVirtualWorld(playerid) == DropInfo[i][DropGunVWorld] && GetPlayerInterior(playerid) == DropInfo[i][DropGunVWorld])
            {
                   
GetPlayerName(playeridsendernamesizeof(sendername));
                 
DestroyDynamicObject(DropObject[i]);
                  
DropInfo[i][DropGunPosX] = 0.0;
                
DropInfo[i][DropGunPosY] = 0.0;
                
DropInfo[i][DropGunPosZ] = 0.0;
                
DropInfo[i][DropGunAmmount][0] = 0;
                
DropInfo[i][DropGunAmmount][1] = 0;
                
GivePlayerWeapon(playerid,DropInfo[i][DropGunAmmount][0],DropInfo[i][DropGunAmmount][1]);
                
format(stringsizeof(string), "* %s picks up a weapon from the pavement."sendername);
                
SendLocalMessage(playeridstring10.0COLOR_ACTIONCOLOR_ACTION);
                return 
1;
            }
        }
    }
    return 
1;
}
//=================//
stock SendLocalMessage(playeridmsg[], Float:MessageRangeRange1colorRange2color)
{
    new 
FloatPlayerXFloatPlayerYFloatPlayerZ;
    
GetPlayerPos(playeridPlayerXPlayerYPlayerZ);
    foreach (
Playeri)
    {
        if(
IsPlayerInRangeOfPoint(iMessageRangePlayerXPlayerY,PlayerZ))
        {
            
SendClientMessage(iRange1colormsg);
        }
        else if(
IsPlayerInRangeOfPoint(iMessageRange/2.0PlayerXPlayerY,PlayerZ))
        {
            
SendClientMessage(iRange2colormsg);
        }
    }

Reply
#2

Pode ser anti-xiter da gamemode, de uma olhada!
Reply
#3

Pode ser ant weapon hacker, ou quando o admin da /trabalhar e pega qualquer arma e desaparece, muitos gms rpg o admin em modo trabalho nгo pode usar arma, quando ele pega, ela й retirada automaticamente. Verifique isso
Reply
#4

Nг coloquei sistema de ant cheater ainda й a GM e de Dayz! nao e problema com a GM porque ja testei em outras e tambem esta assim!
Reply
#5

Resolvi, era pq uma funзao tava mal colocada, Obrigado!

+1 coisa, eu coloquei essa isso la para criar um texto em cima da arma:

PHP код:
    CreateDynamic3DTextLabel("USE: /pickupgun"0xFFFF00FFDropInfo[playerid][DropGunPosX], DropInfo[playerid][DropGunPosY], DropInfo[playerid][DropGunPosZ], 10INVALID_PLAYER_IDINVALID_PLAYER_ID0); 
so que o texto esta muito para cima, ou seja, distante do chao que й onde esta a arma como eu coloco mais para baixo? й como deleto ela? eu sei que e com

DestroyDynamic3DTextLabel, mas nao entendi como usa!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)