| 
   | 
   | 
  
 
    | 
    | 
    | 
  
 
    | 
   | 
    | 
  
 
    | 
   | 
    | 
  
 
    | 
   | 
    | 
  
 
   | 
  
	
		
   
   
      | Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself. | 
    
    
   
   
   
   
   
   
   
   
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-18-2009, 04:21 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2008 
					Location: NorthEast 
					
					
						Posts: 115
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
				 
				Error: No Target
			 
			 
			
		
		
		
		Greets, 
 
DB Version 922 
 
Executables 944 
 
Lots of GM Commands, including Summon, Kill, NpcLootShow all appear to have a range component built in now. 
 
Unless the mob is close by I'm getting Error:No target on these commands. I'd be willing to bet other gm commands are doing the same thing. 
 
Anyone else got that going on? 
 
Laxa 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-18-2009, 04:23 PM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Dragon 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: May 2006 
					Location: Cincinnati, OH 
					
					
						Posts: 689
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		My guess would be that it's due to a change made with  revision 933 to combat MQ. We'll have to see what KLS says.  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-18-2009, 05:43 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Developer 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2006 
					Location: USA 
					
					
						Posts: 5,946
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		You can't use /target to target anything out of range anymore.  Though, I don't think it would hurt for us to add in a status check to allow it for GMs.  Maybe even a rule that lets you set what status is required to be able to target stuff that is out of range would be a good way to do it.  That way, if people want to allow their players to /target for zone-wide group invites, you could just set the rule to require status 0 or greater. 
 
For now, there is a simple way to handle out of range stuff and that is just to use /goto (not #goto) along with part of the name of the NPC or player you are wanting to target and manipulate.  By using /goto <npcname>, you can go to any NPC in the zone fairly easily.  You can also use /goto <playername> to go to any player on the server, no matter what zone they are in. 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
 
    | 
   | 
    | 
  
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-18-2009, 06:52 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Demi-God 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2009 
					Location: Umm 
					
					
						Posts: 1,492
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		yes GMs absolutely need zone wide #target command - otherwise I will have to run all over across zones just to check on a single mob instead of just /target and #goto like I use to 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-18-2009, 07:12 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Developer 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2006 
					Location: USA 
					
					
						Posts: 5,946
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Or, you can use /goto <npcname>, just like I just said in the last post here :P  I know for sure it works perfectly on SoF, and I know it was working at least at some point on Titanium.  If it isn't working on Titanium anymore, it should be something really simple like a missing opcode for it, that is a really easy one to get.  No need to /target <name> then #goto, when you can just /goto <name> all in one simple command. 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-18-2009, 07:40 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Demi-God 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2009 
					Location: Umm 
					
					
						Posts: 1,492
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		
	Quote: 
	
	
		
			
				
					Originally Posted by  trevius
					 
				 
				Or, you can use /goto <npcname>, just like I just said in the last post here :P  I know for sure it works perfectly on SoF, and I know it was working at least at some point on Titanium.  If it isn't working on Titanium anymore, it should be something really simple like a missing opcode for it, that is a really easy one to get.  No need to /target <name> then #goto, when you can just /goto <name> all in one simple command. 
			
		 | 
	 
	 
 
ahh but does /goto npc requires EXACT npc name?
 
cuase with /target you can get by doign just /target warl
 
rather than typing in full "warlord_scarloton_megadermaticus_the_death_brigng  er_of_thousand_dooms000" =)  
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-19-2009, 02:53 AM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Developer 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2006 
					Location: USA 
					
					
						Posts: 5,946
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		You can type the exact name or just the first part of it.  Works pretty much just like /target does in that aspect. 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-19-2009, 07:51 AM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2008 
					Location: NorthEast 
					
					
						Posts: 115
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Greetings, 
 
Ok I understand what everyone is saying, but do we have an official answer as if this was implemented to stop MQ2?  
 
I use MQ, in fact It's super handy, is there a rules_value that could be turned off, or disabled to allow the out of range stuff? 
 
Thanks 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-19-2009, 08:27 AM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Hill Giant 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2008 
					Location: NorthEast 
					
					
						Posts: 115
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Just wanted to add another note, 
I do a lot of work with adjusting loot drops, primarily for those stupidly rare quest drops that always caused bottle necks.
 
So one thing I do A LOT is pop into several zones and do the following:
 
/tar X-Mob 
#npcloot show
 
