日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java解析魔兽争霸3录像_GitHub - wucao/jw3gparser: Java Warcraft Ⅲ Replay Parser(Java解析《魔兽争霸3》游戏录像工具)...

發(fā)布時(shí)間:2024/8/1 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java解析魔兽争霸3录像_GitHub - wucao/jw3gparser: Java Warcraft Ⅲ Replay Parser(Java解析《魔兽争霸3》游戏录像工具)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

jw3gparser

Java解析《魔獸爭(zhēng)霸3》游戲錄像工具,可解析w3g、nwg(網(wǎng)易對(duì)戰(zhàn)平臺(tái)錄像)格式錄像。

使用方法

public class Test {

public static void main(String[] args) throws IOException, W3GException, DataFormatException {

Replay replay = new Replay(new File("d:/wucao/Desktop/151020_[UD]LuciferLNMS_VS_[NE]checkuncle_Amazonia_RN.w3g"));

Header header = replay.getHeader();

System.out.println("版本:1." + header.getVersionNumber() + "." + header.getBuildNumber());

long duration = header.getDuration();

System.out.println("時(shí)長(zhǎng):" + convertMillisecondToString(duration));

UncompressedData uncompressedData = replay.getUncompressedData();

System.out.println("游戲名稱:" + uncompressedData.getGameName());

System.out.println("游戲創(chuàng)建者:" + uncompressedData.getCreaterName());

System.out.println("游戲地圖:" + uncompressedData.getMap());

List list = uncompressedData.getPlayerList();

for(Player player : list) {

System.out.println("---玩家" + player.getPlayerId() + "---");

System.out.println("玩家名稱:" + player.getPlayerName());

if(player.isHost()) {

System.out.println("是否主機(jī):主機(jī)");

} else {

System.out.println("是否主機(jī):否");

}

System.out.println("游戲時(shí)間:" + convertMillisecondToString(player.getPlayTime()));

System.out.println("操作次數(shù):" + player.getAction());

System.out.println("APM:" + player.getAction() * 60000 / player.getPlayTime());

if(!player.isObserverOrReferee()) {

System.out.println("玩家隊(duì)伍:" + (player.getTeamNumber() + 1));

switch(player.getRace()) {

case HUMAN:

System.out.println("玩家種族:人族");

break;

case ORC:

System.out.println("玩家種族:獸族");

break;

case NIGHT_ELF:

System.out.println("玩家種族:暗夜精靈");

break;

case UNDEAD:

System.out.println("玩家種族:不死族");

break;

case RANDOM:

System.out.println("玩家種族:隨機(jī)");

break;

}

switch(player.getColor()) {

case RED:

System.out.println("玩家顏色:紅");

break;

case BLUE:

System.out.println("玩家顏色:藍(lán)");

break;

case CYAN:

System.out.println("玩家顏色:青");

break;

case PURPLE:

System.out.println("玩家顏色:紫");

break;

case YELLOW:

System.out.println("玩家顏色:黃");

break;

case ORANGE:

System.out.println("玩家顏色:橘");

break;

case GREEN:

System.out.println("玩家顏色:綠");

break;

case PINK:

System.out.println("玩家顏色:粉");

break;

case GRAY:

System.out.println("玩家顏色:灰");

break;

case LIGHT_BLUE:

System.out.println("玩家顏色:淺藍(lán)");

break;

case DARK_GREEN:

System.out.println("玩家顏色:深綠");

break;

case BROWN:

System.out.println("玩家顏色:棕");

break;

}

System.out.println("障礙(血量):" + player.getHandicap() + "%");

if(player.isComputer()) {

System.out.println("是否電腦玩家:電腦玩家");

switch (player.getAiStrength())

{

case EASY:

System.out.println("電腦難度:簡(jiǎn)單的");

break;

case NORMAL:

System.out.println("電腦難度:中等難度的");

break;

case INSANE:

System.out.println("電腦難度:令人發(fā)狂的");

break;

}

} else {

System.out.println("是否電腦玩家:否");

}

} else {

System.out.println("玩家隊(duì)伍:裁判或觀看者");

}

}

List chatList = uncompressedData.getReplayData().getChatList();

for(ChatMessage chatMessage : chatList) {

String chatString = "[" + convertMillisecondToString(chatMessage.getTime()) + "]";

chatString += chatMessage.getFrom().getPlayerName() + " 對(duì) ";

switch ((int)chatMessage.getMode()) {

case 0:

chatString += "所有人";

break;

case 1:

chatString += "隊(duì)伍";

break;

case 2:

chatString += "裁判或觀看者";

break;

default:

chatString += chatMessage.getTo().getPlayerName();

}

chatString += " 說:" + chatMessage.getMessage();

System.out.println(chatString);

}

}

private static String convertMillisecondToString(long millisecond) {

long second = (millisecond / 1000) % 60;

long minite = (millisecond / 1000) / 60;

if (second < 10) {

return minite + ":0" + second;

} else {

return minite + ":" + second;

}

}

}

