01.08.2011, 18:31
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!
y aquн esta la funciуn para el comando:
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
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
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;
}
Код:
SetPlayerPosEx(playerid,Float:Posx,Float:Posy,Float:Posz,Float:Angulo,Interior,VirtualWorld,RecargaObjetos=0,TiempoCarga=4,Texto[]="_")
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}==================================================================");
}
}
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