Dragon Quest XI (Steam)

Upload your cheat tables here (No requests)
Zagaroth
Noobzor
Noobzor
Posts: 13
Joined: Sun Feb 04, 2018 3:40 am
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by Zagaroth »

I figured it out, there seems to be Three versions of Cheat Engine 6.8.2, I needed to specify the 64 bit version and everything worked correctly. One of the other two versions says it is 32 bit, and the third version doesn't state anything other than the version number. That third one was the one I was using previously.

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

Allen1013
Expert Cheater
Expert Cheater
Posts: 113
Joined: Thu Mar 02, 2017 11:11 pm
Reputation: 19

Re: Dragon Quest XI (Steam)

Post by Allen1013 »

Cant get the table to active at all :( Anyone have the same issue?

*tried it will the 64 and 32 version like the previous poster and nothing. I hate these casino games.

vnilsbke
What is cheating?
What is cheating?
Posts: 2
Joined: Wed Jan 23, 2019 12:44 am
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by vnilsbke »

Hi !
First of all I'd like to thank you for you precious work.
Though I was wondering if you could tell me which method you did use to find the pointers for draconian quest. Since I use a moded version of the game, it seems cheat engine is not able to find the memory values :/
Hope you can help, thanks in advance

DrummerIX
ViP
ViP
Posts: 2930
Joined: Wed Mar 22, 2017 6:15 pm
Reputation: 3220

Re: Dragon Quest XI (Steam)

Post by DrummerIX »

vnilsbke wrote:
Wed Jan 23, 2019 12:46 am
Hi !
First of all I'd like to thank you for you precious work.
Though I was wondering if you could tell me which method you did use to find the pointers for draconian quest. Since I use a moded version of the game, it seems cheat engine is not able to find the memory values :/
Hope you can help, thanks in advance
You have some draconian quests active and search for array of bytes with 1 for when it's active according to the layout of the structure I found. Place 0 where those options are off. The structure is defined in the cheat table (what byte corresponds to what draconian quest. Then you go to a church and turn off one and then search again changing the 1 to a 0. After couple of searches you should have the address where it begins. Then I did pointer scan on that address.

vnilsbke
What is cheating?
What is cheating?
Posts: 2
Joined: Wed Jan 23, 2019 12:44 am
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by vnilsbke »

Thank you very much for your precise answer, though I'm afraid I'm not advanced enough in CE/disassembling to do that ^^
Still I managed to find addresses which activate no flee and shypox when value is turned to 1

Code: Select all

<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>4538</ID>
      <Description>"NoFlee"</Description>
      <LastState Value="1" RealAddress="30CBFBE8"/>
      <VariableType>4 Bytes</VariableType>
      <Address>30CBFBE8</Address>
    </CheatEntry>
    <CheatEntry>
      <ID>4532</ID>
      <Description>"ShyPox"</Description>
      <LastState Value="1" RealAddress="30CBFBEC"/>
      <VariableType>4 Bytes</VariableType>
      <Address>30CBFBEC</Address>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Any insight on how I can progress from there, with only profane knowledge of assembler and memory analysis ?
Edit: I am only looking for harder monsters btw

User avatar
Neverbliss
Novice Cheater
Novice Cheater
Posts: 16
Joined: Sun May 06, 2018 4:44 pm
Reputation: 7

Re: Dragon Quest XI (Steam)

Post by Neverbliss »

Cielos wrote:
Tue Dec 11, 2018 12:07 pm
EDIT:
added 2 more scripts, made them under the enable script, it included an aobscan lua script made by [Link].
EDIT2:
added ignore materials.
///

made a few scripts for the game, copy&paste the following ONto your table:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>13000</ID>
      <Description>"enable"</Description>
      <Options moHideChildren="1"/>
      <LastState Activated="1"/>
      <Color>FF0000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
//aobscan lua by vng21092
//https://forum.cheatengine.org/viewtopic.php?t=584799
{$lua}

function lua_aobscan(name,module,bytes,index)
  index = index - 1
  if(module == "") then
    local resultSet = AOBScan(bytes)
      if(resultSet == nil) then
        unregisterSymbol(name)
        print(name.." not found")
      else
        unregisterSymbol(name)
        registerSymbol(name,resultSet[index])
        resultSet.destroy()
      end
  else
    if(getModuleSize(module) == nil) then
      print("Module "..module.." not found")
    else
      local memScanner = createMemScan()
      local memFoundList = createFoundList(memScanner)
      memScanner.firstScan(
        soExactValue,vtByteArray,rtRounded,bytes,nil,
        getAddress(module),(getAddress(module)+getModuleSize(module)),"",
        fsmNotAligned,"",true,false,false,false)
      memScanner.waitTillDone()
      memFoundList.initialize()
        if(memFoundList.Count == 0) then
          unregisterSymbol(name)
          print(name.." in module "..module.." not found")
        else
          unregisterSymbol(name)
          registerSymbol(name,memFoundList.Address[index])
        end
      memScanner.destroy()
      memFoundList.destroy()
    end
  end
end
{$asm}

 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>12974</ID>
          <Description>"walk key"</Description>
          <Options moHideChildren="1"/>
          <LastState Activated="1"/>
          <Color>FF0000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(walkkeyiddefault,05)

aobscanmodule(sd1WritesAOB,DRAGON QUEST XI.exe,75 03 0F 57 ** F3 0F ** ** ** ** ** ** E9 ** ** ** ** 4C)
registersymbol(sd1WritesAOB)

label(bWalkKeyID)
registersymbol(bWalkKeyID)
label(bWalkKeyPressed)
registersymbol(bWalkKeyPressed)

alloc(newmem,2048,sd1WritesAOB+5) //"DRAGON QUEST XI.exe"+A3D88F0)
label(returnhere)
label(originalcode_walkkey)
registersymbol(originalcode_walkkey)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov rax,bWalkKeyPressed
cmp byte ptr [rax],1
jne @f
mulss xmm1,[rax+4]

end:
pop rax

originalcode_walkkey:
readmem(sd1WritesAOB+5,8)
//movss [rcx+00000F80],xmm1

exit:
jmp returnhere

///
bWalkKeyID:
dd walkkeyiddefault
bWalkKeyPressed:
dd 1
dMMult:
dd (float)0.3
///

sd1WritesAOB+5: //"DRAGON QUEST XI.exe"+A3D88F0:
jmp newmem
nop
nop
nop
returnhere:

///*****************************************///
aobscanmodule(sd2WritesAOB,DRAGON QUEST XI.exe,75 03 0F 57 ** F3 0F ** ** ** ** ** ** E9 ** ** ** ** F7)
registersymbol(sd2WritesAOB)

alloc(newmem2,2048,sd2WritesAOB+5) //"DRAGON QUEST XI.exe"+A3D9600)
label(returnhere2)
label(originalcode2_walkkey)
registersymbol(originalcode2_walkkey)
label(exit2)

newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov rax,bWalkKeyPressed
cmp byte ptr [rax],1
jne @f
mulss xmm1,[rax+4]

end2:
pop rax

originalcode2_walkkey:
readmem(sd2WritesAOB+5,8)
//movss [rcx+00000F84],xmm1

exit2:
jmp returnhere2

///

sd2WritesAOB+5: //"DRAGON QUEST XI.exe"+A3D9600:
jmp newmem2
nop
nop
nop
returnhere2:

///*****************************************///
//modified from ShyTwig16's lua keylistener script
//http://fearlessrevolution.com/viewtopic.php?f=4&amp;t=6041&amp;start=60#p62657
{$lua}
local function walkkeyLuaThread(thread)
	local addr = getAddressSafe('bWalkKeyPressed')
	while RunWalkkeyLuaThread do
		if addr then
            if ( isKeyPressed( readInteger('bWalkKeyID') ) ) then
			    writeBytes(addr, 1)
            else
                writeBytes(addr, 0)
            end
		else
			addr = getAddressSafe('bWalkKeyPressed')
		end
	end
	thread.terminate()
--    while RunWalkkeyLuaThread do
--          if ( isKeyPressed(VK_CAPITAL) ) then
--              writeBytes("bWalkKeyPressed" ,1)
--          else
--              writeBytes("bWalkKeyPressed" ,0)
--          end
--    end
--    thread.terminate()
end
----------------------------------
if syntaxcheck then return end
RunWalkkeyLuaThread = true
createThread(walkkeyLuaThread)
{$asm}

///*****************************************///



 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
{$lua}
if syntaxcheck then return end
RunWalkkeyLuaThread = false
{$asm}

///*****************************************///
dealloc(newmem)
sd1WritesAOB+5: //"DRAGON QUEST XI.exe"+A3D88F0:
readmem(originalcode_walkkey,8)
//db F3 0F 11 89 80 0F 00 00
//Alt: movss [rcx+00000F80],xmm1
unregistersymbol(originalcode_walkkey)

unregistersymbol(bWalkKeyID)
unregistersymbol(bWalkKeyPressed)

///*****************************************///
dealloc(newmem2)
sd2WritesAOB+5: //"DRAGON QUEST XI.exe"+A3D9600:
readmem(originalcode2_walkkey,8)
//db F3 0F 11 89 84 0F 00 00
//Alt: movss [rcx+00000F84],xmm1
unregistersymbol(originalcode2_walkkey)

///*****************************************///
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>12972</ID>
              <Description>"key"</Description>
              <Options moHideChildren="1"/>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
</DropDownList>
              <LastState Value="05" RealAddress="1542F0030"/>
              <ShowAsHex>1</ShowAsHex>
              <Color>008000</Color>
              <VariableType>Byte</VariableType>
              <Address>bWalkKeyID</Address>
              <CheatEntries>
                <CheatEntry>
                  <ID>12973</ID>
                  <Description>""</Description>
                  <LastState Value="0" RealAddress="1542F0034"/>
                  <VariableType>Byte</VariableType>
                  <Address>+4</Address>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>12983</ID>
                      <Description>""</Description>
                      <LastState Value="0.3000000119" RealAddress="1542F0038"/>
                      <VariableType>Float</VariableType>
                      <Address>+4</Address>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>12999</ID>
          <Description>"ignore gold"</Description>
          <LastState Activated="1"/>
          <Color>FF0000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
/*
{$lua}

function lua_aobscan(name,module,bytes,index)
  index = index - 1
  if(module == "") then
    local resultSet = AOBScan(bytes)
      if(resultSet == nil) then
        unregisterSymbol(name)
        print(name.." not found")
      else
        unregisterSymbol(name)
        registerSymbol(name,resultSet[index])
        resultSet.destroy()
      end
  else
    if(getModuleSize(module) == nil) then
      print("Module "..module.." not found")
    else
      local memScanner = createMemScan()
      local memFoundList = createFoundList(memScanner)
      memScanner.firstScan(
        soExactValue,vtByteArray,rtRounded,bytes,nil,
        getAddress(module),(getAddress(module)+getModuleSize(module)),"",
        fsmNotAligned,"",true,false,false,false)
      memScanner.waitTillDone()
      memFoundList.initialize()
        if(memFoundList.Count == 0) then
          unregisterSymbol(name)
          print(name.." in module "..module.." not found")
        else
          unregisterSymbol(name)
          registerSymbol(name,memFoundList.Address[index])
        end
      memScanner.destroy()
      memFoundList.destroy()
    end
  end
end
{$asm}
*/
aobscanmodule(goldRead1AOB,DRAGON QUEST XI.exe,C3 8B 43 ** 48 ** ** ** 5B C3)
registersymbol(goldRead1AOB)

label(pShopInvC)
registersymbol(pShopInvC)

alloc(newmem,2048,goldRead1AOB+1) //"DRAGON QUEST XI.exe"+A95D53E)
label(returnhere)
label(originalcode_ignoregold)
registersymbol(originalcode_ignoregold)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rcx

mov rax,ffff
not rax
mov rcx,rax
and rax,r14
and rcx,rsp
cmp rcx,rax
je @f

mov rcx,pShopInvC

mov rax,fff
not rax
and rax,r14
mov [rcx],rax
mov byte ptr [rcx+8],1

@@:
pop rcx

originalcode_ignoregold:
readmem(goldRead1AOB+1,7)
//mov eax,[rbx+50]
//add rsp,20

exit:
jmp returnhere

///
pShopInvC:
///

goldRead1AOB+1: //"DRAGON QUEST XI.exe"+A95D53E:
jmp newmem
nop
nop
returnhere:

///******************************************///
luaCall(lua_aobscan("someMaxValueWriteAOB","DRAGON QUEST XI.exe","57 ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **E8 ** ** ** ** 48 ** ** ** ** 89 06 48 ** ** ** ** 48 ** ** ** 5F C3",4))

alloc(newmem3,2048,someMaxValueWriteAOB+a3) //"DRAGON QUEST XI.exe"+2520F2D)
label(returnhere3)
label(originalcode3_ignoregold)
registersymbol(originalcode3_ignoregold)
label(exit3)

newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx

mov rbx,pShopInvC
cmp byte ptr [rbx+8],1
jne @f
mov byte ptr [rbx+8],0

mov rdi,fff
not rdi
and rdi,rsi
cmp [rbx],rdi
jne @f
cmp eax,#99
jge @f
mov eax,#99

@@:
pop rbx

originalcode3_ignoregold:
readmem(someMaxValueWriteAOB+a3,7)
//mov [rsi],eax
//mov rsi,[rsp+48]

exit3:
jmp returnhere3

///

someMaxValueWriteAOB+a3: //"DRAGON QUEST XI.exe"+2520F2D:
jmp newmem3
nop
nop
returnhere3:

///******************************************///
aobscanmodule(goldWriteOnDecAOB,DRAGON QUEST XI.exe,8B ** ** 48 ** ** 39 D0 7C)
registersymbol(goldWriteOnDecAOB)

alloc(newmem6,2048,goldWriteOnDecAOB) //"DRAGON QUEST XI.exe"+A92EF25)
label(returnhere6)
label(originalcode6_ignoregold)
registersymbol(originalcode6_ignoregold)
label(exit6)

newmem6: //this is allocated memory, you have read,write,execute access
//place your code here
readmem(goldWriteOnDecAOB,3)
//mov eax,[rcx+50]
readmem(goldWriteOnDecAOB+a,2)
//sub eax,edx
jns @f
db 89 51
readmem(goldWriteOnDecAOB+2,1)
//mov [rcx+50],edx

originalcode6_ignoregold:
readmem(goldWriteOnDecAOB,6)
//mov eax,[rcx+50]
//mov rbx,rcx

exit6:
jmp returnhere6

///

goldWriteOnDecAOB: //"DRAGON QUEST XI.exe"+A92EF25:
jmp newmem6
nop
returnhere6:

///******************************************///




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
goldRead1AOB+1: //"DRAGON QUEST XI.exe"+A95D53E:
readmem(originalcode_ignoregold,7)
//db 8B 43 50 48 83 C4 20
//Alt: mov eax,[rbx+50]
//Alt: add rsp,20
unregistersymbol(originalcode_ignoregold)

unregistersymbol(pShopInvC)

///******************************************///
dealloc(newmem3)
someMaxValueWriteAOB+a3: //"DRAGON QUEST XI.exe"+2520F2D:
readmem(originalcode3_ignoregold,7)
//db 89 06 48 8B 74 24 48
//Alt: mov [rsi],eax
//Alt: mov rsi,[rsp+48]
unregistersymbol(originalcode3_ignoregold)

///******************************************///
dealloc(newmem6)
goldWriteOnDecAOB: //"DRAGON QUEST XI.exe"+A92EF25:
readmem(originalcode6_ignoregold,6)
//db 8B 41 50 48 89 CB
//Alt: mov eax,[rcx+50]
//Alt: mov rbx,rcx
unregistersymbol(originalcode6_ignoregold)

///******************************************///
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>13008</ID>
          <Description>"ignore skill points"</Description>
          <Options moHideChildren="1"/>
          <LastState Activated="1"/>
          <Color>FF0000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(hSkillPWriteInCharBuildMenuAOB,DRAGON QUEST XI.exe,E8 ** ** 35 F1 89 03 48 ** ** ** 5B C3)
registersymbol(hSkillPWriteInCharBuildMenuAOB)

label(pSkillP)
registersymbol(pSkillP)
label(pHSkillP)
registersymbol(pHSkillP)

alloc(newmem,2048,hSkillPWriteInCharBuildMenuAOB+5) //"DRAGON QUEST XI.exe"+F4BE062)
label(returnhere)
label(originalcode_ignoreskillp)
registersymbol(originalcode_ignoreskillp)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov [rbx],eax
push rbx
mov rbx,pHSkillP
pop [rbx]
mov rbx,pSkillP
mov [rbx],rcx

@@:
add rsp,20
jmp exit

originalcode_ignoreskillp:
readmem(hSkillPWriteInCharBuildMenuAOB+5,6)
//mov [rbx],eax
//add rsp,20

exit:
jmp returnhere

///
pSkillP:
dq 0
pHSkillP:
dq 0
///

hSkillPWriteInCharBuildMenuAOB+5: //"DRAGON QUEST XI.exe"+F4BE062:
jmp newmem
nop
returnhere:

///****************************************///
aobscanmodule(someFlagSetLAOB,DRAGON QUEST XI.exe,E8 ** 18 B8 FF 48 ** ** ** ** 88 06 48 ** ** ** ** 48 ** ** ** 5F C3)
registersymbol(someFlagSetLAOB)

alloc(newmem2,2048,someFlagSetLAOB+a) //"DRAGON QUEST XI.exe"+2549CED)
label(returnhere2)
label(originalcode2_ignoreskillp)
registersymbol(originalcode2_ignoreskillp)
label(exit2)

newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
mov rdi,pHSkillP
cmp [rdi],r10
push 0
pop [rdi]
jne @f
mov al,1

originalcode2_ignoreskillp:
readmem(someFlagSetLAOB+a,7)
//mov [rsi],al
//mov rsi,[rsp+48]

exit2:
jmp returnhere2

///

someFlagSetLAOB+a: //"DRAGON QUEST XI.exe"+2549CED:
jmp newmem2
nop
nop
returnhere2:

///****************************************///




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
hSkillPWriteInCharBuildMenuAOB+5: //"DRAGON QUEST XI.exe"+F4BE062:
readmem(originalcode_ignoreskillp,6)
//db 89 03 48 83 C4 20
//Alt: mov [rbx],eax
//Alt: add rsp,20
unregistersymbol(originalcode_ignoreskillp)

unregistersymbol(pSkillP)
unregistersymbol(pHSkillP)

///****************************************///
dealloc(newmem2)
someFlagSetLAOB+a: //"DRAGON QUEST XI.exe"+2549CED:
readmem(originalcode2_ignoreskillp,7)
//db 88 06 48 8B 74 24 48
//Alt: mov [rsi],al
//Alt: mov rsi,[rsp+48]
unregistersymbol(originalcode2_ignoreskillp)

///****************************************///
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>13011</ID>
              <Description>""</Description>
              <Options moHideChildren="1"/>
              <LastState Value="" RealAddress="00000000"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>13009</ID>
                  <Description>"earned"</Description>
                  <LastState Value="10" RealAddress="8B9F8024"/>
                  <Color>0000FF</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>pSkillP</Address>
                  <Offsets>
                    <Offset>a4</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>13010</ID>
                  <Description>"spent"</Description>
                  <LastState Value="8" RealAddress="8B9F8028"/>
                  <Color>0000FF</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>pSkillP</Address>
                  <Offsets>
                    <Offset>a8</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>13015</ID>
          <Description>"ignore materials"</Description>
          <LastState Activated="1"/>
          <Color>FF0000</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(materialsChkOnForgeMenuRefreshAOB,DRAGON QUEST XI.exe,48 ** ** E8 ** ** ** ** 39 ** 7C ** FF ** 83 ** ** 0F 8C )
registersymbol(materialsChkOnForgeMenuRefreshAOB)

alloc(originalcode_ignorematerials,8,materialsChkOnForgeMenuRefreshAOB+a)
registersymbol(originalcode_ignorematerials)

originalcode_ignorematerials:
readmem(materialsChkOnForgeMenuRefreshAOB+a,2)

///

materialsChkOnForgeMenuRefreshAOB+a: //"DRAGON QUEST XI.exe"+B6E9C85:
db 90 90


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
materialsChkOnForgeMenuRefreshAOB+a: //"DRAGON QUEST XI.exe"+B6E9C85:
readmem(originalcode_ignorematerials,2)
//db 7C 24
//Alt: jl "DRAGON QUEST XI.exe"+B6E9CAB
dealloc(originalcode_ignorematerials)
unregistersymbol(originalcode_ignorematerials)
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>
Can you please add clear instructions how to add your scripts? I've been struggling endlessly getting them onto my table. I always get "not all code is injectable" so maybe I'm doing something wrong here.

User avatar
fmalust
Cheater
Cheater
Posts: 43
Joined: Thu May 04, 2017 12:10 am
Reputation: 2

Re: Dragon Quest XI (Steam)

Post by fmalust »

Hello everyone! Just wanted to drop in and share an amazing code pox shared with me (that I requested back in November! Greatest guy ever for making the time! ^^) It's a code to re-arrange, add and remove party members, a code I request so I could play through the game once more with either Sylvando, Veronica, Serena or Jade replacing the Hero. =P

The only thing that sucks is that the code adds them at their default stats of when they first originally join, which can be changed via the other codes provided in this thread. You just can't change their level however, which I've tried to figure out on my own but failed miserably (only tried it twice with minimal time put in, may try again when I get the chance). Hope you all enjoy the code as much as I'm going to!

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
  <CheatEntries>
    <CheatEntry>
      <ID>1132</ID>
      <Description>"Party Modifier"</Description>
      <Options moHideChildren="1"/>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(PartyAOB,DRAGON QUEST XI.exe,41 8B 2C 04 48 63 46 70) // should be unique
alloc(newmem,$1000,"DRAGON QUEST XI.exe"+AA2D8D4)

label(code)
label(return)
label(partyData)
registersymbol(partyData)

newmem:

code:
  mov ebp,[r12+rax]
  mov [partyData],rax
  movsxd  rax,dword ptr [rsi+70]
  jmp return
  partyData:

PartyAOB:
  jmp newmem
  nop
  nop
  nop
return:
registersymbol(PartyAOB)

[DISABLE]

PartyAOB:
  db 41 8B 2C 04 48 63 46 70

unregistersymbol(PartyAOB)
unregistersymbol(partyData)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "DRAGON QUEST XI.exe"+AA2D8D4

"DRAGON QUEST XI.exe"+AA2D8B0: 83 BE 80 00 00 00 00  -  cmp dword ptr [rsi+00000080],00
"DRAGON QUEST XI.exe"+AA2D8B7: 7E 5F                 -  jle "DRAGON QUEST XI.exe"+AA2D918
"DRAGON QUEST XI.exe"+AA2D8B9: 4D 89 FC              -  mov r12,r15
"DRAGON QUEST XI.exe"+AA2D8BC: 0F 1F 40 00           -  nop [rax+00]
"DRAGON QUEST XI.exe"+AA2D8C0: 45 84 C0              -  test r8l,r8l
"DRAGON QUEST XI.exe"+AA2D8C3: 75 07                 -  jne "DRAGON QUEST XI.exe"+AA2D8CC
"DRAGON QUEST XI.exe"+AA2D8C5: 41 83 7E 08 04        -  cmp dword ptr [r14+08],04
"DRAGON QUEST XI.exe"+AA2D8CA: 7D 4C                 -  jnl "DRAGON QUEST XI.exe"+AA2D918
"DRAGON QUEST XI.exe"+AA2D8CC: 48 8B 46 78           -  mov rax,[rsi+78]
"DRAGON QUEST XI.exe"+AA2D8D0: 48 8B 5E 68           -  mov rbx,[rsi+68]
// ---------- INJECTING HERE ----------
"DRAGON QUEST XI.exe"+AA2D8D4: 41 8B 2C 04           -  mov ebp,[r12+rax]
"DRAGON QUEST XI.exe"+AA2D8D8: 48 63 46 70           -  movsxd  rax,dword ptr [rsi+70]
// ---------- DONE INJECTING  ----------
"DRAGON QUEST XI.exe"+AA2D8DC: 48 8D 34 C3           -  lea rsi,[rbx+rax*8]
"DRAGON QUEST XI.exe"+AA2D8E0: 48 39 F3              -  cmp rbx,rsi
"DRAGON QUEST XI.exe"+AA2D8E3: 74 1E                 -  je "DRAGON QUEST XI.exe"+AA2D903
"DRAGON QUEST XI.exe"+AA2D8E5: 48 8B 3B              -  mov rdi,[rbx]
"DRAGON QUEST XI.exe"+AA2D8E8: 48 89 F9              -  mov rcx,rdi
"DRAGON QUEST XI.exe"+AA2D8EB: E8 E0 18 BD F5        -  call "DRAGON QUEST XI.exe"+5FF1D0
"DRAGON QUEST XI.exe"+AA2D8F0: 39 E8                 -  cmp eax,ebp
"DRAGON QUEST XI.exe"+AA2D8F2: 74 44                 -  je "DRAGON QUEST XI.exe"+AA2D938
"DRAGON QUEST XI.exe"+AA2D8F4: 48 83 C3 08           -  add rbx,08
"DRAGON QUEST XI.exe"+AA2D8F8: 48 39 F3              -  cmp rbx,rsi
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1133</ID>
          <Description>"Slot 1"</Description>
          <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:Main Character
1:Erik
2:Veronica
3:Serena
4:Sylvando
5:Jade
6:Rab
7:Hendrik
</DropDownList>
          <VariableType>4 Bytes</VariableType>
          <Address>partyData</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>1136</ID>
          <Description>"Slot 2"</Description>
          <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:Main Character
1:Erik
2:Veronica
3:Serena
4:Sylvando
5:Jade
6:Rab
7:Hendrik
</DropDownList>
          <VariableType>4 Bytes</VariableType>
          <Address>partyData</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>1135</ID>
          <Description>"Slot 3"</Description>
          <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:Main Character
1:Erik
2:Veronica
3:Serena
4:Sylvando
5:Jade
6:Rab
7:Hendrik
</DropDownList>
          <VariableType>4 Bytes</VariableType>
          <Address>partyData</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>1134</ID>
          <Description>"Slot 4"</Description>
          <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:Main Character
1:Erik
2:Veronica
3:Serena
4:Sylvando
5:Jade
6:Rab
7:Hendrik
</DropDownList>
          <VariableType>4 Bytes</VariableType>
          <Address>partyData</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
</CheatTable>

lahma
Noobzor
Noobzor
Posts: 7
Joined: Thu May 09, 2019 9:22 am
Reputation: 8

Re: Dragon Quest XI (Steam)

Post by lahma »

For those having problems with the Draconian Quest cheats in the AWESOME cheat table provided by DrummerIX, you can try this modified table that I created. For whatever reason, the Draconian Quest cheats were not working for me either, so I modified some of the offsets and what not to get it working. Honestly, its been awhile since I did it, so I don't remember exactly what I changed to fix it, but it is still working great for me, so give my table a shot if you are having problems with the ones in the table provided by DrummerIX.

I am using the orchestral mod as well as SpecialK, so that may be the reason I had to change the offsets to make it work for me (or it may be completely unrelated and instead it may come down to the version of the game I'm using). No harm in trying it out though... as I know the feeling of regret that comes with not having enabled any of the Draconian flags from the start. You get to a certain point in the game and realize things are WAY too easy yet you can't imagine starting the game completely over just to enable them.

Note: ALL credit goes to DrummerIX for creating the original code. I just made some simple modifications to make it work on my particular setup.
DRAGON QUEST XI.DraconianQuestFlagsOnly.CT
ONLY DraconianQuestFlags Cheats
(4.48 KiB) Downloaded 81 times

Ender
What is cheating?
What is cheating?
Posts: 3
Joined: Wed May 22, 2019 10:19 pm
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by Ender »

Can someone explain to me how to use this? I am trying to activate the Draconian Quest hard mode flags. I downloaded Cheat Engine, loaded up the game, pointed to the process, loaded several of the tables here, and then clicked on the square next to some flags that then became X's. Nothing seemed to work. I use the Orchestral Overhaul mod as well, but I don't think that's messing with it. I think I just don't know how to use Cheat Engine. Help would be very much appreciated.

timechaos69
Expert Cheater
Expert Cheater
Posts: 283
Joined: Wed Oct 18, 2017 4:23 am
Reputation: 38

Re: Dragon Quest XI (Steam)

Post by timechaos69 »

I believe you actually have to start the game. load it up and move around

Ender
What is cheating?
What is cheating?
Posts: 3
Joined: Wed May 22, 2019 10:19 pm
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by Ender »

I should've been clearer. I did get in-game and move around. I tried using the table in the post above mine. The Draconian Quest table specifically for orchestral overhaul. I can click on the first box 'enable script' but the box that shows afterwards 'Enable Draconian Quest flags' cannot be clicked (X'd).

Ender
What is cheating?
What is cheating?
Posts: 3
Joined: Wed May 22, 2019 10:19 pm
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by Ender »

Perhaps someone could just put this in an executable trainer for all of us having problems? Can't seem to make an .exe myself with the program. Something about icons and image file problems.

Mr. Alien
Cheater
Cheater
Posts: 37
Joined: Mon Jul 08, 2019 8:31 am
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by Mr. Alien »

DrummerIX wrote:
Sat Sep 08, 2018 4:55 pm
Okay, after trying to find something for always steal for awhile, I came up with a Set Max Stat Above 999. I default it to 2000. Just hit the option in the pointers section to apply it, but you can also change it to a number that you want. After you do this, set Erik's deftness stat to 2000 and there you have always steal. Enjoy! It doesn't save, but if you change you Other stats, it should automatically update when you set the option again on loading a game.
How did you do it, man? I want to hack over max stats for other games as well.

DrummerIX
ViP
ViP
Posts: 2930
Joined: Wed Mar 22, 2017 6:15 pm
Reputation: 3220

Re: Dragon Quest XI (Steam)

Post by DrummerIX »

Search for the maximum value in the code section of the game (Writable unchecked) and look at the code from the results returned is how I did it I think.

But that might not work on every game.

op2seb
What is cheating?
What is cheating?
Posts: 2
Joined: Sat Jul 27, 2019 9:53 pm
Reputation: 0

Re: Dragon Quest XI (Steam)

Post by op2seb »

Hello,

Can you add freeze time for race horse in Gallopolis ?
I don't find the way with CE and scan with increase value.

Or Have you a process to find it ?

Thank you.
Op2seb

Post Reply

Who is online

Users browsing this forum: Baidu [Spider], bladzedd, brandynxd, DotBot, Google Adsense [Bot], lunarmoonp90, sammypr123, SemrushBot, Shintomato, xduduhao