View Full Version : Game Mechanics: Gypse Camp - NK
Somekid123
04-20-2010, 01:20 PM
Could bind here in classic, right now we cant.
Too lazy to dig up any info atm, but would think most would remember this being classic, such as binding at The Arena too?
Droxx
04-20-2010, 01:21 PM
This is a known issue. Apparently its super hard to code a small area to be able to bind at.
nilbog
04-20-2010, 03:22 PM
The way bind works in eqemu is that its either turned On or Off for a particular zone.
North Karana.. casters should be able to bind affinity themselves, but not others, unless they are in the range of the gypsy camp.
If anyone wants to take a stab at this, by all means. Here's the last work I did on it.
I made an invisible man in the middle of the gypsies and it is named 1466.
player.pl for nk
sub EVENT_CAST {
if $spell_id == 35) {
quest::signalwith(1466,0,0); ## 1466 is the invisible man
}
} script for invisible man (1466 in my example)
sub EVENT_SIGNAL {
if($signal == 0) {
my $list_check = 0;
for ($list_check = 0; $list_check < 2000; $list_check++) {
$client_search = $entity_list->GetClientByID($list_check);
if ($client_search) {
my $distanceCHK = $client_search->CalculateDistance($x, $y, $z);
my $PLTarget = $npc->GetTarget();
my $TargID = $PLTarget->GetID();
my $ClID = $client_search->GetID();
my $client_target = $TargID->GetTarget();
if (($distanceCHK <= 100) && ($TargID = $ClID)) {
$npc->CastSpell(35,$client_target);
}
}
}
}
}
magic
04-20-2010, 03:30 PM
haha cute little sub procedure nilbog
mixxit
04-22-2010, 11:40 PM
# NorthKarana
# Player.Pl file
# i) Checks player co-ordinates and allows casting of Bind
# Version 1.2
#
sub EVENT_CAST {
# only do this check on BindAffinity (35)
if ($spell_id == 35)
{
# Locate the NPC
my $bindman = $entity_list->GetMobByNpcTypeID(999242);
# Who are we targeting?
my $target = $client->GetTarget();
# Lets get the groups of the target and the caster
my $targroup = $entity_list->GetGroupByMob($target);
# Ensure the target is within an acceptable distance from the bindman NPC
my $distance = $target->CalculateDistance($bindman->GetX(),$bindman->GetY(),$bindman->GetZ());
if ($distance <= 100)
{
# Are we casting this on ourselves?
if ($client->GetID() == $target->GetID())
{
# Provide an additional message to confirm binding has infact worked
$client->Message(15, "However, due to the current location you feel your soul bind to the area.");
# Player is now bound
$client->SetBindPoint($zoneid,$target->GetX(),$target->GetY(),$target->GetZ());
#Or is this someone else?
} else {
# We need to check if we are in the group
if($targroup->IsGroupMember($client))
{
# they should know what is going on
$client->Message(15, "However, due to the current location you feel the target soul bound to the area.");
$target->Message(15, "Due to the current location, you have bound to this area.");
# lets bind them
$target->CastToClient()->SetBindPoint($zoneid,$target->GetX(),$target->GetY(),$target->GetZ());
} # default message is fine if not
}
} else {
# default message is fine
}
$targroup = undef;
$bindman = undef;
$target = undef;
$distance = undef;
}
}
nilbog
04-23-2010, 11:01 PM
Fixed by Mixxit.
your /charinfo will not update until you zone, btw. this will also send a message to the client and the caster indicating as such.
Zanti
04-24-2010, 08:10 PM
Is the arena bindable now also?
nilbog
04-26-2010, 03:02 AM
Is the arena bindable now also?
No. It will be soon though. I have no found no evidence when that was added, so I'll try and get it in next patch.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.