Teleport player to coordinates
#1

I want to do command like
/port X Y Z coordinates .
for example /port 2227.3281 1655.5314 961.7531
.
Here's my code:
Код:
CMD:port(playerid, params[])
{
    new tmp[256], tmp2[256], tmp3[256], idx;
    new cmdtext
    tmp=strtok(cmdtext, idx); tmp2=strtok(cmdtext, idx); tmp3=strtok(cmdtext, idx);
    new Float:x, Float:y, Float:z;
    x=floatstr(tmp); y=floatstr(tmp2); z=floatstr(tmp3);
    SetPlayerPos(playerid, x,y,z);
    return 1;
}
And heres my errors xD
Код:
D:\DOCUME~1\Alex19\MYDOCU~1\ZGAMIN~1.3E\GAMEMO~1\ZRP.pwn(8466) : error 001: expected token: ";", but found "-identifier-"
D:\DOCUME~1\Alex19\MYDOCU~1\ZGAMIN~1.3E\GAMEMO~1\ZRP.pwn(8466) : error 035: argument type mismatch (argument 1)
D:\DOCUME~1\Alex19\MYDOCU~1\ZGAMIN~1.3E\GAMEMO~1\ZRP.pwn(8466) : error 035: argument type mismatch (argument 1)
D:\DOCUME~1\Alex19\MYDOCU~1\ZGAMIN~1.3E\GAMEMO~1\ZRP.pwn(8466) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase
The line marked in black is 8466.
Reply
#2

strtok is old and slow.

Here is how to create one in sscanf.

pawn Код:
CMD:port(playerid, params[])
{
    new Float:x, Float:y, Float:z;
    if(sscanf(params, "fff", x, y, z)) return SendClientMessage(playerid, -1, "SYNTAX: /port (x/y/z)");
    if(IsPlayerInAnyVehicle(playerid))
    SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    SetPlayerPos(playerid, x, y, z);
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)