public void Handle(RoomUser user, Team team, RoomItem iItem) { InteractorGenericSwitch.DoAnimation(item); Queue <RoomItem> toRemove = new Queue <RoomItem>(); foreach (var _item in items) { if (room.GetRoomItemHandler().GetItem(_item.Id) == null) { toRemove.Enqueue(_item); continue; } /*if(_item.Coordinate == item.Coordinate) * { * continue; * }*/ handler.RequestStackHandleEffects(_item.Coordinate, null, user, Team.none); } while (toRemove.Count > 0) { RoomItem itemToRemove = toRemove.Dequeue(); if (items.Contains(itemToRemove)) { items.Remove(itemToRemove); } } }
public void Handle(RoomUser user, Team team, RoomItem iItem) { InteractorGenericSwitch.DoAnimation(item); Queue <RoomItem> toRemove = new Queue <RoomItem>(); foreach (var _item in items) { if (room.GetRoomItemHandler().GetItem(_item.Id) == null) { toRemove.Enqueue(_item); continue; } HandleMovement(_item); } while (toRemove.Count > 0) { RoomItem itemToRemove = toRemove.Dequeue(); if (items.Contains(itemToRemove)) { items.Remove(itemToRemove); } } }
private bool ToggleItems(RoomUser user) { if (disposed) { return(false); } InteractorGenericSwitch.DoAnimation(item); var itemTriggered = false; foreach (var i in items) { if (i == null) { continue; } if (user != null && user.GetClient() != null) { i.Interactor.OnTrigger(user.GetClient(), i, 3, true); } else { i.Interactor.OnTrigger(null, i, 3, true); } itemTriggered = true; } return(itemTriggered); }
private bool HandleItems() { InteractorGenericSwitch.DoAnimation(item); var itemHandled = false; Queue <RoomItem> toRemove = new Queue <RoomItem>(); foreach (var _item in items) { if (room != null && room.GetRoomItemHandler() != null && room.GetRoomItemHandler().GetItem(_item.Id) == null) { toRemove.Enqueue(_item); continue; } if (HandleMovement(_item)) { itemHandled = true; } } while (toRemove.Count > 0) { RoomItem itemToRemove = toRemove.Dequeue(); if (items.Contains(itemToRemove)) { items.Remove(itemToRemove); } } return(itemHandled); }
public void Handle(RoomUser user, Team team, RoomItem item) { if (team == staticTeam && maxCountPerGame > currentGameCount) { InteractorGenericSwitch.DoAnimation(itemID); currentGameCount++; gameManager.AddPointsToTeam(team, scoreToGive, user); } }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); if (user != null && !user.IsBot && user.GetClient() != null) { user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect((int)staticTeam + 39); user.team = staticTeam; } }
private void roomUserManager_OnUserEnter(object sender, EventArgs e) { var user = (RoomUser)sender; if ((!user.IsBot && isOneUser && !string.IsNullOrEmpty(userName) && user.GetUsername() == userName) || !isOneUser) { InteractorGenericSwitch.DoAnimation(item); handler.RequestStackHandle(item, null, user, user.team); } }
public bool OnCycle() { cycleCount++; if (cycleCount > (cyclesRequired - 0.5)) { handler.RequestStackHandle(item, null, null, Team.none); InteractorGenericSwitch.DoAnimation(item); cycleCount = 0; } return(true); }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); if (user != null && !user.IsBot && user.GetClient() != null) { if (user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect == 40 || user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect == 41 || user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect == 42 || user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect == 43) { user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0); } user.team = Team.none; } }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); cycles = 0; if (delay == 0) { HandleItems(); } else { handler.RequestCycle(this); } }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); if (user != null && !user.IsBot && user.GetClient() != null && user.GetClient().GetHabbo() != null && user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent() != null && message.Length > 0) { int effects = Convert.ToInt16(message); if (effects < 0 || effects > 105) { effects = 0; } if (user.CarryItemID == effects) { effects = 0; } user.CarryItem(effects); } }
public void Handle(RoomUser user, Team team, RoomItem item) { if (user != null && !user.IsBot && user.GetClient() != null && message.Length > 0) { string specialMessage = BlackWordsManager.SpecialReplace(message, user); var servermsg = new ServerMessage(Outgoing.Whisp); servermsg.AppendInt32(user.VirtualId); servermsg.AppendString(specialMessage); servermsg.AppendInt32(0); servermsg.AppendInt32(34); // color servermsg.AppendInt32(0); servermsg.AppendInt32(-1); user.GetClient().SendMessage(servermsg); InteractorGenericSwitch.DoAnimation(itemID); } }
public bool AllowsExecution(RoomUser user) { InteractorGenericSwitch.DoAnimation(item); if (items.Count <= 0) { return(true); } OriginalItemLocation location; foreach (RoomItem _item in items) { if (!this.originalItemLocation.ContainsKey(_item.Id)) { continue; } location = this.originalItemLocation[_item.Id]; if (FurniPosition == 1 && !(location.X == _item.GetX && _item.GetY == location.Y && _item.TotalHeight == location.Height)) { return(false); } if (FurniDirection == 1 && _item.Rot != location.Rot) { return(false); } if (FurniState == 1 && _item.ExtraData != location.ExtraData) { if (string.IsNullOrEmpty(_item.ExtraData) && location.ExtraData == "0") { } else { return(false); } } } return(true); }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); if (user != null && !user.IsBot && user.GetClient() != null && message.Length > 0) { uint diamantes = Convert.ToUInt32(message.Replace("-", "")); if (message.Contains("-")) { user.GetClient().GetHabbo().Diamonds -= diamantes; user.GetClient().GetHabbo().UpdateExtraMoneyBalance(); user.WhisperComposer("Você acaba de perder " + diamantes + " diamantes ª"); } else { user.GetClient().GetHabbo().Diamonds += Convert.ToUInt32(message); user.GetClient().GetHabbo().UpdateExtraMoneyBalance(); user.WhisperComposer("Você acaba de ganhar " + diamantes + " diamantes "); } } }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); if (user != null && !user.IsBot && user.GetClient() != null && user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent() != null && message.Length > 0) { int effectid = Convert.ToInt16(message); if (effectid < 0 || effectid > 1000) { effectid = 0; } if (effectid == user.CurrentEffect) { effectid = 0; } user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(effectid); } }
public bool OnCycle() { cycles++; if (cycles > delay) { if (delayedUsers.Count > 0) { lock (delayedUsers.SyncRoot) { while (delayedUsers.Count > 0) { var user = (RoomUser)delayedUsers.Dequeue(); TeleportUser(user); InteractorGenericSwitch.DoAnimation(itemID); } } } return(false); } return(true); }
private void targetItem_OnUserWalksOnFurni(object sender, UserWalksOnArgs e) { RoomItem onItem = (RoomItem)sender; if (onItem.GetBaseItem().IsSeat) { if (onItem.TotalHeight - onItem.GetBaseItem().Height != e.user.Z) { return; } } else { if (onItem.TotalHeight != e.user.Z) { return; } } handler.RequestStackHandle(item, (RoomItem)sender, e.user, e.user.team); InteractorGenericSwitch.DoAnimation(item); }
public bool OnCycle() { cycleCount++; if (cycleCount > (cyclesRequired - 0.5)) { if (delayedUsers.Count > 0) { lock (delayedUsers.SyncRoot) { while (delayedUsers.Count > 0) { var user = (RoomUser)delayedUsers.Dequeue(); normalWalk(user); cycleCount = 0; InteractorGenericSwitch.DoAnimation(item); } } } return(false); } return(true); }
public void Handle(RoomUser user, Team team, RoomItem item) { InteractorGenericSwitch.DoAnimation(itemID); if (user == null || user.IsBot || user.GetClient() == null || disposed || user.GetClient().GetHabbo() == null || user.GetClient().GetHabbo().Rank >= 3) { return; } var servermsg = new ServerMessage(Outgoing.Whisp); servermsg.AppendInt32(user.VirtualId); if (user.HabboId == itemID.GetRoom().RoomData.OwnerId) { servermsg.AppendString("Wired kick exception: Room owner"); } else { servermsg.AppendString(message); } servermsg.AppendInt32(0); servermsg.AppendInt32(0); // color servermsg.AppendInt32(0); servermsg.AppendInt32(-1); user.GetClient().SendMessage(servermsg); if (user.HabboId == itemID.GetRoom().RoomData.OwnerId) { return; } user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(4); lock (delayedUsers.SyncRoot) { delayedUsers.Enqueue(user); } handler.RequestCycle(this); }
private void gameManager_OnGameEnd(object sender, EventArgs e) { handler.RequestStackHandle(item, null, null, Team.none); InteractorGenericSwitch.DoAnimation(item); }
private void targetItem_OnUserWalksOffFurni(object sender, UserWalksOnArgs e) { handler.RequestStackHandle(item, (RoomItem)sender, e.user, e.user.team); InteractorGenericSwitch.DoAnimation(item); }
internal static void HandleSave(GameClient Session, uint itemID, Room room, ClientMessage clientMessage) { if (room == null || room.GetRoomItemHandler() == null) { return; } var item = room.GetRoomItemHandler().GetItem(itemID); if (item == null) { return; } if (item.wiredHandler != null) { item.wiredHandler.Dispose(); item.wiredHandler = null; } InteractorGenericSwitch.DoAnimation(item); var type = item.GetBaseItem().InteractionType; switch (type) { #region Causantes case InteractionType.triggeronusersay: { var junk = clientMessage.PopWiredInt32(); var isOnlyOwner = (clientMessage.PopWiredInt32() == 1); var message = clientMessage.PopFixedString(); IWiredTrigger handler = new UserSays(item, room.GetWiredHandler(), isOnlyOwner, message, room); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerwalkonfurni: { var junk = clientMessage.PopWiredInt32(); var message = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); IWiredTrigger handler = new WalksOnFurni(item, room.GetWiredHandler(), items); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerwalkofffurni: { var junk = clientMessage.PopWiredInt32(); var message = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); IWiredTrigger handler = new WalksOffFurni(item, room.GetWiredHandler(), items); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggergameend: { IWiredTrigger handler = new GameEnds(item, room.GetWiredHandler(), room.GetGameManager()); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggergamestart: { IWiredTrigger handler = new GameStarts(item, room.GetWiredHandler(), room.GetGameManager()); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggertimer: { var junk = clientMessage.PopWiredInt32(); var cycles = clientMessage.PopWiredInt32(); IWiredTrigger handler = new Timer(item, room.GetWiredHandler(), cycles, room.GetGameManager()); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerrepeater: { var junk = clientMessage.PopWiredInt32(); var cycleTimes = clientMessage.PopWiredInt32(); IWiredTrigger handler = new Repeater(room.GetWiredHandler(), item, cycleTimes); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerroomenter: { var junk = clientMessage.PopWiredInt32(); var users = clientMessage.PopFixedString(); IWiredTrigger handler = new EntersRoom(item, room.GetWiredHandler(), room.GetRoomUserManager(), !string.IsNullOrEmpty(users), users); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerscoreachieved: { var junk = clientMessage.PopWiredInt32(); var score = clientMessage.PopWiredInt32(); IWiredTrigger handler = new ScoreAchieved(item, room.GetWiredHandler(), score, room.GetGameManager()); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerstatechanged: { var junk = clientMessage.PopWiredInt32(); var junk3 = clientMessage.PopWiredBoolean(); var junk2 = clientMessage.PopWiredBoolean(); int furniAmount; var items = GetItems(clientMessage, room, out furniAmount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger handler = new StateChanged(room.GetWiredHandler(), item, items); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggercollision: { IWiredTrigger handler = new Collision(item, room.GetWiredHandler(), room.GetRoomUserManager()); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerlongperiodic: { var junk = clientMessage.PopWiredInt32(); var cycleTimes = clientMessage.PopWiredInt32(); IWiredTrigger handler = new LongRepeater(room.GetWiredHandler(), item, cycleTimes); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerbotreachedavtr: { var junk = clientMessage.PopWiredInt32(); var botname = clientMessage.PopFixedString(); IWiredTrigger handler = new BotAlcanzaUsuario(item, room.GetWiredHandler(), room.GetRoomUserManager(), botname); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.triggerbotreachedstf: { var junk = clientMessage.PopWiredInt32(); var botname = clientMessage.PopFixedString(); int furniAmount; var items = GetItems(clientMessage, room, out furniAmount); IWiredTrigger handler = new BotAlcanzaFurni(item, room.GetWiredHandler(), room.GetRoomUserManager(), items, botname); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } #endregion #region Efectos case InteractionType.actiongivescore: { var junk = clientMessage.PopWiredInt32(); var points = clientMessage.PopWiredInt32(); var games = clientMessage.PopWiredInt32(); IWiredTrigger action = new GiveScore(games, points, room.GetGameManager(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionposreset: { var junk = clientMessage.PopWiredInt32(); var state = clientMessage.PopWiredInt32(); var direction = clientMessage.PopWiredInt32(); var position = clientMessage.PopWiredInt32(); var junk3 = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new PositionReset(items, delay, state + "," + direction + "," + position, new Dictionary <uint, OriginalItemLocation>(), room.GetRoomItemHandler(), room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionresettimer: { var junk = clientMessage.PopWiredInt32(); var junk3 = clientMessage.PopWiredBoolean(); var junk2 = clientMessage.PopWiredBoolean(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new TimerReset(room, room.GetWiredHandler(), delay, item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionshowmessage: { var junk = clientMessage.PopWiredInt32(); var message = OtanixEnvironment.FilterInjectionChars(clientMessage.PopFixedString()); if (BlackWordsManager.Check(message, BlackWordType.Hotel, Session, "<WiredMensaje>")) { message = "Mensaje bloqueado por el filtro bobba."; } IWiredTrigger action = new ShowMessage(message, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionhandiitemcustom: { var junk = clientMessage.PopWiredInt32(); var message = OtanixEnvironment.FilterInjectionChars(clientMessage.PopFixedString()); int valorInteiro; bool inteiroCustom = int.TryParse(message, out valorInteiro); if (inteiroCustom) { IWiredTrigger action = new HandiCustom(message, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); } else { RoomUser usuario = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); usuario.WhisperComposer("Você não pode colocar letras neste wired, apenas números."); } break; } case InteractionType.actioneffectcustom: { var junk = clientMessage.PopWiredInt32(); var message = OtanixEnvironment.FilterInjectionChars(clientMessage.PopFixedString()); int valorInteiro; bool inteiroCustom = int.TryParse(message, out valorInteiro); if (inteiroCustom) { IWiredTrigger action = new EffectCustom(message, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); } else { RoomUser usuario = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); usuario.WhisperComposer("Você não pode colocar letras neste wired, apenas números."); } break; } case InteractionType.actiondiamantescustom: { var junk = clientMessage.PopWiredInt32(); var message = OtanixEnvironment.FilterInjectionChars(clientMessage.PopFixedString()); int valorInteiro; bool inteiroCustom = int.TryParse(message, out valorInteiro); if (inteiroCustom) { IWiredTrigger action = new DiamantesCustom(message, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } else { RoomUser usuario = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); usuario.WhisperComposer("Você não pode colocar letras neste wired, apenas números e hífen (-)."); } break; } case InteractionType.actiondancecustom: { var junk = clientMessage.PopWiredInt32(); var message = OtanixEnvironment.FilterInjectionChars(clientMessage.PopFixedString()); int valorInteiro; bool inteiroCustom = int.TryParse(message, out valorInteiro); if (inteiroCustom) { IWiredTrigger action = new DanceCustom(message, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); } else { RoomUser usuario = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); usuario.WhisperComposer("Você não pode colocar letras neste wired, apenas números."); } break; } case InteractionType.actionfastwalk: { var junk = clientMessage.PopWiredInt32(); var cycleTimes = clientMessage.PopWiredInt32(); IWiredTrigger handler = new FastWalkCustom(room.GetWiredHandler(), item, cycleTimes); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.actionfreezecustom: { var junk = clientMessage.PopWiredInt32(); var cycleTimes = clientMessage.PopWiredInt32(); IWiredTrigger handler = new FreezeCustom(room.GetWiredHandler(), item, cycleTimes); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.actionteleportto: { var junk = clientMessage.PopWiredInt32(); var junk2 = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new TeleportToItem(room.GetGameMap(), room.GetWiredHandler(), items, delay, item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actiontogglestate: { var junk = clientMessage.PopWiredInt32(); var message = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new ToggleItemState(room.GetWiredHandler(), items, delay, item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionmoverotate: { var junk = clientMessage.PopWiredInt32(); var movement = (MovementState)clientMessage.PopWiredInt32(); var rotation = (RotationState)clientMessage.PopWiredInt32(); var junk3 = clientMessage.PopWiredBoolean(); var junk2 = clientMessage.PopWiredBoolean(); var items = GetItems(clientMessage, room, out int furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger handler = new MoveRotate(movement, rotation, items, delay, room, room.GetWiredHandler(), item); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.actiongivereward: { if (!Session.GetHabbo().HasFuse("fuse_wired_rewards")) { Session.SendNotif("No tienes permitido usar este Wired."); break; } var junk = clientMessage.PopWiredInt32(); var often = clientMessage.PopWiredInt32(); var unique = clientMessage.PopWiredInt32(); var limite = clientMessage.PopWiredInt32(); var nInt = clientMessage.PopWiredInt32(); var extrainfo = clientMessage.PopFixedString(); #region Posible Bug? if (extrainfo.Contains(";")) { foreach (var s in extrainfo.Split(';')) { if (s.StartsWith("1")) { string value = s.Split(',')[1]; if (!value.StartsWith("diamonds:") && !value.StartsWith("alert:")) { try { int.Parse(value); } catch { Session.SendNotif("Has intentado poner un item inválido. Recuerda que debes poner el item_id."); return; } } } } } else { if (extrainfo.StartsWith("1")) { string value = extrainfo.Split(',')[1]; if (!value.StartsWith("diamonds:") && !value.StartsWith("alert:")) { try { int.Parse(value); } catch { Session.SendNotif("Has intentado poner un item inválido. Recuerda que debes poner el item_id."); return; } } } } #endregion OtanixEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, "", "WiredReward", "Wired Id: " + item.Id + ", RoomId: " + item.RoomId + "."); IWiredTrigger action = new GiveReward(extrainfo, limite, often, unique, nInt, item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionchase: { var junk = clientMessage.PopWiredInt32(); var junk2 = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new Chase(items, delay, room, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionkickuser: { var junk = clientMessage.PopWiredInt32(); var message = clientMessage.PopFixedString(); IWiredTrigger action = new KickUser(message, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionescape: { var junk = clientMessage.PopWiredInt32(); var junk2 = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new Escape(items, delay, room, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionjointoteam: { var junk = clientMessage.PopWiredInt32(); var teamid = (Team)clientMessage.PopWiredInt32(); IWiredTrigger action = new JoinToTeam(room.GetWiredHandler(), item, teamid); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionleaveteam: { IWiredTrigger action = new LeaveTeam(room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actiongiveteamscore: { var junk = clientMessage.PopWiredInt32(); var points = clientMessage.PopWiredInt32(); var games = clientMessage.PopWiredInt32(); var teamid = (Team)clientMessage.PopWiredInt32(); IWiredTrigger action = new GiveTeamScore(games, points, teamid, room.GetGameManager(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actioncallstacks: { var junk = clientMessage.PopWiredInt32(); var junk2 = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new CallStacks(items, room, room.GetWiredHandler(), item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionmovetodir: { var junk = clientMessage.PopWiredInt32(); var movement = (MovementDirection)clientMessage.PopWiredInt32(); var rotation = (WhenMovementBlock)clientMessage.PopWiredInt32(); var junk3 = clientMessage.PopWiredBoolean(); var junk2 = clientMessage.PopWiredBoolean(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger handler = new MoveToDir(items, movement, rotation, room, room.GetWiredHandler(), item); HandleTriggerSave(handler, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbotmove: { var junk = clientMessage.PopWiredInt32(); var botName = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new BotMove(item.Id, room, room.GetWiredHandler(), botName, items, delay); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbotwhisper: { var junk = clientMessage.PopWiredInt32(); bool talkorwhisper = clientMessage.PopWiredInt32() == 1; string message = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); IWiredTrigger action = new BotTalkToUser(item.Id, room, room.GetWiredHandler(), message, talkorwhisper); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbotteleport: { var junk = clientMessage.PopWiredInt32(); var botName = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new BotTeleport(item.Id, room, room.GetWiredHandler(), botName, items, delay); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbotclothes: { int junk = clientMessage.PopWiredInt32(); string message = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new BotChangeLook(item.Id, room, room.GetWiredHandler(), message, delay); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbottalk: { var junk = clientMessage.PopWiredInt32(); bool talkorshout = clientMessage.PopWiredInt32() == 1; string message = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new BotTalkToAll(item.Id, room, room.GetWiredHandler(), message, talkorshout, delay); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbothanditem: { var junk = clientMessage.PopWiredInt32(); int handitem = clientMessage.PopWiredInt32(); string botname = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new BotGiveHandItem(item.Id, room, room.GetWiredHandler(), botname, handitem, delay); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionbotfollowavt: { var junk = clientMessage.PopWiredInt32(); bool followorstop = clientMessage.PopWiredInt32() == 1; string botname = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new BotFollowUser(item.Id, room, room.GetWiredHandler(), botname, followorstop, delay); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionmutetriggerer: { var junk = clientMessage.PopWiredInt32(); uint mutetimer = clientMessage.PopWiredUInt(); string botname = clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredUInt(); IWiredTrigger action = new MuteTriggerer(room.GetWiredHandler(), botname, mutetimer, delay, item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } case InteractionType.actionmovetofurni: { var junk = clientMessage.PopWiredInt32(); int direction = clientMessage.PopWiredInt32(); int length = clientMessage.PopWiredInt32(); clientMessage.PopFixedString(); int furniCount; var items = GetItems(clientMessage, room, out furniCount); var delay = clientMessage.PopWiredInt32(); IWiredTrigger action = new MoveToFurni(room.GetWiredHandler(), items, length, direction, delay, item); HandleTriggerSave(action, room.GetWiredHandler(), room, item); break; } #endregion } Session.SendMessage(new ServerMessage(Outgoing.SaveWired)); }
public void Handle(RoomUser user, Team team, RoomItem item) { try { /* * // 0: Lo sentimos. Los premios disponibles son limitados y ya han sido todos repartidos. * // 1: Ya has obtenido este premio. Cada usuari@ sólo puede ganar el mismo premio una vez. * // 2: Hoy ya has sido premiada, prueba suerte mañana! * // 3: Ya has sido premiad@ durante la última hora. Prueba de nuevo dentro de una hora. * // 4: No ha habido suerte esta vez. Prueba de nuevo para hacerte con el premio. * // 5: Ya has reunido todos los premios que podías obtener. * // 6: Has recibido un premio. Mira en Mis Cosas o en Mis Efectos para ver qué es. * // 7: Acabas de recibir una Placa. Mira en Mis Cosas. */ InteractorGenericSwitch.DoAnimation(item); if (user != null && !user.IsBot && user.GetClient() != null && isCorrectInt(user)) { var data = ExtraInfo; foreach (var Datas in data.Split(';')) { var isbadge = int.Parse(Datas.Split(',')[0]); var code = Datas.Split(',')[1]; var percentage = int.Parse(Datas.Split(',')[2]); if (Amount > 0 || AllUsers == 1) { if (isbadge == 0) // placa { #region BadgeCode if (AllUsers == 1) // no porcentaje: { if (user.GetClient().GetHabbo().GetBadgeComponent().HasBadge(code)) { var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(1); user.GetClient().SendMessage(Message); } else { user.GetClient().GetHabbo().GetBadgeComponent().GiveBadge(code); var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(7); user.GetClient().SendMessage(Message); } } else { var randomnumber = new Random().Next(0, 100); if (randomnumber <= percentage) // premiado { if (user.GetClient().GetHabbo().GetBadgeComponent().HasBadge(code)) { var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(1); user.GetClient().SendMessage(Message); } else { user.GetClient().GetHabbo().GetBadgeComponent().GiveBadge(code); var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(7); user.GetClient().SendMessage(Message); } } else { var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(4); user.GetClient().SendMessage(Message); } } #endregion } else // item && Effect { #region Item Or Effect if (AllUsers == 1) // no porcentaje: { if (code.StartsWith("diamonds:")) { int amount = int.Parse(code.Substring(9)); user.GetClient().GetHabbo().GiveUserDiamonds(amount); user.GetClient().SendNotif("Acaba de receber " + amount + " diamantes."); } else if (code.StartsWith("alert:")) { string message = code.Substring(6); user.GetClient().SendNotif(message); } else { var Item = OtanixEnvironment.GetGame().GetItemManager().GetItem(uint.Parse(code)); if (Item != null) { if (Item.Type == 'e') // is effect { user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().AddEffect(Item.SpriteId, 3600); } else { user.GetClient().GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, "", true, false, false, Item.Name, user.GetClient().GetHabbo().Id, 0); user.GetClient().GetHabbo().GetInventoryComponent().UpdateItems(false); } var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(6); user.GetClient().SendMessage(Message); } } } else { var randomnumber = new Random().Next(0, 100); if (randomnumber <= percentage) // premiado { if (code.StartsWith("diamonds:")) { int amount = int.Parse(code.Substring(9)); user.GetClient().GetHabbo().GiveUserDiamonds(amount); user.GetClient().SendNotif("Acaba de reciber " + amount + " diamantes."); } else if (code.StartsWith("alert:")) { string message = code.Substring(6); user.GetClient().SendNotif(message); } else { var Item = OtanixEnvironment.GetGame().GetItemManager().GetItem(uint.Parse(code)); if (Item != null) { if (Item.Type == 'e') // is effect { user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().AddEffect(Item.SpriteId, 3600); } else { user.GetClient().GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, "", true, false, false, Item.Name, user.GetClient().GetHabbo().Id, 0); user.GetClient().GetHabbo().GetInventoryComponent().UpdateItems(false); } var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(6); user.GetClient().SendMessage(Message); } } } else { var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(4); user.GetClient().SendMessage(Message); } } #endregion } if (Amount > 0) { Amount--; /*using (var dbClient = HabboEnvironment.GetDatabaseManager().getQueryreactor()) * { * var newGenerate = ExtraInfo.ToString() + ";" + Amount + "," + Type + "," + AllUsers + ";false"; * dbClient.setQuery("REPLACE INTO items_wired (item_id, wired_data) VALUES (@id, @nG)"); * dbClient.addParameter("id", (int)item.Id); * dbClient.addParameter("nG", newGenerate); * dbClient.runQuery(); * }*/ } } else { var Message = new ServerMessage(Outgoing.NoRewardRoom); Message.AppendInt32(0); user.GetClient().SendMessage(Message); } } } } catch { } }
private void onTrigger(ItemTriggeredArgs e) { handler.RequestStackHandle(item, e.TriggeringItem, e.TriggeringUser, Team.none); InteractorGenericSwitch.DoAnimation(item); }