Пример #1
0
 public function info($playerID)
 {
     $player = new PlayerModel();
     $data = $player->loadPlayer($playerID);
     $playerData = array('status' => 'ok', 'first_name' => $data->first_name, 'last_name' => $data->last_name, 'total_purchases' => $data->total_purchases ? $data->total_purchases : 0, 'belt' => $data->belt, 'create_date' => date('Y-m-d', strtotime($data->create_date)), 'last_login' => $data->last_login_date, 'global_score' => $data->global_score ? $data->global_score : 0, 'level' => (int) $data->level, 'new_player' => true, 'lives' => (int) $data->lives, 'timezone_offset' => $data->timezone_offset, 'locale' => $data->locale, 'new' => $data->new);
     $this->printJson($playerData);
 }
Пример #2
0
 public function saveLevelScore($payload = null, $playerID = null)
 {
     Validate::Player($playerID);
     if ($payload == null) {
         return false;
     }
     if ($decodedPayload = NinjaHash::decode($payload)) {
         $player = new PlayerModel();
         $p = $player->loadPlayer($this->playerID);
         $updates = false;
         $this->db->select('*');
         $this->db->from('level_scores');
         $this->db->where('level_id', $decodedPayload->level);
         $this->db->where('player_id', $this->playerID);
         $query = $this->db->get();
         $tmpObject = $query->row();
         $levelScoreExists = $query->num_rows();
         if ($levelScoreExists) {
             if ($decodedPayload->total_moves < $tmpObject->total_moves) {
                 Log::add('total moves was less then ' . $decodedPayload->total_moves . ' : ' . $tmpObject->total_moves);
                 $updates = true;
                 $dbData['total_moves'] = $decodedPayload->total_moves;
             }
             if (strlen($decodedPayload->largest_word) > strlen($tmpObject->largest_word)) {
                 Log::add('largest word was bigger ' . $decodedPayload->total_moves . ' : ' . $tmpObject->total_moves);
                 $updates = true;
                 $dbData['largest_word'] = $decodedPayload->largest_word;
             }
             if ($decodedPayload->time_elapsed < $tmpObject->time_elapsed || $tmpObject->time_elapsed == '') {
                 Log::add('time elapsed was less then ' . $decodedPayload->total_moves . ' : ' . $tmpObject->total_moves);
                 $updates = true;
                 $dbData['time_elapsed'] = $decodedPayload->time_elapsed;
             }
             if ($decodedPayload->score > $tmpObject->score) {
                 Log::add('score was more than ' . $decodedPayload->score . ' : ' . $tmpObject->score);
                 $dbData['score_level'] = $this->getScoreLevel($decodedPayload->score, $decodedPayload->level);
                 $updates = true;
                 $dbData['score'] = $decodedPayload->score;
             }
             //update play_count
             $playCount = $tmpObject->play_count;
             $playCount = $playCount + 1;
             $dbData['play_count'] = $playCount;
             if ($updates) {
                 $this->db->where('level_id', $decodedPayload->level);
                 $this->db->where('player_id', $this->playerID);
                 $this->db->update('level_scores', $dbData);
                 Log::add('updating player level score - last query: ' . $this->db->last_query());
             }
         } else {
             $dbData['total_moves'] = $decodedPayload->total_moves;
             $dbData['largest_word'] = $decodedPayload->largest_word;
             $dbData['time_elapsed'] = $decodedPayload->time_elapsed;
             $dbData['score'] = $decodedPayload->score;
             $dbData['date_added'] = date('Y-m-d H:i:a');
             $dbData['level_id'] = $decodedPayload->level;
             $dbData['player_id'] = $this->playerID;
             $dbData['play_count'] = 1;
             $dbData['score_level'] = $this->getScoreLevel($decodedPayload->score, $decodedPayload->level);
             $this->db->insert('level_scores', $dbData);
             Log::add('inserting player level score - last query: ' . $this->db->last_query());
         }
         //check if leveled up
         $newLives = $decodedPayload->completed == 'true' ? $player->data->lives + 1 : $player->data->lives;
         if ($decodedPayload->completed == 'true' && $player->data->level == $decodedPayload->level) {
             $player->levelUp($playerID, $decodedPayload->score, $newLives);
         }
         return $player->data;
     } else {
         return false;
     }
 }
Пример #3
0
 public function init($uuid)
 {
     $swfs = new SwfModel();
     $player = new PlayerModel();
     $incentiveModel = new IncentiveModel();
     if ($_GET['platform'] != '') {
         $payload['platform'] = $_GET['platform'];
     } else {
         $payload['platform'] = "mobile";
     }
     $platform = $payload['platform'];
     list($playerID, $newPlayer) = $player->getPlayerIDFromUID($uuid, $payload);
     $p = $player->loadPlayer($playerID);
     $playerSessionID = md5(uniqid(rand(), true)) . "_" . $p->visitCount;
     $lastLoginDate = strtotime($p->last_login_date) ? strtotime($p->last_login_date) : "0";
     $player->updatePlayerLoginInfo($playerID, $lastLoginDate, $playerSessionID, $platform);
     if ($_GET['id'] != '') {
         $collectedItems = $incentiveModel->collectBooty($playerID, $_GET['id']);
     }
     $params['status'] = 'ok';
     $params['appid'] = Config::get('facebook.appid');
     $params['secret'] = Config::get('facebook.appsecret');
     $params['repo'] = Config::get('storage.url');
     $params['base'] = Config::get('url');
     $params['uid'] = $p->uid;
     $params['playerID'] = $p->player_id;
     $params['music'] = $p->music ? true : false;
     $params['soundfx'] = $p->soundfx ? true : false;
     $params['locale'] = 'en_US';
     //going to be spanish or english
     $params['debug'] = false;
     $params['namespace'] = Config::get('facebook.namespace');
     $params['version'] = (int) $swfs->getBuildNumber();
     $params['playerSession'] = $playerSessionID;
     $params['newPlayer'] = $newPlayer;
     $params['platform'] = $platform;
     $params['analyticsUrl'] = Config::get('analytics.url');
     $params['analyticsKey'] = Config::Get('analytics.key');
     $params['analyticsSecret'] = Config::get('analytics.secret');
     $this->printJson($params);
 }