PDA

View Full Version : Bind zones/ no bind zones


Angelox
04-14-2008, 08:35 AM
Can you all post what you remember on this? I'm mostly interested in the old school zones, mainly up to the Kunark Expansion.

Example; you could bind in Gfay, But how about Lfay? I know later on you could with the LdoN expansion - but I'm more interested in bind /zone status not past Kunark.

ChaosSlayer
04-14-2008, 09:10 AM
the main distinction was betwen:
BIND SELF and BIND OTHERS

self was working prety much ANYWHERE (at least pre-kunark)
I herd reports of people binding in Permafrost, Sol B, Lower Guk.
I am myself was once bound in Plane of Fear in order to get the raid out (druid) cuase our wizard fell a sleep at keyboard =)

Binding others is a whole diffirent story- CITIES ONLY _ few extra exeptions

And to be more specific:
N/S Qeynos
Halas (not even EverFrost)
Erudine/E. Palace

Rivervale (posibly Misty Thicket )
Freeport (3 parts)
Neriak (3 parts, i cannto remeber if melees could be bound in nektulos - but its a high posability)

Grob, Oggok (cannot confirm of Innothule or ferrot)

Gfay, BB, Kaladim, Felwithe, AkkAnon (posibly SteamFont)

On Kunark, you could only bind others in Cabilis, Overthere and Firiona Vie. (not sure about newbee zones surrounding Cabilis, but posible). Casters again- prety much ANYWHERE (famous chain death at the bottom of Timorous Deep)

The only noteable exceptions was Veksar, Sebilis, VP, Howling Stones, posibly Chardok

Angelox
04-14-2008, 09:23 AM
Do you know if "canbind" in "npc_types" is a general statement for all bind types or non - binders (Melletypes, etc) only?

slowglass
04-14-2008, 09:26 AM
On top of this, it may have been possible to bind a melee in Runneye. My girlfriend remebers that you could. I personnally cannot remember.

I do not belive it was possible to bind in nektulos or misty thicket. I know that you could not bind in Innothule or ferrot as I remember the melee bind rules our guild had for Fear and Hate.

I would also assume you could not bind in BB or SteamFont. But again I cannot remeber a specific instance of trying/failing.

Gets even more interesting in Velious where you have zones you can only bind in certain parts of :)

cavedude
04-14-2008, 11:32 AM
canbind is all or nothing sadly. Wild and I were working on a spell restriction system a while back and one of the key concerns was bind.

The statements above are correct, casters could bind themselves pretty much everywhere, but could only bind others in city zones. There were exceptions, notably the gypsy camp in NK could be used to bind others, but no where else in the zone.

After Kunark, the basic rule still applied, though Sony started adding more zones nobody could bind in. Those were mainly dungeons and the old world planes.

Andrew80k
04-14-2008, 12:20 PM
I thought you could also bind in HHK, but that could be my failing memory...

rojadruid
04-14-2008, 01:30 PM
Yeah you can bind yourself and others in HHK it was considered a town.

Angelox
04-14-2008, 02:00 PM
O well, I went and set all the binds as if it were for melles, gotta fix that. But keep posting info about bind areas, well be needing it when we can fix that.
I remember there was a bind area in FM for non casters too.

ChaosSlayer
04-14-2008, 07:05 PM
Angelox, if I would be you, I would not go into happy frenzy of making "no melee" binding "feature" =)
Its brigns nothing but frustration and anger to melee char towards casters, since caster can bind in 99% of places and can gate home, while melees can neither.

Now if you scroll back to time before LDON, when Soulbinder did not existed, you will realise how much suckage it was to run all way from Qeynos to AkAnan and then spend next 3 hours shouting, crying, begging for a someone to bind you.

Not been able to get a bind REALY SUCKS.

PS. Btw I confirm - BB was no Bind zone for melees. I looked at my archived emails concernign some Unrest raids from 2002, and there I was telling my friend Sk to bind in Gfay =)

