Перейти к содержанию

Как заморозить таймер в игре?


VinDronix

Рекомендуемые сообщения

11 часов назад, Partizan сказал:

На многих играх сделанных на анрил присутствует чит менеджер.

Он изначально есть в конструкторе движка.

И это не значит что разрабы не прикрутили к игре что-то другое. Другой костыль.

Ссылка на комментарий
Поделиться на другие сайты

В 12.12.2022 в 19:14, Эдвард сказал:

Сейчас пытаюсь сделать отдельный трейнер в виде EXE файла, хочу замораживать таймер, но не работает, подозреваю, что трейнер не верно собирается.

А он наверно просто не аттачится к игре.

Ты запускаешь трейнер уже с включенной игрой?

Я могу дать несколько скриптов для аттача к процессу.

Спойлер
function myattach(timer)
  if getProcessIDFromProcessName("xxx.exe") ~= nil then
    object_destroy(timer)
    openProcess("xxx.exe") 
  end
end

t=createTimer(nil);
timer_setInterval(t,10)
timer_onTimer(t,myattach)

 

Спойлер
--------
-------- Auto Attach to Process
--------
PROCESS_NAME = 'Game.exe'
local autoAttachTimer = nil
local autoAttachTimerInterval = 100
local autoAttachTimerTicks = 0
local autoAttachTimerTickMax = 5000

local function autoAttachTimer_tick(timer)
    if getProcessIDFromProcessName(PROCESS_NAME) ~= nil then
        timer.destroy()
        openProcess(PROCESS_NAME)
    elseif autoAttachTimerTickMax > 0 and autoAttachTimerTicks >= autoAttachTimerTickMax then
        timer.destroy()
    end
    autoAttachTimerTicks = autoAttachTimerTicks + 1
end

autoAttachTimer = createTimer(MainForm)
autoAttachTimer.Interval = autoAttachTimerInterval
autoAttachTimer.OnTimer = autoAttachTimer_tick

 

Спойлер
attachlist=getAutoAttachList()
stringlist_add(attachlist,"XXX.exe");

 

Спойлер
PROCESS_NAME = 'XXXXXXXXX.exe'
--------
-------- Check for process and auto attach if need be
--------
local autoAttachTimer = nil          ---- Declaration for our static timer object (no destroy here!)
local autoAttachTimerInterval = 5000 ---- Timer in milliseconds

function clearUserDefinedSymbols()
	local mv,sf = getMemoryViewForm()
	if not mv.frmSymbolhandler then
		local mvHidden
		if not mv.Visible then mvHidden=true,mv.Show() end
		mv.miuserdefinedsymbols:OnClick()
		if mvHidden then mv.hide()end
		sf = mv.frmSymbolhandler
		sf.Hide()
	else
		sf = mv.frmSymbolhandler
	end
	if sf ~= nil then
		local symbol
		for i = sf.Listview1.Items.Count - 1, 0, -1 do
			symbol = sf.Listview1.Items.Item[i].Caption
			unregisterSymbol(symbol)
		end
	end
end

local function autoAttachTimer_tick(timer) ---- Timer callback
	---- Check to see if we are attached to the right process
	if getProcessIDFromProcessName(PROCESS_NAME) ~= getOpenedProcessID() then
		---- If not the right process, check if process is running and attach if exists
		AddressList.disableAllWithoutExecute()
		clearUserDefinedSymbols()
		if getProcessIDFromProcessName(PROCESS_NAME) ~= nil then
			openProcess(PROCESS_NAME) ---- Open the process
		end
	end
end

autoAttachTimer = createTimer(getMainForm())       ---- Create timer with the main form as it's parent
autoAttachTimer.Interval = autoAttachTimerInterval ---- Set timer interval
autoAttachTimer.OnTimer = autoAttachTimer_tick     ---- Set timer tick call back

 

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Partizan сказал:

А он наверно просто не аттачится к игре.

Ты запускаешь трейнер уже с включенной игрой?

Привет!

Да, запускаю уже после запуска игры, но прикол в том, что там же по сути в таблице сначала скрипт, а потом адрес для занесения значения таймера, который я биндю на клавишу,

а сам скрипт начальный, который инжектится, получается не прописан в трейнере нигде. Нашёл некоторые видосики по сборкам трейнеров, будет время потом сделаю.

Спасибо за примеры скриптов!

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.