[Ajuda] Descartar objeto no chгo
#1

alguem pode me ajudar com esse problema?
no inventario tem a opзao de descartar item ( jogar o item no chao )
sу que ele nao joga o item no chao ele desaparece...

eu tava vendo o sistema e vi que nao tem a funзao de criar o objeto no chao:

sistema de descartar item ( original )
PHP Code:
    if(playertextid == invText[playerid][14]){
        new 
str[180];
        if(
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] == 19382){
            
SendClientMessage(playerid0xFF6347AA"* Nгo hб itens suficientes para ser descartado!");
            for(new 
716i++){
            
PlayerTextDrawHide(playeridinvText[playerid][i]);
            }
            
BoxAberto[playerid] = 0;
            return 
1;
        }
        
format(str280"* Vocк largou um item: %s, com %d unidade(s)"NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades]);
        
SendClientMessage(playerid0x00ccccFFstr);
        
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] = 19382;
        
InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades] = 0;
        
BoxAberto[playerid] = 0;
        
FecharInventario(playerid);
        
AbrirInventario(playerid);
        
SetTimerEx("AbrirInventario"200false"i"playerid);
     } 
tentei fazer dessa maneira:
PHP Code:
    if(playertextid == invText[playerid][14]){
        new 
str[180];
        if(
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] == 19382){
            
SendClientMessage(playerid0xFF6347AA"* Nгo hб itens suficientes para ser descartado!");
            for(new 
716i++){
            
PlayerTextDrawHide(playeridinvText[playerid][i]);
            }
            
BoxAberto[playerid] = 0;
            return 
1;
        }
        
format(str280"* Vocк largou um item: %s, com %d unidade(s)"NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades]);
        
SendClientMessage(playerid0x00ccccFFstr);
        
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] = 19382;
        
InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades] = 0;
        
BoxAberto[playerid] = 0;
        
FecharInventario(playerid);
        
AbrirInventario(playerid);
        new 
FloatXFloatYFloatZ;
        
GetPlayerPos(playeridXYZ);
        
SetTimerEx("AbrirInventario"200false"i"playerid);
        
CreateDroppedItem(NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), XY+0.5Z);
        
SetPlayerPos(playeridXY+0.1Z);
     } 
