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

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 01-18-2007, 09:57 AM
creiss
Fire Beetle
 
Join Date: Jul 2006
Posts: 20
Default LDON Adventures

Hello all,

I wanted to inquire the status of LDONS adventure system.
I searched the forum but most of the replies were from 2004 and maybe 2005.
A lot may have changed during that time.

Any "news"?

-Chris.
Reply With Quote
  #2  
Old 01-18-2007, 09:58 AM
mattmeck
Guest
 
Posts: n/a
Default

nothing has changed, they dont work like live.

The zones are there, you can go to them, you can spawn them.
Reply With Quote
  #3  
Old 01-18-2007, 11:08 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Only 1 LDoN from each type appears to have spawns set (maybe 2). And from my testing, I cannot get an Adventure assigned to my group no matter what. This will be a welcome addition when it's completed.
Reply With Quote
  #4  
Old 01-18-2007, 11:54 AM
creiss
Fire Beetle
 
Join Date: Jul 2006
Posts: 20
Default

I spent 7 hours straight now playing with eq.

I am really surprised how advanxed this server is.
At parts I would not be able to tell original from emulator. Kudos!

-Chris.
Reply With Quote
  #5  
Old 01-18-2007, 07:24 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

Mattmeck is correct. As of EQEmu version 0.7.0-944 (our current build for all you n00bz), the server has no significant support for LDoN and no support at all for zone instancing. At one point I heard a rumor that FNW may be working on adding this system to the code, but I could be wrong. Right now we are PEQ are focused on finishing Luclin and then the Epic v1.0. After that, we will complete PoP and LoY. Once we get PoP going and if no one else has implemented zone instancing and the other features required to support LDoN, then I will take it on this coming summer.

I for one, loved the LDoN expansion so I have a lot of personal interest in seeing this getting implemented, but I also think it is a great expansion for our community since all our servers have smaller populations and LDoN really did a great job or providing quality content to smaller groups of players.
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
Reply With Quote
  #6  
Old 01-19-2007, 05:25 AM
Zengez
Hill Giant
 
Join Date: Nov 2004
Posts: 160
Default

Was thinking of the instancing problem, and figured I might chime in.... I'm not a C++ Programer, I just do database work, but I was thinking, what if we make duplications of the zones(Note) and have a dynamic zoneline, for example...

(This is all changed starting with step 1, but this idea may be more viable for non LDoN quest related instances)

You have Guk1, Guk2, Guk 3,..., Guk'X'.

When a player hits the zoneline there is a script, be it quest or hardcoded that says something along the lines of a checklevel,

If level < 5 goto Guk1, Else
If level <10 goto Guk2, Else
If level <15 Goto Guk3, Else
...
If level <5X goto GukX

This is obviously just an idea, For LDoN's specifically you could tie the dynamic zone to a tag on a dynamic quest, example;

Step 1:

