Your Chronicle
Re: Your Chronicle
Does anyone have a working LUA for this? I am not good at coding so I have no idea how to fix anything that was said in the few posts from above.
-
- Novice Cheater
- Posts: 19
- Joined: Sun Dec 24, 2017 6:13 am
- Reputation: 11
Re: Your Chronicle
I would love an updated version of this. Even for more mundane resources would be ducky. its soooo slow as vanilla
-
- Novice Cheater
- Posts: 18
- Joined: Tue Nov 28, 2017 1:17 pm
- Reputation: 4
Re: Your Chronicle
Would also like an update for this table.
Until now i have just got around with double and 4byte scans but a working table really is something else.
I really appreciate the work you guys are doing so thx in advance^^
Until now i have just got around with double and 4byte scans but a working table really is something else.
I really appreciate the work you guys are doing so thx in advance^^
-
- Novice Cheater
- Posts: 19
- Joined: Sun Dec 24, 2017 6:13 am
- Reputation: 11
Re: Your Chronicle
I attempted to use this and i am stilling getting a crash with "IReincarnationAction.ReincarnationAction failed to compile. "eduroner wrote: ↑Fri Aug 27, 2021 1:45 pmThanks Geo. Fixed and works for steam version:
Code: Select all
<?xml version="1.0" encoding="utf-8"?><CheatTable CheatEngineTableVersion="34"><CheatEntries><CheatEntry><ID>1</ID><Description>"Geo Stuff"</Description><Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/><VariableType>Auto Assembler Script</VariableType><AssemblerScript Async="1">{$lua} if syntaxcheck then return end [ENABLE] if not process or not enumModules()[1] then error("Process was not selected or is nil.") end local starttime=os.time() local count = 0 while not miMonoTopMenuItem or not miMonoTopMenuItem.miMonoActivate or miMonoTopMenuItem.miMonoActivate.Visible == false do count = count + 1 sleep(1) if count >= 5000 then return end end miDotNetInfoClick(miMonoTopMenuItem) if monopipe and monopipe.IL2CPP then if not monoSymbolList then error("Mono cannot enum symbols.") return end local MonoSymbolEnumTimeout=0 while (not monoSymbolList or monoSymbolList.FullyLoaded == nil or monoSymbolList.FullyLoaded == false) do MonoSymbolEnumTimeout=MonoSymbolEnumTimeout+1 if MonoSymbolEnumTimeout>20000 then break end sleep(1) end if (not monoSymbolList or monoSymbolList.FullyLoaded == nil or monoSymbolList.FullyLoaded == false) then error("Mono features are not working.") return end else local MonoSymbolEnumTimeout=0 while monoBase == nil or monobase == 0 or monopipe.Connected == false do MonoSymbolEnumTimeout=MonoSymbolEnumTimeout+1 if MonoSymbolEnumTimeout>20000 then break end sleep(1) end if monoBase==nil or monobase==0 or monopipe.Connected == false then error("Mono features are not working.") return end end if monopipe and monoBase then showMessage("Mono features are available.") end getLuaEngine().close() [DISABLE] {$asm} </AssemblerScript><CheatEntries><CheatEntry><ID>2</ID><Description>"Setup"</Description><Options moHideChildren="1" moManualExpandCollapse="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/><GroupHeader>1</GroupHeader><CheatEntries><CheatEntry><ID>3</ID><Description>"Create Global Classes/Fields/Methods"</Description><Options moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/><VariableType>Auto Assembler Script</VariableType><AssemblerScript Async="1">[ENABLE] {$lua} if syntaxcheck then return end local assemblyId = mono_getAssemblyFromName("Assembly-CSharp") if assemblyId then local imageId = mono_getImageFromAssembly(assemblyId) ModifyAllGlobalClassesFieldsMethods(imageId, false, false, true, true, true, {}, {}, {}) end assemblyId = mono_getAssemblyFromName("AnotherChronicle") if assemblyId then local imageId = mono_getImageFromAssembly(assemblyId) ModifyAllGlobalClassesFieldsMethods(imageId, false, false, false, true, true, {"Tree", "Utility", "QuestSpace", "NAdditionalEffect", "AHA_Domain", "AnnounceSectionNameSpace", "Envy"}, {"IEatAbilityCtrl", "Eat_Ability", "LevelEffect", "ISloth", "IShortcut", "IAutomatedShortcut", "Achievement", "ActionContainer", "CheckActions", "Formation", "IBulkDealing", "NextAlly_Target", "IBattleEffect", "IListLocation_BattleEffect", "IBattleUnitTarget", "IDeepCopy", "IBestiary", "ICompleteCondition", "IConsumeItem", "Dealing", "IDrop", "Ally", "BattleUnit", "Base_", "IDungeon", "IEnemy", "ISkill", "IBaseStats", "IMagStats", "IToReset", "IEffect", "ILevelFactor", "ISkillUICtrl", "IPartyTemplate", "Default_", "EnumCtrl", "FilterToggle", "OfflineBonusWriter", "FolderInfo", "IHighlight", "IAnnounce", "COMP_PACKER", "ISetSource", "IRestriction", "IComponent", "IDetail", "IInteractable", "IClick", "IHoverAction", "IToggleClick", "IOnlyAction", "ISetActive", "IReleaseComplete", "IPaid", "ICalculateMethod", "IFilter", "IJudgeToFilter", "Filter_Tag", "JudgeTagFilter", "FilteredSetActive", "ILevel", "IUICtrl", "ISliderAction", "IIncreaseAmount", "ICooldown", "IMonoSeparated", "INeed", "IStats", "ISentenceTranslator", "ILuckBonusInfo", "IMonthlyRewardInfo", "INew", "LevelOfflineUnit", "IOfflineBonus", "IInitCostFactor", "ICompleteEffefctFactor", "IIntervalFactor", "IWholeAmount", "IAgent", "IAgentAccepter", "IGetTime", "IRankUpFunction", "IResource", "IRight", "IRubyIteminfo", "Sorted_SetActive", "IChronicleInfo", "IHistory", "IUIState", "IUnlock", "Narou1", "IAnimation", "ILog", "Conditional", "IIdleAction", "SingletonPopUp", "ISeedsHolder", "saveClass", "SavableArray", "SaveManager", "SaveSelectManager", "ISaveLocation", "SaveElement", "ISaveExecutor", "SingletonMonoBehaviour", "UsefulMethod", "UsefulStatic", "Button_Tree", "TemplateList", "ForeignWords", "ICondition", "DLC", "IIntDateRepository", "IClearDateEvent", "GameEvent_Dungeon", "INamedValue", "IContainer"}, {"AscendedAction", "CreateSkillCombination"}) end assemblyId = mono_getAssemblyFromName("ACTk.Runtime") if assemblyId then local imageId = mono_getImageFromAssembly(assemblyId) ModifyAllGlobalClassesFieldsMethods(imageId, false, true, true, true, true, {"Genuine"}, {"ACTkDetectorBase", "KeepAliveBehaviour"}, {"crypt"}) end local assemblies = mono_enumAssemblies() for _, assembly in ipairs(assemblies) do local imageId = mono_getImageFromAssembly(assembly) local assemblyName = mono_image_get_name(imageId) ModifyAllGlobalClassesFieldsMethods(imageId, false, true, true, true, false, {"UniRx"}, {"ConfiguredValueTaskAwaiter", "Awaiter", "Entry", "ConditionalElement", "OnNextNotification", "Aggregate", "CombineLatest", "ContinueWith", "DistinctUntilChanged", "FromEventPattern", "FromEvent", "Last", "Pairwise", "Sample", "Scan", "Single", "Throttle", "TreeSubSet", "Node", "Slot", "Mutables", "GroupKeyData", "Boxed"}, {}) end local assemblyId = mono_getAssemblyFromName("mscorlib") if assemblyId then local imageId = mono_getImageFromAssembly(assemblyId) local classId = mono_image_findClass(imageId, "System", "IntPtr") if classId then local methodId = mono_class_findMethod(classId, "get_Size") if methodId then local addr = mono_compile_method(methodId) if not _System then _System = {} end if not _System.IntPtr then _System.IntPtr = {} end _System.IntPtr.get_Size = addr end end end unregisterSymbol("_System.IntPtr.size") autoAssemble([[ aobscanregion(_System.IntPtr.size,_System.IntPtr.get_Size,_System.IntPtr.get_Size+10,B8) registersymbol(_System.IntPtr.size) ]]) _System.IntPtr.size = readInteger(GetAddress("_System.IntPtr.size")+1) unregisterSymbol("_System.IntPtr.size") collectgarbage() {$asm} [DISABLE] {$lua} if syntaxcheck then return end local assemblyId = mono_getAssemblyFromName("Assembly-CSharp.dll") if assemblyId then local imageId = mono_getImageFromAssembly(assemblyId) ModifyAllGlobalClassesFieldsMethods(imageId, true, false, true, true, true, {}, {}, {}) end local assemblies = mono_enumAssemblies() for _, assembly in ipairs(assemblies) do local imageId = mono_getImageFromAssembly(assembly) local assemblyName = mono_image_get_name(imageId) ModifyAllGlobalClassesFieldsMethods(imageId, true, true, true) end if _System and _System.IntPtr then _System.IntPtr.size = nil end collectgarbage() {$asm} </AssemblerScript></CheatEntry></CheatEntries></CheatEntry><CheatEntry><ID>4</ID><Description>"Addresses"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><GroupHeader>1</GroupHeader><CheatEntries><CheatEntry><ID>5</ID><Description>"BASE"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><ShowAsSigned>0</ShowAsSigned><GroupHeader>1</GroupHeader><Address>BASE.staticAddress</Address><CheatEntries><CheatEntry><ID>6</ID><Description>"Main"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><ShowAsSigned>0</ShowAsSigned><GroupHeader>1</GroupHeader><Address>+0</Address><Offsets><Offset>0</Offset></Offsets><CheatEntries><CheatEntry><ID>7</ID><Description>"Rsc"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><ShowAsSigned>0</ShowAsSigned><GroupHeader>1</GroupHeader><Address>+Main.rsc</Address><Offsets><Offset>0</Offset></Offsets><CheatEntries><CheatEntry><ID>8</ID><Description>"Get Resource By Kind"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><VariableType>Auto Assembler Script</VariableType><AssemblerScript>[ENABLE] {$lua} if syntaxcheck then return end CreateStringInputForm("BASEMainRscResourcesResourceIndexByKind", "Choose Resource", "Input the Resource Type:", false, nil, nil, function(var, varName) local resourceKindArray = {"nothing", "exp", "action", "stamina", "mp", "fire", "water", "wind", "earth", "thunder", "ice", "light", "dark", "inspiration", "movement", "habit", "will", "gold", "destiny", "rune", "runeStone", "blessing", "woodenStatue", "goddessStatue", "stoneStatue", "statueOfMuscle", "seaBreezeAmulet", "shrine", "weed", "herb", "mandragora", "flower", "wreath", "medicine", "potion", "elixir", "spiritWater", "holyWater", "fairyDrop", "goddessBlessing", "wood", "firewood", "stone", "scrapMetal", "rareMetal", "steel", "mithril", "pelt", "leather", "durableLeather", "muddy_mucus", "dung", "manure", "stench", "smellySachet", "magicFiber", "dragonClaw", "dragonLiver", "physicalpoint", "magicalpoint", "specialpoint", "wheat", "bread", "mushroom", "apple", "slimeJelly", "wine", "fish", "salt", "olive", "honey", "milk", "butter", "egg", "beef", "pork", "chicken", "mysteriousMeat", "bakedApple", "beefSteak", "porkSteak", "chickenSteak", "meatFestival", "grilledFish", "anchovySandwich", "honeyToast", "honeyApple", "butterToast", "mushroomSaute", "creamStew", "meunier", "baconEgg", "iceCream", "dessertCarnival", "ruby", "sapphire", "emerald", "topaz", "rustySword", "holySword", "engagementRing", "artificialArm", "sin_gluttony", "sin", "guildPoint", "cactus", "palm", "elasticLeather", "desertSaute", "cactusSteak", "driedFruit", "warriorPoint", "sorcererPoint", "tamerPoint", "ePoint1", "ePoint2", "potato", "corn", "griffonFeather", "paper", "book", "bakedPotato", "cornSoup"} local address = readPointer(BASE.staticAddress) address = readPointer(address + Main.rsc) address = readPointer(address + ResourceCtrl.resources) local baseArrayAddr = address local count = readInteger(address + _System.IntPtr.size*3) local found = false local kind = var for i=0,count do address = readPointer(baseArrayAddr + i*_System.IntPtr.size + _System.IntPtr.size*4) if address and address > 0 then local kindIndex = readInteger(address + Resource.kind) + 1 if resourceKindArray[kindIndex] == kind then found = true formVariables[varName] = i break end end end if not found then formVariables[varName] = 0 showMessage("Resource Kind not found.") end end) {$asm} [DISABLE] {$lua} if syntaxcheck then return end formVariables.BASEMainRscResourcesResourceIndexByKind = nil {$asm} </AssemblerScript><CheatEntries><CheatEntry><ID>9</ID><Description>"Resource"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><ShowAsSigned>0</ShowAsSigned><GroupHeader>1</GroupHeader><Address>+ResourceCtrl.resources</Address><Offsets><Offset>0</Offset><Offset>+formVariables.BASEMainRscResourcesResourceIndexByKind*_System.IntPtr.size+_System.IntPtr.size*4</Offset></Offsets><CheatEntries><CheatEntry><ID>10</ID><Description>"Kind"</Description><DropDownList DescriptionOnly="1" DisplayValueAsItem="1">0:nothing 1:exp 2:action 3:stamina 4:mp 5:fire 6:water 7:wind 8:earth 9:thunder 10:ice 11:light 12:dark 13:inspiration 14:movement 15:habit 16:will 17:gold 18:destiny 19:rune 20:runeStone 21:blessing 22:woodenStatue 23:goddessStatue 24:stoneStatue 25:statueOfMuscle 26:seaBreezeAmulet 27:shrine 28:weed 29:herb 30:mandragora 31:flower 32:wreath 33:medicine 34:potion 35:elixir 36:spiritWater 37:holyWater 38:fairyDrop 39:goddessBlessing 40:wood 41:firewood 42:stone 43:scrapMetal 44:rareMetal 45:steel 46:mithril 47:pelt 48:leather 49:durableLeather 50:muddy_mucus 51:dung 52:manure 53:stench 54:smellySachet 55:magicFiber 56:dragonClaw 57:dragonLiver 58:physicalpoint 59:magicalpoint 60:specialpoint 61:wheat 62:bread 63:mushroom 64:apple 65:slimeJelly 66:wine 67:fish 68:salt 69:olive 70:honey 71:milk 72:butter 73:egg 74:beef 75:pork 76:chicken 77:mysteriousMeat 78:bakedApple 79:beefSteak 80:porkSteak 81:chickenSteak 82:meatFestival 83:grilledFish 84:anchovySandwich 85:honeyToast 86:honeyApple 87:butterToast 88:mushroomSaute 89:creamStew 90:meunier 91:baconEgg 92:iceCream 93:dessertCarnival 94:ruby 95:sapphire 96:emerald 97:topaz 98:rustySword 99:holySword 100:engagementRing 101:artificialArm 102:sin_gluttony 103:sin 104:guildPoint 105:cactus 106:palm 107:elasticLeather 108:desertSaute 109:cactusSteak 110:driedFruit 111:warriorPoint 112:sorcererPoint 113:tamerPoint 114:ePoint1 115:ePoint2 116:potato 117:corn 118:griffonFeather 119:paper 120:book 121:bakedPotato 122:cornSoup </DropDownList><ShowAsSigned>0</ShowAsSigned><VariableType>4 Bytes</VariableType><Address>+Resource.kind</Address></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry><CheatEntry><ID>11</ID><Description>"S"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><ShowAsSigned>0</ShowAsSigned><GroupHeader>1</GroupHeader><Address>+Main.S</Address><Offsets><Offset>0</Offset></Offsets><CheatEntries><CheatEntry><ID>12</ID><Description>"Get Current Resource By Kind"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><VariableType>Auto Assembler Script</VariableType><AssemblerScript>[ENABLE] {$lua} if syntaxcheck then return end CreateStringInputForm("BASEMainSCurrentResourceIndexByKind", "Choose Resource", "Input the Resource Type:", false, nil, nil, function(var, varName) local resourceKindArray = ResourceKind.enumTable local address = readPointer(BASE.staticAddress) address = readPointer(address + Main.S) address = readPointer(address + Save.current_resource) local baseArrayAddr = address local count = readInteger(address + _System.IntPtr.size*3) local found = false local kind = var for i=0,count do if resourceKindArray[i+1] == kind then found = true formVariables[varName] = i break end end if not found then formVariables[varName] = 0 showMessage("Resource Kind not found.") end end) {$asm} [DISABLE] {$lua} if syntaxcheck then return end formVariables.BASEMainSCurrentResourceIndexByKind = nil {$asm} </AssemblerScript><CheatEntries><CheatEntry><ID>13</ID><Description>"Value"</Description><ShowAsSigned>0</ShowAsSigned><VariableType>Double</VariableType><Address>+Save.current_resource</Address><Offsets><Offset>formVariables.BASEMainSCurrentResourceIndexByKind*8+_System.IntPtr.size*4</Offset></Offsets></CheatEntry></CheatEntries></CheatEntry><CheatEntry><ID>14</ID><Description>"Get Permanent Resource By Kind (Obscured)"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><VariableType>Auto Assembler Script</VariableType><AssemblerScript>[ENABLE] {$lua} if syntaxcheck then return end CreateStringInputForm("BASEMainSPermanentResourceActIndexByKind", "Choose Resource", "Input the Resource Type:", false, nil, nil, function(var, varName) local resourceKindArray = PermanentResourceKind.enumTable local address = readPointer(BASE.staticAddress) address = readPointer(address + Main.S) address = readPointer(address + Save.value_PermanentResource_act) local baseArrayAddr = address local count = readInteger(address + _System.IntPtr.size*3) local found = false local kind = var for i=0,count do if resourceKindArray[i+1] == kind then found = true formVariables[varName] = i break end end if not found then formVariables[varName] = 0 showMessage("Resource Kind not found.") end end) {$asm} [DISABLE] {$lua} if syntaxcheck then return end formVariables.BASEMainSPermanentResourceActIndexByKind = nil {$asm} </AssemblerScript><CheatEntries><CheatEntry><ID>15</ID><Description>"Value"</Description><ShowAsSigned>0</ShowAsSigned><VariableType>Double</VariableType><Address>+Save.value_PermanentResource_act</Address><Offsets><Offset>formVariables.BASEMainSPermanentResourceActIndexByKind*8*6+_System.IntPtr.size*4-CodeStage.AntiCheat.ObscuredTypes.ObscuredDouble.currentCryptoKey+CodeStage.AntiCheat.ObscuredTypes.ObscuredDouble.fakeValue</Offset></Offsets></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry><CheatEntry><ID>16</ID><Description>"Scripts"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><GroupHeader>1</GroupHeader><CheatEntries><CheatEntry><ID>17</ID><Description>"Permanent Resource Force Purchasable"</Description><Options moHideChildren="1" moDeactivateChildrenAsWell="1"/><VariableType>Auto Assembler Script</VariableType><AssemblerScript>[ENABLE] {$lua} if syntaxcheck then return end RegisterGlobalMethod("PermanentRsc_Dealing.CanPurchase") {$asm} aobscanregion(Permanent_Resource_Force_Purchasable,PermanentRsc_Dealing.CanPurchase,PermanentRsc_Dealing.CanPurchase+5000,66 * * * 0F 86 * * * * 33 C0 EB) Permanent_Resource_Force_Purchasable+04: db 90 E9 registersymbol(Permanent_Resource_Force_Purchasable) unregistersymbol(PermanentRsc_Dealing.CanPurchase) [DISABLE] Permanent_Resource_Force_Purchasable+04: db 0F 86 unregistersymbol(Permanent_Resource_Force_Purchasable) </AssemblerScript></CheatEntry></CheatEntries></CheatEntry></CheatEntries></CheatEntry></CheatEntries><UserdefinedSymbols/><LuaScript>function cycleFullCompact(sender, force) local state = not(compactMenuItem.Caption == 'Compact View') if force~=nil then state = not force end compactMenuItem.Caption = state and 'Compact View' or 'Full View' getMainForm().Splitter1.Visible = state getMainForm().Panel4.Visible = state getMainForm().Panel5.Visible = state end function addCompactMenu() if compactMenuItem and compactMenuItem.Exists then return end local menuItems = getMainForm().Menu.Items compactMenuItem = createMenuItem(menuItems) menuItems.add(compactMenuItem) compactMenuItem.Caption = 'Compact View' compactMenuItem.OnClick = cycleFullCompact compactMenuItem.Exists = true end addCompactMenu() function readIntegerSigned(addr) local val=readInteger(addr) local sign=bAnd(val,0x80000000) return sign==0 and val or val-0x100000000 end function readByteSigned(addr) local val=readBytes(addr, 1, false) local sign=bAnd(val,0x80) return sign==0 and val or val-0x100 end function mono_getAssemblyFromName(assemblyName) local assemblyIds = mono_enumAssemblies() if not assemblyIds then return nil end for _, assemblyId in ipairs(assemblyIds) do local imageId = mono_getImageFromAssembly(assemblyId) local name = mono_image_get_name(imageId) if name == assemblyName then return assemblyId end end return nil end function CreateGlobalDelimitedVariable(varString, delimiter, removeStrings) local var = _G if not delimiter then delimiter = '.' end local nameParts = {} for part in string.gmatch(varString, "([^" .. delimiter .. "]+)") do local partName = part if removeStrings then for i, rs in pairs(removeStrings) do partName = partName:gsub(rs, "") end end table.insert(nameParts, partName) end for i, part in ipairs(nameParts) do if not var[part] then var[part] = {} end var = var[part] end return var end function RegisterMonoMethodAddress(classNamespace, className, methodName, delimiter, createGlobal) if not delimiter then delimiter = '.' end local mId = mono_findMethod(classNamespace, className, methodName) if mId == 0 then mId = mono_findMethod("", className, methodName) local errorMsg = "Cannot find the " .. className .. delimiter .. methodName .. " method to register" if mId == 0 then error(errorMsg) end if classNamespace ~= string.match(mono_class_getFullName(mono_method_getClass(mId)), "(.*)[" .. delimiter .. "]") then error(errorMsg) end end local mAddr = mono_compile_method(mId) if mAddr then local symbolName = classNamespace .. delimiter .. className .. delimiter .. methodName if not classNamespace or classNamespace == '' then symbolName = className .. delimiter .. methodName end if createGlobal then if not classNamespace or classNamespace == '' then _G[className][methodName] = mAddr else local varName = classNamespace .. delimiter .. className local gVar = CreateGlobalDelimitedVariable(varName, delimiter) gVar[methodName] = mAddr end end unregisterSymbol(symbolName) registerSymbol(symbolName, mAddr, true) return mAddr end return nil end function RegisterGlobalMethod(varString, delimiter, removeStrings) if not delimiter then delimiter = '.' end if not varString:find(delimiter) then return end local methodName = string.match(varString, ".*[" .. delimiter .. "](.*)") local classFullName = string.match(varString, "(.*)[" .. delimiter .. "]") local className = classFullName local classNamespace = "" local baseVar = nil if classFullName:find("["..delimiter.."]") then className = string.match(classFullName, ".*[" .. delimiter .. "](.*)") classNamespace = string.match(classFullName, "(.*)[" .. delimiter .. "]") baseVar = CreateGlobalDelimitedVariable(classFullName, delimiter, removeStrings) else if not _G[classFullName] then _G[classFullName] = {} end baseVar = _G[classFullName] end unregisterSymbol(varString) if not baseVar[methodName] then RegisterMonoMethodAddress(classNamespace, className, methodName, delimiter, true) else registerSymbol(varString, baseVar[methodName], true) end end function ModifyAllGlobalClassesFieldsMethods(imageId, remove, safe, suppress, createFields, createMethods, excludedNamespaces, excludedClassNames, excludedMethodNames) if not imageId then return end local excludedClassIds = {} local classIds = mono_image_enumClasses(imageId) for i, class in ipairs(classIds) do if class.class and class.class > 0 then if not tableContainsValue(excludedClassIds, classId) then ModifyGlobalClassesFieldsMethods(class.class, imageId, remove, safe, suppress, createFields, createMethods, excludedNamespaces, excludedClassNames, excludedMethodNames) end table.insert(excludedClassIds, class.class) end end end function ModifyGlobalClassesFieldsMethods(classId, imageId, remove, safe, suppress, createFields, createMethods, excludedNamespaces, excludedClassNames, excludedMethodNames) if not classId or classId == 0 then return end if createFields == nil then createFields = true end if assemblyName == '' then assemblyName = nil end if not excludedClassIds then excludedClassIds = {} end local className = mono_class_getName(classId) local classFullName = mono_class_getFullName(classId) local classNamespace = mono_class_getNamespace(classId) local excluded = false local var = _G if (not classNamespace or classNamespace == '') and classFullName ~= className then classNamespace = string.match(classFullName, "(.*)[.]") end if classNamespace and classNamespace ~= '' then excluded = stringFoundInTable(classNamespace, excludedNamespaces) if excluded then return end classNamespace = classNamespace:gsub("^(System)", "_System") var = CreateGlobalDelimitedVariable(classNamespace, '.', {"`1", "`"}) else local nestedClassParentIdList = {} if mono_class_getNestingType then local nestedClassParentId = mono_class_getNestingType(classId) while nestedClassParentId and nestedClassParentId > 0 do table.insert(nestedClassParentIdList, 1, nestedClassParentId) nestedClassParentId = mono_class_getNestingType(classId) end end if nestedClassParentIdList[1] then classNamespace = mono_class_getNamespace(nestedClassParentIdList[1]) end for i, parentClassId in pairs(nestedClassParentIdList) do local parentClassName = mono_class_getName(parentClassId) parentClassName = parentClassName:gsub("`1", ""):gsub("`", "") if not var[parentClassName] then var[parentClassName] = {} end var = var[parentClassName] end end if not className then return end local classVarName = className:gsub("`1", ""):gsub("`", ""):gsub("<", ""):gsub(">", "") excluded = stringFoundInTable(className, excludedClassNames) if not excluded then if className:find("c__Iterator") or className:find("Enumerator") then excluded = true end end if remove or excluded then var[classVarName] = nil return end table.insert(excludedClassIds, classId) if var == _G and classVarName == "type" and type(var[classVarName]) == "function" then classVarName = "_" .. classVarName end if var[classVarName] and type(var[classVarName]) ~= "table" then var[classVarName] = nil end local domain = mono_enumDomains()[1] local staticFieldAddr = 0 if safe and className:find("[`<>]") then staticFieldAddr = 0 else staticFieldAddr = mono_class_getStaticFieldAddress(domain, classId) end if not staticFieldAddr and not suppress then print(className .. " failed to read static address.") end if not var[classVarName] then var[classVarName] = {} end var[classVarName].staticAddress = staticFieldAddr if createFields then CreateGlobalFields(classId, var, classVarName) end if createMethods then CreateGlobalMethods(classId, var, classVarName, className, classNamespace, excludedMethodNames, suppress) end end function CreateGlobalFields(classId, rootVar, className) for i, field in ipairs(mono_class_enumFields(classId, true)) do local fieldName = field.name if field.name:find("<") and field.name:find(">") then fieldName = string.match(field.name, "<(%w+)>") elseif field.name:find("[<>]") then fieldName = field.name:gsub("<", ""):gsub(">", "") end if not fieldName then fieldName = field.name end if fieldName ~= "" then rootVar[className][fieldName] = field.offset end local parentClass = mono_class_getParent(classId) if (field.monotype == MONO_TYPE_ENUM) or (parentClass and parentClass > 0 and mono_class_getFullName(parentClass) == "System.Enum") then if fieldName ~= "enumSeperatorCharArray" and fieldName ~= "enumSeperator" and fieldName ~= "value__" then if not rootVar[className].enumTable then rootVar[className].enumTable = {} end if not tableContainsValue(rootVar[className].enumTable, fieldName) then table.insert(rootVar[className].enumTable, fieldName) end end end end end function CreateGlobalMethods(classId, rootVar, className, oClassName, classNamespace, excludedMethodNames, suppress) for i, method in ipairs(mono_class_enumMethods(classId)) do excluded = stringFoundInTable(method.name, excludedMethodNames) if not excluded then local methodAddr = mono_compile_method(method.method) if (not methodAddr or methodAddr == 0) and not suppress then if classNamespace and classNamespace ~= '' then print(classNamespace .. '.' .. oClassName .. '.' .. method.name .. " failed to compile.") else print(oClassName .. '.' .. method.name .. " failed to compile.") end return end local methodName = method.name local count = 2 while rootVar[className][methodName] and rootVar[className][methodName] ~= methodAddr do methodName = method.name .. count count = count + 1 end rootVar[className][methodName] = methodAddr end end end function stringFoundInTable(str, strTable) if strTable and strTable ~= {} then for i, s in ipairs(strTable) do if str:lower():find(s:lower()) then return true end end end return false end function tableContainsValue(tbl, val) if tbl and tbl ~= {} then for _,v in pairs(tbl) do if v == val then return true end end end return false end function CreateStringInputForm(varName, formName, labelText, numbersOnly, width, height, func) width = width or 180 height = height or 80 if not formVariables then formVariables = {} end formVariables[varName] = nil local form = CreateBaseForm(formName, labelText, width, height) local text_box = createEdit(form) text_box.setTop(form.Height - 60) text_box.Width = form.Width - 20 text_box.anchorSideLeft.control=form text_box.anchorSideLeft.side=asrCenter local OK_Button = createButton(form) OK_Button.setTop(form.Height - 30) OK_Button.Width = form.Width - 20 OK_Button.Caption = 'OK' OK_Button.anchorSideLeft.control=form OK_Button.anchorSideLeft.side=asrCenter OK_Button.onClick = function() if numbersOnly == true then local num = tonumber(text_box.Text) if num then formVariables[varName] = num else formVariables[varName] = 0 end else formVariables[varName] = text_box.Text end if func then func(formVariables[varName], varName) end form.hide() end end function CreateDropdownForm(varName, itemArray, formName, labelText, width, height, func) if not formVariables then formVariables = {} end formVariables[varName] = nil local form = CreateBaseForm(formName, labelText, width, height) local slot_box = createComboBox(form) slot_box.setTop(form.Height - 30) slot_box.Width = form.Width - 20 slot_box.anchorSideLeft.control=form slot_box.anchorSideLeft.side=asrCenter for _, item in ipairs(itemArray) do slot_box.items.add(item) end slot_box.onChange = function() formVariables[varName] = slot_box.ItemIndex if func then func(formVariables[varName], varName, itemArray[hexItemIndex]) end form.hide() end end function CreateBaseForm(formName, labelText, width, height) width = width or 180 height = height or 50 local form = createForm() m=getmetatable(form) m.__autodestroy=true local label = createLabel(form) form.centerScreen() form.Width = width form.Height = height label.anchorSideLeft.control=form label.anchorSideLeft.side=asrCenter label.Width = form.Width - 20 control_setCaption(form, formName) control_setCaption(label, labelText) return form end </LuaScript></CheatTable>
i realize that this is the issue that everyones trying to solve over the last two pages.
But is there a way to seperate out the issues with reincarnation so that the rest of the table functions? I am but a complete novice, so im going to look it over to see what i can do. But obviously, you are all echelons above me. I wouldnt bet on me solving the issue.
- ApeDemon66
- Expert Cheater
- Posts: 226
- Joined: Sat Mar 03, 2018 7:31 am
- Reputation: 180
Re: Your Chronicle
Yea. My table is setup specifically to find and compile everything in the game and make it a lua variable to access in Cheat Engine. It's really overkill for what little is present in the table, but I do this because it makes everything else easier especially when adding new stuff to it. It could be designed to selectively use what's necessary in the table to avoid all the interface classes and what not that crashes it, but I didn't design it that way.Zoe Laroux wrote: ↑Mon Oct 11, 2021 11:37 pm... is there a way to seperate out the issues with reincarnation so that the rest of the table functions?
-
- Noobzor
- Posts: 5
- Joined: Sat Mar 21, 2020 5:36 am
- Reputation: 6
Re: Your Chronicle
Working version of Geo's table with:
-> Steam version 1.8.2.2 of Your Chronicle
-> Cheat Engine 7.2
Tutorial with couple of screenshots (A to I) thrown around for people having no idea where to start:
A-1) Download the table from this post (Your Chronicle 1.8.2.2 Geo Table.CT)
A-2) Start Your Chronicle, get the game going.
A-3) Start Cheat Engine 7.2
A-4) In CE, go to File/Open Process and select YourChronicle.exe from the list.
B-1) Go to File/Load and select the table you've downloaded previously.
C-1) Depending on your CE settings, a window might pop-up asking if it's okay to execute the lua script. Say YES.
D-1) You should now see "Geo Stuff" at the bottom of the CE window. Click on the square next to it.
E-1) A ".NET Info" window should appear with a bunch of stuff on the left side column, along with a pop-up saying Mono features are available. Click OK. (If the left side column is empty, close both the game and CE and start again. This happens from time to time.)
F-1) After clicking OK on the previous pop-up, Geo' script launches and there is a clock symbol running next to "Create Global Classes/Fields/Methods". A Lua Engine pop-up also appears with some stuff that didn't compile. Those should be the same as in the picture if you are using the 1.8.2.2 Table on the 1.8.2.2 game. They won't affect anything, but don't close the pop-up yet.
G-1) Let the clock symbol runs out until it changes into a X. Then close the Lua Engine pop-up.
H-1) If your game has not crashed yet, you are in business. Click the squares next to "Addresses", "BASE", "Main", "S".
H-2) Click the square next to "Get Current Resource by Kind" and a pop-up appears asking for resource type. Refer to Geo's post in page 1 of this thread for a list of all the resource names. I typed "gold" as an example.
I-1) On the Value line at the bottom, you can see that I had 195.28 gold at the time. You can double click on that number to change it to what you want, and then check the square next to Value to keep it at that amount.
-> Steam version 1.8.2.2 of Your Chronicle
-> Cheat Engine 7.2
Tutorial with couple of screenshots (A to I) thrown around for people having no idea where to start:
A-1) Download the table from this post (Your Chronicle 1.8.2.2 Geo Table.CT)
A-2) Start Your Chronicle, get the game going.
A-3) Start Cheat Engine 7.2
A-4) In CE, go to File/Open Process and select YourChronicle.exe from the list.
B-1) Go to File/Load and select the table you've downloaded previously.
C-1) Depending on your CE settings, a window might pop-up asking if it's okay to execute the lua script. Say YES.
D-1) You should now see "Geo Stuff" at the bottom of the CE window. Click on the square next to it.
E-1) A ".NET Info" window should appear with a bunch of stuff on the left side column, along with a pop-up saying Mono features are available. Click OK. (If the left side column is empty, close both the game and CE and start again. This happens from time to time.)
F-1) After clicking OK on the previous pop-up, Geo' script launches and there is a clock symbol running next to "Create Global Classes/Fields/Methods". A Lua Engine pop-up also appears with some stuff that didn't compile. Those should be the same as in the picture if you are using the 1.8.2.2 Table on the 1.8.2.2 game. They won't affect anything, but don't close the pop-up yet.
G-1) Let the clock symbol runs out until it changes into a X. Then close the Lua Engine pop-up.
H-1) If your game has not crashed yet, you are in business. Click the squares next to "Addresses", "BASE", "Main", "S".
H-2) Click the square next to "Get Current Resource by Kind" and a pop-up appears asking for resource type. Refer to Geo's post in page 1 of this thread for a list of all the resource names. I typed "gold" as an example.
I-1) On the Value line at the bottom, you can see that I had 195.28 gold at the time. You can double click on that number to change it to what you want, and then check the square next to Value to keep it at that amount.
- Attachments
-
- Your Chronicle 1.8.2.2 Geo Table.CT
- (36.03 KiB) Downloaded 547 times
-
- Novice Cheater
- Posts: 18
- Joined: Tue Nov 28, 2017 1:17 pm
- Reputation: 4
Re: Your Chronicle
Thx for the table.
Is there a way to edit multiple resources instead of just deactivate and activate again to change another resource?
Is there a way to edit multiple resources instead of just deactivate and activate again to change another resource?
Re: Your Chronicle
When I tried arkenstonish's method, my game crashed. Any suggested fixes?
Re: Your Chronicle
Same as tarjmov. Game updated now, and released a dlc, so this CT just crashes the game fully 100% of the time. Any chance of getting an update?
-
- Noobzor
- Posts: 5
- Joined: Sat Mar 21, 2020 5:36 am
- Reputation: 6
Re: Your Chronicle
Updated version of Geo's table with:
-> Steam version 1.8.3.1 of Your Chronicle
-> Cheat Engine 7.2
On a side note, there is a temporary "mimic event" currently in the game (up until Nov 15th). It's a new dungeon that consists of only 3 mimics (each one dropping a bronze/silver chest), with the caveat that you can only run it once a day. Since no one posted a way to modify the chest counter so far, maybe it would be easier for someone knowledgeable (definitely not me) to circumvent that daily timer and allow us to run that dungeon at will?!
Must be looked at quickly though, as event ends in 10 days. Thanks
-> Steam version 1.8.3.1 of Your Chronicle
-> Cheat Engine 7.2
On a side note, there is a temporary "mimic event" currently in the game (up until Nov 15th). It's a new dungeon that consists of only 3 mimics (each one dropping a bronze/silver chest), with the caveat that you can only run it once a day. Since no one posted a way to modify the chest counter so far, maybe it would be easier for someone knowledgeable (definitely not me) to circumvent that daily timer and allow us to run that dungeon at will?!
Must be looked at quickly though, as event ends in 10 days. Thanks
- Attachments
-
- Your Chronicle 1.8.3.1 Geo Table.CT
- (36.07 KiB) Downloaded 346 times
Re: Your Chronicle
I'm not sure if it is due to being a mac user or whether I'm doing something wrong but attempting to activate the geo script crashes my cheat engine (using CE73 and 1.8.3.1 of YourChronicle via steam) although the crash also happened on CE72 prior to updating.
The game is unaffected and I've been able to modify values using trial and error (although I did manage to wipe my ruby total with this method).
Failing being able to get the geo option working, is there a way of being able to locate the address for chests/rubies using simple scan/repeat options? Prior to wiping mine I'd tried byte (which I got an address for but could only modify 10s/units for my total) and byte4 and byte8 which is when I screwed myself... ignorance is bliss unless you are a bumbling idiot tampering with game code lol!
Thanks for any help
The game is unaffected and I've been able to modify values using trial and error (although I did manage to wipe my ruby total with this method).
Failing being able to get the geo option working, is there a way of being able to locate the address for chests/rubies using simple scan/repeat options? Prior to wiping mine I'd tried byte (which I got an address for but could only modify 10s/units for my total) and byte4 and byte8 which is when I screwed myself... ignorance is bliss unless you are a bumbling idiot tampering with game code lol!
Thanks for any help
Re: Your Chronicle
I dont't know what I do wrong but I do exactly what say arkenstonish step by step and at step F after I close the window by clicking ok, Lua Engine don't pop up and I continue the clock turn after 1hour and more and never stop and if i continue the step at the end I get a error : Failed to create win32 control, error: 1400 : handle de fenetre non valide.
it is just because my windows is in french? help me plz
it is just because my windows is in french? help me plz
-
- What is cheating?
- Posts: 1
- Joined: Sat Jan 01, 2022 3:21 pm
- Reputation: 0
Re: Your Chronicle
I don't think you did anything wrong. I believe that it needs to be updated again as newest table worked up until the mimic event back in November
Re: Your Chronicle
Any update for the Steam version? This table doesn't work, keeps "working" the scripts without doing anything, or even crashing CH
Re: Your Chronicle
Most of the values you want are stored as doubles. You can search them easily, it's just a bit of a pain. Other than that, we'll just have to wait for a table update, because I have no idea how to do lua coding.
Who is online
Users browsing this forum: Bing [Bot], Google Adsense [Bot], NekoFuu, Punkadoobaby, youmaycry