Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Perfect World
You last visited: Today at 00:00

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PWI - Resources/Loot Structure

Discussion on PWI - Resources/Loot Structure within the Perfect World forum part of the MMORPGs category.

Reply
 
Old 04/25/2012, 13:32   #16
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 575
try this:



Code:
        public void moveTo(float X, float Y, float Z, float height = -1.0F)
        {

                int actionStruct = MemFunctions.MemReadInt(processHandle, getPlayerAddress() + off_player_actStruct);
                int actionList = MemFunctions.MemReadInt(processHandle, actionStruct + off_player_actStruct_list);
                int moveAction = MemFunctions.MemReadInt(processHandle, actionList + off_player_actStruct_list_move);

                MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_finished, 0);  //action finished = 0
                MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_started, 1); //Action start = 1
                MemFunctions.MemWriteFloat(processHandle, moveAction + off_player_actStruct_list_move_X, X); // Set X coord
                MemFunctions.MemWriteFloat(processHandle, moveAction + off_player_actStruct_list_move_Y, Y); // Set Y coord
                MemFunctions.MemWriteFloat(processHandle, moveAction + off_player_actStruct_list_move_Z, Z); // Set Z coord
                MemFunctions.MemWriteFloat(processHandle, moveAction + off_player_actStruct_list_move_height, height); // Set height
                if (height >= 0.0)
                {
                    MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_var1, 26625); //Set 1st var for flying up
                    MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_var2, 256); // Set 2nd var for flying up
                }
                else
                {
                    MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_var1, 26624); //Set 1st var for not flying up
                    MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_var2, 65536); // Set 2nd var for not flying up
                }

                MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_type, 0); // Set moveType

                MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_error1, 0); // Set error
                MemFunctions.MemWriteInt(processHandle, moveAction + off_player_actStruct_list_move_error2, 0); // Set error

                MemFunctions.MemWriteInt(processHandle, actionStruct + off_player_actStruct_newAction, moveAction); // Set new actionType
                MemFunctions.MemWriteInt(processHandle, actionStruct + off_player_actStruct_startNext, 1); // Set next action position to 1
                MemFunctions.MemWriteInt(processHandle, actionStruct + off_player_actStruct_nextAction, moveAction); // Set new actionType
            
        }
where the offsets are as follows:
Interest07 is offline  
Thanks
1 User
Old 04/25/2012, 13:37   #17
 
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 233
Quote:
Originally Posted by Sᴡoosh View Post
Interest, do pass me one of those fluffy, white jackets though, will you?
Prepare for mad photoshop skillz...

dumbfck is offline  
Thanks
2 Users
Old 04/25/2012, 13:50   #18
 
Sᴡoosh's Avatar
 
elite*gold: 20
Join Date: May 2009
Posts: 1,290
Received Thanks: 325
Quote:
Originally Posted by dumbfck View Post
Prepare for mad photoshop skillz...

LOL

That's actually pretty decent man

Nice!
Sᴡoosh is offline  
Old 04/25/2012, 14:13   #19
 
elite*gold: 0
Join Date: Jun 2010
Posts: 73
Received Thanks: 2
Wow those offsets are different from the offsets I was using
Was using outdated stuff i guess

Edit, with those offsets the char is moving, but he isn't going to the coords I want lol
Subzero12 is offline  
Old 04/25/2012, 14:39   #20
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 575
Quote:
Originally Posted by Subzero12 View Post
Wow those offsets are different from the offsets I was using
Was using outdated stuff i guess

Edit, with those offsets the char is moving, but he isn't going to the coords I want lol
You do realise that the coords showing ingame are different from those used internally (by for example functions such as this) I hope. Where is your character going? If it's in the general direction of heavens tear, that means its going to (0, Y, 0)

@dumbfck lmao that's exactly what i had in mind!! Mad photoshop skillz there :chuckles:
Interest07 is offline  
Old 04/25/2012, 14:45   #21
 
elite*gold: 0
Join Date: Jun 2010
Posts: 73
Received Thanks: 2
Yes I know it *.*

Found the problem there was an error storing a position in one of my classes

Thx for the help
Subzero12 is offline  
Old 04/25/2012, 14:50   #22
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 575
Quote:
Originally Posted by Subzero12 View Post
Yes I know it *.*

Found the problem there was an error storing a position in one of my classes

Thx for the help
grats! glad you got it working
Interest07 is offline  
Old 04/25/2012, 15:04   #23
 
elite*gold: 0
Join Date: Jun 2010
Posts: 73
Received Thanks: 2
It moves, it gathers resources and it attacks =) (pick loot should be easy too)

Time to start putting things into places and working on the bot logic

---- Edit.

One thing, its possible to know when my char is gathering?

For now I'm using a bad approach of using a sleep while gathering, but I wanted a more optimal approach of knowing when the action ends (to help me with the defend section).

Its getting nicer already have a neat radius farm bot (will post a small clip tomorrow)
Subzero12 is offline  
Old 04/27/2012, 00:39   #24
 
elite*gold: 0
Join Date: Jun 2010
Posts: 73
Received Thanks: 2
I have some questions for the next steps I want to take:
How to unfreeze window? I just need to write in a certain address?

