[Ayuda] Puertas
#1

Bueno.. Habia hecho una puerta con comando.. cualquier jugador l podia usar.
pawn Код:
#include <zcmd>

new Door;

Door = CreateObject(16357, -2518.929932, 619.630005, 18.195875, 270.6186, 0.0000, 0.0000); //object(sfcopdr) (2) low

command(openadmindoor, playerid, params[])
{
    MoveObject(Door, -2518.929932, 619.630005, 0.000000, 2.0);
    return 1;
}

command(closeadmindoor, playerid, params[])
{
    MoveObject(Door, -2518.929932, 619.630005, 18.195875, 2.0);
    return 1;
}
Asi nomas parece que no anda XD, esque lo achique para traerlo aca.. Pero si anda.. (Poniendolo en sus respectivos lugares). Bueno el problema era que al poner eso, no se si era el #include <zcmd> me traia problemas (No errores de compilacion), si no que dentro del server no me servia ningun comando ya sea /help. Pero SI funcionaban ese comando de la puerta.. Al sacarlo, los comandos comenzaron a funcionar de nuevo..(/help - /changeteam, etc)
Yo habia provado este metodo https://sampforum.blast.hk/showthread.php?tid=123849 Pero no me funciono.. Ademas necesito que solo sea activada por rcon admin, y que se active cerca o lejos de ella, no como dice el post que solo se activaba si estava a un radio de 15.0
No me podrian dar otra opcion de como poner una puerta y moverla por comando, (no del mismo metodo que use)..
Reply
#2

Lsito! Ahi lo pude solucionar..
pawn Код:
if (!IsPlayerAdmin(playerid)) return 0;
      if (strcmp("/openadmindoor", cmdtext, true) == 0) //para abrir la puerta
      {

        if(IsPlayerInRangeOfPoint(playerid, 15000.0, -2518.929932, 619.630005, 18.195875, 2.0)){
        MoveObject(admindoor, -2518.929932, 619.630005, 0.000000, 2.0);  
        return SendClientMessage(playerid, 0x28F943FF, "Server: Has abierto la puerta");
        }else return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Debes estar cerca de la puerta para usar este comando");
      }
        if (!IsPlayerAdmin(playerid)) return 0;
      if (strcmp("/closeadmindoor", cmdtext, true) == 0)
      {

       if(IsPlayerInRangeOfPoint(playerid, 15000.0, -2518.929932, 619.630005, 0.000000, 2.0)){  
          MoveObject(admindoor, -2518.929932, 619.630005, 18.195875, 2.0);
          return SendClientMessage(playerid, 0x28F943FF, "Server: Has cerrado la puerta");
        }else return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Debes estar cerca de la puerta para usar este comando");
      }
pero me salen 2 errores, aunque si lo compila y funciona..
en la parte donde dice if(IsPlayerInRangeOfPoint(playerid, 15000.0, -2518.929932, 619.630005, 18.195875, 2.0)){

Quote:
warning 202: number of arguments does not match definition
warning 202: number of arguments does not match definition

Reply
#3

pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 2.0, -2518.929932, 619.630005, 18.195875))
Reply
#4

Quote:
Originally Posted by josta
Посмотреть сообщение
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 2.0, -2518.929932, 619.630005, 18.195875))
Gracias por responder.. me distes una idea ^^
Al final lo deje asi:
Quote:

if(IsPlayerInRangeOfPoint(playerid, 15000.0, -2518.929932, 619.630005, 18.195875)){

saque el 2.0 del final de todo (como vos dejastes), adelante lo deje en 15000.0 ya que ese es el radio de posicion de uno, y el } al final habia que dejarlo, porque sino tiraba mil errores XD
Quedandome asi, lo dejo por si alguien le sirve el mismo metodo ^^
pawn Код:
if (!IsPlayerAdmin(playerid)) return 0;
      if (strcmp("/openadmindoor", cmdtext, true) == 0)
      {

        if(IsPlayerInRangeOfPoint(playerid, 15000.0, -2518.929932, 619.630005, 18.195875)){  
        MoveObject(admindoor, -2518.929932, 619.630005, 0.000000, 2.0);
        return SendClientMessage(playerid, 0x28F943FF, "Server: Has abierto la puerta");
        }else return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Debes estar cerca de la puerta para usar este comando");
      }
        if (!IsPlayerAdmin(playerid)) return 0;
      if (strcmp("/closeadmindoor", cmdtext, true) == 0)
      {

        if(IsPlayerInRangeOfPoint(playerid, 15000.0, -2518.929932, 619.630005, 0.000000)){  
          MoveObject(admindoor, -2518.929932, 619.630005, 18.195875, 2.0);
          return SendClientMessage(playerid, 0x28F943FF, "Server: Has cerrado la puerta");
        }else return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Debes estar cerca de la puerta para usar este comando");
      }
Reply
#5

No sй para que usas IsPlayerInRangeOfPoint si no te interesa verificar la posiciуn
pawn Код:
if (!IsPlayerAdmin(playerid)) return 0;

        if (strcmp("/openadmindoor", cmdtext, true) == 0) {
            MoveObject(admindoor, -2518.929932, 619.630005, 0.000000, 2.0);
            SendClientMessage(playerid, 0x28F943FF, "Server: Has abierto la puerta");
            return 1;
        }
        //if (!IsPlayerAdmin(playerid)) return 0; Esto no es necesario por que ya estб arriba
       
        if (strcmp("/closeadmindoor", cmdtext, true) == 0) {
            MoveObject(admindoor, -2518.929932, 619.630005, 18.195875, 2.0);
            SendClientMessage(playerid, 0x28F943FF, "Server: Has cerrado la puerta");
            return 1;
        }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)