PDA

View Full Version : Project Revive


Kayot
02-11-2008, 05:33 AM
Hello, Kayot here.

I'm reviving the project. Mainly because, my WoW emulator seems to have disappeared from the net and RO while fun doesn't really need a DB editor.

I'm going to take it slow, and steady. I'll work on it until I get a copy of the right client for EQ2Emu (My brother stopped playing so I don't have the correct exp.) and EQ2Emu gets a database worthy of editing (Structure wise).

What I need:

What all has changed in the last few months? Do I need a new client? And has the setup changed? I figure I'll have to download the new Database.

Once I get an Emu up, I'll see what I can do. And for those who dislike compiling a Visual Basic Project, I'll make an installer. (Gets to work on a nice homepage for releases)

I know the BETA tag pushes people away. I'd like feedback so please say anything about the changes that will be made in the future minus any complains about it being made in VB. Besides C# and VB both translate into the same package. Lets see what happens from here.

trevius
02-12-2008, 03:04 PM
You are working on something for EQ2Emu? I thought your projects here were for the normal EQEmu. Or is this something new or maybe just a typo? If it is your EQEmu project for database management tools, then I will definitely give them a try. Haven't looked into your stuff much yet, because it hasn't been up-to-date from what I have read and I wasn't able to use it.

It's always nice to have a good variety of tools. I love GeorgeS' tools, but I would definitely like to check out any other tools that are useful and current.

I am sure the project must have been pretty awesome at some point, since you have your own section in the forums :D Can't wait to hear more, and see updates on how it is coming along.

TheLieka
02-14-2008, 05:47 AM
That's great news Kayot. I look forward to new releases!

Dax

ChaosSlayer
02-14-2008, 08:36 AM
IMHO concentrate of a char editor most of all: stats, deyty, race.
Cuase thats the one we are missing the most =)
May as well make it stand alone so it will small and fast to downlaod/use

Kayot
02-14-2008, 09:46 AM
Originally I was going to make it stand alone, but that would kill drag and drop. Not to mention Item/Spell storage.

Funny thing, the first editor I made was mainly so I could juice my characters without a lot of data searching. Then I started playing on PEQ and used my program to tell me where items dropped, spawns spawned, and merchants had rare whatever. It was nice using a single search of all weapons sold by default on merchants so I could buy the best on PEQ. Though I'm sure it's also underhanded.

BTW, my laptop can't go full screen, it says it fails to initize. Any one solve this problem? It's putting a major kink in development.

leslamarch
02-14-2008, 10:05 AM
Kayot,
Very Excited to hear the news, always been a big fan of your work :D I really like the current format of it.

So_1337
02-14-2008, 10:11 AM
What OS are you running on your laptop? The last time I had problems with it saying it couldn't go full screen, I was trying to run DOS programs on Vista and had to fire them up in DosBox.

Kayot
02-14-2008, 10:47 AM
XP all the way baby, and HP said it couldn't be done on a new laptop.

leslamarch: Which part do you like the most?

leslamarch
02-14-2008, 11:15 AM
Drag and drop feature, where the storage applies to all parts of the program. The starting items for each race class and so on. I guess the best part though is the all in one, all selected from the editors menu. Just a Huge fan of this editor. :D

ChaosSlayer
02-14-2008, 11:25 AM
Originally I was going to make it stand alone, but that would kill drag and drop. Not to mention Item/Spell storage.
.

you see, lost and lots things abotu char and or items can be edited directly in DB - items, charges whatever.

the one thing i cannot posible edit is the stupid BLOB file, which contains 4 essential things: stats, deyty, race and class - thats why i belive this little thing should be stand alone =)

AndMetal
02-14-2008, 07:16 PM
the one thing i cannot posible edit is the stupid BLOB file, which contains 4 essential things: stats, deyty, race and class - thats why i belive this little thing should be stand alone =)

Not trying to derail the thread, but here is a relatively easy way to change the profile blob using a MySQL query:

UPDATE character_ SET profile = INSERT((SELECT profile FROM (SELECT * FROM character_) AS x WHERE id = 748),(4720+1),4,RPAD(CHAR(100),4,CHAR(0))) WHERE id = 748;

This would give a character with an ID of 748 100 platinum.

In theory, you can change 4720 to any field # in the profile blob (http://www.eqemulator.net/wiki/wikka.php?wakka=EQEmuDBSchemacharacterprofile) & the 100 to whatever numeric value you want it set to. You would then need to change the 4's to correspond with however many characters the data takes up (32-bit integers are 4, for example), otherwise the blob will become corrupt (too many/too few characters).

