StoreProc.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. /*
  3. * To change this license header, choose License Headers in Project Properties.
  4. * To change this template file, choose Tools | Templates
  5. * and open the template in the editor.
  6. */
  7. namespace loyalsoft;
  8. /**
  9. * Description of StoreProc
  10. *
  11. * @author c'y'zhao
  12. */
  13. class StoreProc {
  14. /**
  15. * 逻辑分发
  16. * 所有的Proc中必须有这样一个方法
  17. * @param Req $req
  18. */
  19. public static function procMain($req) {
  20. switch ($req->cmd) {
  21. case CmdCode::cmd_store_put: # 6401 放入仓库
  22. return StoreProc::AddItemInStore();
  23. case CmdCode::cmd_store_equip: # 6402
  24. return StoreProc::equip();
  25. case CmdCode::cmd_store_equipUpgrade: # 6403
  26. return StoreProc::equipUpgrade();
  27. case CmdCode::cmd_store_equipUpgrade_MaxLv: # 6404
  28. return StoreProc::equipUpgrade_MaxLv();
  29. default:
  30. Err(ErrCode::cmd_err);
  31. }
  32. }
  33. public static function equip() {
  34. list($uid) = req()->paras;
  35. $user = ctx();
  36. //my_Assert(ErrCode::ok == $err, $err);
  37. UserProc::updateUserInfo();
  38. return Resp::ok(array(
  39. //'gold' => $user->baseInfo->gold,
  40. //'tili' => $user->baseInfo->tili,
  41. //'cash' => $user->baseInfo->cash,
  42. 'store' => $user->store));
  43. }
  44. public static function equipUpgrade() {
  45. list($uid) = req()->paras; //mask = 1:表示战斗中掉落
  46. $user = ctx();
  47. UserProc::updateUserInfo();
  48. return Resp::ok(array(
  49. //'gold' => $user->baseInfo->gold,
  50. //'tili' => $user->baseInfo->tili,
  51. //'cash' => $user->baseInfo->cash,
  52. 'store' => $user->store));
  53. }
  54. public static function equipUpgrade_MaxLv() {
  55. list($uid) = req()->paras; //mask = 1:表示战斗中掉落
  56. $user = ctx();
  57. UserProc::updateUserInfo();
  58. return Resp::ok(array(
  59. //'gold' => $user->baseInfo->gold,
  60. //'tili' => $user->baseInfo->tili,
  61. //'cash' => $user->baseInfo->cash,
  62. 'store' => $user->store));
  63. }
  64. public static function AddItemInStore() {
  65. list($rwdStr) = req()->paras; //mask = 1:表示战斗中掉落
  66. $user = ctx();
  67. $err = self::AddMultiItemInStore($rwdStr);
  68. my_Assert(ErrCode::ok == $err, $err);
  69. UserProc::updateUserInfo();
  70. return Resp::ok(array(
  71. //'gold' => $user->baseInfo->gold,
  72. //'tili' => $user->baseInfo->tili,
  73. //'cash' => $user->baseInfo->cash,
  74. 'store' => $user->store));
  75. }
  76. /**
  77. * 具体奖励存入背包
  78. * @param type $goodsStr
  79. * @param type $src
  80. */
  81. public static function AddMultiItemInStore($goodsStr, $src = 1) {
  82. $ary = explode(";", $goodsStr);
  83. foreach ($ary as $value) {
  84. $val = explode(",", $value);
  85. my_Assert(count($val) > 1, "解析奖励字符串出错");
  86. list($itemId, $num) = $val; # ID, 数量
  87. $itemMo = GameConfig::item_getItem($itemId);
  88. switch ($itemMo->itemType) {
  89. case 1:
  90. self::PutItemsInStore($itemId, $num);
  91. break;
  92. case 2:
  93. self::PutEquipInStore($itemId, $num);
  94. break;
  95. default:
  96. break;
  97. }
  98. }
  99. }
  100. public static function PutItemsInStore($itemId,$num) {
  101. $items = ctx()->store->items;
  102. if(StlUtil::dictHasProperty($items, $itemId)){
  103. $items->$itemId += $num;
  104. } else {
  105. $items->$itemId = $num;
  106. }
  107. ctx()->store->items = $items;
  108. }
  109. public static function PutEquipInStore($equipId,$num) {
  110. $n = count((array)ctx()->store->equip);
  111. for ($index = 0; $index < $num; $index++) {
  112. $Equip = new Ins_Equip();
  113. ctx()->store->equip->$n = $Equip;
  114. }
  115. }
  116. }