SA-MP Forums Archive
Como se quita el comando /llaves del GM De Zenon City - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Como se quita el comando /llaves del GM De Zenon City (/showthread.php?tid=438005)



Como se quita el comando /llaves del GM De Zenon City - Emmanuel69 - 18.05.2013

Mucha gente lo ha preguntado antes que yo, pero nunca se le ha respondido correctamente. Me gustarнa que cuando el jugador spawnee, los vehнculos spawneen automaticamente en su estacionamiento, sin necesidad del /llaves.

CMD:llaves(playerid, params[])
{
new vstring[512], stext[11];
for(new i; i < MAX_PLAYERVEHICLES; i++)
{
switch(PlayerVehicleInfo[playerid][i][pvSpawned])
{
case 0: stext = "stored";
case 1: stext = "spawned";
}
if(PlayerVehicleInfo[playerid][i][pvModelId] != 0)
format(vstring, sizeof(vstring), "%s\n%s - (%s)", vstring, VehicleName[PlayerVehicleInfo[playerid][i][pvModelId] - 400], stext);

else if(PlayerVehicleInfo[playerid][i][pvImpounded] == 1)
format(vstring, sizeof(vstring), "%s\n%s (Embargado) (%s)", vstring, VehicleName[PlayerVehicleInfo[playerid][i][pvModelId] - 400], stext);

else
format(vstring, sizeof(vstring), "%s\nVacнo", vstring);
}
SafeDialogEx(playerid, CARSPAWN, DIALOG_STYLE_LIST, "Tus Coches:", vstring, "(De)Spawn", "Salir");
return 1;
}



case CARSPAWN:
{
if (response == 1)
{
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;
}


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Ebaristo - 18.05.2013

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;
}


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Emmanuel69 - 18.05.2013

Quote:
Originally Posted by Ebaristo
Посмотреть сообщение
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;
}
Asн no serнa :S


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Ebaristo - 18.05.2013

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;
}
}
}
}
El resto quedarб igual.


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Emmanuel69 - 18.05.2013

Quote:
Originally Posted by Ebaristo
Посмотреть сообщение
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;
}
}
}
}
El resto quedarб igual.
Pawn Compilary dejу de funcionar.

Esta funciуn es de un comando, por lo que no funciona :S


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Ebaristo - 18.05.2013

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 quieres una imagen de como funciona correctamente no tengo problemas en acercartela, hay que tener un poco de fй.


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Emmanuel69 - 18.05.2013

Quote:
Originally Posted by Ebaristo
Посмотреть сообщение
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 quieres una imagen de como funciona correctamente no tengo problemas en acercartela, hay que tener un poco de fй.
No consigo meterlo, me tira o 26 errores o dejу de funcionar, si puedes pasarme una imagen de como lo tienes tъ :S

Aunque primero compila para ver si te funciona :P

En onplayerspawn ya hay mбs cosas - PD: No podrнa ser en onplayerlogin o algo?


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Ebaristo - 18.05.2013

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.


Respuesta: Como se quita el comando /llaves del GM De Zenon City - Emmanuel69 - 18.05.2013

Quote:
Originally Posted by Ebaristo
Посмотреть сообщение
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;
}
Gracias de antemano.


Respuesta: Como se quita el comando /llaves del GM De Zenon City - TheChaoz - 18.05.2013

Por favor utilizen la etiqueta [pawn] para sus codigos y pastebin (u otro si dicha pagina web no les funciona) para codigos largos.