Some might be wondering why there are 2 subqueries. The answer is discussed here (http://www.xaprb.com/blog/2006/06/23/how-to-select-from-an-update-target-in-mysql/), and it's basically a workaround for not being able to query the same table in an update.

I verified it works without any issues on an existing toon.

If anyone has any questions about this, please feel free to ask in another thread.

Kayot
02-15-2008, 12:33 AM
I just had the editor dump the profile into an array ^-^, it takes a bit more ram but makes adding edits a joke.

TheLieka
02-15-2008, 04:15 AM
There is ONE thing that I haven't been able to access with any available tools, and it annoys the piss out of me.

PLAYER CORPSE DATA

If anyone were to figure out this riddle, I would gladly build a goat-shrine in your honor.

Dax

AndMetal
02-15-2008, 05:29 AM
PLAYER CORPSE DATA

If anyone were to figure out this riddle, I would gladly build a goat-shrine in your honor.


I'm always up for a challenge :)

I know it's 228 bytes long. Unfortunately, that's about all I know :D There's nothing in the common source files about it.

sesmar
02-15-2008, 08:26 AM
I am not sure if this is what you are looking for, but this might point you in the right direction.


struct DBPlayerCorpse_Struct {
int32 crc;
bool locked;
int32 itemcount;
int32 exp;
float size;
int8 level;
int8 race;
int8 gender;
int8 class_;
int8 deity;
int8 texture;
int8 helmtexture;
int32 copper;
int32 silver;
int32 gold;
int32 plat;
Color_Struct item_tint[9];
int8 haircolor;
int8 beardcolor;
int8 eyecolor1;
int8 eyecolor2;
int8 hairstyle;
int8 face;
int8 beard;
ServerLootItem_Struct items[0];
};


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.

AndMetal
02-15-2008, 08:55 AM
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.

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.

Kayot
02-15-2008, 07:47 PM
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.

AndMetal
02-16-2008, 09:05 PM
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 (http://customeqemu.cvs.sourceforge.net/customeqemu/customeqemu/includes/profile.php?view=markup#l_91) (from my PHP-based editor (https://sourceforge.net/projects/customeqemu), using a few custom functions):

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:

$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 (http://customeqemu.cvs.sourceforge.net/customeqemu/customeqemu/inventory/aa.php?view=markup#l_76):
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 :)

Kayot
02-25-2008, 08:35 AM
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.

gernblan
03-04-2008, 03:17 PM
This is GREAT news!

I think your project has great potential!

Kayot
03-07-2008, 01:12 AM
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.

AndMetal
03-07-2008, 06:42 AM
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 (http://customeqemu.cvs.sourceforge.net/customeqemu/customeqemu/spells/add_spells.php?view=markup) 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.

Kayot
03-08-2008, 10:02 AM
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.

Amra
03-09-2008, 04:29 PM
Good to see you back in action, Kayot :)

sesmar
03-10-2008, 12:38 AM
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.

Kayot
03-14-2008, 04:43 AM
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.

ChaosSlayer
03-14-2008, 06:20 AM
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 :cool:

Kayot
03-14-2008, 07:10 AM
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>

ChaosSlayer
03-14-2008, 07:23 AM
well you can see here that people have concerns about mq2 usage
http://www.eqemulator.net/forums/showthread.php?t=24569

Kayot
03-14-2008, 08:26 AM
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.

ChaosSlayer
03-14-2008, 08:42 AM
there still a very valid cheating problem of person seting up Xp farming bot in semi-safe spot, and going to sleep/work, returning 12 hours later and coutning in 3-4 levels of xp and cash

buffying bots for donations are also very real

there are bots sample over mq2 forums that allows you to make lev 1 char in qeynos which will level itself to lev 5 ALL BY ITSELF, loot and even run to sell when his bags get full.

cavedude
03-14-2008, 09:26 AM
There are numerous plugins for MQ2, notably MQ2DoCrack that can give players GM like power, including warping, zoning, summoning items, and equipping items they shouldn't be able to (which is why a recent item check was added which made invalid items useless)

People on TGC have admitted to and been banned for using MQ2 in this way. (The most recent was a player who made himself 70, too bad we have a 65 cap, idiot)

MQ2 by itself is not malicious by any means, and I have no problem with people using it. It makes multi boxing a lot easier. It's just these damn plugins that cause problems.

Oh, and Live is effected very much the same way. The problem is, they are able to update their client to break the plugins and we can't

Kayot
03-14-2008, 09:29 AM
Could you give me a link to that? I've seen auto sellers, but I'm not sure how to path. It's be cool to send my Druid as a bot (I said it ^-^) to sell all my loot. As for buffing for donations, I could see that. But I also see two NPC's behind MB that can do far better for far less. Not to mention some people will be sitting there and doing the same thing. I personally don't like high level buffs because using them makes it so I won't learn my class. On live I played a cleric before all the Twinks/Super Buffs showed up. After twinking the qulity of Clerics fell like a stone. Hence why my Bot is so much better than a live player. Most players don't play a cleric right. This time I can have fun AND stay alive.

As for the XP, that is very risky. oK could do it because the maps were semi-2d. But for the most part it's hard as hell to do. Any thing that can give XP can kill you, and sometimes very fast. (Griffins in EC any one?)

Farming, yea it can be done. I wanted to do it in Gfay for tempers since those leafs are rare. But with the planer gear I don't think any one would compete for those ground spawns. Most farming is done in areas that most people would avoid or are tired of. On live farming is very profitable, so profitable that two of my class were nerfed to hell (Druid's Kiting, and Necro Fear kitting. Sure it can still be done but is far more dangerous.) On the H-Servers farming done for self gain is in my book cool. Like who wants to sit and hunt spiders for eight hours for silks and snakes for eggs? I haven't done it, but having it as a possibility gives me a toasty feeling.

Now farming for profit is wrong and most of the time is at common camp sites. Like planer farming for incredibly rare items to sell or trade. On the flip side, some farmers give it away which is down right cool. It isn't the programs fault, it is the user.

Saying MQ2 is cheating is like saying Guns kill people. If thats the case then I blame my pencil for all my bad grades. Besides guns don't kill people. People with mustaches kill people. <-- Very True

BTW, If you want to test it out you have to compile the client. This gets rid of MOSR of the retards who would abuse it.

- Cavedude - I agree, the plugins are the problem. I stopped playing my server because the GM commands made it boring. Botting is fun because it's like, "This is what I want you to do. Now I hope you do it. Dam Dam NO NO restart, Oh god, not the guard too. ACK. Well that was fun, lets try again." Cheating just makes the game trivial and boring.

ChaosSlayer
03-14-2008, 09:41 AM
you can drop by mq2 boards and see what is offered as "plugins" and various ready to go set ups =)
as far as "XP farmign is dangerous" this is only true for soem servers.
For exmaple on my server the dificulty set up rathly equal to that of eq2/diablo2 where a player is capable on taking on 2-3 equal con trash mobs at a time or a single mini-named. The xp gain per kill however is much much lower than on most servers, but overall pace of the game is more dymanic.
Under such set up, a bot can be easily be set up on even con/dark blue Xp camp and go away for 10-20 hours wihout much danger to himself