How can I 'see' if my harvest action has stopped? (to make the bot faster and implement a defend action)

Thx for all the help guys.
Subzero12 is offline  
Old 04/27/2012, 07:53   #25
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 575
Quote:
Originally Posted by Subzero12 View Post
I have some questions for the next steps I want to take:
How to unfreeze window? I just need to write in a certain address?

How can I 'see' if my harvest action has stopped? (to make the bot faster and implement a defend action)

Thx for all the help guys.
You can use the action struct to see if the char is idle. The first action in the list (move ix 0x8 for example) is idle, so if current action is a pointer to the first action in the list your char is doing nothing.

for example:

Code:
        public bool isIdle()
        {
            int actionStruct = MemFunctions.MemReadInt(processHandle, getPlayerAddress() + off_player_actStruct);
            int actionList = MemFunctions.MemReadInt(processHandle, actionStruct + off_player_actStruct_list);
            int idleAction = MemFunctions.MemReadInt(processHandle, actionList);

            return MemFunctions.MemReadInt(processHandle, actionStruct + off_player_actStruct_nextAction) == idleAction; // Set new actionType
        
        }
I wouldn't suggest unfreezing your client, it's a huge resource hog and doesn't benefit a properly built bot. If you insist the way to do it would be something like this, but at the correct address instead of 0x430d98. It basically adjusts the opcode to always render the screen and removes the check. I never used it myself though, so I haven't updated the correct address ever.

Code:
        public void unfreeze()
        {
            byte[] buffer = new byte[] { 0xb0, 1, 0x90 };
            MemFunctions.MemWriteBytes(this.pr_processHandle, 0x430d98, buffer);
        }
Interest07 is offline  
Old 04/27/2012, 12:33   #26
 
elite*gold: 0
Join Date: Jun 2010
Posts: 73
Received Thanks: 2
Hmmm I see, then if I want to see if i'm gathering anything I can also see what action I'm making, action type and item ID? (Reading the correct memory addresses)

I will put this to use later and start creating a record farm pattern algorithm

Thx
Subzero12 is offline  
Old 04/27/2012, 19:08   #27
 
Interest07's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 862
Received Thanks: 575
Quote:
Originally Posted by Subzero12 View Post
Hmmm I see, then if I want to see if i'm gathering anything I can also see what action I'm making, action type and item ID? (Reading the correct memory addresses)

I will put this to use later and start creating a record farm pattern algorithm

Thx
Yeah, pretty much
Interest07 is offline  
Reply


Similar Threads Similar Threads
Xml Database Structure
02/28/2012 - CO2 PServer Guides & Releases - 11 Replies
Alright, this is still unfinished, At the moment it only supports MYSQL, but I will finish rest later, if I get time. It's untested so far and so, but looks like it would work. Anyways, when I get home I will test it and fix whatever I find of bugs etc. It also still contains the xml converter as it's under solution. The XmlLib is a DLL, which you just add as reference to your project, however there is some major things you need to do, before you actually use it. First of all you...
SQL-DB structure
05/29/2010 - Silkroad Online - 0 Replies
Hey folks, does anyone happen to have the structure of the official SRO SQL-DB? I need no more than the column names and their associated table names (usually located in the DB "INFORMATION_SCHEMA").
[C] Player Structure [PW-MS]
03/16/2010 - PW Hacks, Bots, Cheats, Exploits - 5 Replies
Hi everyone. Just wanna share the stuff i found out when reversing the game. Assuming you are using dll injectiong and you have the base pointer to all player stats, you can simply access all the data from a nice and userfriendly structure. Here how to read from memory: VARBASE *Stats = 0xBASEPOINTER; printf("Player HP: %d/%d", Stats->p_Player->Current_HP, Stats->p_Player->Maximum_HP); And here the structure you need to make this available: typedef unsinged char BYTE;
packet structure
03/09/2008 - Conquer Online 2 - 16 Replies
For what I'd like to do, I think packets are the place to start. After that, probably java then C and VB. This is a question for the people here who are self-taught... what resources would you recommend for... 1. understanding packet structure 2. learning some programming language without enrolling at the local university I'm mainly interested in packet structure and how to capture/decipher/edit/send them, and eventually I'd like to "automate" these functions by writing some programs. ...
Drop-Loot bug (Loot sichtbar vor dem kill)
03/28/2006 - WoW Exploits, Hacks, Tools & Macros - 1 Replies
So hi und zwar für alle die gerne mal etwas farmen aber kaum zeit haben ein kleiner Tipp der immo noch auch allen EU realms (ja auch auf Blizz-Servern) ghet. und zwar gibt es in den Blasted Lands den Altar of the Storms dort laufen mobs der LVL ca. 54 rum. Das geniale kommt est noch man sihet an den mobs bevor man sie killt, angreift was auch immer ob und welche Waffe sie droppe. Das system ist ganz einfach: es laufen dort z.B. Walocks rum diese habven immer so nen schwarzen staff in...



All times are GMT +2. The time now is 00:00.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.