All pastes #585794 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-23 13:30 UTC
rendered paste body
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();