Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Tools

Development::Tools 3rd Party Tools for EQEMu (DB management tools, front ends, etc...)

Reply
 
Thread Tools Display Modes
  #1  
Old 09-17-2008, 04:47 PM
spoon
Sarnak
 
Join Date: Aug 2007
Posts: 34
Default

Quote:
Originally Posted by lockjaws View Post
Looks like a Fantastic tool can't wait to try this out but, it seems the hosting site is always busy would anyone happen to have an addition download link for this?
Try http://drop.io/eqeditor1_20
Reply With Quote
  #2  
Old 09-17-2008, 05:17 PM
lockjaws
Fire Beetle
 
Join Date: Jun 2008
Location: UK
Posts: 13
Default

Quote:
Originally Posted by spoon View Post
Brilliant, Thanks Spoon, much appreciated
Reply With Quote
  #3  
Old 09-17-2008, 05:56 PM
cybernine186
Sarnak
 
Join Date: Feb 2008
Posts: 87
Default

I need some characters with AA's from a database for testing. I think I may have the pointer wrong that it is looking in the profile for the AA structure.

Can you send me a copy of some characters with AA's

Cybernine186@gmail.com
Reply With Quote
  #4  
Old 09-17-2008, 10:37 PM
spoon
Sarnak
 
Join Date: Aug 2007
Posts: 34
Default

Sounds like you are close to finish debugging the AAs but if not one thing I was noticing with 1.20 was the AAs listed in default mode did not match the AAs available for the class being edited (beastlord AAs for a ranger). Adding unused AAs seemed to work. I did not test any of this very well though.

--Spoon
Reply With Quote
  #5  
Old 09-18-2008, 01:53 AM
cybernine186
Sarnak
 
Join Date: Feb 2008
Posts: 87
Default

If cavedood is having problems with the AA's and not viewing right then that means it will not read the correct aa's or write them.

This is written for the latest version of the source. If you are using an old packet structure then this entire program might not work, its untested.

Works with titanium clients other than that..... I dont know.
Reply With Quote
  #6  
Old 09-18-2008, 03:04 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by cybernine186 View Post
I think I may have the pointer wrong that it is looking in the profile for the AA structure.
I definitely can't hold this against you, even though it's (buried, hardcore style) in the Wiki (I put it there for this exact reason ), but this should answer this issue:
Quote:
aa_array

Even though the source says this starts at 0432, it actually starts at 0428 (item_tint: 0392 + 36).

struct AA_Array
{
int32 AA;
int32 value;
};
I think what ended up happening when I first read the AA info in my PHP tool I started a while back was it had things a little backwards (indexes were the values, and they were off by 1 set I think).

Hope this helps.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #7  
Old 09-18-2008, 04:34 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Looks like I was right:
aa.php
Code:
	// Find the AA ID in the profile or select a new slot to train the AA
	for($x = 1; $x <= 240; $x++){
		
		// AA ID Value
		$aa_id = asc2uint(substr($char->profile,$x*8+428,4));

		// Find first open available slot in profile
		if($aa_id == 0){
			if(!isset($aa_open)){
				$aa_open = $x;
			}
		}

		// if train_id matches a previous AA then stop and save the slot #
		if($_POST['train_id'] == $aa_id){
			$aa_slot = $x;
			$aa_value = asc2uint(substr($char->profile,$x*8+432,4));
			break;
		} elseif(($aa_id == 0) && ($aa_open < 1)) {
			$aa_open = $x;
		}
	}

...

for ($x = 1; $x <= 240; $x++) {
	$aa_array[asc2uint(substr($char_blob,$x*8+428,4))] = asc2uint(substr($char_blob,$x*8+432,4));
}
Should be able to fix this one of 2 ways: either change the for values to 0/239 instead of 1/240, or change the substring to ($x-1)*8+428/($x-1)*8+432. I personally went the first route.

Should also be some more in aa_adv.php:
Code:
for ($x = 1; $x <= 240; $x++) {
	$aa_array[$x] = array( 0 => asc2uint(substr($char_blob,$x*8+428,4)), 1 => asc2uint(substr($char_blob,$x*8+432,4)));
}
It also looks like the locations are defined in schema.sql, so that will be the semi-hard part:
Code:
UPDATE editor_values SET location = (location - 8) WHERE name LIKE 'aa_%'
One thing I'm not sure about with the above code, though, is that the server is really weird about how it reads and stores the AA values. The ID is basically the ID in the profile minus the value it is set to minus 1. I think it's mainly because the IDs sort-of start at 0, not 1 (which is mainly why I ended up starting from 0 instead of 1).

The part that writes the values looks right, but I'm not sure about how it pulls it later in the code. This is how I ended up reading it (is kinda old, so a little sloppy):
Code:
// AA_Array[240]
	for ($x = 0; $x <= 239; $x++) {
		$aa = asc2uint(substr($profileResult,$x*8+428,4));
		$value = asc2uint(substr($profileResult,$x*8+432,4));
		if ($aa != 0) {
			$Profile["aa_array"][($aa-($value-1))] = $value;
		};
		unset($aa);	// Probably not very efficient...
		unset($value);	// Same...
	};
	unset($aa);
	unset($value);
Could probably do it a little better this way:
Code:
// AA_Array[240]
	for ($x = 0; $x <= 239; $x++) {
		$aa = asc2uint(substr($profileResult,$x*8+428,4));
		if ($aa != 0) {
			$value = asc2uint(substr($profileResult,$x*8+432,4));	// 1 call to constant > 2 calls to variables/functions
			$Profile["aa_array"][($aa-($value-1))] = $value;
		};
		$aa = 0;	// Otherwise, can cause some issues in the loop since it carries over
		$value = 0;	// Same
	};
	unset($aa);	// Help free a little memory
	unset($value);	// Same
On a somewhat unrelated note, just as an added feature, you may want to include the AA description in somewhere (I didn't see it, unless I overlooked it):
Code:
SELECT text FROM editor_dbstr WHERE type = 4 AND id = $aa_value[0]
For reference, this is a query I used for viewing the AA info, including text loaded in a table "dbstr_us" (I tried to make a window as close to the client as I could):
Code:
SELECT a.skill_id, a.name, a.cost, a.max_level, a.spellid, (a.classes + a.berserker) AS classes, d.text FROM altadv_vars a, dbstr_us d WHERE a.skill_id=d.id1 AND d.id2='4' AND a.type='$_GET[type]' AND classes & '$ClassesBit[$_GET["class"]]' ORDER BY a.skill_id
Anyways, enough of my rambling, this should take care of the original issue.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #8  
Old 09-18-2008, 06:19 PM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Sorry I haven't responded, but with PEQ being down I'm crippled atm.
Reply With Quote
  #9  
Old 09-19-2008, 12:15 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by cavedude View Post
I'm crippled atm.
Is that because the server is down, or someone took a baseball bat to your kneecaps?
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #10  
Old 02-25-2009, 12:22 PM
toasterdeath
Fire Beetle
 
Join Date: Jul 2005
Posts: 3
Default

Hey I installed everything but I am having some issues logging in. It won't take anything I put in for login/password. I installed the EQ Editor 1.0 and it works just fine, but the new one does not.

I looked at some of the code but I can't really figure out what I need to do.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:58 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3