LooseDerby(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();