thepsolartek Posted December 30, 2015 Posted December 30, 2015 (edited) Hello guys i want to share with you the BugReportNpc Code for L2Jfrozen!!! Cause some people are looking for this Npc (I do not create the code as you can see it on the credits too) Create a class in com.l2jfrozen.gameserver.model.actor.instance with the name L2BugReportInstance and paste the following code. /* * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jfrozen.gameserver.model.actor.instance; import java.io.*; import java.util.StringTokenizer; import javolution.text.TextBuilder; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.L2GameClient; import com.l2jfrozen.gameserver.network.clientpackets.Say2; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay; import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected; import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; /** * @author squallcs * */ public class L2BugReportInstance extends L2FolkInstance { private static String _type; public L2BugReportInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("send_report")) { StringTokenizer st = new StringTokenizer(command); st.nextToken(); String msg = null; String type = null; type = st.nextToken(); msg = st.nextToken(); try { while (st.hasMoreTokens()) { msg = msg + " " + st.nextToken(); } sendReport(player, type, msg); } catch (StringIndexOutOfBoundsException e) { } } } static { new File("log/BugReports/").mkdirs(); } private void sendReport(L2PcInstance player, String command, String msg) { String type = command; L2GameClient info = player.getClient().getConnection().getClient(); if (type.equals("General")) _type = "General"; if (type.equals("Fatal")) _type = "Fatal"; if (type.equals("Misuse")) _type = "Misuse"; if (type.equals("Balance")) _type = "Balance"; if (type.equals("Other")) _type = "Other"; try { String fname = "log/BugReports/" + player.getName() + ".txt"; File file = new File(fname); boolean exist = file.createNewFile(); if (!exist) { player.sendMessage("You have already sent a bug report, GMs must check it first."); return; } FileWriter fstream = new FileWriter(fname); BufferedWriter out = new BufferedWriter(fstream); out.write("Character Info: " + info + "\r\nBug Type: " + _type + "\r\nMessage: " + msg); player.sendMessage("Report sent. GMs will check it soon. Thanks..."); for (L2PcInstance allgms : L2World.getInstance().getAllGMs()) allgms.sendPacket(new CreatureSay(0, Say2.SHOUT, "Bug Report Manager", player.getName() + " sent a bug report.")); System.out.println("Character: " + player.getName() + " sent a bug report."); out.close(); } catch (Exception e) { player.sendMessage("Something went wrong try again."); } } @Override public void onAction(L2PcInstance player) { if (!canTarget(player)) { return; } if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), 0)); player.sendPacket(new ValidateLocation(this)); } else if (!canInteract(player)) { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); } else { showHtmlWindow(player); } player.sendPacket(new ActionFailed()); } private void showHtmlWindow(L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><title>Bug Report Manager</title>"); replyMSG.append("<body><br><br><center>"); replyMSG.append("<table border=0 height=10 bgcolor=\"444444\" width=240>"); replyMSG.append("<tr><td align=center><font color=\"00FFFF\">Hello " + activeChar.getName() + ".</font></td></tr>"); replyMSG.append("<tr><td align=center><font color=\"00FFFF\">There are no Gms online</font></td></tr>"); replyMSG.append("<tr><td align=center><font color=\"00FFFF\">and you want to report something?</font></td></tr>"); replyMSG.append("</table><br>"); replyMSG.append("<img src=\"L2UI.SquareWhite\" width=280 height=1><br><br>"); replyMSG.append("<table width=250><tr>"); replyMSG.append("<td><font color=\"LEVEL\">Select Report Type:</font></td>"); replyMSG.append("<td><combobox width=105 var=type list=General;Fatal;Misuse;Balance;Other></td>"); replyMSG.append("</tr></table><br><br>"); replyMSG.append("<multiedit var=\"msg\" width=250 height=50><br>"); replyMSG.append("<br><img src=\"L2UI.SquareWhite\" width=280 height=1><br><br><br><br><br><br><br>"); replyMSG.append("<button value=\"Send Report\" action=\"bypass -h npc_" + getObjectId() + "_send_report $type $msg\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">"); replyMSG.append("</center></body></html>"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); activeChar.sendPacket(new ActionFailed()); } } And the last thing you have to do it's to create a NPC in the database, and as type set L2BugReport Important: a player can submit one report at the time. Until the admin delete it from the folder BugReport /gameserver/logs/BugReport the player wont be able to make another report. I did this to keep spammers out who whine all the time and think that fixing something it's solved by using //fix_server. But if you want to, you could remove the if(!exist) clause and the file will continue filling. Credits:JisusKraist Edited December 30, 2015 by thepsolartek
AccessDenied Posted December 30, 2015 Posted December 30, 2015 (edited) ... i think i want cry really... why you people copy paste old topics especially when those topics are about 2.500 - 3.200 and report? whats the point.. http://bfy.tw/3VpL FULL OF bug report NPC's EVERYWHERE even xdem cant code better than this :"( stop IT please! Ps. nobody is looking for this npc.. if someone see a server with this npc be sure that he will log out and delete his acc Edited December 30, 2015 by AccessDenied
thepsolartek Posted December 30, 2015 Author Posted December 30, 2015 mate some new people are looking for this code. as i say this code is not mine. it belongs to jisuskraist from l2jfrozen forum and the guy that posted it told that this code belong to him. Anyway if you dont want to add this code just dont add it
SweeTs Posted December 30, 2015 Posted December 30, 2015 (edited) Forum exist for such things. Wannabe admins want it, more npcs, more professional the server is. Wohoho. Edited December 30, 2015 by SweeTs
AccessDenied Posted December 31, 2015 Posted December 31, 2015 Nevermind you both missed the point i go suicide..
Rootware Posted December 31, 2015 Posted December 31, 2015 Petition system bad choice. :troll: Give me more shitcodes.
AccessDenied Posted December 31, 2015 Posted December 31, 2015 No, you didn't get my point. :troll: *This is my auto bot coded by xdem* (ax0xa0 xdem now u cant say SHITTY bot cause is made by you) Hello dear sweetS im dead. bye
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now