new Puerta;
//Si van a crear la puerta en un GameMode, en OnGameModeInit() agregamos
 Puerta =  CreateObject(modelodepuerta, coordenadaX, coordenadaY, coordenadaZ, rotacionX, rotacionY, rotacionZ);
//Si por el contrario la van a crear en un FilterScript, en OnFilterScriptInit() agregamos
 Puerta =  CreateObject(modelodepuerta, coordenadaX, coordenadaY, coordenadaZ, rotacionX, rotacionY, rotacionZ);
public OnPlayerCommandText(playerid, cmdtext[])
{
 if (strcmp("/abrir", cmdtext, true) == 0) //para abrir la puerta
 {
  Â
  if(IsPlayerInRangeOfPoint(playerid, 15.0, coordenadaX, coordenadaY, coordenadaZ)){  //si el jugador no esta en un radio de 15.0 a la puerta no lo dejara usar el comando. (Reemplazar las coordenadas por las coordenadas de nuestra puerta (CERRADA))
   MoveObject(Puerta, coordenadaX, coordenadaY, coordenadaZ, 3.0);  //mueve nuestra puerta hasta las coordenadas de la puerta abierta. (Reemplazar las coordenadas por las coordenadas de nuestra puerta (ABIERTA))
   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 (strcmp("/cerrar", cmdtext, true) == 0) //cerrar
 {
  Â
  if(IsPlayerInRangeOfPoint(playerid, 15.0, coordenadaX, coordenadaY, coordenadaZ)){  //si el jugador no esta en un radio de 15.0 a la puerta no lo dejara usar el comando. (Reemplazar las coordenadas por las coordenadas de nuestra puerta (CERRADA))
   MoveObject(Puerta, coordenadaX, coordenadaY, coordenadaZ, 3.0);  //mueve nuestra puerta hasta las coordenadas de la puerta abierta. (Reemplazar las coordenadas por las coordenadas de nuestra puerta (CERRADA))
   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");
 }
 return 0;
}
//Si es unGameMode
public OnGameModeInit()
{
 SetTimer("PuertaCheck", 1000, 1);
}
//Si por el contrario es un FilterScript
public OnFilterScriptInit()
{
 SetTimer("PuertaCheck", 1000, 1);
}
forward PuertaCheck();
public PuertaCheck()
{
 for(new i=0; i<MAX_PLAYERS; i++){  //Creamos una variable i con cada valor de los jugadores,(seria un reemplazo de playerid)
  if(IsPlayerConnected(i)){ //si nuestro jugador (i) esta conectado entonces...
   if(IsPlayerInRangeOfPoint(i, 15.0, coordenadaX, coordenadaY, coordenadaZ)){  /si el jugador i esta dentro del rango de 15 a la puerta entonces...
    MoveObject(Puerta, coordenadaX, coordenadaY, coordenadaZ, 3.0); //abre la puerta
    //Reemplazar las coordenadas por las de la puerta abierta
   }
   else{  //si no esta en un rango de 15 a la puerta...
    MoveObject(Puerta, coordenadaX, coordenadaY, coordenadaZ, 3.0);  //cierra la puerta
    //Reemplazar las coordenadas por las de la puerta cerrada
   }
  }
 }
}
CreateObject(objecto, coordenadaX, coordenadaY, coordenadaZ, rotacionX, rotacionY, rotacionZ);
IsPlayerInRangeOfPoint(jugador, radio, coordenadaX, coordenadaY, coordenadaZ);
MoveObject(ojecto, coordenadaX, coordenadaY, coordenadaZ, velocidad);
SendClientMessage(jugador, color, "mensaje");
SetTimer("NombredelTimer", tiempo, 0/1) // para que no se repita 0, para que se repita 1.
//Nota: el tiempo va en milisegundos (1 segundo = 1000 milisegundos).
IsPlayerConnected(jugador); //retorna el valor 1 si el jugador esta conectado y 0 si no lo esta.
Originally Posted by SAWC™
Usa un editor de mapas como MTA race editor o busca uno en el forum en ingles.
|
new YKZDoor CreateObject(3055,283.32315063477,-1185.1712646484,81.859893798828,37.849975585938); public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/pykz", cmdtext, true) == 0) //para abrir la puerta { MoveObject(3055,277.12109375,-1190.1922607422,81.859893798828, 3.0); //mueve nuestra puerta hasta las coordenadas de la puerta abierta. SendClientMessage(playerid, 0x28F943FF, "Has abierto la puerta Yakuza, recuerda cerrarla"); } if (strcmp("/cykz", cmdtext, true) == 0) //cerrar { MoveObject(3055,283.32315063477,-1185.1712646484,81.859893798828, 3.0); //mueve nuestra puerta hasta las coordenadas de la puerta abierta. (Reemplazar las coordenadas por las coordenadas de nuestra puerta (CERRADA)) SendClientMessage(playerid, 0x28F943FF, "Server: Has cerrado la puerta"); } return 0; }
filterscripts\Puertas.pwn(24) : error 021: symbol already defined: "CreateObject"
Originally Posted by Sandman-x
Muy bueno el tuto, pero me tira un error diciendo:
Код:
new YKZDoor CreateObject(3055,283.32315063477,-1185.1712646484,81.859893798828,37.849975585938); public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/pykz", cmdtext, true) == 0) //para abrir la puerta { MoveObject(3055,277.12109375,-1190.1922607422,81.859893798828, 3.0); //mueve nuestra puerta hasta las coordenadas de la puerta abierta. SendClientMessage(playerid, 0x28F943FF, "Has abierto la puerta Yakuza, recuerda cerrarla"); } if (strcmp("/cykz", cmdtext, true) == 0) //cerrar { MoveObject(3055,283.32315063477,-1185.1712646484,81.859893798828, 3.0); //mueve nuestra puerta hasta las coordenadas de la puerta abierta. (Reemplazar las coordenadas por las coordenadas de nuestra puerta (CERRADA)) SendClientMessage(playerid, 0x28F943FF, "Server: Has cerrado la puerta"); } return 0; } Код:
filterscripts\Puertas.pwn(24) : error 021: symbol already defined: "CreateObject" |
new YKZDoor;
YKZDoor = CreateObject(3055,283.32315063477,-1185.1712646484,81.859893798828,37.849975585938);