מערכת זו תעזור לכם לתקן באגים. השחקן מדווח, וה GM קורא את הדוח.
קודם כל בקובץ NPCConversationManager.java שנמצא בתיקייה scripting.npc
מתחת לזה:
קוד PHP:
public int getLevel() {
return getPlayer().getLevel();
}
תוסיפו את זה:
קוד PHP:
public void addBugReport(String reporter, String type, String descr) {
PreparedStatement ps = null;
try {
ps = DatabaseConnection.getConnection().prepareStatement("INSERT INTO `bugreports` VALUES (DEFAULT, ?, ?, ?)");
ps.setString(1, reporter);
ps.setString(2, type);
ps.setString(3, descr);
ps.executeUpdate();
ps.close();
} catch (SQLException ex) {
} finally {
try {
if (ps != null) {
ps.close();
}
} catch (SQLException ex) {
}
}
}
public String getBugReports() {
StringBuilder builder = new StringBuilder();
try {
PreparedStatement ps = DatabaseConnection.getConnection().prepareStatement("SELECT reporter, type, descr FROM bugreports ORDER BY id DESC LIMIT 5");
ResultSet rs = ps.executeQuery();
try {
while (rs.next()) {
builder.append("\r\n#e").append(rs.getString("type")).append(" - (").append(rs.getString("reporter")).append(")#n\r\n").append(rs.getString("descr")).append("\r\n");
}
} catch (SQLException ex) {
}
ps.close();
rs.close();
} catch (SQLException ex) {
}
return builder.toString();
}
אחר כך, תריצו את זה ב SQL
קוד PHP:
DROP TABLE IF EXISTS `bugreports`;
CREATE TABLE `bugreports` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`reporter` varchar(13) NOT NULL,
`type` tinytext NOT NULL,
`descr` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
עכשיו ה NPC:
ה NPC לדיווח על באגים:
קוד PHP:
var status = -1;
var report;
var reporttypes = ["NPCs", "Commands", "Items and Shops", "Skills", "Monsters", "Maps", "Other"];
function start() {
cm.sendNext("Hello #h #! If you have found a bug you can report it through me.");
}
function action(mode, type, selection) {
if (mode == -1 || mode == 0)
cm.dispose();
else {
if (mode == 1)
status++;
else
status--;
if (status == 0) {
var reporttext = "Please choose what is this report about:\r\n"
for (i = 0; i < reporttypes.length; i++)
reporttext += "\r\n#L" + i + "# " + reporttypes[i] + "."
cm.sendSimple(reporttext);
} else if (status == 1) {
report = reporttypes[selection];
cm.sendGetText("Please provide a description of this bug:");
} else if (status == 2) {
var desc = cm.getText();
cm.addBugReport(cm.getPlayer().getName(), report, desc);
cm.dispose();
}
}
}
והNPC בשביל לראות מה דיווחו:
קוד PHP:
function start() {
cm.sendOk("#e#dBug Reports#n#k\r\n" + cm.getBugReports());
cm.dispose();
}
אל תשכחו לקמפל.
קרדיט לי