Помощь в изменении скриптов

FYP

Известный
Автор темы
Администратор
1,770
6,004
Здесь вы можете попросить других пользователей внести какие-то небольшие изменения в скрипт, например, изменить активацию.
Для вопросов по программированию и разработке на форуме есть отдельная категория Разработка.

Рекомендации:
  1. Не просите о редактировании .asi, .sf, .luac, .dll, .exe и прочих файлов, не поддающихся простой декомпиляции. Скрипты формата .ahk (AutoHotKey), .lua (Lua/MoonLoader) и .cs (CLEO) легко поддаются изменению.
  2. Сообщения по типу "спасибо, помог" по правилам форума считаются флудом и скорее всего будут удалены. Если вам помогли, вы можете нажать кнопку Мне нравится под ответом - это даст понять, что ответ верный.
  3. За злонамеренное распространение вредоносного ПО - перманентный бан. Имейте это в виду.
Удаление копирайтов является нарушением авторских прав, если автор не дал на это своего разрешения. Правила BlastHack запрещают нарушать авторские права, поэтому если вам нужно их убрать - обращайтесь к автору.
 
Последнее редактирование:
D

deleted-user-548977

Гость
Нашел колорхуд, который вместо цветов худа отображает белый цвет, тоесть если создать какой-нибудь пресет и загрузить его, то цвет на квадратах не поменяется. Кто-то может переписать чтобы цвет менялся как здесь, когда с таймсусом меняется и цвет
Посмотреть вложение 243326
скачай recolorer - https://www.blast.hk/threads/128103/
 
  • Клоун
Реакции: minxty

traktor_1144

Новичок
13
0
приветствую всех!) снайпер фикс в котором при прицеливание скрываются аксессуары, иногда они багались и залезали в прицел. в общем пытался добавить чтобы еще скрывался интерфейс (для мувиков своих), но все никак не получалось, возможно кто то знает как сделать, буду благодарен очень))
 

Вложения

  • snpfixed.lua
    3 KB · Просмотры: 1

dddfdddsdfgsd

Новичок
22
1
Скрипт на отображения времени до следующего надевания автоармора
Нужно сделать :
проверку, если армора меньше 240 но больше 40 то когда на таймере в ориг скрипте рисует 3 сек то автоматом пишется команда /armour
 

Вложения

  • armour.lua
    1.4 KB · Просмотры: 4

dddfdddsdfgsd

Новичок
22
1
Скрипт на отображения времени до следующего надевания автоармора
Нужно сделать :
проверку, если армора меньше 240 но больше 40 то когда на таймере в ориг скрипте рисует 3 сек то автоматом пишется команда /armour
up
 

976h

Активный
271
88
Надо добавить, что бы при нажатии кнопки "Погоня", писало /pursuit (id) выбраного игрока

Lua:
require 'lib.moonloader'
local sampev = require 'samp.events'

local tag = '{7FFF00}Список преступников'
local delay = 35
local wanted = {}
local wlist = false

function main()

    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    
    local _, idClient = sampGetPlayerIdByCharHandle(PLAYER_PED)
    
    local function getPing()
        return(sampGetPlayerPing(idClient))
    end

    sampRegisterChatCommand('wanted', function ()
    
        wanted = {}
        wlist = true
        lua_thread.create(function()
        

            
            for i = 1, 6 do
                sampSendChat('/wanted ' .. i)
                wait(150)
            end
            
            wait(getPing() + delay)
            wlist = false
            sampSendDialogResponse(1780, 0, false, false)
            table.sort(wanted, function (k1, k2) return k1[3] > k2[3] end )
            local dtext = '{FFFFFF}'
            
            for k, _ in ipairs(wanted) do
                dtext = dtext .. string.format('{FFFFFF}%s{FFFFFF}({00FF00}%s{FFFFFF})\t{FFFFFF}%s уровень\t%s\n', wanted[k][1], wanted[k][2], wanted[k][3], wanted[k][4])
            end

            sampShowDialog(1, tag, 'Ник\tУровень розыска\tРасстояние\n' .. dtext, 'Погоня', 'Отмена', DIALOG_STYLE_TABLIST_HEADERS)
        end)     
    end)
    
    function sampev.onShowDialog(dialogid, style, title, button1, button2, text)
        if dialogid == 1780 and wlist then
            local text = string.gsub(text, '%{......}', '')
            text = string.gsub(text, 'Ник%s+Уровень розыска%s+Расстояние\n', '')

            for line in string.gmatch(text, '[^\n]+') do
                local nick, id, lvl, dist = string.match(line, '(%w+_%w+)%((%d+)%)%s+(%d) уровень%s+%[(.+)%]')
                dist = string.gsub(dist, 'в интерьере', '{FF0000}НЕДОСТУПЕН')
                dist = string.gsub(dist, 'м%.', 'м')
                table.insert(wanted, {nick, id, lvl, dist})   
            end
            return false
        end
    end
    
    function sampev.onServerMessage(_, text)
        if text:find('^%[Ошибка%] {FFFFFF}Игроков с таким уровнем розыска нету!') and wlist then return false end
    end
