Me Ayudan con estй cуdigo :s? -
SaiB0T - 10.01.2013
Код:
if (strcmp("/desbloquear", cmdtext, true, 10) == 0)
{
new jugador;
tmp = strtok(cmdtext, idx);
jugador = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_RED, "* Usa: /desbloquear <ID>");
if (strval(tmp) == playerid) return SendClientMessage(playerid, COLOR_RED, "* Error: No puedes desbloquearte tu mismo!");
if (IsPlayerConnected(jugador))
{
if(Informacion[playerid][Bloqueado] == 1)
{
format(string2,sizeof(string2),"* Desbloqueado. Ahora %s se podra teletransportar hacia ti!",PlayerName2(jugador));
SendClientMessage(playerid,COLOR_RED,string2);
format(string2,sizeof(string2),"* %s Te dejo que te teletransportes hacia el.",PlayerName2(playerid));
SendClientMessage(jugador,COLOR_RED,string2);
Informacion[playerid][Bloqueado] = 0;
return 1;
} else return SendClientMessage(playerid, 0x33CCFFAA, "* Ya estas desbloqueado, usa /bloquear para bloquear la teletransportaciуn.");
}
else return SendClientMessage(playerid, red, "* El jugador no esta conectado!");
}
if (strcmp("/ir", cmd, true, 10) == 0)
{
new jugador;
tmp = strtok(cmdtext, idx);
jugador = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_RED, "* Usa: /ir <ID>");
if (strval(tmp) == playerid) return SendClientMessage(playerid, COLOR_RED, "* Error: No puedes teletransportarte hacia ti mismo.");
if (IsPlayerConnected(jugador))
{
if(Informacion[jugador][Bloqueado] == 0)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(jugador, x, y, z);
TeleportPlayer(playerid, x + 2, y, z);
format(string2,sizeof(string2),"* El usuario %s se teletransporto hacia ti, Para impedir eso usa /bloquear",PlayerName2(playerid));
SendClientMessage(jugador,0xFFFF00AA,string2);
return 1;
}
else return SendClientMessage(playerid, COLOR_RED, "* El jugador prohibio que te teletransportes hacia el.");
}
else return SendClientMessage(playerid, COLOR_RED, "* Error: ID no encontrada!");
}
if (strcmp("/bloquearir", cmdtext, true, 10) == 0)
{
new jugador;
tmp = strtok(cmdtext, idx);
jugador = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_RED, "* Usa: /bloquearir <ID>");
if (strval(tmp) == playerid) return SendClientMessage(playerid, COLOR_RED, "* Error: No puedes bloquearte tu mismo!");
if (IsPlayerConnected(jugador))
{
if(Informacion[playerid][Bloqueado] == 0)
{
format(string2,sizeof(string2),"* Bloqueado. Ahora %s no se podra teletransportar hacia ti!",PlayerName2(jugador));
SendClientMessage(playerid,COLOR_RED,string2);
format(string2,sizeof(string2),"* %s Te bloqueo la teletransportacion hacia el.",PlayerName2(playerid));
SendClientMessage(jugador,COLOR_RED,string2);
Informacion[playerid][Bloqueado] = 1;
return 1;
}
else return SendClientMessage(playerid, 0x33CCFFAA, "* Ya estas bloqueado, usa /desbloquear para desbloquear la teletransportaciуn.");
}
else return SendClientMessage(playerid, red, "* El jugador no esta conectado!");
}
Bueno,Funciona, pero quiero que al desbloquear a alguien otro user no pueda teletransportarse asia mi, osea al poner /bloquearir [id] se bloquea para todos, y lo mismo al desbloquear, se desbloquea a todos