Angelox
04-14-2008, 07:38 PM
well, it's all a matter of how you look at it. When I played Pre-Kunark, it was the best time I ever had in Everquest , only matched by all the fun I have working with the EqEmulator. My main character was a Ranger, and he was very limited at the time, but I managed to find the right people to group with (Wizard, Cleric, Druid, etc.) and together, we did some pretty incredible things for the era.
I always want to make the old zones, just as they were - with hopes someday we might have a nice old school server.
Binding restrictions was an intricate part of the old game, also, travel was restricted to boats and your feet, or whenever you could find a druid. This made the game seem bigger - a trip from Gfay to Freeport took some time, and was risky. The game was hard, but challenging. Little things make a big difference ; where you can bind, where you can use sow, levitate, etc. This is Verant style game, when it got passed over to SOE, things started to change fast.

ChaosSlayer
04-14-2008, 09:09 PM
well, it's all a matter of how you look at it. When I played Pre-Kunark, it was the best time I ever had in Everquest , only matched by all the fun I have working with the EqEmulator. My main character was a Ranger, and he was very limited at the time, but I managed to find the right people to group with (Wizard, Cleric, Druid, etc.) and together, we did some pretty incredible things for the era.
I always want to make the old zones, just as they were - with hopes someday we might have a nice old school server.
Binding restrictions was an intricate part of the old game, also, travel was restricted to boats and your feet, or whenever you could find a druid. This made the game seem bigger - a trip from Gfay to Freeport took some time, and was risky. The game was hard, but challenging. Little things make a big difference ; where you can bind, where you can use sow, levitate, etc. This is Verant style game, when it got passed over to SOE, things started to change fast.

I also started playign pre-kunark. And yes, I also adore spirit of adventure by having to travel by foot. But there are features, and there are annoyances: giving half of the classes a convinience to bind and gate, whiel others may have to run from Qeynos to Freeport 7 times just because they keep getting killed in Kithihor - is hardly fair, classic or no classic 8-)

not to mention itemezation pre-kunark sucked uterly. I remember melees showing up for nagafen raid in bronze, and entire server casters were either in Green or Black till 50, and sometimes way after that.
What I am trying to say- Verant Vision was horibly unbalanced, it got better with Kunark/Velious. (and no SOE vision is not any better, and thats the reason I am making my own server :cool: )

