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

FYP

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

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

dddfdddsdfgsd

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

AntonAnton123

Активный
169
87
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

Новичок
6
2
Помогите мне, пожалуйста. Я написал мини-скрипт, но он не запускается автоматически. Скрипт на основе 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

Новичок
6
2
Как исправить ошибку загрузки текстуры карты? Если можно, подправьте код, так как, возможно, я написал что-то неправильное. Я хочу реализовать возможность визуального телепортирования по метке или по координатам. Играю я на аризоне
Код:
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
 
Последнее редактирование:

Gavayi

Активный
127
38
Кто может склеить эти 2 скрипта.
В одном сбив на Q в другом сбив на R и переворот машины.
Или же подскажите как можно их склеить, чтобы не было проблем и багов при их использовании.
 

Вложения

  • Sbiv(q-durka).cs
    18.2 KB · Просмотры: 4
  • GotovoeCLEO 2in1.cs
    18.5 KB · Просмотры: 5

Gavayi

Активный
127
38
Кто сможет поменять цвет прицела на белый и добавить активацию по чит-коду "cross"
 

Вложения

  • crosshair.cs
    18.9 KB · Просмотры: 3

kalonne

Новичок
6
2
Недавно я переделал скрипт, и теперь я хочу добавить возможность телепортации по метке на карте, но у меня не получается сделать это. Помогите, пожалуйста.
Lua:
require 'lib.moonloader'
local sampev = require 'lib.samp.events'
local inicfg = require 'inicfg'

script_name("VirtualWorld")
script_author("Noname")
script_version("1.0")
script_description("Пример использования MoonLoader для создания виртуального мира с меткой и телепортацией")

local color_white = 0xFFFFFF -- Белый цвет
local color_green = 0x00FF00 -- Зеленый цвет
local color_blue = 0x0000FF -- Синий цвет
local script_initialized = false

local config = {
    virtualWorldActive = false,
    virtualWorldCoords = {0, 0, 0},
    realWorldCoords = {0, 0, 0},
    teleportMarker = {0, 0, 0}
}

local config_file = getWorkingDirectory() .. "\\virtual_world.ini"

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

    -- Загрузка конфигурации
    if doesFileExist(config_file) then
        config = inicfg.load(config, config_file)
    else
        inicfg.save(config, config_file)
    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

    -- Регистрация команд для управления виртуальным миром
    sampRegisterChatCommand("vw", handleVirtualWorldCommand)
    sampRegisterChatCommand("teleport", handleTeleportCommand)
    sampRegisterChatCommand("marker", handleShowMarkerCommand)

    while true do
        wait(0)
        if config.virtualWorldActive and isKeyJustPressed(VK_Z) then
            handleSetMarkerCommand()
        end
    end
end

function handleVirtualWorldCommand(params)
    if params:lower() == "on" then
        if config.virtualWorldActive then
            sampAddChatMessage("Виртуальный мир уже активен.", color_white)
            return
        end

        -- Активация виртуального мира
        config.virtualWorldActive = true
        config.realWorldCoords = {getCharCoordinates(PLAYER_PED)}
        config.virtualWorldCoords = {getCharCoordinates(PLAYER_PED)}
        inicfg.save(config, config_file)
        sampAddChatMessage("Виртуальный мир активирован.", color_green)
    elseif params:lower() == "off" then
        if not config.virtualWorldActive then
            sampAddChatMessage("Виртуальный мир не активен.", color_white)
            return
        end

        -- Деактивация виртуального мира
        config.virtualWorldActive = false
        setCharCoordinates(PLAYER_PED, unpack(config.realWorldCoords))
        inicfg.save(config, config_file)
        sampAddChatMessage("Виртуальный мир деактивирован.", color_green)
    else
        sampAddChatMessage("Использование: /vw on/off", color_white)
    end
end

function handleSetMarkerCommand()
    if not config.virtualWorldActive then
        sampAddChatMessage("Установка метки доступна только в виртуальном мире.", color_white)
        return
    end

    -- Получаем координаты курсора на карте
    local cursorX, cursorY = getCursorPos()
    local worldX, worldY, worldZ = convertScreenCoordsToWorld3D(cursorX, cursorY, 1000)

    if worldX and worldY and worldZ then
        config.teleportMarker = {worldX, worldY, worldZ}
        inicfg.save(config, config_file)
        sampAddChatMessage("Метка установлена автоматически.", color_green)
    else
        sampAddChatMessage("Не удалось получить координаты метки.", color_white)
    end
end

function handleTeleportCommand()
    if not config.virtualWorldActive then
        sampAddChatMessage("Телепортация доступна только в виртуальном мире.", color_white)
        return
    end

    if config.teleportMarker[1] == 0 and config.teleportMarker[2] == 0 and config.teleportMarker[3] == 0 then
        sampAddChatMessage("Метка не установлена.", color_white)
        return
    end

    -- Телепортация к метке
    setCharCoordinates(PLAYER_PED, unpack(config.teleportMarker))
    config.virtualWorldCoords = {unpack(config.teleportMarker)}
    sampAddChatMessage(string.format("Вы телепортированы на координаты X:%.2f, Y:%.2f, Z:%.2f", unpack(config.teleportMarker)), color_green)
