[Problema]/IR (sscanf)
#1

Hola a todos, me pasaron este comando que al compilar anda de 10, pero al ponerlo como comando, si pongo /IR me manda siempre al ID 0... pero si pongo /Ir 2, 3 5 6 no me sirve nada
Asн lo tengo, es y_cmd y sscanf:
Код:
YCMD:ir(playerid, params[], help){
new targetid;
if(sscanf(params, "u", targetid)) SendClientMessage(playerid,-1,"[ERROR]: /ir [ID]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid,-1,"Jugador no esta conectado.");
if(Informacion[targetid][EstaBloqueado] == 1) return SendClientMessage(playerid,-1,"El jugador desactivу el comando /IR.");
new Float:x,Float:y,Float:z,inter,vworld;
GetPlayerPos(targetid,Float:x,Float:y,Float:z);
inter = GetPlayerInterior(targetid);
vworld = GetPlayerVirtualWorld(targetid);
SetPlayerPosEx(playerid,Float:x,Float:y,Float:z,inter,vworld);
return 1;}

stock SetPlayerPosEx(playerid, Float: posx, Float: posy, Float: posz, interior, virtualworld ){
if( GetPlayerState( playerid ) == 2 ){
SetPlayerVirtualWorld( playerid, virtualworld );
SetVehicleVirtualWorld( GetPlayerVehicleID( playerid ), virtualworld );
LinkVehicleToInterior( GetPlayerVehicleID( playerid ), interior );
SetPlayerInterior( playerid, interior );
SetVehiclePos( GetPlayerVehicleID( playerid ), posx, posy, posz );
return 1;}
else{
SetPlayerVirtualWorld( playerid, virtualworld );
SetPlayerInterior( playerid, interior );
SetPlayerPos( playerid, posx, posy, posz );
return 1;}}
Ayuda y gracias!
Reply
#2

pawn Код:
if(sscanf(params, "u", targetid)) SendClientMessage(playerid,-1,"[ERROR]: /ir [ID]");
No estas haciendo que el cуdigo se detenga si la condiciуn se cumple.

pawn Код:
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid,-1,"[ERROR]: /ir [ID]");
Asн de mбgico.
Reply
#3

Ya lo hice y es lo mismo ._.
Reply
#4

pawn Код:
YCMD:ir(playerid, params[], help)
{
    if(sscanf(params,"u",params[0]))return SendClientMessage(playerid,-1,"[ERROR]: /ir [playerid]");
    if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,-1,"[ERROR]: Jugador no conectado!");
    if(Informacion[targetid][EstaBloqueado] == 1) return SendClientMessage(playerid,-1,"El jugador desactivу el comando /IR.");
    if(params[0] == playerid) return SendClientMessage(playerid, -1, "No puedes teletransportarte a tн mismo.");
    new Float:Pos[3];
    GetPlayerPos(params[0],Pos[0],Pos[1],Pos[2]);
    SetPlayerPosEx(playerid,Pos[0],Pos[1],Pos[2]);
    new interior = GetPlayerInterior(params[0]);
    SetPlayerInterior(playerid,interior);
    return 1;
}
Reply
#5

Pero ese cmd no tiene las funciones que tiene el otro e,e y es lo mismo D;
Reply
#6

Quote:
Originally Posted by Matyaas
Посмотреть сообщение
Ya lo hice y es lo mismo ._.
Ya lo hice, 500 veces (+) y siempre funcionу.

Usas solo y_commands como procesador de comandos? estas seguro que es el original? la ъltima versiуn del plugin sscanf? su include correspondiente?
Reply
#7

Sipi xddd nosй que pasa, hsata me asegurй de descargar todo de nuevo y es lo mismo :S
Reply
#8

PHP код:

YCMD
:ir(playeridparams[], help)
{
    if(    
sscanf    (    params    "u"params[0] )    )
        return 
SendClientMessage(    playerid    ,    -1,    "[ERROR]: /ir [ID]");
    if(    !
IsPlayerConnected    (    params[0]    )    )
        return 
SendClientMessage(playerid,-1,"Jugador no esta conectado.");
    if(    
Informacionparams] ][EstaBloqueado] == 1    )
        return 
SendClientMessage(    playerid    ,    -1    ,    "El jugador desactivу el comando /IR.");
    new 
Float:x,Float:y,Float:z,inter,vworld;
    
GetPlayerPosparams[0] ,Float:x,Float:y,Float:z);
    
inter GetPlayerInteriorparams[0] );
    
vworld GetPlayerVirtualWorldparams[0] );
    
SetPlayerPosExplayerid Float:Float:Float:inter vworld );
    return 
1;
}
stock SetPlayerPosEx(playeridFloatposxFloatposyFloatposzinteriorvirtualworld )
{
if( 
GetPlayerStateplayerid ) == )
{
SetPlayerVirtualWorldplayeridvirtualworld );
SetVehicleVirtualWorldGetPlayerVehicleIDplayerid ), virtualworld );
LinkVehicleToInteriorGetPlayerVehicleIDplayerid ), interior );
SetPlayerInteriorplayeridinterior );
SetVehiclePosGetPlayerVehicleIDplayerid ), posxposyposz );
}
else
{
SetPlayerVirtualWorldplayeridvirtualworld );
SetPlayerInteriorplayeridinterior );
SetPlayerPosplayeridposxposyposz );
}

Reply
#9

Ahora asegurate de estar compilando el mismo script que estas testeando.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)