1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Последнее сообщение от Mr. Smith's

  1. Mr. Smith's
  2. Mr. Smith's
  3. Mr. Smith's
    Сообщение

    Чат сервера v0.2

    Покапав классы айвеба, я нашел функцию бана чата персонажа и бана самого персонажа. Так что вполне можно сделать кнопочку "Бан чата" напротив ника персонажа) Мм.. Так я к тому и веду) Вообще в айвебе столько шикарных функций, которые многоуважаемый BlackPoint забыл или не захотел локализовать. Начиная от бана игрока, заканчивая отправкой вещей на почту. :D А так это всё можно перенести и в привычный нам айвеб. Делов, наверно, минут на 20. Это вместе с перерывом на покушать и туалет. Вот и сама функция(правда кусками): // forbidrole.jsp // Всё-таки громоздко для чата. Вот бан всего аккаунта без суда и следствия // нам подойдет ЛУЧШЕ! (: String fbdtype = request.getParameter("fbdtype"); String forbidtime = request.getParameter("forbidtime"); String roleid = request.getParameter("roleid"); String reason = reason = request.getParameter("reason"); if (fbdtype == null) fbdtype = ""; if (forbidtime == null) forbidtime = ""; if (roleid == null) roleid = ""; if (reason == null) reason = ""; if (userid == null) userid = ""; LogFactory.getLog("forbidrole.jsp").info( "operator=" + AuthFilter.getRemoteUser(session)); LogInfo info = null; int uid = -1; int rid = -1; GMService gs = new GMServiceImpl(); ............ int gmroleid = -1; int localsid = -1; int forbid_time = -1; byte fbd_type = -1; if (roleid != null && roleid.trim().length() > 0) { try { rid = Integer.parseInt(roleid); } catch (Exception e) { out.println("ID персонажа, Пожалуйста, введите номер!&nbsp;<font color=red size=2>" + e.getMessage() + "</font><br>"); } try { fbd_type = Byte.parseByte(fbdtype); } catch (Exception ex) { out.println("Тип бана, Пожалуйста, введите номер!&nbsp;<font color=red size=2>" + ex.getMessage() + "</font><br>"); } try { forbid_time = Integer.parseInt(forbidtime); forbid_time = forbid_time * 60; } catch (Exception exp) { out.println("Продолжительность бана, Пожалуйста, введите целое число!&nbsp;<font color=red size=2>" + exp.getMessage() + "</font><br>"); } info = new LogInfo(rid, "", "Персонаж забанен"); int flag = gs.forbidRole(fbd_type, gmroleid, localsid, rid, forbid_time, reason, info); String result = null; switch (flag) { case -1: result = "Ошибка"; break; default: result = flag + ""; } String fbdType = ""; switch (fbd_type) { case 100: fbdType = "Запрет на вход"; break; case 101: fbdType = "Бан чата"; break; case 102: fbdType = "Запрет на обмен"; break; case 103: fbdType = "Запрет на торговлю"; } Всё просто до безобразия)) Сам с удовольствием пользуюсь, в определенных случаях, конечно же!
    Сообщение от: Mr. Smith's, 28 окт 2010 в разделе: Архив
  4. Mr. Smith's
  5. Mr. Smith's
    Сообщение

    Чат сервера v0.2

    Омг....читать логи чата-верх дибилизма и тупизма ага да... сделать может любой знающий пхп на уровне чтоб открыть файл и заюзать теги *_* Дайож конект к серверу и чтение чата в реальном времени >.> Вообще-то pwAdmin устроен точно таким же образом. Вот тебе даже кусочек кода: BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(pw_server_path + "/logservice/logs/world2.chat"))); while(i>lines.size()-show_lines && i>=0) { line = lines.get(i); color = "<font color=\"#aaaaaa\">"; time = line.substring(0, 19); line = line.substring(line.indexOf(": chat :")+9); sender = "*****"; recipient = "*****"; message = new String("*****"); byte[] temp = Base64.decode(line.substring(line.indexOf("msg=")+4)); // Whisper if(show_whisper && line.startsWith("Whisper")) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = line.substring(line.indexOf("dst=")+4); recipient = "Player(" + recipient.substring(0, recipient.indexOf(" ")) + ")"; color = "<font color=\"#ff00dd\">"; } // Faction if(show_faction && line.startsWith("Guild")) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = line.substring(line.indexOf("fid=")+4); recipient = "Faction(" + recipient.substring(0, recipient.indexOf(" ")) + ")"; color = "<font color=\"#00fffc\">"; } // Chatroom if(show_rooms && line.startsWith("Group")) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = line.substring(line.indexOf("room=")+5); recipient = "Room(" + recipient.substring(0, recipient.indexOf(" ")) + ")"; color = "<font color=\"#000000\">"; } if(line.startsWith("Chat")) { // Common if(show_common && line.indexOf("chl=0") != -1) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = "Common"; color = "<font color=\"#000000\">"; } // World if(show_world && line.indexOf("chl=1") != -1) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = "World"; color = "<font color=\"#ffee00\">"; } // Squad if(show_squad && line.indexOf("chl=2") != -1) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = "Squad"; color = "<font color=\"#00ff00\">"; } // Trade if(show_trade && line.indexOf("chl=7") != -1) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = "Trade"; color = "<font color=\"#ff8800\">"; } // Broadcast if(line.indexOf("chl=9") != -1) { message = new String(temp, "UTF-16LE"); sender = line.substring(line.indexOf("src=")+4); sender = "Player(" + sender.substring(0, sender.indexOf(" ")) + ")"; recipient = "System"; color = "<font color=\"#ff2200\">"; } } /* // Smileys causing errors... removing entries == 0 from byte array for(int n=0; n<temp.length; n++) { if(temp[n] != 0) { message += (char)(temp[n]); } } */ if(show_smiley_picture) { message = message.replaceAll(".<\\d+>...<\\d+.\\d+>", "<img src=\"smiley.gif\" align=\"absmiddle\"></img>"); } if(!show_colors) { color = "<font color=\"#000000\">"; } out.print("<tr>"); out.print("<td align=\"center\" style=\"border-bottom: 1px solid #cccccc;\"> time: </td>"); out.print("<td style=\"border-bottom: 1px solid #cccccc;\"><b>" + time + "</b></td>"); out.print("<td align=\"center\" style=\"border-bottom: 1px solid #cccccc;\"> from: </td>"); out.print("<td style=\"border-bottom: 1px solid #cccccc;\"><b>" + color + sender + "</font></b></td>"); out.print("<td align=\"center\" style=\"border-bottom: 1px solid #cccccc;\"> to: </td>"); out.print("<td style=\"border-bottom: 1px solid #cccccc;\"><b>" + color + recipient + "</font></b></td>"); out.print("<td align=\"center\" style=\"border-bottom: 1px solid #cccccc;\"> msg: </td>"); out.print("<td style=\"border-bottom: 1px solid #cccccc;\"><b>" + color + message + "</font></b></td>"); out.println("</tr>"); i--; } Kenpachi, можешь для своей 3ей версии скопировать сам алгоритм. Пробежался глазами, вроде довольно грамотно все раскидано. Я думаю, лучше великого ronny только Билл Гейтс. И то ему не до ПВ сейчас... Дайож чат на jsp Что же ты заладил со своей джавой... :D Включать, аж целый айвеб для того, чтобы почитать чат ИМХО глупо.
    Сообщение от: Mr. Smith's, 27 окт 2010 в разделе: Архив
  6. Mr. Smith's
  7. Mr. Smith's
  8. Mr. Smith's