Me ayudan?dx
Respuesta: Me Ayudan con estй cуdigo :s? -
PHudson - 11.01.2013
Sн, te ayudo, pero con ZCMD y sscanf, que tengo mбs facilidad. Eso que has puesto ahн es muy difнcil de entender como no lo ordenes. Tambiйn utiliza el formato [PAWN][/ PAWN] del foro.
Serнa algo asн:
pawn Код:
// al principio del cуdigo, junto a los demбs new
new IrBloqueado[MAX_PLAYERS][MAX_PLAYERS];
// ********
public OnPlayerDisconnect(playerid,reason)
{
for(new i = 0; i < MAX_PLAYERS; i++) // PARA BORRAR LOS BLOQUEOS CUANDO EL JUGADOR SE DESCONECTE
{
IrBloqueado[playerid][i] = 0;
}
return 1;
}
COMMAND:ir(playerid, params[])
{
new i;
if(!sscanf(params,"i",i))
{
if(IsPlayerConnected(i))
{
if(!IrBloqueado[i][playerid])
{
// FUNCIONES PARA TELETRANSPORTAR"PLAYERID" A "I"
// SUPONGO QUE SABRБS HACERLAS
// ..............
}
else
{
SendClientMessage(playerid,-1,"Este jugador ha activado la opciуn de que te teletransportes a йl");
}
}
else
{
SendClientMessage(playerid,-1,"Ese jugador no estб conectado.");
}
else
{
SendClientMessage(playerid,-1,"Utiliza /ir [id].");
}
return 1;
}
COMMAND:bloquearir(playerid, params[])
{
new i;
if(!sscanf(params,"i",i))
{
if(IsPlayerConnected(i))
{
if(IsPlayerAdmin(i)) // para que no se pueda bloquear a admins de la RCON, si quieres lo quitas o cambias por otro tipo de admin.
{
new msg[144],nombre[MAX_PLAYER_NAME];
GetPlayerName(playerid, nombre, sizeof(nombre));
if(!IrBloqueado[playerid][i])
{
format(msg,sizeof(msg),"Has bloqueado a %s (ID:%i). Ya no puede teletransportarse a ti.",nombre,i);
IrBloqueado[playerid][i] = 1;
}
else
{
format(msg,sizeof(msg),"Has desbloqueado a %s (ID:%i). Ahora puede teletransportarse a ti.",nombre,i);
IrBloqueado[playerid][i] = 0;
}
}
else
{
SendClientMessage(playerid,-1,"No puedes bloquear a un admin.");
}
}
else
{
SendClientMessage(playerid,-1,"Ese jugador no estб conectado.");
}
}
else
{
SendClientMessage(playerid,-1,"Utiliza /bloquearir [id].");
}
return 1;
}
Si no entiendes por quй hago alguna cosita en concreto dнmelo y te lo explico. Espero que te funcione.
Saludos.
Respuesta: Me Ayudan con estй cуdigo :s? -
SaiB0T - 11.01.2013

Gracias.. Pero me da estй error:
error 017: undefined symbol "cmd_bloquearir"
cуdigo:
pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
// al principio del cуdigo, junto a los demбs new
new IrBloqueado[MAX_PLAYERS][MAX_PLAYERS];
// ********
public OnPlayerDisconnect(playerid,reason)
{
for(new i = 0; i < MAX_PLAYERS; i++) // PARA BORRAR LOS BLOQUEOS CUANDO EL JUGADOR SE DESCONECTE
{
IrBloqueado[playerid][i] = 0;
}
return 1;
}
forward TeleportPlayer(playerid, Float:x,Float:y,Float:z);
public TeleportPlayer(playerid, Float:x,Float:y,Float:z)
{
new cartype = GetPlayerVehicleID(playerid);
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SetPlayerPos(playerid,x,y,z);
}
else if(IsPlayerInVehicle(playerid, cartype) == 1)
{
SetVehiclePos(cartype,x,y,z);
}
else
{
SetPlayerPos(playerid,x,y,z);
}
SetPlayerInterior(playerid,0);
}
stock PlayerName2(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
CMD:ir(playerid,params[]) {
new i,string2[256];
if(!sscanf(params,"i",i))
{
if(IsPlayerConnected(i))
{
if(!IrBloqueado[i][playerid])
{
new Float:x, Float:y, Float:z;
GetPlayerPos(i, x, y, z);
TeleportPlayer(playerid, x + 2, y, z);
format(string2,sizeof(string2),"* El usuario %s se teletransporto hacia ti, Para impedir eso usa /bloquear",PlayerName2(playerid));
SendClientMessage(i,0xFFFF00AA,string2);
}
else
{
SendClientMessage(playerid,-1,"* Error: Este jugador ha activado la opciуn de que te teletransportes a йl");
}
}
else
{
SendClientMessage(playerid,-1,"* Error: Ese jugador no estб conectado.");
}
else
{
SendClientMessage(playerid,-1,"* Usa /ir <ID>");
}
return 1;
}
CMD:bloquearir(playerid,params[]) {
new i;
if(!sscanf(params,"i",i))
{
if(IsPlayerConnected(i))
{
if(IsPlayerAdmin(i)) // para que no se pueda bloquear a admins de la RCON, si quieres lo quitas o cambias por otro tipo de admin.
{
new msg[144],nombre[MAX_PLAYER_NAME];
GetPlayerName(playerid, nombre, sizeof(nombre));
if(!IrBloqueado[playerid][i])
{
format(msg,sizeof(msg),"* Has bloqueado a %s (ID:%i). Ya no puede teletransportarse a ti.",nombre,i);
IrBloqueado[playerid][i] = 1;
}
else
{
format(msg,sizeof(msg),"* Has desbloqueado a %s (ID:%i). Ahora puede teletransportarse a ti.",nombre,i);
IrBloqueado[playerid][i] = 0;
}
}
else
{
SendClientMessage(playerid,-1,"* Error: No puedes bloquear a un admin.");
}
}
else
{
SendClientMessage(playerid,-1,"* Error: Ese jugador no estб conectado.");
}
}
else
{
SendClientMessage(playerid,-1,"* Usa /bloquearir <ID>");
}
return 1;
}
Respuesta: Me Ayudan con estй cуdigo :s? -
PHudson - 11.01.2013
Prueba tal y como lo puse yo, con COMMAND: en vez de CMD:
Saludos.
-
SaiB0T - 11.01.2013
Es lo mismo, Me da igual el error. :S
Ya pueden cerrar :d Gracias PHudson, lo hize sin sscanf y con strcmp y funciona. Saludos.