local function Wind(mobj) local r = mobj.radius / FRACUNIT local explosion = P_SpawnMobj( mobj.x + (P_RandomRange(r, -r) * FRACUNIT), mobj.y + (P_RandomRange(r, -r) * FRACUNIT), mobj.z + (P_RandomKey(mobj.height / FRACUNIT) * FRACUNIT) - mobj.height/2, MT_THOK) explosion.sprite = SPR_RAIN explosion.renderflags = $|RF_PAPERSPRITE explosion.angle = R_PointToAngle2(0, 0, mobj.momx, mobj.momy) explosion.rollangle = R_PointToAngle2(0, 0, R_PointToDist2(0, 0, mobj.momx, mobj.momy), -mobj.momz) + ANGLE_90 explosion.source = mobj explosion.blendmode = AST_ADD end addHook('ThinkFrame', do for player in players.iterate do if player.mo and player.mo.scale and player.mo.friction and player.mo.movefactor then local skin = skins[player.mo.skin] local grounded = P_IsObjectOnGround(player.mo) -- Speed Dust -- if grounded then if player.speed >= skin.normalspeed*3/2 then P_SpawnSkidDust(player, 25/2*FRACUNIT) P_SpawnSkidDust(player, 25/2*FRACUNIT) end if player.speed >= skin.normalspeed*2 then P_SpawnSkidDust(player, 15*FRACUNIT) P_SpawnSkidDust(player, 15*FRACUNIT) P_SpawnSkidDust(player, 15*FRACUNIT) end end -- Speed Wind -- if player.speed >= skin.normalspeed*3/2 then Wind(player.mo) end if player.speed >= skin.normalspeed*2 then Wind(player.mo) end -- Camera Zoom -- if player.speed >= skin.normalspeed*2 then player.camerascale = skin.camerascale*5/4 elseif player.speed >= skin.normalspeed*3/2 then player.camerascale = skin.camerascale*9/8 else player.camerascale = skin.camerascale end end end end)