end
 

янезнаю

Участник
70
10
Можете сделать так чтобы когда я пишу /hpme показывалось только моё хп, а когда пишу /hpal показывалось и моё и чужоё хп (всех игроков в радиусе который указан в коде скрипта) и последняя команда /hpoff (не показывать ни чужое, ни моё хп)
Понимаю, тема сложная, но хелп пж
 

Вложения

  • [L] HPHud НА ВСЕХ.lua
    2.3 KB · Просмотры: 4

976h

Активный
271
88
Можете сделать так чтобы когда я пишу /hpme показывалось только моё хп, а когда пишу /hpal показывалось и моё и чужоё хп (всех игроков в радиусе который указан в коде скрипта) и последняя команда /hpoff (не показывать ни чужое, ни моё хп)
Понимаю, тема сложная, но хелп пж
Lua:
require 'lib.moonloader'

script_author('TyphoonWw')
script_name('HP-Hud')
script_version('1.0a pre-beta final release optimus mega prime')










vseh            = true
distt            = 100
razmer_teksta     = 8
cvet_hp_igroka     = 0xAAFF2222
cvet_ap_igroka     = 0xFFFFFFFF
cvet_hp_mashini    = 0xFFAAAAFF
shrift             = 'Verdana'












local font_flag     = require('moonloader').font_flag
local font_name     = shrift
local font             = renderCreateFont(font_name, razmer_teksta, font_flag.BOLD + font_flag.SHADOW)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("hpme", function()
        showMyHP = true
        showAllHP = false
    end)

    sampRegisterChatCommand("hpal", function()
        showMyHP = true
        showAllHP = true
    end)

    sampRegisterChatCommand("hpoff", function()
        showMyHP = false
        showAllHP = false
    end)

    while true do
        wait(0)

        if showMyHP then
            displayPlayerHP(PLAYER_PED)
        end

        if showAllHP then
            forAll()
        end
    end
end

function displayPlayerHP(ped)
    local pX, pY, pZ = getCharCoordinates(ped)
    local ppX, ppY = convert3DCoordsToScreen(pX, pY, pZ)
    
    if getCharHealth(ped) > 0 then
        renderFontDrawText(font, getCharHealth(ped), ppX, ppY, cvet_hp_igroka)
    end

    if getCharArmour(ped) > 0 then
        renderFontDrawText(font, getCharArmour(ped), ppX, ppY + 10, cvet_ap_igroka)
    end

    if isCharInAnyCar(ped) then
        local car = storeCarCharIsInNoSave(ped)
        renderFontDrawText(font, getCarHealth(car), ppX, ppY - 10, cvet_hp_mashini)
    end
end

function forAll()
    local pX, pY, pZ = getCharCoordinates(PLAYER_PED)
    for id = 0, sampGetMaxPlayerId(true) do
        local result, pedd = sampGetCharHandleBySampPlayerId(id)
        if result and pedd ~= PLAYER_PED then
            local spX, spY, spZ = getCharCoordinates(pedd)
            if isPointOnScreen(spX, spY, spZ) and getDistanceBetweenCoords3d(spX, spY, spZ, pX, pY, pZ) <= distt then
                displayPlayerHP(pedd)
            end
        end
    end
end
 
  • Нравится
Реакции: янезнаю

dddfdddsdfgsd

Новичок
22
1
Скрипт на отображения времени до следующего надевания автоармора
Нужно сделать :
проверку, если армора меньше 240 но больше 40 то когда на таймере в ориг скрипте рисует 3 сек то автоматом пишется команда /armour
up
 

AntonAnton123

Известный
207
104
Lua:
require 'lib.moonloader'

script_author('TyphoonWw')
script_name('HP-Hud')
script_version('1.0a pre-beta final release optimus mega prime')










vseh            = true
distt            = 100
razmer_teksta     = 8
cvet_hp_igroka     = 0xAAFF2222
cvet_ap_igroka     = 0xFFFFFFFF
cvet_hp_mashini    = 0xFFAAAAFF
shrift             = 'Verdana'












