Помогите доделать скрипт.

Статус
В этой теме нельзя размещать новые ответы.

Froggy

Участник
Автор темы
54
23
Версия SA-MP
  1. 0.3.7 (R1)
Решил я оживить одну тему: https://www.blast.hk/threads/62038/
Как туда прикрутить так сказать, активацию по команде и добавить сохранение количество патронов, а то я учусь так сказать по опен-соурсу. Буду понимать как делать команды в таких-вот скриптах, и делать так что-бы скрипт делал файлы с сохранением функций.
Скрипт:
Код:
local memory = require("memory")

local pt = 2 -- число 1, это то число патрон в обойме после которого будет происходить скролл
local worked = {22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 38, 41, 42, 43}

function main()
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        if getAmmoInClip() == pt then
            local gun = getCurrentCharWeapon(PLAYER_PED)
            for key, val in pairs(worked) do
                if val == gun and getAmmoInCharWeapon(PLAYER_PED, gun) ~= pt then
                    setCurrentCharWeapon(PLAYER_PED, 0) -- скроллит на фист
                    sampForceOnfootSync() -- отправляет синхронизацию для того чтобы и для других челов у тебя из рук на несколько мс пропал дигл
                    wait(200) -- сама задержка скролла, она выставляется в миллисекундах, т.е 1000мс = 1с, самое оптимальное значение 200-300 мс
                    setCurrentCharWeapon(PLAYER_PED, gun) -- скроллит обратно на посл. оружие
                end
            end
        end
    end
end

function getAmmoInClip()
    return memory.getuint32(getCharPointer(PLAYER_PED) + 0x5A0 + getWeapontypeSlot(getCurrentCharWeapon(PLAYER_PED)) * 0x1C + 0x8)
end
Напоминаю тема тут, авторство за ними:
 
Решение
Решил я оживить одну тему: https://www.blast.hk/threads/62038/
Как туда прикрутить так сказать, активацию по команде и добавить сохранение количество патронов, а то я учусь так сказать по опен-соурсу. Буду понимать как делать команды в таких-вот скриптах, и делать так что-бы скрипт делал файлы с сохранением функций.
Скрипт:
Код:
local memory = require("memory")

local pt = 2 -- число 1, это то число патрон в обойме после которого будет происходить скролл
local worked = {22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 38, 41, 42, 43}

function main()
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        if getAmmoInClip() == pt then
            local gun = getCurrentCharWeapon(PLAYER_PED)...

Gruzin Gang

Всефорумный Грузин
824
610
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Решил я оживить одну тему: https://www.blast.hk/threads/62038/
Как туда прикрутить так сказать, активацию по команде и добавить сохранение количество патронов, а то я учусь так сказать по опен-соурсу. Буду понимать как делать команды в таких-вот скриптах, и делать так что-бы скрипт делал файлы с сохранением функций.
Скрипт:
Код:
local memory = require("memory")

local pt = 2 -- число 1, это то число патрон в обойме после которого будет происходить скролл
local worked = {22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 38, 41, 42, 43}

function main()
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        if getAmmoInClip() == pt then
            local gun = getCurrentCharWeapon(PLAYER_PED)
            for key, val in pairs(worked) do
                if val == gun and getAmmoInCharWeapon(PLAYER_PED, gun) ~= pt then
                    setCurrentCharWeapon(PLAYER_PED, 0) -- скроллит на фист
                    sampForceOnfootSync() -- отправляет синхронизацию для того чтобы и для других челов у тебя из рук на несколько мс пропал дигл
                    wait(200) -- сама задержка скролла, она выставляется в миллисекундах, т.е 1000мс = 1с, самое оптимальное значение 200-300 мс
                    setCurrentCharWeapon(PLAYER_PED, gun) -- скроллит обратно на посл. оружие
                end
            end
        end
    end
end

function getAmmoInClip()
    return memory.getuint32(getCharPointer(PLAYER_PED) + 0x5A0 + getWeapontypeSlot(getCurrentCharWeapon(PLAYER_PED)) * 0x1C + 0x8)
