[Ajuda] Criar / Apagar objetos
#1

Boas pessoal. Tenho um comando de criar objetos que й este:

PHP код:
CMD:colocarbarreira(playeridparams[])
{
    if(
IsPlayerAdmin(playerid))
    {
        new 
ido;
        new 
Float:jogadorx;
        new 
Float:jogadory;
        new 
Float:jogadorz;
        if(
sscanf(params"d"ido)) return SendClientMessage(playeridINFO,"[ USO: ] /colocarbarreira [1 - CONE | 2 - BARREIRA | 3 - CAIXA | 4 - CAIXA (2)]");
        if(
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridFAIL,"[ ERRO: ] Tu estбs num veнculo!");
        if(
ido == 1)
        {
              
GetPlayerPos(playeridjogadorxjogadoryjogadorz);
             
SendClientMessage(playeridSUCESSO"Criaste um cone!");
            
CreateObject(1238jogadorxjogadoryjogadorz-0.700.00.00.0);
        }
        else if( 
ido == 2)
        {
              
GetPlayerPos(playeridjogadorxjogadoryjogadorz);
             
SendClientMessage(playeridSUCESSO"Criaste uma barreira!");
            
CreateObject(1424jogadorxjogadoryjogadorz-0.700.00.00.0);
        }
        else if( 
ido == 3)
        {
              
GetPlayerPos(playeridjogadorxjogadoryjogadorz);
             
SendClientMessage(playeridSUCESSO"Criaste uma caixa!");
            
CreateObject(1271jogadorxjogadoryjogadorz-0.700.00.00.0);
        }
        else if( 
ido == 4)
        {
              
GetPlayerPos(playeridjogadorxjogadoryjogadorz);
             
SendClientMessage(playeridSUCESSO"Criaste uma caixa!");
            
CreateObject(1431jogadorxjogadoryjogadorz-0.700.00.00.0);
        }
        else
        {
            
SendClientMessage(playeridFAIL"[ ERRO: ] Objecto invбlido!");
        }
    }
    else
    {
         
SendClientMessage(playeridFAIL"[ ERRO: ] Tu nгo йs Administrador.");
    }
    return 
1;

E queria um comando para apagar TODOS os objetos criados pelo comando. Como faзo? Obrigado
Reply
#2

Armazena os objetos em variбveis depois apaga as variбveis usando
pawn Код:
DestroyObject(variavel);
Reply
#3

Quote:
Originally Posted by Delete_
Посмотреть сообщение
Armazena os objetos em variбveis depois apaga as variбveis usando
pawn Код:
DestroyObject(variavel);
Exemplo de armazenamento
pawn Код:
variavel = CreateObject(1431, jogadorx, jogadory, jogadorz-0.70, 0.0, 0.0, 0.0);
Reply
#4

Obrigado pelas respostas. Jб tinha pensado nisso... mas tenho mais algumas questхes:

Guardei o objeto numa variбvel chamada cone1, mas dб warning. Porquк?

PHP код:
cone1 CreateObject(1431jogadorxjogadoryjogadorz-0.700.00.00.0); 
PHP код:
warning 204symbol is assigned a value that is never used"cone1" 
Reply
#5

Variбvel jб estб sendo usada, muda o nome.
Reply
#6

Nгo... й a mesma coisa.

"symbol is assigned a value that is never used: "cone1"" - a variбvel nunca й usada
Reply
#7

Tenta assim
pawn Код:
// Topo do gamemode abaixo das includes
new ObjetosCriado[100];
new Criou;
No seu comando vocк muda para
pawn Код:
CMD:colocarbarreira(playerid, params[])
{
    if(IsPlayerAdmin(playerid))
    {
        new ido;
        new Float:jogadorx;
        new Float:jogadory;
        new Float:jogadorz;

        if(sscanf(params, "d", ido)) return SendClientMessage(playerid, INFO,"[ USO: ] /colocarbarreira [1 - CONE | 2 - BARREIRA | 3 - CAIXA | 4 - CAIXA (2)]");
        if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, FAIL,"[ ERRO: ] Tu estбs num veнculo!");
        Criou++;
        if(ido == 1)
        {
            GetPlayerPos(playerid, jogadorx, jogadory, jogadorz);
            SendClientMessage(playerid, SUCESSO, "Criaste um cone!");
            ObjetosCriado[Criou] = CreateObject(1238, jogadorx, jogadory, jogadorz-0.70, 0.0, 0.0, 0.0);
        }
        else if( ido == 2)
        {
            GetPlayerPos(playerid, jogadorx, jogadory, jogadorz);
            SendClientMessage(playerid, SUCESSO, "Criaste uma barreira!");
            ObjetosCriado[Criou] = CreateObject(1424, jogadorx, jogadory, jogadorz-0.70, 0.0, 0.0, 0.0);
        }
        else if( ido == 3)
        {
            GetPlayerPos(playerid, jogadorx, jogadory, jogadorz);
            SendClientMessage(playerid, SUCESSO, "Criaste uma caixa!");
            ObjetosCriado[Criou] = CreateObject(1271, jogadorx, jogadory, jogadorz-0.70, 0.0, 0.0, 0.0);
        }
        else if( ido == 4)
        {
            GetPlayerPos(playerid, jogadorx, jogadory, jogadorz);
            SendClientMessage(playerid, SUCESSO, "Criaste uma caixa!");
            ObjetosCriado[Criou] = CreateObject(1431, jogadorx, jogadory, jogadorz-0.70, 0.0, 0.0, 0.0);
        }
        else
        {
            SendClientMessage(playerid, FAIL, "[ ERRO: ] Objecto invбlido!");
        }
    }
    else
    {
         SendClientMessage(playerid, FAIL, "[ ERRO: ] Tu nгo йs Administrador.");
    }
    return 1;
}
e o comando para destruir seus objetos

@Edit - Muda o comando destruir para esse

pawn Код:
CMD:destruir(playerid)
{
    Criou = 0;
    for(new i; i < sizeof(ObjetosCriado); i++)
    {
        DestroyObject(ObjetosCriado[i]);
    }
    return 1;
}
Reply
#8

Boas.

@Supera

Vocк ajudou, mas quando crio mais do que um objeto ao mesmo tempo, ele sу apaga um. Queria que ele apagasse todos... alguйm consegue fazer isso por mim?

@EDIT

Ups, esqueci-me do ++.

Obrigado a todos pela ajuda. Supera, +rep
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)