├── .gitignore ├── .jshintrc ├── AUTHORS ├── LICENSE ├── README.md ├── doc └── imgs │ ├── 00.jpg │ └── 01.jpg ├── game-server ├── .gitignore ├── .jshintrc ├── app.js ├── app │ ├── ai │ │ ├── action │ │ │ ├── findNearbyPlayer.js │ │ │ ├── moveToTarget.js │ │ │ ├── patrol.js │ │ │ ├── tryAttack.js │ │ │ ├── tryPick.js │ │ │ └── tryTalkToNpc.js │ │ ├── ai.js │ │ ├── brain │ │ │ ├── player.js │ │ │ └── tiger.js │ │ ├── meta │ │ │ └── blackboard.js │ │ ├── node │ │ │ └── tryAndAdjust.js │ │ └── service │ │ │ ├── aiManager.js │ │ │ └── brainService.js │ ├── consts │ │ ├── consts.js │ │ └── formula.js │ ├── dao │ │ ├── bagDao.js │ │ ├── equipmentsDao.js │ │ ├── fightskillDao.js │ │ ├── mapping │ │ │ ├── bagSync.js │ │ │ ├── equipmentsSync.js │ │ │ ├── fightskillSync.js │ │ │ ├── playerSync.js │ │ │ └── taskSync.js │ │ ├── mysql │ │ │ ├── dao-pool.js │ │ │ └── mysql.js │ │ ├── taskDao.js │ │ └── userDao.js │ ├── domain │ │ ├── action │ │ │ ├── action.js │ │ │ ├── actionManager.js │ │ │ ├── move.js │ │ │ └── revive.js │ │ ├── aoi │ │ │ └── aoiEventManager.js │ │ ├── area │ │ │ ├── area.js │ │ │ ├── instance.js │ │ │ ├── instancePool.js │ │ │ ├── scene.js │ │ │ └── timer.js │ │ ├── bag.js │ │ ├── buff.js │ │ ├── entity │ │ │ ├── character.js │ │ │ ├── entity.js │ │ │ ├── equipment.js │ │ │ ├── item.js │ │ │ ├── mob.js │ │ │ ├── npc.js │ │ │ ├── player.js │ │ │ └── team.js │ │ ├── equipments.js │ │ ├── event │ │ │ ├── characterEvent.js │ │ │ ├── eventManager.js │ │ │ ├── npcEvent.js │ │ │ └── playerEvent.js │ │ ├── executeTask.js │ │ ├── fightskill.js │ │ ├── map │ │ │ ├── map.js │ │ │ ├── mobzone.js │ │ │ └── zone.js │ │ ├── messageService.js │ │ ├── persistent.js │ │ ├── task.js │ │ ├── taskReward.js │ │ ├── user.js │ │ └── world.js │ ├── modules │ │ ├── onlineUser.js │ │ └── sceneInfo.js │ ├── patrol │ │ ├── mode │ │ │ ├── composite.js │ │ │ ├── loop.js │ │ │ ├── single.js │ │ │ └── wait.js │ │ ├── patrol.js │ │ └── service │ │ │ └── patrolManager.js │ ├── servers │ │ ├── area │ │ │ ├── filter │ │ │ │ └── playerFilter.js │ │ │ ├── handler │ │ │ │ ├── equipHandler.js │ │ │ │ ├── fightHandler.js │ │ │ │ ├── playerHandler.js │ │ │ │ ├── resourceHandler.js │ │ │ │ ├── taskHandler.js │ │ │ │ └── teamHandler.js │ │ │ └── remote │ │ │ │ ├── areaRemote.js │ │ │ │ └── playerRemote.js │ │ ├── auth │ │ │ └── remote │ │ │ │ └── authRemote.js │ │ ├── chat │ │ │ ├── handler │ │ │ │ └── chatHandler.js │ │ │ └── remote │ │ │ │ └── chatRemote.js │ │ ├── connector │ │ │ └── handler │ │ │ │ ├── entryHandler.js │ │ │ │ ├── roleHandler.js │ │ │ │ └── timeSyncHandler.js │ │ ├── gate │ │ │ └── handler │ │ │ │ └── gateHandler.js │ │ ├── manager │ │ │ └── remote │ │ │ │ ├── instanceRemote.js │ │ │ │ └── teamRemote.js │ │ └── path │ │ │ └── remote │ │ │ └── pathFindingRemote.js │ ├── services │ │ ├── areaService.js │ │ ├── chatService.js │ │ ├── instanceManager.js │ │ └── teamManager.js │ └── util │ │ ├── channelUtil.js │ │ ├── dataApi.js │ │ ├── dispatcher.js │ │ ├── geometry.js │ │ ├── pathCache.js │ │ ├── routeUtil.js │ │ └── utils.js ├── bin │ ├── build.sh │ ├── file.txt │ ├── fileutil.js │ ├── package.js │ ├── release.conf │ ├── replaceip │ ├── shutdown.sh │ └── update.sh ├── config │ ├── animation_json │ │ ├── 201.json │ │ ├── 202.json │ │ ├── 203.json │ │ ├── 204.json │ │ ├── 205.json │ │ ├── 206.json │ │ ├── 207.json │ │ ├── 208.json │ │ ├── 209.json │ │ ├── 210.json │ │ └── 211.json │ ├── clientProtos.json │ ├── data │ │ ├── area.json │ │ ├── character.json │ │ ├── equipment.json │ │ ├── experience.json │ │ ├── fightskill.json │ │ ├── item.json │ │ ├── npc.json │ │ ├── rank.json │ │ ├── role.json │ │ ├── talk.json │ │ ├── task.json │ │ └── team.json │ ├── dictionary.json │ ├── effect.json │ ├── instance.json │ ├── log4js.json │ ├── map │ │ ├── arena.json │ │ ├── desert.json │ │ ├── ice.json │ │ ├── oasis.json │ │ └── paths.json │ ├── master.json │ ├── scheduler.json │ ├── schema │ │ └── Pomelo.sql │ ├── serverProtos.json │ ├── servers.json │ └── session.json ├── logs │ └── tmp ├── package.json ├── scripts │ ├── getCPUs.js │ ├── getServerId.js │ ├── getSystemInfo.js │ └── logger.js ├── test │ ├── ai │ │ └── brain │ │ │ ├── autoFightTest.js │ │ │ └── tigerTest.js │ ├── domain │ │ ├── action │ │ │ └── moveTest.js │ │ ├── bagTest.js │ │ ├── entityTest.js │ │ ├── fightTest.js │ │ ├── maploaderTest.js │ │ ├── taskTest.js │ │ └── worldTest.js │ ├── patrol │ │ └── mode │ │ │ ├── compositeTest.js │ │ │ ├── loopTest.js │ │ │ └── singleTest.js │ ├── shared │ │ └── tokenTest.js │ └── util │ │ ├── dataApiTest.js │ │ ├── geometryTest.js │ │ ├── mockData.js │ │ └── queueTest.js └── tmp │ └── map.json ├── npm-install.sh ├── replace_request.sh ├── request_main.js ├── shared ├── code.js ├── config │ ├── clientMsg.json │ ├── mysql.json │ └── session.json └── token.js └── web-server ├── .gitignore ├── .jshintrc ├── app.js ├── bin ├── build-componet.sh └── component.sh ├── config └── oauth.json ├── lib ├── dao │ ├── mysql │ │ ├── dao-pool.js │ │ └── mysql.js │ └── userDao.js └── oauth.js ├── package.json ├── public ├── animation_json │ ├── 0998.json │ ├── 0999.json │ ├── 1001.json │ ├── 1003.json │ ├── 1005.json │ ├── 1006.json │ ├── 1007.json │ ├── 1008.json │ ├── 1010.json │ ├── 1011.json │ ├── 1012.json │ ├── 1015.json │ ├── 1016.json │ ├── 1018.json │ ├── 1019.json │ ├── 1020.json │ ├── 1022.json │ ├── 1024.json │ ├── 1025.json │ ├── 1026.json │ ├── 1027.json │ ├── 1028.json │ ├── 1029.json │ ├── 1030.json │ ├── 1031.json │ ├── 1035.json │ ├── 1038.json │ ├── 1041.json │ ├── 1048.json │ ├── 1050.json │ ├── 1054.json │ ├── 1061.json │ ├── 1062.json │ ├── 1063.json │ ├── 1065.json │ ├── 1067.json │ ├── 1068.json │ ├── 1071.json │ ├── 1072.json │ ├── 1073.json │ ├── 1074.json │ ├── 1076.json │ ├── 1078.json │ ├── 1080.json │ ├── 1081.json │ ├── 1082.json │ ├── 1084.json │ ├── 1086.json │ ├── 1087.json │ ├── 1090.json │ ├── 1092.json │ ├── 1094.json │ ├── 1096.json │ ├── 1097.json │ ├── 1098.json │ ├── 1099.json │ ├── 1100.json │ ├── 1101.json │ ├── 1102.json │ ├── 1103.json │ ├── 1104.json │ ├── 1107.json │ ├── 1110.json │ ├── 1111.json │ ├── 1112.json │ ├── 1113.json │ ├── 1116.json │ ├── 1118.json │ ├── 1120.json │ ├── 1121.json │ ├── 1123.json │ ├── 1126.json │ ├── 1128.json │ ├── 1129.json │ └── 1131.json ├── css │ ├── client.css │ ├── client.css~ │ └── global.css ├── image │ ├── admissionanimabg.jpg │ ├── admissionanimatext.png │ ├── assetbg.png │ ├── avatar.png │ ├── bar.png │ ├── bg.png │ ├── box.png │ ├── btn.png │ ├── captainFlag.png │ ├── chat.png │ ├── checkbox.png │ ├── checkboxmark.png │ ├── checkboxmark2.png │ ├── checkboxmark3.png │ ├── chooserolebnt.png │ ├── chooserolename.png │ ├── close.png │ ├── global.png │ ├── hero_bg.png │ ├── hero_selected.png │ ├── icon-l.png │ ├── icon.png │ ├── input.png │ ├── input2.png │ ├── input3.png │ ├── lay_zj.png │ ├── laybg_bb1.jpg │ ├── laybg_cy.jpg │ ├── laybg_gk.jpg │ ├── laybg_hy.jpg │ ├── laybg_jn.jpg │ ├── laybg_jr.jpg │ ├── laybg_kj.jpg │ ├── laybg_sd.jpg │ ├── laybg_sq.jpg │ ├── laybg_zj.jpg │ ├── laybg_zx.jpg │ ├── layer.png │ ├── levbar.png │ ├── loadframebg0.png │ ├── loadframebg1.png │ ├── loadratebg.png │ ├── loadratecover.png │ ├── loadtt.png │ ├── loginTT.png │ ├── login_bg.png │ ├── loginbnt.png │ ├── logo.png │ ├── logo2.png │ ├── lrframebg0.png │ ├── lrframebg1.png │ ├── lrframebg2.png │ ├── memberFlag.png │ ├── navicons.png │ ├── player.png │ ├── registerTT.png │ ├── registerbnt.png │ ├── registerbnt2.png │ ├── returnbnt.png │ ├── rolelst.png │ ├── rolelstcover.png │ ├── scrollbar.png │ ├── skill.png │ ├── tab.png │ ├── targetrolebg.png │ ├── targetrolebg1.png │ ├── targetrolecover.png │ ├── targetrolecover2.png │ ├── tattoo.png │ ├── tattoo2.png │ ├── window.png │ └── window1.png ├── images.jpg ├── index.html └── js │ ├── app.js │ ├── componentAdder.js │ ├── config │ ├── config.js │ └── consts.js │ ├── handler │ ├── applyJoinTeamHandler.js │ ├── gameMsgHandler.js │ ├── inviteJoinTeamHandler.js │ ├── kickOutHandler.js │ ├── loginMsgHandler.js │ ├── npcHandler.js │ ├── playerHandler.js │ ├── taskHandler.js │ └── teamHandler.js │ ├── lib │ ├── build │ │ └── build.js │ ├── colorbox │ │ ├── Box2dWeb-2.1.a.3.js │ │ ├── JXGUtil.js │ │ ├── LICENSE │ │ ├── animate.js │ │ ├── base.js │ │ ├── base64.js │ │ ├── canvaseventdecider.js │ │ ├── clocker.js │ │ ├── colorbox_header.js │ │ ├── colorbox_module.js │ │ ├── component.js │ │ ├── debug.js │ │ ├── director.js │ │ ├── frameanimation.js │ │ ├── geometry.js │ │ ├── gui │ │ │ ├── button.js │ │ │ └── slidebar.js │ │ ├── gzip.js │ │ ├── helper.js │ │ ├── level.js │ │ ├── leveltransition.js │ │ ├── logic.js │ │ ├── matrix.js │ │ ├── model.js │ │ ├── node.js │ │ ├── oo.js │ │ ├── particle.js │ │ ├── path.js │ │ ├── pathfinding.js │ │ ├── physicsnode.js │ │ ├── pipe.js │ │ ├── platform.js │ │ ├── processing.js │ │ ├── resmgr.js │ │ ├── scene.js │ │ ├── sound.js │ │ ├── tiled_map.js │ │ ├── util.js │ │ ├── view.js │ │ ├── view │ │ │ ├── honestview.js │ │ │ ├── index.js │ │ │ └── processingview.js │ │ └── xmlload.js │ ├── component.json │ ├── components │ │ ├── NetEase-pomelo-protocol │ │ │ ├── component.json │ │ │ └── lib │ │ │ │ └── protocol.js │ │ ├── component-emitter │ │ │ ├── component.json │ │ │ └── index.js │ │ ├── component-indexof │ │ │ ├── component.json │ │ │ └── index.js │ │ ├── component-jquery │ │ │ ├── component.json │ │ │ └── index.js │ │ ├── pomelonode-pomelo-jsclient-websocket │ │ │ ├── component.json │ │ │ └── lib │ │ │ │ └── pomelo-client.js │ │ └── pomelonode-pomelo-protobuf │ │ │ ├── component.json │ │ │ └── lib │ │ │ └── client │ │ │ └── protobuf.js │ └── local │ │ └── boot │ │ ├── component.json │ │ └── index.js │ ├── main.js │ ├── model │ ├── animation.js │ ├── area.js │ ├── bag.js │ ├── character.js │ ├── curPlayer.js │ ├── entity.js │ ├── equipment.js │ ├── equipments.js │ ├── item.js │ ├── map.js │ ├── mob.js │ ├── noEntityNode.js │ ├── npc.js │ ├── player.js │ ├── skillEffect.js │ ├── sprite.js │ └── task.js │ ├── ui │ ├── applyJoinTeamPanelView.js │ ├── bagPanelView.js │ ├── chat.js │ ├── clientManager.js │ ├── dialogPanelView.js │ ├── equipmentsPanelView.js │ ├── heroSelectView.js │ ├── inviteJoinTeamPanelView.js │ ├── kickOutPanelView.js │ ├── main.js │ ├── mainPanelView.js │ ├── playerDialogPanelView.js │ ├── playerPanelView.js │ ├── switchManager.js │ ├── taskPanelView.js │ ├── teamPanelView.js │ └── ui.js │ └── utils │ ├── dataApi.js │ ├── mapLoader.js │ ├── pool │ ├── objectPool.js │ ├── objectPoolFactory.js │ └── objectPoolManager.js │ ├── resourceLoader.js │ ├── timeSync.js │ └── utils.js └── views └── auth.ejs /.gitignore: -------------------------------------------------------------------------------- 1 | .project 2 | *.log 3 | */node-log.log 4 | logs/*.log 5 | !.gitignore 6 | node_modules/* 7 | .project 8 | .settings/ 9 | **/*.svn 10 | *.svn 11 | *.sublime-project 12 | *.sublime-workspace 13 | *.swp 14 | .DS_Store 15 | .idea 16 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "describe", 4 | "it", 5 | "before", 6 | "after", 7 | "window", 8 | "__resources__", 9 | "$", 10 | "alert" 11 | ], 12 | "browser": true, 13 | "es5": true, 14 | "node": true, 15 | "eqeqeq": true, 16 | "undef": true, 17 | "curly": false, 18 | "bitwise": false, 19 | "immed": false, 20 | "newcap": true, 21 | "nonew": true, 22 | "white": false, 23 | "smarttabs": true, 24 | "multistr": true, 25 | "strict": false 26 | } 27 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | * Charlie Edward 2 | * piaohai 3 | Focus on OpenSource and Performance 4 | 5 | * numbcoder 6 | 7 | * halfblood 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2012-2013 Netease, Inc. and other pomelo contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /doc/imgs/00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/doc/imgs/00.jpg -------------------------------------------------------------------------------- /doc/imgs/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/doc/imgs/01.jpg -------------------------------------------------------------------------------- /game-server/.gitignore: -------------------------------------------------------------------------------- 1 | .project 2 | *.log 3 | */node-log.log 4 | logs/*.log 5 | !.gitignore 6 | node_modules/* 7 | .project 8 | .settings/ 9 | **/*.svn 10 | *.svn 11 | *.sublime-project 12 | *.sublime-workspace 13 | *.swp 14 | .DS_Store 15 | .idea -------------------------------------------------------------------------------- /game-server/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "describe", 4 | "it", 5 | "before", 6 | "after", 7 | "window", 8 | "__resources__" 9 | ], 10 | "es5": true, 11 | "node": true, 12 | "eqeqeq": true, 13 | "undef": true, 14 | "curly": false, 15 | "bitwise": false, 16 | "immed": false, 17 | "newcap": true, 18 | "nonew": true, 19 | "white": false, 20 | "smarttabs": true, 21 | "strict": false 22 | } 23 | -------------------------------------------------------------------------------- /game-server/app/ai/action/findNearbyPlayer.js: -------------------------------------------------------------------------------- 1 | var bt = require('pomelo-bt'); 2 | 3 | var Action = function(opts) { 4 | this.blackboard = opts.blackboard; 5 | }; 6 | 7 | module.exports = Action; 8 | 9 | var pro = Action.prototype; 10 | 11 | /** 12 | * Find the near by player and hates the player. 13 | * 14 | * @return {Number} bt.RES_SUCCESS if find a player and hates him; 15 | * bt.RES_FAIL if no player nearby. 16 | */ 17 | pro.doAction = function() { 18 | var character = this.blackboard.curCharacter; 19 | if(character.target || character.haters.length) { 20 | //have a target already 21 | return bt.RES_SUCCESS; 22 | } 23 | 24 | var area = this.blackboard.area; 25 | //TODO: remove magic range: 300 26 | var players = area.getEntitiesByPos({x: character.x, y: character.y}, ['player'], 300); 27 | if(players && players.length) { 28 | //TODO: remove magic hate point: 5 29 | character.increaseHateFor(players[0].enitityId, 5); 30 | return bt.RES_SUCCESS; 31 | } 32 | //TODO: implements reset logic 33 | return bt.RES_FAIL; 34 | }; 35 | 36 | module.exports.create = function() { 37 | return Action; 38 | }; 39 | -------------------------------------------------------------------------------- /game-server/app/ai/action/patrol.js: -------------------------------------------------------------------------------- 1 | var bt = require('pomelo-bt'); 2 | var BTNode = bt.Node; 3 | var util = require('util'); 4 | 5 | var Action = function(opts) { 6 | BTNode.call(this, opts.blackboard); 7 | }; 8 | util.inherits(Action, BTNode); 9 | 10 | module.exports = Action; 11 | 12 | var pro = Action.prototype; 13 | 14 | /** 15 | * Move the current mob into patrol module and remove it from ai module. 16 | * 17 | * @return {Number} bt.RES_SUCCESS if everything ok; 18 | * bt.RES_FAIL if any error. 19 | */ 20 | pro.doAction = function() { 21 | var character = this.blackboard.curCharacter; 22 | var area = this.blackboard.area; 23 | 24 | area.timer.patrol(character.entityId); 25 | return bt.RES_SUCCESS; 26 | }; 27 | 28 | module.exports.create = function() { 29 | return Action; 30 | }; 31 | -------------------------------------------------------------------------------- /game-server/app/ai/ai.js: -------------------------------------------------------------------------------- 1 | var AiManager = require('./service/aiManager'); 2 | var BrainService = require('./service/brainService'); 3 | var fs = require('fs'); 4 | var path = require('path'); 5 | 6 | var exp = module.exports; 7 | 8 | exp.createManager = function(opts) { 9 | var brainService = new BrainService(); 10 | fs.readdirSync(__dirname + '/brain').forEach(function(filename){ 11 | if (!/\.js$/.test(filename)) { 12 | return; 13 | } 14 | var name = path.basename(filename, '.js'); 15 | var brain = require('./brain/' + name); 16 | brainService.registerBrain(brain.name||name, brain); 17 | }); 18 | 19 | opts = opts || {}; 20 | opts.brainService = brainService; 21 | return new AiManager(opts); 22 | }; 23 | -------------------------------------------------------------------------------- /game-server/app/ai/meta/blackboard.js: -------------------------------------------------------------------------------- 1 | var Blackboard = function(opts) { 2 | this.manager = opts.manager; 3 | this.area = opts.area; 4 | this.curCharacter = opts.curCharacter; 5 | }; 6 | 7 | var pro = Blackboard.prototype; 8 | 9 | module.exports.create = function(opts) { 10 | return new Blackboard(opts); 11 | }; 12 | -------------------------------------------------------------------------------- /game-server/app/ai/node/tryAndAdjust.js: -------------------------------------------------------------------------------- 1 | var bt = require('pomelo-bt'); 2 | var BTNode = bt.Node; 3 | var Sequence = bt.Sequence; 4 | var Select = bt.Select; 5 | var util = require('util'); 6 | 7 | /** 8 | * Try and adjust action. 9 | * Try to do a action and return success if the action success. 10 | * If fail then do the adjustment and try it again when adjust return success. 11 | * 12 | * @param opts {Object} 13 | * opts.blackboard {Object} blackboard 14 | * opts.adjustAction {BTNode} adjust action 15 | * opts.tryAction {BTNode} try action} 16 | */ 17 | var Node = function(opts) { 18 | BTNode.call(this, opts.blackboard); 19 | 20 | var adjustAndTryAgain = new Sequence(opts); 21 | adjustAndTryAgain.addChild(opts.adjustAction); 22 | adjustAndTryAgain.addChild(opts.tryAction); 23 | 24 | var tryAndAdjust = new Select(opts); 25 | tryAndAdjust.addChild(opts.tryAction); 26 | tryAndAdjust.addChild(adjustAndTryAgain); 27 | 28 | this.action = tryAndAdjust; 29 | }; 30 | util.inherits(Node, BTNode); 31 | 32 | module.exports = Node; 33 | 34 | var pro = Node.prototype; 35 | 36 | pro.doAction = function() { 37 | return this.action.doAction(); 38 | }; 39 | -------------------------------------------------------------------------------- /game-server/app/ai/service/brainService.js: -------------------------------------------------------------------------------- 1 | var Service = function() { 2 | this.brains = {}; 3 | }; 4 | 5 | module.exports = Service; 6 | 7 | var pro = Service.prototype; 8 | 9 | pro.getBrain = function(type, blackboard) { 10 | //TODO: mock data 11 | if(type !== 'autoFight' && type !== 'player') { 12 | type = 'tiger'; 13 | } 14 | var brain = this.brains[type]; 15 | if(brain) { 16 | return brain.clone({blackboard: blackboard}); 17 | } 18 | return null; 19 | }; 20 | 21 | pro.registerBrain = function(type, brain) { 22 | this.brains[type] = brain; 23 | }; 24 | 25 | -------------------------------------------------------------------------------- /game-server/app/dao/mapping/bagSync.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | updateBag: function (dbclient, val, cb) { 3 | var sql = 'update Bag set items = ? where id = ?'; 4 | var items = val.items; 5 | if (typeof items !== 'string') { 6 | items = JSON.stringify(items); 7 | } 8 | var args = [items, val.id]; 9 | 10 | dbclient.query(sql, args, function (err, res) { 11 | if (err) { 12 | console.error('write mysql failed! ' + sql + ' ' + JSON.stringify(val)); 13 | } 14 | cb(!!err); 15 | }); 16 | } 17 | }; 18 | -------------------------------------------------------------------------------- /game-server/app/dao/mapping/equipmentsSync.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | updateEquipments: function(dbclient, val, cb) { 3 | var sql = 'update Equipments set weapon = ?, armor = ?, helmet = ?, necklace = ?, ring = ?, belt = ?, amulet = ?, legguard = ?, shoes = ? where id = ?'; 4 | var args = [val.weapon, val.armor, val.helmet, val.necklace, val.ring, val.belt, val.amulet, val.legguard, val.shoes, val.id]; 5 | 6 | dbclient.query(sql, args, function(err, res) { 7 | if (err) { 8 | console.error('write mysql failed! ' + sql + ' ' + JSON.stringify(val)); 9 | } 10 | cb(!!err); 11 | }); 12 | } 13 | 14 | }; 15 | -------------------------------------------------------------------------------- /game-server/app/dao/mapping/fightskillSync.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | updateFightSkill: function(dbclient, val, cb) { 3 | var sql = 'update FightSkill set level = ? where id = ?'; 4 | var args = [val.level, val.id]; 5 | 6 | dbclient.query(sql, args, function(err, res) { 7 | if (err) { 8 | console.error('write mysql failed! ' + sql + ' ' + JSON.stringify(val)); 9 | } 10 | cb(!!err); 11 | }); 12 | } 13 | 14 | }; 15 | -------------------------------------------------------------------------------- /game-server/app/dao/mapping/playerSync.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | updatePlayer:function(client, player) { 3 | var sql = 'update Player set x = ? ,y = ? , hp = ?, mp = ? , maxHp = ?, maxMp = ?, country = ?, rank = ?, level = ?, experience = ?, areaId = ?, attackValue = ?, defenceValue = ?, walkSpeed = ?, attackSpeed = ? where id = ?'; 4 | var args = [player.x, player.y, player.hp, player.mp, player.maxHp, player.maxMp, player.country, player.rank, player.level, player.experience, player.areaId, player.attackValue, player.defenceValue, player.walkSpeed, player.attackSpeed, player.id]; 5 | client.query(sql, args, function(err, res) { 6 | if(err !== null) { 7 | console.error('write mysql failed! ' + sql + ' ' + JSON.stringify(player) + ' stack:' + err.stack); 8 | } 9 | }); 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /game-server/app/dao/mapping/taskSync.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | updateTask: function(dbclient, val, cb) { 3 | var sql = 'update Task set taskState = ?, startTime = ?, taskData = ? where id = ?'; 4 | var taskData = val.taskData; 5 | if (typeof taskData !== 'string') { 6 | taskData = JSON.stringify(taskData); 7 | } 8 | var args = [val.taskState, val.startTime, taskData, val.id]; 9 | dbclient.query(sql, args, function(err, res) { 10 | if (err) { 11 | console.error('write mysql failed! ' + sql + JSON.stringify(val)); 12 | } 13 | cb(!!err); 14 | }); 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /game-server/app/dao/mysql/dao-pool.js: -------------------------------------------------------------------------------- 1 | var _poolModule = require('generic-pool'); 2 | 3 | /* 4 | * Create mysql connection pool. 5 | */ 6 | var createMysqlPool = function(app) { 7 | var mysqlConfig = app.get('mysql'); 8 | return _poolModule.Pool({ 9 | name: 'mysql', 10 | create: function(callback) { 11 | var mysql = require('mysql'); 12 | var client = mysql.createConnection({ 13 | host: mysqlConfig.host, 14 | user: mysqlConfig.user, 15 | password: mysqlConfig.password, 16 | database: mysqlConfig.database 17 | }); 18 | callback(null, client); 19 | }, 20 | destroy: function(client) { 21 | client.end(); 22 | }, 23 | max: 10, 24 | idleTimeoutMillis : 30000, 25 | log : false 26 | }); 27 | }; 28 | 29 | exports.createMysqlPool = createMysqlPool; 30 | -------------------------------------------------------------------------------- /game-server/app/domain/action/action.js: -------------------------------------------------------------------------------- 1 | var id = 1; 2 | 3 | /** 4 | * Action class, used to excute the action in server 5 | */ 6 | var Action = function(opts){ 7 | this.data = opts.data; 8 | this.id = opts.id || id++; 9 | this.type = opts.type || 'defaultAction'; 10 | 11 | this.finished = false; 12 | this.aborted = false; 13 | this.singleton = false || opts.singleton; 14 | }; 15 | 16 | /** 17 | * Update interface, default update will do nothing, every tick the update will be invoked 18 | * @api public 19 | */ 20 | Action.prototype.update = function(){ 21 | }; 22 | 23 | module.exports = Action; 24 | -------------------------------------------------------------------------------- /game-server/app/domain/area/instance.js: -------------------------------------------------------------------------------- 1 | var Area = require('./area'); 2 | 3 | var Instance = function(opts){ 4 | this.id = opts.instanceId; 5 | this.area = new Area(opts); 6 | this.lifeTime = opts.lifeTime || 1800000; 7 | }; 8 | 9 | module.exports = Instance; 10 | 11 | Instance.prototype.start = function(){ 12 | this.area.start(); 13 | }; 14 | 15 | Instance.prototype.close = function(){ 16 | this.area.close(); 17 | }; 18 | 19 | Instance.prototype.getArea = function(){ 20 | return this.area; 21 | }; 22 | 23 | Instance.prototype.isAlive = function(){ 24 | if(this.area.isEmpty()){ 25 | if((Date.now() - this.area.emptyTime) > this.lifeTime){ 26 | return false; 27 | } 28 | } 29 | return true; 30 | }; 31 | 32 | -------------------------------------------------------------------------------- /game-server/app/domain/area/scene.js: -------------------------------------------------------------------------------- 1 | var Area = require('./area'); 2 | var Map = require('../map/map'); 3 | 4 | var exp = module.exports; 5 | 6 | var area = null; 7 | 8 | exp.init = function(opts){ 9 | if(!area) { 10 | opts.weightMap = true; 11 | opts.map = new Map(opts); 12 | area = new Area(opts); 13 | } 14 | }; 15 | 16 | exp.getArea = function(){ 17 | return area; 18 | }; 19 | -------------------------------------------------------------------------------- /game-server/app/domain/event/npcEvent.js: -------------------------------------------------------------------------------- 1 | var api = require('../../util/dataApi'); 2 | var consts = require('../../consts/consts'); 3 | var messageService = require('./../messageService'); 4 | 5 | var exp = module.exports; 6 | 7 | /** 8 | * Handler npc event 9 | */ 10 | exp.addEventForNPC = function (npc){ 11 | /** 12 | * Hanlde npc talk event 13 | */ 14 | npc.on('onNPCTalk', function(data){ 15 | var npc = data.npc; 16 | var player = data.player; 17 | var talk = api.talk; 18 | var npcTalks = talk.findBy('npc', npc.kindId); 19 | var npcword = 'Welcome to see you!'; 20 | var myword = 'Me too!'; 21 | 22 | if(!!npcTalks && npcTalks.length > 0){ 23 | npcword = npcTalks[0].npcword; 24 | myword = npcTalks[0].myword; 25 | } 26 | 27 | var msg = { 28 | npc : npc.entityId, 29 | npcword : npcword, 30 | myword: myword, 31 | player : player.entityId, 32 | kindId : npc.kindId 33 | }; 34 | 35 | if (consts.TraverseNpc[npc.kindId]) { 36 | npc.traverse('onNPCTalk', msg); 37 | return; 38 | } 39 | 40 | messageService.pushMessageToPlayer({uid:player.userId, sid: player.serverId}, 'onNPCTalk', msg); 41 | }); 42 | }; 43 | -------------------------------------------------------------------------------- /game-server/app/domain/event/playerEvent.js: -------------------------------------------------------------------------------- 1 | var consts = require('../../consts/consts'); 2 | var messageService = require('./../messageService'); 3 | var logger = require('pomelo-logger').getLogger(__filename); 4 | 5 | var exp = module.exports; 6 | 7 | /** 8 | * Handle player event 9 | */ 10 | exp.addEventForPlayer = function (player){ 11 | /** 12 | * Handler upgrade event for player, the message will be pushed only to the one who upgrade 13 | */ 14 | player.on('upgrade', function() { 15 | logger.debug('event.onUpgrade: ' + player.level + ' id: ' + player.id); 16 | var uid = {uid:player.userId, sid : player.serverId}; 17 | messageService.pushMessageToPlayer(uid, 'onUpgrade', player.strip()); 18 | }); 19 | 20 | /** 21 | * Handle pick item event for player, it will invoked when player pick item success 22 | */ 23 | player.on('pickItem', function(args){ 24 | if(args.result !== consts.Pick.SUCCESS){ 25 | logger.debug('Pick Item error! Result : ' + args.result); 26 | return; 27 | } 28 | 29 | var item = args.item; 30 | var player = args.player; 31 | 32 | player.area.removeEntity(item.entityId); 33 | messageService.pushMessageByAOI(player.area, {route: 'onPickItem', player: player.entityId, item: item.entityId, index: args.index}, {x: item.x, y: item.y}); 34 | }); 35 | }; 36 | -------------------------------------------------------------------------------- /game-server/app/domain/map/zone.js: -------------------------------------------------------------------------------- 1 | var util = require('util'); 2 | var EventEmitter = require('events').EventEmitter; 3 | 4 | var id = 0; 5 | 6 | /** 7 | * The origint zone object 8 | */ 9 | var Zone = function(opts) { 10 | this.zoneId = id++; 11 | this.width = opts.width; 12 | this.height = opts.height; 13 | this.x = opts.x; 14 | this.y = opts.y; 15 | this.area = opts.area; 16 | }; 17 | 18 | util.inherits(Zone, EventEmitter); 19 | 20 | /** 21 | * Update the zone, the funciton is time driven 22 | */ 23 | Zone.prototype.update = function() { 24 | }; 25 | 26 | /** 27 | * Remove an entity from the zone, default function will do nothing 28 | */ 29 | Zone.prototype.remove = function() { 30 | }; 31 | 32 | module.exports = Zone; 33 | -------------------------------------------------------------------------------- /game-server/app/domain/messageService.js: -------------------------------------------------------------------------------- 1 | var pomelo = require('pomelo'); 2 | var logger = require('pomelo-logger').getLogger(__filename); 3 | var EntityType = require('../consts/consts').EntityType; 4 | 5 | var exp = module.exports; 6 | 7 | exp.pushMessageByUids = function (uids, route, msg) { 8 | pomelo.app.get('channelService').pushMessageByUids(route, msg, uids, errHandler); 9 | }; 10 | 11 | exp.pushMessageToPlayer = function (uid, route, msg) { 12 | exp.pushMessageByUids([uid], route, msg); 13 | }; 14 | 15 | exp.pushMessageByAOI = function (area, msg, pos, ignoreList) { 16 | var uids = area.timer.getWatcherUids(pos, [EntityType.PLAYER], ignoreList); 17 | 18 | if (uids.length > 0) { 19 | exp.pushMessageByUids(uids, msg.route, msg); 20 | } 21 | }; 22 | 23 | function errHandler(err, fails){ 24 | if(!!err){ 25 | logger.error('Push Message error! %j', err.stack); 26 | } 27 | } -------------------------------------------------------------------------------- /game-server/app/domain/persistent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Module dependencies 3 | */ 4 | var EventEmitter = require('events').EventEmitter; 5 | var util = require('util'); 6 | 7 | /** 8 | * Persistent object, it is saved in database 9 | * 10 | * @param {Object} opts 11 | * @api public 12 | */ 13 | var Persistent = function(opts) { 14 | this.id = opts.id; 15 | this.type = opts.type; 16 | EventEmitter.call(this); 17 | }; 18 | 19 | util.inherits(Persistent, EventEmitter); 20 | 21 | module.exports = Persistent; 22 | // Emit the event 'save' 23 | Persistent.prototype.save = function() { 24 | this.emit('save'); 25 | }; 26 | 27 | -------------------------------------------------------------------------------- /game-server/app/domain/user.js: -------------------------------------------------------------------------------- 1 | /** 2 | *Module dependencies 3 | */ 4 | 5 | var util = require('util'); 6 | 7 | /** 8 | * Initialize a new 'User' with the given 'opts'. 9 | * 10 | * @param {Object} opts 11 | * @api public 12 | */ 13 | 14 | var User = function(opts) { 15 | this.id = opts.id; 16 | this.name = opts.name; 17 | this.from = opts.from || ''; 18 | this.password = opts.password; 19 | this.loginCount = opts.loginCount; 20 | this.lastLoginTime = opts.lastLoginTime; 21 | }; 22 | 23 | /** 24 | * Expose 'Entity' constructor 25 | */ 26 | 27 | module.exports = User; 28 | -------------------------------------------------------------------------------- /game-server/app/patrol/mode/composite.js: -------------------------------------------------------------------------------- 1 | var patrol = require('../patrol'); 2 | 3 | /** 4 | * Composite mode: compose children and invoke them one by one. 5 | */ 6 | var Mode = function() { 7 | this.children = []; 8 | this.index = 0; 9 | }; 10 | 11 | module.exports = Mode; 12 | 13 | var pro = Mode.prototype; 14 | 15 | pro.add = function(mode) { 16 | this.children.push(mode); 17 | }; 18 | 19 | pro.update = function() { 20 | if(this.index >= this.children.length) { 21 | return patrol.RES_FINISH; 22 | } 23 | 24 | var child = this.children[this.index]; 25 | var res = child.update(); 26 | if(res === patrol.RES_WAIT) { 27 | return res; 28 | } 29 | 30 | this.index++; 31 | return this.update(); 32 | }; 33 | -------------------------------------------------------------------------------- /game-server/app/patrol/mode/single.js: -------------------------------------------------------------------------------- 1 | var patrol = require('../patrol'); 2 | 3 | /** 4 | * Single mode: move the character on the path given once. 5 | * 6 | * @param opts 7 | * opts.character {Character} current character 8 | * opts.path {Array} pos array 9 | */ 10 | var Mode = function(opts) { 11 | this.character = opts.character; 12 | this.path = opts.path.slice(0); 13 | this.started = false; 14 | }; 15 | 16 | module.exports = Mode; 17 | 18 | var pro = Mode.prototype; 19 | 20 | pro.update = function() { 21 | if(this.path.length === 0) { 22 | //if path is empty 23 | return patrol.RES_FINISH; 24 | } 25 | 26 | if(!this.started) { 27 | this.character.move(this.path[0].x, this.path[0].y); 28 | this.started = true; 29 | return patrol.RES_WAIT; 30 | } 31 | 32 | var dest = this.path[0]; 33 | if(this.character.x !== dest.x || this.character.y !== dest.y) { 34 | //if i am on the road to dest 35 | return patrol.RES_WAIT; 36 | } 37 | 38 | this.path.shift(); 39 | 40 | if(this.path.length === 0) { 41 | return patrol.RES_FINISH; 42 | } 43 | 44 | //move to next destination 45 | this.character.move(this.path[0].x, this.path[0].y); 46 | return patrol.RES_WAIT; 47 | }; 48 | -------------------------------------------------------------------------------- /game-server/app/patrol/mode/wait.js: -------------------------------------------------------------------------------- 1 | var patrol = require('../patrol'); 2 | 3 | /** 4 | * Wait mode: wait ticks and then return finish. 5 | */ 6 | var Mode = function(opts) { 7 | this.tick = opts.tick||1; 8 | }; 9 | 10 | module.exports = Mode; 11 | 12 | var pro = Mode.prototype; 13 | 14 | pro.update = function() { 15 | if(!this.tick) { 16 | return patrol.RES_FINISH; 17 | } 18 | 19 | this.tick--; 20 | return patrol.RES_WAIT; 21 | }; 22 | -------------------------------------------------------------------------------- /game-server/app/patrol/patrol.js: -------------------------------------------------------------------------------- 1 | var PatrolManager = require('./service/patrolManager'); 2 | var exp = module.exports; 3 | 4 | exp.RES_FINISH = 0; 5 | exp.RES_WAIT = 1; 6 | 7 | exp.createManager = function() { 8 | return new PatrolManager(); 9 | }; -------------------------------------------------------------------------------- /game-server/app/servers/area/filter/playerFilter.js: -------------------------------------------------------------------------------- 1 | var logger = require('pomelo-logger').getLogger(__filename); 2 | var pomelo = require('pomelo'); 3 | 4 | module.exports = function() { 5 | return new Filter(); 6 | }; 7 | 8 | var Filter = function() { 9 | }; 10 | 11 | /** 12 | * Area filter 13 | */ 14 | Filter.prototype.before = function(msg, session, next){ 15 | var area = pomelo.app.areaManager.getArea(session.get('instanceId')); 16 | session.area = area; 17 | var player = area.getPlayer(session.get('playerId')); 18 | 19 | if(!player){ 20 | var route = msg.__route__; 21 | 22 | if(route.search(/^area\.resourceHandler/i) == 0 || route.search(/enterScene$/i) >= 0){ 23 | next(); 24 | return; 25 | }else{ 26 | next(new Error('No player exist!')); 27 | return; 28 | } 29 | } 30 | 31 | if(player.died){ 32 | next(new Error("You can't move a dead man!!!")); 33 | return; 34 | } 35 | 36 | next(); 37 | }; -------------------------------------------------------------------------------- /game-server/app/servers/area/remote/areaRemote.js: -------------------------------------------------------------------------------- 1 | var utils = require('../../../util/utils'); 2 | var instancePool = require('../../../domain/area/instancePool'); 3 | var logger = require('pomelo-logger').getLogger(__filename); 4 | 5 | var exp = module.exports; 6 | 7 | exp.create = function(params, cb){ 8 | var start = Date.now(); 9 | var result = instancePool.create(params); 10 | var end = Date.now(); 11 | logger.info('create instance use time : %j', end - start); 12 | 13 | utils.invokeCallback(cb, null, result); 14 | }; 15 | 16 | exp.close = function(params, cb){ 17 | var id = params.id; 18 | var result = instancePool.close(id); 19 | 20 | utils.invokeCallback(cb, null, result); 21 | }; 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /game-server/app/servers/chat/remote/chatRemote.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app) { 2 | return new ChatRemote(app, app.get('chatService')); 3 | }; 4 | 5 | var ChatRemote = function(app, chatService) { 6 | this.app = app; 7 | this.chatService = chatService; 8 | }; 9 | 10 | /** 11 | * Add player into channel 12 | */ 13 | ChatRemote.prototype.add = function(uid, playerName, channelName, cb) { 14 | var code = this.chatService.add(uid, playerName, channelName); 15 | cb(null, code); 16 | }; 17 | 18 | /** 19 | * leave Channel 20 | * uid 21 | * channelName 22 | */ 23 | ChatRemote.prototype.leave =function(uid, channelName, cb){ 24 | this.chatService(uid, channelName); 25 | cb(); 26 | }; 27 | 28 | /** 29 | * kick out user 30 | * 31 | */ 32 | ChatRemote.prototype.kick = function(uid, cb){ 33 | this.chatService.kick(uid); 34 | cb(); 35 | }; 36 | -------------------------------------------------------------------------------- /game-server/app/servers/connector/handler/timeSyncHandler.js: -------------------------------------------------------------------------------- 1 | var consts = require('../../../consts/consts'); 2 | var handler = module.exports; 3 | 4 | handler.timeSync = function(msg, session, next) { 5 | next(null, {code: consts.MESSAGE.RES}); 6 | }; 7 | -------------------------------------------------------------------------------- /game-server/app/servers/gate/handler/gateHandler.js: -------------------------------------------------------------------------------- 1 | var Code = require('../../../../../shared/code'); 2 | var dispatcher = require('../../../util/dispatcher'); 3 | 4 | /** 5 | * Gate handler that dispatch user to connectors. 6 | */ 7 | module.exports = function(app) { 8 | return new Handler(app); 9 | }; 10 | 11 | var Handler = function(app) { 12 | this.app = app; 13 | }; 14 | 15 | Handler.prototype.queryEntry = function(msg, session, next) { 16 | var uid = msg.uid; 17 | if(!uid) { 18 | next(null, {code: Code.FAIL}); 19 | return; 20 | } 21 | 22 | var connectors = this.app.getServersByType('connector'); 23 | if(!connectors || connectors.length === 0) { 24 | next(null, {code: Code.GATE.NO_SERVER_AVAILABLE}); 25 | return; 26 | } 27 | 28 | var res = dispatcher.dispatch(uid, connectors); 29 | next(null, {code: Code.OK, host: res.host, port: res.clientPort}); 30 | // next(null, {code: Code.OK, host: res.pubHost, port: res.clientPort}); 31 | }; -------------------------------------------------------------------------------- /game-server/app/servers/manager/remote/instanceRemote.js: -------------------------------------------------------------------------------- 1 | var utils = require('../../../util/utils'); 2 | var instanceManager = require('../../../services/instanceManager'); 3 | var exp = module.exports; 4 | 5 | var logger = require('pomelo-logger').getLogger(__filename); 6 | 7 | exp.create = function(params, cb){ 8 | logger.error('create server params : %j', params); 9 | instanceManager.getInstance(params, function(err, result){ 10 | if(err){ 11 | logger.error('create instance error! args : %j, err : %j', params, err); 12 | utils.invokeCallback(cb, err); 13 | }else{ 14 | utils.invokeCallback(cb, null, result); 15 | } 16 | }); 17 | }; 18 | 19 | exp.remove = function(id, cb){ 20 | instanceManager.remove(id); 21 | 22 | utils.invokeCallback(cb, null, id); 23 | }; 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /game-server/app/servers/path/remote/pathFindingRemote.js: -------------------------------------------------------------------------------- 1 | var Map = require('../../../domain/map/map'); 2 | var dataApi = require('../../../util/dataApi'); 3 | var utils = require('../../../util/utils'); 4 | var exp = module.exports; 5 | 6 | module.exports = function(app){ 7 | return new Remote(); 8 | }; 9 | 10 | var Remote = function(){ 11 | this.maps = {}; 12 | var areasConfig = dataApi.area.all(); 13 | 14 | for(var key in areasConfig){ 15 | //init map 16 | var areaConfig = areasConfig[key]; 17 | areaConfig.weightMap = true; 18 | this.maps[areaConfig.id] = new Map(areaConfig); 19 | } 20 | } 21 | 22 | Remote.prototype.findPath = function(args, cb){ 23 | var start = args.start; 24 | var end = args.end; 25 | var areaId = args.areaId; 26 | 27 | var map = this.maps[areaId]; 28 | 29 | if(!map){ 30 | utils.invokeCallback(cb, 'no map exist'); 31 | return; 32 | } 33 | 34 | var path = map.findPath(start.x, start.y, end.x, end.y); 35 | 36 | if(!path){ 37 | utils.invokeCallback(cb, 'find path error!'); 38 | }else{ 39 | utils.invokeCallback(cb, null, path); 40 | } 41 | }; 42 | 43 | -------------------------------------------------------------------------------- /game-server/app/util/channelUtil.js: -------------------------------------------------------------------------------- 1 | var ChannelUtil = module.exports; 2 | 3 | var GLOBAL_CHANNEL_NAME = 'pomelo'; 4 | var AREA_CHANNEL_PREFIX = 'area_'; 5 | var TEAM_CHANNEL_PREFIX = 'team_'; 6 | 7 | ChannelUtil.getGlobalChannelName = function() { 8 | return GLOBAL_CHANNEL_NAME; 9 | }; 10 | 11 | ChannelUtil.getAreaChannelName = function(areaId) { 12 | return AREA_CHANNEL_PREFIX + areaId; 13 | }; 14 | 15 | ChannelUtil.getTeamChannelName = function(teamId) { 16 | return TEAM_CHANNEL_PREFIX + teamId; 17 | }; -------------------------------------------------------------------------------- /game-server/app/util/dispatcher.js: -------------------------------------------------------------------------------- 1 | var crc = require('crc'); 2 | 3 | module.exports.dispatch = function(uid, connectors) { 4 | var index = Number(uid) % connectors.length; 5 | return connectors[index]; 6 | }; 7 | -------------------------------------------------------------------------------- /game-server/app/util/routeUtil.js: -------------------------------------------------------------------------------- 1 | var exp = module.exports; 2 | 3 | exp.area = function(session, msg, app, cb) { 4 | var serverId = session.get('serverId'); 5 | 6 | if(!serverId) { 7 | cb(new Error('can not find server info for type: ' + msg.serverType)); 8 | return; 9 | } 10 | 11 | cb(null, serverId); 12 | }; 13 | 14 | exp.connector = function(session, msg, app, cb) { 15 | if(!session) { 16 | cb(new Error('fail to route to connector server for session is empty')); 17 | return; 18 | } 19 | 20 | if(!session.frontendId) { 21 | cb(new Error('fail to find frontend id in session')); 22 | return; 23 | } 24 | 25 | cb(null, session.frontendId); 26 | }; 27 | -------------------------------------------------------------------------------- /game-server/bin/build.sh: -------------------------------------------------------------------------------- 1 | cd node_modules/pomelo/node_modules/pomelo-admin/node_modules/v8-profiler/ && node-waf configure && node-waf build && cd ../../../../ 2 | -------------------------------------------------------------------------------- /game-server/bin/file.txt: -------------------------------------------------------------------------------- 1 | ../public/css/client.css 2 | ../public/js/config.js 3 | -------------------------------------------------------------------------------- /game-server/bin/replaceip: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | logfile="rsync.log" 3 | errlog="errsysn.log" 4 | 5 | src=127.0.0.1:3000 6 | dest=172.31.133.110:81 7 | 8 | replace() { 9 | file="$1" 10 | 11 | echo >> $logfile 12 | echo "############################################" >> $logfile 13 | echo "`date '+%F %T'` start to replace to $file..." >> $logfile 14 | 15 | sed -i 's/'$src'/'$dest'/g' $file >> $logfile 2>$errlog 16 | 17 | 18 | } 19 | 20 | 21 | for i in $(cat file.txt) ;do 22 | 23 | replace $i 24 | 25 | done 26 | -------------------------------------------------------------------------------- /game-server/bin/shutdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | kill -9 `ps -ef|grep node | awk '{print $2}'` 3 | -------------------------------------------------------------------------------- /game-server/bin/update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | git reset public HEAD^ 3 | git checkout public 4 | cd ../ && git pull 5 | -------------------------------------------------------------------------------- /game-server/config/animation_json/201.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":188,"width":166,"totalFrame":24},"LeftDownDead":{"height":172,"width":166,"totalFrame":24},"LeftDownStand":{"height":173,"width":166,"totalFrame":8},"LeftDownWalk":{"height":173,"width":166,"totalFrame":8},"LeftUpAttack":{"height":187,"width":166,"totalFrame":24},"LeftUpDead":{"height":187,"width":166,"totalFrame":24},"LeftUpStand":{"height":188,"width":166,"totalFrame":8},"LeftUpWalk":{"height":188,"width":166,"totalFrame":8},"RightUpAttack":{"height":187,"width":166,"totalFrame":24},"RightUpDead":{"height":187,"width":166,"totalFrame":24},"RightUpStand":{"height":173,"width":166,"totalFrame":8},"RightUpWalk":{"height":173,"width":166,"totalFrame":8},"RightDownAttack":{"height":184,"width":166,"totalFrame":24},"RightDownDead":{"height":187,"width":166,"totalFrame":24},"RightDownStand":{"height":173,"width":166,"totalFrame":8},"RightDownWalk":{"height":173,"width":166,"totalFrame":8}} -------------------------------------------------------------------------------- /game-server/config/animation_json/202.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":169,"width":166,"totalFrame":24},"LeftDownDead":{"height":169,"width":166,"totalFrame":24},"LeftDownStand":{"height":169,"width":166,"totalFrame":8},"LeftDownWalk":{"height":169,"width":166,"totalFrame":8},"LeftUpAttack":{"height":169,"width":166,"totalFrame":24},"LeftUpDead":{"height":169,"width":166,"totalFrame":24},"LeftUpStand":{"height":169,"width":166,"totalFrame":8},"LeftUpWalk":{"height":169,"width":166,"totalFrame":8},"RightUpAttack":{"height":169,"width":166,"totalFrame":24},"RightUpDead":{"height":169,"width":166,"totalFrame":24},"RightUpStand":{"height":169,"width":166,"totalFrame":8},"RightUpWalk":{"height":169,"width":166,"totalFrame":8},"RightDownAttack":{"height":169,"width":166,"totalFrame":24},"RightDownDead":{"height":169,"width":166,"totalFrame":24},"RightDownStand":{"height":169,"width":166,"totalFrame":8},"RightDownWalk":{"height":169,"width":166,"totalFrame":8}} -------------------------------------------------------------------------------- /game-server/config/animation_json/203.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":326,"width":249,"totalFrame":24}, 2 | "LeftDownDead":{"height":253,"width":249,"totalFrame":24}, 3 | "LeftDownStand":{"height":253,"width":249,"totalFrame":16}, 4 | "LeftDownWalk":{"height":254,"width":249,"totalFrame":8}, 5 | "LeftUpAttack":{"height":253,"width":249,"totalFrame":24}, 6 | "LeftUpDead":{"height":253,"width":249,"totalFrame":24}, 7 | "LeftUpStand":{"height":253,"width":249,"totalFrame":16}, 8 | "LeftUpWalk":{"height":254,"width":249,"totalFrame":8}, 9 | "RightUpAttack":{"height":253,"width":249,"totalFrame":24}, 10 | "RightUpDead":{"height":253,"width":249,"totalFrame":24}, 11 | "RightUpStand":{"height":253,"width":249,"totalFrame":16}, 12 | "RightUpWalk":{"height":254,"width":249,"totalFrame":8}, 13 | "RightDownAttack":{"height":253,"width":249,"totalFrame":24}, 14 | "RightDownDead":{"height":253,"width":249,"totalFrame":24}, 15 | "RightDownStand":{"height":253,"width":249,"totalFrame":16}, 16 | "RightDownWalk":{"height":254,"width":249,"totalFrame":8}} 17 | -------------------------------------------------------------------------------- /game-server/config/animation_json/204.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":344,"width":500,"totalFrame":24},"LeftDownDead":{"height":347,"width":500,"totalFrame":8},"LeftDownStand":{"height":505,"width":500,"totalFrame":16},"LeftDownWalk":{"height":415,"width":500,"totalFrame":16},"LeftUpAttack":{"height":296,"width":500,"totalFrame":24},"LeftUpDead":{"height":396,"width":500,"totalFrame":8},"LeftUpStand":{"height":415,"width":500,"totalFrame":16},"LeftUpWalk":{"height":415,"width":500,"totalFrame":16},"RightUpAttack":{"height":393,"width":500,"totalFrame":24},"RightUpDead":{"height":396,"width":500,"totalFrame":8},"RightUpStand":{"height":394,"width":500,"totalFrame":16},"RightDownAttack":{"height":356,"width":500,"totalFrame":24},"RightDownDead":{"height":358,"width":500,"totalFrame":8},"RightDownStand":{"height":410,"width":500,"totalFrame":16},"RightDownWalk":{"height":382,"width":500,"totalFrame":16}} -------------------------------------------------------------------------------- /game-server/config/animation_json/205.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":141,"width":166,"totalFrame":16},"LeftDownDead":{"height":141,"width":166,"totalFrame":16},"LeftDownStand":{"height":141,"width":166,"totalFrame":16},"LeftDownWalk":{"height":141,"width":166,"totalFrame":16},"LeftUpAttack":{"height":141,"width":166,"totalFrame":16},"LeftUpDead":{"height":141,"width":166,"totalFrame":16},"LeftUpStand":{"height":141,"width":166,"totalFrame":16},"LeftUpWalk":{"height":141,"width":166,"totalFrame":16},"RightUpAttack":{"height":141,"width":166,"totalFrame":16},"RightUpDead":{"height":141,"width":166,"totalFrame":16},"RightUpStand":{"height":141,"width":166,"totalFrame":16},"RightUpWalk":{"height":141,"width":166,"totalFrame":16},"RightDownAttack":{"height":141,"width":166,"totalFrame":16},"RightDownDead":{"height":141,"width":166,"totalFrame":16},"RightDownStand":{"height":141,"width":166,"totalFrame":16},"RightDownWalk":{"height":141,"width":166,"totalFrame":16}} -------------------------------------------------------------------------------- /game-server/config/animation_json/206.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":148,"width":166,"totalFrame":24}, 2 | "LeftDownDead":{"height":149,"width":166,"totalFrame":8}, 3 | "LeftDownStand":{"height":149,"width":166,"totalFrame":16}, 4 | "LeftDownWalk":{"height":149,"width":166,"totalFrame":16}, 5 | "LeftUpAttack":{"height":148,"width":166,"totalFrame":24}, 6 | "LeftUpDead":{"height":149,"width":166,"totalFrame":8}, 7 | "LeftUpStand":{"height":149,"width":166,"totalFrame":16}, 8 | "LeftUpWalk":{"height":149,"width":166,"totalFrame":16}, 9 | "RightUpAttack":{"height":148,"width":166,"totalFrame":24}, 10 | "RightUpDead":{"height":149,"width":166,"totalFrame":8}, 11 | "RightUpStand":{"height":149,"width":166,"totalFrame":16}, 12 | "RightUpWalk":{"height":149,"width":166,"totalFrame":16}, 13 | "RightDownAttack":{"height":148,"width":166,"totalFrame":24}, 14 | "RightDownDead":{"height":149,"width":166,"totalFrame":8}, 15 | "RightDownStand":{"height":149,"width":166,"totalFrame":16}, 16 | "RightDownWalk":{"height":149,"width":166,"totalFrame":16}} 17 | -------------------------------------------------------------------------------- /game-server/config/animation_json/207.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":141,"width":166,"totalFrame":16},"LeftDownDead":{"height":142,"width":166,"totalFrame":8},"LeftDownStand":{"height":141,"width":166,"totalFrame":12},"LeftDownWalk":{"height":142,"width":166,"totalFrame":8},"LeftUpAttack":{"height":141,"width":166,"totalFrame":16},"LeftUpDead":{"height":142,"width":166,"totalFrame":8},"LeftUpStand":{"height":141,"width":166,"totalFrame":12},"LeftUpWalk":{"height":142,"width":166,"totalFrame":8},"RightUpAttack":{"height":141,"width":166,"totalFrame":16},"RightUpDead":{"height":142,"width":166,"totalFrame":8},"RightUpStand":{"height":141,"width":166,"totalFrame":12},"RightUpWalk":{"height":142,"width":166,"totalFrame":8},"RightDownAttack":{"height":141,"width":166,"totalFrame":16},"RightDownDead":{"height":142,"width":166,"totalFrame":8},"RightDownStand":{"height":141,"width":166,"totalFrame":12},"RightDownWalk":{"height":142,"width":166,"totalFrame":8}} -------------------------------------------------------------------------------- /game-server/config/animation_json/208.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":191,"width":225,"totalFrame":24},"LeftDownDead":{"height":191,"width":225,"totalFrame":12},"LeftDownStand":{"height":192,"width":225,"totalFrame":16},"LeftDownWalk":{"height":191,"width":225,"totalFrame":12},"LeftUpAttack":{"height":191,"width":225,"totalFrame":24},"LeftUpDead":{"height":191,"width":225,"totalFrame":12},"LeftUpStand":{"height":191,"width":225,"totalFrame":16},"LeftUpWalk":{"height":191,"width":225,"totalFrame":12},"RightUpAttack":{"height":191,"width":225,"totalFrame":24},"RightUpDead":{"height":191,"width":225,"totalFrame":12},"RightUpStand":{"height":191,"width":225,"totalFrame":16},"RightUpWalk":{"height":191,"width":225,"totalFrame":12},"RightDownAttack":{"height":212,"width":250,"totalFrame":24},"RightDownDead":{"height":212,"width":250,"totalFrame":12},"RightDownStand":{"height":212,"width":250,"totalFrame":16},"RightDownWalk":{"height":212,"width":250,"totalFrame":12}} -------------------------------------------------------------------------------- /game-server/config/animation_json/209.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":141,"width":166,"totalFrame":16} 2 | ,"LeftDownDead":{"height":141,"width":166,"totalFrame":16} 3 | ,"LeftDownStand":{"height":141,"width":166,"totalFrame":8} 4 | ,"LeftDownWalk":{"height":141,"width":166,"totalFrame":8} 5 | ,"LeftUpAttack":{"height":141,"width":166,"totalFrame":16} 6 | ,"LeftUpDead":{"height":141,"width":166,"totalFrame":16} 7 | ,"LeftUpStand":{"height":141,"width":166,"totalFrame":8} 8 | ,"LeftUpWalk":{"height":141,"width":166,"totalFrame":8} 9 | ,"RightUpAttack":{"height":141,"width":166,"totalFrame":16} 10 | ,"RightUpDead":{"height":141,"width":166,"totalFrame":16} 11 | ,"RightUpStand":{"height":141,"width":166,"totalFrame":8} 12 | ,"RightUpWalk":{"height":141,"width":166,"totalFrame":8} 13 | ,"RightDownAttack":{"height":141,"width":166,"totalFrame":16} 14 | ,"RightDownDead":{"height":141,"width":166,"totalFrame":16} 15 | ,"RightDownStand":{"height":141,"width":166,"totalFrame":8} 16 | ,"RightDownWalk":{"height":141,"width":166,"totalFrame":8}} 17 | -------------------------------------------------------------------------------- /game-server/config/animation_json/210.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":161,"width":166,"totalFrame":24}, 2 | "LeftDownDead":{"height":137,"width":166,"totalFrame":24}, 3 | "LeftDownStand":{"height":103,"width":83,"totalFrame":12}, 4 | "LeftDownWalk":{"height":137,"width":166,"totalFrame":16}, 5 | "LeftUpAttack":{"height":129,"width":166,"totalFrame":24}, 6 | "LeftUpDead":{"height":129,"width":166,"totalFrame":24}, 7 | "LeftUpStand":{"height":78,"width":83,"totalFrame":12}, 8 | "LeftUpWalk":{"height":129,"width":166,"totalFrame":16}, 9 | "RightUpAttack":{"height":163,"width":166,"totalFrame":24}, 10 | "RightUpDead":{"height":129,"width":166,"totalFrame":24}, 11 | "RightUpStand":{"height":97,"width":83,"totalFrame":12}, 12 | "RightUpWalk":{"height":129,"width":166,"totalFrame":16}, 13 | "RightDownAttack":{"height":136,"width":166,"totalFrame":24}, 14 | "RightDownDead":{"height":136,"width":166,"totalFrame":24}, 15 | "RightDownStand":{"height":102,"width":83,"totalFrame":12}, 16 | "RightDownWalk":{"height":136,"width":166,"totalFrame":16}} 17 | -------------------------------------------------------------------------------- /game-server/config/animation_json/211.json: -------------------------------------------------------------------------------- 1 | {"LeftDownAttack":{"height":167,"width":166,"totalFrame":16},"LeftDownDead":{"height":167,"width":166,"totalFrame":12},"LeftDownStand":{"height":168,"width":166,"totalFrame":4},"LeftDownWalk":{"height":168,"width":166,"totalFrame":8},"LeftUpAttack":{"height":167,"width":166,"totalFrame":16},"LeftUpDead":{"height":167,"width":166,"totalFrame":12},"LeftUpStand":{"height":168,"width":166,"totalFrame":4},"LeftUpWalk":{"height":168,"width":166,"totalFrame":8},"RightUpAttack":{"height":167,"width":166,"totalFrame":16},"RightUpDead":{"height":167,"width":166,"totalFrame":12},"RightUpStand":{"height":168,"width":166,"totalFrame":4},"RightUpWalk":{"height":168,"width":166,"totalFrame":8},"RightDownAttack":{"height":167,"width":166,"totalFrame":16},"RightDownDead":{"height":167,"width":166,"totalFrame":12},"RightDownStand":{"height":168,"width":166,"totalFrame":4},"RightDownWalk":{"height":168,"width":166,"totalFrame":8}} -------------------------------------------------------------------------------- /game-server/config/clientProtos.json: -------------------------------------------------------------------------------- 1 | { 2 | "area.fightHandler.attack" : { 3 | "required uInt32 targetId" : 1 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /game-server/config/data/area.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["区域id","名称","类型","区域名","等级","宽","高","数据地址","灯塔宽度","灯塔高度"], 3 | ["id","name","type","areaName","level","width","height","path","towerWidth","towerHeight"], 4 | ["1","desert",1,"沙漠",0,4200,2800,"/config/map/desert.json",300,300], 5 | ["2","oasis",1,"绿洲",20,6000,4000,"/config/map/oasis.json",300,300], 6 | ["3","ice",1,"极地",50,6500,4800,"/config/map/ice.json",300,300], 7 | ["4","/instance/arena",2,"竞技场",10,1600,1100,"/config/map/arena.json",300,300], 8 | ["5","/instance/path",3,"山洞",60,2560,1440,"/config/map/paths.json",300,300] 9 | ] -------------------------------------------------------------------------------- /game-server/config/data/character.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["id","名字","英文名","怪物级别","初始血量","初始魔法","初始攻","初始防","命中率","闪避率","攻击速度","行走速度","升级系数","基础经验值",""], 3 | ["id","name","englishName","level","hp","mp","attackValue","defenceValue","hitRate","dodgeRate","attackSpeed","walkSpeed","upgradeParam","baseExp",""], 4 | [210,"天使","Angle","1",220,20,23,"9",90,13,"1.2",240,0.3,20,""], 5 | [211,"炼金术士","Alchemist","1",180,60,18,12,95,10,"1.2",240,0.3,20,""], 6 | [201,"蜻蜓","Dragonfly","1",180,40,25,"8",90,15,"1",260,0.25,20,""], 7 | [202,"鸟面人","Harpy","1",60,40,15,"8",90,10,"1",160,0.3,10,""], 8 | [208,"独角仙","Unicorn Beetle","1",1600,40,30,18,90,10,"1",200,0.24,150,""], 9 | [206,"椰子怪","Coconut monster","1",300,40,22,13,90,10,"1",180,0.23,30,""], 10 | [209,"食人花","Corpse flower","1",120,40,20,"8",90,"5","1",220,0.2,15,""], 11 | [204,"蓝龙","BlueDragon","3",6000,40,40,28,90,0,0.6,180,0.27,500,""], 12 | [207,"石头怪","Rock","3",800,40,32,25,70,10,0.6,180,0.25,45,""], 13 | [205,"甲虫","Beetle","3",600,40,32,20,90,10,"1",220,0.25,55,""], 14 | [203,"灯泡龙","Bulb Dragon","3",15000,40,45,25,200,50,"1.8",360,0.28,2500,""] 15 | ] 16 | -------------------------------------------------------------------------------- /game-server/config/data/item.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["id","名称","英文名称","描述","英文描述","类型","加血","加气","价格","英雄等级","图片id"], 3 | ["id","name","englishName","desc","englishDesc","kind","hp","mp","price","heroLevel","imgId"], 4 | ["1","草莓","Strawberry","","","food",100,0,10,"1",10164], 5 | ["2","桃","Peach","","","food",300,0,20,"5",10165], 6 | ["3","鸡蛋","Eggs","","","food",500,0,40,10,12120], 7 | ["4","四叶花","Lucky Clover","","Clover with four leaves.","medicine",700,50,50,15,12217], 8 | ["5","止血草","Hemostasis Grass","","","medicine",900,100,60,20,12216], 9 | ["6","饼干","Biscuit","","","food",1100,0,70,28,21001], 10 | ["7","玉米","Corn","","","food",1300,0,80,36,21301], 11 | ["8","牛肉","Beef","","","food",1500,0,100,44,21601], 12 | ["9","烤翅","Roasted Wing","","","food",1700,0,140,52,22701], 13 | [10,"鸡腿","Drumstick","","","food",2000,0,150,60,27013], 14 | [11,"饺子","Dumplings","","","food",2500,0,160,70,27014], 15 | [12,"糖葫芦","Sugarcoated Haws","","","food",3000,0,200,80,27061], 16 | [13,"人参","Ginseng","","","medicine",5000,200,500,90,28006] 17 | ] 18 | -------------------------------------------------------------------------------- /game-server/config/data/npc.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["编号","名字","英文名","类型"], 3 | ["id","name","englishName","kindType"], 4 | [301,"Alzhara","Alzhara","1"], 5 | [302,"Illidan","Illidan","1"], 6 | [303,"Malygos","Malygos",0], 7 | [304,"Muradin","Muradin",0], 8 | [305,"Antonidas","Antonidas","1"], 9 | [306,"Mannoroth","Mannoroth","1"], 10 | [307,"Tyrande","Tyrande",0], 11 | [308,"Ysera","Ysera",0], 12 | [309,"Aran","Aran","1"], 13 | [310,"Khadgar","Khadgar",0], 14 | [311,"Ogrim","Ogrim",0], 15 | [312,"Thrall","Thrall",0] 16 | ] 17 | -------------------------------------------------------------------------------- /game-server/config/data/rank.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["id","name","level"], 3 | ["id","名称","等级"], 4 | ["1","江湖小虾","1"], 5 | ["2","明日之星",10], 6 | ["3","武林高手",20], 7 | ["4","绝世奇才",30], 8 | ["5","威震三界",40], 9 | ["6","盖世英雄",50] 10 | ] 11 | -------------------------------------------------------------------------------- /game-server/config/data/role.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["id","名字","职业","国籍"], 3 | ["id","name","career","country"], 4 | [1001,"神天兵","剑客","仙"], 5 | [1007,"英女侠","剑客","人"], 6 | [1020,"龙太子","剑客","仙"], 7 | [1022,"巨魔王","剑客","魔"], 8 | [1024,"骨精灵","刀客","魔"], 9 | [1025,"剑侠客","刀客","人"], 10 | [1026,"虎头怪","刀客","魔"], 11 | [1027,"逍遥生","刀客","仙"], 12 | [1028,"玄彩娥","法师","仙"], 13 | [1029,"飞燕女","法师","人"], 14 | [1030,"狐美人","法师","魔"], 15 | [1031,"舞天姬","法师","人"] 16 | ] 17 | -------------------------------------------------------------------------------- /game-server/config/data/team.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["队名编号", "队名"], 3 | ["id", "teamName"], 4 | ["1", "Gone With the Wind"], 5 | ["2", "Casablanca"], 6 | ["3", "Pirates of the Caribbean"], 7 | ["4", "The Lord of the Rings"], 8 | ["5", "The Fast and the Furious"] 9 | ] 10 | -------------------------------------------------------------------------------- /game-server/config/dictionary.json: -------------------------------------------------------------------------------- 1 | [ 2 | "onDropItem", 3 | "onAttack", 4 | "onDied", 5 | "onMove", 6 | "onUpgrage", 7 | "onPickItem", 8 | "onRevive", 9 | "addEntities", 10 | "onRemoveEntities", 11 | "onPathCheckout" 12 | ] -------------------------------------------------------------------------------- /game-server/config/instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "lifeTime" : 1800000, 3 | "interval" : 60000 4 | } -------------------------------------------------------------------------------- /game-server/config/master.json: -------------------------------------------------------------------------------- 1 | { 2 | "development":{ 3 | "id": "master-server-1", "host": "127.0.0.1", "port": 3005 4 | }, 5 | 6 | "production": 7 | { 8 | "id": "master-server-1", "host": "pomelo3.server.163.org", "port": 3005 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /game-server/config/scheduler.json: -------------------------------------------------------------------------------- 1 | { 2 | "area-server-1":[ 3 | ], 4 | "area-server-2":[ 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /game-server/config/session.json: -------------------------------------------------------------------------------- 1 | { 2 | "secret": "pomelo_session_secret", 3 | "expire": -1 4 | } -------------------------------------------------------------------------------- /game-server/logs/tmp: -------------------------------------------------------------------------------- 1 | development:false -------------------------------------------------------------------------------- /game-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lord_of_pomelo", 3 | "version": "0.2.2", 4 | "private": false, 5 | "dependencies": { 6 | "express": "2.5.2" 7 | , "connect": ">=0.0.1" 8 | , "socket.io": ">=0.9.6" 9 | , "generic-pool": ">=1.0.9" 10 | , "mysql": ">=2.0" 11 | , "pomelo": "0.5.0" 12 | , "async": ">=0.0.1" 13 | , "socket.io-client" : ">=0.9.6" 14 | , "pomelo-aoi" : ">=0.3.4" 15 | , "crc" : ">=0.0.1" 16 | , "pomelo-bt": ">=0.0.1" 17 | , "pomelo-pathfinding": ">=0.1.0" 18 | , "pomelo-collection": ">=0.1.0" 19 | , "pomelo-logger": "0.0.3" 20 | , "pomelo-monitor": ">=0.3.3" 21 | }, 22 | "devDependencies": { 23 | "should": ">=0.0.1" 24 | , "mocha": ">=0.0.1" 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /game-server/scripts/getCPUs.js: -------------------------------------------------------------------------------- 1 | var cpus = os.cpus(); 2 | result = util.inspect(cpus,true,null); -------------------------------------------------------------------------------- /game-server/scripts/getServerId.js: -------------------------------------------------------------------------------- 1 | result = app.serverId; -------------------------------------------------------------------------------- /game-server/scripts/getSystemInfo.js: -------------------------------------------------------------------------------- 1 | var result = '1'; 2 | monitor.sysmonitor.getSysInfo(function(msg){ 3 | result = msg; 4 | }); 5 | result; 6 | -------------------------------------------------------------------------------- /game-server/scripts/logger.js: -------------------------------------------------------------------------------- 1 | result = logger.info("hello");fd -------------------------------------------------------------------------------- /game-server/test/domain/action/moveTest.js: -------------------------------------------------------------------------------- 1 | var Move = require('../../../app/domain/action/move'); 2 | 3 | function test(){ 4 | var player = {x:100, y:100, save:function(){}}; 5 | var opts = {player:player, path:[{x:100, y:100},{x:200, y:200}, {x:315, y:1000}, {x:123,y:11},{x:2322,y:1}], speed:100}; 6 | 7 | var move = new Move(opts); 8 | 9 | 10 | var interval = setInterval(function(){ 11 | move.update(); 12 | console.error(move.pos); 13 | if(move.finish) 14 | clearInterval(interval); 15 | }, 200); 16 | } 17 | 18 | test(); -------------------------------------------------------------------------------- /game-server/test/domain/entityTest.js: -------------------------------------------------------------------------------- 1 | var Entity = require('../../app/domain/entity/entity'); 2 | var Character = require('../../app/domain/entity/character'); 3 | 4 | var entity = new Entity({ 5 | id: 1, 6 | name: 'x', 7 | x: 1, 8 | y: 2 9 | }); 10 | 11 | console.log('entity is : ' + JSON.stringify(entity)); 12 | 13 | var character = new Character({ 14 | id:1, 15 | name: 'kk', 16 | x: 2, 17 | y: 3, 18 | characterId: 2, 19 | characterName: 'xcc' 20 | }); 21 | 22 | console.log('character is : ' + JSON.stringify(character)); 23 | -------------------------------------------------------------------------------- /game-server/test/domain/maploaderTest.js: -------------------------------------------------------------------------------- 1 | var should = require('should'); 2 | var maploader = require('../../app/domain/map/maploader'); 3 | 4 | var test = function(){ 5 | var path = process.cwd() + '/config/map/jiangnanyewai.xml'; 6 | 7 | var map = maploader.buildMap(path, function(err, map){ 8 | should.not.exist(err); 9 | should.exist(map); 10 | console.error(map); 11 | }); 12 | } 13 | 14 | test(); -------------------------------------------------------------------------------- /game-server/test/domain/taskTest.js: -------------------------------------------------------------------------------- 1 | var taskDao = require('../../app/dao/taskDao'); 2 | 3 | taskDao.createTask(1006, 10, function(err, task){ 4 | console.error(task); 5 | }); 6 | 7 | -------------------------------------------------------------------------------- /game-server/test/domain/worldTest.js: -------------------------------------------------------------------------------- 1 | var should = require('should'); 2 | var world = require('../../app/domain/world'); 3 | 4 | -------------------------------------------------------------------------------- /game-server/test/shared/tokenTest.js: -------------------------------------------------------------------------------- 1 | var should = require('should'); 2 | var token = require('../../shared/token'); 3 | 4 | describe('Token service test', function() { 5 | 6 | it('should create and parse the token successully with the same password', function() { 7 | var pwd = 'pomelo_session_secret'; 8 | var uid = '123456'; 9 | var timestamp = Date.now(); 10 | var t = token.create(uid, timestamp, pwd); 11 | should.exist(t); 12 | var res = token.parse(t, pwd); 13 | should.exist(res); 14 | uid.should.equal(res.uid); 15 | timestamp.should.equal(res.timestamp); 16 | }); 17 | 18 | it('should fail if use invalid password to parse the token', function() { 19 | var pwd = 'pomelo_session_secret'; 20 | var invalidPwd = 'invalid_session_secret'; 21 | var uid = '123456'; 22 | var timestamp = Date.now(); 23 | var t = token.create(uid, timestamp, pwd); 24 | should.exist(t); 25 | var res = token.parse(t, invalidPwd); 26 | should.not.exist(res); 27 | }); 28 | }); -------------------------------------------------------------------------------- /game-server/test/util/dataApiTest.js: -------------------------------------------------------------------------------- 1 | 2 | var should = require('should'); 3 | var api = require('../../app/util/dataApi'); 4 | 5 | 6 | describe('JSON data api test', function() { 7 | var role = api.role; 8 | it('can findBy a attribute', function(){ 9 | var item = role.findBy("career", "剑客"); 10 | //item.should.be.an.instanceof(Array); 11 | item[0].career.should.equal("剑客"); 12 | var r = item[2]; 13 | r.should.have.property('id', 1020); 14 | r.should.have.property('hp', 54); 15 | r.should.have.property('mp', 48); 16 | r.name.should.equal("龙太子"); 17 | }); 18 | 19 | it('can list all item', function() { 20 | var list = role.all(); 21 | //list.should.be.an.instanceof(Array); 22 | list.length.should.equal(12); 23 | 24 | list[0].name.should.equal('神天兵'); 25 | }); 26 | }); 27 | -------------------------------------------------------------------------------- /game-server/test/util/mockData.js: -------------------------------------------------------------------------------- 1 | var Mob = require('../../app/domain/entity/mob'); 2 | var Player = require('../../app/domain/entity/player'); 3 | var FightSkill = require('../../app/domain/fightskill'); 4 | 5 | var exp = module.exports; 6 | 7 | exp.getMob = function() { 8 | return new Mob({ 9 | id: 2, 10 | name: 'tiger', 11 | x: 310, 12 | y: 490, 13 | orientation: 5, 14 | kindId: 1048, 15 | characterName: 'Tiger', 16 | spawningX: 400, 17 | spawningY: 400, 18 | level: 2, 19 | armorLevel: 2, 20 | weaponLevel: 0 21 | }); 22 | }; 23 | 24 | exp.getPlayer = function() { 25 | return new Player({ 26 | id: 1, 27 | name: 'xcc', 28 | x: 300, 29 | y: 500, 30 | orientation: 1, 31 | kindId: 1001, 32 | characterName: '神天兵', 33 | hp: 100, 34 | mp:30, 35 | maxHp: 100, 36 | maxMp: 30, 37 | gender: 'M', 38 | career: '剑客', 39 | country: '人', 40 | rank: 1, 41 | level: 2, 42 | experience: 40, 43 | attackValue: 30, 44 | defenceValue: 20, 45 | hitRate: 90, 46 | dodgeRate: 10, 47 | speed: 1, 48 | attackSpeed: 1, 49 | equipments: {} 50 | }); 51 | }; 52 | 53 | exp.getNormalAttack = function() { 54 | return FightSkill.create({ 55 | id: 1, 56 | skillId: 1, 57 | level: 1, 58 | type: 'attack' 59 | }); 60 | }; 61 | -------------------------------------------------------------------------------- /game-server/test/util/queueTest.js: -------------------------------------------------------------------------------- 1 | var Queue = require('../../app/util/queue'); 2 | var should = require('should'); 3 | 4 | function benchMark(){ 5 | var limit = 100000; 6 | 7 | 8 | var arr1 = new Array(); 9 | var arr2 = new Array(); 10 | 11 | console.log('length1 : ' + arr1.length + ' length2 : ' + arr2.length) 12 | for(var i = 0; i < limit; i++){ 13 | arr1[i] = i; 14 | arr2[i] = i; 15 | } 16 | 17 | var start = Date.now(); 18 | for(var i = 0; i < limit; i++) 19 | arr1.pop(); 20 | var end = Date.now(); 21 | for(var i = 0; i < limit; i++) 22 | arr2.shift(); 23 | var end2 = Date.now(); 24 | 25 | console.log("first time " + (end - start)); 26 | console.log("seconde time " + (end2- end)); 27 | } 28 | 29 | describe('Queue test', function(){ 30 | var limit = 10000; 31 | var queue = new Queue(limit); 32 | 33 | queue.should.have.property('limit'); 34 | 35 | var array = new Array(limit); 36 | 37 | for(var i = 0; i < limit; i++) 38 | queue.push(i); 39 | 40 | queue.length.should.equal(limit); 41 | (queue.push(1)).should.equal(false); 42 | 43 | for(var i = 0; i < limit; i++){ 44 | var tmp = queue.pop(); 45 | 46 | tmp.should.equal(i); 47 | } 48 | }); -------------------------------------------------------------------------------- /npm-install.sh: -------------------------------------------------------------------------------- 1 | cd ./game-server && npm install -d 2 | echo '============ game-server npm installed ============' 3 | cd .. 4 | cd ./web-server && npm install -d 5 | echo '============ web-server npm installed ============' 6 | cd .. 7 | -------------------------------------------------------------------------------- /replace_request.sh: -------------------------------------------------------------------------------- 1 | cp request_main.js web-server/node_modules/everyauth/node_modules/request/main.js 2 | -------------------------------------------------------------------------------- /shared/code.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | OK: 200, 3 | FAIL: 500, 4 | 5 | ENTRY: { 6 | FA_TOKEN_INVALID: 1001, 7 | FA_TOKEN_EXPIRE: 1002, 8 | FA_USER_NOT_EXIST: 1003 9 | }, 10 | 11 | GATE: { 12 | FA_NO_SERVER_AVAILABLE: 2001 13 | }, 14 | 15 | CHAT: { 16 | FA_CHANNEL_CREATE: 3001, 17 | FA_CHANNEL_NOT_EXIST: 3002, 18 | FA_UNKNOWN_CONNECTOR: 3003, 19 | FA_USER_NOT_ONLINE: 3004 20 | } 21 | }; -------------------------------------------------------------------------------- /shared/config/clientMsg.json: -------------------------------------------------------------------------------- 1 | { 2 | "area.playerHandler.enterScene" : { 3 | "uid" : { 4 | "type" : "uint32", 5 | "required" : true 6 | }, 7 | "playerId" : { 8 | "type" : "unint32", 9 | "required" : true 10 | }, 11 | "areaId" : { 12 | "type" : "unint32", 13 | "required" : true 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /shared/config/mysql.json: -------------------------------------------------------------------------------- 1 | { 2 | "development": { 3 | "host" : "127.0.0.1", 4 | "port" : "3306", 5 | "database" : "Pomelo", 6 | "user" : "xy", 7 | "password" : "dev" 8 | }, 9 | 10 | "production": { 11 | "host" : "127.0.0.1", 12 | "port" : "3306", 13 | "database" : "Pomelo", 14 | "user" : "xy", 15 | "password" : "dev" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /shared/config/session.json: -------------------------------------------------------------------------------- 1 | { 2 | "secret": "pomelo_session_secret", 3 | "expire": -1 4 | } -------------------------------------------------------------------------------- /shared/token.js: -------------------------------------------------------------------------------- 1 | var crypto = require('crypto'); 2 | 3 | /** 4 | * Create token by uid. Encrypt uid and timestamp to get a token. 5 | * 6 | * @param {String} uid user id 7 | * @param {String|Number} timestamp 8 | * @param {String} pwd encrypt password 9 | * @return {String} token string 10 | */ 11 | module.exports.create = function(uid, timestamp, pwd) { 12 | var msg = uid + '|' + timestamp; 13 | var cipher = crypto.createCipher('aes256', pwd); 14 | var enc = cipher.update(msg, 'utf8', 'hex'); 15 | enc += cipher.final('hex'); 16 | return enc; 17 | }; 18 | 19 | /** 20 | * Parse token to validate it and get the uid and timestamp. 21 | * 22 | * @param {String} token token string 23 | * @param {String} pwd decrypt password 24 | * @return {Object} uid and timestamp that exported from token. null for illegal token. 25 | */ 26 | module.exports.parse = function(token, pwd) { 27 | var decipher = crypto.createDecipher('aes256', pwd); 28 | var dec; 29 | try { 30 | dec = decipher.update(token, 'hex', 'utf8'); 31 | dec += decipher.final('utf8'); 32 | } catch(err) { 33 | console.error('[token] fail to decrypt token. %j', token); 34 | return null; 35 | } 36 | var ts = dec.split('|'); 37 | if(ts.length !== 2) { 38 | // illegal token 39 | return null; 40 | } 41 | return {uid: ts[0], timestamp: Number(ts[1])}; 42 | }; 43 | -------------------------------------------------------------------------------- /web-server/.gitignore: -------------------------------------------------------------------------------- 1 | .project 2 | *.log 3 | */node-log.log 4 | logs/*.log 5 | !.gitignore 6 | node_modules/* 7 | .project 8 | .settings/ 9 | **/*.svn 10 | *.svn 11 | *.sublime-project 12 | *.sublime-workspace 13 | *.swp 14 | .DS_Store 15 | .idea -------------------------------------------------------------------------------- /web-server/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "predef": [ 3 | "describe", 4 | "it", 5 | "before", 6 | "after", 7 | "window", 8 | "__resources__", 9 | "$", 10 | "alert" 11 | ], 12 | "browser": true, 13 | "es5": true, 14 | "node": true, 15 | "eqeqeq": true, 16 | "undef": true, 17 | "curly": true, 18 | "bitwise": true, 19 | "immed": false, 20 | "newcap": true, 21 | "nonew": true, 22 | "white": false, 23 | "smarttabs": true, 24 | "multistr": true, 25 | "strict": false 26 | } 27 | -------------------------------------------------------------------------------- /web-server/bin/build-componet.sh: -------------------------------------------------------------------------------- 1 | cd public/js/lib && component build -v -------------------------------------------------------------------------------- /web-server/bin/component.sh: -------------------------------------------------------------------------------- 1 | cd public/js/lib && component install -f && component build -v -------------------------------------------------------------------------------- /web-server/config/oauth.json: -------------------------------------------------------------------------------- 1 | { 2 | "weibo": { 3 | "appId": "3174132933", 4 | "appSecret": "08c432a4e2f94e78789d3f0add136d52" 5 | }, 6 | 7 | "github": { 8 | "appId": "5d8a5bb21d67cb3b9697", 9 | "appSecret": "4e235f7f9363f67b48939b9529857e9fc8bac8d9" 10 | }, 11 | 12 | "facebook": { 13 | "appId": "460381747329258", 14 | "appSecret": "bdb93b4a2beb6022505e3476cd7edec7" 15 | }, 16 | 17 | "google": { 18 | "clientId": "878096227571.apps.googleusercontent.com", 19 | "clientSecret": "xDD0dGlNXjCMVofqY72ZvW4-" 20 | }, 21 | 22 | "twitter": { 23 | "consumerKey": "DspkrMeY28INKjuUxHn8Xw", 24 | "consumerSecret": "QgmsjnvudFsnVPSgYmoprNKAu5fKjxFQpEHyrOw7no" 25 | }, 26 | 27 | "hostname" : "http://pomelo.netease.com/lordofpomelo", 28 | 29 | "redirectPath": "/lordofpomelo/auth_success" 30 | } 31 | -------------------------------------------------------------------------------- /web-server/lib/dao/mysql/dao-pool.js: -------------------------------------------------------------------------------- 1 | var _poolModule = require('generic-pool'); 2 | var mysqlConfig = require('../../../../shared/config/mysql'); 3 | 4 | var env = process.env.NODE_ENV || 'development'; 5 | if(mysqlConfig[env]) { 6 | mysqlConfig = mysqlConfig[env]; 7 | } 8 | 9 | /* 10 | * Create mysql connection pool. 11 | */ 12 | var createMysqlPool = function(){ 13 | return _poolModule.Pool({ 14 | name : 'mysql', 15 | create : function(callback) { 16 | var mysql = require('mysql'); 17 | var client = mysql.createConnection({ 18 | host: mysqlConfig.host, 19 | user: mysqlConfig.user, 20 | password: mysqlConfig.password, 21 | database: mysqlConfig.database 22 | }); 23 | callback(null, client); 24 | }, 25 | destroy : function(client) { client.end(); }, 26 | max : 10, 27 | idleTimeoutMillis : 30000, 28 | log : false 29 | }); 30 | }; 31 | 32 | exports.createMysqlPool = createMysqlPool; 33 | -------------------------------------------------------------------------------- /web-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lord_of_pomelo_web_server", 3 | "version": "0.1.0", 4 | "private": false, 5 | "dependencies": { 6 | "express": "2.5.2" 7 | , "everyauth": "0.3.0" 8 | , "connect": ">=0.0.1" 9 | , "ejs": "0.8.3" 10 | , "generic-pool": ">=1.0.9" 11 | , "mysql": ">=2.0" 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /web-server/public/animation_json/0998.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":133,"className":"LeftAttack","width":228,"id":"0998","totalFrames":26},"LeftDefend":{"height":89,"className":"LeftDefend","width":107,"id":"0998","totalFrames":2},"LeftDie":{"height":98,"className":"LeftDie","width":128,"id":"0998","totalFrames":21},"LeftHit":{"height":87,"className":"LeftHit","width":104,"id":"0998","totalFrames":4},"LeftMagic":{"height":113,"className":"LeftMagic","width":124,"id":"0998","totalFrames":36},"LeftStand":{"height":88,"className":"LeftStand","width":94,"id":"0998","totalFrames":28},"LeftWalk":{"height":86,"className":"LeftWalk","width":108,"id":"0998","totalFrames":8},"RightAttack":{"height":186,"className":"RightAttack","width":156,"id":"0998","totalFrames":26},"RightDefend":{"height":91,"className":"RightDefend","width":71,"id":"0998","totalFrames":2},"RightDie":{"height":114,"className":"RightDie","width":97,"id":"0998","totalFrames":21},"RightHit":{"height":88,"className":"RightHit","width":71,"id":"0998","totalFrames":4},"RightMagic":{"height":110,"className":"RightMagic","width":106,"id":"0998","totalFrames":36},"RightStand":{"height":91,"className":"RightStand","width":75,"id":"0998","totalFrames":28},"RightWalk":{"height":90,"className":"RightWalk","width":82,"id":"0998","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/0999.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":137,"className":"LeftAttack","width":248,"id":"0999","totalFrames":30},"LeftDefend":{"height":86,"className":"LeftDefend","width":91,"id":"0999","totalFrames":2},"LeftDie":{"height":108,"className":"LeftDie","width":130,"id":"0999","totalFrames":33},"LeftHit":{"height":93,"className":"LeftHit","width":59,"id":"0999","totalFrames":4},"LeftMagic":{"height":100,"className":"LeftMagic","width":84,"id":"0999","totalFrames":36},"LeftStand":{"height":100,"className":"LeftStand","width":60,"id":"0999","totalFrames":25},"LeftWalk":{"height":95,"className":"LeftWalk","width":79,"id":"0999","totalFrames":8},"RightAttack":{"height":176,"className":"RightAttack","width":160,"id":"0999","totalFrames":30},"RightDefend":{"height":92,"className":"RightDefend","width":69,"id":"0999","totalFrames":2},"RightDie":{"height":120,"className":"RightDie","width":103,"id":"0999","totalFrames":33},"RightHit":{"height":98,"className":"RightHit","width":69,"id":"0999","totalFrames":4},"RightMagic":{"height":102,"className":"RightMagic","width":96,"id":"0999","totalFrames":36},"RightStand":{"height":102,"className":"RightStand","width":65,"id":"0999","totalFrames":25},"RightWalk":{"height":100,"className":"RightWalk","width":76,"id":"0999","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1001.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":163,"className":"LeftAttack","width":292,"id":"1001","totalFrames":25},"LeftDefend":{"height":98,"className":"LeftDefend","width":131,"id":"1001","totalFrames":2},"LeftDie":{"height":175,"className":"LeftDie","width":159,"id":"1001","totalFrames":27},"LeftHit":{"height":113,"className":"LeftHit","width":136,"id":"1001","totalFrames":4},"LeftMagic":{"height":163,"className":"LeftMagic","width":156,"id":"1001","totalFrames":31},"LeftStand":{"height":128,"className":"LeftStand","width":132,"id":"1001","totalFrames":35},"LeftWalk":{"height":123,"className":"LeftWalk","width":148,"id":"1001","totalFrames":8},"RightAttack":{"height":205,"className":"RightAttack","width":209,"id":"1001","totalFrames":26},"RightDefend":{"height":104,"className":"RightDefend","width":132,"id":"1001","totalFrames":2},"RightDie":{"height":141,"className":"RightDie","width":206,"id":"1001","totalFrames":27},"RightHit":{"height":124,"className":"RightHit","width":143,"id":"1001","totalFrames":4},"RightMagic":{"height":154,"className":"RightMagic","width":159,"id":"1001","totalFrames":31},"RightStand":{"height":118,"className":"RightStand","width":144,"id":"1001","totalFrames":35},"RightWalk":{"height":131,"className":"RightWalk","width":149,"id":"1001","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1003.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":144,"className":"LeftAttack","width":194,"id":"1003","totalFrames":26},"LeftDefend":{"height":91,"className":"LeftDefend","width":120,"id":"1003","totalFrames":1},"LeftDie":{"height":173,"className":"LeftDie","width":175,"id":"1003","totalFrames":30},"LeftHit":{"height":100,"className":"LeftHit","width":114,"id":"1003","totalFrames":3},"LeftMagic":{"height":184,"className":"LeftMagic","width":184,"id":"1003","totalFrames":49},"LeftStand":{"height":107,"className":"LeftStand","width":121,"id":"1003","totalFrames":27},"LeftWalk":{"height":100,"className":"LeftWalk","width":124,"id":"1003","totalFrames":8},"RightAttack":{"height":144,"className":"RightAttack","width":157,"id":"1003","totalFrames":26},"RightDefend":{"height":89,"className":"RightDefend","width":90,"id":"1003","totalFrames":1},"RightDie":{"height":136,"className":"RightDie","width":139,"id":"1003","totalFrames":30},"RightHit":{"height":95,"className":"RightHit","width":89,"id":"1003","totalFrames":3},"RightMagic":{"height":187,"className":"RightMagic","width":108,"id":"1003","totalFrames":49},"RightStand":{"height":104,"className":"RightStand","width":87,"id":"1003","totalFrames":27},"RightWalk":{"height":103,"className":"RightWalk","width":94,"id":"1003","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1005.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":219,"className":"LeftAttack","width":215,"id":"1005","totalFrames":33},"LeftDefend":{"height":104,"className":"LeftDefend","width":98,"id":"1005","totalFrames":2},"LeftDie":{"height":161,"className":"LeftDie","width":181,"id":"1005","totalFrames":28},"LeftHit":{"height":112,"className":"LeftHit","width":137,"id":"1005","totalFrames":5},"LeftMagic":{"height":177,"className":"LeftMagic","width":239,"id":"1005","totalFrames":51},"LeftStand":{"height":123,"className":"LeftStand","width":110,"id":"1005","totalFrames":20},"LeftWalk":{"height":99,"className":"LeftWalk","width":156,"id":"1005","totalFrames":10},"RightAttack":{"height":234,"className":"RightAttack","width":189,"id":"1005","totalFrames":33},"RightDefend":{"height":91,"className":"RightDefend","width":112,"id":"1005","totalFrames":2},"RightDie":{"height":135,"className":"RightDie","width":197,"id":"1005","totalFrames":28},"RightHit":{"height":112,"className":"RightHit","width":110,"id":"1005","totalFrames":5},"RightMagic":{"height":210,"className":"RightMagic","width":225,"id":"1005","totalFrames":51},"RightStand":{"height":123,"className":"RightStand","width":106,"id":"1005","totalFrames":20},"RightWalk":{"height":98,"className":"RightWalk","width":138,"id":"1005","totalFrames":10}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1006.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":239,"className":"LeftAttack","width":304,"id":"1006","totalFrames":35},"LeftDefend":{"height":120,"className":"LeftDefend","width":246,"id":"1006","totalFrames":2},"LeftDie":{"height":136,"className":"LeftDie","width":252,"id":"1006","totalFrames":18},"LeftHit":{"height":122,"className":"LeftHit","width":181,"id":"1006","totalFrames":6},"LeftMagic":{"height":223,"className":"LeftMagic","width":253,"id":"1006","totalFrames":29},"LeftStand":{"height":143,"className":"LeftStand","width":159,"id":"1006","totalFrames":30},"LeftWalk":{"height":167,"className":"LeftWalk","width":216,"id":"1006","totalFrames":16},"RightAttack":{"height":261,"className":"RightAttack","width":240,"id":"1006","totalFrames":35},"RightDefend":{"height":122,"className":"RightDefend","width":188,"id":"1006","totalFrames":2},"RightDie":{"height":127,"className":"RightDie","width":214,"id":"1006","totalFrames":18},"RightHit":{"height":114,"className":"RightHit","width":193,"id":"1006","totalFrames":6},"RightMagic":{"height":195,"className":"RightMagic","width":262,"id":"1006","totalFrames":29},"RightStand":{"height":114,"className":"RightStand","width":187,"id":"1006","totalFrames":30},"RightWalk":{"height":137,"className":"RightWalk","width":160,"id":"1006","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1007.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":166,"className":"LeftAttack","width":318,"id":"1007","totalFrames":20},"LeftDefend":{"height":87,"className":"LeftDefend","width":108,"id":"1007","totalFrames":2},"LeftDie":{"height":133,"className":"LeftDie","width":153,"id":"1007","totalFrames":35},"LeftHit":{"height":101,"className":"LeftHit","width":117,"id":"1007","totalFrames":4},"LeftMagic":{"height":155,"className":"LeftMagic","width":166,"id":"1007","totalFrames":30},"LeftStand":{"height":103,"className":"LeftStand","width":67,"id":"1007","totalFrames":35},"LeftWalk":{"height":104,"className":"LeftWalk","width":95,"id":"1007","totalFrames":8},"RightAttack":{"height":146,"className":"RightAttack","width":225,"id":"1007","totalFrames":20},"RightDefend":{"height":91,"className":"RightDefend","width":90,"id":"1007","totalFrames":2},"RightDie":{"height":102,"className":"RightDie","width":123,"id":"1007","totalFrames":35},"RightHit":{"height":94,"className":"RightHit","width":100,"id":"1007","totalFrames":4},"RightMagic":{"height":154,"className":"RightMagic","width":134,"id":"1007","totalFrames":30},"RightStand":{"height":91,"className":"RightStand","width":73,"id":"1007","totalFrames":35},"RightWalk":{"height":103,"className":"RightWalk","width":80,"id":"1007","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1008.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":146,"className":"LeftAttack","width":240,"id":"1008","totalFrames":28},"LeftDefend":{"height":58,"className":"LeftDefend","width":74,"id":"1008","totalFrames":1},"LeftDie":{"height":112,"className":"LeftDie","width":117,"id":"1008","totalFrames":30},"LeftHit":{"height":77,"className":"LeftHit","width":89,"id":"1008","totalFrames":3},"LeftMagic":{"height":100,"className":"LeftMagic","width":138,"id":"1008","totalFrames":30},"LeftStand":{"height":69,"className":"LeftStand","width":93,"id":"1008","totalFrames":25},"LeftWalk":{"height":76,"className":"LeftWalk","width":108,"id":"1008","totalFrames":8},"RightAttack":{"height":183,"className":"RightAttack","width":154,"id":"1008","totalFrames":28},"RightDefend":{"height":60,"className":"RightDefend","width":51,"id":"1008","totalFrames":1},"RightDie":{"height":93,"className":"RightDie","width":154,"id":"1008","totalFrames":30},"RightHit":{"height":77,"className":"RightHit","width":70,"id":"1008","totalFrames":3},"RightMagic":{"height":120,"className":"RightMagic","width":113,"id":"1008","totalFrames":30},"RightStand":{"height":70,"className":"RightStand","width":70,"id":"1008","totalFrames":25},"RightWalk":{"height":77,"className":"RightWalk","width":94,"id":"1008","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1010.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":142,"className":"LeftAttack","width":175,"id":"1010","totalFrames":24},"LeftDefend":{"height":113,"className":"LeftDefend","width":91,"id":"1010","totalFrames":2},"LeftDie":{"height":133,"className":"LeftDie","width":168,"id":"1010","totalFrames":20},"LeftHit":{"height":112,"className":"LeftHit","width":133,"id":"1010","totalFrames":4},"LeftMagic":{"height":136,"className":"LeftMagic","width":112,"id":"1010","totalFrames":28},"LeftStand":{"height":107,"className":"LeftStand","width":58,"id":"1010","totalFrames":16},"LeftWalk":{"height":100,"className":"LeftWalk","width":116,"id":"1010","totalFrames":16},"RightAttack":{"height":175,"className":"RightAttack","width":161,"id":"1010","totalFrames":24},"RightDefend":{"height":113,"className":"RightDefend","width":91,"id":"1010","totalFrames":2},"RightDie":{"height":173,"className":"RightDie","width":152,"id":"1010","totalFrames":20},"RightHit":{"height":117,"className":"RightHit","width":133,"id":"1010","totalFrames":4},"RightMagic":{"height":160,"className":"RightMagic","width":136,"id":"1010","totalFrames":28},"RightStand":{"height":116,"className":"RightStand","width":59,"id":"1010","totalFrames":16},"RightWalk":{"height":102,"className":"RightWalk","width":96,"id":"1010","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1011.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":132,"className":"LeftAttack","width":143,"id":"1011","totalFrames":28},"LeftDefend":{"height":95,"className":"LeftDefend","width":75,"id":"1011","totalFrames":2},"LeftDie":{"height":124,"className":"LeftDie","width":129,"id":"1011","totalFrames":30},"LeftHit":{"height":95,"className":"LeftHit","width":75,"id":"1011","totalFrames":3},"LeftMagic":{"height":113,"className":"LeftMagic","width":101,"id":"1011","totalFrames":42},"LeftStand":{"height":85,"className":"LeftStand","width":92,"id":"1011","totalFrames":27},"LeftWalk":{"height":86,"className":"LeftWalk","width":84,"id":"1011","totalFrames":8},"RightAttack":{"height":128,"className":"RightAttack","width":114,"id":"1011","totalFrames":28},"RightDefend":{"height":90,"className":"RightDefend","width":75,"id":"1011","totalFrames":2},"RightDie":{"height":92,"className":"RightDie","width":110,"id":"1011","totalFrames":30},"RightHit":{"height":90,"className":"RightHit","width":75,"id":"1011","totalFrames":4},"RightMagic":{"height":108,"className":"RightMagic","width":97,"id":"1011","totalFrames":59},"RightStand":{"height":84,"className":"RightStand","width":99,"id":"1011","totalFrames":27},"RightWalk":{"height":87,"className":"RightWalk","width":71,"id":"1011","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1012.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":137,"className":"LeftAttack","width":236,"id":"1012","totalFrames":28},"LeftDefend":{"height":71,"className":"LeftDefend","width":94,"id":"1012","totalFrames":1},"LeftDie":{"height":132,"className":"LeftDie","width":116,"id":"1012","totalFrames":27},"LeftHit":{"height":109,"className":"LeftHit","width":145,"id":"1012","totalFrames":3},"LeftMagic":{"height":150,"className":"LeftMagic","width":134,"id":"1012","totalFrames":25},"LeftStand":{"height":125,"className":"LeftStand","width":142,"id":"1012","totalFrames":24},"LeftWalk":{"height":125,"className":"LeftWalk","width":131,"id":"1012","totalFrames":19},"RightAttack":{"height":207,"className":"RightAttack","width":252,"id":"1012","totalFrames":28},"RightDefend":{"height":91,"className":"RightDefend","width":79,"id":"1012","totalFrames":1},"RightDie":{"height":157,"className":"RightDie","width":161,"id":"1012","totalFrames":27},"RightHit":{"height":110,"className":"RightHit","width":126,"id":"1012","totalFrames":3},"RightMagic":{"height":133,"className":"RightMagic","width":189,"id":"1012","totalFrames":25},"RightStand":{"height":138,"className":"RightStand","width":140,"id":"1012","totalFrames":24},"RightWalk":{"height":141,"className":"RightWalk","width":140,"id":"1012","totalFrames":19}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1015.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":163,"className":"LeftAttack","width":258,"id":"1015","totalFrames":27},"LeftDefend":{"height":122,"className":"LeftDefend","width":69,"id":"1015","totalFrames":2},"LeftDie":{"height":207,"className":"LeftDie","width":236,"id":"1015","totalFrames":16},"LeftHit":{"height":143,"className":"LeftHit","width":122,"id":"1015","totalFrames":4},"LeftMagic":{"height":183,"className":"LeftMagic","width":145,"id":"1015","totalFrames":24},"LeftStand":{"height":141,"className":"LeftStand","width":142,"id":"1015","totalFrames":20},"LeftWalk":{"height":143,"className":"LeftWalk","width":116,"id":"1015","totalFrames":24},"RightAttack":{"height":191,"className":"RightAttack","width":232,"id":"1015","totalFrames":27},"RightDefend":{"height":131,"className":"RightDefend","width":65,"id":"1015","totalFrames":2},"RightDie":{"height":166,"className":"RightDie","width":213,"id":"1015","totalFrames":16},"RightHit":{"height":142,"className":"RightHit","width":155,"id":"1015","totalFrames":4},"RightMagic":{"height":171,"className":"RightMagic","width":156,"id":"1015","totalFrames":24},"RightStand":{"height":125,"className":"RightStand","width":147,"id":"1015","totalFrames":20},"RightWalk":{"height":146,"className":"RightWalk","width":149,"id":"1015","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1016.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":168,"className":"LeftAttack","width":230,"id":"1016","totalFrames":28},"LeftDefend":{"height":119,"className":"LeftDefend","width":102,"id":"1016","totalFrames":2},"LeftDie":{"height":163,"className":"LeftDie","width":160,"id":"1016","totalFrames":19},"LeftHit":{"height":134,"className":"LeftHit","width":141,"id":"1016","totalFrames":4},"LeftMagic":{"height":212,"className":"LeftMagic","width":195,"id":"1016","totalFrames":36},"LeftStand":{"height":107,"className":"LeftStand","width":150,"id":"1016","totalFrames":20},"LeftWalk":{"height":112,"className":"LeftWalk","width":127,"id":"1016","totalFrames":24},"RightAttack":{"height":183,"className":"RightAttack","width":231,"id":"1016","totalFrames":28},"RightDefend":{"height":123,"className":"RightDefend","width":134,"id":"1016","totalFrames":2},"RightDie":{"height":159,"className":"RightDie","width":154,"id":"1016","totalFrames":19},"RightHit":{"height":129,"className":"RightHit","width":117,"id":"1016","totalFrames":4},"RightMagic":{"height":255,"className":"RightMagic","width":183,"id":"1016","totalFrames":36},"RightStand":{"height":105,"className":"RightStand","width":140,"id":"1016","totalFrames":20},"RightWalk":{"height":108,"className":"RightWalk","width":120,"id":"1016","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1018.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":170,"className":"LeftAttack","width":351,"id":"1018","totalFrames":36},"LeftDefend":{"height":137,"className":"LeftDefend","width":117,"id":"1018","totalFrames":2},"LeftDie":{"height":187,"className":"LeftDie","width":244,"id":"1018","totalFrames":23},"LeftHit":{"height":140,"className":"LeftHit","width":134,"id":"1018","totalFrames":4},"LeftMagic":{"height":202,"className":"LeftMagic","width":153,"id":"1018","totalFrames":21},"LeftStand":{"height":143,"className":"LeftStand","width":138,"id":"1018","totalFrames":20},"LeftWalk":{"height":134,"className":"LeftWalk","width":152,"id":"1018","totalFrames":24},"RightAttack":{"height":213,"className":"RightAttack","width":254,"id":"1018","totalFrames":36},"RightDefend":{"height":138,"className":"RightDefend","width":114,"id":"1018","totalFrames":2},"RightDie":{"height":192,"className":"RightDie","width":213,"id":"1018","totalFrames":23},"RightHit":{"height":139,"className":"RightHit","width":129,"id":"1018","totalFrames":4},"RightMagic":{"height":201,"className":"RightMagic","width":185,"id":"1018","totalFrames":21},"RightStand":{"height":142,"className":"RightStand","width":148,"id":"1018","totalFrames":20},"RightWalk":{"height":131,"className":"RightWalk","width":150,"id":"1018","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1019.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":123,"className":"LeftAttack","width":200,"id":"1019","totalFrames":28},"LeftDefend":{"height":61,"className":"LeftDefend","width":96,"id":"1019","totalFrames":1},"LeftDie":{"height":113,"className":"LeftDie","width":132,"id":"1019","totalFrames":23},"LeftHit":{"height":94,"className":"LeftHit","width":96,"id":"1019","totalFrames":3},"LeftMagic":{"height":154,"className":"LeftMagic","width":123,"id":"1019","totalFrames":44},"LeftStand":{"height":88,"className":"LeftStand","width":89,"id":"1019","totalFrames":21},"LeftWalk":{"height":97,"className":"LeftWalk","width":85,"id":"1019","totalFrames":8},"RightAttack":{"height":141,"className":"RightAttack","width":170,"id":"1019","totalFrames":28},"RightDefend":{"height":73,"className":"RightDefend","width":84,"id":"1019","totalFrames":1},"RightDie":{"height":107,"className":"RightDie","width":141,"id":"1019","totalFrames":23},"RightHit":{"height":103,"className":"RightHit","width":79,"id":"1019","totalFrames":3},"RightMagic":{"height":151,"className":"RightMagic","width":124,"id":"1019","totalFrames":44},"RightStand":{"height":80,"className":"RightStand","width":76,"id":"1019","totalFrames":21},"RightWalk":{"height":98,"className":"RightWalk","width":91,"id":"1019","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1020.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":179,"className":"LeftAttack","width":279,"id":"1020","totalFrames":25},"LeftDefend":{"height":77,"className":"LeftDefend","width":142,"id":"1020","totalFrames":2},"LeftDie":{"height":137,"className":"LeftDie","width":181,"id":"1020","totalFrames":21},"LeftHit":{"height":130,"className":"LeftHit","width":134,"id":"1020","totalFrames":4},"LeftMagic":{"height":209,"className":"LeftMagic","width":211,"id":"1020","totalFrames":30},"LeftStand":{"height":129,"className":"LeftStand","width":181,"id":"1020","totalFrames":28},"LeftWalk":{"height":94,"className":"LeftWalk","width":183,"id":"1020","totalFrames":8},"RightAttack":{"height":176,"className":"RightAttack","width":212,"id":"1020","totalFrames":25},"RightDefend":{"height":90,"className":"RightDefend","width":109,"id":"1020","totalFrames":2},"RightDie":{"height":106,"className":"RightDie","width":171,"id":"1020","totalFrames":21},"RightHit":{"height":91,"className":"RightHit","width":141,"id":"1020","totalFrames":4},"RightMagic":{"height":160,"className":"RightMagic","width":203,"id":"1020","totalFrames":30},"RightStand":{"height":90,"className":"RightStand","width":149,"id":"1020","totalFrames":28},"RightWalk":{"height":96,"className":"RightWalk","width":149,"id":"1020","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1022.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":146,"className":"LeftAttack","width":197,"id":"1022","totalFrames":23},"LeftDefend":{"height":80,"className":"LeftDefend","width":127,"id":"1022","totalFrames":2},"LeftDie":{"height":143,"className":"LeftDie","width":141,"id":"1022","totalFrames":30},"LeftHit":{"height":113,"className":"LeftHit","width":142,"id":"1022","totalFrames":4},"LeftMagic":{"height":174,"className":"LeftMagic","width":224,"id":"1022","totalFrames":32},"LeftStand":{"height":105,"className":"LeftStand","width":104,"id":"1022","totalFrames":37},"LeftWalk":{"height":110,"className":"LeftWalk","width":150,"id":"1022","totalFrames":8},"RightAttack":{"height":184,"className":"RightAttack","width":205,"id":"1022","totalFrames":23},"RightDefend":{"height":89,"className":"RightDefend","width":91,"id":"1022","totalFrames":2},"RightDie":{"height":108,"className":"RightDie","width":175,"id":"1022","totalFrames":30},"RightHit":{"height":109,"className":"RightHit","width":117,"id":"1022","totalFrames":4},"RightMagic":{"height":170,"className":"RightMagic","width":211,"id":"1022","totalFrames":32},"RightStand":{"height":107,"className":"RightStand","width":152,"id":"1022","totalFrames":37},"RightWalk":{"height":110,"className":"RightWalk","width":111,"id":"1022","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1024.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":133,"className":"LeftAttack","width":174,"id":"1024","totalFrames":24},"LeftDefend":{"height":59,"className":"LeftDefend","width":78,"id":"1024","totalFrames":2},"LeftDie":{"height":105,"className":"LeftDie","width":125,"id":"1024","totalFrames":21},"LeftHit":{"height":81,"className":"LeftHit","width":84,"id":"1024","totalFrames":4},"LeftMagic":{"height":113,"className":"LeftMagic","width":98,"id":"1024","totalFrames":40},"LeftStand":{"height":79,"className":"LeftStand","width":80,"id":"1024","totalFrames":49},"LeftWalk":{"height":84,"className":"LeftWalk","width":83,"id":"1024","totalFrames":7},"RightAttack":{"height":142,"className":"RightAttack","width":131,"id":"1024","totalFrames":24},"RightDefend":{"height":63,"className":"RightDefend","width":65,"id":"1024","totalFrames":2},"RightDie":{"height":80,"className":"RightDie","width":105,"id":"1024","totalFrames":21},"RightHit":{"height":83,"className":"RightHit","width":77,"id":"1024","totalFrames":4},"RightMagic":{"height":115,"className":"RightMagic","width":90,"id":"1024","totalFrames":40},"RightStand":{"height":80,"className":"RightStand","width":78,"id":"1024","totalFrames":49},"RightWalk":{"height":88,"className":"RightWalk","width":76,"id":"1024","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1025.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":133,"className":"LeftAttack","width":228,"id":"1025","totalFrames":26},"LeftDefend":{"height":89,"className":"LeftDefend","width":107,"id":"1025","totalFrames":2},"LeftDie":{"height":98,"className":"LeftDie","width":128,"id":"1025","totalFrames":21},"LeftHit":{"height":87,"className":"LeftHit","width":104,"id":"1025","totalFrames":4},"LeftMagic":{"height":113,"className":"LeftMagic","width":124,"id":"1025","totalFrames":36},"LeftStand":{"height":88,"className":"LeftStand","width":94,"id":"1025","totalFrames":28},"LeftWalk":{"height":86,"className":"LeftWalk","width":108,"id":"1025","totalFrames":8},"RightAttack":{"height":186,"className":"RightAttack","width":156,"id":"1025","totalFrames":26},"RightDefend":{"height":91,"className":"RightDefend","width":71,"id":"1025","totalFrames":2},"RightDie":{"height":114,"className":"RightDie","width":97,"id":"1025","totalFrames":21},"RightHit":{"height":88,"className":"RightHit","width":71,"id":"1025","totalFrames":4},"RightMagic":{"height":110,"className":"RightMagic","width":106,"id":"1025","totalFrames":36},"RightStand":{"height":91,"className":"RightStand","width":75,"id":"1025","totalFrames":28},"RightWalk":{"height":90,"className":"RightWalk","width":82,"id":"1025","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1026.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":181,"className":"LeftAttack","width":360,"id":"1026","totalFrames":23},"LeftDefend":{"height":100,"className":"LeftDefend","width":128,"id":"1026","totalFrames":2},"LeftDie":{"height":131,"className":"LeftDie","width":209,"id":"1026","totalFrames":18},"LeftHit":{"height":107,"className":"LeftHit","width":118,"id":"1026","totalFrames":4},"LeftMagic":{"height":134,"className":"LeftMagic","width":121,"id":"1026","totalFrames":20},"LeftStand":{"height":89,"className":"LeftStand","width":112,"id":"1026","totalFrames":27},"LeftWalk":{"height":98,"className":"LeftWalk","width":150,"id":"1026","totalFrames":8},"RightAttack":{"height":263,"className":"RightAttack","width":199,"id":"1026","totalFrames":23},"RightDefend":{"height":108,"className":"RightDefend","width":74,"id":"1026","totalFrames":2},"RightDie":{"height":153,"className":"RightDie","width":139,"id":"1026","totalFrames":18},"RightHit":{"height":107,"className":"RightHit","width":80,"id":"1026","totalFrames":4},"RightMagic":{"height":134,"className":"RightMagic","width":116,"id":"1026","totalFrames":20},"RightStand":{"height":95,"className":"RightStand","width":89,"id":"1026","totalFrames":27},"RightWalk":{"height":103,"className":"RightWalk","width":124,"id":"1026","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1027.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":114,"className":"LeftAttack","width":263,"id":"1027","totalFrames":22},"LeftDefend":{"height":81,"className":"LeftDefend","width":98,"id":"1027","totalFrames":2},"LeftDie":{"height":135,"className":"LeftDie","width":135,"id":"1027","totalFrames":22},"LeftHit":{"height":91,"className":"LeftHit","width":71.05,"id":"1027","totalFrames":4},"LeftMagic":{"height":122,"className":"LeftMagic","width":148,"id":"1027","totalFrames":14},"LeftStand":{"height":86,"className":"LeftStand","width":113,"id":"1027","totalFrames":20},"LeftWalk":{"height":88,"className":"LeftWalk","width":88,"id":"1027","totalFrames":8},"RightAttack":{"height":147,"className":"RightAttack","width":178,"id":"1027","totalFrames":22},"RightDefend":{"height":88,"className":"RightDefend","width":66,"id":"1027","totalFrames":2},"RightDie":{"height":102,"className":"RightDie","width":170,"id":"1027","totalFrames":22},"RightHit":{"height":88,"className":"RightHit","width":59,"id":"1027","totalFrames":4},"RightMagic":{"height":127,"className":"RightMagic","width":113,"id":"1027","totalFrames":14},"RightStand":{"height":89,"className":"RightStand","width":84,"id":"1027","totalFrames":20},"RightWalk":{"height":90,"className":"RightWalk","width":85,"id":"1027","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1028.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":186,"className":"LeftAttack","width":252,"id":"1028","totalFrames":35},"LeftDefend":{"height":89,"className":"LeftDefend","width":87,"id":"1028","totalFrames":3},"LeftDie":{"height":149,"className":"LeftDie","width":129,"id":"1028","totalFrames":41},"LeftHit":{"height":108,"className":"LeftHit","width":110,"id":"1028","totalFrames":6},"LeftMagic":{"height":157,"className":"LeftMagic","width":254,"id":"1028","totalFrames":41},"LeftStand":{"height":106,"className":"LeftStand","width":106,"id":"1028","totalFrames":48},"LeftWalk":{"height":99,"className":"LeftWalk","width":148,"id":"1028","totalFrames":24},"RightAttack":{"height":208,"className":"RightAttack","width":154,"id":"1028","totalFrames":35},"RightDefend":{"height":86,"className":"RightDefend","width":88,"id":"1028","totalFrames":3},"RightDie":{"height":128,"className":"RightDie","width":146,"id":"1028","totalFrames":41},"RightHit":{"height":119,"className":"RightHit","width":86,"id":"1028","totalFrames":6},"RightMagic":{"height":156,"className":"RightMagic","width":167,"id":"1028","totalFrames":41},"RightStand":{"height":109,"className":"RightStand","width":82,"id":"1028","totalFrames":48},"RightWalk":{"height":95,"className":"RightWalk","width":96,"id":"1028","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1029.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":137,"className":"LeftAttack","width":248,"id":"1029","totalFrames":30},"LeftDefend":{"height":86,"className":"LeftDefend","width":91,"id":"1029","totalFrames":2},"LeftDie":{"height":108,"className":"LeftDie","width":130,"id":"1029","totalFrames":33},"LeftHit":{"height":93,"className":"LeftHit","width":59,"id":"1029","totalFrames":4},"LeftMagic":{"height":100,"className":"LeftMagic","width":84,"id":"1029","totalFrames":36},"LeftStand":{"height":100,"className":"LeftStand","width":60,"id":"1029","totalFrames":25},"LeftWalk":{"height":95,"className":"LeftWalk","width":79,"id":"1029","totalFrames":8},"RightAttack":{"height":176,"className":"RightAttack","width":160,"id":"1029","totalFrames":30},"RightDefend":{"height":92,"className":"RightDefend","width":69,"id":"1029","totalFrames":2},"RightDie":{"height":120,"className":"RightDie","width":103,"id":"1029","totalFrames":33},"RightHit":{"height":98,"className":"RightHit","width":69,"id":"1029","totalFrames":4},"RightMagic":{"height":102,"className":"RightMagic","width":96,"id":"1029","totalFrames":36},"RightStand":{"height":102,"className":"RightStand","width":65,"id":"1029","totalFrames":25},"RightWalk":{"height":100,"className":"RightWalk","width":76,"id":"1029","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1030.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":164,"className":"LeftAttack","width":204,"id":"1030","totalFrames":23},"LeftDefend":{"height":102,"className":"LeftDefend","width":78,"id":"1030","totalFrames":2},"LeftDie":{"height":139,"className":"LeftDie","width":157,"id":"1030","totalFrames":21},"LeftHit":{"height":129,"className":"LeftHit","width":105,"id":"1030","totalFrames":4},"LeftMagic":{"height":157,"className":"LeftMagic","width":139,"id":"1030","totalFrames":32},"LeftStand":{"height":112,"className":"LeftStand","width":75,"id":"1030","totalFrames":24},"LeftWalk":{"height":110,"className":"LeftWalk","width":69,"id":"1030","totalFrames":8},"RightAttack":{"height":174,"className":"RightAttack","width":210,"id":"1030","totalFrames":23},"RightDefend":{"height":99,"className":"RightDefend","width":62,"id":"1030","totalFrames":2},"RightDie":{"height":128,"className":"RightDie","width":129,"id":"1030","totalFrames":21},"RightHit":{"height":103,"className":"RightHit","width":107,"id":"1030","totalFrames":4},"RightMagic":{"height":127,"className":"RightMagic","width":116,"id":"1030","totalFrames":32},"RightStand":{"height":116,"className":"RightStand","width":80,"id":"1030","totalFrames":24},"RightWalk":{"height":111,"className":"RightWalk","width":80,"id":"1030","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1031.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":129,"className":"LeftAttack","width":204,"id":"1031","totalFrames":23},"LeftDefend":{"height":87,"className":"LeftDefend","width":94,"id":"1031","totalFrames":2},"LeftDie":{"height":128,"className":"LeftDie","width":143,"id":"1031","totalFrames":20},"LeftHit":{"height":94,"className":"LeftHit","width":111,"id":"1031","totalFrames":4},"LeftMagic":{"height":114,"className":"LeftMagic","width":110,"id":"1031","totalFrames":24},"LeftStand":{"height":91,"className":"LeftStand","width":64,"id":"1031","totalFrames":20},"LeftWalk":{"height":95,"className":"LeftWalk","width":115,"id":"1031","totalFrames":16},"RightAttack":{"height":135,"className":"RightAttack","width":158,"id":"1031","totalFrames":23},"RightDefend":{"height":85,"className":"RightDefend","width":61,"id":"1031","totalFrames":2},"RightDie":{"height":103,"className":"RightDie","width":106,"id":"1031","totalFrames":20},"RightHit":{"height":105,"className":"RightHit","width":68,"id":"1031","totalFrames":4},"RightMagic":{"height":114,"className":"RightMagic","width":116,"id":"1031","totalFrames":24},"RightStand":{"height":89,"className":"RightStand","width":67,"id":"1031","totalFrames":20},"RightWalk":{"height":90,"className":"RightWalk","width":83,"id":"1031","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1035.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":171,"className":"LeftAttack","width":215,"id":"1035","totalFrames":28},"LeftDefend":{"height":82,"className":"LeftDefend","width":70,"id":"1035","totalFrames":2},"LeftDie":{"height":149,"className":"LeftDie","width":165,"id":"1035","totalFrames":22},"LeftHit":{"height":107,"className":"LeftHit","width":100,"id":"1035","totalFrames":4},"LeftMagic":{"height":131,"className":"LeftMagic","width":154,"id":"1035","totalFrames":29},"LeftStand":{"height":115,"className":"LeftStand","width":96,"id":"1035","totalFrames":26},"LeftWalk":{"height":93,"className":"LeftWalk","width":74,"id":"1035","totalFrames":24},"RightAttack":{"height":152,"className":"RightAttack","width":183,"id":"1035","totalFrames":28},"RightDefend":{"height":81,"className":"RightDefend","width":56,"id":"1035","totalFrames":2},"RightDie":{"height":108,"className":"RightDie","width":160,"id":"1035","totalFrames":22},"RightHit":{"height":90,"className":"RightHit","width":98,"id":"1035","totalFrames":4},"RightMagic":{"height":120,"className":"RightMagic","width":154,"id":"1035","totalFrames":29},"RightStand":{"height":92,"className":"RightStand","width":101,"id":"1035","totalFrames":26},"RightWalk":{"height":91,"className":"RightWalk","width":76,"id":"1035","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1038.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":144,"className":"LeftAttack","width":203,"id":"1038","totalFrames":37},"LeftDefend":{"height":74,"className":"LeftDefend","width":79,"id":"1038","totalFrames":1},"LeftDie":{"height":86,"className":"LeftDie","width":151,"id":"1038","totalFrames":20},"LeftHit":{"height":88,"className":"LeftHit","width":102,"id":"1038","totalFrames":3},"LeftMagic":{"height":156,"className":"LeftMagic","width":108,"id":"1038","totalFrames":27},"LeftStand":{"height":83,"className":"LeftStand","width":93,"id":"1038","totalFrames":20},"LeftWalk":{"height":94,"className":"LeftWalk","width":121,"id":"1038","totalFrames":8},"RightAttack":{"height":136,"className":"RightAttack","width":182,"id":"1038","totalFrames":37},"RightDefend":{"height":72,"className":"RightDefend","width":58,"id":"1038","totalFrames":1},"RightDie":{"height":111,"className":"RightDie","width":111,"id":"1038","totalFrames":20},"RightHit":{"height":86,"className":"RightHit","width":69,"id":"1038","totalFrames":3},"RightMagic":{"height":153,"className":"RightMagic","width":109,"id":"1038","totalFrames":27},"RightStand":{"height":81,"className":"RightStand","width":73,"id":"1038","totalFrames":20},"RightWalk":{"height":89,"className":"RightWalk","width":101,"id":"1038","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1041.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":90,"className":"LeftAttack","width":156,"id":"1041","totalFrames":21},"LeftDefend":{"height":52,"className":"LeftDefend","width":83,"id":"1041","totalFrames":2},"LeftDie":{"height":104,"className":"LeftDie","width":110,"id":"1041","totalFrames":19},"LeftHit":{"height":72,"className":"LeftHit","width":77,"id":"1041","totalFrames":3},"LeftMagic":{"height":134,"className":"LeftMagic","width":134,"id":"1041","totalFrames":37},"LeftStand":{"height":53,"className":"LeftStand","width":66,"id":"1041","totalFrames":23},"LeftWalk":{"height":56,"className":"LeftWalk","width":63,"id":"1041","totalFrames":7},"RightAttack":{"height":107,"className":"RightAttack","width":124,"id":"1041","totalFrames":21},"RightDefend":{"height":73,"className":"RightDefend","width":53,"id":"1041","totalFrames":2},"RightDie":{"height":102,"className":"RightDie","width":90,"id":"1041","totalFrames":19},"RightHit":{"height":79,"className":"RightHit","width":69,"id":"1041","totalFrames":5},"RightMagic":{"height":146,"className":"RightMagic","width":100,"id":"1041","totalFrames":37},"RightStand":{"height":53,"className":"RightStand","width":64,"id":"1041","totalFrames":23},"RightWalk":{"height":54,"className":"RightWalk","width":66,"id":"1041","totalFrames":7}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1048.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":116,"className":"LeftAttack","width":163,"id":"1048","totalFrames":20},"LeftDefend":{"height":61,"className":"LeftDefend","width":74,"id":"1048","totalFrames":1},"LeftDie":{"height":80,"className":"LeftDie","width":128,"id":"1048","totalFrames":18},"LeftHit":{"height":94,"className":"LeftHit","width":78,"id":"1048","totalFrames":3},"LeftMagic":{"height":102,"className":"LeftMagic","width":93,"id":"1048","totalFrames":28},"LeftStand":{"height":83,"className":"LeftStand","width":99,"id":"1048","totalFrames":21},"LeftWalk":{"height":76,"className":"LeftWalk","width":94,"id":"1048","totalFrames":8},"RightAttack":{"height":150,"className":"RightAttack","width":123,"id":"1048","totalFrames":20},"RightDefend":{"height":56,"className":"RightDefend","width":80,"id":"1048","totalFrames":1},"RightDie":{"height":81,"className":"RightDie","width":99,"id":"1048","totalFrames":18},"RightHit":{"height":87,"className":"RightHit","width":90,"id":"1048","totalFrames":3},"RightMagic":{"height":106,"className":"RightMagic","width":83,"id":"1048","totalFrames":28},"RightStand":{"height":89,"className":"RightStand","width":90,"id":"1048","totalFrames":21},"RightWalk":{"height":77,"className":"RightWalk","width":83,"id":"1048","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1050.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":243,"className":"LeftAttack","width":320,"id":"1050","totalFrames":30},"LeftDefend":{"height":122,"className":"LeftDefend","width":170,"id":"1050","totalFrames":2},"LeftDie":{"height":192,"className":"LeftDie","width":212,"id":"1050","totalFrames":19},"LeftHit":{"height":157,"className":"LeftHit","width":173,"id":"1050","totalFrames":7},"LeftMagic":{"height":235,"className":"LeftMagic","width":206,"id":"1050","totalFrames":39},"LeftStand":{"height":132,"className":"LeftStand","width":178,"id":"1050","totalFrames":20},"LeftWalk":{"height":137,"className":"LeftWalk","width":186,"id":"1050","totalFrames":8},"RightAttack":{"height":272,"className":"RightAttack","width":233,"id":"1050","totalFrames":30},"RightDefend":{"height":131,"className":"RightDefend","width":159,"id":"1050","totalFrames":2},"RightDie":{"height":176,"className":"RightDie","width":258,"id":"1050","totalFrames":19},"RightHit":{"height":162,"className":"RightHit","width":163,"id":"1050","totalFrames":7},"RightMagic":{"height":232,"className":"RightMagic","width":199,"id":"1050","totalFrames":39},"RightStand":{"height":136,"className":"RightStand","width":167,"id":"1050","totalFrames":20},"RightWalk":{"height":141,"className":"RightWalk","width":168,"id":"1050","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1054.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":117,"className":"LeftAttack","width":134,"id":"1054","totalFrames":29},"LeftDefend":{"height":71,"className":"LeftDefend","width":73,"id":"1054","totalFrames":1},"LeftDie":{"height":97,"className":"LeftDie","width":102,"id":"1054","totalFrames":22},"LeftHit":{"height":77,"className":"LeftHit","width":71,"id":"1054","totalFrames":3},"LeftMagic":{"height":135,"className":"LeftMagic","width":97,"id":"1054","totalFrames":20},"LeftStand":{"height":73,"className":"LeftStand","width":84,"id":"1054","totalFrames":23},"LeftWalk":{"height":80,"className":"LeftWalk","width":82,"id":"1054","totalFrames":8},"RightAttack":{"height":119,"className":"RightAttack","width":126,"id":"1054","totalFrames":29},"RightDefend":{"height":77,"className":"RightDefend","width":80,"id":"1054","totalFrames":1},"RightDie":{"height":93,"className":"RightDie","width":97,"id":"1054","totalFrames":22},"RightHit":{"height":81,"className":"RightHit","width":82,"id":"1054","totalFrames":3},"RightMagic":{"height":138,"className":"RightMagic","width":118,"id":"1054","totalFrames":20},"RightStand":{"height":76,"className":"RightStand","width":82,"id":"1054","totalFrames":23},"RightWalk":{"height":76,"className":"RightWalk","width":90,"id":"1054","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1061.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":108,"className":"LeftAttack","width":218,"id":"1061","totalFrames":26},"LeftDefend":{"height":106,"className":"LeftDefend","width":97,"id":"1061","totalFrames":1},"LeftDie":{"height":99,"className":"LeftDie","width":102,"id":"1061","totalFrames":3},"LeftHit":{"height":106,"className":"LeftHit","width":109,"id":"1061","totalFrames":3},"LeftMagic":{"height":140,"className":"LeftMagic","width":120,"id":"1061","totalFrames":44},"LeftStand":{"height":108,"className":"LeftStand","width":97,"id":"1061","totalFrames":24},"LeftWalk":{"height":112,"className":"LeftWalk","width":101,"id":"1061","totalFrames":9},"RightAttack":{"height":120,"className":"RightAttack","width":163,"id":"1061","totalFrames":26},"RightDefend":{"height":95,"className":"RightDefend","width":90,"id":"1061","totalFrames":1},"RightDie":{"height":133,"className":"RightDie","width":117,"id":"1061","totalFrames":32},"RightHit":{"height":99,"className":"RightHit","width":102,"id":"1061","totalFrames":3},"RightMagic":{"height":138,"className":"RightMagic","width":111,"id":"1061","totalFrames":44},"RightStand":{"height":101,"className":"RightStand","width":90,"id":"1061","totalFrames":24},"RightWalk":{"height":101,"className":"RightWalk","width":96,"id":"1061","totalFrames":9}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1062.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":116,"className":"LeftAttack","width":152,"id":"1062","totalFrames":24},"LeftDefend":{"height":66,"className":"LeftDefend","width":64,"id":"1062","totalFrames":1},"LeftDie":{"height":108,"className":"LeftDie","width":99,"id":"1062","totalFrames":28},"LeftHit":{"height":79,"className":"LeftHit","width":64,"id":"1062","totalFrames":3},"LeftMagic":{"height":145,"className":"LeftMagic","width":79,"id":"1062","totalFrames":30},"LeftStand":{"height":78,"className":"LeftStand","width":74,"id":"1062","totalFrames":20},"LeftWalk":{"height":96,"className":"LeftWalk","width":73,"id":"1062","totalFrames":13},"RightAttack":{"height":132,"className":"RightAttack","width":111,"id":"1062","totalFrames":24},"RightDefend":{"height":69,"className":"RightDefend","width":49,"id":"1062","totalFrames":1},"RightDie":{"height":85,"className":"RightDie","width":124,"id":"1062","totalFrames":28},"RightHit":{"height":82,"className":"RightHit","width":49,"id":"1062","totalFrames":3},"RightMagic":{"height":147,"className":"RightMagic","width":73,"id":"1062","totalFrames":30},"RightStand":{"height":81,"className":"RightStand","width":56,"id":"1062","totalFrames":20},"RightWalk":{"height":98,"className":"RightWalk","width":58,"id":"1062","totalFrames":13}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1063.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":127,"className":"LeftAttack","width":264,"id":"1063","totalFrames":34},"LeftDefend":{"height":127,"className":"LeftDefend","width":91,"id":"1063","totalFrames":1},"LeftDie":{"height":148,"className":"LeftDie","width":152,"id":"1063","totalFrames":21},"LeftHit":{"height":103,"className":"LeftHit","width":110,"id":"1063","totalFrames":3},"LeftMagic":{"height":202,"className":"LeftMagic","width":173,"id":"1063","totalFrames":32},"LeftStand":{"height":127,"className":"LeftStand","width":156,"id":"1063","totalFrames":20},"LeftWalk":{"height":103,"className":"LeftWalk","width":128,"id":"1063","totalFrames":8},"RightAttack":{"height":168,"className":"RightAttack","width":204,"id":"1063","totalFrames":33},"RightDefend":{"height":95,"className":"RightDefend","width":61,"id":"1063","totalFrames":1},"RightDie":{"height":123,"className":"RightDie","width":164,"id":"1063","totalFrames":21},"RightHit":{"height":119,"className":"RightHit","width":81,"id":"1063","totalFrames":3},"RightMagic":{"height":181,"className":"RightMagic","width":151,"id":"1063","totalFrames":31},"RightStand":{"height":123,"className":"RightStand","width":117,"id":"1063","totalFrames":20},"RightWalk":{"height":95,"className":"RightWalk","width":93,"id":"1063","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1065.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":163,"className":"LeftAttack","width":177,"id":"1065","totalFrames":28},"LeftDefend":{"height":96,"className":"LeftDefend","width":59,"id":"1065","totalFrames":2},"LeftDie":{"height":150,"className":"LeftDie","width":117,"id":"1065","totalFrames":23},"LeftHit":{"height":110,"className":"LeftHit","width":92,"id":"1065","totalFrames":7},"LeftMagic":{"height":188,"className":"LeftMagic","width":175,"id":"1065","totalFrames":45},"LeftStand":{"height":95,"className":"LeftStand","width":52,"id":"1065","totalFrames":25},"LeftWalk":{"height":94,"className":"LeftWalk","width":77,"id":"1065","totalFrames":16},"RightAttack":{"height":149,"className":"RightAttack","width":154,"id":"1065","totalFrames":28},"RightDefend":{"height":95,"className":"RightDefend","width":72,"id":"1065","totalFrames":2},"RightDie":{"height":141,"className":"RightDie","width":160,"id":"1065","totalFrames":23},"RightHit":{"height":115,"className":"RightHit","width":102,"id":"1065","totalFrames":7},"RightMagic":{"height":197,"className":"RightMagic","width":149,"id":"1065","totalFrames":45},"RightStand":{"height":87,"className":"RightStand","width":55,"id":"1065","totalFrames":25},"RightWalk":{"height":92,"className":"RightWalk","width":70,"id":"1065","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1067.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":147,"className":"LeftAttack","width":197,"id":"1067","totalFrames":33},"LeftDefend":{"height":89,"className":"LeftDefend","width":84,"id":"1067","totalFrames":1},"LeftDie":{"height":105,"className":"LeftDie","width":114,"id":"1067","totalFrames":25},"LeftHit":{"height":98,"className":"LeftHit","width":62,"id":"1067","totalFrames":3},"LeftMagic":{"height":144,"className":"LeftMagic","width":113,"id":"1067","totalFrames":18},"LeftStand":{"height":104,"className":"LeftStand","width":84,"id":"1067","totalFrames":17},"LeftWalk":{"height":103,"className":"LeftWalk","width":77,"id":"1067","totalFrames":8},"RightAttack":{"height":189,"className":"RightAttack","width":147,"id":"1067","totalFrames":33},"RightDefend":{"height":92,"className":"RightDefend","width":82,"id":"1067","totalFrames":1},"RightDie":{"height":102,"className":"RightDie","width":106,"id":"1067","totalFrames":25},"RightHit":{"height":103,"className":"RightHit","width":85,"id":"1067","totalFrames":3},"RightMagic":{"height":144,"className":"RightMagic","width":97,"id":"1067","totalFrames":18},"RightStand":{"height":101,"className":"RightStand","width":86,"id":"1067","totalFrames":17},"RightWalk":{"height":102,"className":"RightWalk","width":83,"id":"1067","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1068.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":186,"className":"LeftAttack","width":76,"id":"1068","totalFrames":38},"LeftDefend":{"height":65,"className":"LeftDefend","width":60,"id":"1068","totalFrames":1},"LeftDie":{"height":70,"className":"LeftDie","width":125,"id":"1068","totalFrames":30},"LeftHit":{"height":76,"className":"LeftHit","width":94,"id":"1068","totalFrames":3},"LeftMagic":{"height":91,"className":"LeftMagic","width":100,"id":"1068","totalFrames":34},"LeftStand":{"height":72,"className":"LeftStand","width":78,"id":"1068","totalFrames":22},"LeftWalk":{"height":89,"className":"LeftWalk","width":63,"id":"1068","totalFrames":8},"RightAttack":{"height":191,"className":"RightAttack","width":75,"id":"1068","totalFrames":40},"RightDefend":{"height":64,"className":"RightDefend","width":46,"id":"1068","totalFrames":1},"RightDie":{"height":91,"className":"RightDie","width":87,"id":"1068","totalFrames":30},"RightHit":{"height":75,"className":"RightHit","width":71,"id":"1068","totalFrames":3},"RightMagic":{"height":90,"className":"RightMagic","width":79,"id":"1068","totalFrames":34},"RightStand":{"height":71,"className":"RightStand","width":55,"id":"1068","totalFrames":22},"RightWalk":{"height":90,"className":"RightWalk","width":68,"id":"1068","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1071.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":192,"className":"LeftAttack","width":284,"id":"1071","totalFrames":29},"LeftDefend":{"height":121,"className":"LeftDefend","width":137,"id":"1071","totalFrames":2},"LeftDie":{"height":188,"className":"LeftDie","width":184,"id":"1071","totalFrames":26},"LeftHit":{"height":130,"className":"LeftHit","width":159,"id":"1071","totalFrames":4},"LeftMagic":{"height":201,"className":"LeftMagic","width":240,"id":"1071","totalFrames":30},"LeftStand":{"height":149,"className":"LeftStand","width":183,"id":"1071","totalFrames":20},"LeftWalk":{"height":153,"className":"LeftWalk","width":179,"id":"1071","totalFrames":24},"RightAttack":{"height":251,"className":"RightAttack","width":239,"id":"1071","totalFrames":29},"RightDefend":{"height":108,"className":"RightDefend","width":186,"id":"1071","totalFrames":2},"RightDie":{"height":171,"className":"RightDie","width":211,"id":"1071","totalFrames":26},"RightHit":{"height":100,"className":"RightHit","width":174,"id":"1071","totalFrames":4},"RightMagic":{"height":188,"className":"RightMagic","width":224,"id":"1071","totalFrames":30},"RightStand":{"height":146,"className":"RightStand","width":181,"id":"1071","totalFrames":20},"RightWalk":{"height":149,"className":"RightWalk","width":179,"id":"1071","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1072.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":277,"className":"LeftAttack","width":414,"id":"1072","totalFrames":46},"LeftDefend":{"height":69,"className":"LeftDefend","width":59,"id":"1072","totalFrames":2},"LeftDie":{"height":101,"className":"LeftDie","width":98,"id":"1072","totalFrames":30},"LeftHit":{"height":86,"className":"LeftHit","width":63,"id":"1072","totalFrames":4},"LeftMagic":{"height":190,"className":"LeftMagic","width":228,"id":"1072","totalFrames":32},"LeftStand":{"height":189,"className":"LeftStand","width":144,"id":"1072","totalFrames":9},"LeftWalk":{"height":75,"className":"LeftWalk","width":56,"id":"1072","totalFrames":18},"RightAttack":{"height":299,"className":"RightAttack","width":297,"id":"1072","totalFrames":46},"RightDefend":{"height":75,"className":"RightDefend","width":61,"id":"1072","totalFrames":2},"RightDie":{"height":104,"className":"RightDie","width":86,"id":"1072","totalFrames":30},"RightHit":{"height":88,"className":"RightHit","width":64,"id":"1072","totalFrames":4},"RightMagic":{"height":196,"className":"RightMagic","width":273,"id":"1072","totalFrames":32},"RightStand":{"height":191,"className":"RightStand","width":144,"id":"1072","totalFrames":18},"RightWalk":{"height":79,"className":"RightWalk","width":60,"id":"1072","totalFrames":18}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1073.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":142,"className":"LeftAttack","width":189,"id":"1073","totalFrames":29},"LeftDefend":{"height":89,"className":"LeftDefend","width":74,"id":"1073","totalFrames":1},"LeftDie":{"height":127,"className":"LeftDie","width":132,"id":"1073","totalFrames":23},"LeftHit":{"height":108,"className":"LeftHit","width":81,"id":"1073","totalFrames":3},"LeftMagic":{"height":148,"className":"LeftMagic","width":139,"id":"1073","totalFrames":39},"LeftStand":{"height":94,"className":"LeftStand","width":85,"id":"1073","totalFrames":19},"LeftWalk":{"height":120,"className":"LeftWalk","width":108,"id":"1073","totalFrames":8},"RightAttack":{"height":183,"className":"RightAttack","width":216,"id":"1073","totalFrames":29},"RightDefend":{"height":90,"className":"RightDefend","width":68,"id":"1073","totalFrames":1},"RightDie":{"height":120,"className":"RightDie","width":196,"id":"1073","totalFrames":23},"RightHit":{"height":109,"className":"RightHit","width":75,"id":"1073","totalFrames":3},"RightMagic":{"height":176,"className":"RightMagic","width":146,"id":"1073","totalFrames":39},"RightStand":{"height":95,"className":"RightStand","width":88,"id":"1073","totalFrames":19},"RightWalk":{"height":92,"className":"RightWalk","width":112,"id":"1073","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1074.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":123,"className":"LeftAttack","width":125,"id":"1074","totalFrames":26},"LeftDefend":{"height":115,"className":"LeftDefend","width":59,"id":"1074","totalFrames":2},"LeftDie":{"height":196,"className":"LeftDie","width":93,"id":"1074","totalFrames":20},"LeftHit":{"height":121,"className":"LeftHit","width":72,"id":"1074","totalFrames":4},"LeftMagic":{"height":120,"className":"LeftMagic","width":151,"id":"1074","totalFrames":31},"LeftStand":{"height":117,"className":"LeftStand","width":87,"id":"1074","totalFrames":24},"LeftWalk":{"height":122,"className":"LeftWalk","width":78,"id":"1074","totalFrames":16},"RightAttack":{"height":107,"className":"RightAttack","width":154,"id":"1074","totalFrames":26},"RightDefend":{"height":99,"className":"RightDefend","width":68,"id":"1074","totalFrames":2},"RightDie":{"height":195,"className":"RightDie","width":89,"id":"1074","totalFrames":20},"RightHit":{"height":103,"className":"RightHit","width":68,"id":"1074","totalFrames":4},"RightMagic":{"height":100,"className":"RightMagic","width":186,"id":"1074","totalFrames":31},"RightStand":{"height":100,"className":"RightStand","width":124,"id":"1074","totalFrames":24},"RightWalk":{"height":102,"className":"RightWalk","width":104,"id":"1074","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1076.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":198,"className":"LeftAttack","width":217,"id":"1076","totalFrames":31},"LeftDefend":{"height":121,"className":"LeftDefend","width":86,"id":"1076","totalFrames":2},"LeftDie":{"height":193,"className":"LeftDie","width":95,"id":"1076","totalFrames":20},"LeftHit":{"height":124,"className":"LeftHit","width":88,"id":"1076","totalFrames":4},"LeftMagic":{"height":132,"className":"LeftMagic","width":110,"id":"1076","totalFrames":28},"LeftStand":{"height":120,"className":"LeftStand","width":113,"id":"1076","totalFrames":18},"LeftWalk":{"height":131,"className":"LeftWalk","width":84,"id":"1076","totalFrames":18},"RightAttack":{"height":232,"className":"RightAttack","width":145,"id":"1076","totalFrames":31},"RightDefend":{"height":105,"className":"RightDefend","width":79,"id":"1076","totalFrames":2},"RightDie":{"height":192,"className":"RightDie","width":94,"id":"1076","totalFrames":20},"RightHit":{"height":108,"className":"RightHit","width":81,"id":"1076","totalFrames":4},"RightMagic":{"height":110,"className":"RightMagic","width":130,"id":"1076","totalFrames":28},"RightStand":{"height":105,"className":"RightStand","width":145,"id":"1076","totalFrames":18},"RightWalk":{"height":107,"className":"RightWalk","width":116,"id":"1076","totalFrames":18}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1078.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":170,"className":"LeftAttack","width":158,"id":"1078","totalFrames":37},"LeftDefend":{"height":65,"className":"LeftDefend","width":70,"id":"1078","totalFrames":1},"LeftDie":{"height":86,"className":"LeftDie","width":156,"id":"1078","totalFrames":27},"LeftHit":{"height":75,"className":"LeftHit","width":82,"id":"1078","totalFrames":3},"LeftMagic":{"height":172,"className":"LeftMagic","width":119,"id":"1078","totalFrames":30},"LeftStand":{"height":81,"className":"LeftStand","width":76,"id":"1078","totalFrames":23},"LeftWalk":{"height":89,"className":"LeftWalk","width":74,"id":"1078","totalFrames":8},"RightAttack":{"height":205,"className":"RightAttack","width":134,"id":"1078","totalFrames":37},"RightDefend":{"height":62,"className":"RightDefend","width":56,"id":"1078","totalFrames":1},"RightDie":{"height":101,"className":"RightDie","width":97,"id":"1078","totalFrames":27},"RightHit":{"height":74,"className":"RightHit","width":64,"id":"1078","totalFrames":3},"RightMagic":{"height":169,"className":"RightMagic","width":127,"id":"1078","totalFrames":30},"RightStand":{"height":78,"className":"RightStand","width":57,"id":"1078","totalFrames":23},"RightWalk":{"height":90,"className":"RightWalk","width":54,"id":"1078","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1080.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":204,"className":"LeftAttack","width":343,"id":"1080","totalFrames":26},"LeftDefend":{"height":97,"className":"LeftDefend","width":77,"id":"1080","totalFrames":2},"LeftDie":{"height":105,"className":"LeftDie","width":157,"id":"1080","totalFrames":23},"LeftHit":{"height":101,"className":"LeftHit","width":81,"id":"1080","totalFrames":4},"LeftMagic":{"height":226,"className":"LeftMagic","width":199,"id":"1080","totalFrames":30},"LeftStand":{"height":95,"className":"LeftStand","width":84,"id":"1080","totalFrames":20},"LeftWalk":{"height":96,"className":"LeftWalk","width":71,"id":"1080","totalFrames":16},"RightAttack":{"height":282,"className":"RightAttack","width":219,"id":"1080","totalFrames":26},"RightDefend":{"height":98,"className":"RightDefend","width":52,"id":"1080","totalFrames":2},"RightDie":{"height":116,"className":"RightDie","width":115,"id":"1080","totalFrames":23},"RightHit":{"height":101,"className":"RightHit","width":64,"id":"1080","totalFrames":4},"RightMagic":{"height":189,"className":"RightMagic","width":277,"id":"1080","totalFrames":30},"RightStand":{"height":95,"className":"RightStand","width":66,"id":"1080","totalFrames":20},"RightWalk":{"height":96,"className":"RightWalk","width":64,"id":"1080","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1081.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":149,"className":"LeftAttack","width":314,"id":"1081","totalFrames":18},"LeftDefend":{"height":104,"className":"LeftDefend","width":170,"id":"1081","totalFrames":2},"LeftDie":{"height":203,"className":"LeftDie","width":192,"id":"1081","totalFrames":22},"LeftHit":{"height":117,"className":"LeftHit","width":153,"id":"1081","totalFrames":4},"LeftMagic":{"height":176,"className":"LeftMagic","width":246,"id":"1081","totalFrames":34},"LeftStand":{"height":130,"className":"LeftStand","width":150,"id":"1081","totalFrames":20},"LeftWalk":{"height":143,"className":"LeftWalk","width":142,"id":"1081","totalFrames":24},"RightAttack":{"height":243,"className":"RightAttack","width":297,"id":"1081","totalFrames":18},"RightDefend":{"height":168,"className":"RightDefend","width":169,"id":"1081","totalFrames":2},"RightDie":{"height":180,"className":"RightDie","width":206,"id":"1081","totalFrames":22},"RightHit":{"height":126,"className":"RightHit","width":132,"id":"1081","totalFrames":4},"RightMagic":{"height":193,"className":"RightMagic","width":206,"id":"1081","totalFrames":34},"RightStand":{"height":137,"className":"RightStand","width":164,"id":"1081","totalFrames":20},"RightWalk":{"height":138,"className":"RightWalk","width":160,"id":"1081","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1082.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":125,"className":"LeftAttack","width":244,"id":"1082","totalFrames":33},"LeftDefend":{"height":94,"className":"LeftDefend","width":107,"id":"1082","totalFrames":1},"LeftDie":{"height":107,"className":"LeftDie","width":125,"id":"1082","totalFrames":21},"LeftHit":{"height":85,"className":"LeftHit","width":95,"id":"1082","totalFrames":3},"LeftMagic":{"height":117,"className":"LeftMagic","width":155,"id":"1082","totalFrames":36},"LeftStand":{"height":84,"className":"LeftStand","width":108,"id":"1082","totalFrames":23},"LeftWalk":{"height":94,"className":"LeftWalk","width":92,"id":"1082","totalFrames":8},"RightAttack":{"height":170,"className":"RightAttack","width":176,"id":"1082","totalFrames":33},"RightDefend":{"height":97,"className":"RightDefend","width":63,"id":"1082","totalFrames":1},"RightDie":{"height":112,"className":"RightDie","width":158,"id":"1082","totalFrames":21},"RightHit":{"height":89,"className":"RightHit","width":78,"id":"1082","totalFrames":3},"RightMagic":{"height":141,"className":"RightMagic","width":156,"id":"1082","totalFrames":36},"RightStand":{"height":88,"className":"RightStand","width":78,"id":"1082","totalFrames":23},"RightWalk":{"height":99,"className":"RightWalk","width":99,"id":"1082","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1084.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":135,"className":"LeftAttack","width":239,"id":"1084","totalFrames":20},"LeftDefend":{"height":87,"className":"LeftDefend","width":93,"id":"1084","totalFrames":2},"LeftDie":{"height":132,"className":"LeftDie","width":177,"id":"1084","totalFrames":18},"LeftHit":{"height":96,"className":"LeftHit","width":99,"id":"1084","totalFrames":4},"LeftMagic":{"height":124,"className":"LeftMagic","width":132,"id":"1084","totalFrames":24},"LeftStand":{"height":111,"className":"LeftStand","width":96,"id":"1084","totalFrames":26},"LeftWalk":{"height":100,"className":"LeftWalk","width":111,"id":"1084","totalFrames":20},"RightAttack":{"height":162,"className":"RightAttack","width":164,"id":"1084","totalFrames":20},"RightDefend":{"height":86,"className":"RightDefend","width":74,"id":"1084","totalFrames":2},"RightDie":{"height":139,"className":"RightDie","width":139,"id":"1084","totalFrames":18},"RightHit":{"height":95,"className":"RightHit","width":80,"id":"1084","totalFrames":4},"RightMagic":{"height":131,"className":"RightMagic","width":115,"id":"1084","totalFrames":24},"RightStand":{"height":109,"className":"RightStand","width":90,"id":"1084","totalFrames":26},"RightWalk":{"height":100,"className":"RightWalk","width":83,"id":"1084","totalFrames":20}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1086.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":155,"className":"LeftAttack","width":208,"id":"1086","totalFrames":37},"LeftDefend":{"height":89,"className":"LeftDefend","width":75,"id":"1086","totalFrames":2},"LeftDie":{"height":116,"className":"LeftDie","width":116,"id":"1086","totalFrames":18},"LeftHit":{"height":92,"className":"LeftHit","width":70,"id":"1086","totalFrames":3},"LeftMagic":{"height":206,"className":"LeftMagic","width":208,"id":"1086","totalFrames":22},"LeftStand":{"height":84,"className":"LeftStand","width":65,"id":"1086","totalFrames":17},"LeftWalk":{"height":103,"className":"LeftWalk","width":89,"id":"1086","totalFrames":11},"RightAttack":{"height":184,"className":"RightAttack","width":144,"id":"1086","totalFrames":37},"RightDefend":{"height":89,"className":"RightDefend","width":60,"id":"1086","totalFrames":1},"RightDie":{"height":94,"className":"RightDie","width":98,"id":"1086","totalFrames":18},"RightHit":{"height":94,"className":"RightHit","width":80,"id":"1086","totalFrames":3},"RightMagic":{"height":187,"className":"RightMagic","width":214,"id":"1086","totalFrames":22},"RightStand":{"height":86,"className":"RightStand","width":75,"id":"1086","totalFrames":17},"RightWalk":{"height":106,"className":"RightWalk","width":78,"id":"1086","totalFrames":11}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1087.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":169,"className":"LeftAttack","width":130,"id":"1087","totalFrames":27},"LeftDefend":{"height":117,"className":"LeftDefend","width":105,"id":"1087","totalFrames":2},"LeftDie":{"height":121,"className":"LeftDie","width":138,"id":"1087","totalFrames":19},"LeftHit":{"height":116,"className":"LeftHit","width":92,"id":"1087","totalFrames":4},"LeftMagic":{"height":194,"className":"LeftMagic","width":97,"id":"1087","totalFrames":27},"LeftStand":{"height":121,"className":"LeftStand","width":91,"id":"1087","totalFrames":24},"LeftWalk":{"height":91,"className":"LeftWalk","width":87,"id":"1087","totalFrames":24},"RightAttack":{"height":168,"className":"RightAttack","width":114,"id":"1087","totalFrames":27},"RightDefend":{"height":116,"className":"RightDefend","width":123,"id":"1087","totalFrames":2},"RightDie":{"height":132,"className":"RightDie","width":131,"id":"1087","totalFrames":19},"RightHit":{"height":112,"className":"RightHit","width":122,"id":"1087","totalFrames":4},"RightMagic":{"height":191,"className":"RightMagic","width":122,"id":"1087","totalFrames":27},"RightStand":{"height":119,"className":"RightStand","width":126,"id":"1087","totalFrames":24},"RightWalk":{"height":87,"className":"RightWalk","width":90,"id":"1087","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1090.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":88,"className":"LeftAttack","width":131,"id":"1090","totalFrames":16},"LeftDefend":{"height":29,"className":"LeftDefend","width":40,"id":"1090","totalFrames":1},"LeftDie":{"height":65,"className":"LeftDie","width":66,"id":"1090","totalFrames":20},"LeftHit":{"height":57,"className":"LeftHit","width":39,"id":"1090","totalFrames":3},"LeftMagic":{"height":155,"className":"LeftMagic","width":82,"id":"1090","totalFrames":38},"LeftStand":{"height":34,"className":"LeftStand","width":37,"id":"1090","totalFrames":14},"LeftWalk":{"height":81,"className":"LeftWalk","width":49,"id":"1090","totalFrames":13},"RightAttack":{"height":90,"className":"RightAttack","width":86,"id":"1090","totalFrames":16},"RightDefend":{"height":33,"className":"RightDefend","width":34,"id":"1090","totalFrames":1},"RightDie":{"height":70,"className":"RightDie","width":68,"id":"1090","totalFrames":20},"RightHit":{"height":60,"className":"RightHit","width":36,"id":"1090","totalFrames":3},"RightMagic":{"height":154,"className":"RightMagic","width":80,"id":"1090","totalFrames":38},"RightStand":{"height":36,"className":"RightStand","width":34,"id":"1090","totalFrames":14},"RightWalk":{"height":82,"className":"RightWalk","width":50,"id":"1090","totalFrames":13}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1092.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":158,"className":"LeftAttack","width":195,"id":"1092","totalFrames":32},"LeftDefend":{"height":74,"className":"LeftDefend","width":100,"id":"1092","totalFrames":1},"LeftDie":{"height":105,"className":"LeftDie","width":87,"id":"1092","totalFrames":23},"LeftHit":{"height":79,"className":"LeftHit","width":72,"id":"1092","totalFrames":3},"LeftMagic":{"height":101,"className":"LeftMagic","width":119,"id":"1092","totalFrames":38},"LeftStand":{"height":81,"className":"LeftStand","width":53,"id":"1092","totalFrames":27},"LeftWalk":{"height":83,"className":"LeftWalk","width":62,"id":"1092","totalFrames":8},"RightAttack":{"height":177,"className":"RightAttack","width":125,"id":"1092","totalFrames":32},"RightDefend":{"height":81,"className":"RightDefend","width":72,"id":"1092","totalFrames":1},"RightDie":{"height":93,"className":"RightDie","width":114,"id":"1092","totalFrames":23},"RightHit":{"height":79,"className":"RightHit","width":63,"id":"1092","totalFrames":3},"RightMagic":{"height":108,"className":"RightMagic","width":99,"id":"1092","totalFrames":38},"RightStand":{"height":81,"className":"RightStand","width":61,"id":"1092","totalFrames":27},"RightWalk":{"height":86,"className":"RightWalk","width":58,"id":"1092","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1094.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":128,"className":"LeftAttack","width":217,"id":"1094","totalFrames":36},"LeftDefend":{"height":123,"className":"LeftDefend","width":154,"id":"1094","totalFrames":2},"LeftDie":{"height":163,"className":"LeftDie","width":228,"id":"1094","totalFrames":43},"LeftHit":{"height":115,"className":"LeftHit","width":119,"id":"1094","totalFrames":4},"LeftMagic":{"height":220,"className":"LeftMagic","width":373,"id":"1094","totalFrames":61},"LeftStand":{"height":101,"className":"LeftStand","width":110,"id":"1094","totalFrames":20},"LeftWalk":{"height":114,"className":"LeftWalk","width":117,"id":"1094","totalFrames":24},"RightAttack":{"height":160,"className":"RightAttack","width":180,"id":"1094","totalFrames":36},"RightDefend":{"height":140,"className":"RightDefend","width":119,"id":"1094","totalFrames":3},"RightDie":{"height":176,"className":"RightDie","width":217,"id":"1094","totalFrames":43},"RightHit":{"height":111,"className":"RightHit","width":111,"id":"1094","totalFrames":4},"RightMagic":{"height":216,"className":"RightMagic","width":394,"id":"1094","totalFrames":61},"RightStand":{"height":110,"className":"RightStand","width":94,"id":"1094","totalFrames":20},"RightWalk":{"height":111,"className":"RightWalk","width":118,"id":"1094","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1096.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":73,"className":"LeftAttack","width":111,"id":"1096","totalFrames":13},"LeftDefend":{"height":41,"className":"LeftDefend","width":39,"id":"1096","totalFrames":1},"LeftDie":{"height":55,"className":"LeftDie","width":103,"id":"1096","totalFrames":29},"LeftHit":{"height":51,"className":"LeftHit","width":52,"id":"1096","totalFrames":3},"LeftMagic":{"height":70,"className":"LeftMagic","width":55,"id":"1096","totalFrames":26},"LeftStand":{"height":52,"className":"LeftStand","width":51,"id":"1096","totalFrames":12},"LeftWalk":{"height":55,"className":"LeftWalk","width":50,"id":"1096","totalFrames":8},"RightAttack":{"height":101,"className":"RightAttack","width":71,"id":"1096","totalFrames":13},"RightDefend":{"height":46,"className":"RightDefend","width":37,"id":"1096","totalFrames":1},"RightDie":{"height":59,"className":"RightDie","width":74,"id":"1096","totalFrames":29},"RightHit":{"height":49,"className":"RightHit","width":49,"id":"1096","totalFrames":3},"RightMagic":{"height":66,"className":"RightMagic","width":61,"id":"1096","totalFrames":26},"RightStand":{"height":49,"className":"RightStand","width":48,"id":"1096","totalFrames":12},"RightWalk":{"height":49,"className":"RightWalk","width":51,"id":"1096","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1097.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":145,"className":"LeftAttack","width":175,"id":"1097","totalFrames":26},"LeftDefend":{"height":78,"className":"LeftDefend","width":97,"id":"1097","totalFrames":2},"LeftDie":{"height":147,"className":"LeftDie","width":108,"id":"1097","totalFrames":17},"LeftHit":{"height":96,"className":"LeftHit","width":106,"id":"1097","totalFrames":6},"LeftMagic":{"height":199,"className":"LeftMagic","width":181,"id":"1097","totalFrames":50},"LeftStand":{"height":89,"className":"LeftStand","width":88,"id":"1097","totalFrames":16},"LeftWalk":{"height":98,"className":"LeftWalk","width":95,"id":"1097","totalFrames":8},"RightAttack":{"height":170,"className":"RightAttack","width":158,"id":"1097","totalFrames":26},"RightDefend":{"height":69,"className":"RightDefend","width":128,"id":"1097","totalFrames":2},"RightDie":{"height":129,"className":"RightDie","width":132,"id":"1097","totalFrames":17},"RightHit":{"height":80,"className":"RightHit","width":142,"id":"1097","totalFrames":6},"RightMagic":{"height":215,"className":"RightMagic","width":178,"id":"1097","totalFrames":50},"RightStand":{"height":74,"className":"RightStand","width":110,"id":"1097","totalFrames":16},"RightWalk":{"height":80,"className":"RightWalk","width":116,"id":"1097","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1098.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":195,"className":"LeftAttack","width":239,"id":"1098","totalFrames":19},"LeftDefend":{"height":125,"className":"LeftDefend","width":91,"id":"1098","totalFrames":2},"LeftDie":{"height":132,"className":"LeftDie","width":107,"id":"1098","totalFrames":36},"LeftHit":{"height":125,"className":"LeftHit","width":83,"id":"1098","totalFrames":4},"LeftMagic":{"height":171,"className":"LeftMagic","width":97,"id":"1098","totalFrames":40},"LeftStand":{"height":133,"className":"LeftStand","width":75,"id":"1098","totalFrames":20},"LeftWalk":{"height":133,"className":"LeftWalk","width":75,"id":"1098","totalFrames":20},"RightAttack":{"height":224,"className":"RightAttack","width":163,"id":"1098","totalFrames":19},"RightDefend":{"height":121,"className":"RightDefend","width":85,"id":"1098","totalFrames":2},"RightDie":{"height":129,"className":"RightDie","width":143,"id":"1098","totalFrames":36},"RightHit":{"height":121,"className":"RightHit","width":88,"id":"1098","totalFrames":4},"RightMagic":{"height":167,"className":"RightMagic","width":101,"id":"1098","totalFrames":40},"RightStand":{"height":129,"className":"RightStand","width":80,"id":"1098","totalFrames":20},"RightWalk":{"height":129,"className":"RightWalk","width":80,"id":"1098","totalFrames":20}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1099.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":144,"className":"LeftAttack","width":223,"id":"1099","totalFrames":33},"LeftDefend":{"height":81,"className":"LeftDefend","width":81,"id":"1099","totalFrames":1},"LeftDie":{"height":154,"className":"LeftDie","width":115,"id":"1099","totalFrames":31},"LeftHit":{"height":93,"className":"LeftHit","width":101,"id":"1099","totalFrames":3},"LeftStand":{"height":92,"className":"LeftStand","width":81,"id":"1099","totalFrames":27},"LeftWalk":{"height":90,"className":"LeftWalk","width":85,"id":"1099","totalFrames":15},"RightAttack":{"height":148,"className":"RightAttack","width":222,"id":"1099","totalFrames":41},"RightDefend":{"height":84,"className":"RightDefend","width":83,"id":"1099","totalFrames":1},"RightDie":{"height":140,"className":"RightDie","width":152,"id":"1099","totalFrames":31},"RightHit":{"height":100,"className":"RightHit","width":103,"id":"1099","totalFrames":3},"RightStand":{"height":98,"className":"RightStand","width":84,"id":"1099","totalFrames":27},"RightWalk":{"height":90,"className":"RightWalk","width":81,"id":"1099","totalFrames":15}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1100.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":148,"className":"LeftAttack","width":153,"id":"1100","totalFrames":34},"LeftDefend":{"height":109,"className":"LeftDefend","width":146,"id":"1100","totalFrames":2},"LeftDie":{"height":133,"className":"LeftDie","width":147,"id":"1100","totalFrames":18},"LeftHit":{"height":115,"className":"LeftHit","width":146,"id":"1100","totalFrames":6},"LeftMagic":{"height":179,"className":"LeftMagic","width":163,"id":"1100","totalFrames":30},"LeftStand":{"height":138,"className":"LeftStand","width":147,"id":"1100","totalFrames":22},"LeftWalk":{"height":128,"className":"LeftWalk","width":147,"id":"1100","totalFrames":16},"RightAttack":{"height":165,"className":"RightAttack","width":137,"id":"1100","totalFrames":34},"RightDefend":{"height":105,"className":"RightDefend","width":115,"id":"1100","totalFrames":2},"RightDie":{"height":140,"className":"RightDie","width":115,"id":"1100","totalFrames":18},"RightHit":{"height":125,"className":"RightHit","width":115,"id":"1100","totalFrames":6},"RightMagic":{"height":174,"className":"RightMagic","width":151,"id":"1100","totalFrames":30},"RightStand":{"height":148,"className":"RightStand","width":115,"id":"1100","totalFrames":22},"RightWalk":{"height":150,"className":"RightWalk","width":116,"id":"1100","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1101.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":180,"className":"LeftAttack","width":320,"id":"1101","totalFrames":27},"LeftDefend":{"height":102,"className":"LeftDefend","width":94,"id":"1101","totalFrames":1},"LeftDie":{"height":157,"className":"LeftDie","width":187,"id":"1101","totalFrames":31},"LeftHit":{"height":115,"className":"LeftHit","width":120,"id":"1101","totalFrames":3},"LeftStand":{"height":118,"className":"LeftStand","width":124,"id":"1101","totalFrames":29},"LeftWalk":{"height":132,"className":"LeftWalk","width":125,"id":"1101","totalFrames":19},"RightAttack":{"height":225,"className":"RightAttack","width":219,"id":"1101","totalFrames":27},"RightDefend":{"height":104,"className":"RightDefend","width":83,"id":"1101","totalFrames":1},"RightDie":{"height":130,"className":"RightDie","width":222,"id":"1101","totalFrames":31},"RightHit":{"height":122,"className":"RightHit","width":111,"id":"1101","totalFrames":3},"RightStand":{"height":123,"className":"RightStand","width":122,"id":"1101","totalFrames":29},"RightWalk":{"height":134,"className":"RightWalk","width":116,"id":"1101","totalFrames":17}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1102.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":183,"className":"LeftAttack","width":180,"id":"1102","totalFrames":27},"LeftDefend":{"height":78,"className":"LeftDefend","width":94,"id":"1102","totalFrames":1},"LeftDie":{"height":130,"className":"LeftDie","width":111,"id":"1102","totalFrames":27},"LeftHit":{"height":115,"className":"LeftHit","width":80,"id":"1102","totalFrames":3},"LeftStand":{"height":125,"className":"LeftStand","width":89,"id":"1102","totalFrames":31},"LeftWalk":{"height":106,"className":"LeftWalk","width":108,"id":"1102","totalFrames":19},"RightAttack":{"height":157,"className":"RightAttack","width":154,"id":"1102","totalFrames":27},"RightDefend":{"height":63,"className":"RightDefend","width":128,"id":"1102","totalFrames":1},"RightDie":{"height":116,"className":"RightDie","width":165,"id":"1102","totalFrames":27},"RightHit":{"height":89,"className":"RightHit","width":116,"id":"1102","totalFrames":3},"RightStand":{"height":93,"className":"RightStand","width":131,"id":"1102","totalFrames":31},"RightWalk":{"height":77,"className":"RightWalk","width":156,"id":"1102","totalFrames":19}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1103.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":158,"className":"LeftAttack","width":219,"id":"1103","totalFrames":29},"LeftDefend":{"height":88,"className":"LeftDefend","width":60,"id":"1103","totalFrames":1},"LeftDie":{"height":93,"className":"LeftDie","width":148,"id":"1103","totalFrames":29},"LeftHit":{"height":85,"className":"LeftHit","width":90,"id":"1103","totalFrames":3},"LeftStand":{"height":86,"className":"LeftStand","width":82,"id":"1103","totalFrames":27},"LeftWalk":{"height":91,"className":"LeftWalk","width":88,"id":"1103","totalFrames":15},"RightAttack":{"height":153,"className":"RightAttack","width":271,"id":"1103","totalFrames":29},"RightDefend":{"height":84,"className":"RightDefend","width":72,"id":"1103","totalFrames":1},"RightDie":{"height":98,"className":"RightDie","width":122,"id":"1103","totalFrames":29},"RightHit":{"height":85,"className":"RightHit","width":108,"id":"1103","totalFrames":3},"RightStand":{"height":87,"className":"RightStand","width":100,"id":"1103","totalFrames":27},"RightWalk":{"height":94,"className":"RightWalk","width":105,"id":"1103","totalFrames":13}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1104.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":72,"className":"LeftAttack","width":226,"id":"1104","totalFrames":17},"LeftDefend":{"height":31,"className":"LeftDefend","width":38,"id":"1104","totalFrames":1},"LeftDie":{"height":104,"className":"LeftDie","width":79,"id":"1104","totalFrames":19},"LeftHit":{"height":45,"className":"LeftHit","width":77,"id":"1104","totalFrames":3},"LeftMagic":{"height":65,"className":"LeftMagic","width":81,"id":"1104","totalFrames":16},"LeftStand":{"height":69,"className":"LeftStand","width":77,"id":"1104","totalFrames":20},"LeftWalk":{"height":69,"className":"LeftWalk","width":76,"id":"1104","totalFrames":15},"RightAttack":{"height":140,"className":"RightAttack","width":147,"id":"1104","totalFrames":17},"RightDefend":{"height":35,"className":"RightDefend","width":33,"id":"1104","totalFrames":1},"RightDie":{"height":107,"className":"RightDie","width":70,"id":"1104","totalFrames":19},"RightHit":{"height":44,"className":"RightHit","width":80,"id":"1104","totalFrames":3},"RightMagic":{"height":68,"className":"RightMagic","width":76,"id":"1104","totalFrames":16},"RightStand":{"height":72,"className":"RightStand","width":71,"id":"1104","totalFrames":20},"RightWalk":{"height":79,"className":"RightWalk","width":69,"id":"1104","totalFrames":15}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1107.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":146,"className":"LeftAttack","width":230,"id":"1107","totalFrames":22},"LeftDefend":{"height":101,"className":"LeftDefend","width":82,"id":"1107","totalFrames":2},"LeftDie":{"height":227,"className":"LeftDie","width":154,"id":"1107","totalFrames":26},"LeftHit":{"height":100,"className":"LeftHit","width":89,"id":"1107","totalFrames":4},"LeftMagic":{"height":156,"className":"LeftMagic","width":182,"id":"1107","totalFrames":36},"LeftStand":{"height":108,"className":"LeftStand","width":127,"id":"1107","totalFrames":27},"LeftWalk":{"height":103,"className":"LeftWalk","width":98,"id":"1107","totalFrames":24},"RightAttack":{"height":151,"className":"RightAttack","width":212,"id":"1107","totalFrames":22},"RightDefend":{"height":98,"className":"RightDefend","width":85,"id":"1107","totalFrames":2},"RightDie":{"height":189,"className":"RightDie","width":191,"id":"1107","totalFrames":26},"RightHit":{"height":98,"className":"RightHit","width":88,"id":"1107","totalFrames":4},"RightMagic":{"height":153,"className":"RightMagic","width":186,"id":"1107","totalFrames":36},"RightStand":{"height":102,"className":"RightStand","width":152,"id":"1107","totalFrames":27},"RightWalk":{"height":100,"className":"RightWalk","width":108,"id":"1107","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1110.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":101,"className":"LeftAttack","width":320,"id":"1110","totalFrames":15},"LeftDefend":{"height":55,"className":"LeftDefend","width":98,"id":"1110","totalFrames":2},"LeftDie":{"height":78,"className":"LeftDie","width":93,"id":"1110","totalFrames":29},"LeftHit":{"height":91,"className":"LeftHit","width":80,"id":"1110","totalFrames":2},"LeftMagic":{"height":173,"className":"LeftMagic","width":148,"id":"1110","totalFrames":15},"LeftStand":{"height":83,"className":"LeftStand","width":94,"id":"1110","totalFrames":30},"LeftWalk":{"height":82,"className":"LeftWalk","width":96,"id":"1110","totalFrames":24},"RightAttack":{"height":191,"className":"RightAttack","width":224,"id":"1110","totalFrames":26},"RightDefend":{"height":67,"className":"RightDefend","width":69,"id":"1110","totalFrames":2},"RightDie":{"height":99,"className":"RightDie","width":97,"id":"1110","totalFrames":29},"RightHit":{"height":67,"className":"RightHit","width":92,"id":"1110","totalFrames":4},"RightMagic":{"height":184,"className":"RightMagic","width":148,"id":"1110","totalFrames":28},"RightStand":{"height":82,"className":"RightStand","width":85,"id":"1110","totalFrames":30},"RightWalk":{"height":84,"className":"RightWalk","width":81,"id":"1110","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1111.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":198,"className":"LeftAttack","width":286,"id":"1111","totalFrames":36},"LeftDefend":{"height":172,"className":"LeftDefend","width":115,"id":"1111","totalFrames":2},"LeftDie":{"height":182,"className":"LeftDie","width":213,"id":"1111","totalFrames":28},"LeftHit":{"height":150,"className":"LeftHit","width":210,"id":"1111","totalFrames":6},"LeftMagic":{"height":196,"className":"LeftMagic","width":218,"id":"1111","totalFrames":42},"LeftStand":{"height":151,"className":"LeftStand","width":210,"id":"1111","totalFrames":33},"LeftWalk":{"height":133,"className":"LeftWalk","width":111,"id":"1111","totalFrames":20},"RightAttack":{"height":227,"className":"RightAttack","width":241,"id":"1111","totalFrames":36},"RightDefend":{"height":169,"className":"RightDefend","width":116,"id":"1111","totalFrames":2},"RightDie":{"height":225,"className":"RightDie","width":162,"id":"1111","totalFrames":28},"RightHit":{"height":149,"className":"RightHit","width":153,"id":"1111","totalFrames":6},"RightMagic":{"height":191,"className":"RightMagic","width":179,"id":"1111","totalFrames":42},"RightStand":{"height":150,"className":"RightStand","width":153,"id":"1111","totalFrames":33},"RightWalk":{"height":124,"className":"RightWalk","width":144,"id":"1111","totalFrames":20}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1112.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":178,"className":"LeftAttack","width":193,"id":"1112","totalFrames":33},"LeftDefend":{"height":119,"className":"LeftDefend","width":128,"id":"1112","totalFrames":2},"LeftDie":{"height":155,"className":"LeftDie","width":186,"id":"1112","totalFrames":26},"LeftHit":{"height":148,"className":"LeftHit","width":160,"id":"1112","totalFrames":6},"LeftMagic":{"height":261,"className":"LeftMagic","width":273,"id":"1112","totalFrames":43},"LeftStand":{"height":121,"className":"LeftStand","width":151,"id":"1112","totalFrames":30},"LeftWalk":{"height":112,"className":"LeftWalk","width":160,"id":"1112","totalFrames":8},"RightAttack":{"height":158,"className":"RightAttack","width":202,"id":"1112","totalFrames":33},"RightDefend":{"height":118,"className":"RightDefend","width":121,"id":"1112","totalFrames":2},"RightDie":{"height":151,"className":"RightDie","width":158,"id":"1112","totalFrames":26},"RightHit":{"height":147,"className":"RightHit","width":128,"id":"1112","totalFrames":6},"RightMagic":{"height":259,"className":"RightMagic","width":263,"id":"1112","totalFrames":43},"RightStand":{"height":122,"className":"RightStand","width":135,"id":"1112","totalFrames":30},"RightWalk":{"height":113,"className":"RightWalk","width":138,"id":"1112","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1113.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":206,"className":"LeftAttack","width":306,"id":"1113","totalFrames":23},"LeftDie":{"height":129,"className":"LeftDie","width":162,"id":"1113","totalFrames":29},"LeftHit":{"height":78,"className":"LeftHit","width":106,"id":"1113","totalFrames":3},"LeftStand":{"height":79,"className":"LeftStand","width":118,"id":"1113","totalFrames":27},"LeftWalk":{"height":79,"className":"LeftWalk","width":118,"id":"1113","totalFrames":27},"RightAttack":{"height":211,"className":"RightAttack","width":229,"id":"1113","totalFrames":23},"RightDie":{"height":122,"className":"RightDie","width":159,"id":"1113","totalFrames":29},"RightHit":{"height":93,"className":"RightHit","width":77,"id":"1113","totalFrames":3},"RightStand":{"height":94,"className":"RightStand","width":85,"id":"1113","totalFrames":27},"RightWalk":{"height":94,"className":"RightWalk","width":85,"id":"1113","totalFrames":27}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1116.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":164,"className":"LeftAttack","width":250,"id":"1116","totalFrames":29},"LeftDefend":{"height":75,"className":"LeftDefend","width":93,"id":"1116","totalFrames":1},"LeftDie":{"height":82,"className":"LeftDie","width":110,"id":"1116","totalFrames":31},"LeftHit":{"height":78,"className":"LeftHit","width":91,"id":"1116","totalFrames":3},"LeftStand":{"height":77,"className":"LeftStand","width":96,"id":"1116","totalFrames":27},"LeftWalk":{"height":80,"className":"LeftWalk","width":104,"id":"1116","totalFrames":15},"RightAttack":{"height":218,"className":"RightAttack","width":160,"id":"1116","totalFrames":29},"RightDefend":{"height":82,"className":"RightDefend","width":76,"id":"1116","totalFrames":1},"RightDie":{"height":88,"className":"RightDie","width":89,"id":"1116","totalFrames":31},"RightHit":{"height":76,"className":"RightHit","width":76,"id":"1116","totalFrames":3},"RightStand":{"height":77,"className":"RightStand","width":78,"id":"1116","totalFrames":27},"RightWalk":{"height":79,"className":"RightWalk","width":86,"id":"1116","totalFrames":13}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1118.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":244,"className":"LeftAttack","width":370,"id":"1118","totalFrames":34},"LeftDefend":{"height":188,"className":"LeftDefend","width":276,"id":"1118","totalFrames":1},"LeftDie":{"height":197,"className":"LeftDie","width":359,"id":"1118","totalFrames":26},"LeftHit":{"height":189,"className":"LeftHit","width":268,"id":"1118","totalFrames":4},"LeftMagic":{"height":290,"className":"LeftMagic","width":460,"id":"1118","totalFrames":37},"LeftStand":{"height":191,"className":"LeftStand","width":245,"id":"1118","totalFrames":24},"LeftWalk":{"height":181,"className":"LeftWalk","width":210,"id":"1118","totalFrames":22},"RightAttack":{"height":314,"className":"RightAttack","width":369,"id":"1118","totalFrames":34},"RightDefend":{"height":195,"className":"RightDefend","width":197,"id":"1118","totalFrames":1},"RightDie":{"height":256,"className":"RightDie","width":277,"id":"1118","totalFrames":26},"RightHit":{"height":198,"className":"RightHit","width":214,"id":"1118","totalFrames":4},"RightMagic":{"height":376,"className":"RightMagic","width":343,"id":"1118","totalFrames":37},"RightStand":{"height":202,"className":"RightStand","width":223,"id":"1118","totalFrames":24},"RightWalk":{"height":190,"className":"RightWalk","width":202,"id":"1118","totalFrames":22}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1120.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":204,"className":"LeftAttack","width":271,"id":"1120","totalFrames":64},"LeftDefend":{"height":136,"className":"LeftDefend","width":127,"id":"1120","totalFrames":4},"LeftDie":{"height":204,"className":"LeftDie","width":218,"id":"1120","totalFrames":36},"LeftHit":{"height":130,"className":"LeftHit","width":132,"id":"1120","totalFrames":8},"LeftMagic":{"height":199,"className":"LeftMagic","width":194,"id":"1120","totalFrames":49},"LeftStand":{"height":152,"className":"LeftStand","width":160,"id":"1120","totalFrames":40},"LeftWalk":{"height":151,"className":"LeftWalk","width":128,"id":"1120","totalFrames":39},"RightAttack":{"height":245,"className":"RightAttack","width":198,"id":"1120","totalFrames":64},"RightDefend":{"height":139,"className":"RightDefend","width":142,"id":"1120","totalFrames":4},"RightDie":{"height":162,"className":"RightDie","width":187,"id":"1120","totalFrames":36},"RightHit":{"height":134,"className":"RightHit","width":190,"id":"1120","totalFrames":8},"RightMagic":{"height":188,"className":"RightMagic","width":162,"id":"1120","totalFrames":49},"RightStand":{"height":138,"className":"RightStand","width":154,"id":"1120","totalFrames":40},"RightWalk":{"height":149,"className":"RightWalk","width":140,"id":"1120","totalFrames":39}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1121.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":116,"className":"LeftAttack","width":163,"id":"1121","totalFrames":20},"LeftDefend":{"height":61,"className":"LeftDefend","width":74,"id":"1121","totalFrames":1},"LeftDie":{"height":80,"className":"LeftDie","width":128,"id":"1121","totalFrames":18},"LeftHit":{"height":94,"className":"LeftHit","width":78,"id":"1121","totalFrames":3},"LeftMagic":{"height":102,"className":"LeftMagic","width":93,"id":"1121","totalFrames":28},"LeftStand":{"height":83,"className":"LeftStand","width":99,"id":"1121","totalFrames":21},"LeftWalk":{"height":76,"className":"LeftWalk","width":94,"id":"1121","totalFrames":8},"RightAttack":{"height":150,"className":"RightAttack","width":123,"id":"1121","totalFrames":20},"RightDefend":{"height":56,"className":"RightDefend","width":80,"id":"1121","totalFrames":1},"RightDie":{"height":81,"className":"RightDie","width":99,"id":"1121","totalFrames":18},"RightHit":{"height":87,"className":"RightHit","width":90,"id":"1121","totalFrames":3},"RightMagic":{"height":106,"className":"RightMagic","width":83,"id":"1121","totalFrames":28},"RightStand":{"height":89,"className":"RightStand","width":90,"id":"1121","totalFrames":21},"RightWalk":{"height":77,"className":"RightWalk","width":83,"id":"1121","totalFrames":8}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1123.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":208,"className":"LeftAttack","width":197,"id":"1123","totalFrames":35},"LeftDefend":{"height":92,"className":"LeftDefend","width":95,"id":"1123","totalFrames":1},"LeftDie":{"height":122,"className":"LeftDie","width":117,"id":"1123","totalFrames":26},"LeftHit":{"height":98,"className":"LeftHit","width":105,"id":"1123","totalFrames":3},"LeftMagic":{"height":201,"className":"LeftMagic","width":119,"id":"1123","totalFrames":34},"LeftStand":{"height":95,"className":"LeftStand","width":111,"id":"1123","totalFrames":19},"LeftWalk":{"height":95,"className":"LeftWalk","width":111,"id":"1123","totalFrames":19},"RightAttack":{"height":246,"className":"RightAttack","width":129,"id":"1123","totalFrames":35},"RightDefend":{"height":88,"className":"RightDefend","width":83,"id":"1123","totalFrames":1},"RightDie":{"height":107,"className":"RightDie","width":143,"id":"1123","totalFrames":26},"RightHit":{"height":94,"className":"RightHit","width":93,"id":"1123","totalFrames":3},"RightMagic":{"height":205,"className":"RightMagic","width":119,"id":"1123","totalFrames":34},"RightStand":{"height":91,"className":"RightStand","width":88,"id":"1123","totalFrames":19},"RightWalk":{"height":91,"className":"RightWalk","width":88,"id":"1123","totalFrames":19}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1126.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":197,"className":"LeftAttack","width":217,"id":"1126","totalFrames":25},"LeftDefend":{"height":117,"className":"LeftDefend","width":127,"id":"1126","totalFrames":2},"LeftDie":{"height":107,"className":"LeftDie","width":236,"id":"1126","totalFrames":24},"LeftHit":{"height":115,"className":"LeftHit","width":171,"id":"1126","totalFrames":4},"LeftMagic":{"height":171,"className":"LeftMagic","width":196,"id":"1126","totalFrames":32},"LeftStand":{"height":103,"className":"LeftStand","width":145,"id":"1126","totalFrames":24},"LeftWalk":{"height":116,"className":"LeftWalk","width":143,"id":"1126","totalFrames":24},"RightAttack":{"height":184,"className":"RightAttack","width":218,"id":"1126","totalFrames":25},"RightDefend":{"height":102,"className":"RightDefend","width":115,"id":"1126","totalFrames":2},"RightDie":{"height":142,"className":"RightDie","width":201,"id":"1126","totalFrames":24},"RightHit":{"height":114,"className":"RightHit","width":173,"id":"1126","totalFrames":4},"RightMagic":{"height":179,"className":"RightMagic","width":198,"id":"1126","totalFrames":32},"RightStand":{"height":106,"className":"RightStand","width":168,"id":"1126","totalFrames":24},"RightWalk":{"height":108,"className":"RightWalk","width":164,"id":"1126","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1128.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":104,"className":"LeftAttack","width":243,"id":"1128","totalFrames":28},"LeftDefend":{"height":108,"className":"LeftDefend","width":96,"id":"1128","totalFrames":2},"LeftDie":{"height":132,"className":"LeftDie","width":131,"id":"1128","totalFrames":16},"LeftHit":{"height":107,"className":"LeftHit","width":85,"id":"1128","totalFrames":4},"LeftMagic":{"height":110,"className":"LeftMagic","width":97,"id":"1128","totalFrames":24},"LeftStand":{"height":106,"className":"LeftStand","width":74,"id":"1128","totalFrames":22},"LeftWalk":{"height":109,"className":"LeftWalk","width":96,"id":"1128","totalFrames":24},"RightAttack":{"height":160,"className":"RightAttack","width":128,"id":"1128","totalFrames":28},"RightDefend":{"height":112,"className":"RightDefend","width":65,"id":"1128","totalFrames":2},"RightDie":{"height":112,"className":"RightDie","width":169,"id":"1128","totalFrames":16},"RightHit":{"height":111,"className":"RightHit","width":66,"id":"1128","totalFrames":4},"RightMagic":{"height":111,"className":"RightMagic","width":110,"id":"1128","totalFrames":24},"RightStand":{"height":109,"className":"RightStand","width":71,"id":"1128","totalFrames":22},"RightWalk":{"height":107,"className":"RightWalk","width":106,"id":"1128","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1129.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":225,"className":"LeftAttack","width":371,"id":"1129","totalFrames":29},"LeftDefend":{"height":179,"className":"LeftDefend","width":137,"id":"1129","totalFrames":3},"LeftDie":{"height":172,"className":"LeftDie","width":348,"id":"1129","totalFrames":16},"LeftHit":{"height":163,"className":"LeftHit","width":166,"id":"1129","totalFrames":4},"LeftMagic":{"height":312,"className":"LeftMagic","width":401,"id":"1129","totalFrames":24},"LeftStand":{"height":160,"className":"LeftStand","width":137,"id":"1129","totalFrames":20},"LeftWalk":{"height":175,"className":"LeftWalk","width":148,"id":"1129","totalFrames":24},"RightAttack":{"height":278,"className":"RightAttack","width":291,"id":"1129","totalFrames":29},"RightDefend":{"height":175,"className":"RightDefend","width":167,"id":"1129","totalFrames":3},"RightDie":{"height":223,"className":"RightDie","width":251,"id":"1129","totalFrames":16},"RightHit":{"height":174,"className":"RightHit","width":170,"id":"1129","totalFrames":4},"RightMagic":{"height":305,"className":"RightMagic","width":318,"id":"1129","totalFrames":24},"RightStand":{"height":172,"className":"RightStand","width":161,"id":"1129","totalFrames":20},"RightWalk":{"height":176,"className":"RightWalk","width":169,"id":"1129","totalFrames":24}} -------------------------------------------------------------------------------- /web-server/public/animation_json/1131.json: -------------------------------------------------------------------------------- 1 | {"LeftAttack":{"height":294,"className":"LeftAttack","width":389,"id":"1131","totalFrames":34},"LeftDefend":{"height":208,"className":"LeftDefend","width":124,"id":"1131","totalFrames":2},"LeftDie":{"height":226,"className":"LeftDie","width":164,"id":"1131","totalFrames":26},"LeftHit":{"height":231,"className":"LeftHit","width":123,"id":"1131","totalFrames":4},"LeftMagic":{"height":385,"className":"LeftMagic","width":500,"id":"1131","totalFrames":32},"LeftStand":{"height":211,"className":"LeftStand","width":129,"id":"1131","totalFrames":20},"LeftWalk":{"height":211,"className":"LeftWalk","width":154,"id":"1131","totalFrames":16},"RightAttack":{"height":355,"className":"RightAttack","width":302,"id":"1131","totalFrames":34},"RightDefend":{"height":211,"className":"RightDefend","width":146,"id":"1131","totalFrames":2},"RightDie":{"height":221,"className":"RightDie","width":192,"id":"1131","totalFrames":26},"RightHit":{"height":234,"className":"RightHit","width":155,"id":"1131","totalFrames":4},"RightMagic":{"height":360,"className":"RightMagic","width":460,"id":"1131","totalFrames":32},"RightStand":{"height":208,"className":"RightStand","width":174,"id":"1131","totalFrames":20},"RightWalk":{"height":215,"className":"RightWalk","width":176,"id":"1131","totalFrames":16}} -------------------------------------------------------------------------------- /web-server/public/image/admissionanimabg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/admissionanimabg.jpg -------------------------------------------------------------------------------- /web-server/public/image/admissionanimatext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/admissionanimatext.png -------------------------------------------------------------------------------- /web-server/public/image/assetbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/assetbg.png -------------------------------------------------------------------------------- /web-server/public/image/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/avatar.png -------------------------------------------------------------------------------- /web-server/public/image/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/bar.png -------------------------------------------------------------------------------- /web-server/public/image/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/bg.png -------------------------------------------------------------------------------- /web-server/public/image/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/box.png -------------------------------------------------------------------------------- /web-server/public/image/btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/btn.png -------------------------------------------------------------------------------- /web-server/public/image/captainFlag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/captainFlag.png -------------------------------------------------------------------------------- /web-server/public/image/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/chat.png -------------------------------------------------------------------------------- /web-server/public/image/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/checkbox.png -------------------------------------------------------------------------------- /web-server/public/image/checkboxmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/checkboxmark.png -------------------------------------------------------------------------------- /web-server/public/image/checkboxmark2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/checkboxmark2.png -------------------------------------------------------------------------------- /web-server/public/image/checkboxmark3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/checkboxmark3.png -------------------------------------------------------------------------------- /web-server/public/image/chooserolebnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/chooserolebnt.png -------------------------------------------------------------------------------- /web-server/public/image/chooserolename.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/chooserolename.png -------------------------------------------------------------------------------- /web-server/public/image/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/close.png -------------------------------------------------------------------------------- /web-server/public/image/global.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/global.png -------------------------------------------------------------------------------- /web-server/public/image/hero_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/hero_bg.png -------------------------------------------------------------------------------- /web-server/public/image/hero_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/hero_selected.png -------------------------------------------------------------------------------- /web-server/public/image/icon-l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/icon-l.png -------------------------------------------------------------------------------- /web-server/public/image/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/icon.png -------------------------------------------------------------------------------- /web-server/public/image/input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/input.png -------------------------------------------------------------------------------- /web-server/public/image/input2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/input2.png -------------------------------------------------------------------------------- /web-server/public/image/input3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/input3.png -------------------------------------------------------------------------------- /web-server/public/image/lay_zj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/lay_zj.png -------------------------------------------------------------------------------- /web-server/public/image/laybg_bb1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_bb1.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_cy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_cy.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_gk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_gk.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_hy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_hy.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_jn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_jn.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_jr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_jr.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_kj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_kj.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_sd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_sd.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_sq.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_sq.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_zj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_zj.jpg -------------------------------------------------------------------------------- /web-server/public/image/laybg_zx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/laybg_zx.jpg -------------------------------------------------------------------------------- /web-server/public/image/layer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/layer.png -------------------------------------------------------------------------------- /web-server/public/image/levbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/levbar.png -------------------------------------------------------------------------------- /web-server/public/image/loadframebg0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loadframebg0.png -------------------------------------------------------------------------------- /web-server/public/image/loadframebg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loadframebg1.png -------------------------------------------------------------------------------- /web-server/public/image/loadratebg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loadratebg.png -------------------------------------------------------------------------------- /web-server/public/image/loadratecover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loadratecover.png -------------------------------------------------------------------------------- /web-server/public/image/loadtt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loadtt.png -------------------------------------------------------------------------------- /web-server/public/image/loginTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loginTT.png -------------------------------------------------------------------------------- /web-server/public/image/login_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/login_bg.png -------------------------------------------------------------------------------- /web-server/public/image/loginbnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/loginbnt.png -------------------------------------------------------------------------------- /web-server/public/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/logo.png -------------------------------------------------------------------------------- /web-server/public/image/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/logo2.png -------------------------------------------------------------------------------- /web-server/public/image/lrframebg0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/lrframebg0.png -------------------------------------------------------------------------------- /web-server/public/image/lrframebg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/lrframebg1.png -------------------------------------------------------------------------------- /web-server/public/image/lrframebg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/lrframebg2.png -------------------------------------------------------------------------------- /web-server/public/image/memberFlag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/memberFlag.png -------------------------------------------------------------------------------- /web-server/public/image/navicons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/navicons.png -------------------------------------------------------------------------------- /web-server/public/image/player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/player.png -------------------------------------------------------------------------------- /web-server/public/image/registerTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/registerTT.png -------------------------------------------------------------------------------- /web-server/public/image/registerbnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/registerbnt.png -------------------------------------------------------------------------------- /web-server/public/image/registerbnt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/registerbnt2.png -------------------------------------------------------------------------------- /web-server/public/image/returnbnt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/returnbnt.png -------------------------------------------------------------------------------- /web-server/public/image/rolelst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/rolelst.png -------------------------------------------------------------------------------- /web-server/public/image/rolelstcover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/rolelstcover.png -------------------------------------------------------------------------------- /web-server/public/image/scrollbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/scrollbar.png -------------------------------------------------------------------------------- /web-server/public/image/skill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/skill.png -------------------------------------------------------------------------------- /web-server/public/image/tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/tab.png -------------------------------------------------------------------------------- /web-server/public/image/targetrolebg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/targetrolebg.png -------------------------------------------------------------------------------- /web-server/public/image/targetrolebg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/targetrolebg1.png -------------------------------------------------------------------------------- /web-server/public/image/targetrolecover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/targetrolecover.png -------------------------------------------------------------------------------- /web-server/public/image/targetrolecover2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/targetrolecover2.png -------------------------------------------------------------------------------- /web-server/public/image/tattoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/tattoo.png -------------------------------------------------------------------------------- /web-server/public/image/tattoo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/tattoo2.png -------------------------------------------------------------------------------- /web-server/public/image/window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/window.png -------------------------------------------------------------------------------- /web-server/public/image/window1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/image/window1.png -------------------------------------------------------------------------------- /web-server/public/images.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/images.jpg -------------------------------------------------------------------------------- /web-server/public/js/config/config.js: -------------------------------------------------------------------------------- 1 | __resources__["/config.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | module.exports = { 3 | IMAGE_URL:'http://pomelo.netease.com/art/', 4 | GATE_HOST: window.location.hostname, 5 | GATE_PORT: 3014 6 | }; 7 | }}; 8 | -------------------------------------------------------------------------------- /web-server/public/js/handler/applyJoinTeamHandler.js: -------------------------------------------------------------------------------- 1 | __resources__["/applyJoinTeamHandler.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | var pomelo = window.pomelo; 3 | var btns = require('consts').BtnAction4Player; 4 | 5 | /** 6 | * Execute player action 7 | */ 8 | function exec(type, params) { 9 | switch (type) { 10 | case btns.ACCEPT_APPLICANT_JOIN_TEAM: { 11 | applyJoinTeamReply(params); 12 | } 13 | break; 14 | } 15 | } 16 | 17 | /** 18 | * Apply join team action. 19 | */ 20 | function applyJoinTeamReply(params) { 21 | pomelo.notify("area.teamHandler.applyJoinTeamReply", 22 | {teamId: params.teamId, applicantId: params.id, reply: params.reply}); 23 | } 24 | 25 | exports.exec = exec; 26 | }}; 27 | -------------------------------------------------------------------------------- /web-server/public/js/handler/inviteJoinTeamHandler.js: -------------------------------------------------------------------------------- 1 | __resources__["/inviteJoinTeamHandler.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | var pomelo = window.pomelo; 3 | var btns = require('consts').BtnAction4Player; 4 | 5 | /** 6 | * Execute player action 7 | */ 8 | function exec(type, params) { 9 | switch (type) { 10 | case btns.ACCEPT_JOIN_INVITER_TEAM: { 11 | inviteJoinTeamReply(params); 12 | } 13 | break; 14 | } 15 | } 16 | 17 | /** 18 | * Invite join team action. 19 | */ 20 | function inviteJoinTeamReply(params) { 21 | pomelo.notify("area.teamHandler.inviteJoinTeamReply", 22 | {teamId: params.teamId, captainId: params.id, reply: params.reply}); 23 | } 24 | 25 | exports.exec = exec; 26 | }}; 27 | -------------------------------------------------------------------------------- /web-server/public/js/handler/kickOutHandler.js: -------------------------------------------------------------------------------- 1 | __resources__["/kickOutHandler.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | var pomelo = window.pomelo; 3 | var btns = require('consts').BtnAction4Player; 4 | 5 | /** 6 | * Execute player action 7 | */ 8 | function exec(type, params) { 9 | switch (type) { 10 | case btns.KICK_OUT: { 11 | kickOut(params); 12 | } 13 | break; 14 | } 15 | } 16 | 17 | /** 18 | * kick out action. 19 | */ 20 | function kickOut(params) { 21 | pomelo.notify("area.teamHandler.kickOut", params); 22 | } 23 | 24 | exports.exec = exec; 25 | }}; 26 | -------------------------------------------------------------------------------- /web-server/public/js/handler/loginMsgHandler.js: -------------------------------------------------------------------------------- 1 | __resources__["/loginMsgHandler.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | 3 | var app = require('app'); 4 | var switchManager = require('switchManager'); 5 | var pomelo = window.pomelo; 6 | 7 | exports.init = init; 8 | 9 | function init(){ 10 | /** 11 | * Handle kick out messge, occours when the current player is kicked out 12 | */ 13 | pomelo.on('onKick', function() { 14 | location.reload(); 15 | //switchManager.selectView("loginPanel"); 16 | }); 17 | 18 | /** 19 | * Handle disconect message, occours when the client is disconnect with servers 20 | * @param reason {Object} The disconnect reason 21 | */ 22 | pomelo.on('disconnect', function(reason) { 23 | location.reload(); 24 | //switchManager.selectView("loginPanel"); 25 | }); 26 | 27 | /** 28 | * Handle user leave message, occours when players leave the area 29 | * @param data {Object} Contains the playerId to leave the area. 30 | */ 31 | pomelo.on('onUserLeave', function(data){ 32 | var area = app.getCurArea(); 33 | var playerId = data.playerId; 34 | area.removePlayer(playerId); 35 | }); 36 | 37 | } 38 | }}; 39 | -------------------------------------------------------------------------------- /web-server/public/js/handler/npcHandler.js: -------------------------------------------------------------------------------- 1 | __resources__["/npcHandler.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | var pomelo = window.pomelo; 3 | 4 | 5 | /** 6 | * Execute the npc action 7 | */ 8 | function exec(type, params) { 9 | switch (type) { 10 | case 'changeArea': 11 | changeArea(params); 12 | break; 13 | } 14 | } 15 | 16 | /** 17 | * Change area action. 18 | */ 19 | function changeArea(params) { 20 | var areaId = pomelo.areaId, target = params.target; 21 | pomelo.request("area.playerHandler.changeArea", { 22 | uid:pomelo.uid, 23 | playerId: pomelo.playerId, 24 | areaId: areaId, 25 | target: target, 26 | triggerByPlayer: 1 27 | }, function(data) { 28 | pomelo.emit('onChangeArea', data); 29 | }); 30 | } 31 | 32 | exports.exec = exec; 33 | }}; 34 | -------------------------------------------------------------------------------- /web-server/public/js/handler/teamHandler.js: -------------------------------------------------------------------------------- 1 | __resources__["/teamHandler.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | var pomelo = window.pomelo; 3 | var btns = require('consts').BtnAction4Player; 4 | 5 | /** 6 | * Execute player action 7 | */ 8 | function exec(type, params) { 9 | switch (type) { 10 | case btns.CREATE_TEAM: { 11 | createTeam(); 12 | } 13 | break; 14 | 15 | case btns.LEAVE_TEAM: { 16 | leaveTeam(params); 17 | } 18 | break; 19 | 20 | case btns.DISBAND_TEAM: { 21 | disbandTeam(params); 22 | } 23 | break; 24 | } 25 | } 26 | 27 | /** 28 | * Create team action. 29 | */ 30 | function createTeam() { 31 | pomelo.notify("area.teamHandler.createTeam"); 32 | } 33 | 34 | /** 35 | * Leave team action. 36 | */ 37 | function leaveTeam(params) { 38 | pomelo.notify("area.teamHandler.leaveTeam", params); 39 | } 40 | 41 | /** 42 | * Disband team action. 43 | */ 44 | function disbandTeam(params) { 45 | pomelo.notify("area.teamHandler.disbandTeam", params); 46 | } 47 | 48 | exports.exec = exec; 49 | }}; 50 | -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/LICENSE: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2012 Netease, Inc. and other colorbox contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | 'Software'), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/base64.js: -------------------------------------------------------------------------------- 1 | 2 | __resources__["/__builtin__/base64.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 3 | /** 4 | * Thin wrapper around JXG's Base64 utils 5 | *copyed from coco2d-html v0.1.0 (http://cocos2d-javascript.org) under MIT license. 6 | *changed by zhangping. 2012.06.06 7 | */ 8 | 9 | var JXG = require('JXGUtil'); 10 | 11 | var base64 = { 12 | decode: function(input) { 13 | return JXG.Util.Base64.decode(input); 14 | }, 15 | 16 | decodeAsArray: function(input, bytes) { 17 | bytes = bytes || 1; 18 | 19 | var dec = JXG.Util.Base64.decode(input), 20 | ar = [], i, j, len; 21 | 22 | for (i = 0, len = dec.length/bytes; i < len; i++){ 23 | ar[i] = 0; 24 | for (j = bytes-1; j >= 0; --j){ 25 | ar[i] += dec.charCodeAt((i *bytes) +j) << (j *8); 26 | } 27 | } 28 | return ar; 29 | }, 30 | 31 | encode: function(input) { 32 | return JXG.Util.Base64.encode(input); 33 | } 34 | }; 35 | 36 | module.exports = base64; 37 | 38 | }}; -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/clocker.js: -------------------------------------------------------------------------------- 1 | 2 | __resources__["/__builtin__/clocker.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 3 | var util = require("util") 4 | , debug = require("debug") 5 | 6 | var g_clocker = { 7 | now:function() 8 | { 9 | if (this.original) 10 | return this.original(); 11 | else 12 | return 0; 13 | }, 14 | 15 | original:null, 16 | }; 17 | 18 | var globalClocker = function(original) 19 | { 20 | if (original) 21 | { 22 | debug.assert(!g_clocker.original, "set global clocker's original clocker again"); 23 | if (!g_clocker.original) 24 | g_clocker.original = original; 25 | } 26 | 27 | return g_clocker; 28 | }; 29 | 30 | exports.globalClocker = globalClocker; 31 | 32 | }}; -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/colorbox_header.js: -------------------------------------------------------------------------------- 1 | var __main_module_name__ = "main"; 2 | var __resources__ = {}; 3 | function __imageResource(data) { var img = new Image(); img.src = data; return img; }; 4 | -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/debug.js: -------------------------------------------------------------------------------- 1 | 2 | __resources__["/__builtin__/debug.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 3 | var util = require("util"); 4 | 5 | var debug = { 6 | log: function(s) 7 | { 8 | console.log(s); 9 | }, 10 | 11 | warning: function(s) 12 | { 13 | console.log('!!!WARNING!!!-->' + s + '<-- '); 14 | }, 15 | 16 | error: function(s){ 17 | console.log('!!!ERROR!!!-->' + s + '<-- '); 18 | }, 19 | 20 | assert : function(exp,msg) 21 | { 22 | if (exp) 23 | { 24 | return true; 25 | } 26 | else 27 | { 28 | var theMsg = msg === undefined ? "assert !!!" : msg; 29 | console.log("exception throwed: " + theMsg); 30 | //debugger; 31 | throw (theMsg); 32 | } 33 | } 34 | }; 35 | 36 | module.exports = debug; 37 | }}; 38 | -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/logic.js: -------------------------------------------------------------------------------- 1 | 2 | __resources__["/__builtin__/logic.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 3 | var util = require("util") 4 | , debug = require("debug") 5 | , pipe = require('pipe') 6 | , BObject = require("base").BObject 7 | , Scene = require('scene').TreeScene; 8 | 9 | var Logic = BObject.extend({ 10 | init:function(param) 11 | { 12 | Logic.superClass.init.call(this, param); 13 | 14 | this._scene = new Scene(); 15 | }, 16 | 17 | active: function(level) 18 | { 19 | if (this._scene) 20 | this._scene.active(this); 21 | }, 22 | 23 | deactive: function() 24 | { 25 | if (this._scene) 26 | this._scene.deactive(); 27 | }, 28 | 29 | step: function(t, dt) 30 | { 31 | if (this._scene) 32 | this._scene.step(t, dt); 33 | }, 34 | 35 | setScene:function(scene) 36 | { 37 | if (this._scene === scene) 38 | return; 39 | 40 | if (this._scene) 41 | this._scene.deactive(); 42 | 43 | this._scene = scene; 44 | if (this._scene) 45 | this._scene.active(this); 46 | }, 47 | 48 | getScene: function (logic) 49 | { 50 | return this._scene; 51 | } 52 | }); 53 | 54 | exports.Logic = Logic; 55 | 56 | }}; -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/youyudehexie/lordofpomelo/b6709067df885d4c06733518db426aa70f2b34cb/web-server/public/js/lib/colorbox/model.js -------------------------------------------------------------------------------- /web-server/public/js/lib/colorbox/view/index.js: -------------------------------------------------------------------------------- 1 | 2 | __resources__["/__builtin__/view/index.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 3 | exports.HonestView = require("./honestview").HonestView; 4 | exports.ProcessingView = require("./processingview").ProcessingView; 5 | 6 | }}; -------------------------------------------------------------------------------- /web-server/public/js/lib/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pomelo-client", 3 | "description": "pomelo-client", 4 | "local": [ "boot" ], 5 | "paths": [ "local"] 6 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/components/NetEase-pomelo-protocol/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pomelo-protocol", 3 | "description": "pomelo-protocol", 4 | "keywords": [ 5 | "pomelo", 6 | "protocol" 7 | ], 8 | "version": "0.1.0", 9 | "main": "lib/protocol.js", 10 | "scripts": [ 11 | "lib/protocol.js" 12 | ], 13 | "repo": "https://github.com/NetEase/pomelo-protocol" 14 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/components/component-emitter/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "emitter", 3 | "description": "Event emitter", 4 | "keywords": [ 5 | "emitter", 6 | "events" 7 | ], 8 | "dependencies": { 9 | "component/indexof": "*" 10 | }, 11 | "version": "1.0.0", 12 | "scripts": [ 13 | "index.js" 14 | ], 15 | "license": "MIT", 16 | "repo": "https://raw.github.com/component/emitter" 17 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/components/component-indexof/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "indexof", 3 | "description": "Microsoft sucks", 4 | "version": "0.0.1", 5 | "keywords": [ 6 | "index", 7 | "array", 8 | "indexOf" 9 | ], 10 | "dependencies": {}, 11 | "scripts": [ 12 | "index.js" 13 | ], 14 | "repo": "https://raw.github.com/component/indexof" 15 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/components/component-indexof/index.js: -------------------------------------------------------------------------------- 1 | 2 | var indexOf = [].indexOf; 3 | 4 | module.exports = function(arr, obj){ 5 | if (indexOf) return arr.indexOf(obj); 6 | for (var i = 0; i < arr.length; ++i) { 7 | if (arr[i] === obj) return i; 8 | } 9 | return -1; 10 | }; -------------------------------------------------------------------------------- /web-server/public/js/lib/components/component-jquery/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "version": "1.8.2", 4 | "description": "jQuery component", 5 | "keywords": [ 6 | "jquery", 7 | "component" 8 | ], 9 | "scripts": [ 10 | "index.js" 11 | ], 12 | "license": "MIT", 13 | "repo": "https://raw.github.com/component/jquery" 14 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/components/pomelonode-pomelo-jsclient-websocket/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pomelo-jsclient-websocket", 3 | "description": "pomelo-jsclient-websocket", 4 | "keywords": [ 5 | "pomelo", 6 | "jsclient", 7 | "websocket" 8 | ], 9 | "version": "0.0.1", 10 | "main": "lib/pomelo-client.js", 11 | "scripts": [ 12 | "lib/pomelo-client.js" 13 | ], 14 | "repo": "https://github.com/pomelonode/pomelo-jsclient-websocket" 15 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/components/pomelonode-pomelo-protobuf/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pomelo-protobuf", 3 | "description": "pomelo-protobuf", 4 | "keywords": [ 5 | "pomelo", 6 | "protobuf" 7 | ], 8 | "version": "0.2.0", 9 | "main": "lib/client/protobuf.js", 10 | "scripts": [ 11 | "lib/client/protobuf.js" 12 | ], 13 | "repo": "https://github.com/pomelonode/pomelo-protobuf" 14 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/local/boot/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "boot", 3 | "description": "Main app boot component", 4 | "dependencies": { 5 | "component/emitter":"master", 6 | "NetEase/pomelo-protocol": "master", 7 | "pomelonode/pomelo-protobuf": "*", 8 | "pomelonode/pomelo-jsclient-websocket": "master", 9 | "component/jquery": "*" 10 | }, 11 | "scripts": ["index.js"] 12 | } -------------------------------------------------------------------------------- /web-server/public/js/lib/local/boot/index.js: -------------------------------------------------------------------------------- 1 | var Emitter = require('emitter'); 2 | window.EventEmitter = Emitter; 3 | 4 | var protocol = require('pomelo-protocol'); 5 | window.Protocol = protocol; 6 | 7 | var protobuf = require('pomelo-protobuf'); 8 | window.protobuf = protobuf; 9 | 10 | var pomelo = require('pomelo-jsclient-websocket'); 11 | window.pomelo = pomelo; 12 | 13 | var jquery = require('jquery'); 14 | window.$ = jquery; 15 | -------------------------------------------------------------------------------- /web-server/public/js/main.js: -------------------------------------------------------------------------------- 1 | __resources__["/main.js"] = { 2 | meta: { 3 | mimetype: "application/javascript" 4 | }, 5 | 6 | data: function(exports, require, module, __filename, __dirname){ 7 | 8 | var clientManager = require('clientManager'); 9 | var heroSelectView = require('heroSelectView'); 10 | 11 | function main() { 12 | clientManager.init(); 13 | setDefaultUser(); 14 | heroSelectView.init(); 15 | } 16 | 17 | function setDefaultUser() { 18 | if (localStorage) { 19 | var dusr = localStorage.getItem("username"); 20 | if(dusr){ 21 | $('#loginUser').val(dusr); 22 | } 23 | } 24 | } 25 | 26 | exports.main = main; 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /web-server/public/js/model/equipment.js: -------------------------------------------------------------------------------- 1 | __resources__["/equipment.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | 3 | /** 4 | * Module dependencies 5 | */ 6 | var Entity = require('entity'); 7 | var EntityType = require('consts').EntityType; 8 | 9 | /** 10 | * Initialize a new 'Equipment' with the given 'opts'. 11 | * Equipment inherits Entity 12 | * 13 | * @param {Object} opts 14 | * @api public 15 | */ 16 | var Equipment = function (opts) { 17 | this.type = EntityType.EQUIPMENT; 18 | this.name = opts.name; 19 | this.kind = opts.kind; 20 | this.attackValue = opts.attackValue; 21 | this.defenceValue = opts.defenceValue; 22 | this.price = opts.price; 23 | this.color = opts.color; 24 | this.heroLevel = opts.heroLevel; 25 | this.playerId = opts.playerId; 26 | this.imgId = opts.imgId; 27 | Entity.call(this, opts); 28 | }; 29 | 30 | 31 | Equipment.prototype = Object.create(Entity.prototype); 32 | 33 | /** 34 | * Expose 'Equipment' constructor. 35 | */ 36 | module.exports = Equipment; 37 | }}; 38 | -------------------------------------------------------------------------------- /web-server/public/js/model/item.js: -------------------------------------------------------------------------------- 1 | __resources__["/item.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | /** 3 | * Module dependencies 4 | */ 5 | var EntityType = require('consts').EntityType; 6 | var Entity = require('entity'); 7 | 8 | /** 9 | * Initialize a new 'Item' with the given 'opts'. 10 | * Item inherits Entity 11 | * 12 | * @param {Object} opts 13 | * @api public 14 | */ 15 | var Item = function (opts) { 16 | this.type = EntityType.ITEM; 17 | this.name = opts.name; 18 | this.desc = opts.desc; 19 | this.kind = opts.kind; 20 | this.hp = opts.hp; 21 | this.mp = opts.mp; 22 | this.price = opts.price; 23 | this.heroLevel = opts.heroLevel; 24 | this.imgId = opts.imgId; 25 | Entity.call(this, opts); 26 | }; 27 | 28 | Item.prototype = Object.create(Entity.prototype); 29 | 30 | /** 31 | * Expose 'Item' constructor. 32 | */ 33 | module.exports = Item; 34 | }}; 35 | -------------------------------------------------------------------------------- /web-server/public/js/model/mob.js: -------------------------------------------------------------------------------- 1 | __resources__["/mob.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | /** 3 | * Module dependencies 4 | */ 5 | var Character = require('character'); 6 | var EntityType = require('consts').EntityType; 7 | 8 | /** 9 | * Initialize a new 'Mob' with the given 'opts'. 10 | * Mob inherits Character 11 | * 12 | * @param {Object} opts 13 | * @api public 14 | */ 15 | var Mob = function(opts){ 16 | this.type = EntityType.MOB; 17 | 18 | Character.call(this, opts); 19 | }; 20 | 21 | /** 22 | * Expose 'Mob' constructor 23 | */ 24 | module.exports = Mob; 25 | 26 | Mob.prototype=Object.create(Character.prototype); 27 | }}; 28 | -------------------------------------------------------------------------------- /web-server/public/js/model/npc.js: -------------------------------------------------------------------------------- 1 | __resources__["/npc.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | /** 3 | * Module dependencies 4 | */ 5 | var Entity = require('entity'); 6 | var EntityType = require('consts').EntityType; 7 | 8 | /** 9 | * Initialize a new 'Npc' with the given 'opts'. 10 | * Npc inherits Entity 11 | * 12 | * @param {Object} opts 13 | * @api public 14 | */ 15 | var Npc = function (opts){ 16 | this.type = EntityType.NPC; 17 | Entity.call(this, opts); 18 | }; 19 | 20 | Npc.prototype = Object.create(Entity.prototype); 21 | 22 | /** 23 | * Expose 'Npc' constructor. 24 | */ 25 | module.exports = Npc; 26 | }}; 27 | -------------------------------------------------------------------------------- /web-server/public/js/model/player.js: -------------------------------------------------------------------------------- 1 | __resources__["/player.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | /** 3 | * Module dependencies 4 | */ 5 | var Character = require('character'); 6 | var EntityType = require('consts').EntityType; 7 | 8 | /** 9 | * Initialize a new 'Player' with the given 'opts'. 10 | * It is common player, not current player 11 | * Player inherits Character 12 | * 13 | * @param {Object} opts 14 | * @api public 15 | */ 16 | var Player = function(opts){ 17 | this.id = opts.id; 18 | this.type = EntityType.PLAYER; 19 | this.name = opts.name; 20 | this.target = null; 21 | Character.call(this, opts); 22 | }; 23 | 24 | /** 25 | * Expose 'Player' constructor. 26 | */ 27 | module.exports = Player; 28 | 29 | Player.prototype = Object.create(Character.prototype); 30 | }}; 31 | -------------------------------------------------------------------------------- /web-server/public/js/model/task.js: -------------------------------------------------------------------------------- 1 | __resources__["/task.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | /** 3 | * Module dependencies. 4 | */ 5 | var EventEmitter = window.EventEmitter; 6 | 7 | /** 8 | * Initialize a new 'Task' with the given 'opts' 9 | * 10 | * @param {Object} opts 11 | * @api public 12 | */ 13 | var Task = function(opts){ 14 | this.id = opts.id; 15 | this.taskState = opts.taskState; 16 | this.taskData = opts.taskData; 17 | this.name = opts.name; 18 | this.acceptTalk = opts.acceptTalk; 19 | this.workTalk = opts.workTalk; 20 | this.finishTalk = opts.finishTalk; 21 | this.exp = opts.exp; 22 | this.item = opts.item; 23 | this.completeCondition = opts.completeCondition; 24 | 25 | EventEmitter.call(this, opts); 26 | }; 27 | 28 | /** 29 | * Expose 'Task' constructor. 30 | */ 31 | module.exports = Task; 32 | 33 | Task.prototype=Object.create(EventEmitter.prototype); 34 | 35 | /** 36 | * Set taskState. 37 | * 38 | * @param {Number} state 39 | * @api public 40 | */ 41 | Task.prototype.setState = function(state) { 42 | this.taskState = state; 43 | this.emit('change:state'); 44 | }; 45 | }}; 46 | -------------------------------------------------------------------------------- /web-server/public/js/ui/heroSelectView.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Hello select view manager 3 | */ 4 | __resources__["/heroSelectView.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 5 | 6 | /** 7 | * default hero id 8 | */ 9 | var roleId = 210; 10 | 11 | exports.getRoleId = function() { 12 | return roleId; 13 | }; 14 | 15 | exports.init = function() { 16 | var roleIds = [210, 211]; 17 | 18 | var $panel = $('#heroSelectPanel'); 19 | var $role = $panel.find('.choose .role'); 20 | var $targetRole = $panel.find('.choose .m-targetrole'); 21 | var $targetRoleImg = $targetRole.find('.targetrole'); 22 | $role.on('mouseover', function() { 23 | var left = this.offsetLeft; 24 | var top = this.offsetTop; 25 | this.style.backgroundPosition = (0 - left) + "px 0"; 26 | }).on('mouseout', function() { 27 | this.style.backgroundPosition = "9999px 9999px"; 28 | }).on('click', function() { 29 | var left = this.offsetLeft; 30 | var top = this.offsetTop; 31 | var index = left < 1 ? 0 : 1; 32 | $targetRoleImg[0].style.backgroundPosition = (index == 1 ? "-382px 0" : "0 0"); 33 | $targetRole.css({left: left + "px", top: top + "px"}); 34 | // hero index 35 | roleId = roleIds[index]; 36 | }); 37 | }; 38 | }}; 39 | -------------------------------------------------------------------------------- /web-server/public/js/ui/switchManager.js: -------------------------------------------------------------------------------- 1 | __resources__["/switchManager.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | 3 | /** 4 | * Default view 5 | */ 6 | var curViewNameId = "loginPanel"; 7 | 8 | exports.selectView = selectView; 9 | 10 | /** 11 | * Swtich game views 12 | */ 13 | function selectView(viewNameId){ 14 | if (!viewNameId || curViewNameId === viewNameId) { 15 | return; 16 | } 17 | 18 | var oldView = $('#' + curViewNameId); 19 | var newView = $('#' + viewNameId); 20 | 21 | oldView.addClass('f-dn'); 22 | newView.removeClass('f-dn'); 23 | 24 | if (viewNameId === 'gemePanel') { 25 | $('body').addClass('f-hidbg'); 26 | } else { 27 | $('body').removeClass('f-hidbg'); 28 | } 29 | 30 | curViewNameId = viewNameId; 31 | } 32 | 33 | function getCurrentView(){ 34 | return curViewNameId; 35 | } 36 | 37 | exports.getCurrentView = getCurrentView; 38 | 39 | }}; 40 | -------------------------------------------------------------------------------- /web-server/public/js/utils/mapLoader.js: -------------------------------------------------------------------------------- 1 | __resources__["/mapLoader.js"] = { 2 | meta: { 3 | mimetype: "application/javascript" 4 | }, 5 | 6 | data: function(exports, require, module, __filename, __dirname) { 7 | 8 | /** 9 | * @param {Array} 10 | **/ 11 | exports.mapLoader = function(maps) { 12 | if (!Array.isArray(maps)) { 13 | return; 14 | } 15 | 16 | var result = []; 17 | for (var i = 0, l = maps.length; i < l; i++) { 18 | result.push(imgLoader(maps[i])); 19 | } 20 | 21 | return result; 22 | }; 23 | 24 | var imgLoader = function(src) { 25 | var img = new Image(); 26 | img.loaded = false; 27 | img.onload = function() { 28 | img.loaded = true; 29 | }; 30 | img.src = src; 31 | return img; 32 | }; 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /web-server/public/js/utils/pool/objectPoolManager.js: -------------------------------------------------------------------------------- 1 | __resources__["/objectPoolManager.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | 3 | /** 4 | * Module dependencies 5 | */ 6 | 7 | var ObjectPoolManager = function() { 8 | this.pools = {}; 9 | }; 10 | 11 | //Add pool named name to pools 12 | ObjectPoolManager.prototype.addPool = function(name, pool) { 13 | this.pools[name] = pool; 14 | }; 15 | 16 | //get pool named name from pools 17 | ObjectPoolManager.prototype.getPool = function(name) { 18 | return this.pools[name]; 19 | }; 20 | 21 | module.exports = ObjectPoolManager; 22 | }}; 23 | -------------------------------------------------------------------------------- /web-server/public/js/utils/timeSync.js: -------------------------------------------------------------------------------- 1 | __resources__["/timeSync.js"] = {meta: {mimetype: "application/javascript"}, data: function(exports, require, module, __filename, __dirname) { 2 | 3 | /** 4 | * Module dependencies 5 | */ 6 | 7 | var pomelo = window.pomelo; 8 | var app = require('app'); 9 | var delayTime = 0; 10 | var TIME_OUT = 60 * 1000; 11 | 12 | var timeSync = function() { 13 | getDelayTime(); 14 | setInterval(function() { 15 | getDelayTime(); 16 | }, TIME_OUT); 17 | }; 18 | 19 | var getDelayTime = function() { 20 | var beforeTime = new Date().getTime(); 21 | pomelo.request('connector.timeSyncHandler.timeSync',{clientTime: beforeTime},function(result) { 22 | if (result.code === 200) { 23 | var afterTime = new Date().getTime(); 24 | delayTime = (afterTime - beforeTime)/2; 25 | app.setDelayTime(delayTime); 26 | } 27 | }); 28 | }; 29 | 30 | module.exports = timeSync; 31 | }}; 32 | -------------------------------------------------------------------------------- /web-server/views/auth.ejs: -------------------------------------------------------------------------------- 1 |

auth <%= code == 200 ? 'success' : 'fail' %>!

2 | <% if (code == 200) { %> 3 | 12 | <% } %> 13 | --------------------------------------------------------------------------------