Here a fix for the group gates. After this fix only group members can pass through the gate.
First find the group gate in your items_base (id 4532) and change the interaction type to gld_gate.
In HabboHotel/Items/InteractionType.cs find
After that putPHP Code:onewaygate,
In HabboHotel/Items/InterractionTypes.cs findPHP Code:gld_gate,
After that putPHP Code:case InteractionType.onewaygate:
return "onewaygate";
Further down on that same page( HabboHotel/Items/InterractionTypes.cs) find another instance ofPHP Code:case InteractionType.gld_gate:
return "gld_gate";
After that putPHP Code:case InteractionType.onewaygate:
return "onewaygate";
In RoomItems.cs findPHP Code:case InteractionType.gld_gate:
return "gld_gate";
After that putPHP Code:case InteractionType.onewaygate:
return new InteractorOneWayGate();
In RoomItems.cs findPHP Code:case InteractionType.gld_gate:
return new InteractorOneWayGate();
Change that toPHP Code:case InteractionType.onewaygate:
roomUserByHabbo = null;
In InteractorOneWayGate.cs findPHP Code:case InteractionType.onewaygate:
case InteractionType.gld_gate:
roomUserByHabbo = null;
Replace that entire method with this onePHP Code:internal override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
That should do it.PHP Code:internal override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
{
if (Session != null)
{
if (Item.GetBaseItem().InteractionType == InteractionType.onewaygate)
{
RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (roomUserByHabbo != null)
{
if ((roomUserByHabbo.Coordinate != Item.SquareInFront) && roomUserByHabbo.CanWalk)
{
roomUserByHabbo.MoveTo(Item.SquareInFront);
}
else if (Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, roomUserByHabbo.AllowOverride) && (Item.InteractingUser == 0))
{
Item.InteractingUser = roomUserByHabbo.HabboId;
roomUserByHabbo.CanWalk = false;
if (roomUserByHabbo.IsWalking && ((roomUserByHabbo.GoalX != Item.SquareInFront.X) || (roomUserByHabbo.GoalY != Item.SquareInFront.Y)))
{
roomUserByHabbo.ClearMovement(true);
}
roomUserByHabbo.AllowOverride = true;
roomUserByHabbo.MoveTo(Item.Coordinate);
Item.ReqUpdate(4, true);
}
}
}
if (Item.GetBaseItem().InteractionType == InteractionType.gld_gate)
{
if (Session.GetHabbo().ImGuilds.Contains(Convert.ToInt32(Item.Guilds_Data[0])))
{
RoomUser roomUserByHabbo = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
if (roomUserByHabbo != null)
{
if ((roomUserByHabbo.Coordinate != Item.SquareInFront) && roomUserByHabbo.CanWalk)
{
roomUserByHabbo.MoveTo(Item.SquareInFront);
}
else if (Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, roomUserByHabbo.AllowOverride) && (Item.InteractingUser == 0))
{
Item.InteractingUser = roomUserByHabbo.HabboId;
roomUserByHabbo.CanWalk = false;
if (roomUserByHabbo.IsWalking && ((roomUserByHabbo.GoalX != Item.SquareInFront.X) || (roomUserByHabbo.GoalY != Item.SquareInFront.Y)))
{
roomUserByHabbo.ClearMovement(true);
}
roomUserByHabbo.AllowOverride = true;
roomUserByHabbo.MoveTo(Item.Coordinate);
Item.ReqUpdate(4, true);
}
}
}
else
{
Session.SendNotif("Only group members can open this gate.");
}
}
}
}
I am aware that this is not exactly as they work on Habbo so if someone know how to fix it up then please post your fixes in this thread.

