/**
  * get single GameUserItemLog instance from a DOMElement
  *
  * @param DOMElement $node
  * @return GameUserItemLog
  */
 public static function fromDOMElement(DOMElement $node)
 {
     $o = new GameUserItemLog();
     $o->assignByHash(self::domNodeToHash($node, self::$FIELD_NAMES, self::$DEFAULT_VALUES, self::$FIELD_TYPES));
     $o->notifyPristine();
     return $o;
 }
Ejemplo n.º 2
0
 public static function useItem($user, $item, $quantity, $toUserId = null, $gameId = null, $time = null)
 {
     if (empty($time)) {
         $time = time();
     }
     $result = new FunctionResult();
     $result->success = false;
     if (!empty($user)) {
         if (!empty($item)) {
             $userItemLog = new GameUserItemLog();
             $userItemLog->setItemId($item->id);
             $userItemLog->setGameId($gameId);
             $userItemLog->setTime($time);
             $userItemLog->setUserId($user->userId);
             $userItemLog->setCoin($item->coin);
             $userItemLog->setTo($toUserId);
             $userItemLog->setQuantity($quantity);
             $userItemLog->setType(GameUserItemLog::$CONSTANT_ITEM_LOG_TYPE_USED);
             $userItemLog->setUserLevel($user->userLevelNumber);
             $userItemLog->setUserCoin($user->coins);
             //$userItemLog->setUserSpentCoin(GameUserItemLog::$CONSTANT_ITEM_LOG_TYPE_BUY);
             try {
                 $userItemLog->insertIntoDatabase(DBUtils::getConnection());
             } catch (Exception $exc) {
                 error_log($exc->getMessage());
                 error_log($exc->getTraceAsString());
             }
             $userItem = ItemUtils::getUserItem($toUserId, $item->itemCode);
             if (empty($userItem)) {
                 $userItem = new GameUserItems();
                 $userItem->setId(-1);
                 $userItem->setUserId($toUserId);
                 $userItem->setItemCode($item->itemCode);
                 $userItem->setActive(1);
                 $userItem->setQuantity(0);
             }
             $userItem->setTime($time);
             if ($quantity < $userItem->quantity) {
                 $userItem->setQuantity($userItem->quantity - $quantity);
             } else {
                 $userItem->setQuantity(0);
             }
             try {
                 $userItem->updateInsertToDatabase(DBUtils::getConnection());
             } catch (Exception $exc) {
                 error_log($exc->getMessage());
                 error_log($exc->getTraceAsString());
             }
             $result->success = true;
             $result->data = new stdClass();
             $user->items = ItemUtils::getUserItems($user->userId);
             $result->data->user = $user;
             $result->data->item = $item;
             return $result;
         } else {
             $result->result = LanguageUtils::getText("LANG_API_TO_ITEM_EMPTY");
             return $result;
         }
     } else {
         $result->result = LanguageUtils::getText("LANG_API_USER_EMPTY");
         return $result;
     }
 }