|
Usted debe similar la funciуn de spawn cars en OnPlayerSpawn del jugador o similar, el ejemplo:
public OnPlayerSpawn(playerid) { for(new listitem = 0; listitem < 3; listitem++) { if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado."); if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0; if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0) { if(carsforplayer[playerid] == 2) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 2 coches spawneados y 6 guardados."); PlayerCars++; carsforplayer[playerid]++; new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1); PlayerVehicleInfo[playerid][listitem][pvId] = carcreated; VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel]; SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]); SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]); PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1; SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/gps)"); if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1) LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]); LoadPlayerVehicleMods(playerid, listitem); return 1; } else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1) { new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); //printf(" Unloading %s's vehicles.", playername); new Float:health; GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health); if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado."); if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado."); if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0; if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1) { PlayerCars--; carsforplayer[playerid]--; if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0; UpdatePlayerVehicleMods(playerid, listitem); DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]); VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000; PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID; PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0; SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo fue guardado correctamente."); if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID) { Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID; Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID; PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID; } } } } return 1; } |
for(new listitem = 0; listitem < 3; listitem++)
{
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0)
{
if(carsforplayer[playerid] == 2) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 2 coches spawneados y 6 guardados.");
PlayerCars++;
carsforplayer[playerid]++;
new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
PlayerVehicleInfo[playerid][listitem][pvId] = carcreated;
VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel];
SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]);
SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]);
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/gps)");
if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1)
LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
LoadPlayerVehicleMods(playerid, listitem);
return 1;
}
else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
//printf(" Unloading %s's vehicles.", playername);
new Float:health;
GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health);
if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado.");
if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1)
{
PlayerCars--;
carsforplayer[playerid]--;
if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0;
UpdatePlayerVehicleMods(playerid, listitem);
DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]);
VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000;
PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo fue guardado correctamente.");
if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID)
{
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
}
}
}
|
Ahora estoy desconcertado, tu sabes como no serнa pero no sabes como es?
Te digo que es asн, funciona perfectamente, no hay que ser un genio para saber que si editas los mensajes quedarб mejor al spawnear (Ej: Vehiculos Spawneados en sus posiciones guardadas) En el loop aumenta el numero 3 para cargar mбs coches si lo necesitas. Para ser mбs especifico (ya demasiado) solo debes agregar esta parte al callback OnPlayerSpawn: Код:
for(new listitem = 0; listitem < 3; listitem++)
{
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0)
{
if(carsforplayer[playerid] == 2) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 2 coches spawneados y 6 guardados.");
PlayerCars++;
carsforplayer[playerid]++;
new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
PlayerVehicleInfo[playerid][listitem][pvId] = carcreated;
VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel];
SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]);
SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]);
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/gps)");
if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1)
LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
LoadPlayerVehicleMods(playerid, listitem);
return 1;
}
else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
//printf(" Unloading %s's vehicles.", playername);
new Float:health;
GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health);
if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado.");
if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1)
{
PlayerCars--;
carsforplayer[playerid]--;
if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0;
UpdatePlayerVehicleMods(playerid, listitem);
DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]);
VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000;
PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo fue guardado correctamente.");
if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID)
{
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
}
}
}
|
public OnPlayerSpawn(playerid)
{
for(new listitem = 0; listitem < 3; listitem++)
{
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0)
{
if(carsforplayer[playerid] == 2) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 2 coches spawneados y 6 guardados.");
PlayerCars++;
carsforplayer[playerid]++;
new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
PlayerVehicleInfo[playerid][listitem][pvId] = carcreated;
VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel];
SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]);
SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]);
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/gps)");
if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1)
LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
LoadPlayerVehicleMods(playerid, listitem);
return 1;
}
else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
//printf(" Unloading %s's vehicles.", playername);
new Float:health;
GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health);
if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado.");
if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1)
{
PlayerCars--;
carsforplayer[playerid]--;
if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0;
UpdatePlayerVehicleMods(playerid, listitem);
DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]);
VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000;
PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo fue guardado correctamente.");
if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID)
{
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
}
}
}
if(!gPlayerLogged{playerid})
{
SendClientMessageEx(playerid, COLOR_WHITE, "ERROR: No has ingresado correctamente al servidor!");
Kick(playerid);
return 1;
}
if(IsPlayerNPC(playerid)) return 1;
if(!gPlayerAnimLibsPreloaded[playerid])
{
LoadAnimLibs(playerid);
gPlayerAnimLibsPreloaded[playerid] = 1;
}
SetPlayerWantedLevel(playerid, Info[playerid][pWantedLevel]);
gTeam[playerid] = Info[playerid][pTeam]; //Set the Team
SetPlayerSpawn(playerid);
SetPlayerWeapons(playerid);
OnDuty[playerid] = 0;
SetPlayerToTeamColor(playerid);
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
SyncPlayerTime(playerid);
return 1;
}
|
La estarбs agregando mal, como dije debes agregarlo luego de la primera llave { de OnPlayerSpawn (SIN QUITAR NADA DE ESE CALLBACK), la funciуn esa es CARSPAWN la que spawnea los coches, solo que imitamos el uso del dialogo, con un loop es lo mismo que spawnear los coches manualmente solo que lo hace.
Asi quedarнa el callback completo en OnPlayerSpawn (el GM ZC que yo tengo sin editar) Код:
public OnPlayerSpawn(playerid)
{
for(new listitem = 0; listitem < 3; listitem++)
{
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0)
{
if(carsforplayer[playerid] == 2) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 2 coches spawneados y 6 guardados.");
PlayerCars++;
carsforplayer[playerid]++;
new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
PlayerVehicleInfo[playerid][listitem][pvId] = carcreated;
VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel];
SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]);
SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]);
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/gps)");
if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1)
LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
LoadPlayerVehicleMods(playerid, listitem);
return 1;
}
else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
//printf(" Unloading %s's vehicles.", playername);
new Float:health;
GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health);
if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado.");
if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1)
{
PlayerCars--;
carsforplayer[playerid]--;
if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0;
UpdatePlayerVehicleMods(playerid, listitem);
DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]);
VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000;
PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo fue guardado correctamente.");
if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID)
{
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
}
}
}
if(!gPlayerLogged{playerid})
{
SendClientMessageEx(playerid, COLOR_WHITE, "ERROR: No has ingresado correctamente al servidor!");
Kick(playerid);
return 1;
}
if(IsPlayerNPC(playerid)) return 1;
if(!gPlayerAnimLibsPreloaded[playerid])
{
LoadAnimLibs(playerid);
gPlayerAnimLibsPreloaded[playerid] = 1;
}
SetPlayerWantedLevel(playerid, Info[playerid][pWantedLevel]);
gTeam[playerid] = Info[playerid][pTeam]; //Set the Team
SetPlayerSpawn(playerid);
SetPlayerWeapons(playerid);
OnDuty[playerid] = 0;
SetPlayerToTeamColor(playerid);
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
SyncPlayerTime(playerid);
return 1;
}
|
|
Si, lo he probado en OnPlayerSpawn y como era de esperar funciona, en OnPlayerLogin dudo que sirva correctamente ya que estariamos adhiriendo un bucle y puede generar problemas. Deja tu cуdigo de OnPlayerSpawn completo y yo lo combinare para que sirva, ademas le agregare PVars para que no se repita.
|
public OnPlayerSpawn(playerid)
{
if(!gPlayerLogged{playerid})
{
SendClientMessageEx(playerid, COLOR_WHITE, "ERROR: No has ingresado correctamente al servidor!");
Kick(playerid);
return 1;
}
if(IsPlayerNPC(playerid)) return 1;
if(!gPlayerAnimLibsPreloaded[playerid])
{
LoadAnimLibs(playerid);
gPlayerAnimLibsPreloaded[playerid] = 1;
}
SetPlayerWantedLevel(playerid, Info[playerid][pWantedLevel]);
gTeam[playerid] = Info[playerid][pTeam]; //Set the Team
SetPlayerSpawn(playerid);
SetPlayerWeapons(playerid);
OnDuty[playerid] = 0;
SetPlayerToTeamColor(playerid);
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
SyncPlayerTime(playerid);
return 1;
}
{
for(new listitem = 0; listitem < 3; listitem++)
{
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0)
{
if(carsforplayer[playerid] == 2) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 2 coches spawneados y 6 guardados.");
PlayerCars++;
carsforplayer[playerid]++;
new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
PlayerVehicleInfo[playerid][listitem][pvId] = carcreated;
VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel];
SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]);
SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]);
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/gps)");
if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1)
LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
LoadPlayerVehicleMods(playerid, listitem);
return 1;
}
else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1)
{
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
//printf(" Unloading %s's vehicles.", playername);
new Float:health;
GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health);
if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado.");
if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado.");
if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1)
{
PlayerCars--;
carsforplayer[playerid]--;
if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0;
UpdatePlayerVehicleMods(playerid, listitem);
DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]);
VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000;
PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo fue guardado correctamente.");
if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID)
{
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID;
}
}
}
}
if(!gPlayerLogged{playerid})
{
SendClientMessageEx(playerid, COLOR_WHITE, "ERROR: No has ingresado correctamente al servidor!");
Kick(playerid);
return 1;
}
if(IsPlayerNPC(playerid)) return 1;
if(!gPlayerAnimLibsPreloaded[playerid])
{
LoadAnimLibs(playerid);
gPlayerAnimLibsPreloaded[playerid] = 1;
}
SetPlayerWantedLevel(playerid, Info[playerid][pWantedLevel]);
gTeam[playerid] = Info[playerid][pTeam]; //Set the Team
SetPlayerSpawn(playerid);
SetPlayerWeapons(playerid);
OnDuty[playerid] = 0;
SetPlayerToTeamColor(playerid);
SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 1);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1);
SyncPlayerTime(playerid);
return 1;
}