Go Back   EQEmulator Home > EQEmulator Forums > Development > KayotRO

KayotRO This is the forum for Kayot's Editor.

Reply
 
Thread Tools Display Modes
  #16  
Old 02-15-2008, 08:55 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by sesmar View Post
I am not sure if this is what you are looking for, but this might point you in the right direction.

...

I found that in zonedump.h of the zone project.

You can also find things like:
ZoneDatabase::UpdatePlayerCorpse and
ZoneDatabase::CreatePlayerCorpse
in PlayerCorpse.cpp in the zone project.
That looks right, based on the info I was getting from a corpse I left. Good find I had a feeling it might have been in the zone or world source.

Quote:
Originally Posted by Kayot View Post
I just had the editor dump the profile into an array ^-^, it takes a bit more ram but makes adding edits a joke.
I agree, using an array to mess with the blob is definitely the better way to go, especially if you want to make multiple edits without a bunch of queries. However, copying the entire profile blob into a variable, then using substring manipulation (strrep and similar I think?), can reduce the amount of RAM used due to different data types (there was a post about this referring to the spells_us.txt file & parsing it into an array, not sure where it's at, though). But on the same token, a 20k block of data, even separated into an array, shouldn't take up a gross amount of RAM.
__________________
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
  #17  
Old 02-15-2008, 07:47 PM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

The reason I dumped it into a byte array rather than a string was, I could always assemble integers and strings from bytes, but doing the opposite would take a whole lot more coding.

My problem was the alt adv skills. The numbers don't really correlate with anything and are done in a add it as it goes. For instance:

It you boosted strength first then Intel, it would add strength then Intel. If you added Intel then strength, it would add Intel and then strength. For some reason this made reading the date hard and editing it impossible as it wouldn't take the new settings. Not sure why not, thats why you can't edit Alt Adv yet. I'll figure it out.

P.S. Seems I have the flu, just wonderful. I reach my days off then I'm sick. I'm re dosing right now, hence the 2:40am post time T-T2son

P.S.2 The post concerning the spells_us.txt was mine. Thats how this program loads spell information.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
  #18  
Old 02-16-2008, 09:05 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by Kayot View Post
My problem was the alt adv skills. The numbers don't really correlate with anything and are done in a add it as it goes. For instance:

It you boosted strength first then Intel, it would add strength then Intel. If you added Intel then strength, it would add Intel and then strength. For some reason this made reading the date hard and editing it impossible as it wouldn't take the new settings. Not sure why not, thats why you can't edit Alt Adv yet. I'll figure it out.
That one kinda threw me off as well. Reading wasn't too bad:

profile.php (from my PHP-based editor, using a few custom functions):
Code:
   91 // AA_Array[240]
   92 	for ($x = 0; $x <= 239; $x++) {
   93 		$aa = asc2uint(substr($profileResult,$x*8+428,4));
   94 		$value = asc2uint(substr($profileResult,$x*8+432,4));
   95 		if ($aa != 0) {
   96 			$Profile["aa_array"][($aa-($value-1))] = $value;
   97 		};
   98 		unset($aa);
   99 		unset($value);
  100 	};
  101 	unset($aa);
  102 	unset($value);
So, then you can pull the info by $Profile[aa_array][aa_id] => points.

For writing, it would probably be better to make an array like this:
Code:
$AA_Array => Array
	(
		[position_num] => Array
			(
				[aa_id] => #
				[aa_points] => #
			)
	)
So, then you would have all 240 positions to work with, and then you can put it all back in at once. It might also help to put the position_num into the read array, so that way you can refer back, but still be able to locate the AAs easily by a query to the altadv_vars table:

aa.php:
Quote:
SELECT skill_id, name, cost, max_level, spellid, (classes + berserker) AS classes FROM altadv_vars WHERE type='' AND classes & '' ORDER BY skill_id
Anyways, just some thoughts
__________________
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
  #19  
Old 02-25-2008, 08:35 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

Sorry, took me a while to respond. I had the Flu with Complications.

I'll look into adding Alt Adv into the character editor. Also, the release is in my sig. So much for a pretty web site.

^-^ And then there was Nu. And Nu said, "The cake is a lie." And so it became.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
  #20  
Old 03-04-2008, 03:17 PM
gernblan
Discordant
 
Join Date: Aug 2006
Posts: 394
Default

This is GREAT news!

I think your project has great potential!
__________________
--
Keelyeh
Owner, ServerOp and Developer
Jest 4 Server
Linux (Jest3 runs on Fedora, our Dev servers usually run on Ubuntu and/or Gentoo), OC-12 Connection = Hella Fast
Reply With Quote
  #21  
Old 03-07-2008, 01:12 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

Yea, I've been working on it slowly but surely. Right now I'm trying an interesting idea. I'm trying to see if I can turn the program into a modual. Meaning set it so the user can install only what they want. Though it is taxing.

I figure I'll finish the character editor first.

Quick question, would any one who's used the program mind adding a table to their PEQ database? It's basically the spells converted into SQL. I'm asking because it would be faster than reading the spells.txt files.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
  #22  
Old 03-07-2008, 06:42 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

I know I'm personally of the opinion that the server should use the database to load the spells instead of from the spells_us.txt (and maybe one of these days, I'll figure out how to change it that way), so I've already done so. That way, I can incorporate the information into web pages, etc.

