script_name('DeleteAllPlayers')
script_author("Nishikinov")
require "lib.moonloader"
function delplayers()
for _, handle in ipairs(getAllChars()) do
if doesCharExist(handle) then
local _, id = sampGetPlayerIdByCharHandle(handle)
if id ~= myid then
emul_rpc('onPlayerStreamOut', { id })
sampAddChatMessage("All players deleted", -1)
end
end
end
end
function main()
if not isSampLoaded() then return end
while not isSampAvailable() do wait(0) end
sampRegisterChatCommand("deleteallplayers", delplayers)
wait(-1)
end
function emul_rpc(hook, parameters)
local bs_io = require 'samp.events.bitstream_io'
local handler = require 'samp.events.handlers'
local extra_types = require 'samp.events.extra_types'
local hooks = {
['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 }
}
local handler_hook = {
['onInitGame'] = true,
['onCreateObject'] = true,
['onInitMenu'] = true,
['onShowTextDraw'] = true,
['onVehicleStreamIn'] = true,
['onSetObjectMaterial'] = true,
['onSetObjectMaterialText'] = true
}
local extra = {
['PlayerScorePingMap'] = true,
['Int32Array3'] = true
}
local hook_table = hooks[hook]
if hook_table then
local bs = raknetNewBitStream()
if not handler_hook[hook] then
local max = #hook_table-1
if max > 0 then
for i = 1, max do
local p = hook_table[i]
if extra[p] then extra_types[p]['write'](bs, parameters[i])
else bs_io[p]['write'](bs, parameters[i]) end
end
end
else
if hook == 'onInitGame' then handler.on_init_game_writer(bs, parameters)
elseif hook == 'onCreateObject' then handler.on_create_object_writer(bs, parameters)
elseif hook == 'onInitMenu' then handler.on_init_menu_writer(bs, parameters)
elseif hook == 'onShowTextDraw' then handler.on_show_textdraw_writer(bs, parameters)
elseif hook == 'onVehicleStreamIn' then handler.on_vehicle_stream_in_writer(bs, parameters)
elseif hook == 'onSetObjectMaterial' then handler.on_set_object_material_writer(bs, parameters, 1)
elseif hook == 'onSetObjectMaterialText' then handler.on_set_object_material_writer(bs, parameters, 2) end
end
raknetEmulRpcReceiveBitStream(hook_table[#hook_table], bs)
raknetDeleteBitStream(bs)
end
end