local font_flag     = require('moonloader').font_flag
local font_name     = shrift
local font             = renderCreateFont(font_name, razmer_teksta, font_flag.BOLD + font_flag.SHADOW)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("hpme", function()
        showMyHP = true
        showAllHP = false
    end)

    sampRegisterChatCommand("hpal", function()
        showMyHP = true
        showAllHP = true
    end)

    sampRegisterChatCommand("hpoff", function()
        showMyHP = false
        showAllHP = false
    end)

    while true do
        wait(0)

        if showMyHP then
            displayPlayerHP(PLAYER_PED)
        end

        if showAllHP then
            forAll()
        end
    end
end

function displayPlayerHP(ped)
    local pX, pY, pZ = getCharCoordinates(ped)
    local ppX, ppY = convert3DCoordsToScreen(pX, pY, pZ)
   
    if getCharHealth(ped) > 0 then
        renderFontDrawText(font, getCharHealth(ped), ppX, ppY, cvet_hp_igroka)
    end

    if getCharArmour(ped) > 0 then
        renderFontDrawText(font, getCharArmour(ped), ppX, ppY + 10, cvet_ap_igroka)
    end

    if isCharInAnyCar(ped) then
        local car = storeCarCharIsInNoSave(ped)
        renderFontDrawText(font, getCarHealth(car), ppX, ppY - 10, cvet_hp_mashini)
    end
end

function forAll()
    local pX, pY, pZ = getCharCoordinates(PLAYER_PED)
    for id = 0, sampGetMaxPlayerId(true) do
        local result, pedd = sampGetCharHandleBySampPlayerId(id)
        if result and pedd ~= PLAYER_PED then
            local spX, spY, spZ = getCharCoordinates(pedd)
            if isPointOnScreen(spX, spY, spZ) and getDistanceBetweenCoords3d(spX, spY, spZ, pX, pY, pZ) <= distt then
                displayPlayerHP(pedd)
            end
        end
    end
end
своё хп нормально показывает, машин хп нормально, но вот других игроков всё время 1000 хп показывает, то есть не работает
 

kalonne

Участник
23
15
Помогите мне, пожалуйста. Я написал мини-скрипт, но он не запускается автоматически. Скрипт на основе Lua.
Код:
require 'lib.moonloader'

local sampev = require 'lib.samp.events'



script_name("Helper")

script_author("Sigma228")

script_version("0.2 beta test")

script_description("Пример использования MoonLoader для работы с SAMP")



local color_red = 0xFFFF0000 -- Красный цвет

local script_initialized = false



function main()

    -- Выводим информацию о скрипте только один раз при запуске

    if not script_initialized then

        sampAddChatMessage(script.this.name .. ' v' .. script.this.version, color_red)

        sampAddChatMessage('Автор: ' .. script.this.authors[1], color_red)

        script_initialized = true

    end



    while not isSampAvailable() do wait(100) end



    while true do

        wait(0)

        if wasKeyPressed(VK_F1) then

            sampSendChat("/rec 1") -- Отправляем команду /rec 1 в чат при нажатии F1

        end

    end

end
[/CODE]
 
Последнее редактирование:
D

deleted-user-222200

Гость
Помогите мне, пожалуйста. Я написал мини-скрипт, но он не запускается автоматически. Скрипт на основе Lua.
Код:
require 'lib.moonloader'

local sampev = require 'lib.samp.events'



script_name("Helper")

script_author("Sigma228")

script_version("0.2 beta test")

script_description("Пример использования MoonLoader для работы с SAMP")



local color_red = 0xFFFF0000 -- Красный цвет

local script_initialized = false



function main()

    -- Выводим информацию о скрипте только один раз при запуске

    if not script_initialized then

        sampAddChatMessage(script.this.name .. ' v' .. script.this.version, color_red)

        sampAddChatMessage('Автор: ' .. script.this.authors[1], color_red)

        script_initialized = true

    end



    while not isSampAvailable() do wait(100) end



    while true do

        wait(0)

        if wasKeyPressed(VK_F1) then

            sampSendChat("/rec 1") -- Отправляем команду /rec 1 в чат при нажатии F1

        end

    end

