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

Pitronic

Пользователи+
  • Постов

    595
  • Зарегистрирован

  • Посещение

  • Победитель дней

    20

Сообщения, опубликованные Pitronic

  1. 1 час назад, Kvazimado сказал:

    Да и после получения готового решения, не способны его прочитать в слух и понять что им дали.

     

    Это справедливо против тех кто луа хоть не много знает, а я луа не знаю совсем, потому и хотел уточнить некоторые моменты. Это ведь скрипт не под мою игру делался значит нужны правки, поэтому я и уточнил в некоторых местах, я например не спрашивал по информации которую можно самому найти, в интернете, например горячие клавиши в луа.

  2. 2 часа назад, MasterGH сказал:

    Мой пример для integer

    кажется подойдёт только объясни моменты  мне надо именно под float скидываю ваш скрипт просто поясните там где я Коментарии поставил с вопросами

    Спойлер
    
    
    teleport_address = "03D2C6DC"	-- "[[address+XX]+XX]" или через registersymbol() --  здесь адрес из модуля? а если через registersymbol то можно просто ктивировать скрипт из своого бе кода как есть а  registersymbol вписать из таблици?
    type_data = 'INTEGER'			-- FLOAT, DOUBLE, INTEGER
    
    -- ctrl + R - сбросить позицию
    -- ctrl + X - сохранить в слот X, где X от 1 до 10 
    -- shift + X - сохранить в слот X, где X от 1 до 10
    
    --класс
    Vector3 = {}
    function Vector3:new(address, type_data)
    
    	local object = {}
    	object.address = address
    	object.x = 0
    	object.y = 0
    	object.z = 0
    	object.type_data = type_data
    	
    	function object:getAddress()
    		return self.address 
    	end
    	
    	function object:read()
    		if object.type_data == 'FLOAT' then
    			object.x = readFloat(object.address)
    			object.y = readFloat(getAddress(object.address) + 4) // здесь не чего менять не надо?
    			object.z = readFloat(getAddress(object.address) + 8)
    		elseif object.type_data == 'DOUBLE' then  // здесь должен быть FLOAT --здесь должен быть FLOAT если у меня именно это тип?
    			object.x = readDouble(object.address)  
    			object.y = readDouble(getAddress(object.address) + 4)
    			object.z = readDouble(getAddress(object.address) + 8)		
    		elseif object.type_data == 'INTEGER' then
    			object.x = readInteger(object.address)
    			object.y = readInteger(getAddress(object.address) + 4)
    			object.z = readInteger(getAddress(object.address) + 8)		
    		end
    		return object
    	end
    	
    	function object:write()
    		if object.type_data == 'FLOAT' then
    			writeFloat(object.address, object.x)
    			writeFloat(getAddress(object.address) + 4, object.y)
    			writeFloat(getAddress(object.address) + 8, object.z)
    		elseif object.type_data == 'DOUBLE' then
    			writeDouble(object.address, object.x)
    			writeDouble(getAddress(object.address) + 4, object.y)
    			writeDouble(getAddress(object.address) + 8, object.z)		
    		elseif object.type_data == 'INTEGER' then
    			writeInteger(object.address, object.x)
    			writeInteger(getAddress(object.address) + 4, object.y)
    			writeInteger(getAddress(object.address) + 8, object.z)		
    		end	
    	end
    	
    	function object:print_vector()
    		print(string.format("%s, %s, %s", object.x, object.y, object.z))
    	end
    	
    	setmetatable(object, self)
    	self.__index = self; 
    	return object
    end
    
    
    
    --класс
    Teleport = {}
    
    --тело класса Teleport
    function Teleport:new(address, type_data)
    	
    	local object = {}
    	-- Тип данных
    	object.type_data = type_data
    	-- Адрес
    	object.vector3_position = Vector3:new(address, type_data)
    	-- Адреса для слотов
    	object.vector3_positions = {} // в этом месте внутри скобок как я понял надо вписать переменную адреса просто цифрами дописать ?
    	// вэтом месте можно ещё слот добавить?
    	function object:getAddress()
    		return self.address 
    	end
    	
    	function object:make_hotkey_reset_position()
    	
    		local genericHotkey = createHotkey(
    				function() 
    					object.vector3_position:write()
    				end,
    				{VK_CONTROL, VK_R} -- в этом месте назначения горячих клавишь а как их сделать три для разных слотов  ( 	{VK_CONTROL, VK_R,VK_1} 	{VK_CONTROL, VK_R,VK_2} 	{VK_CONTROL, VK_R,VK_3} 
    		genericHotkey.DelayBetweenActivate = 2000
    	end
    
    	function object:make_hotkey_save_position(numberKey)
    		
    		local genericHotkey = createHotkey(
    				function()
    					speakEnglish("Save position "..numberKey)
    					object.vector3_positions[numberKey]:read()
    				end, 
    				{VK_CONTROL, VK_0 + numberKey}
    			)
    		genericHotkey.DelayBetweenActivate = 2000
    	end
    
    	function object:make_hotkey_load_position(numberKey)
    		
    		local genericHotkey = createHotkey(
    				function() 
    					speakEnglish("Load position "..numberKey)
    					object.vector3_position:read()
    					object.vector3_positions[numberKey]:write()
    				end,
    				{VK_SHIFT, VK_0 + numberKey}
    			)
    		genericHotkey.DelayBetweenActivate = 2000
    	end
    
    	function object:registry_hot_keys()
    
    		object:make_hotkey_reset_position()
    
    		for numberKey = 1, 10 do
    			local addressPosition = Vector3:new(address, type_data)
    			addressPosition:read()
    			table.insert(object.vector3_positions, addressPosition)
    			object:make_hotkey_save_position(numberKey)
    			object:make_hotkey_load_position(numberKey)		
    		end
    	end	
    	
    	object:registry_hot_keys()
    	
    	setmetatable(object, self)
    	self.__index = self; 
    	return object
    end
    
    local teleport = Teleport:new(teleport_address, type_data)

     

     

  3. 43 минуты назад, imaginary сказал:

    даже твои таблички что ты выкладывал для разных игр,

     здесь Тык мне не кто не помогал, здесь Тык тоже всё сам, здесь Тык Игорь  только с флагами помог, раньше не знал что такое флаги, и Женя научил как четыре таймера в один объеденить остальное сам, 

    здесь тык всего одна функция зато не водном трейнере для этой игры её нет тоже сам без подсказок, здесь тык была помощь только с чекбоксами, ты мне помогала женя и MasterGH но скрипт луа полностью твой, я упамянул всех троих, а здесь Тык мой урок скрипт твой но сам сделал на 100 штук от одного до ста чекбоксов в трейнере, так где ты увидела куски разных пользователей? а там где помогали я всегда честно писал кто. Где воровство? Уж если я не хотел обидеть тебя то ты реально обидела!

     

  4. 1 час назад, imaginary сказал:

    если сам разбираться не хочешь и не догоняешь.

    А ты когда начинала сразу всё догоняла? И у тебя  звание  помогатор? Не обяснишь этот термин? Или это для украшения? Только не в обиду. Обидеть даже нет в мыслях.

  5. 34 минуты назад, Garik66 сказал:

    Почитай весь топик, ссылку на который я тебе дал вначале.

    Ну и? В первом варианте сохранить переместился но дин координат, во втором на много точек на не в заданные слоты а на заранее записаные, координаты, а как эти 2 варианта в один который мне надо, то есть сохранил 3 или более координат, переместился по любому из них или по очереди в каждый я не догоняю. а там ещё и фильтр нужен что я в первом сообщении скинул, ко всем инструкциям много адресов пишется потому я и фильтр нашёл выше писал и ещё раз пишу

    newmem:

    // filtr

    cmp [eax+F7BE88],#25

    jne code

  6. В 08.07.2020 в 15:39, Garik66 сказал:

    Там есть варианты для телепортов на много точек и т.д.

    Только там на точные координаты (заранее записаные), а мне надо сохранил переместился и чтоб тоже много точек было.

  7. 1 час назад, Xipho сказал:

    А если координаты лежат рядом

    В это месте подробнее можно? У меня по четыре байта друг за другом рядышком.

  8. 1 час назад, Xipho сказал:

    Заводишь несколько слотов для сохранения координат (обязательно друг за другом)

    Руслан я кажется понял вашу мысль, можно сделать адрес [slot] один слот координат на 120 байт для 10 слотв и остальное всё как в вашем видео я правильно понял? Если так, то как работат с множеством флагов я знаю.

  9. 1 час назад, Xipho сказал:

    Примерный алгоритм

    Этот примерный алгоритм я как раз и описал. Я не пойму как это на практике сделать, Если бы видео на эту тему, Не обязательно на моей игре видео бы кто нибудь сделал?, Вы видели мой ролик?Здесь . Там я сделал теле порт именно благодаря вашему видео 13. (Делаем теле порт типа Save/Restore Position (сохранение и восстановление позиции)

  10. 48 минут назад, imaginary сказал:

    Основ должно хватать

    Нет не хватает, во всём инете примеры есть только на стандартные,, сохранил, переместился. А как на несколько сделать, информации нет. Я сам нашёл координаты, У меня они даже с указателями адреса есть, Ьряк поставил.  то есть что то сделал сам, но такие телепорты какой я сам сделал, почти во  всех трейнерах на разных играх есть, а вот несколько телепортов сделать я не сооброжу как, потому и прошу совета, и форум у нас не просто для того что зарегистрироваться на нём, а для того чтоб учится. Между прочем, я видел даже как Игорь (Garik66) тоже в чём не понял спрашивал совета на форуме. Хотя он не новичок, Игорь подтверди что не вру, Ты ведь выкладывал тему как создать трейнер для двух игр на одинаковом движке, И в видео что то там что сигнатуры одинаковы, но у тебя что то там не получалось. И я не считаю постыдным спросит совета там где не понимаешь.

  11. Нет не помог я на сколько понял это стандартный телепорт сохранил переместился, Такой я уже сделал сам,  вот видео убедись что работает

    Спойлер

     

    Мне нужен воп ервых на несколько слотов сохранения а точнее на 10,, плюс возврат в исходную позицию, вот тут я и затупил. На 10 делать не обязательно, мнеб на три, самое главное чтоб пример был как осуществить, а на свои десять я сам доделаю.

  12. Доброго времени суток форумчане. Мне необходим теле порт с несколькими слотами в игре Saints Row IV  htgfr от Xatab , в скрипте я уже создал для трёх слотов, мне нужно будет больше, но остальное сам допишу. скидываю скрипт.

    Спойлер
    
    { Game   : Saints Row IV.exe
      Version:
      Date   : 2020-07-05
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    
    // координаы
    //  x eax+30
    //  y eax+34
    //  z eax+38
    
    
    [ENABLE]
    
    aobscan(teleport,0F 58 * * 8B * * 0F 28 * 0F 57 * * * * * 0F 58 * 0F 58 * 0F 29 * * 0F 29 * 8B * * 8B * * C2 * * * * * * * * * * * * * * * * 8B)
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    label(FlagTeleport)
    label(slot0)
    label(slot1)
    label(slot2)
    label(slot3)
    label(indicator)
    
    registersymbol(teleport)
    registersymbol(FlagTeleport)
    registersymbol(slot0)
    registersymbol(slot1)
    registersymbol(slot2)
    registersymbol(slot3)
    registersymbol(indicator)
    
    newmem:
    // filtr
    cmp [eax+F7BE88],#25
    jne code
    
    code:
    addps xmm0,[eax+30]
    mov eax,[ebx+10]
    jmp return
    
    
    
    teleport:
    jmp newmem
     nop 2
    return:
    FlagTeleport:
    db 0
    slot0:
    db 00 00 00 00 00 00 00 00 00 00 00 00
    slot1:
    db 00 00 00 00 00 00 00 00 00 00 00 00
    slot2:
    db 00 00 00 00 00 00 00 00 00 00 00 00
    slot3:
    db 00 00 00 00 00 00 00 00 00 00 00 00
    indicator:
    db 0
    
    [DISABLE]
    
    teleport:
    addps xmm0,[eax+30]
    mov eax,[ebx+10]
    
    unregistersymbol(teleport)
    unregistersymbol(FlagTeleport)
    unregistersymbol(slot0)
    unregistersymbol(slot1)
    unregistersymbol(slot2)
    unregistersymbol(slot3)
    unregistersymbol(indicator)
    
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: "Saints Row IV.exe"+B2EF7C
    
    "Saints Row IV.exe"+B2EF59: 0F 28 C2              -  movaps xmm0,xmm2
    "Saints Row IV.exe"+B2EF5C: 0F C6 C2 00           -  shufps xmm0,xmm2,00
    "Saints Row IV.exe"+B2EF60: 0F 59 00              -  mulps xmm0,[eax]
    "Saints Row IV.exe"+B2EF63: 0F 28 E2              -  movaps xmm4,xmm2
    "Saints Row IV.exe"+B2EF66: 0F C6 E2 55           -  shufps xmm4,xmm2,55
    "Saints Row IV.exe"+B2EF6A: 0F 59 60 10           -  mulps xmm4,[eax+10]
    "Saints Row IV.exe"+B2EF6E: 0F C6 D2 AA           -  shufps xmm2,xmm2,-56
    "Saints Row IV.exe"+B2EF72: 0F 59 50 20           -  mulps xmm2,[eax+20]
    "Saints Row IV.exe"+B2EF76: 0F 58 C4              -  addps xmm0,xmm4
    "Saints Row IV.exe"+B2EF79: 0F 58 C2              -  addps xmm0,xmm2
    // ---------- INJECTING HERE ----------
    "Saints Row IV.exe"+B2EF7C: 0F 58 40 30           -  addps xmm0,[eax+30]
    "Saints Row IV.exe"+B2EF80: 8B 43 10              -  mov eax,[ebx+10]
    // ---------- DONE INJECTING  ----------
    "Saints Row IV.exe"+B2EF83: 0F 28 D1              -  movaps xmm2,xmm1
    "Saints Row IV.exe"+B2EF86: 0F 57 15 20 04 55 01  -  xorps xmm2,["Saints Row IV.exe"+1150420]
    "Saints Row IV.exe"+B2EF8D: 0F 58 D0              -  addps xmm2,xmm0
    "Saints Row IV.exe"+B2EF90: 0F 58 C1              -  addps xmm0,xmm1
    "Saints Row IV.exe"+B2EF93: 0F 29 40 10           -  movaps [eax+10],xmm0
    "Saints Row IV.exe"+B2EF97: 0F 29 10              -  movaps [eax],xmm2
    "Saints Row IV.exe"+B2EF9A: 8B E5                 -  mov esp,ebp
    "Saints Row IV.exe"+B2EF9C: 5D                    -  pop ebp
    "Saints Row IV.exe"+B2EF9D: 8B E3                 -  mov esp,ebx
    "Saints Row IV.exe"+B2EF9F: 5B                    -  pop ebx
    }

     

    ставлю ещё один спойлер для описания потому что длинное описание будет.

    Спойлер

    И так перехожу к функциям, начнём с сохранения координатов для трёх слотов,  сперва фильтр сранить значения адреса ,[eax+F7BE88] со значением 25 если равно. то переходим к функциям теле порта далее буду писать кодами, наверное там нужен будет свободный регистр поэтому начну с него

    push edx

    cmp [FlagTeleport],#1

    jne code

    mov edx,[eax+30]

    mov [slot1],edx

    mov edx,[eax+34]

    mov [slot1+4],edx

    mov edx,[eax+38]

    mov [slot1+8],edx

    mov  [FlagTeleport],#0

    jmp code

     

    cmp [FlagTeleport],#2

    jne code

    mov edx,[eax+30]

    mov [slot2],edx

    mov edx,[eax+34]

    mov [slot2+4],edx

    mov edx,[eax+38]

    mov [slot2+8],edx

    mov  [FlagTeleport],#0

    jmp code

     

    cmp [FlagTeleport],#3

    jne code

    mov edx,[eax+30]

    mov [slot3],edx

    mov edx,[eax+34]

    mov [slot3+4],edx

    mov edx,[eax+38]

    mov [slot3+8],edx

    mov  [FlagTeleport],#0

    jmp code

     

    теперь переходим к теле портации.

    здесь будет ещё один флаг [ndicator] работать для сохранения позиции в [slot0] который служит для теле портации по исходным координатов которые должны записаться один только раз, на то и исходная позиция.

    и так 

    cmp [FlagTeleport],#11

    jne code

    cmp   [ndicator],#0

    если равно то с начала записываем координаты в исходную позицию  [slot0]

    mov edx,[eax+30]

    mov [slot0],edx

    mov edx,[eax+34]

    mov [slot0+4],edx

    mov edx,[eax+38]

    mov [slot0+8],edx

    mov    [ndicator],#1

    mov  [FlagTeleport],#0

    jmp code

     

    и теле партируемся

    mov  edx, [slot1]

    mov  [eax+30],edx

    mov  edx, [slot1+4]

    mov  [eax+34],edx

    mov  edx, [slot1+8]

    mov  [eax+38],edx

    mov

    а если не равно нулю то не записываем кординаты в слот 0 сразу телепортируемся по коодинатам в слоте 1

    далее то же самое со вторым слотом

     

    cmp [FlagTeleport],#12

    jne code

    cmp   [ndicator],#0

    если равно то с начала записываем координаты в исходную позицию  [slot0]

    mov edx,[eax+30]

    mov [slot0],edx

    mov edx,[eax+34]

    mov [slot0+4],edx

    mov edx,[eax+38]

    mov [slot0+8],edx

    mov    [ndicator],#1

    mov  [FlagTeleport],#0

    jmp code

     

    и теле партируемся

    mov  edx, [slot2]

    mov  [eax+30],edx

    mov  edx, [slot2+4]

    mov  [eax+34],edx

    mov  edx, [slot2+8]

    mov  [eax+38],edx

     

    а если не равно нулю то не записываем кординаты в слот 0 сразу телепортируемся по коодинатам в слоте 2

    ну и разумеется те же самые действия для слота 3

     

    cmp [FlagTeleport],#13

    jne code

    cmp   [ndicator],#0

    если равно то с начала записываем координаты в исходную позицию  [slot0]

    mov edx,[eax+30]

    mov [slot0],edx

    mov edx,[eax+34]

    mov [slot0+4],edx

    mov edx,[eax+38]

    mov [slot0+8],edx

    mov    [ndicator],#1

    mov  [FlagTeleport],#0

    jmp code

     

    и теле партируемся

    mov  edx, [slot3]

    mov  [eax+30],edx

    mov  edx, [slot3+4]

    mov  [eax+34],edx

    mov  edx, [slot3+8]

    mov  [eax+38],edx

     

    а если не равно нулю то не записываем кординаты в слот 0 сразу телепортируемся по коодинатам в слоте 2

    И последняя функция вернуться в исходную позицию

    cmp [FlagTeleport],#21

    jne code

    mov  edx, [slot0]

    mov  [eax+30],edx

    mov  edx, [slot0+4]

    mov  [eax+34],edx

    mov  edx, [slot0+8]

    mov  [eax+38],edx

    mov  [FlagTeleport],#0

    Буду благодарен всем за помощь.

  13. 14 часов назад, LIRW сказал:

    через урон самого оружия.

    Если не жалко поделись пожалуйста

     

    14 часов назад, LIRW сказал:

    или сколько там ?

    вообще то единица, но это не важно, главное что пример правильный.

     

    14 часов назад, LIRW сказал:

    // или сколько там ?

    а вот тут я внимательно посмотрел промах, у банды игрока еденица, а у астольных разные сравнение с нулём для врагов не коректно, а вовсёй структуре нет не одного смещения чтоб были одинаковы в одном и вдругом, если в одной группе есть одинаковые, в другой все разные, этот вариант не подходит.

     

    Подправил твой скрипт, спасибо за помощь, без тебя бы не справился, всё работает вот твой скрипт, с комментариями на поправку.

    Спойлер
    
    [ENABLE]
    aobscanmodule(HealthCar,saintsrowthethird_dx11.exe,F3 0F 2A 43 0C F3 0F 2A) // should be unique
    alloc(newmem1,$1000)
    
    label(code1)
    label(return1)
    label(CarPayarGang)
    label(CarEnemiesGang)
    label(PlayerCar)
    label(EnemyCar)
    
    registersymbol(HealthCar)
    registersymbol(CarPayarGang)
    registersymbol(CarEnemiesGang)
    newmem1:
    cmp [ebx+E4],1
    je PlayerCar
    cmp [ebx+E4],1 // в этом месте тоже еденица но прыжок не через je а jne
    jne EnemyCar 
    jmp code1
    PlayerCar:
    cmp [CarPayarGang],1
    jz code1
    cvtsi2ss xmm1,[ebx+04]
    movss [ebx+0C],xmm1
    jmp code1
    EnemyCar:
    cmp [CarEnemiesGang],0
    jz code1
    xorps xmm1,xmm1
    movss [ebx+0C],xmm1
    jmp code1
    code1:
      cvtsi2ss xmm0,[ebx+0C]
      jmp return1
    CarPayarGang:
    dd 0
    CarEnemiesGang:
    dd 0
    HealthCar:
      jmp newmem1
    return1:
    
    [DISABLE]
    
    HealthCar:
    db F3 0F 2A 43 0C
    
    unregistersymbol(HealthCar)
    unregistersymbol(HealthCar)
    unregistersymbol(CarPayarGang)
    unregistersymbol(CarEnemiesGang)
    
    dealloc(newmem1)
    

     

    жалко что второй плюс не могу за видос поставить.

  14. Доброго времени суток форумчане, нужна помощь с этим скриптом, скидываю с коментарием и логами, у меня получилось не красиво, то есть транпорт игрока, неуязвим, а вот с остальным транортом беспредел, всё вокруг взрывается, хотя воздействия не какого нет, хотя я ставил не mov а sub.

    Спойлер
    
    { Game   : saintsrowthethird_dx11.exe
      Version: 
      Date   : 2020-04-27
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(HealthCar,saintsrowthethird_dx11.exe,F3 0F 2A 43 0C F3 0F 2A) // should be unique
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    label(return)
    label(return)
    registersymbol(HealthCar)
    registersymbol(CarPayarGang)
    registersymbol(CarEnemiesGang)
    newmem:
    
    code:
    cvtsi2ss xmm0,[ebx+0C] // то всем понятно адрес всего транспорта // [ebx+04] это адрес максимального здоровья транспорта // cmp [ebx+E4],1 это фильтр значение 1 соответствует фильтру игрока
    jmp return
    CarPayarGang:
    dd 0
    CarEnemiesGang
    dd 0
    HealthCar:
      jmp newmem
    return:
    
    
    [DISABLE]
    
    HealthCar:
      db F3 0F 2A 43 0C
    
    unregistersymbol(HealthCar)
    unregistersymbol(CarPayarGang)
    unregistersymbol(CarEnemiesGang)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: "saintsrowthethird_dx11.exe"+69DF58
    
    "saintsrowthethird_dx11.exe"+69DF3C: E8 2D 88 40 00        -  call saintsrowthethird_dx11.exe+AA676E
    "saintsrowthethird_dx11.exe"+69DF41: 8B E5                 -  mov esp,ebp
    "saintsrowthethird_dx11.exe"+69DF43: 5D                    -  pop ebp
    "saintsrowthethird_dx11.exe"+69DF44: C3                    -  ret 
    "saintsrowthethird_dx11.exe"+69DF45: 80 7D 1C 00           -  cmp byte ptr [ebp+1C],00
    "saintsrowthethird_dx11.exe"+69DF49: 74 0D                 -  je saintsrowthethird_dx11.exe+69DF58
    "saintsrowthethird_dx11.exe"+69DF4B: F3 0F 2A 45 18        -  cvtsi2ss xmm0,[ebp+18]
    "saintsrowthethird_dx11.exe"+69DF50: 0F 57 C9              -  xorps xmm1,xmm1
    "saintsrowthethird_dx11.exe"+69DF53: 0F 2F C8              -  comiss xmm1,xmm0
    "saintsrowthethird_dx11.exe"+69DF56: 76 D6                 -  jna saintsrowthethird_dx11.exe+69DF2E
    // ---------- INJECTING HERE ----------
    "saintsrowthethird_dx11.exe"+69DF58: F3 0F 2A 43 0C        -  cvtsi2ss xmm0,[ebx+0C]
    // ---------- DONE INJECTING  ----------
    "saintsrowthethird_dx11.exe"+69DF5D: F3 0F 2A 4B 04        -  cvtsi2ss xmm1,[ebx+04]
    "saintsrowthethird_dx11.exe"+69DF62: 8B 55 18              -  mov edx,[ebp+18]
    "saintsrowthethird_dx11.exe"+69DF65: 33 C9                 -  xor ecx,ecx
    "saintsrowthethird_dx11.exe"+69DF67: 80 BE D0 0B 00 00 01  -  cmp byte ptr [esi+00000BD0],01
    "saintsrowthethird_dx11.exe"+69DF6E: 8D 86 88 06 00 00     -  lea eax,[esi+00000688]
    "saintsrowthethird_dx11.exe"+69DF74: 0F 95 C1              -  setne cl
    "saintsrowthethird_dx11.exe"+69DF77: F3 0F 5A C0           -  cvtss2sd xmm0,xmm0
    "saintsrowthethird_dx11.exe"+69DF7B: F3 0F 5A C9           -  cvtss2sd xmm1,xmm1
    "saintsrowthethird_dx11.exe"+69DF7F: F2 0F 5E C1           -  divsd xmm0,xmm1
    "saintsrowthethird_dx11.exe"+69DF83: F2 0F 5A C0           -  cvtsd2ss xmm0,xmm0
    }

     

    Нужны такие функции,  cmp [CarPayarGang],0   если не равно то сначала cmp [ebx+E4],1 если равно то адрес [ebx+04] записать в адрес [ebx+0С]  далее снова сравнение но с другим флагом cmp, [CarEnemiesGang],0 если не равно то опять таки сравнение фильтра cmp [ebx+E4],1 если не равно, то здесь тоже сравнить адрес  [ebx+04] с адресом  [ebx+0С]  если не равно то mov  [ebx+0С],0. заранее благодарю всех кто подскажет.

  15. 9 часов назад, Alex2411 сказал:

    очень не красиво  так делать

    Согласен держи от меня компенсацию, а кто поставил пускай тому будет стыдно. Даже если новичок ответил глупо, на это надо быть снисходительным, не прав поправьте.

    • Смешно 1
    • Зачем оно здесь? 1
  16. Аоткуда при копировании берутся эти левые символы, которые поначалу меня с толку сбили, в скрипте игоря их не было.

    Спойлер

    LISNIIE-SIMVOLYf2f36e1c0393aa65.jpg

     

     

     

    16 часов назад, Alex2411 сказал:

    разве не так

    Ты видео смотрел? Всё работает как надо!

     

    16 часов назад, Alex2411 сказал:

     

     

    так а в чем я не прав можешь объяснить ?
    когда число меньше ноля  например  FFFFFFFE , то оно будет  считаться больше 5 если ты делаешь сравнение без знака как у тебя в скрипте . получаеться сравнение с 0 можно убрать  оно не чего не решает . разве не так ?

    Решает, не позволяет адресу быть меньше нуля, а это предотвращает вылет игры.

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

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

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