you get an adventure quest and it essentially just flags you with a 2 piece code, for simplicity say it is 4A (obviously you'd need to figure out how many combinations to see if you really need, say, a 6 character string for this idea)

Step 2:

The character runs to where the script code told him to when it assigned his flag (goto guk young grasshoppa!), and hits the zoneline;

Script goes off saying...

If "First_string_code" < 1, goto Guk1, Else
If "First_string_code" < 2, goto Guk2, Else
If "First_string_code" < 3, goto Guk3, Else
...
If "First_string_code" < X, goto GukX, Else

This will say which of the unique zones to go into...

Step 3:

Ok, now (in theory) You're in the correct zone, now to pop the right type of quest and the right level (collection, kill all, boss kill)

If "Second_String_Code" = A, spawn "Collection_Quest_Instance"
If "Second_String_Code" = B, spawn "Kill_Everything_Instance"
If "Second_String_Code" = C, spawn "Kill_Boss_Instance"


That way the first string pops you into the right Zone, the second one pops the right kind of quest and the right level of zone in terms of LDoN specifically... I'd imagine allowing a dynamic quest-script based zone-line would have unimaginable possibilities, especially for those that want to put together truely customizable servers, so doesn't seem like the work would be wasted on just a few instanced zones throughout the game... But like I said, I'm not a C++ Programmer so I don't know how hard this would be to integrate, so I just thought I'd throw it out there as brain candy.


(Note) I know there are already duplicate zones for all the LDoN zone's but I'm under the impression that these are actually unique zones in terms of physical design and setup, not duplications of one another... a true 'duplication' may not be necessary, I suppose you could tie the two strings together to spawn both the right kind of quest as well as the right level, Like I said I am just kind of brain dumping to get some ideas out there.
Reply With Quote
  #7  
Old 01-19-2007, 06:24 AM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

Quote:
Originally Posted by John Adams
Only 1 LDoN from each type appears to have spawns set (maybe 2). And from my testing, I cannot get an Adventure assigned to my group no matter what. This will be a welcome addition when it's completed.
Bet'cha I could get one to work with what we have now - trick is to get multiple instances of the same zone to work for individual groups(not to mention popping them with npc's within the pc level -range).
We already have a big portion of the temp zone we'd make accomplished with eqemus' "dynamic zone" system.
I can see it will get done one day - just there many more things that need to get fixed before that; we still have to detail a lot of the zones we have now, and code gets better all the time, but is still young. The more we spread our work out into more zones, the slower everything will get, because there's not too many people doing this work.
Reply With Quote
  #8  
Old 01-19-2007, 06:57 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Just a thought, but isn't Gloomingdeep supposed to be instanced? New player, all alone, doing the zone? If so, maybe that'd be something simpler to start playing with instancing (while waiting for the official word from the Big Kahuna).
Reply With Quote
  #9  
Old 01-19-2007, 07:05 PM
Wizardanim
Sarnak
 
Join Date: Jul 2005
Location: Super Top Secret
Posts: 64
Default

Quote:
Originally Posted by John Adams
Just a thought, but isn't Gloomingdeep supposed to be instanced? New player, all alone, doing the zone? If so, maybe that'd be something simpler to start playing with instancing (while waiting for the official word from the Big Kahuna).

Gloomingdeep is instanced... the first zone (tutoriala) (quest being, open a few doors... kill a gnoll or two, simple such) The second zone (tutorialb) which imo is also considered gloomindeep, isnt instanced. Tons of fr00bs and low lvl players runnin around finnishing initial quests untill being ported to primary cities.
Reply With Quote
  #10  
Old 10-24-2007, 05:40 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Golly I just love bumping old threads. Don't you? If this post needs to become it's own thread, please split it off. I just thought I'd continue here since it was easy to find.

Some discoveries...

Accepting an Adventure:
After some research, it appears the LDoN code that is currently in the emulator does support adventuring (except for that missing adventure_id offset), and if I interpret it correctly, how it used to work is a group of adventurers accept an adventure - and the "in use" flag goes up, so that particular adventure (and zone) are no longer available to another party. The second party comes along and wants an adventure, and again, the next one not "in use" is offered.

What I need Dev help with is either identifying the actual adventure_id offset in the playerprofile_struct, or as KLS suggested, using the extended profile to store the data for now. What I tried was adding a new value to the extended profile struct, then changing the existing code in client.h from m_pp.adventure_id to the new struct m_epp.adventure_id, but no love. I'm learning, but not fast enough. The bane of my existence is "GetAdventureID()", for anyone who wants to help figure this out.

If I could get more of a hint what else needs to happen for the emulator to globally recognize a new profile variable, I could continue to try and revive this functionality.


Titanium UI (maybe others?):
There is no support for the (newer) "pick your own style", if I remember correctly LDoNs used to be a crap shoot as to what adventure you'd get - and you'd have to decline and request again until you got the type you wanted (Collection, Kill, Rescue, Named). Also, there is no support for Normal or High Risk currently. I believe these toggles are newer than the old LDoN code by Cofruben(?)


Instancing - Nope!:
Next, as stated, there is no true instancing in the Emu yet - but I feel LDoNs could still work based on the above concept of "pick the next in line".


