EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   General::Server Discussion (https://www.eqemulator.org/forums/forumdisplay.php?f=601)
-   -   Dynamic Servers (https://www.eqemulator.org/forums/showthread.php?t=26255)

gierkep85 09-21-2008 06:34 PM

Dynamic Servers
 
Are there any dynamic servers where through a raiding force players could actually change the dominant faction of a city. IE: One race conquering another city and thus making it a human settlement and then through some coding the race that originated there would default to an allied city. Obviously this would be hell for certain class related quests and such. With that exception I would imagine (from my very basic knowledge) that guards could be defined by variables instead of values. And then those variable could be linked to a table of conquests changing depending on which group conquers which city. Then speaking to a certain NPC in say city A could trigger some sort of mini-quest that could activate a target in city B (say general of some city) that a raid force originated in another city would be told to assassinate. Or maybe even giving guilds power to control cities. Im just bored and it was a thought. I always thought that games would be much cooler if it was dynamic like this, and if written properly once, i would think it could run infinitely with no intervention after launching.

Obviously there would have to be defaults for major quest NPCs that could put them in hiding places or outside city guard limits under the circumstances that a major paladin guild city was conquered by trolls or something.

Same thoughts could go for:
Guilds having faction with cities
Default alliances being dissolved and having players redefining intercity relationships and factions. (Dwarves and High Elves start as default enemy factions or the like)

Im far from a developer and just bored. Feel free to ignore. Just thought quests only ever resulting in changing a single characters items or faction or whatever was silly. Grand scheme seems to be cooler.

AndMetal 09-22-2008 12:49 AM

I was doing some quest coding for moydock, creator of Pandemic (a good vs evil type of PvP, still in alpha I believe), a while back, although I'm not really sure if something like this was ever going to be incorporated. It's very doable using spawn conditions and would create very dynamic gameplay.

gierkep85 09-22-2008 02:36 AM

So...
 
Just curious. I studied C++ SQL Java, and some HTML. Obviously most of that serves no purpose in this scenario, but Im curious how hard some of you vets might think an intelligent person with a basic knowledge of computers but not so much networks. How much energy would getting something like this together take me?

AndMetal 09-22-2008 10:56 AM

Imo, the hard part is going to be coming up with the ideas and setting up your spawns & NPCs, which is only hard because it's tedious. Honestly, I would start by installing a server, then start messing with it & see where you get. If you have any trouble, post here and someone will help you out. If it looks like it's going to be too complicated, then at least you know.

kedra 09-22-2008 11:33 PM

I just briefly read your initial post, but I think I have the gist of what you're saying. I might be wrong, but I'm pretty sure all of that could be done pretty easily just using perl to update your database.

This is by no means the best way to do this, but it's just quick way off the top of my head.

For instance, in a two-faction world with multiple cities... let's say 3 good and 3 evil cities (You would have 'good' and 'evil' factions in your database)

You'd need to create some type of criteria for 'defeating' a city (ie. killing a boss mob or a certain percentage of NPCs)

Create a new table to keep track of contestable cities and the current ruling faction.

Lets say an evil faction defeats a good city. So update NPCtypes table so that all NPCs in defeated zone are now ogres on the evil faction. Update your new table so that the evil faction now owns the city. (It's late, I hope I'm not forgetting anything.)

I would set it up so that each faction has their own completely safe zone that they respawn in when they die, from that zone they can use an NPC to go to any city that their faction controls. So, potentially, one faction could capture all of the cities and the game would end as the other team could no longer leave their safe zone.

Wipe the server and start over ;)

That actually sounds like a pretty neat idea. And again, I don't see any reason you couldn't do all of that with perl.

Personally, I'd couple it with arcade-type play (fast leveling, spell scribers maybe), but that's just a really rough brainstorm; there are probably a lot of problems I'm not seeing here. It's late :p

Seems like it would be a lot of fun if it was done right, though.

AndMetal 09-23-2008 01:42 AM

Quote:

Originally Posted by kedra (Post 156634)
I just briefly read your initial post, but I think I have the gist of what you're saying. I might be wrong, but I'm pretty sure all of that could be done pretty easily just using perl to update your database.

Yes and no.

Quote:

Originally Posted by kedra (Post 156634)
You'd need to create some type of criteria for 'defeating' a city (ie. killing a boss mob or a certain percentage of NPCs)

That would be done using a quest (Perl).

Quote:

Originally Posted by kedra (Post 156634)
Create a new table to keep track of contestable cities and the current ruling faction.

No new table is needed, you would use a combination of quest globals & spawn conditions, triggered in the above mentioned quest:
Quote:

quest::spawn_condition(zone_short, condition_id, value); - uses variables in the spawn_conditions table for spawning, despawning chosen npc's in a given zone. See SampleQuests.
quest::InsertQuestGlobal(charid,npcid,zoneid,varna me,value,duration) - Creates a Quest Global variable.
quest::setglobal(varname,value,options,duration) - Sets a variable for the current quest mob. See Tark's post below. DEPRECATED: requires qglobal=1 in npc_type.
quest::targlobal(varname,value,duration,npcid,char id,zoneid) - Set a variable for any mob. See Tark's post below. DEPRECATED: requires qglobal=1 in target's npc_type.
quest::delglobal(varname) - delete a variable for the quest mob. See Tark's post below.
The Sample Quests actually has pretty much what you're trying to accomplish, just on a more limited scale.

Quote:

Originally Posted by kedra (Post 156634)
Lets say an evil faction defeats a good city. So update NPCtypes table so that all NPCs in defeated zone are now ogres on the evil faction. Update your new table so that the evil faction now owns the city. (It's late, I hope I'm not forgetting anything.)

This is actually already in the server code. Check out the spawn_conditions table in the Wiki.

Quote:

Originally Posted by kedra (Post 156634)
I would set it up so that each faction has their own completely safe zone that they respawn in when they die, from that zone they can use an NPC to go to any city that their faction controls. So, potentially, one faction could capture all of the cities and the game would end as the other team could no longer leave their safe zone.

I'm thinking the best way to handle this is to have 2 separate zones as essentially a graveyard. Or, maybe use the Bazaar, since it's basically separated into 2 halves. Then, just set everyone's starting bind point there (only differing depending on what side they choose) and either have NPCs to teleport to other zones or change some zone lines. That way, they can still go to the same spot after death, and can spawn without immediate fear of dying.


All times are GMT -4. The time now is 09:37 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.