And tradeskiling bots just EVIL... Of course eq1 TS system blows (compared to eq2 where crafting is entertaiment in itself), but thats no reason for bot-crafting

ground spawn farming just... sucks...Specialy if they rare. You just park a bot on the ground spawn and go enjoy yourself while no other players never get a chance to grab the ground spawn.

Yes, guns don't kill people, but is a real pain in the arse to detect if someone harmlesly boting or outright exploting/cheating

Kayot
03-14-2008, 10:35 AM
True True, however ground spawns don't pop at the same location over and over. They spawn over an area. Thats important to remember.

BTW, I don't think your going to the right site. MQ2 has to be compiled, as do it's pluggins. I don't suggest using a precompile because it probably has viruses and trojins. Not to mention, it won't work without the right code.

I wonder how harmless I am...

ChaosSlayer
03-14-2008, 10:53 AM
oh no its the official site
by reday to go i mean a ready to go exmaples of the bot script to for exmaple make a cleric bot who will buff at other player request and even take donations =)
Some dude posted he run it on live and made about 5k plat in 24 hours while he was afk

Kayot
03-14-2008, 11:24 AM
A lot of those script unfortunately don't work. I know this because I tear apart other peoples scripts to figure out how to make them... BTW, I'm becoming a doctor... Be scared... Be very scared...

^-^ I think it's more fun to make the scripts then to use someone else's. My cleric script is very custom since all the cleric scripts I found either didn't work or sucked. The only problem I'm having is that saying "Healme" around my bot causes him to heal that person and I need to leave that in for when I add party members. Maybe gsay? Now to make a good pet class script, that will be a challenge.