The only "issue" is that, for servers that use custom spells, you can't just use a standard import. That's why I created this PHP script to do this for me. The only downside is that it doesn't currently take into account older spell files, etc, with fewer columns than what the database holds (easy fix, just need to get the changes committed).

Anyways, I think it would be a good way to go.
__________________
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
  #23  
Old 03-08-2008, 10:02 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

I'm going to avoid custom spell servers. Though I wish the Spell lists were server side as well as that would make this so much easier. Untill I'm out of Alfa I'll keep using the spells.txt files.

I've been going over the source code of the EQ DB Editor and man, everything I didn't code is out of this world. I need to give tanks to the team members who moved on.

Sesmar - Thank you, your help in making the controls was extreamly valuable. Also, If I ever figure out what the EDEDBI does I'll probably be even more amazed.
Dr Schlock - The Graphic Cutter you made was simply amazing. Since your not around any more I'll try to keep your code style when working on it.

It was a small team T-T.

Ideas - I like my drag and drop functions, I was thinking that later on I'll ditch the mdi Window so that stuff can be drug to a file explorer where it will be turned into a file that can be drug back into the program. Thats later though.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.

Last edited by Kayot; 03-08-2008 at 06:05 PM..
Reply With Quote
  #24  
Old 03-09-2008, 04:29 PM
Amra's Avatar
Amra
Hill Giant
 
Join Date: May 2006
Posts: 117
Default

Good to see you back in action, Kayot
Reply With Quote
  #25  
Old 03-10-2008, 12:38 AM
sesmar
I built it I will Support it!
 
Join Date: Jun 2005
Location: Michigan
Posts: 214
Default

Quote:
Originally Posted by Kayot View Post
Sesmar - Thank you, your help in making the controls was extreamly valuable. Also, If I ever figure out what the EDEDBI does I'll probably be even more amazed.
EDEDBI is DAL (Data Access Layer) that I have been working on for sometime now. I converted it to VB.Net for your project, the original version is in C#. When I get sometime this week I will take a look at it to make sure everything is working properly with it (although I think I already did this.) It covers basic data access for returning MySqlReaders to DataTables to DataSets all the way to a LINQ style Entity to Relational DB mapping system using custom attributes and reflection. It has decreased my DB Class coding time by half and sped up my data access time 10 fold.

I think I was starting to work on a faction editor for your project using this particular model, I will look at this as well and maybe get that working as an example of how it is used.

If you have any more questions or want to know more about how it works send me a PM and I will let fill you in on the details.
__________________
Reply With Quote
  #26  
Old 03-14-2008, 04:43 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

Sorry about slow dev, I was surfing the PEQ forums when I saw the Acronym MQ2. After getting the right ver. I have to say this is one on the best utility's I've ever seen. I've been in a kind of trance playing with it for the last few days. If I would of had this back in the day I would've been an unstoppable killing machine. It reminds me of a lesser openKore. Now I'm two boxing a War and Clr (My desktop isn't all that strong and my laptop wont run EQ right other wise I'd six box with 5 of them on the laptop. Dual Core is good) and that is why my dev time is slower now.

