Remover Objeto por Cordenada -
maikonk - 21.07.2013
Pessoal, eu criei um sistema, em que o admin pode criar um objeto in-game e salvar este objeto.
Tudo esta ocorrendo certo quando ele cria o objeto aparece normalmente e salva o arquivo normalmente, quando ele loga no jogo por mais que o server tenha reiniciado, o objeto ta la tudo ok, porem quando ele digita.
/removerobjeto ele remove apenas o ultimo objeto adicionado.
Segue os comandos:
Код:
if(strcmp(cmdtext,"/criarobjeto2",true) ==0)
{
idobj[playerid] = 1 + random(2999);
format(StringObj, sizeof(StringObj), "Objetos/%d.ini", idobj[playerid]);
if(!DOF2_FileExists(StringObj))
{
DOF2_CreateFile(StringObj);
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
strmid(Objeto[idobj[playerid]][pONome], PlayerName, 0, strlen(PlayerName), MAX_PLAYER_NAME);
Objeto[idobj[playerid]][pObjID] = 1238;
GetPlayerPos(playerid, CordX[playerid], CordY[playerid], CordZ[playerid]);
Objeto[idobj[playerid]][pObjX] = CordX[playerid];
Objeto[idobj[playerid]][pObjY] = CordY[playerid];
Objeto[idobj[playerid]][pObjZ] = CordZ[playerid];
Objeto[idobj[playerid]][pObjRX] = 0.000000;
Objeto[idobj[playerid]][pObjRY] = 0.000000;
Objeto[idobj[playerid]][pObjRZ] = 0.000000;
Objeto[idobj[playerid]][pObjVida] = 100;
Objeto[idobj[playerid]][pObjNivel] = 0;
Objeto[idobj[playerid]][pObjNivelMax] = 0;
Objeto[idobj[playerid]][pObjPCode] = PlayerDados[playerid][pCodigo];
Objeto[idobj[playerid]][pObjIDent] = idobj[playerid];
SendClientMessage(playerid, VERMELHO, "Objeto Criado, para remover digite /removerobjeto.");
format(string, sizeof(string), "{FFFFFF}Objeto de ID {1E90FF}%d{FFFFFF} criado.", idobj[playerid]);
SendClientMessage(playerid, BRANCO, string);
OID[playerid] = CreateDynamicObject(Objeto[idobj[playerid]][pObjID],Objeto[idobj[playerid]][pObjX],Objeto[idobj[playerid]][pObjY],Objeto[idobj[playerid]][pObjZ],Objeto[1][pObjRX],Objeto[1][pObjRY],Objeto[1][pObjRZ]);
DOF2_SaveFile();
return 1;
}
}
if(strcmp(cmd, "/removerobjeto", true) == 0)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, BRANCO, "Objeto Removido");
DestroyDynamicObject(OID[playerid]);
return 1;
}
return 1;
}
Eu sei porque ele remove o ultimo objeto, pois o OID[playerid] й setado sempre para o ultimo objeto criado pelo player.
Queria pedir ajuda a voces, de como eu poderia, fazer um sistema que removesse o objeto pela proximidade, por exemplo o player chegar em um determinado objeto e remover aquele objeto que esta mais proximo dele, se caso nao houver maneira de fazer isso, alguem poderia me dar uma dica de como eu poderia remover o objeto que o player criou independente dele ser o ultimo ou o primeiro a ser criado?
Obs: EU SУ QUERO SABER COMO POSSO REMOVER O (OBJETO), E NAO O ARQUIVO DO OBJETO SALVO NA SCRIPTS...
Re: Remover Objeto por Cordenada -
Cidiei - 21.07.2013
Crie uma definiзгo para o ID do objeto. Nгo o id do modelo, e sim o id de objeto criado.
Re: Remover Objeto por Cordenada -
maikonk - 21.07.2013
Nгo entendi muito bem, voce quer dizer para que eu faзa uma definiзгo para cada objeto criado certo ?
Ele nгo esta definido para o id do modelo :S
Obs: este comando que eu postei, /criarobjeto2 , e eu coloquei para ele criar um cone, para teste mesmo (;