I've coded infobus questions for uberemu today.
Add to Chatcommandhandlers.cs:
Add to Rooms.cs:Code:case "startquestion": if (Session.GetHabbo().HasFuse("fuse_sysadmin")) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); DataTable Data = null; int QuestionId = int.Parse(Params[1]); Room.CurrentPollId = QuestionId; string Question; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Question = dbClient.ReadString("SELECT question FROM infobus_questions WHERE id = '" + QuestionId + "' LIMIT 1"); } using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Data = dbClient.ReadDataTable("SELECT * FROM infobus_answers WHERE question_id = '" + QuestionId + "'"); } ServerMessage InfobusQuestion = new ServerMessage(79); InfobusQuestion.AppendStringWithBreak(Question); InfobusQuestion.AppendInt32(Data.Rows.Count); if (Data != null) { foreach (DataRow Row in Data.Rows) { InfobusQuestion.AppendInt32((int)Row["id"]); InfobusQuestion.AppendStringWithBreak((string)Row["answer_text"]); } } Room.SendMessage(InfobusQuestion); Thread Infobus = new Thread(delegate() { Room.ShowResults(Room, QuestionId, Session); }); Infobus.Start(); Room.HasThread.Add((uint)QuestionId, Infobus); return true; } return false;
Find:Code:private void AnswerInfobusPoll() { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); int AnswerId = Request.PopWiredInt32(); int QuestionId = Room.CurrentPollId; DataTable Data = null; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("INSERT INTO `infobus_results` (`question_id`, `answer_id`) VALUES ('" + QuestionId + "', '" + AnswerId + "')"); } }
Add after:Code:RequestHandlers[3004] = new RequestHandler(GetTrainerPanel);
Add to Room.cs:Code:RequestHandlers[112] = new RequestHandler(AnswerInfobusPoll);
SQL:Code:public static void ShowResults(Room Room, int QuestionId, GameClient Session) { Thread.Sleep(30000); string Question; DataTable Data = null; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Question = dbClient.ReadString("SELECT question FROM infobus_questions WHERE id = '" + QuestionId + "' LIMIT 1"); } using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Data = dbClient.ReadDataTable("SELECT * FROM infobus_answers WHERE question_id = '" + QuestionId + "'"); } ServerMessage InfobusQuestion = new ServerMessage(80); InfobusQuestion.AppendStringWithBreak(Question); InfobusQuestion.AppendInt32(Data.Rows.Count); if (Data != null) { foreach (DataRow Row in Data.Rows) { int ResultCount; InfobusQuestion.AppendInt32((int)Row["id"]); InfobusQuestion.AppendStringWithBreak((string)Row["answer_text"]); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { ResultCount = dbClient.ReadInt32("SELECT COUNT(*) FROM infobus_results WHERE answer_id = '" + (int)Row["id"] + "' AND question_id = '" + QuestionId + "'"); } InfobusQuestion.AppendInt32(ResultCount); } } int AnswerUserCount; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { AnswerUserCount = dbClient.ReadInt32("SELECT COUNT(*) FROM infobus_results WHERE question_id = '" + QuestionId + "'"); } InfobusQuestion.AppendInt32(AnswerUserCount); Room.SendMessage(InfobusQuestion); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("DELETE FROM infobus_results WHERE question_id = '" + QuestionId + "'"); } }
Code:/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50516 Source Host : localhost:3306 Source Database : uberdb2 Target Server Type : MYSQL Target Server Version : 50516 File Encoding : 65001 Date: 2012-03-11 10:15:35 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `infobus_answers` -- ---------------------------- DROP TABLE IF EXISTS `infobus_answers`; CREATE TABLE `infobus_answers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `question_id` int(11) NOT NULL DEFAULT '0', `answer_text` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of infobus_answers -- ---------------------------- INSERT INTO `infobus_answers` VALUES ('1', '1', 'Awesome'); INSERT INTO `infobus_answers` VALUES ('2', '1', 'Nice'); INSERT INTO `infobus_answers` VALUES ('3', '1', 'Poor'); -- ---------------------------- -- Table structure for `infobus_questions` -- ---------------------------- DROP TABLE IF EXISTS `infobus_questions`; CREATE TABLE `infobus_questions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `question` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of infobus_questions -- ---------------------------- INSERT INTO `infobus_questions` VALUES ('1', 'What do you think about this?');Find public List<Trade> ActiveTrades;Code:/* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 50516 Source Host : localhost:3306 Source Database : uberdb2 Target Server Type : MYSQL Target Server Version : 50516 File Encoding : 65001 Date: 2012-03-11 10:16:23 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `infobus_results` -- ---------------------------- DROP TABLE IF EXISTS `infobus_results`; CREATE TABLE `infobus_results` ( `id` int(11) NOT NULL AUTO_INCREMENT, `question_id` int(11) NOT NULL, `answer_id` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of infobus_results -- ----------------------------
Add after:You can start infobus question command :startquestion [question id]Code:public int CurrentPollId;
![]()


![[Uber] Infobus questions 100%](http://ragezone.com/hyper728.png)


