Вещь называется читерской если даёт преймущества над игроками или мешает. Этот скрипт не мешает и не даёт преймущества. Нужен для SS-ок.Если подумать - то это читерская вещь получается, если нет - то какой толк для Вас он будет иметь?
script_name('RPColor')
script_author("Nishikinov")
require "lib.moonloader"
local sampev = require 'lib.samp.events'
local inicfg = require "inicfg"
if not doesFileExist('moonloader\\config\\rpcolor.ini') then
if not doesDirectoryExist('moonloader\\config') then
createDirectory('moonloader\\config')
end
local ini = {
settings = {
currentcolor = 'D0AEEB',
defaultcolor = 'D0AEEB', -- Стандартный цвет: D0AEEB
}
}
inicfg.save(ini, 'rpcolor')
end
local ini = inicfg.load(nil, 'rpcolor')
function sampev.onPlayerChatBubble(playerId, color, distance, duration, message)
if sampIsPlayerConnected(playerId) and tostring(color) == "-413892353" then
emul_rpc('onPlayerChatBubble', { tonumber(playerId), -1, 15, 5000, tostring("{"..ini.settings.currentcolor.."}"..message) })
return false
end
end
function sampev.onServerMessage(color, text)
if color == -413892353 or color == -793842689 then
sampAddChatMessage("{"..ini.settings.currentcolor.."}"..text, -1)
return false
elseif text:find('{E75480}') then
if text:find('{E75480},') then
text = string.gsub(text, '({E75480})', "")
text = string.gsub(text, '(".*")', "{ffffff}%1{"..ini.settings.currentcolor.."}")
end
text = string.gsub(text, '({E75480})', "{"..ini.settings.currentcolor.."}")
sampAddChatMessage(text, -1)
return false
end
end
function chatColor(color)
local color = string.match(color, '(.*)')
if color ~= '' then
sampAddChatMessage("Цвет РП чата изменен на: ".."{"..color.."}"..color, -1)
ini.settings.currentcolor = color
inicfg.save(ini, 'rpcolor')
else
sampAddChatMessage("Цвет РП чата изменен на {"..ini.settings.defaultcolor.."}стандартный", -1)
ini.settings.currentcolor = ini.settings.defaultcolor
inicfg.save(ini, 'rpcolor')
end
end
function main()
wait(0)
sampRegisterChatCommand("rpcolor", chatColor)
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 = {
['onPlayerChatBubble'] = { 'int16', 'int32', 'float', 'int32', 'string8', 59 },
}
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
сам справишься дальше?)) и это визуально кажется))1. Описание заказа: Хотелось бы заменить стандартный цвет отыгровок (/me, /do и т.д) на свои цвета. Есть на подобии только для гамбита код оставлю ниже.
2. Тип заказа (платный/бесплатный): Бесплатный
3. Желаемая цена за работу(если тип заказа платный): -
4. Способ связи с Вами: liamneto, либо тут
Код:script_name('RPColor') script_author("Nishikinov") require "lib.moonloader" local sampev = require 'lib.samp.events' local inicfg = require "inicfg" if not doesFileExist('moonloader\\config\\rpcolor.ini') then if not doesDirectoryExist('moonloader\\config') then createDirectory('moonloader\\config') end local ini = { settings = { currentcolor = 'D0AEEB', defaultcolor = 'D0AEEB', -- Стандартный цвет: D0AEEB } } inicfg.save(ini, 'rpcolor') end local ini = inicfg.load(nil, 'rpcolor') function sampev.onPlayerChatBubble(playerId, color, distance, duration, message) if sampIsPlayerConnected(playerId) and tostring(color) == "-413892353" then emul_rpc('onPlayerChatBubble', { tonumber(playerId), -1, 15, 5000, tostring("{"..ini.settings.currentcolor.."}"..message) }) return false end end function sampev.onServerMessage(color, text) if color == -413892353 or color == -793842689 then sampAddChatMessage("{"..ini.settings.currentcolor.."}"..text, -1) return false elseif text:find('{E75480}') then if text:find('{E75480},') then text = string.gsub(text, '({E75480})', "") text = string.gsub(text, '(".*")', "{ffffff}%1{"..ini.settings.currentcolor.."}") end text = string.gsub(text, '({E75480})', "{"..ini.settings.currentcolor.."}") sampAddChatMessage(text, -1) return false end end function chatColor(color) local color = string.match(color, '(.*)') if color ~= '' then sampAddChatMessage("Цвет РП чата изменен на: ".."{"..color.."}"..color, -1) ini.settings.currentcolor = color inicfg.save(ini, 'rpcolor') else sampAddChatMessage("Цвет РП чата изменен на {"..ini.settings.defaultcolor.."}стандартный", -1) ini.settings.currentcolor = ini.settings.defaultcolor inicfg.save(ini, 'rpcolor') end end function main() wait(0) sampRegisterChatCommand("rpcolor", chatColor) 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 = { ['onPlayerChatBubble'] = { 'int16', 'int32', 'float', 'int32', 'string8', 59 }, } 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
function onReceiveRpc(id, bs)
if id == 59 then
local playerId = raknetBitStreamReadInt16(bs)
local color = raknetBitStreamReadInt32(bs)
local distance = raknetBitStreamReadFloat(bs)
local duration = raknetBitStreamReadInt32(bs)
local size = raknetBitStreamReadInt8(bs)
local message = raknetBitStreamReadString(bs, size)
if color == -577699841 then
raknetBitStreamSetWriteOffset(bs, 0)
raknetBitStreamWriteInt16(bs, playerId)
raknetBitStreamWriteInt32(bs, 0xFFFF9A42) -- в место 0xFFFF9A42 ставишь свой цвет ARGB кажется
raknetBitStreamWriteFloat(bs, distance)
raknetBitStreamWriteInt32(bs, duration)
raknetBitStreamWriteInt8(bs, size)
raknetBitStreamWriteString(bs, message)
return true, 59, bs
end
end
if id == 93 then
local color = raknetBitStreamReadInt32(bs)
local size = raknetBitStreamReadInt32(bs)
local text = raknetBitStreamReadString(bs, size)
if color == -577699841 then
raknetBitStreamSetWriteOffset(bs, 0)
raknetBitStreamWriteInt32(bs, 0xFFFF9A42) -- в место 0xFFFF9A42 ставишь свой цвет ARGB кажется
raknetBitStreamWriteInt32(bs, size)
raknetBitStreamWriteString(bs, text)
return true, 93, bs
end
end
end
Это не ARGB, это HEX шестнадцатиричный братансам справишься дальше?)) и это визуально кажется))
JavaScript:function onReceiveRpc(id, bs) if id == 59 then local playerId = raknetBitStreamReadInt16(bs) local color = raknetBitStreamReadInt32(bs) local distance = raknetBitStreamReadFloat(bs) local duration = raknetBitStreamReadInt32(bs) local size = raknetBitStreamReadInt8(bs) local message = raknetBitStreamReadString(bs, size) if color == -577699841 then raknetBitStreamSetWriteOffset(bs, 0) raknetBitStreamWriteInt16(bs, playerId) raknetBitStreamWriteInt32(bs, 0xFFFF9A42) -- в место 0xFFFF9A42 ставишь свой цвет ARGB кажется raknetBitStreamWriteFloat(bs, distance) raknetBitStreamWriteInt32(bs, duration) raknetBitStreamWriteInt8(bs, size) raknetBitStreamWriteString(bs, message) return true, 59, bs end end if id == 93 then local color = raknetBitStreamReadInt32(bs) local size = raknetBitStreamReadInt32(bs) local text = raknetBitStreamReadString(bs, size) if color == -577699841 then raknetBitStreamSetWriteOffset(bs, 0) raknetBitStreamWriteInt32(bs, 0xFFFF9A42) -- в место 0xFFFF9A42 ставишь свой цвет ARGB кажется raknetBitStreamWriteInt32(bs, size) raknetBitStreamWriteString(bs, text) return true, 93, bs end end end
Понятно)) Я просто откуда та цвет взял и кинул туда) буду знатьЭто не ARGB, это HEX шестнадцатиричный братан