PDA

View Full Version : Classic Faction Mechanics, Yes/No


lethdar
09-20-2011, 05:11 PM
On classic npcs would defend players if attacked by someone with lower faction, as follows:

Player A with ally to the monk guildmaster could attack player B (with amiable faction) without any npc involvement, however if player B attacked player A who had superior faction they would agro player B.

I don't think this is coded atm on p99, but should be in. Those of you who remember know there was a reason to be turning in all those bandages, red wines, and 2 golds for faction.

mitic
09-20-2011, 05:13 PM
yea, faction aint working rite. would be cool if this gets fixed, especialy for the pvp server

Rushmore
09-20-2011, 05:14 PM
only if it won't delay 99 by a month.

mitic
09-20-2011, 05:21 PM
this is a no brainer, no need of a poll bro

Clyve
09-20-2011, 05:21 PM
I used to love watching NASTY THIEVES... I mean Erudites make the trip over to Qeynos fresh off the boat. I would attack them, and the guards would lol since they were dubious.

That is... until the filthy Erudite hit me back, then the guards would murder them. I saved so many screenshots of dead filthy Erudites that died with my old hard drive.

gloinz
09-20-2011, 05:25 PM
I used to love watching NASTY THIEVES... I mean Erudites make the trip over to Qeynos fresh off the boat. I would attack them, and the guards would lol since they were dubious.

That is... until the filthy Erudite hit me back, then the guards would murder them. I saved so many screenshots of dead filthy Erudites that died with my old hard drive.

or defending beloved rivervale from dirty nonbandage quest giving folks, and the whole rogue guild dives out of their house

lethdar
09-20-2011, 05:27 PM
Big rann flamespinner waiting to rape some ass in HHK

Crenshinabon
09-20-2011, 06:10 PM
yea faction was always pretty messed. If there was some order to it, (like damage shields agroing guards, omg that was lame) then im all for it.

Sirken
09-20-2011, 06:30 PM
On classic npcs would defend players if attacked by someone with lower faction

on live during classic, you took faction hits from pvp.

so when my erudite slew a dwarf, my faction with ALL dwarfs would drop. this was eventually removed, however my faction was so screwed that i could only bank in erudin and Halas (if i hugged the wall) during that time.

Titanuk
09-20-2011, 06:32 PM
on live during classic, you took faction hits from pvp.

so when my erudite slew a dwarf, my faction with ALL dwarfs would drop. this was eventually removed, however my faction was so screwed that i could only bank in erudin and Halas (if i hugged the wall) during that time.

think that was only for teams

Smedy
09-20-2011, 06:33 PM
I honestly don't care that much, cool for people with high faction to feel safe i guess, it's not a big deal since there's no real raid content in cities anyway.

I guess some fun shit could come out of it, luring people into a trap with the guards i dno.

I don't feel strongly for one or the other

Sirken
09-20-2011, 06:33 PM
think that was only for teams

ah, that could be. was on VZ during live

Ziggy
09-20-2011, 06:41 PM
lol we agree on something?

Knuckle
09-20-2011, 07:10 PM
Yes indeed.

Harrison
09-20-2011, 07:25 PM
On top of incorrect factioning already present (starting at incorrect default levels for instance) this is just a fucking nightmare to implement for little to no real benefit to the community.

It wasn't really even very stable on live either. Some npcs, regardless of faction, ignored you half the time.

Rushmore
09-20-2011, 07:48 PM
Work on Resists....

Launch.....


Implement this as we go along.

naez
09-20-2011, 09:51 PM
(like damage shields agroing guards, omg that was lame).
this is just a fucking nightmare to implement for little to no real benefit to the community


Bros I always like when you bring these riddles to my attention. of course i fixed the fansy rivervale carnage exploit



