예제 #1
0
 /**
  * 使用副驾驶
  * @param $params
  * require          u             --   user_id
  *                  tag           --   副驾驶类别
  *                  cid           --   car id
  * @return
  *                  s             --   OK
  *                  tag           --   副驾驶tag
  *                  car           --   测试信息
  *                  copi          --   测试信息
  */
 public function apply_copolit($params)
 {
     $uid = $params['u'];
     $tag = $params['tag'];
     $cid = $params['cid'];
     $copi = self::$_config[$tag];
     $stat['tag'] = $tag;
     $stat['op'] = 'apply_copolit';
     $stat['num'] = $num;
     $stat['u'] = $uid;
     $stat['tm'] = $_SERVER['REQUEST_TIME'];
     $gemt = TT::GemTT();
     if (!$copi) {
         $ret['s'] = 'copinotexist';
         $stat['s'] = $ret['s'];
         $gemt->putKeep(null, $stat);
         return $ret;
     }
     $tu = new TTUser($uid);
     $id = $tu->getoid('copilot', TT::OTHER_GROUP);
     $copilot = $tu->getbyid($id);
     $car_obj = $tu->getbyid($cid);
     if (!$car_obj) {
         $ret['s'] = 'carnotexsit';
         $stat['s'] = $ret['s'];
         $gemt->putKeep(null, $stat);
         return $ret;
     }
     if ($tag != 2006 && $car_obj['copolitTag']) {
         $ret['s'] = 'repeat';
         $stat['s'] = $ret['s'];
         $gemt->putKeep(null, $stat);
         return $ret;
     }
     $goods = ItemConfig::getItem($car_obj['goodsTag']);
     if ($tag != 2006) {
         if ($copilot['bag'][$tag] < 1) {
             $ret['s'] = 'needbuy';
             $stat['s'] = $ret['s'];
             $gemt->putKeep(null, $stat);
             return $ret;
         }
         $copilot['bag'][$tag] -= 1;
         $car_obj['copolitTag'] = $tag;
     } else {
         if ($goods['buytime'] >= 1800) {
             $car = ItemConfig::getItem($car_obj['tag']);
             $add_exp = $goods['exp'] * $car['goodsNumber'];
             //乘以载重箱,经验不包括好友帮助增加的箱数
             if ($add_exp) {
                 $tu->addExp($add_exp);
             }
         }
         unset($car_obj['addgoods']);
         unset($car_obj['accelerate']);
         unset($car_obj['t']);
         unset($car_obj['help']);
         unset($car_obj['goodsTag']);
         unset($car_obj['copolitTag']);
     }
     $copilot['id'] = $id;
     $now = time();
     $tu->puto($copilot);
     if ($copi['addgoods']) {
         $car_obj['addgoods'] += $copi['addgoods'];
     }
     if ($copi['accelerate'] && $car_obj['t']) {
         if ($now - $car_obj['t'] + $copi['accelerate'] > $goods['buytime']) {
             $car_obj['t'] = $now - $goods['buytime'];
         } else {
             $car_obj['t'] -= $copi['accelerate'];
         }
     }
     $tu->puto($car_obj);
     $ret['s'] = 'OK';
     $ret['tag'] = $tag;
     $stat['s'] = $ret['s'];
     $gemt->putKeep(null, $stat);
     return $ret;
 }