end
[/CODE]
1. Проверка if not script_initialized then имхо бесполезна, поскольку скрипт самостоятельно не перезагружается. При ручной перезагрузке скрипта переменная script_initialized примит снова статус false и код в мэин блоке выполнится, аналогично будет себя вести код без этой проверки.
2. Проверку (цикл while not IsSampAvailable) на инициализацию сампа следует вставить над выводимым текстом в чат, иначе функция сначала делает запрос на получение структуры чата с последующей отправкой сообщения, а только потом идёт проверка на то, запущен ли самп вообще (но оба варианта почему-то рабочие, ладно).
3. Вместо script.this.authors[1], используемой во втором sampAddChatMessage, дабы избежать проблемы с attempt to concatenate field попробуй unpack(thisScript().authors)
4. Могу предположить, что выполняемая в цикле команда /rec не является серверной, а вызывается клиентским скриптом/плагином. Соответственно sampSendChat следует заменить на sampProcessChatInput.

Lua:
require 'lib.moonloader'
script_name("Helper")
script_version("0.2 beta test")
script_author("Sigma228")
script_description("Пример использования MoonLoader для работы с SAMP")
local color_red = 0xFFFF0000

function main()
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage(script.this.name .. ' v' .. script.this.version, color_red)
    sampAddChatMessage("Автор: " ..unpack(thisScript().authors), color_red)
    while true do 
        wait(0)
        if wasKeyPressed(VK_F1) then
            sampProcessChatInput("/rec 1")
        end
    end
end
 
  • Нравится
Реакции: kalonne

kalonne

Участник
23
15
Как исправить ошибку загрузки текстуры карты? Если можно, подправьте код, так как, возможно, я написал что-то неправильное. Я хочу реализовать возможность визуального телепортирования по метке или по координатам. Играю я на аризоне
Код:
require 'lib.moonloader'
local sampev = require 'lib.samp.events'

script_name("Cheats")
script_author("Noname")
script_version("1.0")
script_description("Пример использования MoonLoader для работы с SAMP")

local color_white = 0xFFFFFF -- Белый цвет
local color_green = 0x7B68EE -- Зелёный цвет
local color_blue = 0x00BFFF -- Голубой цвет
local script_initialized = false

local mapTexture = nil
local mapPath = getFolderPath(0x14) .. "\\moonloader\\moonloader.png" -- Путь к изображению карты (замените на свой путь)
local mapWidth, mapHeight = 800, 600 -- Размеры изображения карты

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end

    -- Загрузка изображения карты
    mapTexture = loadTexture(mapPath)

    -- Проверка успешной загрузки текстуры карты
    if not mapTexture then
        print("Ошибка загрузки текстуры карты")
        return
    end

    -- Ждем, пока SAMP полностью загрузится
    while not isSampAvailable() do wait(100) end

    -- Вывод информации о скрипте только один раз при запуске
    if not script_initialized then
        sampAddChatMessage("Активация визуального телепорта", color_blue)
        sampAddChatMessage(script.this.name .. ' V' .. script.this.version, color_green)
        script_initialized = true
    end

    -- Регистрация команды /tt для визуального телепорта
    sampRegisterChatCommand("tt", handleVisualTeleportCommand)
end

function handleVisualTeleportCommand(params)
    -- Парсинг параметров команды
    local args = {}
    for arg in params:gmatch("%S+") do
        table.insert(args, arg)
    end

    -- Проверка передачи трёх аргументов: смещение X, Y, Z
    if #args ~= 3 then
        sampAddChatMessage("Использование: /tt [X] [Y] [Z]", color_white)
        return
    end

    -- Преобразование смещения из строк в числа
    local offsetX = tonumber(args[1])
    local offsetY = tonumber(args[2])
    local offsetZ = tonumber(args[3])

    -- Проверка успешного преобразования валидных чисел
    if not offsetX or not offsetY or not offsetZ then
        sampAddChatMessage("Неверные координаты. Использование: /tt [X] [Y] [Z]", color_white)
        return
    end

    -- Телепортация визуально на карте (используя текстуру карты)
    teleportPlayerVisual(offsetX, offsetY)

    -- Вывод сообщения о визуальной телепортации
    sampAddChatMessage(string.format("Вы визуально телепортированы на карту на координаты X:%.2f, Y:%.2f", offsetX, offsetY), color_green)
end

function loadTexture(path)
    -- Загрузка текстуры изображения
    local file = io.open(path, "rb")
    if not file then
        return nil
    end
    local bytes = file:read("*a")
    file:close()

    -- Возвращение массива байтов как текстуры
    return bytes
end

function teleportPlayerVisual(x, y)
    -- Предположим, что x и y уже представляют координаты на изображении карты
    -- Здесь можно добавить логику для отрисовки "игрока" на карте
    -- В примере отправляется команда чата SAMP с сообщением о визуальной телепортации
    local command = string.format("/pm Я телепортировался визуально на карту на координаты X:%.2f, Y:%.2f", x, y)
    sampSendChat(command)
end
 
Последнее редактирование: