The time now is Tue Mar 09, 2010 7:36 pm View unanswered posts
View active topics
  • Portal Menu
  • Links
  • Welcome
Welcome to the EQ2 Emulator Project!

Our efforts here are to emulate the Everquest II experience as close as possible to the actual live game by Sony Online Entertainment. Our project consists of a very small team of C++/LUA Developers, Content Developers, and Alpha Testers.
The EQ2Emulator Project is offered to the community as an "Open Alpha" project; which means while our server is not yet complete developed or thoroughly tested, you may get your hands on the source code, binaries and a rudimentary database and get right to playing or developing your own worlds!
To see more of what we're all About, read here.
Project Status can be found here.
You can join us on IRC for additional information.
Current Supported Client: 6196L (Feb 1, 2010)
TRIAL CLIENT NO LONGER SUPPORTED!
Again, welcome to the project site.
  • Announcements
No new posts John Adams takes the lead!
After long discussions and a hard decision by LethalEncounter, it has been decided that yours truly (ME!) will take on the role of Project Admin for EQ2Emulator. Lethal has an extremely heavy load, between work, school, and personal life, and that leaves very little room to administrate an entire project of this magnitude. Since I seem to have nothing better to do with my life :lol: I have offered to fill at least one of his shoes.

EQ2Emulator is not any one's project. I have always felt this project survives thanks to many people who contribute in server code, content, database support, and especially the testing of our work, and feedback on our forums from the general community. So when I say "takes the lead", I merely mean I will continue in my current role of pushing the project along as best I can. I am no one's boss, just merely an advisor (and whiner, bitcher, complainer, etc etc).


    I want to take a paragraph to emphasize the enormous gratitude everyone on this team has for LethalEncounter and his efforts over these past 5 years, with mind-boggling progress being accomplished by this one man during the last 2 years I have been with the team. Without Lethal, this project never would have gained a foothold, never would have progressed as far as it did, and I for one would never have become so eagerly involved if it weren't for working with such a fantastic individual.

I assure you, progress will continue - has continued - in LE's absence, as you can clearly see by our changelog. This brings me to my next exhaltation;

Without Scatman, EQ2Emulator project would be dead in the water right now. I want every soul who visits this forum to comprehend that. Scatman started developing some C++ code with LE a while back, and since then has really come to understand the code, the intricacies of packets and data, and alone has implemented a dozen new features or support for EQ2Emulator. Again, without him, we'd have zero development going on right now. As a reminder, almost every piece of content you see in our current TessEQ2 database/server was developed by Scatman. This guy is a machine!

Zcoretri has stepped up to become the structs/opcodes master, which is what is required to continue development and current client support. Without his efforts, we'd be stalled at whatever our current client was end of last year (2009). Zcoretri is also working his tail off to get our data parser to extract even more information from our collected logs, -and- developing every damn spell in the EQ2 game single-handedly.

Without these two guys, I'd be lost. :)

Secrets recently came on board helping with some client forensics, and continues to offer input on project development. l333 (Jenova) has been eager to help with setting up our NPC spells and abilities, and other aspects of our player data. Before them, we remember Woody and Benas (to name a few) collectors who did an outstanding job of getting us the data we currently use to populate your world. Xan and Nalandial helped greatly with content and concept during their brief stay on the team, and welcome any and all of them back to continue our efforts, anytime.


As I said, EQ2Emulator is not any one's project. Without your help, we stall. Now is the time to get involved, people. Read our stickies, collect our data, help with content, jump into server development, and let's keep this machine well oiled and running properly, and get this project done.

Thank you for your time and contributions.
Author: John Adams Posted:
Wed Feb 17, 2010 4:16 am
Replies:
10
Views:
143
Last Post:
Mon Mar 01, 2010 5:25 am ilythor View latest post

No new posts EQ2Emulator Update
For those of you who do not checkout code or review the change log, here is a brief overview of the work that's been done the last few mos.

Let me sum up that a TON of bugs have been fixed (thank you, testers!!)

Also,

    General:
    Scatman/JA: Added 'Collecting' as a valid groundspawn harvesting type.
    Scatman: Implemented the lottery :P
    Scatman: If you slay an epic mob, an announcement will appear in guild of your heroic actions!
    Scatman: Imlemented group exp.
    Scatman: Implemented guild recruiting.


    Guilds:
    Scatman: Guilds!


    Spells:
    LethalEncounter: Added spell bonuses.
    Scatman: Implemented group buff support.
    Zcoretri: Added support for text replacement in spell success messages.
    Zcoretri: Added support for text replacement in spell fade messages.
    Scatman: Added support for true AOE spells.
    Scatman: Added support for stifle, daze, and stun. Use AddControlEffect with types 2, 3, and 4 respectively.
    Scatman: Added support for group enemy hostile spells (spells.target_type=1[Enemy] and spells.group_spell=1).
    Scatman: Added support for Concentraion (not in the changelog)
    Scatman: Implemented spell scribing from spell scrolls (be sure to update your WorldStructs.xml).


    LUA Fixes/Additions:
    Bolly: Added LUA function AddSpellBookEntry(Spawn, SpellID, SpellTier).
    Bolly: Added LUA function HasFreeSlot(Spawn).
    Scatman: Added LUA function Attack(NPC, Player).
    Scatman: Added LUA functions AddSkillBonus(target, skill_id, value) and RemoveSkillBonus(target).
    Scatman: Added LUA functions AddControlEffect(target, type) and RemoveControlEffect(target, type). For now, type=1 is mez. Later on, type=2 will be stifle and type=3 will be daze, etc.
    Scatman: Implemented LUA functions GetVariableValue(name) and GetCoinMessage(total_coin_amount) (You can use these together to print out how much the current lottery is eg. 500 platinum 50 gold).
    Scatman: Added LUA function ApplySpellVisual(Target, SpellVisualID).


    LoginServer:
    LethalEncounter: Added ability for the Login server to display the custom zone name from the player's World server.


    Database:
    JohnAdams: DB: Pushed out InnoDB changes to World database, cleaned up some unused tables from download

As you can see, since Dec 1 2009, we have been very, very busy adding and fixing stuff. What I'd like to see now are more people online testing this stuff out, not just playing with items ;) Group up! Join guilds! Go adventuring together, because without group testing, we have no idea if this stuff works as expected.
Author: John Adams Posted:
Sat Feb 13, 2010 11:00 am
Replies:
0
Views:
188
Last Post:
Sat Feb 13, 2010 11:00 am John Adams View latest post

No new posts Why is my Bug set to ____ ?
Here's a simple guide to help our bug submissions understand why a bug might be flagged to something other than Assigned.

    New - of course, this is your new bug and it hasn't been looked at yet

    Already Fixed - obsolete, will be removing this one eventually. Replaced by "Fixed in Dev" by request

    Fixed in Dev - Since our server/content teams work on private servers, our work is not available to players until an admin (namely, me) updates TessEQ2 with the latest binaries and content data. When a dev finishes fixing a bug >in development<, this is the status they set. You should not re-test bugs marked as Fixed in Dev, unless you have access to the development environment

    Fixed - Bug is fixed, and is live for you to test

    Server Specific - Bug does not exist on official EQ2Emulator server, so we cannot fix it ourselves

    Invalid - Bug was submitted with insufficient or invalid data to reproduce, and will be closed

    Duplicate - Bug has already been submitted by someone else. Search the Bug Tracker before submitting new bugs!

    Not Implemented - Feature not yet supported by EQ2Emulator, and is therefore not a bug. Search the Project Status before submitting new bugs! This is probably the most annoying but for us developers, next to duplicates.

    Not a Bug - Could be that your bug works as designed due to current EQ2Emulator limitations (like spawning cliffdiver hawks for you to kill rather than giving you molerats to summon them) and content will eventually be fixed. Not a Bug is generally a work-around for now.

    By Design - This is not a bug because that is the expected behavior based on EQ2 Live

    Deleted - Your bug has been removed from Bug Tracker due to one of the above reasons


A side-note about submitting bugs:
Every single bug submitted is appreciated, because it means you as a player took the time to open the /bug window and write it up. For this effort, the devs and I are extremely appreciative. However, you will slow us down and waste your own time submitting a bug that is already in the database, or for a feature that is not yet implemented.

Do yourself (and us) the favor, keep a browser window open to our Bug Tracker and Project Status modules, and simply search either for your alleged bug before you spend the time in that form. It takes you a lot longer to send the bug than for me to flag it Deleted ;)

Thanks again for the continued bug reports!
Author: John Adams Posted:
Sat Jan 30, 2010 12:41 pm
Replies:
0
Views:
44
Last Post:
Sat Jan 30, 2010 12:41 pm John Adams View latest post

No new posts Preliminary 0.8.0 Wish List
Since 0.7.0 is getting close to release, it's time to start considering the remaining functionality of EQ2Emulator that we want to see implemented before the elusive Beta phase begins at 0.8.0. Including items I took off the 0.7.0 list, here's what I think is left for 100% Emulator functionality. Note that I do not anticipate every one of these being in 0.8.0, but if you can help me pick out the MAJOR systems we'd like to see for Beta, I would appreciate it. Stuff I think is MAJOR is in red.

    For instance, Cross-Server chat is not a Beta need, but AA, Collections, or Implied Target is.

We'll hash this list out privately, then post a true 0.8.0 list in Server Development once we decide.


[ ] Achievements (Quest Journal)
[ ] Alternate Advancement
[ ] Arena (not battlegrounds)
[ ] Collections
[ ] Cross-Server chat
[ ] Discovery XP
[*] Guild Banking
[*] Guild Recruiting
[ ] Implied Target
[ ] Inventory / Appearance
[*] Knowledge Book
[ ] Languages (racial)
[*] Loot System
[ ] LFG / LFM
[*] Maintained Spells
[ ] Maps/Fog data
[ ] Marketplace
[ ] Mentoring
[*] Merchants
[*] Persona
[ ] Pets
[ ] Player/Guild Housing
[ ] PvP
[ ] Quest Journal (Achievements)
[ ] Raiding
[ ] Recipes
[ ] Scribing
[ ] Slayer Status (part of Achievements? Zexis)
[ ] Spawn Group Movement
[ ] Tradeskills
[ ] Waypoints
[ ] Weather
[ ] XP Bar
[ ] Zone access flags
[ ] Zone Instances
[ ] Zone Reuse Timers




