- UID
- 286271
- 帖子
- 42
- 主題
- 31
- 精華
- 0
- 積分
- 31
- 楓幣
- 507
- 威望
- 31
- 存款
- 0
- 贊助金額
- 0
- 推廣
- 0
- GP
- 31
- 閱讀權限
- 10
- 性別
- 保密
- 在線時間
- 2 小時
- 註冊時間
- 2020-7-12
- 最後登入
- 2021-4-13
|
GM命令从文本文件读取内容并已公告形式发出
下面是代码修改:
文件:net.sf.odinms.client.messages.ConmmandProcessor.java
首先在代码
import java.util.Map;
import java.util.Map.Entry;后增加
Copy codeimport java.io.*;
然后在代码
} else if (splitted[0].equals("!notice")) {
int joinmod = 1;
前面增加
else if (splitted[0].equals("!GMsays")) { try {
BufferedReader in = new BufferedReader(
new FileReader("C:\\GMsays.txt"));
String s1 , s = new String();
while( (s1 = in.readLine()) != null ){
s += s1 ;
}
String[] contents = s.split(("\\*"));
for (int i = 0; i < contents.length; i++) {
if (splitted[1].equals(""+(i+1))) {
MaplePacket packet = MaplePacketCreator.serverNotice(6,"[管理员公告] " + contents[i] );
try {
ChannelServer.getInstance(c.getChannel()).getWorldInterface().broadcastMessage(
c.getPlayer().getName(), packet.getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
//mc.dropMessage("[管理员公告] " + contents[i]);
}
}
} catch (IOException e) {
System.err.println(e);
}
修改完后的部分参考代码(注意几个“{}”的位置):
} else if (splitted[0].equals("!array")) {
mc.dropMessage("Array");
} else if (splitted[0].equals("!GMsays")) { try {
BufferedReader in = new BufferedReader(
new FileReader("C:\\GMsays.txt"));
String s1 , s = new String();
while( (s1 = in.readLine()) != null ){
s += s1 ;
}
String[] contents = s.split(("\\*"));
for (int i = 0; i < contents.length; i++) {
if (splitted[1].equals(""+(i+1))) {
MaplePacket packet = MaplePacketCreator.serverNotice(6,"[管理员公告] " + contents[i] );
try {
ChannelServer.getInstance(c.getChannel()).getWorldInterface().broadcastMessage(
c.getPlayer().getName(), packet.getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
//mc.dropMessage("[管理员公告] " + contents[i]);
}
}
} catch (IOException e) {
System.err.println(e);
} else if (splitted[0].equals("!notice")) {
int joinmod = 1;
最后在C盘根目录创建一个文本文件,文件名GMsays.txt
文本内容格式为:
第一条公告
*第二条公告
*第三条公告
.....
做完以上部分,编译服务端文件后,进入游戏输入GM命令:!GMsays 数字
数字为你要说的文本中公告的行号
|
|