Here a fix for the group gates. After this fix only group members can pass through the gate.
First do this: http://forum.ragezone.com/f353/fix-one-way-gate-906384/
And than 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 put
In HabboHotel/Items/InterractionTypes.cs find
Code:
case "onewaygate":
return InteractionType.onewaygate;
After that put
Code:
case "gld_gate":
return InteractionType.gld_gate;
Further down on that same page( HabboHotel/Items/InterractionTypes.cs) find another instance of
Code:
case InteractionType.onewaygate:
return "onewaygate";
After that put
Code:
case InteractionType.gld_gate:
return "gld_gate";
In RoomItems.cs find
Code:
case InteractionType.onewaygate:
return new InteractorOneWayGate();
After that put
Code:
case InteractionType.gld_gate:
return new InteractorOneWayGate();
In RoomItems.cs find
Code:
case InteractionType.onewaygate:
roomUserByHabbo = null;
Change that to
Code:
case InteractionType.onewaygate:
case InteractionType.gld_gate:
roomUserByHabbo = null;
In InteractorOneWayGate.cs find
Code:
internal override void OnTrigger(GameClient Session, RoomItem Item, int Request, bool UserHasRights)
Replace that entire method with this one
Old Version:
Spoiler :
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.ExtraData = "1";
Item.UpdateState(false, true);
System.Threading.Thread.Sleep(1000);
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);
roomUserByHabbo.MoveTo(Item.SquareBehind);
}
}
}
else
{
Session.SendNotif("Only group members can open this gate.");
}
}
}
}
New Version:
Spoiler :
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 (Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, roomUserByHabbo.AllowOverride) && roomUserByHabbo.Coordinate == Item.SquareInFront && (Item.InteractingUser == 0))
{
Item.ExtraData = "1";
Item.UpdateState(false, true);
System.Threading.Thread.Sleep(1000);
Item.InteractingUser = roomUserByHabbo.HabboId;
roomUserByHabbo.CanWalk = false;
roomUserByHabbo.AllowOverride = true;
roomUserByHabbo.MoveTo(Item.Coordinate);
Item.ExtraData = "0";
Item.UpdateState(false, true);
roomUserByHabbo.MoveTo(Item.SquareBehind);
roomUserByHabbo.CanWalk = true;
System.Threading.Thread.Sleep(1000);
roomUserByHabbo.AllowOverride = false;
Item.InteractingUser = 0;
}
else if (Item.GetRoom().GetGameMap().CanWalk(Item.SquareInFront.X, Item.SquareInFront.Y, roomUserByHabbo.AllowOverride) && roomUserByHabbo.Coordinate == Item.SquareBehind && (Item.InteractingUser == 0))
{
Item.ExtraData = "1";
Item.UpdateState(false, true);
System.Threading.Thread.Sleep(1000);
Item.InteractingUser = roomUserByHabbo.HabboId;
roomUserByHabbo.CanWalk = false;
roomUserByHabbo.AllowOverride = true;
roomUserByHabbo.MoveTo(Item.Coordinate);
Item.ExtraData = "0";
Item.UpdateState(false, true);
roomUserByHabbo.MoveTo(Item.SquareInFront);
roomUserByHabbo.CanWalk = true;
System.Threading.Thread.Sleep(1000);
roomUserByHabbo.AllowOverride = false;
Item.InteractingUser = 0;
}
}
}
else
{
Session.SendNotif("Nur Gruppen Mitglieder können dieses Tor benutzen.");
}
}
}
}
Changelog:
- Version 2:
- Now you can enter by 2 sides
That should do it.
Thanks leenster for doing the basis.
Thanks to me for fixing the fix and for improving.
Video: BcStrom Group Gates Fix - YouTube