New Implementation:

    Achievements: We need to identify and make a table of all possible Achievements and their requirements. Would this be similar to the Quest system, maybe? `character_history` and `character_achievements` tables might also need to be added.

    Alternate Advancement: Work has already begun on this system in as much as identifying structs and data. Likely need a table for AA details (separate from Spells?) and a `character_aa` table.

    Collections: Have a ton of raw data for Collections, just need to implement the server-side of it and figure out how to use the data.

    Additional Notes:
      We need to add grid_id support to ground_spawns so in areas that have ?, we can have one type of reward in one area vs another type in another, without having to create multiple ? spawn entries.

      Also need to fix a current bug in Collecting which raises Gathering skill, since there is no collection_skill: Collecting (Scat)

    Cross-Server chat: Servers using our Public Login Server have the option to make channels/receive tells from other servers. Not sure if/how this works for Live since I have never sent a tell to another SOE server before (though i think Loooonnngg ago, we had a channel to EQ1 from EQ2 - I could be dreaming though)

    Discovery XP: When I come to a new area, show I discovered it and give me XPz! We have a lot of raw data for locations, just need to figure out how to use it.

    Implied Target: Target a fellow Player, and defensive spells land on them while offensive spells land on THEIR target.

    Inventory / Appearance: Change characters appearance by using the Appearance tab in Inventory - have those items override the Equipment appearances.

    Languages: Zcoretri started looking into how to implement this. We're getting raw data parsed now, but need to figure out how to "garble" unknown languages - both in NPCs and in chat.

    Loot System: Putting this in New because the system has to be completely re-written to support the "Smart Loot" concepts previously discussed last year. This is something I'd like to put as a priority, get it out of the way, so we can build Loot tables.

    LFG / LFM: Looking for Group and Groups looking for more players - make search UI find these players. Is this data persistent? Do we need tables to store LFG/LFM settings?

    Maps/Fog data: While Maps in general are working, I put this in the New Implementation because the Fog data part has not even been considered yet. LE was dreaming something up, but we haven't moved forward on it. Need a data storage method; how will we track what parts of the map the player has been to?

    Marketplace: This would be a great feature to have during Beta, because we could reward Beta Testers - but we could do that other ways, so not critical. As long as there's no hard-coding in the client to go to SOE's sites...

    Mentoring: Yes. Gimp me out so I can help teh nubz

    Pets: Huge system. Players /bug this at least once a week... would love to see Pet's early in 0.8.0 development

    Player/Guild Housing: Need the Access, Escrow, Visit, Tour options and placement of house items. Need to (re)design character_house* DB tables (recently dropped because they were not used)

    PvP: Player-versus-player combat. This is probably a pretty huge system, though I personally would love to see it in Beta as a major feature.

    Raiding: Allow 4 groups to link together into a Raid. I have no idea what this system entails, as I have never Raided in EQ2

    Recipes: We have lots of raw data for recipes, just need to tie it to the UI

    Scribing: I think we finally need to be able to purchase books and scribe them into our Knowledge and Recipe books. What do ya say? ;)

    Slayer Status: Hunter of Fairies! We need to track how many of a specific type of Mob a player has killed. I was considering using a new `character_history` table, not only to track the progress of a character, but maybe use it to accumulate race-type kills. Either that, or we use the recently added Statistics functionality - which may be better.

    Spawn Group Movement: Much like spawns have their movement loops, we need the ability to move an entire group of NPCs around the map - following the leader, so to speak. For Guards, we need all guards to stop moving if the leader is Hailed (I think), but if a follower is hailed, the rest keep moving and the remaining guy has to run his course to catch up. For Aggro NPCs, I believe spawn_groups will handle the fact they all aggro when you attack any one of them, so likely no continue wandering is needed -- except in the case where the group kills the player(s).

    Tradeskills: Crafting would be huge and would like to see it in Beta

    Waypoints: Trails work for Map clicking, but no Waypoint options yet. Likely need a waypoints table added, unless these are considered 'locations'?

    Weather: LE started looking into this last year but we never finished it up. I'd like to see some Weather patterns in EQ2Emu! I think it would merely be an aesthetic feature that adds a lot of depth to the game.

    XP Bar: Enable/Disable all XP gain options (Combat, Tradeskill, Quest, AA, don't switch, Vitality and XP Bonus)

    Zone access flags: Locked zones

    Zone Instances: This is "in general". Ability to spawn zones for single players (housing), guilds (guild halls), duo/trio/group/raid adventure instances, etc. Including:

    Zone Reuse Timers: Reuse timers on said zone instances. I am assuming a Zone Reuse Timer is ONLY for zones that can be instanced? Or could a reuse timer be on a regular zone (like Qeynos Harbor)?



Complete existing systems:

    Guild Banking:

    Guild Recruiting:

    Knowledge Book: Allow sorting, storing of sorting, deleting entries(?) and Tradeskill abilities (though I think those already work)

    Maintained Spells: Ability to remove maintained spells/buffs, add Concentration points. Also, persistent buffs/detrimental spells cross zones and camping.

    Merchants: Add support for Status purchases and gaining status selling items

    Persona: Get remaining Skills/General stuff to show up, add Titles, add back-end server support for the Options tab (UI switches added by paulgh, but never any back-end support).


Ok, what have I overlooked for 100% emulator completion?

Then, what items do you feel are mandatory for Beta (est 2011) vs can wait for 0.9.0 and 1.0.0 final release (2012)?


Edit: Of my suggested list above, here are the top 5 things I want to see implemented asap - if they can be done before 0.7.0, great. If not, I'd like these to be the first things we get implemented next cycle. These will help with player testing, and seem small(ish). I do not want to have to revisit every zone over and over, so let's get all we can done related to scripting.

    1. Loot System - Major re-write needed
    2. Discovery XP - zone building
    3. Spawn Group Movement - zone building
    4. Scribing - get players purchased/looted spells/arts
    5. Implied Target - Player testing


Floor's open.
Author: John Adams Posted:
Sun Jan 17, 2010 12:46 pm
Replies:
21
Views:
196
Last Post:
Sat Feb 06, 2010 8:58 pm ZexisStryfe View latest post

No new posts IMPORTANT: Database changes coming!
In preparation for a database release (TBD) we have to make some dramatic changes to our existing DB structures. What this means to you is that soon, when you connect to our Login server, your databases will get many critical updates - including conversion to the DB engine to INNODB to support transactions, foreign keys, and a few other nice MySQL features.

After the InnoDB updates occur, each dynamic table will receive new foreign keys and relationships to make the database more stable and consistent.

THIS IS WHERE THE WARNING COMES IN!!!
Please pay attention to this, if nothing else.


If you have pre-existing data in your database that is INCONSISTENT, these FK/Relationships updates will fail!

This is not an error on the part of the updater, but in your data. This means you have to CLEAN OUT your bad data before you can get these updates applied.

My best advice for newer servers, delete everything and get an entirely new DB.



If you *must* preserve your user or custom data, I will instruct you (below) how to manually apply these updates _around_ your custom data.


First a little explanation of what Relationships mean in MySQL.
    Relationships between two tables generally mean, one table "relies" on another for consistency. Let's say you have a Character who is located in Zone ID 12. You cannot go to your Zones table and delete Zone ID 12 because a character is in that zone, thus keeping the database consistent.

    However, you can change the Zone ID of zone 12 to 112, and automatically, every Character that was in zone 12 is now updated to zone ID 112. This is called Cascading Updates.

    Now let's talk about another example. Say you have Character "Bob", and his char_id is 1. Bob has a dozen or more tables associated with his character data - like his details, his inventory, his spells, skills, etc. If you delete Bob, you'd also have to delete Bob's record from all those other tables manually (or in the server code).

    Using Relationships between `characters` and all the other `character_*` tables, and a Cascading Delete relationship, now when you delete Bob from the server, all his associated data is also deleted automatically. Like magic!

That is a quick and dirty explanation, and if you require more in-depth, google it ;)


