SA-MP Forums Archive
[Ajuda] Remover Objeto por Cordenada - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Remover Objeto por Cordenada (/showthread.php?tid=452338)



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