Sounds great. Sorry for asking, but have any idea when build3 will be released?
Sent from my iPhone using Tapatalk
Hopefully tonight! (A good 10 hours).
I've pushed in room polls, hoping I can get someone to give them a look over as I seem to have no validation (on the client end) for selections etc, anyone know how this is handled? Can't find a poll on Habbo.
I've put (and moved existing SQL) into an SQLs/Release folder on the Git, so we can all keep up to date, those working on it. I've put the latest group forums SQL, room polls SQL & locale & server setting SQL in there, oh and staff picks.
Gonna maybe work on some other bits.
Just another heads up for those dev'ing, I added two new configuration options, well one is on behalf of @Damiens, he added a nice little check for scripters who change the release build.
game.revision=PRODUCTION-201701242205-837386173
game.legacy.figure_mutant=1
Now live in the config.ini, the first one will need to be updating as the SWF version gets updated, the second one is for using the older figure checker (you guys with custom figuredata/dodgy data will not have the issue). Just posting this here in advanced!
Small updates:
- 'Improved' the football a little.
- it'll no longer randomly move when it shouldn't (walking by it)
- It'll now move 6 spaces on shoot, and 2 on dribble.
- If anyone can fix the animation, that'd be great. I believe it sends 11 as extradata and the ObjectUpdataComposer.
- 'Fixed' effects on purchase, the header was wrong and the type was set to 0 when it is now 1. These now work again on purchase.
Gonna work on HC now, I'll try and do it properly.
Thanks Craig!
Can you fix the wireds ?
You mean is_rare? Yeah, it can go away. Please check the help and support page, I've got a fatal crash when you buy room bundles (some values aren't filled in with a zero or something else)If you could provide me with a list I can give them ago, easier that way.
Question, get rid of the rare_id bullshit from `furniture` or not? (This is used to make rare items only go into the marketplace). Was a Habboon thing.
The blue ones aren't working properly (but they work). The ones who are not circled or crossed don't work / are not coded.If you could provide me with a list I can give them ago, easier that way.
Question, get rid of the rare_id bullshit from `furniture` or not? (This is used to make rare items only go into the marketplace). Was a Habboon thing.
I had users complain there was a few missing wired, so I coded them all including leaderboards and they never get used haha.Unfortunatly (imo) these days, wireds have become the most important element to attract people to his hotel. In mine, back in the past, they always asked everyday to add missing ones or to fix the broken ones :/
The developer for my hotel re-did the code for permissions last night he said it was legit "so cancer". I'll post for the code for them in a bit.A suggestion to something that was always a pain in my ass would have to be the way permission rights are sorted so if you have a right and a rank you have to add that right to each and every rank. I think it'd be cleaner and far easier to have it kind of like the command permissions where that rank or > can use that right so there isn't 230+ rows just for simple permissions (You must be registered for see links)
PermissionGroup PermissionGroup = null;
if (PlusEnvironment.GetGame().GetPermissionManager().TryGetGroup(_habbo.Rank, out PermissionGroup))
{
if (!String.IsNullOrEmpty(PermissionGroup.Badge))
if (!_habbo.GetBadgeComponent().HasBadge(PermissionGroup.Badge))
_habbo.GetBadgeComponent().GiveBadge(PermissionGroup.Badge, true, this);
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Plus.HabboHotel.Permissions
{
public class Permission
{
#region Variables
public string Right { get; set; }
public int GroupId { get; set; }
public int SubscriptionId { get; set; }
#endregion
#region Constructor
public Permission(string Right, int GroupId, int SubscriptionId)
{
this.Right = Right;
this.GroupId = GroupId;
this.SubscriptionId = SubscriptionId;
}
#endregion
}
}
using System;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
using log4net;
using Plus.Database.Interfaces;
using System.Data;
using Plus.HabboHotel.Users;
namespace Plus.HabboHotel.Permissions
{
public sealed class PermissionManager
{
#region Variables
private static readonly ILog log = LogManager.GetLogger("Plus.HabboHotel.Permissions.PermissionManager");
private readonly Dictionary<string, Permission> _commands;
private readonly Dictionary<string, Permission> _permissions;
#endregion
public PermissionManager()
{
this._commands = new Dictionary<string, Permission>();
this._permissions = new Dictionary<string, Permission>();
}
public void Init()
{
this._permissions.Clear();
this._commands.Clear();
using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
{
dbClient.SetQuery("SELECT * FROM `permissions_commands`");
DataTable GetCommands = dbClient.GetTable();
if (GetCommands != null)
{
foreach (DataRow Row in GetCommands.Rows)
{
this._commands.Add(Convert.ToString(Row["command"]), new Permission(Convert.ToString(Row["command"]), Convert.ToInt32(Row["group_id"]), Convert.ToInt32(Row["subscription_id"])));
}
}
dbClient.SetQuery("SELECT * FROM `permissions_rights`");
DataTable GetPermissions = dbClient.GetTable();
if (GetPermissions != null)
{
foreach (DataRow Row in GetPermissions.Rows)
{
this._permissions.Add(Convert.ToString(Row["right"]), new Permission(Convert.ToString(Row["right"]), Convert.ToInt32(Row["group_id"]), Convert.ToInt32(Row["subscription_id"])));
}
}
}
log.Info("Loaded " + this._permissions.Count + " permissions.");
log.Info("Loaded " + this._commands.Count + " permissions commands.");
}
public List<string> GetPermissionsForPlayer(Habbo Player)
{
return this._permissions.Where(x => Player.Rank >= x.Value.GroupId && Player.VIPRank >= x.Value.SubscriptionId).Select(x => x.Key).ToList();
}
public List<string> GetCommandsForPlayer(Habbo Player)
{
return this._commands.Where(x => Player.Rank >= x.Value.GroupId && Player.VIPRank >= x.Value.SubscriptionId).Select(x => x.Key).ToList();
}
}
}
/*
Navicat MySQL Data Transfer
Source Server : HoloRP
Source Server Version : 50505
Source Host : localhost:3306
Source Database : holo
Target Server Type : MYSQL
Target Server Version : 50505
File Encoding : 65001
Date: 2017-02-26 13:37:36
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for permissions_rights
-- ----------------------------
DROP TABLE IF EXISTS `permissions_rights`;
CREATE TABLE `permissions_rights` (
`right` varchar(45) NOT NULL DEFAULT '',
`group_id` int(11) NOT NULL DEFAULT '1',
`subscription_id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`right`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of permissions_rights
-- ----------------------------
INSERT INTO `permissions_rights` VALUES ('all_groups_admin', '8', '0');
INSERT INTO `permissions_rights` VALUES ('all_groups_member', '7', '0');
INSERT INTO `permissions_rights` VALUES ('all_groups_owner', '9', '0');
INSERT INTO `permissions_rights` VALUES ('ambassador', '2', '0');
INSERT INTO `permissions_rights` VALUES ('bot_edit_any_override', '7', '0');
INSERT INTO `permissions_rights` VALUES ('bot_place_any_override', '7', '0');
INSERT INTO `permissions_rights` VALUES ('can_create_room', '7', '0');
INSERT INTO `permissions_rights` VALUES ('change_motto', '8', '0');
INSERT INTO `permissions_rights` VALUES ('corporation_rights', '5', '0');
INSERT INTO `permissions_rights` VALUES ('mod_alert', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_ban_any', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_caution', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_disconnect_any', '7', '0');
INSERT INTO `permissions_rights` VALUES ('mod_kick', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_mute', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_mute_any', '6', '0');
INSERT INTO `permissions_rights` VALUES ('mod_soft_ban', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_tickets', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_tool', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_trade_lock', '4', '0');
INSERT INTO `permissions_rights` VALUES ('mod_trade_lock_any', '6', '0');
INSERT INTO `permissions_rights` VALUES ('roleplay_corp_manager', '9', '0');
INSERT INTO `permissions_rights` VALUES ('room_any_owner', '8', '0');
INSERT INTO `permissions_rights` VALUES ('room_any_rights', '6', '0');
INSERT INTO `permissions_rights` VALUES ('room_ban_override', '0', '0');
INSERT INTO `permissions_rights` VALUES ('room_delete_any', '8', '0');
INSERT INTO `permissions_rights` VALUES ('room_enter_full', '0', '0');
INSERT INTO `permissions_rights` VALUES ('room_enter_locked', '0', '0');
INSERT INTO `permissions_rights` VALUES ('room_ignore_mute', '4', '0');
INSERT INTO `permissions_rights` VALUES ('room_item_place_exchange_anywhere', '6', '0');
INSERT INTO `permissions_rights` VALUES ('room_item_save_branding_items', '6', '0');
INSERT INTO `permissions_rights` VALUES ('room_item_take', '6', '0');
INSERT INTO `permissions_rights` VALUES ('room_item_use_any_stack_tile', '6', '0');
INSERT INTO `permissions_rights` VALUES ('room_item_wired_rewards', '1', '0');
INSERT INTO `permissions_rights` VALUES ('room_override_custom_config', '4', '0');
INSERT INTO `permissions_rights` VALUES ('room_trade_override', '4', '0');
INSERT INTO `permissions_rights` VALUES ('room_whisper_override', '4', '0');
INSERT INTO `permissions_rights` VALUES ('staff_ignore_advertisement_reports', '7', '0');
INSERT INTO `permissions_rights` VALUES ('staff_ignore_mod_alert', '7', '0');
INSERT INTO `permissions_rights` VALUES ('use_any_bubble', '5', '0');
INSERT INTO `permissions_rights` VALUES ('vip', '0', '1');
INSERT INTO `permissions_rights` VALUES ('word_filter_override', '7', '0');
public string PermissionsRequired => "command_user";
INSERT INTO `permissions_commands` VALUES ('command_user', '1', '0');
Agreed, would hate to see permissions "dumbed down" because it takes more than 2 seconds to set them up.The permissions are far from "cancer". It allows you to allocate set functions for the various different ranks. Maybe you want to add a manager rank and don't want them to have all the moderation rights and vice versa.
If you're lazy you'd use them code above, but it's set up how it is for a reason.
Anyhow, there are areas for improvement and I'll take a look into it later tonight, without removing the functionality of what it's designed for.
Halting on this next release just for a couple more days, but have been working on a lot.
The current list, just strolling down the Git:
Just got a few little bits to finish, I have started on HC, just need to do gifts/badges etc. It is configurable, so you can turn it on/off.
- Added staff picks.
- Fixed an issue with removing favourite groups.
- Fixed a small exploit (changing revision) @Damiens
- Improved validation on room settings (and also fixed the issue that caused it in the first place).
- Added a configurable option for figuredata checking (you'll be able to use the old one which was issue free, just not as good).
- Started work on the recycler (maybe got further not sure how he went with it) @Bjork
- Major improvements to Item Interactions @Damiens
- Added an option to alternate between basic and advanced SSO @Damiens
- Group forums have been added, with the exception of unread messages. Will do this hopefully before release.
- Fixed an issue where your picked up pet wouldn't go into your inventory until reload.
- Added room polls (although I have no validation, any insights?)
- Slight improvements to the football. It now shoots! (6 spaces), doesn't moving willy-nilly.
- Updated AvatarEffectAddedComposer, you can now purchase effects from the catalog.
- Marketplace packets were.. all wrong, my fault (this is from having no hotel for xx months).
- Gamemap & room model loading improvements.
As time goes on, I'm going to try and make most of the texts go from the server_locale table, and make the emulator more configurable for you guys, so it's easier to just get going without having to change too much.
Maybe give this till Wednesday for the release? Really suck at deadlines.
Why have the boon.pw Habbo Club ?
This is your hotel and your emulator right ?
I left Boon maybe 10 month ago now. However, I did their Habbo Club. Rather than copy & paste code, I can just start over and find a better approach.