Как в ЛУА ограчинить ФПС в гта.

Dewize

Известный
Автор темы
434
88
Версия MoonLoader
.027.0-preview
Мне крч надо, чтоб фпс в гта был например 100 и ток 100. Как сделать при помощи луа?
 

Dewize

Известный
Автор темы
434
88
maybe
Lua:
local function set_fps(fps)
    local cls_ptr = ffi.cast("uintptr_t*", getModuleHandle("samp.dll") + 0x21A10C)[0]
    local method = ffi.cast("void(__thiscall*)(uintptr_t, int)", getModuleHandle("samp.dll") + 0x9C190)
    return method(cls_ptr, fps)
end
не робит. Хотя МБ я долбаёб



Код:
--Гл.Функция--
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end -- Если SF или SA:MP не загружены скрипт убимает
    while not isSampAvailable() do wait(100) end -- Ждём пока функция isSampAvailable() вернет true и устанавливаем минимальное ожидание, что бы наша игра не зависла
    
  
    sampAddChatMessage('aboba',-1)
  
  
    while true do  -- Создаем бесконечный цикл, вместо бесконечного ожидания
        wait(0)  -- Опять таки чтобы наша игра не зависла, ждем след кадр
        
        if isCurrentCharWeapon(PLAYER_PED, 24) and isKeyDown(VK_RBUTTON)  then
            set_fps(30)
        end   
      
    end
end
---------------------------------

local function set_fps(fps)
    local cls_ptr = ffi.cast("uintptr_t*", getModuleHandle("samp.dll") + 0x21A10C)[0]
    local method = ffi.cast("void(__thiscall*)(uintptr_t, int)", getModuleHandle("samp.dll") + 0x9C190)
    return method(cls_ptr, fps)
end


Так же должно быть?
 

riverya4life

Известный
393
170
не робит. Хотя МБ я долбаёб



Код:
--Гл.Функция--
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end -- Если SF или SA:MP не загружены скрипт убимает
    while not isSampAvailable() do wait(100) end -- Ждём пока функция isSampAvailable() вернет true и устанавливаем минимальное ожидание, что бы наша игра не зависла
   
 
    sampAddChatMessage('aboba',-1)
 
 
    while true do  -- Создаем бесконечный цикл, вместо бесконечного ожидания
        wait(0)  -- Опять таки чтобы наша игра не зависла, ждем след кадр
       
        if isCurrentCharWeapon(PLAYER_PED, 24) and isKeyDown(VK_RBUTTON)  then
            set_fps(30)
        end  
     
    end
end
---------------------------------

local function set_fps(fps)
    local cls_ptr = ffi.cast("uintptr_t*", getModuleHandle("samp.dll") + 0x21A10C)[0]
    local method = ffi.cast("void(__thiscall*)(uintptr_t, int)", getModuleHandle("samp.dll") + 0x9C190)
    return method(cls_ptr, fps)
end


Так же должно быть?
Не подключена библиотека FFI
 

Dewize

Известный
Автор темы
434
88
Не подключена библиотека FFI
Все равно. Мб я ещё хуже чем долбаёб. ХЗ




Код:
--Подгужаем библиотеки и модули--
local sampev = require 'lib.samp.events'
require 'moonloader'
require "lib.moonloader"
local memory = require 'memory'
local ffi = require('ffi')
---------------------------------



--Переменые--

---------------------------------


--Гл.Функция--
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end -- Если SF или SA:MP не загружены скрипт убимает
    while not isSampAvailable() do wait(100) end -- Ждём пока функция isSampAvailable() вернет true и устанавливаем минимальное ожидание, что бы наша игра не зависла
    
  
    sampAddChatMessage('aboba',-1)
  
  
    while true do  -- Создаем бесконечный цикл, вместо бесконечного ожидания
        wait(0)  -- Опять таки чтобы наша игра не зависла, ждем след кадр
        
        if isCurrentCharWeapon(PLAYER_PED, 24) and isKeyDown(VK_RBUTTON)  then
            set_fps(30)
        end   
      
    end
end
---------------------------------

local function set_fps(fps)
    local cls_ptr = ffi.cast("uintptr_t*", getModuleHandle("samp.dll") + 0x21A10C)[0]
    local method = ffi.cast("void(__thiscall*)(uintptr_t, int)", getModuleHandle("samp.dll") + 0x9C190)
    return method(cls_ptr, fps)
end