Dynamic Levels:
What I have not yet discovered is how the original developer sorted out the mob levels and/or loot tables for LDoNs of level 20, 30, 40, etc. In Live, I remember the dungeon created itself based on the average level of all party members (or maybe that was one helluva smoke & mirrors performance). The only way I can imagine it was done was each of the 7 or so base dungeons had a hard-spawn of mobs as Zengez stated above. Guka = level 20, Gukb = level 30... Gukg = Raid.


Adventure Time Limits:
"You have 90 minutes to complete your task" - there does appear to be code in place to start an adventure timer. I cannot identify if the 30 mins TO the dungeon, and 30 mins after timeout, is supported. But if not, that's probably the easy part. The expected functionality here is to accept an adventure, run your arse off to the dungeon, and click in before 30 mins is up (which is displayed on the UI if I remember). Then, you have 'x' minutes to finish the adventure. At the end of 'x' minutes, you still have 30 more minutes to ravage the place before you are ported out by the system (zone shuts down?) Again, I do not see this code, but I could be missing it.


Acquiring LDoN Points:
It appears the code is in place to award the party who meets the goal of the adventure, but of course I cannot test this yet. I see code in UpdateLDONPoints and SendAdventureFinish that makes me think this could currently work... which brings me to my next unsupported feature...


Spending LDoN Points:
If I give myself 1000 points and head over to a merchant, I am unable to buy anything. I am not sure if this is not currently supported in the emulator, or if I am doing something wrong because I am trying to cheat. =) Regardless, even without Adventure Merchant support, the savvy admin could come up with a different way to "sell" items to the player for winning adventures. Convert Points to Cash, or Tokens for hand in, etc. But of course, I'd prefer to buy direct.


Leaderboards:
I see nothing at all for tracking LDoN adventure bragging rights. When you click on the leaderboard buttons in the UI, the world complains of more unknown opcodes.
Code:
- Adventure Stats button: Opcode 0x5fc7
- Adventure Leaderboard: Opcode 0x230a
Putting these in patch_*.conf naturally does nothing, because there is no code on the back side to handle them anyway. So this would be a from-the-ground-up development effort to add this, which is the least important imo, but nice to have.


Missing Opcodes
I left this for last, because I honestly have no idea how to identify opcodes coming from or to the client. Example, if you hack the code around GetAdventureID() and manage to fake an assignment, you still cannot proceed to the adventure because of an opcode the client (I think?) is waiting for that is not identified anywhere.

In "Client::SendAdventureRequest()", after successful adventure assignment, wants to send something back to the client that is unknown
Code:
outapp = new EQApplicationPacket(OP_AdventureDetails,strlen(AF.text)+1);
The only reference to this I can find is in eq_opcodes.h and emu_oplist.h, and the patch_*.conf shows 0x0000. How do I find out what this opcode is so I can set it? I do not see any errors or warnings in any logs showing me unknown opcode like the incoming ones do, so I am at a loss here.


Bottom line:
First, without an adventure_id offset in "a" struct, the current code will not work. Re-writing it to add a field to the character_ table is not something I think we should do. Extended profile would be fine for now if I had more input on adding something to the extended profile.

Second, once I DO get that adventure_id, where does the OP_AdventureDetails get created if there are zero references to it in the source?

Lastly, can an actual dev review the code currently in client.cpp and zonedb.cpp and let me know if it's still viable, or should the whole system be scrapped and started over?

Thank you, that is my quarterly update.
-J
Reply With Quote
  #11  
Old 10-24-2007, 06:48 AM
gernblan
Discordant
 
Join Date: Aug 2006
Posts: 394
Default

Personally, once this does (eventually, I know) get sorted out, I'm hoping instancing is an OPTION... to me, instancing is a great way to just eat server resources like crazy.

Maybe something like you said, a "next in line" type thing, with the zone being able to be locked for a group (or globals used to temp flag players to be "allowed" to go in for that adventure but nobody else until it resets)...

