מערכת Reports
מצרכים
מחשב
סבלנות
קצת ידע בהוספת דברים לסורס ,למסד הנתונים,עריכת NPC
תאימות המערכת
המערכת נבנתה ונבדקה בגרסא ה62GMS אך מתאימה גם לשלל גרסאות המאוחרות של GMS )75,83)
מבוא
מערכת Reports כשמה היא מערכת דיווחים.
מערכת זאת נותנת אפשרות לשחקן לדווח דברים בקשר לחוויות המשחק שלו,משהוא מפריע לו בניהול של המשחק,באג,אקרים,חוות דעות,וכן גם רעיונות והמלצות.
המערכת מאוד פשוטה לתפעול לשחקן ולמנהלי משחק,
על השחקן יש להקיש פקודה רגילה
ועל מנהלי המשחק יש לפתוח NPC (אני יפרט על כך בהמשך)
בנוסף למען הנוחות יש לבעל השרת בחירה אם לפתוח את המערכת או לסגור
ולמניעת הצפות למשתמש יש אפשרות לשלוח הודעה פעם אחת בחמש דקות
תוכן עניינים
הוספת המערכת לסורס
הוספת המערכת למסד הנתונים
הוספת הNPC
תפעול המערכת
הוספת המערכת לסורס
בקובץ MapleCharacter.java הוסיפו את ההמשתנה :
קוד:
public int rlastUse=0;
והוסיפו את שני הפונקציות הבאות:
קוד:
public void addReport(String msg){ Connection con = DatabaseConnection.getConnection(); try { PreparedStatement ps = con.prepareStatement("insert into report (messege,player) Values (?,?);"); ps.setString(1, msg); ps.setString(2, getName()); ps.executeUpdate(); ps.close(); this.name = name; } catch (SQLException e) { sqlException(e); }}
קוד:
public String getReport(){ String text = ""; Connection con = DatabaseConnection.getConnection(); try { PreparedStatement ps = con.prepareStatement("select * from report"); ResultSet rs = ps.executeQuery(); int i =1; if(!rs.next()) text = "you dont have any reports now"; rs.previous(); while(rs.next()){ text +="Hello I am the rose reports\r\nHere your player's reports:\r\n"+ i+". "+rs.getString("Player")+" : "+rs.getString("messege")+"\r\n" ; i++; } ps.close(); } catch (SQLException e) { sqlException(e); } return text; }
עד לפה סימנו עם הקובץ MapleCharacter.java .
עכשיו נוסיף את הפקודה REPORT בקובץ PlayerCommands.java
בפונקציה execute נוסיף את השאילתה הזאת:
קוד:
} else if (splitted[0].equals("@report")) { if(splitted.length < 2){ player.dropMessage("you have Error in youre Syntax :@report (your massege) "); return; }else{ if(player.isGM()) player.rlastUse =0; if((int)System.currentTimeMillis() - player.rlastUse > 300000){ String text=""; for(int i = 1;i <splitted.length;i++) text += splitted[i]+" "; player.addReport(text); player.rlastUse = (int) System.currentTimeMillis(); }else player.dropMessage("You can use this function only in five minuts"); }
ולהוסיף את הבנאי הזה בפונקצייה getDefinition:
קוד:
new CommandDefinition("report", 0),
בקטע זה סימנו את העריכות בסורס
הוספת המערכת למסד הנתונים
הריצו את זה בMYSQL
קוד:
CREATE TABLE `Report` ( `ID` INTEGER UNSIGNED NOT NULL, `Player` VARCHAR(45), `messege` VARCHAR(300), PRIMARY KEY (`ID`))ENGINE = InnoDB;
הוספת הNPC
בחרו את הNPC שלכם וערכו את הקובץ שלו ב תיקייה scripts/npc
והוסיפו את התוכן לתוך הקובץ:
קוד:
function start() { cm.sendSimple(cm.getPlayer().getReport()); cm.dispose();}
שמרו וסגרו.
תפעול המערכת
פסקה זאת מתחלקת לשני חלקים: למנהלי המשחק,לשחקנים.
למנהלי המשחק: על מנת לראות את הדיווחים יש לפתוח את הNPC שנדרשו לבחור במהלך "הוספת הNPC" .
לשחקן: על מנת לשלוח את הדיווח הוא נדרש להקיש בתחילת ההודעה "@report" ולאחר מכן רווח ואז הדיווח אשר הוא רוצה.
תוספת(לא חובה)
על מנת לשמור על פרטיות השחקן אני מציע להוסיף בדיקה לNPC שרק מנהלי המשחק ומורשים לכך יוכלו לראות את הפרטים אם אתם מעונינים אז פתחו שוב את הNPC שלכם שנמצא בתיקייה scripts/npc ושנו לזה :
קוד:
function start() {if(cm.getPlayer().isGM()){ cm.sendSimple(cm.getPlayer().getReport()); cm.dispose();}else{cm.sendOk("You dont have premission to see the reports!"); cm.dispose();}}קרדיט לאתר אחר.








ציטוט ההודעה


.