輸出DEMO:

版本:1.26.6059

時(shí)長(zhǎng):24:53

游戲名稱:WCA01

游戲創(chuàng)建者:A.1st_LawLiet

游戲地圖:Maps\Download\(2)Amazonia.w3x

---玩家1---

玩家名稱:A.1st_LawLiet

是否主機(jī):主機(jī)

游戲時(shí)間:24:32

操作次數(shù):0

APM:0

玩家隊(duì)伍:裁判或觀看者

---玩家2---

玩家名稱:checkuncle

是否主機(jī):否

游戲時(shí)間:24:31

操作次數(shù):5831

APM:237

玩家隊(duì)伍:2

玩家種族:暗夜精靈

玩家顏色:紅

障礙(血量):100%

是否電腦玩家:否

---玩家3---

玩家名稱:LuciferLNMS

是否主機(jī):否

游戲時(shí)間:24:31

操作次數(shù):7816

APM:318

玩家隊(duì)伍:1

玩家種族:不死族

玩家顏色:灰

障礙(血量):100%

是否電腦玩家:否

---玩家4---

玩家名稱:WCA_SEA_OB2

是否主機(jī):否

游戲時(shí)間:24:53

操作次數(shù):0

APM:0

玩家隊(duì)伍:裁判或觀看者

---玩家5---

玩家名稱:wca_sea_ob1

是否主機(jī):否

游戲時(shí)間:24:32

操作次數(shù):0

APM:0

玩家隊(duì)伍:裁判或觀看者

[0:09]checkuncle 對(duì) 所有人 說:All rights reserved by Blizzard

[0:10]checkuncle 對(duì) 所有人 說:w3g files released by www.Replays.Net.

[0:36]LuciferLNMS 對(duì) 所有人 說:gl

[0:38]checkuncle 對(duì) 所有人 說:gl

[24:30]checkuncle 對(duì) 所有人 說:gg

[24:43]checkuncle 對(duì) 所有人 說:For more replays, plz visit www.Replays.Net

參考文檔

Change Log

V1.1.0

支持網(wǎng)易對(duì)戰(zhàn)平臺(tái)錄像格式nwg解析;

V1.1.1

修復(fù)部分錄像沒有玩家離開游戲標(biāo)記的導(dǎo)致玩家游戲時(shí)間是0的BUG;

V1.2.0

去除FileType, 程序自動(dòng)識(shí)別錄像類型, 修復(fù)網(wǎng)易對(duì)戰(zhàn)平臺(tái)部分新錄像報(bào)"錄像格式不正確"錯(cuò)誤的BUG;

總結(jié)

以上是生活随笔為你收集整理的java解析魔兽争霸3录像_GitHub - wucao/jw3gparser: Java Warcraft Ⅲ Replay Parser(Java解析《魔兽争霸3》游戏录像工具)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。