Quote:
Originally Posted by leonardo1434
Bom, estava jogando killing floor(30 mins atrбs lol.) e em um certo momento me venho um ideia de como chamar a public onplayerexitvehicle ao cair da bike, entгo iniciei e cheguei as seguintes conclusхes:
pawn Код:
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger) { if(GetVehicleModel(vehicleid) == 448 || 461 || 462 || 463 || 468 || 471 || 481 || 509 || 510 || 521 || 522 || 523 || 586) // Caso seja algum desses modelos. { SetPVarInt(playerid,"bike",1); // defini a var bike como 1. } return 1; } public OnPlayerExitVehicle(playerid, vehicleid) // ao cair da bike este public nгo iria ser chamada, entгo a var "bike" sempre iria ficar como 1, caso ele sempre caнsse. { SetPVarInt(playerid,"bike",0); // ao sair defini como 0, assim evitando que a onplayerstatechange seja chamada sem necessidade. } public OnPlayerStateChange(playerid, newstate, oldstate) { if(GetPVarInt(playerid,"bike") == 1) // Caso ele esteja no veнculo. { if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER) // caso ele esteja no chгo e o seu antigo estado seja dirigindo chamar a public onplayerexitvehicle. { CallLocalFunction("OnPlayerExitVehicle","i",playerid); } } return 1; }
Achei que isto era um cуdigo ъtil, entгo resolvi postar aqui.
Caso ache alguma possнvel falha no code, cite-os que eu tentarei melhorar a lуgica.
|
Nгo vai dar erro na linha do GetVehicleModel?
-
pawn Код:
countPassengers(vehicleid) {
new
count;
for(new i; i != GetMaxPlayers(); ++i) {
if(IsPlayerConnected(i)) {
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_PASSENGER) {
++count;
}
}
}
return count;
}