资源简介
《as大型网页游戏开发》实例electroserver可运行,实例3-8
代码片段和文件信息
package com.gamebook.digging;
import com.electrotank.electroserver4.extensions.basePlugin;
import com.electrotank.electroserver4.extensions.ChainAction;
import com.electrotank.electroserver4.extensions.api.ScheduledCallback;
import com.electrotank.electroserver4.extensions.api.value.Esobject;
import com.electrotank.electroserver4.extensions.api.value.EsobjectRO;
import com.electrotank.electroserver4.extensions.api.value.UserEnterContext;
import java.util.AbstractMap;
import java.util.AbstractQueue;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentlinkedQueue;
public class DiggingPlugin extends basePlugin {
// variables
private AbstractMapyerInfo> playerInfoMap;
private AbstractQueueyerInfo> delayQueue;
private Grid grid;
@Override
public void init( EsobjectRO ignored ) {
grid = new Grid();
playerInfoMap = new ConcurrentHashMapyerInfo>();
delayQueue = new ConcurrentlinkedQueueyerInfo>();
}
@Override
public ChainAction userEnter(UserEnterContext context) {
String playerName = context.getUserName();
getApi().getLogger().debug(“userEnter: “ + playerName);
return ChainAction.OkAndContinue;
}
@Override
public void request(String playerName EsobjectRO requestParameters) {
Esobject messageIn = new Esobject();
messageIn.addAll(requestParameters);
getApi().getLogger().debug(playerName + “ requests: “ + messageIn.toString());
String action = messageIn.getString(PluginConstants.ACTION);
if (action.equals(PluginConstants.INIT_ME)) {
handlePlayerInitRequest(playerName);
} else if (action.equals(PluginConstants.DIG_HERE)) {
handleDigHereRequest(playerName messageIn);
} else if (action.equals(PluginConstants.POSITION_UPDATE)) {
relayMessage(playerName messageIn);
}
}
@Override
public void userExit(String playerName) {
if (playerInfoMap.containsKey(playerName)) {
playerInfoMap.remove(playerName);
}
Esobject message = new Esobject();
message.setString(PluginConstants.ACTION PluginConstants.REMOVE_Player);
message.setString(PluginConstants.NAME playerName);
sendAndLog(“userExit“ message);
}
@Override
public void destroy() {
while (!delayQueue.isEmpty()) {
PlayerInfo pInfo = delayQueue.poll();
if (pInfo != null) {
pInfo.cancelCallback(getApi());
}
}
getApi().getLogger().debug(“room destroyed“);
}
private synchronized Esobject[] getFullPlayerList() {
Esobject[] list = new Esobject[playerInfoMap.size()];
int ptr = 0;
for (PlayerInfo pInfo : playerInfoMap.values()) {
list[ptr] = pInfo.toEsobject();
ptr++;
}
return
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 245299 2011-12-26 08:36 chapter5\chat_room\bin\ChatRoom.swf
文件 66 2011-10-20 21:08 chapter5\chat_room\bin\server.xm
文件 2636 2011-10-12 17:09 chapter5\chat_room\Chat Room.as3proj
文件 152946 2009-06-25 08:58 chapter5\chat_room\lib\as3-client-4.0.6a.swc
文件 86692 2009-06-25 08:58 chapter5\chat_room\lib\chat_assets.swc
文件 1307 2009-06-25 08:59 chapter5\chat_room\obj\Chat-RoomConfig.old
文件 1307 2009-06-25 08:59 chapter5\chat_room\obj\Chat-RoomConfig.xm
文件 1019 2011-12-01 13:04 chapter5\chat_room\obj\ChatRoomConfig.old
文件 1019 2011-12-26 08:36 chapter5\chat_room\obj\ChatRoomConfig.xm
文件 2210816 2011-10-21 07:48 chapter5\chat_room\src\assets\chat_assets.fla
文件 106830 2009-06-25 08:59 chapter5\chat_room\src\assets\chat_assets.swc
文件 107732 2009-06-25 08:59 chapter5\chat_room\src\assets\chat_assets.swf
文件 4489 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ChatFlow.as
文件 11977 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ChatRoom.as
文件 426 2011-10-20 21:07 chapter5\chat_room\src\com\gamebook\chatroom\Main.as
文件 591 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ui\ConnectingScreen.as
文件 1430 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ui\CreateRoomScreen.as
文件 1020 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ui\ErrorScreen.as
文件 1420 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ui\LoginScreen.as
文件 288 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ui\PopuupBackground.as
文件 345 2009-06-25 08:59 chapter5\chat_room\src\com\gamebook\chatroom\ui\TextLabel.as
文件 340862 2011-12-01 13:20 chapter6\dig_game\client\bin\DigGame.swf
文件 66 2009-06-25 08:59 chapter6\dig_game\client\bin\server.xm
文件 2636 2009-06-25 08:59 chapter6\dig_game\client\Dig Game.as3proj
文件 152946 2009-06-25 08:59 chapter6\dig_game\client\lib\as3-client-4.0.6a.swc
文件 86692 2009-06-25 08:59 chapter6\dig_game\client\lib\chat_assets.swc
文件 1509 2009-06-25 08:59 chapter6\dig_game\client\obj\Dig-GameConfig.old
文件 1509 2009-06-25 08:59 chapter6\dig_game\client\obj\Dig-GameConfig.xm
文件 1149 2011-12-01 13:05 chapter6\dig_game\client\obj\DigGameConfig.old
文件 1149 2011-12-01 13:05 chapter6\dig_game\client\obj\DigGameConfig.xm
............此处省略307个文件信息
相关资源
- 王金明:《Verilog HDL程序设计教程》及
- stm32f103c8t6单片机 FreeRTOS源码
- 采用HC-SR04实现的超声波测距FPGA源码
- 数学建模10大算法详解_程序源码打包
- 国外开源Wince全能播放器TCPMP源码
- API接口开发 dome源码 加密 鉴权验证
- JFreeChar图表生成柱状图和饼状图源码
- 滴水逆向中级课件源码
- 高校补考管理系统源码附数据库
- Lab Windows_CVI逐步深入与开发书pdf文档
- 后台管理端代码.rar
- 医药系统管理项目源码
- 魂斗罗源码VC版
- VxWorks完整源代码详解
- 网上订餐客户端源码可直接导入ecli
- win7 虚拟wifi源码
- 安卓记账本.zip
- NFC读卡信息小源码.zip
- WordPress v4.0 中文版.zip
- 微信古诗大全小程序.rar
- VC 适用的换肤界面库 USkin.dll使用.r
- 开源vue淘宝客项目可直接使用!
- e语言-58自动回复招聘方源码 websocke
- e语言-微信图片数据解密源码
- 代码自动生成工具 hibernate配置文件工
- ebay 开发指南
- opencv视频行人检测1HOG+SVM
- MINA TCP简单通信
- 个人博客
- Spring_PDF
评论
共有 条评论