TheLieka
04-16-2008, 09:06 AM
I know it's not 100% perfect, but this is how we did it (same type of approach that Angelox was talking about). I hardcoded a list of city zones, and if you're not a caster, you cannot bind or be bound outside of those zones (note: this list only goes up to luclin - but since our server is Old World only, it's overkill for us ;)).

Anyway, it could be easily expanded upon if anyone was interested in using it.

Currently, it says:
If the zone is not listed as "CanBind" in the zones table, then you cannot bind (unless you're a GM).
If the zone isn't in the hardcoded list of cities, and you're not a caster, then you cannot bind (unless you're a GM).
Otherwise, you can bind.

It's not beautiful, and I would like to clean it up and put it into the database, but honestly, it gets its job done, so I haven't messed with it. If anyone else wants to use it, be my guest.

Dax

./zone/zone.h
void SetGraveyard(int32 zoneid, int32 x, int32 y, int32 z, int32 heading);
bool IsCity(int32 zoneid); //Lieka Edit: Put in for melee binding rules

./zone/zone.cpp

void Zone::SetGraveyard(int32 zoneid, int32 x, int32 y, int32 z, int32 heading) {
pgraveyard_zoneid = zoneid;
pgraveyard_x = x;
pgraveyard_y = y;
pgraveyard_z = z;
pgraveyard_heading = heading;
}
bool Zone::IsCity(int32 zoneid) {
if ((zoneid == 1) || //South Qeynos
(zoneid == 2) || //North Qeynos
(zoneid == 3) || //Surefall Glade
(zoneid == 8) || //North Freeport
(zoneid == 9) || //West Freeport
(zoneid == 10) || //East Freeport
(zoneid == 19) || //Rivervale
(zoneid == 23) || //Erudin Palace
(zoneid == 24) || //Erudin
(zoneid == 29) || //Halas
(zoneid == 40) || //Neriak Foreign Quarter
(zoneid == 41) || //Neriak Commons
(zoneid == 42) || //Neriak Third Gate
(zoneid == 45) || //Qeynos Aqueduct Systems
(zoneid == 49) || //Oggok
(zoneid == 52) || //Grobb
(zoneid == 54) || //Greateer Faydark
(zoneid == 55) || //Ak`Anon
(zoneid == 60) || //South Kaladim
(zoneid == 61) || //Northern Felwithe
(zoneid == 62) || //Southern Felwithe
(zoneid == 67) || //Northern Kaladim
(zoneid == 75) || //Paineel
(zoneid == 82) || //Cabilis West
(zoneid == 83) || //Swamp of No Hope
(zoneid == 106) || //Cabilis East
(zoneid == 155)) { //The City of Shar Vahl
return true;
} else {
return false;
}
}


./zone/spell_effects.cpp
case SE_BindAffinity:
{
#ifdef SPELL_EFFECT_SPAM
snprintf(effect_desc, _EDLEN, "Bind Affinity");
#endif
if (IsClient())
{
if((!zone->CanBind() && !CastToClient()->GetGM())){
Message(13, "It would be very difficult for anyone to form an affinity with this area.");
break;
} else if ( ((!zone->IsCity(zone->GetZoneID())) && ((GetClass() != DRUID) && (GetClass() != CLERIC) && (GetClass() != SHAMAN) && (GetClass() != WIZARD) && (GetClass() != ENCHANTER) && (GetClass() != MAGICIAN) && (GetClass() != NECROMANCER)) && !CastToClient()->GetGM())){
Message(13, "You cannot form an affinity with this area. Try a city.");
break;
} else {
CastToClient()->SetBindPoint();
Save();
}
}
break;
}

cavedude
04-16-2008, 09:38 AM
As ugly as it is, it's also a clever workaround. Though, I bet it wouldn't be hard to add a new column to zone and get rid of the hardcoding. I'll give that shot and see what I come up. I just got done merging your new MQ2 detection system into TGC's code (it looks perfect, I just need to clean up those 700 zone_points *sigh*) and was about to test it out... until I saw this post. Not sure if I should thank you or curse you :P

TheLieka
04-16-2008, 10:43 AM
Haha, you're welcome and I'm sorry. :)

Dax

BatCountry
04-17-2008, 11:45 AM
I think pre-Velious they had support for regions of zones being unbindable.

This may be faulty recollection, but I remember having to get bound right up against the wall on one corner of OT's city keep because I was KOS there and had screwed up my FV faction hunting those faerie dragon things.

If I recall correctly, I had just about enough time to squat, memorize SoW, cast it on myself, and run like hell before a patrolling guard ganked me after I died.

ChaosSlayer
04-17-2008, 02:04 PM
bad bad bad code.
cuase it forcefuly hinders melee classes.
If we must have melee binding restriction - I much rather have an extra collumn like cavedude said
what we realy could use is a confirmation box when person is been bound, so evil casters do not bind melees say in VT
under Aten Ha Ra feet

cavedude
04-17-2008, 02:54 PM
Why is it bad? I have it up on TGC right now (though, I did add the db column, I'll diff that and post later) and it's fine for the most part. Melee toons can only be bound in city zones, this code does preciously that.

I don't see a need for a confirmation box, it isn't Live Like, you have to be grouped with the caster to be bound by them, and since they can only be bound in cities, there is no real way to exploit bind affinity... Now, sacrifice and rez on the other hand... those could use confirmation boxes.

ChaosSlayer
04-17-2008, 03:39 PM
Why is it bad? I have it up on TGC right now (though, I did add the db column, I'll diff that and post later) and it's fine for the most part. Melee toons can only be bound in city zones, this code does preciously that.

I don't see a need for a confirmation box, it isn't Live Like, you have to be grouped with the caster to be bound by them, and since they can only be bound in cities, there is no real way to exploit bind affinity... Now, sacrifice and rez on the other hand... those could use confirmation boxes.

didn't you read my argument with Angelox?
Melee bind restriction SUCK and unfair.
And hard coding of this into main code is horible cause this kills server admin options of NOT having this stupid live-like feature.

As far as beein a in group - nothing prevents a jerk groupmate to bind you in some legaly bindable place where you kos if he is mad with you

thats why melee bind column and bidn confirmation box is good, and hard coding is BAD.

PS.
and for the GOD SAKE people - the stop treating "LIVE" like a freaken holy bible, where every word is divine and every statement is unquestionable!
Its not!

mattmeck
04-17-2008, 04:23 PM
didn't you read my argument with Angelox?
Melee bind restriction SUCK and unfair.
And hard coding of this into main code is horible cause this kills server admin options of NOT having this stupid live-like feature.

As far as beein a in group - nothing prevents a jerk groupmate to bind you in some legaly bindable place where you kos if he is mad with you

thats why melee bind column and bidn confirmation box is good, and hard coding is BAD.

PS.
and for the GOD SAKE people - the stop treating "LIVE" like a freaken holy bible, where every word is divine and every statement is unquestionable!
Its not!


The whole point of PEQ is to recreate live, this is in live so it goes in.

The development team has always been good about giving options (rules anyone?) and there is a table option for this for people to edit now, if you dont want this on your server dont do it.

Just because you dont want it dont mean it shouldnt be in, this is an EVERQUEST Emulator and that is what this code does.

ChaosSlayer
04-17-2008, 05:23 PM
The whole point of PEQ is to recreate live, this is in live so it goes in.

The development team has always been good about giving options (rules anyone?) and there is a table option for this for people to edit now, if you dont want this on your server dont do it.

Just because you dont want it dont mean it shouldnt be in, this is an EVERQUEST Emulator and that is what this code does.

note that PEQ- is a DB, not a server code.
The code in question provided by TheLieka (who is a great coder, so this is no way bashing of him) will HARD CODE something which no custom Db can posibly 'fix'. Why hard code anything what can be made into an option by choice?

And as I said- I fully support "extra melee column' approach - server admins who will want to hinder melees, can hinder them. But the code I am bashing does not offer you any options.

Just because EqEmu is EQ emulator- doesnt mean it has to copy down all the shortcoming and weaknesses of the original.

Angelox
04-17-2008, 05:52 PM
There's nothing to argue about here, Again, PEQ is the official database for the EqEmu . EqEmu is the Code and the Database, and they are trying to "emulate" live as best they can.
I'm here to support the people working to better the project (PEQ DB + EqEmu + Quests = Project EqEmu), So far they have done nothing but better the code and even keep some "custom" options available, for those who prefer it ( they didn't have to do that).
There's nothing to argue about, so better back off.

mattmeck
04-17-2008, 06:59 PM
note that PEQ- is a DB, not a server code.
The code in question provided by TheLieka (who is a great coder, so this is no way bashing of him) will HARD CODE something which no custom Db can posibly 'fix'. Why hard code anything what can be made into an option by choice?

And as I said- I fully support "extra melee column' approach - server admins who will want to hinder melees, can hinder them. But the code I am bashing does not offer you any options.

Just because EqEmu is EQ emulator- doesnt mean it has to copy down all the shortcoming and weaknesses of the original.


Did you even read the part where Cavedude added the DB column? and he wants it NOT hard coded?

ChaosSlayer
04-17-2008, 08:02 PM
Did you even read the part where Cavedude added the DB column? and he wants it NOT hard coded?

yes, I did , and its great.
My dissagreement comes from "we must be true to LIVE" point of view.

Think how many custom servers would NOT exist if we indeed would be true to live. (no rules, no variables, no db customizations etc)

So everytime when you say "its not live-like" - think of how much would be lost if Emu was 100% live-like.

PS. It saddens me to see that whatever my previous action were to help the community, some how automaticly deemed unimportant, once I dare to demonstarte a diffirence of opinion with people in power.

mattmeck
04-17-2008, 08:44 PM
yes, I did , and its great.
My dissagreement comes from "we must be true to LIVE" point of view.

Think how many custom servers would NOT exist if we indeed would be true to live. (no rules, no variables, no db customizations etc)

So everytime when you say "its not live-like" - think of how much would be lost if Emu was 100% live-like.

There is a custom code submission section just for stuff thats not live like, but to make the official code it has to be like live. This has always been, and always will be. The devs do allow people the options to change this, but this is an EVERQUST emulator, and the point of it is to emulate live as close as can be.


PS. It saddens me to see that whatever my previous action were to help the community, some how automaticly deemed unimportant, once I dare to demonstarte a diffirence of opinion with people in power.

Huh? Not sure what your talking about.

TheLieka
04-20-2008, 12:02 AM
Whoa Chaos - my code spew wasn't intended to be a submission to the official eqemu source, I just read Angelox's question - so I threw our implementation up there. If I planned to actually submit that to the source, I would definitely use the database for it (and also look into partial-zone binds, and I have been thinking about the best way to implement that - stay tuned).

Nonetheless, I was just responding to a question - I didn't post anything to intentionally nerf melees across all servers or anything, but honestly, that was always one of the drawbacks on live too.

Sorry if my code upset you... I assure you there was no emotion involved in writing it or posting it. :(

Dax

Scorpious2k
06-17-2008, 12:23 PM
As you know, some of us make our own zones and so cities may not match the default eqlive values, plus I have always been a believer in giving the serverOp as much control over his server as we can.

What if we do this:

There is a value in the zone table called canbind. This is defined as a number. Currently it is used to determine whether or not bind can be used in a zone. 0 = no, anything else = yes. This is mutually exclusive to what we want to add.

So here is my suggestion. Let's change this table entry so that 0 = no binding, 1 = unconditional binding (same way it is now) and add a value of 2, which would be the "in city" value meaning binding by casters only.

Comments?

cavedude
06-17-2008, 01:24 PM
Using one column works for me. On PEQ, I split this off into its own column, canbindothers. Using 1 column would certainly save a bit of space in the db. The one thing I didn't do yet is change the above code so you cannot bind anybody else in zones that are self only. The way that code is written, it only disallows melee guys from being bound. While this functionality essentionally is the same, it does bring up the point that you can bind other casters in these zones which we don't want in cases where they don't yet have bind affinity.

Scorpious2k
06-17-2008, 02:00 PM
Using one column works for me. On PEQ, I split this off into its own column, canbindothers. Using 1 column would certainly save a bit of space in the db. The one thing I didn't do yet is change the above code so you cannot bind anybody else in zones that are self only. The way that code is written, it only disallows melee guys from being bound. While this functionality essentionally is the same, it does bring up the point that you can bind other casters in these zones which we don't want in cases where they don't yet have bind affinity.

So we need an additional test to make sure they are only casting on themselves (target=self)?

Angelox
06-17-2008, 02:19 PM
There's another thing; some places have designated areas for binding non casters- Rathe Mountains is a good example - I remember there's a specific area there where a mellee could get a bind. I also remeber a rare item that came from there (Rathe Mountains) , allowed any one one bind anywhere in any zone (forgot what the item was called)

cavedude
06-17-2008, 04:09 PM
Yeah, those zones are supposed to be self cast only. The class check in this case isn't needed. This would also allow us to override with soul binders or as Angelox mentioned items that cast bind affinity, while still preventing any class that doesn't have bind affinity from being bound in these zones.

The areas where you can bind will be a bit more tricky, I think. The gypsy camp in NK is like that as well. I was thinking just to make one of the gypsies a soul binder. Ghetto, but functional at least.

Scorpious2k
06-17-2008, 07:40 PM
OK, I have this in with the variation I mentioned (canbind = 0,1,2).

It will be in 1112. Let me know if I broke anything.

Scorpious2k
06-17-2008, 07:49 PM
1112 is in.

==06/17/2008
Scorpious2k (TheLieka): Ban by IP
Scorpious2k (cavedude/TheLieka): Ability to limit melee guys from being bound in certain zones. This changes the canbind
column of the zone table. Value 0 means noone can bind, value 1 means only casters can bind, value 2 means
anyone can bind in the zone (ie cities).

Required SQL:
CREATE TABLE `Banned_IPs` (
`ip_address` VARCHAR(32) NOT NULL,
PRIMARY KEY (`ip_address`)
)
ENGINE = InnoDB;

Optional SQL:
Insert into rule_values values (0, 'World:UseBannedIPsTable', 0);
Update zone set canbind = 2 where zoneidnumber in (1,2,3,8,9,10,19,23,24,29,40,41,42,45,49,52,54,55, 60,61,62,67,75,82,83,106,155);