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

Dewize

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

Dewize

Потрачен
Автор темы
442
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

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



Код:
--Гл.Функция--
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

Потрачен
Автор темы
442
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(), это тип отправка команды с значением ФПС. Я хочу чтоб, вы просто поняли, что там по КД кидает это
 
Последнее редактирование:

whyega52

Eblang головного мозга
Модератор
2,838
2,777
Все равно. Мб я ещё хуже чем долбаёб. ХЗ




Код:
--Подгужаем библиотеки и модули--
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 раз по команде, а не в цикле