This command also doesnt work now. (unless I #goto /goto whatever, but.. see next line  
I also do not like to go in GM mode all the time either.
 
For example I'll do a #zone GukBottom then check loots or other factors that I've modified or updated (making Raster spawn more frequently) then start my dungeon crawling with my bot team. 
 
Whatever code that is now in place really has put a damper on this.
 
Laxa.  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-19-2009, 08:42 AM
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Dragon 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: May 2006 
					Location: Cincinnati, OH 
					
					
						Posts: 689
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		
	Quote: 
	
	
		| 
			
				 
					Originally Posted by Trevius
					
				 
				That way, if people want to allow their players to /target for zone-wide group invites, you could just set the rule to require status 0 or greater. 
			
		 | 
	 
	 
 I'm not sure if this was fixed in recent times for the emulator, but on Live you could use "/invite Name" and it would work without a target. This applied whether the recipient was in the same zone with you or not. I believe that this was not the case on the emulator the last time I checked. /target should not be a requisite for inviting group members.  
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				08-19-2009, 04:59 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Developer 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2006 
					Location: USA 
					
					
						Posts: 5,946
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Yes, the change was done to prevent MQ usage completely.  Though, I do agree that it would be good to put in a rule as I mentioned before where you can set the min status required to be able to target across a zone.  Then, you could just set the new rule to status 0 if you wanted any player to be able to do it, or you could set it higher if you wanted only GMs to be able to use it for development. 
 
Really, there will be no need for players to have access to target across a zone like that once the /invite <playername> option actually works.  It isn't implemented yet, but I am sure it is on the list of to-dos. 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				11-18-2009, 05:38 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Demi-God 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2009 
					Location: Umm 
					
					
						Posts: 1,492
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		
	Quote: 
	
	
		
			
				
					Originally Posted by  trevius
					 
				 
				You can type the exact name or just the first part of it.  Works pretty much just like /target does in that aspect. 
			
		 | 
	 
	 
 Trev, returning to this issue, there is something I can't do anymore, what I use been able before.
 
To target and SUMMON mob to myself, instead to going to the mob.
 
So before i could do:
 
/target king 
#summon
 
this is useful when I want to say spawnfix a bunch of mobs who maybe on the other end of the zone, but I need to be able to target them from where I am
 
So consider putting zone wide /target back in for GMs please =)  
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				11-27-2009, 07:47 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Developer 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2006 
					Location: USA 
					
					
						Posts: 5,946
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		Yeah, for #spawnfix, it would be nice to have /target working for GMs.  I already mentioned that I think it is a good idea to at least have a rule that lets the admin set the minstatus for that command. 
 
I haven't messed with it in a while, but maybe /summon <name> will let you summon them.  For doing stuff like that, I currently just use MQ2 for it, since it will let you see what is where on the map and let you target anything even though I think it still makes a hacker log entry for it.  I am not a big fan of using MQ2, but it can definitely be helpful when populating a zone.  It is nice to have one quick view on the map to be able to see if any areas have too few or too many NPCs in them. 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
	
		
		
		
			
			 
			
				02-24-2010, 06:16 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Demi-God 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Mar 2009 
					Location: Umm 
					
					
						Posts: 1,492
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
			 
			
		
		
		
		BUMP!!! 
 
You awaiting for gm /target to come back 
 
It targets players across zone, but NOT mobs 
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
	
		 
	 
 
	
	
		
	
	
 
    | 
   | 
    | 
  
 
	
		
		
		
			
			 
			
				02-24-2010, 06:54 PM
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Developer 
				
				
				
			 | 
			  | 
			
				
				
					Join Date: Aug 2006 
					Location: USA 
					
					
						Posts: 5,946
					 
					
					
					
					     
				 
				
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
			
			
				 
				
			 
			 
			
		
		
		
		Here is the function that handles the targeting stuff: 
