[Ajuda] Remover Objeto por Cordenada
#1

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...
Reply
#2

Crie uma definiзгo para o ID do objeto. Nгo o id do modelo, e sim o id de objeto criado.
Reply
#3

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 (;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)