[Error] Spawn de Vehiculos
#1

Buenas. Tengo un pequeсo problema, Explico. Resulta que el GM que estoy haciendo desde 0 al desconectarse se despwnean los vehiculos que el jugador haya comprado, El stock que uso serнa ''UnLoadPlayerVehicles'', Ok todo perfecto. Lo que yo queria hacer era que al desconectarse el jugador no se despawneen los vehiculos, Entonces saque el ''UnloadPlayerVehicles'' del callback OnPlayerDisconnect, Entonces asi no se despawnean, Tambien poseo otro stock que realiza la funcion de cargar el vehiculo del jugador al conectarse que es ''LoadPlayerVehicles'' que esta en el callback ''OnPlayerConnect'' entonces tambien lo quite para que no cause errores. Todo bien hasta ahн, Testee que funcionara bien desconectandome y todo bien. Pero mi error biene al apagar la consola y despues encenderla los vehiculos de los jugadores ya no spawnean, Peor aъn aparece como que no tuviesen ni uno, Teniendo antes de reiniciar la consola. Ya intente colocar la funciуn ''LoadPlayerVehicles'' en OnGamemodeInit, Asн carguen los autos de los jugadores al abrir la consola, Pero no funciono. Si alguien podrнa guiarme o decirme en que estoy fallando se lo agradecerнa mucho.


Aca dejo los stocks de ''UnloadPlayerVehicles'' y ''LoadPlayerVehicles''

Код:
// Spawnea los autos que posea el jugador
stock LoadPlayerVehicles(playerid)
{
	new playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, playername, sizeof(playername));
	//printf(" Cargado los autos de %s.", playername);
	for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
    {
        if(PlayerVehicleInfo[playerid][v][pvModelId] != 0 && PlayerVehicleInfo[playerid][v][pvImpounded] == 0)
        {
            PlayerCars++;
			new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][v][pvModelId], PlayerVehicleInfo[playerid][v][pvPosX], PlayerVehicleInfo[playerid][v][pvPosY], PlayerVehicleInfo[playerid][v][pvPosZ], PlayerVehicleInfo[playerid][v][pvPosAngle],PlayerVehicleInfo[playerid][v][pvColor1], PlayerVehicleInfo[playerid][v][pvColor2], -1);
			PlayerVehicleInfo[playerid][v][pvId] = carcreated;
			VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][v][pvFuel];
			//SetVehicleNumberPlate(carcreated, PlayerVehicleInfo[playerid][v][pvNumberPlate]);
			if(PlayerVehicleInfo[playerid][v][pvLocked] == 1) LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][v][pvId], PlayerVehicleInfo[playerid][v][pvLock]);
        }
        else if(PlayerVehicleInfo[playerid][v][pvModelId] == 0 && PlayerVehicleInfo[playerid][v][pvImpounded] != 0)
            PlayerVehicleInfo[playerid][v][pvImpounded] = 0;
    }
    LoadAllPlayerVehicleMods(playerid);
}

// Despawnea los autos que posea el jugador

stock UnloadPlayerVehicles(playerid)
{
    new playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, playername, sizeof(playername));
	//printf(" Unloading %s's vehicles.", playername);
	for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
    {
        if(PlayerVehicleInfo[playerid][v][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][v][pvImpounded] == 0)
        {
            //new Float:x, Float:y, Float:z, Float:angle;
            //GetVehiclePos(PlayerVehicleInfo[playerid][v][pvId], x, y, z);
            //GetVehicleZAngle(PlayerVehicleInfo[playerid][v][pvId], angle);
            //UpdatePlayerVehicleParkPosition(playerid, v, x, y, z, angle);
            PlayerCars--;
            if(LockStatus[PlayerVehicleInfo[playerid][v][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][v][pvId]] = 0;
            UpdatePlayerVehicleMods(playerid, v);
			DestroyVehicle(PlayerVehicleInfo[playerid][v][pvId]);
			VehicleFuel[PlayerVehicleInfo[playerid][v][pvId]] = 1000;
			PlayerVehicleInfo[playerid][v][pvId] = INVALID_PLAYER_VEHICLE_ID;
			if(PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] != INVALID_PLAYER_ID)
	    	{
	    	    PlayerInfo[PlayerVehicleInfo[playerid][v][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
	    	    PlayerInfo[PlayerVehicleInfo[playerid][v][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
	    		PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] = INVALID_PLAYER_ID;
			}
        }
    }
}
Reply
#2

їTenes los autos guardados en un archivo .cfg, o algo asн en la carpeta scriptfiles? porque tipo veo que en tu script no lo lee, o no lo incluye.
Reply
#3

Quote:
Originally Posted by JustBored
Посмотреть сообщение
їTenes los autos guardados en un archivo .cfg, o algo asн en la carpeta scriptfiles? porque tipo veo que en tu script no lo lee, o no lo incluye.
Nop, Es Dinбmico, los autos se guardan unicamente en la cuenta del usuario. El sistema que uso es de Scott es similar al realease del de NGG. Por eso me pense que no creo que haya forma de que carguen los autos ya que no puede cargar sin un archivo, como tu dijiste un ''cars.cfg''
Reply
#4

Exacto, sin un archivo tipo 'cars.cfg' que lo leeyera y spawneara cada auto el PAWN tendrнa que abrir y leer cada cuenta para spawnear los autos.
Reply
#5

Quote:
Originally Posted by JustBored
Посмотреть сообщение
Exacto, sin un archivo tipo 'cars.cfg' que lo leeyera y spawneara cada auto el PAWN tendrнa que abrir y leer cada cuenta para spawnear los autos.
Crees que exista alguna manera de que al abrir el server carguen todos los vehiculos de los usuarios, Claro sin tener que sacar este sistema.
Reply
#6

Quote:
Originally Posted by Charlie009
Посмотреть сообщение
Crees que exista alguna manera de que al abrir el server carguen todos los vehiculos de los usuarios, Claro sin tener que sacar este sistema.
https://sampwiki.blast.hk/wiki/OnGameModeInit_Es
https://sampwiki.blast.hk/wiki/OnGameModeExit_Es
Reply
#7

Puff, No me refiero a eso .-., Obviamente sй que en ''OnGamemodeInit'' se carga los datos..., Pero mi duda es otra. Si leyeras un poquitin el tema ... .

PD: estuve pensando en que si Dejo el ''LoadPlayerVehicles'' cuando el jugador se conecta es decir en el callback ''OnPlayerConnect'' asн los autos cargarian al abrir el gm, Pero causarнa un error si el gm ya esta abierto y el jugador relogea bugearia los vehiculos, Entonces pense que si hay forma de definir que el ''LoadPlayerVehicles'' no realice su funciуn si ya los autos del usuario estan spawneados. Ejemplo: Al abrir el gm los autos de cada usuario respawnean, Al desconectarce los autos quedan sin desaparecer, Pero al logear el ''LoadPlayerVehicles'' nuevamente respawnearia los autos que ya estan respawneados, Entonces causa el error.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)