attack.cpp (edit Mob::CommonDamage() line 1)
// void Mob::CommonDamage(Mob* attacker, sint32 &damage, const int16 spell_id /* */) {
// This method is called with skill_used=ABJURE for Damage Shield damage.
bool FromDamageShield = (skill_used == ABJURE);
if (this->IsClient() && attacker->IsClient() && !FromDamageShield)
entity_list.CheckFactionBurnAggro(this, attacker);


aggro.cpp (add 3 new methods)
void EntityList::CheckFactionBurnAggro(Client *victim, Client *attacker)
{
LinkedListIterator<Mob*> iterator(mob_list);
for(iterator.Reset(); iterator.MoreElements(); iterator.Advance()) {
Mob* mob = iterator.GetData();
if(mob->IsNPC()
&& attacker->CheckAggroRange(mob)
&& attacker->CheckFactionBurn(victim, mob)
&& attacker->CheckLosFN(mob)) // check LoS last for performance
{
mob->AddToHateList(attacker);
}
}
}

// returns true if the attacker should get aggroed for attacking the victim
bool Client::CheckFactionBurn(Client *victim, Mob *Mob)
{
FACTION_VALUE fv_attacker = this->GetReverseFactionCon(mob);
FACTION_VALUE fv_victim = victim->GetReverseFactionCon(mob);

return (fv_victim < fv_attacker); // 1 = Ally, 6 = Scowls... could be <= ??
}

bool Mob::CheckAggroRange(Mob* mob)
{
float iAggroRange = GetAggroRange();

float t1, t2, t3;
t1 = mob->GetX() - GetX();
t2 = mob->GetY() - GetY();
t3 = mob->GetZ() - GetZ();
//Cheap ABS()
if(t1 < 0)
t1 = 0 - t1;
if(t2 < 0)
t2 = 0 - t2;
if(t3 < 0)
t3 = 0 - t3;

if(( t1 > iAggroRange) || ( t2 > iAggroRange) || ( t3 > iAggroRange))
return false;

float dist2 = mob->DistNoRoot(*this);
float iAggroRange2 = iAggroRange*iAggroRange;

if( dist2 > iAggroRange2 )
return false;

return true;
}

Nirgon
09-21-2011, 10:38 AM
It is true, some did, some didn't and faction was a considered factor. I couldn't tell you what was classic and what wasn't bros :(. I know guards and guild masters followed this rule, whether in the cities or not. The rest was kind of... random. Charming a mob onto someone, regardless of faction, would cause the npcs to assist the charmed npc almost every time.

XiakenjaTZ
09-21-2011, 10:43 AM
I like it for how it is intended but if we have to deal with charm exploits and people using this not as it was intended I would change my vote to no.

Doors
09-21-2011, 11:04 AM
GJ naez

Nirgon
09-21-2011, 11:32 AM
I just want to log into what I used to in 99, I don't care about balance or things that make people cry.

gloinz
09-21-2011, 11:45 AM
Bros I always like when you bring these riddles to my attention. of course i fixed the fansy rivervale carnage exploit



attack.cpp (edit Mob::CommonDamage() line 1)
// void Mob::CommonDamage(Mob* attacker, sint32 &damage, const int16 spell_id /* */) {
// This method is called with skill_used=ABJURE for Damage Shield damage.
bool FromDamageShield = (skill_used == ABJURE);
if (this->IsClient() && attacker->IsClient() && !FromDamageShield)
entity_list.CheckFactionBurnAggro(this, attacker);


aggro.cpp (add 3 new methods)
void EntityList::CheckFactionBurnAggro(Client *victim, Client *attacker)
{
LinkedListIterator<Mob*> iterator(mob_list);
for(iterator.Reset(); iterator.MoreElements(); iterator.Advance()) {
Mob* mob = iterator.GetData();
if(mob->IsNPC()
&& attacker->CheckAggroRange(mob)
&& attacker->CheckFactionBurn(victim, mob)
&& attacker->CheckLosFN(mob)) // check LoS last for performance
{
mob->AddToHateList(attacker);
}
}
}

