资源简介
《as大型网页游戏开发》实例electroserver可运行,实例3-8
![](http://www.nz998.com/pic/49321.jpg)
代码片段和文件信息
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个文件信息
相关资源
- 我的世界源码(易语言版)
- labview编程软件滤波器以及编写程序设
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- UNIX/LINUX编程实践教程的源码
- 十以内加减法练习 powerbuilder源码
- 农场开发项目
- OCR源码
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- 用VC 编写的仿QQ聊天室程序源代码
- 毕业论文之温度传感器DS18B20(源码
- 可自定义导航网站源码
- 栅栏填充算法源码(VC)
- msp430F149操作红外接收模块源码
- [免费]图像识别c 源码
- 周易排盘源码
- RSA算法源码
- 一个人脸识别程序源码
- 编译原理课程设计:词法语法编译器
- 透明加密源码及说明
- 电视直播源码
- 远程桌面(带C 源码)
- mtrace 源码
评论
共有 条评论