rendered paste bodyLooseDerby(id, spawn = 0){
DRlist[id][DERBY] = gPlayerData[id][pl_DR_pos] = gTmpData[id][dr_cars_pos] = DERBY_CAR[gTmpData[id][dr_cars_pos]] = 0;
DRSYS[DERBY][want]--;
//if(spawn != 2 && spawn != 10) GetLangKey(id,"d-lose");
FromDerby(id, spawn);
if(DRSYS[DERBY][want] == 1)
for(new i = 0; i < MAX_PLAYERS; i++)
if (i != id && IsPlayerConnected(i) && DRlist[i][DERBY] == 1) WonDerby(i);
}
WonDerby(wonid){
DRSYS[DERBY][want] = DERBY_CAR[gTmpData[wonid][dr_cars_pos]] = gTmpData[wonid][dr_cars_pos] = DRlist[wonid][DERBY] = gPlayerData[wonid][pl_DR_pos] = 0;
dUserSetINT(gPlayerName[wonid]).("derby",dUserINT(gPlayerName[wonid]).("derby")+1);
GetLangKey(wonid,"d-won");
SendCustomMessageAll(COLOR_ORANGE,"d-won-all",gPlayerName[wonid]);
FromDerby(wonid);
GiveExp(wonid,DRSYS[DERBY][oexp]);
GiveMoney(wonid, DRSYS[DERBY][omoney]);
}
FromDerby(playerid,type=0){
if(type != 1 && type != 10){
if(DRSYS[DERBY][randwep]) give_rand_weapon(playerid);
DisablePlayerRaceCheckpoint(playerid);
RemovePlayerFromVehicle(playerid);
RestoreWeapons(playerid);
SetTimerEx( "OutDerby" , 2000 , 0 , "i" , playerid);
ResetPlayerWorldBounds(playerid);
}
}
public OutDerby(playerid){
Teleport(playerid,0.0,0.0,8.0,0);
RandomSpawn(playerid);
}
forward OutDerby();
public OnPlayerStateChange(playerid, newstate, oldstate)
{
printf("OnPlayerStateChange(%d,%d,%d)",playerid, newstate, oldstate);
switch(newstate){
case PLAYER_STATE_DRIVER:
{
new vehicleid = GetPlayerVehicleID(playerid);
LastVehicle(playerid,vehicleid);
if(DRlist[playerid][FOOT]==1) SetVehicleToRespawn(vehicleid);
if(VehicleData[vehicleid][OWNED] == 1){
if(isStringSame(VehicleData[vehicleid][OWNER], Name(playerid), MAX_PLAYER_NAME) != 1){
RemovePlayerFromVehicle(playerid);
SendCustomMessage(playerid,COLOR_ORANGE,"car-owner",VehicleData[vehicleid][OWNER]);
if(VehicleData[vehicleid][DRIVED]<=0) SetVehicleToRespawn(vehicleid);
}else VehicleData[vehicleid][DRIVED]=1;
}else if(VehicleData[vehicleid][RPG]>0){
if(VehicleData[vehicleid][RPG] > GetRPGLevel(playerid)){
RemovePlayerFromVehicle(playerid);
SendCustomMessageNum(playerid, COLOR_ORANGE,"rpg_lowlvl",VehicleData[vehicleid][RPG]);
if(VehicleData[vehicleid][DRIVED]<=0) SetVehicleToRespawn(vehicleid);
}else VehicleData[vehicleid][DRIVED]=1;
}
}
case PLAYER_STATE_ONFOOT:{
if(oldstate == PLAYER_STATE_DRIVER){
new vehicleid = GetLastVehicle(playerid);
printf("Id %d",vehicleid);
if(VehicleData[vehicleid][TMP]) DestroyVehicleEx(vehicleid);
}
}
}
return 1;
}
public DestroyVehicleEx( vehicleid )
{
new incar;
for ( new i; i < MAX_PLAYERS; i++ )
{
if ( IsPlayerConnected( i ) && IsPlayerInVehicle( i , vehicleid ) )
{
incar++;
RemovePlayerFromVehicle( i );
}
}
if ( incar > 0 )
SetTimerEx( "DestroyVehicleEx" , 2000 , 0 , "i" , vehicleid );
else
DestroyVehicle( vehicleid );
}
forward DestroyVehicleEx();