So using these examples above, you cannot setup a relationship between Characters and Zones *IF* there is a character sitting in a zone_id that does not exist. That is the biggest caveat of setting this stuff up right now. You have to go into your data and make sure you have ALL your data consistent, or the FK's will fail to update.

Likewise, if there is a deleted Characters record, but any of the other character_* tables still has an orphaned record for the deleted character, the relationship cannot be built. It is a tedious task, but once this is done, our database will be fairly solid.


I have chosen now to do this for many reasons; one being, I have promised to do this since new years of 2009 :D but also, our database is pretty much done being changed (constantly) so time to lock it down, and hopefully release some content.


Next post here will be the manual "HOW TO", so stay tuned while I write it up.


NOTE: You will not get these new DB updates if you do not update your EQ2Emu sources. You are safe to stay where you are and take your time cleaning up data first, then grab the new sources (version to be announced) to get these updates to apply.
Author: John Adams Posted:
Mon Jan 11, 2010 11:51 am
Replies:
27
Views:
419
Last Post:
Tue Jan 26, 2010 7:38 pm John Adams View latest post


  • Who is Online?
Our users have posted a total of 17551 articles
We have 3135 registered users
Our newest member Spectre1138
In total there are 5 users online :: 0 Registered, 1 Hidden and 4 Guests  
Most users ever online was 29 on Tue Jun 30, 2009 2:37 pm
Users browsing this forum: None
Legend: Administrators, Beta Testers, Content Designers, Database Project, Developers, Global moderators, Third Party Developers
  • LoginServer
Status : UP
Servers : 5
Players : 1

Server List
 
  • Server QuickStats
Server Name
Sytherian Legends     1
TessEQ2     0
Banshee Realm - Blizz's EQ2     0
Parallax     0
EQ2Emu DB Project     0
Zebux     0
Based on last 24 hours activity
  • Last Message Post
  • No new posts back again
     EQ2 Discussions
    Azuth4 
    Mon Mar 08, 2010 3:07 am 
  • No new posts Hello everyone
     Introductions
    Hex00010 
    Sun Mar 07, 2010 11:49 am 
  • No new posts Hey all
     Introductions
    94dgrif 
    Fri Mar 05, 2010 11:25 am 
  • No new posts Hey! :)
     Introductions
    r3v0 
    Tue Mar 02, 2010 3:27 pm 
  • No new posts John Adams takes the...
     Announcements
    John Adams 
    Wed Feb 17, 2010 4:16 am 
  • No new posts Hey guys
     Introductions
    Avalon 
    Sat Feb 27, 2010 11:23 am 
  • No new posts Touch of nostalgia.....
     EQ2 Discussions
    John Adams 
    Fri Feb 19, 2010 6:52 pm 
  • No new posts Collector's Notes
     EQ2 Discussions
    Arremis 
    Fri Feb 19, 2010 5:35 pm 
  • No new posts Forums Slow
     EQ2 Discussions
    Arremis 
    Sun Feb 14, 2010 5:36 pm 
  • No new posts EQ2Emulator Update
     Project Updates
    John Adams 
    Sat Feb 13, 2010 11:00 am 
  • This page was updated Tue Mar 09, 2010 9:59 am