Крч. Я решил сделать так, я взял под основу ФПСа, скрипт от БлекДжизуза. Когда условия буду верны мы отправляем команду скрипту и всё. Но теперь как сделать так, чтоб мне не флудило по 1000 строк, что ФПС изменён. Я попробовал сделать, что то типо проверки, но чёт не вышло. ВОт КОД



Код:
--Подгужаем библиотеки и модули--
local sampev = require 'lib.samp.events'
require 'moonloader'
require "lib.moonloader"
---------------------------------



--Переменые--
local proverka = false
---------------------------------


--Гл.Функция--
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end -- Если SF или SA:MP не загружены скрипт убимает
    while not isSampAvailable() do wait(100) end -- Ждём пока функция isSampAvailable() вернет true и устанавливаем минимальное ожидание, что бы наша игра не зависла
    
  
    sampAddChatMessage('aboba',-1)
  
  
    while true do  -- Создаем бесконечный цикл, вместо бесконечного ожидания
        wait(0)  -- Опять таки чтобы наша игра не зависла, ждем след кадр
        
        if isCurrentCharWeapon(PLAYER_PED, 24) and isKeyDown(VK_RBUTTON) and not proverka then
           proverka = true
           sampAddChatMessage('30 fps',-1)
        elseif proverka then
            proverka = false
           sampAddChatMessage('150 fps',-1)
        end   
      
    end
end
---------------------------------


Там где в бесконечном цикле написаны sampAddChatMessage(), это тип отправка команды с значением ФПС. Я хочу чтоб, вы просто поняли, что там по КД кидает это
 
Последнее редактирование:

why ega

РП игрок
Модератор
2,554
2,247
Все равно. Мб я ещё хуже чем долбаёб. ХЗ




Код:
--Подгужаем библиотеки и модули--
local sampev = require 'lib.samp.events'
require 'moonloader'
require "lib.moonloader"
local memory = require 'memory'
local ffi = require('ffi')
---------------------------------



--Переменые--

---------------------------------


--Гл.Функция--
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end -- Если SF или SA:MP не загружены скрипт убимает
    while not isSampAvailable() do wait(100) end -- Ждём пока функция isSampAvailable() вернет true и устанавливаем минимальное ожидание, что бы наша игра не зависла
   
 
    sampAddChatMessage('aboba',-1)
 
 
    while true do  -- Создаем бесконечный цикл, вместо бесконечного ожидания
        wait(0)  -- Опять таки чтобы наша игра не зависла, ждем след кадр
       
        if isCurrentCharWeapon(PLAYER_PED, 24) and isKeyDown(VK_RBUTTON)  then
            set_fps(30)
        end  
     
    end
end
---------------------------------

local function set_fps(fps)
    local cls_ptr = ffi.cast("uintptr_t*", getModuleHandle("samp.dll") + 0x21A10C)[0]
    local method = ffi.cast("void(__thiscall*)(uintptr_t, int)", getModuleHandle("samp.dll") + 0x9C190)
    return method(cls_ptr, fps)
end

Крч. Я решил сделать так, я взял под основу ФПСа, скрипт от БлекДжизуза. Когда условия буду верны мы отправляем команду скрипту и всё. Но теперь как сделать так, чтоб мне не флудило по 1000 строк, что ФПС изменён. Я попробовал сделать, что то типо проверки, но чёт не вышло. ВОт КОД



Код:
--Подгужаем библиотеки и модули--
local sampev = require 'lib.samp.events'
require 'moonloader'
require "lib.moonloader"
---------------------------------



--Переменые--
local proverka = false
---------------------------------


--Гл.Функция--
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end -- Если SF или SA:MP не загружены скрипт убимает
    while not isSampAvailable() do wait(100) end -- Ждём пока функция isSampAvailable() вернет true и устанавливаем минимальное ожидание, что бы наша игра не зависла
   
 
    sampAddChatMessage('aboba',-1)
 
 
    while true do  -- Создаем бесконечный цикл, вместо бесконечного ожидания
        wait(0)  -- Опять таки чтобы наша игра не зависла, ждем след кадр
       
        if isCurrentCharWeapon(PLAYER_PED, 24) and isKeyDown(VK_RBUTTON) and not proverka then
           proverka = true
           sampAddChatMessage('30 fps',-1)
        elseif proverka then
            proverka = false
           sampAddChatMessage('150 fps',-1)
        end  
     
    end
end
---------------------------------


Там где в бесконечном цикле написаны sampAddChatMessage(), это тип отправка команды с значением ФПС. Я хочу чтоб, вы просто поняли, что там по КД кидает это
Сделай это 1 раз по команде, а не в цикле