21.07.2013, 00:57
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:
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...
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; }
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...