Leaderboard
Popular Content
Showing content with the highest reputation on 05/04/2023 in all areas
-
2 points
-
NOTE: You should enable string representation (in the memory editor). You should also have at least some basic knowledge of GG, otherwise you might not understand somethings that are discussed below. VERY IMPORTANT: Trade Harbor is unlocked at level 50, so if you are not on level 50 then follow the exp hack given below. EXP HACK Click on your Missions tab and check what your current mission exp value is, search for that value as (DWORD). Then, use increment by 1 and then, close and re-open your Missions tab, check for your value in GG and then revert and remove all other values. Change your value to a big number (like shown on the picture above) and complete that mission. Do this until you reach level 50 and unlock the Trade Harbor. CUSTOM TRADES INCREASE Well, once your Trade Harbor is unlocked and you click on it, then, you will see 2 tabs. The first tab is where Chanya Diogo has some special trade offers for you and the second tab is the Custom Trade tab. In the Custom Trade tab, you can select an item you want to trade and you can also select the type of resource you want to get in return (which is limited). You will also see that you have only 3 Custom Trade's after which you need to buy them in order to use more of the Custom Trades. So, search for 3 as (DWORD), then, do a trade or cancel it and you will be left with 2 trades. Refine 2 as (DWORD) and you will be left with some results. Once you are left with only 1 result, change it to a big number or if you are left with few results, just use increment by 1 and check the number that has changed of your trade with GG and change that number to a big number. Now, this is the part where you have to pay attention to each and everything that is written below, in order to understand and do it on your own. You might need to practice this method a lot of times until you have a good grip on it. This is an Item Swap method and everything is assigned a specific number. ITEM ID's (CUSTOM TRADES) Below are the id's to some of the resources of the game, which you will understand as you read further. Dinosaurs = 0 (Includes Jurassic, Aquatic, Cenozoic and Bosses) Buildings = 1 Decorations = 2 DNA = 3 Food = 4 Coins = 5 Cash = 6 Loyalty = 7 MODS = 8 S-DNA = 9 Some items are simple enough like DNA, Food, Coins, Cash, Loyalty and only require the item id that are listed above. While other items like Dinosaurs, Decorations, Buildings, MODS and S-DNA require 2 item ids. One type of id that is listed above and can be called a Category id (for explanatory purposes) and a Special id that represents that thing or Dino and separates it from other things or Dinos. Since DNA, Food, Coins, Cash and Loyalty do not have any variety in them, that is why they only have 1 id, you will get what I mean as you read further. METHOD So, do a Custom Trade and in your Custom Trade select Coins (or anything that you want to spend, I selected Coins) and then select anything that you want to get (this does not matter much, you can select just anything because we are going to change this item into what we want, you can go with either Food, Jurassic or anything). Once the trade shows your amount of coins and the item you will get in return, you will need to search for your coins value as (DWORD). In the picture above (which I changed my trade item to Salamander 16 and will tell you how) my trade shows 213536 coins. So, you will search for 5;213536::5 as (DWORD) and you will get only 2 results from this ordered search. So the explanation for the search is that 5 is the item id for Coins in the Custom Trade and 213536 is the amount of coins shown above. The last 5 (Ordered) is the distance between these values. Once you get these two results, click on any one of them and long press and then press Go to, this will lead you to the memory editor as shown in the picture below. So, from this picture, you can get the idea, that you can not only change the price of your item, but, you can also change what you will get in return. Let me tell you how you can use these numbers to your advantage. Explanation of the numbers are as so, the first 3 numbers are related to the item that you are trading, here we have 5;213536;0 (DWORD). As explained above 5 (item id of Coins), 213536 (amount of Coins) and 0 (because Coins do not have any Special Id's). Now the bottom 3 numbers (except the last special number 5) are the numbers related to the item you will get in exchange for what you are trading. Here we have 0;1;-1863210213 (DWORD). The 0 is the item id for Dinosaurs (Since Salamader 16 is a Dinosaur), 1 (amount of Dinos you will get) and -1863210213 is the special id of Salamander 16. The last number 5 is a fixed number and is related to in-game significance of the Trade Harbor and other systems (you don't need to mess with this value). So, once you have done changing your values you can proceed with your trade and voila, you just got yourself something special! Now below are the special ids to different resources, I have also mentioned how you can find specific ids. DINOSAURS To find a specific Dino id (Special id), you just got to search for the first 7 letters of the name of your dino, like if you are searching for Albertosaurus, so just search for the string Alberto as UTF-8, you will get a lot of results. Check in these results for the one that has .Alberto written on it and just 2 addresses above that will be your dino's Special ID. Copy this id and paste it in the special id part of your Custom Trade to get an Albertosaurus like shown in the picture below. If you are looking for a Gen 2 dino so add a 2 at the end of it in your search and just the first 6 letters of your Dino's name like Veloci2 (Velociraptor Gen 2). For a Hybrid and a Super Hybrid, you need to put an H before the first 6 letters of your Dinos name like HDunkle (Dunkleosaurus) and HIndora (Indoraptor). If your dino is a Hybrid and is a Gen 2 dino, then add H in the beginning and 2 at the end of your search and just the first 5 letters of your dino's name like HIndom2 (Indominus Rex Gen 2). If your dino's name has less than 7 letters, then, add D to it like BumpyDD and BlueDDD. For Bosses you need to search for PB and then your bosses kind name (not it's own name) like for Omega 09 it will be PBTyran (Tyrannosaurus), for Juggernaut 32 it is PBTrice, for Valkyrie 77 PBPtera and for Salamander 16 PBMicro. I think PB stands for Park Boss. Remember for your Custom Trade you just have to keep the numbers like this: 0;(amount that you want);(special id) SPECIAL ID's (JURASSIC) 1393042012 (Suchomimus) -1743931416 (Therizinosaurus) 1497467848 (Tapejalosaurus) -704664302 (Nundagosaurus) -825574828 (Edmontosaurus) -59391110 (Dimetrodon) -1410955683 (Deinonychus) 581241791 (Megalosaurus) -60998544 (Pelecanipteryx) 40481232 (Tyrannosaurus) 397647001 (Tyrannosaurus gen 2) -1285400332 (Tyrannotitan) 65958984 (Tropeognathus) -1560125181 (Proceratosaurus) -1052162259 (Spinoraptor) 403122970 (Carnoraptor) 1215039218 (Ostafrikasaurus) 121995842 (Pachyceratops) 899619543 (Allosaurus) 772223371 (Albertosaurus) -785679876 (Sonorasaurus) 1564255850 (Deinosuchus) 2055740954 (Tsintaosaurus) -1592891285 (Bumpy) -1640810987 (Blue) 156445524 (Armormata) 1692405504 (Metriaphodon) 883871771 (Indoraptor) SPECIAL ID's (AQUATIC) -30666063 (Kaiwhekea) -1141247809 (Platecarpus) 613996072 (Dunkleosaurus) -75947127 (Hynecoprion) SPECIAL ID's (BOSSES) -1508593356 (Omega 09) -998063698 (Juggernaut 32) 1237788383 (Valkyrie 77) -1863210213 (Salamander 16) I know you might want to own them (Bosses), you now have the id's so go ahead and get them. I will try to update more Bosses as soon as they are added in the game. I did not put the Cenozoic class id's but I know that you can find them easily. DECORATIONS To find the special id's of decorations, things are a bit different from the dinosaurs. Sometimes a decor can be found by using the d_ in your UTF-8 search like the d_LegendP (Paradise Lagoon) decor in TYPE 1, but sometimes, it does not have any specific string as can be seen in the TYPE 2 picture above, just numbers like 33;19 (those who have visited my Jurassic Pack Swap topic will know what I am talking about). If you find any of the type of data shown in the pictures above. So, just 2 addresses above is your items id like -1085599335 which is 2 addresses above the string d_LegendP in TYPE 1. Do not worry I have already found a lot of these id's on my own including Boss statues. Just keep in mind the data structure you would need in order to change your trade: 2;(amount that you want);(special id) SPECIAL ID's (DECOR AND STATUES) -1718690042 (Tar pit) -1659643892 (Flowerbed) 2053427703 (Modern arch) 452427227 (Apatosaurus fossil) -1085599335 (Paradise lagoon) 821951616 (Earth park) -328316449 (Jurassic world flag) -252737352 (John Hammond Memorial) -1629520660 (Rex rival park) 1805323180 (Spinosaurus skeleton) 475348004 (Mosasaurus sculpture) 1067873184 (Tropical boulevard) 1000892167 (Land and Sea rival park) 900898259 (Stegosaurus garden sculpture) 2041039507 (Snack statue) 1166975718 (Tyrannosaurus topiary) -1409675954 (Incubator egg statue) -1940619558 (Nodosaurus fossil) -1489370798 (Mr. DNA statue) -1418590269 (Jurassic park gates) -50253108 (Jungle conservation) -1845385825 (Smilodon diorama) 697020531 (Titanoboa diorama) 1975559997 (Megatherium diorama) 100144443 (Mammoth diorama) 1234806743 (Haast statue) SPECIAL ID's (REGULAR BOSS STATUES) -1479839203 (Omega 09) 169078216 (Juggernaut 32) 1213838668 (Kraken 18) 1511097404 (Colossus 04) 253703920 (Valkyrie 77) -1809034836 (Phoenix 44) -660039944 (Salamander 16) -1402139955 (Maelstrom 08) 57795765 (Ouroboros 66) 686633828 (Death dodo) -153991617 (Alpha 06) -331935970 (Akupara 81) 379729028 (Vulcan 19) -397666220 (Behemoth 93) -2128948937 (Imperatosuchus 53) SPECIAL ID's (GOLD BOSS STATUES) -1238538682 (Gold Kraken 18) 1700107005 (Gold Omega 09) -480609928 (Gold Ouroboros 66) -281760963 (Gold Valkyrie 77) -365400059 (Gold Juggernaut 32) -2010820612 (Gold Death Dodo) 1230544733 (Gold Maelstrom 08) -1536862410 (Gold Colossus 04) 1444559527 (Gold Alpha 06) 1897514044 (Gold Phoenix 44) 948112181 (Gold Salamander 16) -158750391 (Gold Vulcan 19) 203199187 (Gold Akupara 81) -1135756980 (Gold Behemoth 93) 1630620922 (Gold Imperatosuchus 53) SPECIAL ID's (SPECIAL STATUES) -1785246481 (Blue statue) 480622185 (Echo statue) 1794234147 (Delta statue) -1036375985 (Charlie statue) -1870782173 (Booster Legacy) -308089113 (Scorpios Rex statue) 1352911750 (Bumpy's statue) -1289510396 (4th Anniversary gate) -746645681 (6th Anniversary gate) 250203850 (7th Anniversary gate) 1559759805 (Jurassic park T.rex) -766439695 (Dodo Eggs statue) -1195596305 (Amber Motorcycle) SPECIAL ID's (VIP STATUES) 504851324 (Ammonite oasis) -1268232173 (Brachiosaurus statue) 427738399 (Triceratops exhibit) 266163637 (Indoraptor skylight) Well if you are not a VIP (or do not have a VIP subscription) then these VIP statues will be very important for you and even if you are a VIP, then, still you would need these since it requires a lot of months to get them. Also a warning once you put any one of the VIP statues in your park, you cannot put it back in your drafts. BUILDINGS Similar to Decorations you can search for their special id's with a b_ as UTF-8 and they also have the same TYPE 2 thing as discussed above. You can find the id's just 2 addresses above your string like for .b_Museum the id is -162004717. Just remember your pattern for your Custom Trade for buildings: 1;(amount that you want);(special id) SPECIAL ID's (BUILDINGS) -2040279077 (Maintenance Facility) 8991235 (Wild Waterfalls) -1934950112 (Wind Turbine) 1894282273 (Big Bite Burger Restaurant) -477328136 (Revolution Ferris Wheel) -162004717 (Hologram Museum) -1483492551 (Badlands Amphitheater) MODS You can find your MOD special id by just searching the full name of your MOD like Toxin in the above picture. The address just above your string .Toxin is your special id for your MOD. Copy that and put it on your Custom Trade. The Custom Trade pattern for MODS is: 8;(amount that you want);(special id) SPECIAL ID's (MODS) 1830411669 (Split wound) 1872723326 (Spikes) -708689034 (Toxin) S-DNA To find the Special id of the S-DNA is super simple, it is basically the id of that relative dino. So if you want a Velociraptor S-DNA, just search for Velociraptor's dino special id, so, search for Velocir as UTF-8 and same as the dino's special id, copy it and put it in your Custom Trade but remember to change the item id from 0 (Dinos) to 9 (S-DNA). Although I have already found all the S-DNA id's. Keep in mind how your values should look like in Custom Trade: 9;(amount that you want);(special id) SPECIAL ID's (S-DNA) -93170300 (Velociraptor) -59391110 (Dimetrodon) 1205504321 (Kaprosuchus) -2121385870 (Sarcosuchus) -134714335 (Monolophosaurus) -543227015 (Ankylosaurus) 1884519706 (Euoplocephalus) 305981254 (Tupandactylus) FINAL NOTE: If you mess up with the special id's, or if you put the special id of something and forget to put the correct item id, nothing much will happen. Your game will crash and you will just have to restart it again. All codes are tested and found working on the armv7 variant of the game. Hope this has helped you out. It looks lenghty, but is very easy to perform and you can do a lot of trades in just a couple of seconds. Enjoy!1 point
-
1 point
-
Hi @Vaster, there's a mistake in your script: function mrdiggsc() ... local modc = gg.prompt({'Enter Value : 0 > 99'}, {[1] = recentvalue}, {[1] = "Number"}) ... recentvalue = gg.getValues(r) You're referencing recentvalue after modc variable. The recentvalue will not be loaded because of this. LUA or general language, follows UP to DOWN and LEFT to RIGHT readings. That's why doing indentation is important and declaring variable must always comes first before you're going to use them. That's the result of your first mistake. After changing the location of recentvalue, you can simply access them with recentvalue[1].value as mentioned by previous user. addrs = {[1]={["address"]=1, ["flags"]=1, ["value"]=50}} print(addrs[1].value) [ Prompting ]: You should read the documentation properly here: gg.prompt(). I'll break down your newest script iteration: local results = gg.getResults(1) local numb = gg.getValues(results) local value = #numb local addrs = {1} for i=1, #numb do addrs[i] = {} addrs[i]["address"] = nil addrs[i]["flags"] = nil addrs[i]["value"] = "" ..value end local modc = gg.prompt({'Enter Value : 0 > 99'}, addrs, {nil}) You're loading addrs variable inside gg.prompt() wrongly. First, I wanted to mention that: LUA is reading your instruction from LEFT to RIGHT in a single line. Also, tables/dict in LUA are different than other language. In lua, you can specify the tables value without defining key/element, it will automaticly assigned like an array []. Thus, your addrs variable will look like this: {"your value"} --equal to {[1]="your value} Reading through the documentation, you will know that: gg.prompt() takes argument in orderly fashioned way: ({1},{2},{3}), including the tables keys {[1],[2],[3]}. On the script, you're supplementing a single value inside the first tables argument, it will taken as [1] inside the tables. Thus, the second argument should follow the first argument key: gg.prompt({"Input Value"}, {1}, {"number"}) --equals to gg.prompt({[1]="Input Value"}, {[1]=1}, {[1]="number"}) In conclusion, each argument are inheriting each other. On the documentation: the pattern is: gg.prompt( {prompts}, {default_values_for_prompts}, {types_prompts} ). So your script convention will look like this: for i=1, #numb do addrs[i] = {} addrs[i]["address"] = nil addrs[i]["flags"] = nil addrs[i]["value"] = "" ..value end local modc = gg.prompt({'Enter Value : 0 > 99'}, {addrs[1].value}, {"number"})1 point
-
1 point
-
So I believe this game already has all your dice rolls calculated for your account. Server already knows where you'll land on your next roll. I believe minigames, outcomes are already determined before you even land on them (pre determined like all your dice rolls). Wouldn't it be nice to know how much your next roll would've won, then you would've done multiplier to maximize....... Well, that's just what this is going to be about. To see your future rolls/minigames, you'll have game open and switch to offline mode. Using a root file explorer navigate to here: /data/data/com.scopely.monopolygo/files/ Each turn you take a file is generated, something like this: 48d4483b70674c02951ddfd3a289f5d7.ca When you reconnect, it'll send these and get your account synced. If you get prompted no connection, you can click back to remove message and tap roll really quick. So you can roll indefinitely and write down/log all your rolls. Even if you stay on one board logging it all. When you switch to a new board, your dice roll continues. Not like a new board, new roll pattern. When you land on a spot that gives a good size reward. You can delete those .ca files, close, restart game online and use max multiplier to really bonus up those wins. Bank Heist, don't think you had a chance of picking the right combination.... No matter where you selected, what flips over, will always be same when you play it again. So if I flipped coin, ring, cash, cash, ring, cash. When I go to play again, it's going to be that exact order. See attached video. I'm honestly really disappointed in my findings with this developer. It feels like a scam of a game and you're not really "playing". It's basically scripted and if you do x1, x5, x10 at ideal times, that's about the only user "input" that seems to have a chance on the outcome. mobizen_20230426_211255.mp41 point
-
Going to public double get_hp() offset address contains the following instructions: "LDR" then "RET", not "PUSH". Do I have to look for another offset address? Also, I don't think PUSH is common for ARM64, but I may be wrong. I do see a lot of STP (store pair) and LDP (load pair) when scrolling through memory, but not PUSH instruction. I'm not sure how to navigate to the 'start of the function' like you've mentioned, it would be nice if you can tell me what I should look for when inspecting the dump that contains many offset addresses, which is something like: // [Address(RVA = "0x1CC4FD4", Offset = "0x1CC4FD4", VA = "0x1CC4FD4")] // [Attribute(Name = "IteratorStateMachineAttribute", RVA = "0xF3BC10", Offset = "0xF3BC10")] // [Attribute(Name = "ObserverDelegateAttribute", RVA = "0xF3BC10", Offset = "0xF3BC10")] public IEnumerator HPChanged(double newHP, long order) // [Address(RVA = "0x1D4A118", Offset = "0x1D4A118", VA = "0x1D4A118")] public void ApplyAllHPChange(double, [Optional] List<>, [Optional] EnemySkill, [Optional] BattleEnemy) // [Token(Token = "0x5040822")] // [Address(RVA = "0x1F57230", Offset = "0x1F57230", VA = "0x1F57230")] public void SetHP(double newMaxHP, double newCurrentHP, bool immediate) // [Token(Token = "0x504061F")] // [Address(RVA = "0x1EBCBFC", Offset = "0x1EBCBFC", VA = "0x1EBCBFC")] public void SetAllHP(double newHP) I agree, when looking for offset addresses I found "CheatViolation" public enum which contains many enum constant values like Damage, EnemyHealthChange etc... I'll come to this later, most important part is that I understand how to patch memory at runtime. I want to be able to have control over health, just to learn about memory patching. The process is more important than the outcome.1 point
-
1 point
-
Version 1.0.0
7,007 downloads
It's been a long time since I had been active on the forum. The main reason being that I don't get time for game hacking. So I decided to share my tools which I used back in the days for making things easy for me and also this will be like a summary post for beginners. The first file name FindHaxSever I made was just a beginning for finding new values in the game , then I took it up a knotch and added group value making also for it. Big thanks to @Enyby for his help in the where I was making the mistake in converting Decimal to Hex. Fixing which I was able to complete the group value thing. Just an example video for it's use I had shared on yt , and sorry for the opening slide... The video above just shows the function of finding values and making group values automatically. Also you will find a menu option called "Crash Support" , crashes happen mostly because of larger number of values edited at once. So if I know my value I can make group value easily by reducing the number of edited values. If you are a beginner and don't understand how to use values , group values in script and also have no idea how to make scripts. You can learn from the following link :- All in one Script for menu templates. (#6zf6rwms) Next option in the script if for finding offsets of you hack value. Offsets in them are very confusing for many people , so if you want to learn you can follow this link:- Templates for Using Offsets (#68um1uri) Then next up in the list is EditHax, which is not a big thing. It's just a script for finding different possible edits for a given hack value. And lastly there is the MultipleSavedEdit file. This file is for making scripts with hacks which have various edits possible for only 1 hack value. Like for value 1 edit to 999 gives 1 hack and editing same 1 to 0 makes another hack. So if we go conventionally , we will need to first make the group using 999 and then revert the 999 back to 1 then again search the group and edit to 0. Saying is easy but if u put it in script , the whole ballgame changes... When we make Script we make menu and function for every menu. For only one hack value we need 1 menu and 1 function. ~~~~~~~~~~ For 1 hack value we need 2 Menus and 2 Functions , one for hack and one for revert , this can also be made using ON-OFF MENU, then we only need 1 menu and 2 functions. ~~~~~~~~~~ For 2 hacks value we need 3 ON-OFF menus and 6 functions in the script to be able to use both hack values and revert also. ~~~~~~~~~~ For 3 hack values we need need 12 ON-OFF menus and 12 functions. ~~~~~~~ For 4 hacks values we will need 20 menus and Functions like this. So the work increases a lot . This thing i reduced to only 2 functions no matter how many times the user wants to edit , if he knows the edit value , he just need to input it. The input can be anything like prompt or seek bar or choice. If you find any difficulties understanding any of them , you can read the video description also . And yes the first video doesn't have full description for all the options, because all the videos are more than an year old from the time I made the scripts and I didn't had the time to make video for all the features now. Also just for beginners I attached the links to respective posts so things become easy for them to understand. Many will criticize and say these are useless , well maybe for you but not for others. In fast few days I have been getting a lot of Dms on my telegram for these scripts , people keep coming to me asking for them even though the videos have become like more than an year old now. So this is likely my last and final post on the forum , hopefully people find this post useful. And in the end I would like to thank @Enyby ,d2dyno and Aqua and all the related team members for such an amazing app. Special thanks to @Enyby for maintaining such an amazing community , I definitely learnt a lot in past years. And also my friend @ItsSC for providing guidance time to time.1 point -
function conv(B1) return 1072693248+1048576*math.floor(math.log(B1)/math.log(2))+math.floor(1048576*((B1+B1-math.pow(2,math.floor(math.log(B1)/math.log(2))+1))/math.pow(2,math.floor(math.log(B1)/math.log(2))+1))) end local d = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} while true do while not gg.isVisible() do gg.sleep(100) end d = gg.prompt({'health 1', 'attack 1', 'health 2', 'attack 2', 'health 3', 'attack 3', 'health 4', 'attack 4', 'health 5', 'attack 5'}, d, {'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number'}) if (d == nil) then os.exit() end for i = 1, 10, 2 do gg.clearResults() local s = conv(d[i])..';'..conv(d[i+1])..'::1024' gg.searchNumber (s, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) local log = i .. '; request = "' .. s .. '"; found = ' .. gg.getResultCount() .. '; edited = ' .. gg.editAll(conv(9999999999), gg.TYPE_DWORD) print(log) -- gg.toast(log, true) end gg.toast('Click on icon for next search') gg.setVisible(false) end1 point