מערכת Reports
מצרכים
מחשב
סבלנות
קצת ידע בהוספת דברים לסורס ,למסד הנתונים,עריכת NPC
תאימות המערכת
המערכת נבנתה ונבדקה בגרסא ה62GMS אך מתאימה גם לשלל גרסאות המאוחרות של GMS )75,83)
מבוא
מערכת Reports כשמה היא מערכת דיווחים.
מערכת זאת נותנת אפשרות לשחקן לדווח דברים בקשר לחוויות המשחק שלו,משהוא מפריע לו בניהול של המשחק,באג,אקרים,חוות דעות,וכן גם רעיונות והמלצות.
המערכת מאוד פשוטה לתפעול לשחקן ולמנהלי משחק,
על השחקן יש להקיש פקודה רגילה
ועל מנהלי המשחק יש לפתוח NPC (אני יפרט על כך בהמשך)
בנוסף למען הנוחות יש לבעל השרת בחירה אם לפתוח את המערכת או לסגור
ולמניעת הצפות למשתמש יש אפשרות לשלוח הודעה פעם אחת בחמש דקות
תוכן עניינים
הוספת המערכת לסורס
הוספת המערכת למסד הנתונים
הוספת הNPC
תפעול המערכת
הוספת המערכת לסורס
בקובץ MapleCharacter.java הוסיפו את ההמשתנה :
והוסיפו את שני הפונקציות הבאות:קוד PHP:public int rlastUse=0;
קוד PHP: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);
}
}
עד לפה סימנו עם הקובץ MapleCharacter.java .קוד PHP: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;
}
עכשיו נוסיף את הפקודה REPORT בקובץ PlayerCommands.java
בפונקציה execute נוסיף את השאילתה הזאת:
ולהוסיף את הבנאי הזה בפונקצייה getDefinition:קוד PHP:} 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");
}
בקטע זה סימנו את העריכות בסורסקוד PHP:new CommandDefinition("report", 0),
הוספת המערכת למסד הנתונים
הריצו את זה בMYSQL
הוספת הNPCקוד PHP:CREATE TABLE `Report` (
`ID` INTEGER UNSIGNED NOT NULL,
`Player` VARCHAR(45),
`messege` VARCHAR(300),
PRIMARY KEY (`ID`)
)
ENGINE = InnoDB;
בחרו את הNPC שלכם וערכו את הקובץ שלו ב תיקייה scripts/npc
והוסיפו את התוכן לתוך הקובץ:
שמרו וסגרו.קוד PHP:function start() {
cm.sendSimple(cm.getPlayer().getReport());
cm.dispose();
}
תפעול המערכת
פסקה זאת מתחלקת לשני חלקים: למנהלי המשחק,לשחקנים.
למנהלי המשחק: על מנת לראות את הדיווחים יש לפתוח את הNPC שנדרשו לבחור במהלך "הוספת הNPC" .
לשחקן: על מנת לשלוח את הדיווח הוא נדרש להקיש בתחילת ההודעה "@report" ולאחר מכן רווח ואז הדיווח אשר הוא רוצה.
תוספת(לא חובה)
על מנת לשמור על פרטיות השחקן אני מציע להוסיף בדיקה לNPC שרק מנהלי המשחק ומורשים לכך יוכלו לראות את הפרטים אם אתם מעונינים אז פתחו שוב את הNPC שלכם שנמצא בתיקייה scripts/npc ושנו לזה :
קרדיטקוד PHP:
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();
}
}
קרדיט למי שהמציא את הרעיון אני ראיתי את זה בכמה מקומות לא אני הבאתי את הרעיון של זה
קרדיט לי על כתיבת המדריך
קרדיט לי על כתיבת המערכת
מקווה שיעזור לכם אנשים תודה והמשך יום טוב



ציטוט ההודעה
ספוילר: 
