15.11.2010, 16:39
No se como hacerlo...
public OnPlayerDisconnect(playerid, reason) { new usuario[MAX_PLAYER_NAME], archivo[256], Float:x, Float:y, Float:z, Float:angulo; GetPlayerName(playerid, usuario, MAX_PLAYER_NAME); GetPlayerPos(playerid, Float:x, Float:y, Float:z); GetPlayerFacingAngle(playerid, Float:angulo); format(archivo, 256, "%s.ini", usuario); if (!dini_Exists(archivo)) { dini_Create(archivo); dini_FloatSet(archivo, "PosGuardada(X)", Float:x); dini_FloatSet(archivo, "PosGuardada(Y)", Float:y); dini_FloatSet(archivo, "PosGuardada(Z)", Float:z); dini_FloatSet(archivo, "PosGuardada(Angulo)", Float:angulo); }else{ dini_FloatSet(archivo, "PosGuardada(X)", Float:x); dini_FloatSet(archivo, "PosGuardada(Y)", Float:y); dini_FloatSet(archivo, "PosGuardada(Z)", Float:z); dini_FloatSet(archivo, "PosGuardada(Angulo)", Float:angulo); } return 1; } public OnPlayerConnect(playerid) { new vehiculo, usuario[MAX_PLAYER_NAME], archivo[256]; vehiculo = GetPlayerVehicleID(playerid); GetPlayerName(playerid, usuario, MAX_PLAYER_NAME); format(archivo, 256, "%s.ini", usuario); if (dini_Exists(archivo)) { if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(vehiculo, dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)")+1); PutPlayerInVehicle(playerid, vehiculo, 0); } SetPlayerPos(playerid, dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)")+1); SetPlayerFacingAngle(playerid, dini_Int(archivo, "PosGuardada(Angulo)")); SetCameraBehindPlayer(playerid); } return 1; }
Recomendaciones:
usa ['pawn] en vez de ['code] (obviamente sin las ') cuando posteas codigos de pawn. Код:
public OnPlayerDisconnect(playerid, reason) { new usuario[MAX_PLAYER_NAME], archivo[256*1], Float:x, Float:y, Float:z, Float:angulo; GetPlayerName(playerid, usuario, MAX_PLAYER_NAME); GetPlayerPos(playerid, Float:x, Float:y, Float:z); GetPlayerFacingAngle(playerid, Float:angulo); format(archivo, 256*1, "%s.ini", usuario); if (!dini_Exists(archivo)) { dini_Create(archivo); dini_FloatSet(archivo, "PosGuardada(X)", Float:x); dini_FloatSet(archivo, "PosGuardada(Y)", Float:y); dini_FloatSet(archivo, "PosGuardada(Z)", Float:z); dini_FloatSet(archivo, "PosGuardada(Angulo)", Float:angulo); }else{ dini_FloatSet(archivo, "PosGuardada(X)", Float:x); dini_FloatSet(archivo, "PosGuardada(Y)", Float:y); dini_FloatSet(archivo, "PosGuardada(Z)", Float:z); dini_FloatSet(archivo, "PosGuardada(Angulo)", Float:angulo); } return 1; } public OnPlayerConnect*2(playerid) { new vehiculo, usuario[MAX_PLAYER_NAME], archivo[256*1]; vehiculo = GetPlayerVehicleID(playerid); // ???*2 GetPlayerName(playerid, usuario, MAX_PLAYER_NAME); format(archivo, 256*1, "%s.ini", usuario); if (dini_Exists(archivo)) { if(IsPlayerInAnyVehicle(playerid)) // ???*2 { SetVehiclePos(vehiculo, dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)")+1); PutPlayerInVehicle(playerid, vehiculo, 0); } SetPlayerPos(playerid, dini_Int(archivo, "PosGuardada(X)"), dini_Int(archivo, "PosGuardada(Y)"), dini_Int(archivo, "PosGuardada(Z)")+1); SetPlayerFacingAngle(playerid, dini_Int(archivo, "PosGuardada(Angulo)")); SetCameraBehindPlayer(playerid); } return 1; } PD: tenes que isar Dini.. |
ElServerDeCachito/Usuarios/NOMBRE.txt \________________/\_______/ | \__/ 18 9 | 4 = 31 esto es el MAX_PLAYER_NAME
#include <dini> // asegurate de tener el archivo dii.inc en la carpeta includes del editor
new check[MAX_PLAYERS]; // esto es para que cuando se muera no aparezca en el lugar donde
// entro por primera vez en el dнa, sino que aparezca en el lugar de spawn.
public OnPlayerDisconnect(playerid, reason)
{
// ... aca el resto del codigo que tengas
//
// en el caso de no tener un string global que tenga el nombre de cada jugador y que se valla actualizando hace esto:
new usuario[MAX_PLAYER_NAME], archivo[MAX_PLAYER_NAME + 4], Float:x, Float:y, Float:z, Float:angulo; // hasta aca iba masomenos bien Elpiezas
// procura leer la explicacion anterior de xq no 256.
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
GetPlayerPos(playerid, Float:x, Float:y, Float:z);
GetPlayerFacingAngle(playerid, Float:angulo); // esto tambien estaba bien
format(archivo, sizeof(archivo), "%s.ini", usuario);
if (!dini_Exists(archivo)) dini_Create(archivo);
dini_FloatSet(archivo, "PosGuardada(X)", Float:x);
dini_FloatSet(archivo, "PosGuardada(Y)", Float:y);
dini_FloatSet(archivo, "PosGuardada(Z)", Float:z);
dini_FloatSet(archivo, "PosGuardada(Angulo)", Float:angulo);
//
// ... lo que siga...
}
// y aca es donde se le despeloto...
public OnPlayerSpawn(playerid)
{
// ...
if(!check[playerid])
{
new usuario[MAX_PLAYER_NAME], archivo[MAX_PLAYER_NAME + 4], Float:x, Float:y, Float:z, Float:angulo;
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, sizeof(archivo), "%s.ini", usuario);
if (dini_Exists(archivo))
{
SetPlayerPos(playerid, dini_Float(archivo, "PosGuardada(X)"), dini_Float(archivo, "PosGuardada(Y)"), dini_Float(archivo, "PosGuardada(Z)")+0.7);
SetPlayerFacingAngle(playerid, dini_Float(archivo, "PosGuardada(Angulo)")); // Junto con esto
} // ^
} // |
// ... // |
} // |
// |
public OnPlayerDeath(playerid, killerid, reason) // // |
{ // |
// ... // |
check[playerid] = 1; // esto tambien podria ir ------------------------------------------------
// ...
}
public OnPlayerConnect(playerid)
{
// ...
check[playerid] = 0;
// ...
}