// returns true if the attacker should get aggroed for attacking the victim
bool Client::CheckFactionBurn(Client *victim, Mob *Mob)
{
FACTION_VALUE fv_attacker = this->GetReverseFactionCon(mob);
FACTION_VALUE fv_victim = victim->GetReverseFactionCon(mob);

return (fv_victim < fv_attacker); // 1 = Ally, 6 = Scowls... could be <= ??
}

bool Mob::CheckAggroRange(Mob* mob)
{
float iAggroRange = GetAggroRange();

float t1, t2, t3;
t1 = mob->GetX() - GetX();
t2 = mob->GetY() - GetY();
t3 = mob->GetZ() - GetZ();
//Cheap ABS()
if(t1 < 0)
t1 = 0 - t1;
if(t2 < 0)
t2 = 0 - t2;
if(t3 < 0)
t3 = 0 - t3;

if(( t1 > iAggroRange) || ( t2 > iAggroRange) || ( t3 > iAggroRange))
return false;

float dist2 = mob->DistNoRoot(*this);
float iAggroRange2 = iAggroRange*iAggroRange;

if( dist2 > iAggroRange2 )
return false;

return true;
}

looks legit
all the fat ogres better watch out cuz noone like u cuz ur fat

naez
09-21-2011, 11:51 AM
I like it for how it is intended but if we have to deal with charm exploits and people using this not as it was intended I would change my vote to no.

the charm bug from live is what i mean by the fansy rivervale carnage exploit

gloinz
09-21-2011, 11:53 AM
http://www.notacult.com/fansythefamous.htm

(http://www.notacult.com/fansythefamous.htm)

fansy the famous

[Wed Jun 12 17:02:33 2002] Pungg tells you, 'why the fuck are u doing this?'
[Wed Jun 12 17:02:39 2002] Pungg tells you, 'and how fucking old r u?'
[Wed Jun 12 17:02:45 2002] You told Pungg, 'I am 14'
[Wed Jun 12 17:02:47 2002] You told Pungg, 'a/s/l?'
[Wed Jun 12 17:03:31 2002] Pungg tells you, 'grow the fuck up eh?'
[Wed Jun 12 17:03:40 2002] You told Pungg, 'ok I am drinking milk'

[Wed Jun 12 17:04:02 2002] Pungg tells you, 'seriously dude stop'
[Wed Jun 12 17:04:09 2002] Pungg tells you, 'go fucking level or some shit'
[Wed Jun 12 17:04:56 2002] Pungg tells you, 'i bet uve never touched a fucking girl in ur life'
[Wed Jun 12 17:05:14 2002] You told Pungg, 'I am saving myself for marriage!'
[Wed Jun 12 17:05:45 2002] Pungg tells you, 'god i hate people like u'
[Wed Jun 12 17:05:51 2002] Pungg tells you, 'i would give anything to see u burn'

Knuckle
09-21-2011, 12:50 PM
Faction assist is legit, respect it motherfuckers.

SyanideGas
09-21-2011, 12:52 PM
http://www.notacult.com/fansythefamous.htm

(http://www.notacult.com/fansythefamous.htm)


[Wed Jun 12 17:03:40 2002] You told Pungg, 'ok I am drinking milk'

Ravenlof
09-21-2011, 02:37 PM
only if it won't delay 99 by a month.

aggred

Palemoon
09-21-2011, 02:47 PM
think that was only for teams

This was the case when killing a particular race only in their own hometown. Go , as a gnome, into Rivervale and start ganking Halflings and you'd take faction hits.

(was this way on Sullon Zek, never played the other team servers)

edit: and I think it was a good feature. You can't murder lvl 6 halflings in front of the Mayor of rivervale and expect its cool.

Wonton
09-21-2011, 05:31 PM
even if it delayed red99 for a month, I think it's what the community and developers want. lets all sing some kumbaya my lord now?

http://www.youtube.com/watch?v=vo9AH4vG2wA