client_packet.cpp
 
	Code: 
	void Client::Handle_OP_TargetCommand(const EQApplicationPacket *app)
{
	if (app->size != sizeof(ClientTarget_Struct)) {
		LogFile->write(EQEMuLog::Error, "OP size error: OP_TargetMouse expected:%i got:%i", sizeof(ClientTarget_Struct), app->size);
		return;
	}
	if(GetTarget())
	{
		GetTarget()->IsTargeted(-1);
	}
	// Locate and cache new target
	ClientTarget_Struct* ct=(ClientTarget_Struct*)app->pBuffer;
	pClientSideTarget = ct->new_target;
	if(!IsAIControlled())
	{
		Mob *new_target = entity_list.GetMob(ct->new_target);
		if(new_target)
		{
			SetTarget(new_target);
		}
		else
		{
			SetTarget(NULL);
			SetHoTT(0);
			return;
		}
	}
	else
	{
		SetTarget(NULL);
		SetHoTT(0);
		return;
	}
	// <Rogean> HoTT
	if (GetTarget() && GetTarget()->GetTarget()) 
		SetHoTT(GetTarget()->GetTarget()->GetID());
	else 
		SetHoTT(0);
	Group *g = GetGroup();
	if(g && g->IsMainAssist(this))
		g->SetGroupTarget(ct->new_target);
	// For /target, send reject or success packet
	if (app->GetOpcode() == OP_TargetCommand) {
		if (GetTarget() && !GetTarget()->CastToMob()->IsInvisible(this) && DistNoRoot(*GetTarget()) <= TARGETING_RANGE*TARGETING_RANGE) {
			if(GetTarget()->GetBodyType() == BT_NoTarget2 || GetTarget()->GetBodyType() == BT_Special 
				|| GetTarget()->GetBodyType() == BT_NoTarget)
			{
				//Targeting something we shouldn't with /target
				//but the client allows this without MQ so you don't flag it
				EQApplicationPacket* outapp = new EQApplicationPacket(OP_TargetReject, sizeof(TargetReject_Struct));
				outapp->pBuffer[0] = 0x2f;
				outapp->pBuffer[1] = 0x01;
				outapp->pBuffer[4] = 0x0d;
				if(GetTarget())
				{
					SetTarget(NULL);
				}
				QueuePacket(outapp);
				safe_delete(outapp);
				return;
			}
			
			QueuePacket(app);
			EQApplicationPacket hp_app;
			GetTarget()->IsTargeted(1);
			GetTarget()->CreateHPPacket(&hp_app);
			QueuePacket(&hp_app, false);
		} 
		else 
		{
			EQApplicationPacket* outapp = new EQApplicationPacket(OP_TargetReject, sizeof(TargetReject_Struct));
			outapp->pBuffer[0] = 0x2f;
			outapp->pBuffer[1] = 0x01;
			outapp->pBuffer[4] = 0x0d;
			if(GetTarget())
			{
				SetTarget(NULL);
			}
			QueuePacket(outapp);
			safe_delete(outapp);
		}
	}
	else
	{
		if(GetTarget())
		{
			if(GetGM())
			{
				GetTarget()->IsTargeted(1);
				return;
			}
			else if(GetTarget()->IsClient())
			{
				//make sure this client is in our raid/group
				GetTarget()->IsTargeted(1);
				return;
			}
			else if(GetTarget()->GetBodyType() == BT_NoTarget2 || GetTarget()->GetBodyType() == BT_Special 
				|| GetTarget()->GetBodyType() == BT_NoTarget)
			{
				char *hacker_str = NULL;
				MakeAnyLenString(&hacker_str, "%s attempting to target something untargetable, %s bodytype: %i\n",
					GetName(), GetTarget()->GetName(), (int)GetTarget()->GetBodyType());
				database.SetMQDetectionFlag(AccountName(), GetName(), hacker_str, zone->GetShortName());
				safe_delete_array(hacker_str);
				SetTarget((Mob*)NULL);
				return;
			}
			else if(IsPortExempted())
			{
				GetTarget()->IsTargeted(1);
				return;
			}
			else if(IsSenseExempted())
			{
				GetTarget()->IsTargeted(1);
				SetSenseExemption(false);
				return;
			}
			else if(GetBindSightTarget())
			{
				if(GetBindSightTarget()->DistNoRoot(*GetTarget()) > (zone->newzone_data.maxclip*zone->newzone_data.maxclip))
				{
					if(DistNoRoot(*GetTarget()) > (zone->newzone_data.maxclip*zone->newzone_data.maxclip))
					{
						char *hacker_str = NULL;
						MakeAnyLenString(&hacker_str, "%s attempting to target something beyond the clip plane of %.2f units,"
							" from (%.2f, %.2f, %.2f) to %s (%.2f, %.2f, %.2f)", GetName(),
							(zone->newzone_data.maxclip*zone->newzone_data.maxclip),
							GetX(), GetY(), GetZ(), GetTarget()->GetName(), GetTarget()->GetX(), GetTarget()->GetY(), GetTarget()->GetZ());
						database.SetMQDetectionFlag(AccountName(), GetName(), hacker_str, zone->GetShortName());
						safe_delete_array(hacker_str);
						SetTarget(NULL);
						return;
					}
				}
			}
			else if(DistNoRoot(*GetTarget()) > (zone->newzone_data.maxclip*zone->newzone_data.maxclip))
			{
				char *hacker_str = NULL;
				MakeAnyLenString(&hacker_str, "%s attempting to target something beyond the clip plane of %.2f units,"
					" from (%.2f, %.2f, %.2f) to %s (%.2f, %.2f, %.2f)", GetName(),
					(zone->newzone_data.maxclip*zone->newzone_data.maxclip),
					GetX(), GetY(), GetZ(), GetTarget()->GetName(), GetTarget()->GetX(), GetTarget()->GetY(), GetTarget()->GetZ());
				database.SetMQDetectionFlag(AccountName(), GetName(), hacker_str, zone->GetShortName());
				safe_delete_array(hacker_str);
				SetTarget(NULL);
				return;
			}
			GetTarget()->IsTargeted(1);
		}
	}
	return;
}
 I will try to look through this later and maybe add in a "if(Admin() < 80)" type of check to allow GMs to use /target from any range.  Just need to figure out the best place to put that, but it shouldn't be too hard.  
		
	
		
		
		
		
		
		
			
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
 
    | 
   | 
    | 
  
 
	 
	
		 
	 
 
 
	
		
	
	
	
	
	
		
	
		 
		Posting Rules
	 | 
 
	
		
		You may not post new threads 
		You may not post replies 
		You may not post attachments 
		You may not edit your posts 
		 
		
		
		
		
		HTML code is Off 
		 
		
	  | 
 
 
	 | 
	
		
	 | 
 
 
All times are GMT -4. The time now is 09:26 PM. 
 
		 
	 
 
 
     | 
     | 
    
   
      | 
     | 
      | 
    
   
     | 
      | 
     | 
    
   
       | 
      | 
       | 
     
    
    
  | 
   |