Gm Invis-> Perhaps a solution?

Pedro B.

OpenTibia Official Dev
Joined
Aug 8, 2007
Messages
127
Reaction score
2
Location
Brazil
Those who knows the old "GM Invisible" from YurOTS, or even the one that The Chaos(From OTF) made, you know that there is a bug there.

If you were invisible, and there is some item under you, and someone move it, the item is normaly moved and recoganized by the server, but the client doesn't recoganizes it. So the item is still there(for non-GMinvis players), but isn't. Weird? Keep reading.

As some of you know, the Players, Monsters and NPCs have reserved ID Ranges(which are 0x10000000, 0x40000000 and 0x30000000, respectively). Those ranges are also recoganized by the client. This explains why you can see the "Invite to Party" on a player, but not on a NPC or a monster. Also, this explains why you can't see invisible monsters but you can see invisible players(as "stars").

So, what if we could "fake" the GMs ID and send to the client that they are monsters? :eek:

That is my idea. When a GM logs in, instead of setting his ID with a normal player's range, set it with another range(monster, npc or any other, whatever), and then make players able to walk over him and look to the item under him instead of him(lol?). So, we got the GM invis done.

BUT we get another bug: we cant use "Message to XXX" or "Add XXX to your VIP List" by right-clicking the GM! =O!

Any suggestions? :rolleyes:

cya ;)
 

Mark

Administrator
Staff member
Administrator
Joined
May 27, 2007
Messages
6,387
Reaction score
1,385
Location
Sweden
Isn't it possible to send a new ID range of the gamemaster while he is online to the clients that require this? If not it isn't important to have "Add x to your VIP List" and "Message to x" on a gamemaster anyway, because only other gamemasters should be able to add them to VIP list, and it can be annoying for gamemasters sometimes to get messaged from all players so this should only reduce this :p
 
OP
Pedro B.

Pedro B.

OpenTibia Official Dev
Joined
Aug 8, 2007
Messages
127
Reaction score
2
Location
Brazil
haha, sadly I don't know how does the Tibian bytes works... it seems the client don't let me send another id range(or something else lol) =x

what I've made is
Code:
	uint32_t id = creature->getID();
	if(creature->getPlayer() && creature->getPlayer()->isAccessPlayer()){
		id &= 0x10000000;
		id |= 0x40000000;
	}
and then sending the id instead of the creature->getID()... but it seems to not work =x it debugs my client...

by the way, I've just changed this in the AddCreature, sendCreatureOutfit and sendCreatureInvisible.

Does anybody has an idea why did this happened? :p
 

Mark

Administrator
Staff member
Administrator
Joined
May 27, 2007
Messages
6,387
Reaction score
1,385
Location
Sweden
Are you sure that the ID ranges support that then? I've never tried using other value than 0x(1/3/4)0000000;, I wonder what would happen will "0x20000000;", will try it later.
 
Top