Guest User

Untitled

a guest
Jun 18th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. // env, kit 為 server 暴露給開發者用的功能物件
  2. var say = kit.say; // 基本系統功能
  3. var db = kit.game.db; // 資料永續儲存相關
  4. var logic = kit.game.logic; // 註冊遊戲邏輯的工具物件
  5. var service = kit.game.service; // 管理遊戲服務的物件
  6.  
  7. /*
  8. * 1. 註冊 message tag 跟 handler
  9. *
  10. * 格式: logic.register( TAG, FUNCTION );
  11. */
  12. var mem = {}; // 開發者自己的變數
  13.  
  14. logic.register('G_INIT', function(data){ // 遊戲啟動時, 資料初始化一次
  15. mem.players = {}; // 玩家列表
  16. mem.gamestate = false; // 遊戲開始與否
  17. mem.t = 0; // 遊戲時間
  18. };
  19.  
  20. logic.register('G_JOIN', function(data){ // 玩家加入, 參考資料存在 data
  21. kit.say('player want to join');
  22.  
  23. // 遊戲已經開始, 不給加
  24. if (mem.gamestate)
  25. return;
  26.  
  27. var eml = data.email;
  28. var info = data.info;
  29. if (count(mem.players) < 4)
  30. mem.players[eml] = info;
  31. };
  32.  
  33. logic.register('G_QUIT', function(data){ // 玩家離開, 參考資料存在 data
  34. delete mem.players[data.email];
  35. };
  36.  
  37. logic.register('G_START', function(data){ // 收到遊戲開始的指令
  38. if (mem.gamestate || count(mem.players) < 4)
  39. return;
  40.  
  41. mem.gamestate = true;
  42. };
  43.  
  44. logic.register('G_END', function(data){ // 收到遊戲結束的指令
  45. mem.gamestate = false;
  46. };
  47.  
  48. /*
  49. * 2. 直接覆蓋系統功能, 含 loop, init ...等
  50. * 若無覆蓋 server 會使用內建版本
  51. */
  52. service.init = function(){
  53. // ...服務初始化...
  54. };
  55. service.loop = function(){ // server 將會定期、反覆執行 loop
  56. mem.t++;
  57. kit.say('現在是 tick' + mem.t);
  58. };
Add Comment
Please, Sign In to add comment