e da o seguinte erro:
PHP Code:
C:\Users\igorm\OneDrive\Бrea de Trabalho\Arquivos do servidor\gamemodes\BSG.pwn(5082) : error 035argument type mismatch (argument 1)
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
1 Error
.
//erro nessa linha
CreateDroppedItem(NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), XY+0.5Z); 
queria aplicar essa funзao ao clicar em descartar item:
PHP Code:
stock CreateDroppedItem(ItemAmountFloat:gPosXFloat:gPosYFloat:gPosZ)
{
    new 
MAX_OBJ+1;
    for(new 
0MAX_OBJa++)
    {
        if(
dItemData[a][ObjtPos][0] == 0.0)
        {
            
a;
            break;
        }
    }
    if(
MAX_OBJ) return;
    
dItemData[f][droptTimer] = gettime() + (30*60);//30 minutos para o item sumir
    
dItemData[f][ObjtData][0] = Item;
    
dItemData[f][ObjtData][1] = Amount;
    
dItemData[f][ObjtPos][0] = gPosX;
    
dItemData[f][ObjtPos][1] = gPosY;
    
dItemData[f][ObjtPos][2] = gPosZ;
    
dItemData[f][ObjtID] = CreateDynamicObject(ItemdItemData[f][ObjtPos][0], dItemData[f][ObjtPos][1], dItemData[f][ObjtPos][2]-193.7120.0random(360), -1, -1, -180.0);
    new 
buffer[50];
    
format(buffersizeof buffer"Item: %s\nUnidade(s): %d"NomeItemID(dItemData[f][ObjtData][0]), dItemData[f][ObjtData][1]);
     
dItemData[f][textt3d] = CreateDynamic3DTextLabel(buffer0xAAAAAAAAdItemData[f][ObjtPos][0], dItemData[f][ObjtPos][1], dItemData[f][ObjtPos][2]-115.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0, -1, -1, -180.0);
    return;

Reply
#2

Ta faltando parвmetros, no Amount,

Code:
CreateDroppedItem(NomeItemInv(InventarioInfo[playerid][ItemSelecionado[iSlot]], Amount ,X, Y+0.5, Z);
Reply
#3

Quote:
Originally Posted by AllanSG
View Post
Ta faltando parвmetros, no Amount,

Code:
CreateDroppedItem(NomeItemInv(InventarioInfo[playerid][ItemSelecionado[iSlot]], Amount ,X, Y+0.5, Z);
PHP Code:
C:\Users\igorm\OneDrive\Бrea de Trabalho\Arquivos do servidor\gamemodes\BSG.pwn(5082) : error 035argument type mismatch (argument 1)
C:\Users\igorm\OneDrive\Бrea de Trabalho\Arquivos do servidor\gamemodes\BSG.pwn(5082) : error 035argument type mismatch (argument 1)
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase
2 Errors

deu isso na mesma linha
Reply
#4

PHP Code:
CreateDroppedItem(NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], XY+0.5Z); 
Reply
#5

Quote:
Originally Posted by AllanSG
View Post
PHP Code:
CreateDroppedItem(NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], XY+0.5Z); 
da o mesmo erro ja tinha tentando desse jeito tambem

@Edit

eu fiz um comando aqui para ver se dava certo de jogar um item no chao e deu certo:

PHP Code:
CMD:dinheiro(playerid){
    new 
FloatXFloatYFloatZ;
    
GetPlayerPos(playeridXYZ);
     
CreateDroppedItem(121210000XYZ);
    
SetPlayerPos(playeridXYZ);
    return 
1;

ele joga o dinheiro no chao normal mais o descartar item no inventario nao ta dando certo :/
Reply
#6

tenta
PHP Code:
CreateDroppedItem(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot], InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], XY+0.5Z); 
Reply
#7

Quote:
Originally Posted by AllanSG
View Post
tenta
PHP Code:
CreateDroppedItem(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot], InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], XY+0.5Z); 
agr deu certo ele cai no chao mais ele nao cria o objeto e nem fala o nome fica como desconhecido

no caso eu teria que adicionar isso ao comando?