예제 #2
0
파일: Man.php 프로젝트: uning/mall-back
 /**
          * update
 * @param $params
 *  require u        -- user 
 *                    step  -- 新手步数
 *                 //  v  -- view
 *                 //  d  -- do
 * @return 
 *  s   -- OK ,or other fail
          *  money  -- total money
          *  exp    -- total exp 
 *  award 
                  money
                  exp
                  items(物品对象数组) 
 *  d   --新的manual对象
 */
 public function update($params)
 {
     $uid = $params['u'];
     //$da = $params['d'];
     $step = $params['step'];
     //$v = ;//$da['v'];
     $d = 1;
     //;$da['d'];
     $ret = array();
     $conf = self::getAwardConf($step);
     if (!$v && !$d) {
         $ret['s'] = 'noaction';
         return $ret;
     }
     if (!$conf) {
         $ret['s'] = 'noconf';
         return $ret;
     }
     $tu = new TTUser($uid);
     $id = $tu->getoid('mannual', TT::OTHER_GROUP);
     $mano = $tu->getbyid($id);
     $mean_gap = 20;
     $now = time();
     $mano['id'] = $id;
     $level = $tu->getLevel();
     if ($level > $conf['maxlevel']) {
         $ret['s'] = 'level';
         $ret['d'] = $mano;
         //return $ret;
     }
     if ($v && $mano[$step]['vtime'] > 0) {
         $ret['s'] = 'already';
         $ret['d'] = $mano;
         return $ret;
     }
     if ($d && $mano[$step]['dtime'] > 0) {
         $ret['s'] = 'already';
         $ret['d'] = $mano;
         return $ret;
         //
     }
     $award = array();
     if ($v) {
         $mano[$step]['vtime'] = $now;
         $m = $conf['v_money'];
         if ($m > 0) {
             $ret['money'] = $tu->chMoney($m);
             $award['money'] = $m;
         }
         $m = $conf['v_gem'];
         if ($m > 0) {
             $ret['gem'] = $tu->chGem($m);
             $award['gem'] = $m;
         }
         $m = $conf['v_exp'];
         if ($m > 0) {
             $ret['exp'] = $tu->addExp($m);
             $award['exp'] = $m;
         }
         $items = $conf['v_items'];
         if ($items) {
             foreach ($items as $item) {
                 $config = ItemConfig::getItem($item['tag']);
                 $idp = $item['idp'];
                 //					$item['id']=$uid.$idp;
                 unset($item['idp']);
                 $item['pos'] = 's';
                 if ($config['group'] == 'g') {
                     $item['num'] = $config['unitcout'];
                     $tu->puto($item, TT::GOODS_GROUP);
                 } else {
                     $tu->puto($item, TT::ITEM_GROUP);
                 }
                 $award['items'][] = $item;
             }
         }
         $tu->puto($mano);
         $ret['award'] = $award;
         $ret['s'] = 'OK';
         return $ret;
     }
     $mano[$step]['dtime'] = $now;
     $m = $conf['d_money'];
     if ($m > 0) {
         $ret['money'] = $tu->chMoney($m);
         $award['money'] = $m;
     }
     $m = $conf['d_gem'];
     if ($m > 0) {
         $ret['gem'] = $tu->chGem($m);
         $award['gem'] = $m;
     }
     $m = $conf['d_exp'];
     if ($m > 0) {
         $ret['exp'] = $tu->addExp($m);
         $award['exp'] = $m;
     }
     $items = $conf['d_items'];
     if ($items) {
         foreach ($items as $item) {
             $config = ItemConfig::getItem($item['tag']);
             $idp = $item['idp'];
             //			    $item['id']=$uid.$idp;
             unset($item['idp']);
             $item['pos'] = 's';
             if ($config['group'] == 'g') {
                 $item['num'] = $config['unitcout'];
                 $tu->puto($item, TT::GOODS_GROUP);
             } else {
                 $tu->puto($item, TT::ITEM_GROUP);
             }
             $award['items'][] = $item;
         }
     }
     $tu->puto($mano);
     TTLog::record(array('m' => __METHOD__, 'tm' => $_SERVER['REQUEST_TIME'], 'u' => $uid, 'intp1' => $step));
     $ret['s'] = 'OK';
     $ret['award'] = $award;
     return $ret;
 }