I do need to work on the program though, while MQ2 is amazing (Speaking of which, I plan to update the Item Description to Mimic MQ2's) it doesn't tell me were items drop, who drops them, and if a vendor sells that item. So back to the editor.

Sesmar - Is there a way to speed up the draw on the GUI, the player editor takes .4 seconds to draw and it is very annoying. I would be grateful for the assist.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
  #27  
Old 03-14-2008, 06:20 AM
ChaosSlayer
Demi-God
 
Join Date: May 2007
Posts: 1,032
Default

would be nice if you would also write a program that detects when a players uses MQ2 and reports to Gm so I can ban them from my server
Reply With Quote
  #28  
Old 03-14-2008, 07:10 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

Bah, MQ2 isn't cheating while I'm sitting there. Besides, it's my Cleric that is the bot. And may I say, my bot Cleric has it together alot better than any real person cleric ever has. It heals at 70% always, Buffs when a buff drops, and reports when it's getting whooped sending a gsay to my tank who automatically turns around and wails on the clerics problems. I just wish I could have a third box for a Mage or Monk. Mage for summoned items or a monk for more damage. Another warrior would be good as a second tank. The possibilities are endless. If I could figure advanced scripting I could make a mezzing Enchanter. I plan to add my higher lv Druid and Necro to the group later when I get the new server. Hell, I'll be a walking raid. No more endless LFG's to get an epic.

Any way, if you want to know who's MQ2ing, get the program and play with it for a while. Last Tuesday I saw some one manually boxing and they kept getting owned even though they were twinked to hell. I'm using starting gear (For just a little while longer) and I'm unstoppable. The signs of a MQ2er are a rigid behavior (Always healing at 70%) and in my case, the MQ2 doesn't understand the meaning of personal space. I turn around and he's right in my face. Used to make looting hell until I made the cleric do the looting. Smooth sailing since.

I wish there was a program tailored to witting MQ2 scripts. The best I have now is a syntax file for Notepad++.

<Unhijacking my own tread>
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
  #29  
Old 03-14-2008, 07:23 AM
ChaosSlayer
Demi-God
 
Join Date: May 2007
Posts: 1,032
Default

well you can see here that people have concerns about mq2 usage
http://www.eqemulator.net/forums/showthread.php?t=24569
Reply With Quote
  #30  
Old 03-14-2008, 08:26 AM
Kayot
Discordant
 
Join Date: Sep 2006
Location: Subsection 185.D354 C.12
Posts: 346
Default

People are complaining about jumping, not warping. They need to correct that.

Jumping or Holding is what happens because of either packet hacking, or #commands inside the same zone. MQ2 can't jump as it uses the EQ client and all of it's built in limitations. Holding happens if there is a ton of system lag. The server attempts to estimate where the client should be until it gets a packet. This is best observed (Ironically) two boxing with one client in the background. The second character seems to bounce backward over and over. I haven't found a way to have MQ2 over come this or to Jump to me or any where else.

As for summoning, I haven't found any case or code that will allow the summoning of items with the exception of #si or #summonitem being unrestricted OR having an alias that the MQ2 could find, in which case it is the Servers fault for leaving an unsecured command AND summoning an item within the packet watching range on a MQ2 Client running with a Plugin that I have yet to see with that aliased command. (As far as I can tell, it's impossible to see a #command as it stops at the server.)

For skill ups and AA, I'm not sure about the AA's and most of them don't work anyway. Skill ups are restricted by the client and there for only happen due to an exploit in the Skill system itself which could be done without MQ2.

Here's a question, have you ever used MQ2? I think most of the fear is caused by ignorance. openKore suffered from allot of that too. When I tried it I was impressed. I make a priest that followed me around and healed and buffed me. The main difference is openKore is stand alone while MQ2 hooks into the client. openKore even had to have built in functions to keep it from Jumping. oK also had something I wish MQ2 had. The ability to keep from KSing. It hasn't happened, but I know the possibility is there. So much that I put in a sniplet to prevent it. I'd like to make a plug in.

Other wise, MQ2 is just what its name states MacroQuest.
__________________
If at first you don't succeed destroy all evidence that you ever tried.

God doesn't give second chances... Hell, he sets you up the first time.
Reply With Quote
Reply


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 01:42 PM.


 

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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3