PHP Code:
stock CreateDroppedItem(ItemAmountFloat:gPosXFloat:gPosYFloat:gPosZ)
{
    new 
MAX_OBJ+1;
    for(new 
0MAX_OBJa++)
    {
        if(
dItemData[a][ObjtPos][0] == 0.0)
        {
            
a;
            break;
        }
    }
    if(
MAX_OBJ) return;
    
dItemData[f][droptTimer] = gettime() + (30*60);//30 minutos para o item sumir
    
dItemData[f][ObjtData][0] = Item;
    
dItemData[f][ObjtData][1] = Amount;
    
dItemData[f][ObjtPos][0] = gPosX;
    
dItemData[f][ObjtPos][1] = gPosY;
    
dItemData[f][ObjtPos][2] = gPosZ;
    
dItemData[f][ObjtID] = CreateDynamicObject(ItemdItemData[f][ObjtPos][0], dItemData[f][ObjtPos][1], dItemData[f][ObjtPos][2]-193.7120.0random(360), -1, -1, -180.0);
    new 
buffer[50];
    
format(buffersizeof buffer"Item: %s\nUnidade(s): %d"NomeItemID(dItemData[f][ObjtData][0]), dItemData[f][ObjtData][1]);
     
dItemData[f][textt3d] = CreateDynamic3DTextLabel(buffer0xAAAAAAAAdItemData[f][ObjtPos][0], dItemData[f][ObjtPos][1], dItemData[f][ObjtPos][2]-115.0INVALID_PLAYER_IDINVALID_VEHICLE_ID0, -1, -1, -180.0);
    return;

obs: ja tem isso na gm
Reply
#8

procure por

stock NomeItemInv

stock NomeItemID

e coloque o nome do item
Reply
#9

Quote:
Originally Posted by BrunoLuiz
View Post
procure por

stock NomeItemInv

stock NomeItemID

e coloque o nome do item
ja tem os itens adicionado tipo igual o dinheiro:

stock NomeItemID(itemID)
PHP Code:
case 1212:name "Dinheiro"
stock NomeItemInv(idx)
PHP Code:
if(idx == 1212formatnomedoitem50"Dinheiro"); 
ele nesse comando funciona normal ele cai no chao e da para pegar normalmente:
PHP Code:
CMD:dinheiro(playerid){
    if(
PlayerInfo[playerid][pAdmin] < 1337)
    {
        
SendClientMessage(playeridCOLOR_GRAD1"    Vocк nгo pode usar este comando!");
        return 
1;
    }
    new 
FloatXFloatYFloatZ;
    
GetPlayerPos(playeridXYZ);
     
CreateDroppedItem(121210000XYZ);
    
SetPlayerPos(playeridXYZ);
    return 
1;

mais do inventario ele cai no chao mais nao aparece o objeto (fica invisнvel) e nem o nome (fica com o nome: item desconhecido) quando vc pega o item ele some e nao vai para o inventario...
Reply
#10

procure pelo comando

Code:
CMD:pitem
e manda aqui
Reply
#11

Quote:
Originally Posted by BrunoLuiz
View Post
procure pelo comando

Code:
CMD:pitem
e manda aqui
PHP Code:
    CMD:pitem(playerid)
    {
        if(
GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return 1;
        new 
MAX_OBJ+1;
        for(new 
0MAX_OBJa++)
        {
            if(
IsPlayerInRangeOfPoint(playerid1.8dItemData[a][ObjtPos][0], dItemData[a][ObjtPos][1], dItemData[a][ObjtPos][2]))
            {
                
a;
                break;
            }
        }
        if(
MAX_OBJ) return 1;
        if(
gettime() < GetPVarInt(playerid#VarFlood8))
            
return 1;
        
SetPVarInt(playerid#VarFlood8, gettime()+2);
        
for(new i=0i<75i++)
        {
            if(
InventarioInfo[playerid][i][iSlot] == 19382)
            {
                
InventarioInfo[playerid][i][iSlot] = dItemData[f][ObjtData][0];
                
InventarioInfo[playerid][i][iUnidades] = dItemData[f][ObjtData][1];
                break;
            }
        }
        new 
str[256];
        
format(strsizeof str"* Vocк pegou um item: %s, com %d unidade(s)"NomeItemID(dItemData[f][ObjtData][0]), dItemData[f][ObjtData][1]);
        
SendClientMessage(playerid0x00ccccFFstr);
        
DestroyDroppedObjectItem(f);
        
ApplyAnimation(playerid,"BOMBER","BOM_Plant_2Idle",4.1,0,1,1,0,0);
          return 
1;
    } 
Reply
#12

Code:
    CMD:pitem(playerid)
    {
        if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return 1;
        new f = MAX_OBJ+1;
        for(new a = 0; a < MAX_OBJ; a++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 1.8, dItemData[a][ObjtPos][0], dItemData[a][ObjtPos][1], dItemData[a][ObjtPos][2]))
            {
                f = a;
                break;
            }
        }
        if(f > MAX_OBJ) return 1;

        if(gettime() < GetPVarInt(playerid, #VarFlood8))
            return 1;
        SetPVarInt(playerid, #VarFlood8, gettime()+2);

        new bool:TemSlot = false;
        for(new i=0; i<75; i++)
        {
            if(InventarioInfo[playerid][i][iSlot] == 19382)
            {
                InventarioInfo[playerid][i][iSlot] = dItemData[f][ObjtData][0];
                InventarioInfo[playerid][i][iUnidades] = dItemData[f][ObjtData][1];
                TemSlot = true;
                break;
              }
        }
        if(!TemSlot)
        return SendClientMessage(playerid, 0xFF3080AA, "Seu inventбrio estб cheio!");
        new str[256];
        format(str, sizeof str, "Vocк pegou um item: %s, com %d unidade(s)", NomeItemID(dItemData[f][ObjtData][0]), dItemData[f][ObjtData][1]);
        SendClientMessage(playerid, 0xFF3080AA, str);
        DestroyDroppedObjectItem(f);
        SalvarInventario(playerid);
        ApplyAnimation(playerid,"BOMBER","BOM_Plant_2Idle",4.1,0,1,1,0,0);
        return 1;
    }
Reply
#13

Quote:
Originally Posted by BrunoLuiz
View Post
Code:
    CMD:pitem(playerid)
    {
        if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return 1;
        new f = MAX_OBJ+1;
        for(new a = 0; a < MAX_OBJ; a++)
        {
            if(IsPlayerInRangeOfPoint(playerid, 1.8, dItemData[a][ObjtPos][0], dItemData[a][ObjtPos][1], dItemData[a][ObjtPos][2]))
            {
                f = a;
                break;
            }
        }
        if(f > MAX_OBJ) return 1;

        if(gettime() < GetPVarInt(playerid, #VarFlood8))
            return 1;
        SetPVarInt(playerid, #VarFlood8, gettime()+2);

        new bool:TemSlot = false;
        for(new i=0; i<75; i++)
        {
            if(InventarioInfo[playerid][i][iSlot] == 19382)
            {
                InventarioInfo[playerid][i][iSlot] = dItemData[f][ObjtData][0];
                InventarioInfo[playerid][i][iUnidades] = dItemData[f][ObjtData][1];
                TemSlot = true;
                break;
              }
        }
        if(!TemSlot)
        return SendClientMessage(playerid, 0xFF3080AA, "Seu inventбrio estб cheio!");
        new str[256];
        format(str, sizeof str, "Vocк pegou um item: %s, com %d unidade(s)", NomeItemID(dItemData[f][ObjtData][0]), dItemData[f][ObjtData][1]);
        SendClientMessage(playerid, 0xFF3080AA, str);
        DestroyDroppedObjectItem(f);
        SalvarInventario(playerid);
        ApplyAnimation(playerid,"BOMBER","BOM_Plant_2Idle",4.1,0,1,1,0,0);
        return 1;
    }
voce nao entendeu mano
esse sistema ele ta funcionando normal

nao da para pega o item do chao quando ele cai atravez desse sistema:
PHP Code:
    if(playertextid == invText[playerid][14]){
        new 
str[180];
        if(
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] == 19382){
            
SendClientMessage(playerid0xFF6347AA"* Nгo hб itens suficientes para ser descartado!");
            for(new 
716i++){
            
PlayerTextDrawHide(playeridinvText[playerid][i]);
            }
            
BoxAberto[playerid] = 0;
            return 
1;
        }
        
format(str280"* Vocк largou um item: %s, com %d unidade(s)"NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades]);
        
SendClientMessage(playerid0x00ccccFFstr);
        
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] = 19382;
        
InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades] = 0;
        
BoxAberto[playerid] = 0;
        
FecharInventario(playerid);
        
AbrirInventario(playerid);
        new 
FloatXFloatYFloatZ;
        
GetPlayerPos(playeridXYZ);
        
SetTimerEx("AbrirInventario"200false"i"playerid);
        
CreateDroppedItem(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot], InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], XY+0.5Z);
        
SetPlayerPos(playeridXY+0.1Z);
     } 
quando o item й jogado no chao atravйs desse sistema ele nao aparece o item no chгo fica invisнvel sу escrito item desconhecido
ele nao aparece o objeto e quando pega ele ( quando cai desse sistema que й o descartar item do inventario ) ele fala que pego o item desconhecido com 0 unidades

exemplo:
jogo o item dinheiro com 10000 ( do inventario )
ele cai sу que fica item desconhecido 0 unidades
nao aparece objeto fica invisivel
e se eu jogo atravez do comando /dinheiro que eu tinha te mostrado ele funcional normal
cria o dinheiro no chao e da para pegar normal

@Edit

o erro esta aqui:
PHP Code:
CreateDroppedItem(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot], InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], XY+0.5Z); 
acho que й pq esta faltando o
PHP Code:
NomeItemInv 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)