예제 #3
0
파일: Friend.php 프로젝트: uning/mallb
 /**
 			  五,增加好友箱数:						
  说明:	货车出发之后,放进仓库之前,好友均可点击,点击会增加货物箱数。				
 			  按钮问题:好友帮助加箱数的按钮,在货车运货过程中和货车回来都有。而当货车回来,但是没有放进仓库时,只有到好友家才有按钮,自己的副驾驶功能消失。				
 			  限制:	每人每日可帮一个好友一次。				
 			  级别越高增加的箱数越多。					
 			  级别:	箱数:				
 			  1	1				
 			  40	2				
 			  70	3				
 			  被帮助者奖励:	礼物为一箱货物。				
 			  帮助者奖励:	获得所进货物经验(进货+取货的经验和)相等的经验。	
 			 * @param $params
 			 *  require  u           --  user id
 			 *           f           --  friend id
 			 *           cid         --  car id
 			 *           type        --  1    表示加货
 			 *                           2    表示保鲜
 			 * @return 
 			 *           s           --  OK
 			 --  helped,已经拜访过
 			 --  nofriend,不是朋友
 			 --  freshed  今天已经操作过了
 			 --  alreadyfresh  可能已被别人保鲜了
 			 --  notexpiration  货物未过期
 			 award        
 			 exp         --奖励经验
 			 money       --奖励金钱 
 */
 public function help_car($params)
 {
     $uid = $params['u'];
     $nid = $params['f'];
     $cid = $params['cid'];
     $type = $params['type'];
     //兼容在线的旧flash版本
     if (!$type) {
         $type = 1;
     }
     $tu = new TTUser($uid);
     $ftu = new TTUser($nid);
     $fdid = $tu->getdid($nid, 'fr');
     $now = time();
     $now_date = date('Ymd', $now);
     $fdata = $tu->getbyid($fdid);
     if (!$fdata) {
         $ret['s'] = 'nofriend';
         return $ret;
     }
     $car = $ftu->getbyid($cid);
     if (!$car) {
         $ret['s'] = 'nocar ' . $cid;
         return $ret;
     }
     $goodsid = $car['goodsTag'];
     $gconfig = ItemConfig::getItem($goodsid);
     $add_exp = $gconfig['exp'];
     if (!$add_exp) {
         $ret['s'] = 'nogoods';
         $ret['g'] = $gconfig;
         return $ret;
     }
     $level = $tu->getLevel();
     $vt = $fdata['ht'];
     $vt_date = date('Ymd', $vt);
     $fdata['ht'] = $now;
     if ($type == 1) {
         //加货
         if ($vt_date == $now_date && $fdata['help_car'] == '1') {
             $ret['s'] = 'helped';
             return $ret;
         }
         $carconf = ItemConfig::getItem($car['tag']);
         $counts = count($car['help']);
         if ($counts > $carconf['gridWidth']) {
             $ret['help_time'] = $counts;
             $ret['gridW'] = $car['help'];
             $ret['s'] = 'max';
             return $ret;
         }
         $num = 1;
         if ($level > 39) {
             $num = 2;
         }
         if ($level > 69) {
             $num = 3;
         }
         $car['help'][$uid] = $num;
         $fdata['help_car'] = 1;
     }
     if ($type == 2) {
         //保鲜
         if ($vt_date == $now_date && $fdata['fresh'] == '1') {
             $ret['s'] = 'freshed';
             return $ret;
         }
         if ($car['fresh']) {
             $ret['s'] = 'alreadyfresh';
             return $ret;
         }
         if ($now - $car['t'] <= 3 * $gconfig['buytime']) {
             //货物未过期
             $ret['s'] = 'notexpiration';
             return $ret;
         }
         $car['fresh'] = $nid;
         $car['fresh'] = $params['f'];
         $fdata['fresh'] = 1;
     }
     $add_exp *= 2;
     $ret['type'] = $type;
     $ret['exp'] = $tu->addExp($add_exp);
     $ret['award']['exp'] = $add_exp;
     $tu->puto($fdata, 'fr', false);
     $ftu->puto($car, '', false);
     $ret['cid'] = $cid;
     $ret['s'] = 'OK';
     $ret['t'] = $now;
     $ret['car'] = $car;
     // for debug
     return $ret;
 }