end

function handleShowMarkerCommand()
    if not config.virtualWorldActive then
        sampAddChatMessage("Просмотр метки доступен только в виртуальном мире.", color_white)
        return
    end

    if config.teleportMarker[1] == 0 and config.teleportMarker[2] == 0 and config.teleportMarker[3] == 0 then
        sampAddChatMessage("Метка не установлена.", color_white)
    else
        sampAddChatMessage(string.format("Метка установлена на координатах X:%.2f, Y:%.2f, Z:%.2f", unpack(config.teleportMarker)), color_blue)
    end
end

function updateVirtualWorld()
    -- Обновляем координаты в виртуальном мире
    local currentCoords = {getCharCoordinates(PLAYER_PED)}
    local velocity = {getCharVelocity(PLAYER_PED)}

    config.virtualWorldCoords[1] = config.virtualWorldCoords[1] + velocity[1]
    config.virtualWorldCoords[2] = config.virtualWorldCoords[2] + velocity[2]
    config.virtualWorldCoords[3] = config.virtualWorldCoords[3] + velocity[3]

    setCharCoordinates(PLAYER_PED, unpack(config.virtualWorldCoords))
end

function sampev.onSendPlayerSync(data)
    if config.virtualWorldActive then
        -- Сервер думает, что вы находитесь в реальном мире
        data.position = {unpack(config.realWorldCoords)}
    end
end

function doesFileExist(file)
    local f = io.open(file, "r")
    if f then
        io.close(f)
        return true
    else
        return false
    end
end
 

D3.Pheonix

🎹
Модератор
2,867
1,644
Кто может склеить эти 2 скрипта.
В одном сбив на Q в другом сбив на R и переворот машины.
Или же подскажите как можно их склеить, чтобы не было проблем и багов при их использовании.
Кто сможет поменять цвет прицела на белый и добавить активацию по чит-коду "cross"
 

Вложения

  • crosshair.cs
    19.2 KB · Просмотры: 2
  • GotovoeCLEO 3in1.cs
    19 KB · Просмотры: 2
  • Нравится
Реакции: Gavayi

Gavayi

Активный
127
38
Сначала удалил, потом переместил, потом сделал склеил скрипты, благодарю)
Сможешь ещё склеить эти 2 файла, там фикс метлы (/fmop) и сама метла (mop чит-код)
 

Вложения

  • 5_MopFix_v5_fmop.cs
    1.6 KB · Просмотры: 2
  • mop.cs
    9.7 KB · Просмотры: 13

D3.Pheonix

🎹
Модератор
2,867
1,644
Сначала удалил, потом переместил, потом сделал склеил скрипты, благодарю)
Сможешь ещё склеить эти 2 файла, там фикс метлы (/fmop) и сама метла (mop чит-код)
не могу mop.cs нормально декомпилировать. Так что сорян
 

D3.Pheonix

🎹
Модератор
2,867
1,644
я не фикс имел в виду, а саму метлу. Там какая то часть теряется что-ли при открытии. И после компиляции уже не работает (крашит)
@chromiusj помоему прикол в том что метла скрипт очень древний (2008 что-ли) и при компиляции что-то ломается
 

RainThes

Новичок
1
0
добавьте активацию и деактивацию на клавишу F2
Код:
script_author('chapo')
local active = false

require('lib.samp.events').onApplyPlayerAnimation = function(playerId)
    if active and playerId == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
        return false
    end
end

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('noanim', function()
        active = not active
        printStyledString('NO ANIM: '..(active and '~g~ON' or '~r~OFF'), 750, 7)
    end)
    wait(-1)
end
 

minxty

Известный
1,189
1,058
добавьте активацию и деактивацию на клавишу F2
Код:
script_author('chapo')
local active = false

require('lib.samp.events').onApplyPlayerAnimation = function(playerId)
    if active and playerId == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
        return false
    end
end

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('noanim', function()
        active = not active
        printStyledString('NO ANIM: '..(active and '~g~ON' or '~r~OFF'), 750, 7)
    end)
    wait(-1)
end
Lua:
script_author('chapo')
local active = false

require('lib.samp.events').onApplyPlayerAnimation = function(playerId)
    if active and playerId == select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)) then
        return false
    end
end

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('noanim', function()
        active = not active
        printStyledString('NO ANIM: '..(active and '~g~ON' or '~r~OFF'), 750, 7)
    end)
    while true do wait(0)
        if wasKeyPressed(0x71) and not sampIsCursorActive() then
            active = not active
            printStyledString('NO ANIM: '..(active and '~g~ON' or '~r~OFF'), 750, 7)
        end
    end
end