[Pedido] Dъvida, Remove / Inativo
#1

Vi em uns tуpicos ai, e atй na wiki, mas nгo entendi muito.. Й sobre como remover objetos objetos do mesmo ID com apenas uma linha de RemoveBuildingForPlayer alguйm pode explicar como eu utilizo essa funзгo, se possнvel explique com um exemplar please.
Depois que fiquei sabendo que o remove tem limitaзгo de 1k quero diminuir o uso de remove.

-

Segunda dъvida й, alguйm tem um sistema / tуpico onde posso criar um sistema onde uso /inativo [playerID] e ele mostra quando tempo o jogador estб de ESC, eu tentei fazer mas nгo consegui.
Reply
#2

Otimas duvidas, vou procurar saber, e editar este mesmo comentario!


Ola, acabei de fazer isso aki, se for oque procura, da um Ctrl+c

em OnPlayerConect

pawn Код:
for(new i; i<MAX_OBJECTS; i++)
    {
        new Float:ps[3];
        if(GetObjectModel(i) == 5467)
        GetObjectPos(i,ps[0],ps[1],ps[2]);
        {
        RemoveBuildingForPlayer(playerid,5467,ps[0],ps[1],ps[2],0.25);
        }
    }
5467 й o id do objeto a ser removido ( eu nao testei o codigo, se deu errado, avise )
Reply
#3

Se nгo me engano, usando loop enquanto 'i' for menor que o mбximo de objetos (1000) ele vai fazer 1000 verificaзхes para encontrar o tal objeto. Tendo 100 objetos do mesmo id para remover, vai usar a funзгo RemoveBuildingForPlayer 100 vezes, logo nгo diminui o uso da funзгo.
Reply
#4

O uso da funзгo й bem simples, ela remove todos os objetos de um modelo especнfico dentro de uma бrea circular (raio).

Por exemplo, remover objetos de modelo especifico a 500 unidades de raio do jogador:

PHP код:
CMD:remove(playerid,params[])
{
    new 
id;
    
    if(
sscanf(params,"d",id))
        return 
SendClientMessage(playerid,-1,"Uso: /remove [OBJECT ID]");
        
    new 
Float:xFloat:yFloat:z;
    
GetPlayerPos(playerid,x,y,z);
    
RemoveBuildingForPlayer(playerid,id,x,y,z,500.0);
    
    return 
1;

Removendo postes de ID 1290 daquela rua da praia em Los Santos, usando um RemoveBuildForPlayer sу:

http://i.imgur.com/BTAG4g8.mp4
Reply
#5

Na verdade nгo quero usar como comando, e sim no onplayerconnect normal, porйm isso que nгo entendo direiro o tal do raio, com sei que ele vai remover dos os igual que deletei, como vou saber o raio entre aqueles que deletei.

Sempre que for usar em um determinado objt, tenho que usar a float?
Reply
#6

Quote:
Originally Posted by Dishz
Посмотреть сообщение
Na verdade nгo quero usar como comando, e sim no onplayerconnect normal, porйm isso que nгo entendo direiro o tal do raio, com sei que ele vai remover dos os igual que deletei, como vou saber o raio entre aqueles que deletei.

Sempre que for usar em um determinado objt, tenho que usar a float?
O comando foi sу um exemplo de uso da funзгo. Raio, й a metade do diвmetro de um cнrculo



Portanto, o ponto central й composto das coordenadas x, y, z. Vocк pode obter facilmente as coordenadas digitando /save durante o jogo. Todos os objetos de ID especificado dentro da бrea deste circulo imaginбrio serгo removidos para o jogador.

Talvez o que esteja confuso para vocк, й que o SA-MP nгo trabalha com os objetos nativos dos GTA de forma ordenada, a funзгo envia um comando para o cliente remover os objetos que tenham o modelo no raio de determinada coordenada.
Reply
#7

ok, nгo vou tentar explicar minha dъvida, isso que vocк falou acima eu sei, estudei isso..
Sу me faz um favor, me passa um exemplar removendo 5 objetos cada um com ID diferente, no mesmo raio.. isso que quero saber, como colocar no script. @
Reply
#8

Em, alguйm poderia dar um exemplar de como ficaria o script deletando 5 objetos de IDs diferentes?
Reply
#9

Isso?

Код:
new id[5];
    
if(sscanf(params,"d",id[0], id[1], id[2], id[3], id[4])) return SendClientMessage(playerid,-1,"Uso: /remove [OBJECT ID 1] [OBJECT ID 2] [OBJECT ID 3] [OBJECT ID 4] [OBJECT ID 5]");

new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);

for(new i; i < sizeof id; ++ i) RemoveBuildingForPlayer(playerid,i,x,y,z,500.0);
Reply
#10

@F1N4L
loop simplifica o cуdigo mas usa a mesma quantidade da funзгo RemoveBuildingForPlayer ou atй mais ...
Quote:
Originally Posted by Dishz
Посмотреть сообщение
Depois que fiquei sabendo que o remove tem limitaзгo de 1k quero diminuir o uso de remove.
Talvez alguma verificaзгo com IsPlayerInRangeOfPoint, mas acredito que darб problemas, quer deletar o mapa todo?
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)