Page 1 of 1
Beastlord Pets
Posted: Sat Sep 18, 2004 3:36 am
by SlimFastForYou
The Beastlord pet seems to be considered an NPC, not pet.
Eg:
/target pet ${Me} <- No spawns
/target npc ${Me} <- Targets the pet
I also have NPCs with their level and class underneath the name (custom INI setting), and pets with the masters name under it. My beastlord pet has the level/class under the name (like all other npcs), yet shaman pets, wizard familiars, and all other class pets show as pets AFAIK.
Anyone else able to confirm this problem?
Not that exact problem:
Posted: Sat Sep 18, 2004 9:33 am
by Spanky_Monkey
but one of my methods for heal target is the following:
/targ npc
/assist
/call checktarget
/targ npc never used to target a warder, now it does... dirty BL's.
I dunno yo but this joint is broked!
Just what I noticed, if you want debug I'll be glad to provide it.
Not that exact problem:
Posted: Sat Sep 18, 2004 9:33 am
by Spanky_Monkey
damn dirty apes and their dubble postz
Posted: Sun Sep 19, 2004 3:50 am
by Anubis
I am seeing this problem as well with the 9/17 zip
Posted: Sun Sep 19, 2004 3:44 pm
by fearless
I am seeing this behavior with Advbot where it is now trying to debuff mage / shammie pets, and the aa pets as well.
Posted: Sun Sep 19, 2004 4:52 pm
by Amadeus
Remind me about this bug in a few weeks when I'm done xping.
Posted: Sun Sep 19, 2004 5:48 pm
by SlimFastForYou
LOL Ama! Well if your using a macro wait until some high level beastlord comes by and ruins your XP session

(my macro had a level check workaround to keep the group's beastlord from interfering but some lvl 65 bst ran by last night).
I'll try to find the problem (I will likely fail because I'm n00bish). If I find a workaround I'll post it.
Posted: Sun Sep 19, 2004 5:56 pm
by SlimFastForYou
Hm well I might have found the problem (have to test it though). I suspect that since the Body Type of beastlord pets (at least my Vah Shir beastlord) is Animal (ID 21)...
From the current source (edit 9/17/04 source, just saw a new zip released) (MQ2Inlines.h):
Code: Select all
case SPAWN_NPC:
if (strstr(pSpawn->Name,"s_Mount"))
{
return MOUNT;
}
switch(pSpawn->BodyType)
{
case 3:
return NPC;
case 11:
return UNTARGETABLE;
case 21:
return NPC;
case 23:
return NPC;
case 33:
return CHEST;
case 34:
return NPC;
case 65:
return TRAP;
case 66:
return TIMER;
case 67:
return TRIGGER;
default:
if (pSpawn->MasterID)
return PET;
else
return NPC;
}
return NPC;
Again, if I do a /echo ${NearestSpawn[warder].Body.ID}, I get 21.
MQ2Inlines.h from the 8/20 zip:
Code: Select all
case SPAWN_NPC:
if (strstr(pSpawn->Name,"s_Mount"))
{
return MOUNT;
}
switch(pSpawn->BodyType)
{
case 11:
return UNTARGETABLE;
case 33:
return CHEST;
case 65:
return TRAP;
case 66:
return TIMER;
case 67:
return TRIGGER;
default:
if (pSpawn->MasterID)
return PET;
else
return NPC;
}
return NPC;
I will try to change case 21 to:
Code: Select all
case 21:
if (pSpawn->MasterID)
return PET;
return NPC;
and I'll let you all know how that works out.
Edit: New zip (9/19) was released hours ago (im working with 9/17); i downloaded it and looked at the changelog. It doesn't mention BL pets, and the code I am looking at remains unchanged so I'm ASSUMING the same problem is in the 9/19 zip and going to test this code change now.
Posted: Sun Sep 19, 2004 6:21 pm
by SlimFastForYou
Woot! That did it! My first MQ bug fix!!!
So when do I get the 5 star developer forum tag? ;p
Posted: Sun Sep 19, 2004 9:55 pm
by Night Hawk
I use /target ${Me.Pet} in my macros, and hasn't failed me yet.
Posted: Sun Sep 19, 2004 10:10 pm
by Amadeus
Yep..that should fix it. That whole change was a part of me trying to figure out what all the shit was messed up with mq2map and was trying to take into account all the unknown body types ...yadda yadda.
Long story short, I didn't take the whole pet thing into account. I havn't tested it ...but try this:
Code: Select all
static inline eSpawnType GetSpawnType(PSPAWNINFO pSpawn)
{
if ((pSpawn->MasterID) && (pSpawn->Type == SPAWN_NPC) )
return PET;
switch(pSpawn->Type)
{
case SPAWN_PLAYER:
{
return PC;
}
case SPAWN_NPC:
if (strstr(pSpawn->Name,"s_Mount"))
{
return MOUNT;
}
switch(pSpawn->BodyType)
{
case 3:
return NPC;
case 11:
return UNTARGETABLE;
case 21:
return NPC;
case 23:
return NPC;
case 33:
return CHEST;
case 34:
return NPC;
case 65:
return TRAP;
case 66:
return TIMER;
case 67:
return TRIGGER;
default:
if (pSpawn->MasterID)
return PET;
else
return NPC;
}
return NPC;
case SPAWN_CORPSE:
return CORPSE;
default:
return ITEM;
}
}
That solution should take care of all pets at once. Let me know if it works for you.
Posted: Sun Sep 19, 2004 10:11 pm
by SlimFastForYou
Try a /target npc. The beastlord warder will get targetted. Try /target pet. It will target the nearest non-beastlord pet in the zone. Likely to foul up any macro that acquires a target (like the one I just posted that you commented on

).