end
Напоминаю тема тут, авторство за ними:
сделал активацию по команде
короче там изменишь под себя
скрипт с низу но вот сам код но сам то открыт

код:
local memory = require("memory")

local pt = 2
local worked = {22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 38, 41, 42, 43}
local enabled = false

function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage("охуеть скрипт запустился",-1)
    sampRegisterChatCommand("activated", act)
    while true do
        wait(0)
        if getAmmoInClip() == pt then
            local gun = getCurrentCharWeapon(PLAYER_PED)
            for key, val in pairs(worked) do
                if val == gun and getAmmoInCharWeapon(PLAYER_PED, gun) ~= pt then
                    setCurrentCharWeapon(PLAYER_PED, 0)
                    sampForceOnfootSync()
                    wait(200)
                    setCurrentCharWeapon(PLAYER_PED, gun)
                end
            end
        end
    end
end

function getAmmoInClip()
    return memory.getuint32(getCharPointer(PLAYER_PED) + 0x5A0 + getWeapontypeSlot(getCurrentCharWeapon(PLAYER_PED)) * 0x1C + 0x8)
end

function act()
    enabled = not enabled
    sampAddChatMessage(enabled and 'шарманка включилась' or 'шарманка потушилась', -1)
end
 

Вложения

  • script idk.lua
    1.1 KB · Просмотры: 3
  • Нравится
Реакции: Froggy

Froggy

Участник
Автор темы
54
23
сделал активацию по команде
короче там изменишь под себя
скрипт с низу но вот сам код но сам то открыт

код:
local memory = require("memory")

local pt = 2
local worked = {22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 38, 41, 42, 43}
local enabled = false

function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage("охуеть скрипт запустился",-1)
    sampRegisterChatCommand("activated", act)
    while true do
        wait(0)
        if getAmmoInClip() == pt then
            local gun = getCurrentCharWeapon(PLAYER_PED)
            for key, val in pairs(worked) do
                if val == gun and getAmmoInCharWeapon(PLAYER_PED, gun) ~= pt then
                    setCurrentCharWeapon(PLAYER_PED, 0)
                    sampForceOnfootSync()
                    wait(200)
                    setCurrentCharWeapon(PLAYER_PED, gun)
                end
            end
        end
    end
end

function getAmmoInClip()
    return memory.getuint32(getCharPointer(PLAYER_PED) + 0x5A0 + getWeapontypeSlot(getCurrentCharWeapon(PLAYER_PED)) * 0x1C + 0x8)
end

function act()
    enabled = not enabled
    sampAddChatMessage(enabled and 'шарманка включилась' or 'шарманка потушилась', -1)
end
Ооо, круто теперь нужно как-то прикрутить сюда inicfg, по типу скролл настраивать. При каком количестве патронов скролл будет работать.
прям вообще цены не будет
 
Последнее редактирование:

Gruzin Gang

Всефорумный Грузин
824
610
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ооо, круто теперь нужно как-то прикрутить сюда inicfg, по типу скролл настраивать. При каком количестве патронов скролл будет работать.
прям вообще цены не будет
а смысл с пт скрола на указанном пт для фрапсов? там перезарядка будет без анимки прямо будет переставлять пт
 

Froggy

Участник
Автор темы
54
23
а смысл с пт скрола на указанном пт для фрапсов? там перезарядка будет без анимки прямо будет переставлять пт
Та, не, не вы не так поняли. Я имел в виду что-бы скрипт настраивался с какого количества патронов оно скролило. Ну например там остался 1 патрон оно автоматом проскролилось, а я хочу что-бы можно было настроить на 2 патрона прямо в игре.
Просто при РП стрельбе лутше что-бы скролл стоял на 1, а НРП стрельбе лутше что-бы скролл стоял на 3-2, ну просто настройка для удобства.
Хотя.. Согласен, настройка для этого скрипта можеть быть идея немного бредовая.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.