מערכת חדשות
מצרכים
מחשב
סבלנות
קצת ידע בהוספת דברים לסורס ,למסד הנתונים,עריכת NPC
תאימות המערכת
המערכת נבנתה ונבדקה בגרסא ה62GMS אך מתאימה גם לשלל גרסאות המאוחרות של GMS )75,83)
מבוא
מערכת חדשות היא מערכת של עדכונים וחדשות.
מערכת זאת נותנת אפשרות למנהלים לשתף את השחקנים בכל העדכונים של המשחק,חדשות,עדכונים,פרטים על המשחק דברים שנוספו דברים העתידיים לבוא,דברים שירדו,דברים שיתוקנו,פרטים על הצוות,ועוד...
המערכת מאוד פשוטה לתפעול לשחקן ולמנהלי משחק,
הכול נעשה דרך NPC אחד מרכז המאוד נוח וברור לתפעול
תוכן עניינים
הוספת המערכת לסורס
הוספת המערכת למסד הנתונים
הוספת הNPC
תפעול המערכת
הוספת המערכת לסורס
בקובץ MapleCharacter.java להוסיף את הIMPORTS הבאים :
ולהוסיף את הארבע פונקציות אלה:קוד PHP:import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
קוד PHP:public String getTitles(){
String text ="";
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("select * from news");
ResultSet rs = ps.executeQuery();
if(!rs.next()){
text ="There are no news ";
return text;
}
rs.previous();
int i = 1;
text ="Here are youre news:\r\n";
while(rs.next()){
text +="#L"+rs.getInt("ID")+"#"+i+". "+rs.getString("Title")+" Create by: "+rs.getString("By")+"#l\r\n";
i++;
}
ps.close();
} catch (SQLException e) {
sqlException(e);
}
return text;
}
קוד PHP:public String getNews(int selection){
String text ="";
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("select * from news where ID =?");
ps.setInt(1,selection);
ResultSet rs = ps.executeQuery();
if(rs.next())
text ="The new that you want to read("+rs.getString("Title") +")\r\n Wrote by "+rs.getString("By")+" \r\nAt the date "+rs.getString("Date")+"\r\n\r\n\r\n"+rs.getString("Text");
ps.close();
} catch (SQLException e) {
sqlException(e);
}
return text;
}
קוד PHP:public void addNew(String Title,String text){
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("insert into news (`Title`,`Date`,`By`,`Text`) VALUES (?,?,?,?);");
ps.setString(1,Title);
ps.setString(2,dateFormat.format(cal.getTime()));
ps.setString(3, getName());
ps.setString(4, text);
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
sqlException(e);
}
}
עד פה סימנו את העריכה בקובץ זהקוד PHP:public void removeNew(int selection){
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("delete from news where `ID`=?;");
ps.setInt(1,selection);
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
sqlException(e);
}
}
הוספת המערכת למסד הנתונים
להריץ את הקוד הבא בSQL:
ENGINE = InnoDB;קוד PHP:CREATE TABLE `News` (
`ID` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`Title` VARCHAR(45),
`Date` VARCHAR(45),
`By` VARCHAR(45),
`Text` VARCHAR(300),
PRIMARY KEY (`ID`)
)
הוספת הNPC
בחרו את הNPC שאתם מעוניינים בוא כחדשות.
פתחו אותו והדביקו:
תפעול המערכתקוד PHP:var status = 0;
var s1;
var title;
var text;
var remove;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (status == 1 && mode == 0 ) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
if(!cm.getPlayer().isGM())
cm.sendNext("Hello i am the News divisive");
else
cm.sendSimple("what do you want to do:\r\n#L0#View the news#l\r\n#L1#Add news#l\r\n#L2#Remove News#l");
}else if (status == 1){
s1=selection;
if(s1 != 1)
cm.sendSimple(cm.getPlayer().getTitles());
else
cm.sendGetText("Here put youre new new's title");
}else if(status == 2){
remove =selection;
if(s1 == 0 || s1 == -1){
cm.sendOk(cm.getPlayer().getNews(selection));
cm.dispose();
}
if(s1 == 2)
cm.sendYesNo("Are you sure you want to delete this new?");
if(s1 ==1){
title = cm.getText();
cm.sendGetText("Here put youre new");
}
}else if(status == 3){
if(s1 == 1){
text =cm.getText();
cm.getPlayer().addNew(title,text);
cm.sendOk("Youre new have added");
cm.dispose();
}
if(s1 == 2){
cm.getPlayer().removeNew(remove);
cm.sendOk("The new have removed");
cm.dispose();
}
}
}
}
פסקה זאת מתחלקת לשני חלקים: למנהלי המשחק,לשחקנים.
למנהלי המשחק: על מנת לראות את הדיווחים להוסיף ולמחוק יש לפתוח את הNPC שבחרתם ב פסקה "הוספת הNPC" .
לשחקן: על השחקן יש לפתוח את הNPC שבחרתם בפסקה "הוספת הNPC" .
תוספת(לא חובה)
תוספת חמודה שחשבתי עליה היא עריכה של הודעות
הוסיפו בקובץ MapleCharacter.java את הפונקצייה הזאת:
קוד PHP:
וערכו את הNPC לזה :קוד PHP:public void updateNew(int selection,String Title,String messege){
Connection con = DatabaseConnection.getConnection();
try {
PreparedStatement ps = con.prepareStatement("update news set `Title`=?,`By`=?,`text`=? where `ID`=?;");
ps.setString(1,Title);
ps.setString(2,getName());
ps.setString(3,messege);
ps.setInt(4,selection);
ps.executeUpdate();
ps.close();
} catch (SQLException e) {
sqlException(e);
}
}
קרדיטקוד PHP:var status = 0;
var s1;
var title;
var text;
var remove;
var t;
var m;
function start() {
status = -1;
action(1, 0, 0);
}
function action(mode, type, selection) {
if (mode == -1) {
cm.dispose();
} else {
if (status == 1 && mode == 0 ) {
cm.dispose();
return;
}
if (mode == 1)
status++;
else
status--;
if (status == 0) {
if(!cm.getPlayer().isGM())
cm.sendNext("Hello i am the News divisive");
else
cm.sendSimple("what do you want to do:\r\n#L0#View the news#l\r\n#L1#Add news#l\r\n#L2#Remove News#l\r\n#L3#Edit News#l");
}else if (status == 1){
s1=selection;
if(s1 != 1)
cm.sendSimple(cm.getPlayer().getTitles());
else
cm.sendGetText("Here put youre new new's title");
}else if(status == 2){
remove =selection;
if(s1 == 0 || s1 == -1){
cm.sendOk(cm.getPlayer().getNews(selection));
cm.dispose();
}
if(s1 == 2)
cm.sendYesNo("Are you sure you want to delete this new?");
if(s1 ==1){
title = cm.getText();
cm.sendGetText("Here put youre new");
}
if(s1==3)
cm.sendGetText(cm.getPlayer().getNews(selection)+"\r\n\r\nSo put your new title");
}else if(status == 3){
if(s1 == 3){
t=cm.getText();
cm.sendGetText(cm.getPlayer().getNews(remove)+"\r\n\r\nSo put your new Messege");
}
if(s1 == 1){
text =cm.getText();
cm.getPlayer().addNew(title,text);
cm.sendOk("Youre new have added");
cm.dispose();
}
if(s1 == 2){
cm.getPlayer().removeNew(remove);
cm.sendOk("The new have removed");
cm.dispose();
}
}else if(status == 4){
if(s1==3){
m=cm.getText();
cm.getPlayer().updateNew(remove,t,m);
cm.sendOk("Youre new have updated");
cm.dispose();
}
}
}
}
קרדיט לשרת RoyalMs
וטום על הכתיבה



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