예제 #4
0
파일: Friend.php 프로젝트: uning/mall-back
 /**
 			  五,增加好友箱数:						
  说明:	货车出发之后,放进仓库之前,好友均可点击,点击会增加货物箱数。				
 			  按钮问题:好友帮助加箱数的按钮,在货车运货过程中和货车回来都有。而当货车回来,但是没有放进仓库时,只有到好友家才有按钮,自己的副驾驶功能消失。				
 			  限制:	每人每日可帮一个好友一次。				
 			  级别越高增加的箱数越多。					
 			  级别:	箱数:				
 			  1	1				
 			  20	2				
 			  40	3				
 			  被帮助者奖励:	礼物为一箱货物。				
 			  帮助者奖励:	获得所进货物经验(进货+取货的经验和)相等的经验。	
 			 * @param $params
 			 *  require  u           --  user id
 			 *           f         --  friend id
 			 *           cid         --  car id
 			 * @return 
 			 *           s           --  OK
 			 --  helped,已经拜访过
 			 --  nofriend,不是朋友
 			 award        
 			 exp         --奖励经验
 			 money       --奖励金钱 
 */
 public function help_car($params)
 {
     $uid = $params['u'];
     $nid = $params['f'];
     $cid = $params['cid'];
     $tu = new TTUser($uid);
     $ftu = new TTUser($nid);
     $fdid = $tu->getdid($nid, 'fr');
     $now = time();
     $now_date = date('Ymd', $now);
     $fdata = $tu->getbyid($fdid);
     if (!$fdata) {
         $ret['s'] = 'nofriend';
         return $ret;
     }
     $vt = $fdata['ht'];
     $vt_date = date('Ymd', $vt);
     if ($vt_date == $now_date && $fdata['help_car'] == '1') {
         $ret['s'] = 'helped';
         return $ret;
         //for test
     }
     $car = $ftu->getbyid($cid);
     if (!$car) {
         $ret['s'] = 'nocar ' . $cid;
         return $ret;
     }
     $carconf = ItemConfig::getItem($car['tag']);
     $counts = count($car['help']);
     if ($counts > $carconf['gridWidth']) {
         $ret['help_time'] = $counts;
         $ret['gridW'] = $car['help'];
         $ret['s'] = 'max';
         return $ret;
     }
     $goodsid = $car['goodsTag'];
     $gconfig = ItemConfig::getItem($goodsid);
     $add_exp = $gconfig['exp'];
     if (!$add_exp) {
         $ret['s'] = 'nogoods';
         $ret['g'] = $gconfig;
         return $ret;
     }
     $level = $tu->getLevel();
     $num = 1;
     if ($level > 39) {
         $num = 2;
     }
     if ($level > 69) {
         $num = 3;
     }
     //$mydata = TTGenid::getbyid($uid);
     $car['help'][$uid] = $num;
     $add_exp *= 4;
     $ret['exp'] = $tu->addExp($add_exp);
     $ret['award']['exp'] = $add_exp;
     $fdata['ht'] = $now;
     $fdata['help_car'] = 1;
     $tu->puto($fdata, 'fr', false);
     $ftu->puto($car, '', false);
     $ret['cid'] = $cid;
     $ret['s'] = 'OK';
     $ret['t'] = $now;
     return $ret;
 }
예제 #5
0
 /**
  * 金手指
  * @param $params
  *   require  u               -- 玩家id
  *            money           -- 增加金币数
  *            gem             -- 增加宝石数
  *            exp             -- 增加经验数
  * @return 
  *            s         --  OK
  */
 public function cheat($params)
 {
     $uid = $params['u'];
     $tu = new TTUser($uid);
     $tu->chMoney($params['money']);
     $tu->numch(TT::GEM_STAT, $params['gem']);
     //		$tu->numch( TT::EXP_STAT,$params['exp'] );
     $tu->addExp($params['exp']);
     $ret['a'] = $tu->getf(array(TT::MONEY_STAT, TT::GEM_STAT, TT::EXP_STAT));
     $ret['s'] = 'OK';
     return $ret;
 }