IMO, LDoN was horrible on Live, boring to the max, the rewards blew, it was redundant (all the zones looked the same)... and was the most pathetic attempt at a time sink since Luclin. LDoN convinced me that SoE hired chimps to just bang out cookie-cutter content for profit. People only played it because they were desperate for solo and group content, because SoE made SURE that only raid guilds could advance previously. Does that make LDoN good? Nope. It's probably the worst expansion they ever did.

On live, LDoN is a ghost town expansion... as soon as missions came out, people dropped LDoN flat. Everyone knew it stunk, everyone I knew hated it. To me, it should be the lowest priority to emulate especially since far more important things (like AAs, tribute, leadership even, class balance, etc.) still do not work. Even pets still aren't working right. This is the stuff that needs to work first, I think. Not some expansion almost everyone I ever met hated with a passion...

If you want instancing, I'd rather see missions and mission zones worked on before this turd of an expansion. I'd rather use the LDoN zones as static zones, chain them together for massive raid crawls or something (which makes a lot more sense to me, you know, like a maze of twisty little zones, all alike ... or even swap many of them out with custom (openzone) zones.

I mean this is JUST MY OPINION, but the deeper I can bury LDoN on my server, the better.
__________________
--
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

Last edited by gernblan; 10-24-2007 at 02:53 PM..
Reply With Quote
  #12  
Old 10-24-2007, 09:33 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

As an opposing view, LDoNs give smaller groups (and in theory, smaller servers) something to do without ruining the zones that do require larger groups or raids. I was a big fan of LDoN because of 2 things; 1) it introduced instancing, so that asshat level 65 couldn't come steal my goodies I camped 900 hours for, and 2) me and my very busy RL mates could dash into the game, take an adventure, knock it out, and still have time for dinner and a movie. Shrug. It's all about perspective.

As for priority in emulation, I agree it is not the top-most priority. That's why >I< have been looking into it - a non-developer who can barely spell C++. And I have only harassed Core Dev 2 times about it

However, I feel that if this gets some attention, and some architecture gets implemented to support not only adventures, but tasks and missions, it would open the door to many of the newer features you do like - like DoN Missions. It seems basically the same. Grab a mission, complete it, get crystals. How is that any different than LDoN points?

As for the zones all looking the same... that's called Themes, silly. But yes, after 200 of them, they started to rake on ones nerves. However, imo, missions and tasks are no less redundant and boring after awhile. They all still need work, and someone should step up, git er dun.
Reply With Quote
  #13  
Old 10-24-2007, 02:11 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

I just had a thought, and wanted to jot it down before I forget (again)

I wonder if using the spawn "conditions" for spawning the same dungeon with different configurations of mobs (levels, strengths, bosses whatever)... It would be more work on the front end, but if somehow an adventure could trigger a condition based on, say, the average level of your party, that would be cool.

There. Documented.
Reply With Quote
  #14  
Old 10-24-2007, 03:10 PM
RangerDown
Demi-God
 
Join Date: Mar 2004
Posts: 1,066
Default

I think that was one of the major reasons for putting in the spawn conditions

(The three I cited off the top of my head were the LDoN adventures, day vs night spawns like Kithicor, and major events like the later stages of Coldain ring quests that significantly affect spawn tables, such as dead Coldain everywhere in thurgadinb if you fail the quest)
__________________
<idleRPG> Rogean ate a plate of discounted, day-old sushi. This terrible calamity has slowed them 0 days, 15:13:51 from level 48.
Reply With Quote
  #15  
Old 10-24-2007, 06:21 PM
gernblan
Discordant
 
Join Date: Aug 2006
Posts: 394
Default

Oh forgot to mention /trader in bazaar.

That alone is keeping all emu servers from having real economies.

John your points are valid. All I am saying is that with the limited dev resources this project has (which of course there are many reasons for I do not pretend to know them all or even care, I just like to hope that all that can be done is being done day to day)... all I am saying is that maybe as a community we should pick our battles carefully.
__________________
--
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
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 08:49 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3