Comando y Funcion de Posiciones
#1

Hola SAMP!

Hoy les vengo a postear una funcion que cree y un comando para dicha funcion:

El comando es para sacar coordenadas, para todos aquellos que por algun motivo no les funciona el "/Save" o no les gusta.

Pues aqui les tengo una solucion agradable:


Necesitas sscanf y ZCMD para el comando!
pawn Код:
CMD:salvarpospie(playerid, params[])
    {
                new Comentario[256], File:Posicion, Float:Posiciones[4];
                if(sscanf(params, "s[256]", Comentario)) return SendClientMessage(playerid, COLOR_INFO, "Forma de Uso: /SalvarPos [Comentario]");
                if(!IsPlayerInAnyVehicle(playerid))
                {
                    GetPlayerPos(playerid, Posiciones[0], Posiciones[1], Posiciones[2]);
                    GetPlayerFacingAngle(playerid, Posiciones[3]);
                    SendClientMessage(playerid, COLOR_INFO, " Posicion a pie salvada en GMServer/Archivos Externos/Posicionapie.pwn");
                }
                if(!fexist("GMServer/Archivos Externos/Posicionapie.pwn"))
                {
                    Posicion = fopen("GMServer/Archivos Externos/Posicionapie.pwn", io_write);
                    fclose(Posicion);
                }
                Posicion = fopen("GMServer/Archivos Externos/Posicionapie.pwn", io_append);
                format(Comentario, 256, "SetPlayerPosEx(playerid, %0.4f, %0.4f, %0.4f, %0.4f, %d, %d, 0, 0, \"Mensaje\"); //========= %s =========//\r\n",
                Posiciones[0],
                Posiciones[1],
                Posiciones[2],
                Posiciones[3],
                GetPlayerInterior(playerid),
                GetPlayerVirtualWorld(playerid),
                Comentario);
                fwrite(Posicion, Comentario);
                fclose(Posicion);
                //--------------------------------------------------------------
        return 1;
    }
y aquн esta la funciуn para el comando:

Код:
SetPlayerPosEx(playerid,Float:Posx,Float:Posy,Float:Posz,Float:Angulo,Interior,VirtualWorld,RecargaObjetos=0,TiempoCarga=4,Texto[]="_")
playerid: id del jugador
PosX-Y-Z-Angulo: Posicion donde spawneara el jugador
Interior: interior definido al spawnear
VirtualWorld: Mundo al Spawnear
RecargaObjetos: 1 para congelar por determinado tiempo / 0 para deshabilitar
TiempoCarga: El tiempo en segundos para congelar al jugador ( el mensaje lo manda si RecargaObjetos esta habilitada
Texto[]: Texto que manda en un GameText al jugador

pawn Код:
stock SetPlayerPosEx(playerid,Float:Posx,Float:Posy,Float:Posz,Float:Angulo,Interior,VirtualWorld,RecargaObjetos=0,TiempoCarga=4,Texto[]="_")
{
    SetPlayerPos(playerid, Posx, Posy, Posz);new CargaObjetos[MAX_PLAYERS], String[256];
    SetPlayerFacingAngle(playerid, Angulo);
    SetPlayerInterior(playerid, Interior);
    User[playerid][IntID] = Interior;
    SetPlayerVirtualWorld(playerid, VirtualWorld);
    User[playerid][VWID] = VirtualWorld;
    CargaObjetos[playerid] = RecargaObjetos;
    SetCameraBehindPlayer(playerid);
    GameTextForPlayer(playerid, Texto, 5000, 1);
    if(CargaObjetos[playerid] == 1)
    {
        CargaObjetosTimer[playerid] = SetTimerEx("RecargarObjetos", TiempoCarga*1000, 0, "i", playerid);
        TogglePlayerControllable(playerid, 0);
        SendClientMessage(playerid, COLOR_AnuncioJ, "{ff0000}==================================================================");
        format(String, sizeof(String), " Te Toca esperar {ffffff} %d Segundos "AnuncioJ" para poder moverte", TiempoCarga);
        SendClientMessage(playerid, COLOR_AnuncioJ, String);
        SendClientMessage(playerid, COLOR_AnuncioJ, "{ff0000}==================================================================");
    }
}
CREDITOS:

La funcion en si, Solo para mi.
las funciones que utilizo dentro de mi funcion, para el Samp Team.

Si hay algo malo en el comando o en la funciуn, hacedlo saber, si los crйditos los tengo mal, o falta alguien, hacedlo saber, pero sin rabia ni nada, pasivamente.

PD: en Scriptfile deben crear una carpeta llamada GMServer y dentro de esta carpeta crear otra llamada Archivos Externos
Reply
#2

Nicolas muy buena idea, tambien funciona para saber la posiciуn de los vehiculos?

PDT:no se si me equivoco pero esto parese que va aca https://sampforum.blast.hk/showthread.php?tid=130863
Reply
#3

Quote:
Originally Posted by D3IMON
Посмотреть сообщение
Nicolas muy buena idea, tambien funciona para saber la posiciуn de los vehiculos?
No, es solo para posiciуn a pie. Aunque si quieres sacar la pos del vehнculo, en el comando, cambia GetPlayerPos, por GetVehiclePos, y edita la parte que graba en el file.

Quote:
Originally Posted by D3IMON
Посмотреть сообщение
PDT:no se si me equivoco pero esto parese que va aca https://sampforum.blast.hk/showthread.php?tid=130863
ups XD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)