コード例 #1
0
 public function run()
 {
     Eloquent::unguard();
     $user = User::first();
     DB::table('tournaments')->truncate();
     DB::table('players_tournaments')->truncate();
     $tournament = new Tournament(array('user' => $user->id, 'name' => 'Tournois du 26 avril'));
     $tournament->save();
     $tournament2 = new Tournament(array('user' => $user->id, 'name' => 'Tournois du 26 mai'));
     $tournament2->save();
     $it = 0;
     foreach (Player::where('name', '<>', User::GHOST)->get() as $player) {
         $tournament->players()->attach($player->id);
         if ($it % 2 == 0) {
             $tournament2->players()->attach($player->id);
         }
         $it++;
     }
 }
コード例 #2
0
 public function Validate_DBID_Exists($db_id, $player_name, $api_key)
 {
     /*
      ***********************************
      ** Check existing name/db_id     **
      ***********************************
      *  Does the db_id exist?
      *  Does the submitted name match existing?
      */
     $check_existing_sql = Player::where('db_id', '=', $db_id)->order_by('created_at', 'DESC')->first();
     if ($check_existing_sql) {
         if ($check_existing_sql->name != $player_name) {
             Log::warn("Existing db_id does not match existing name({$db_id}|in:{$player_name}|existing:{$check_existing_sql->name})");
             return false;
         }
         if ($check_existing_sql->api_key != $api_key) {
             //api key isn't blank and does not match!
             Log::warn("API key missmatch: " . $db_id);
             return false;
         }
     }
     return true;
 }
コード例 #3
0
 public function postAdd()
 {
     $rules = array('playerid' => 'required|numeric|exists:players,playerid', 'donatoramount' => 'numeric|required', 'donatorduration' => 'numeric|required', 'donatordate' => 'required', 'reason' => 'required');
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->passes() && Auth::user()->canEditPlayerAdmin(Input::get('playerid'))) {
         $player = Player::where('playerid', Input::get('playerid'))->first();
         $log = new Adminlog();
         $log->type = 'player';
         $log->editor = Auth::user()->id;
         $log->objectid = $player->uid;
         $log->reason = Input::get('reason');
         $log->difference = $log->getDifference(array('donatorlvl' => $player->donatorlvl, 'donatordate' => $player->donatordate, 'donatoramount' => $player->donatoramount, 'donatorduration' => $player->donatorduration), array('donatorlvl' => 5, 'donatordate' => Input::get('donatordate'), 'donatoramount' => Input::get('donatoramount') * 1, 'donatorduration' => Input::get('donatorduration')));
         $log->save();
         $player->donatorlvl = 5;
         $player->donatordate = Input::get('donatordate');
         $player->donatoramount = Input::get('donatoramount') * 1;
         $player->donatorduration = Input::get('donatorduration');
         $player->save();
         return Redirect::to('/donators')->with(array('message' => 'Die Änderung wurde erfolgreich übernommen.', 'type' => 'success'));
     } else {
         return Redirect::to('/donators')->with(array('message' => 'Leider ist ein Fehler aufgetreten, die Änderung wurde verworfen.', 'type' => 'danger'));
     }
 }
コード例 #4
0
<?php

// listItem : nom de la procedure dans le model
$listItem = 'newListItem';
// Clubs déjà selectionnes
$playerExistes = MySession::getModel('compet')->getListPlayerId();
// Datas - cherche par Nom
if ($inputs['nom'] == 'parNom') {
    $datas = Player::where('nom', 'LIKE', '%' . $inputs['search'] . '%')->whereNotIn('id', $playerExistes)->orderBy('nom', 'ASC')->get();
}
// Datas - cherche par Licence
if ($inputs['nom'] == 'parLicence') {
    $datas = Player::whereLicence($inputs['search'])->whereNotIn('id', $playerExistes)->orderBy('nom', 'ASC')->get();
}
// Limit datas to show : if 0 or not exist then value no limit
$param['maxData'] = '60';
// Sub-titre
$param['sub-titre'] = 'Sélectionnez un joueur';
// Select Route
$param['selectRoute'] = 'entreeplayer.place';
$param['selectText'] = '';
$param['moreParams'] = $inputs['id'];
// Actions
$param['actions'] = 'place';
// BackUrl
$param['backUrl'] = 'entree';
?>


<!-- List.Blade -->
コード例 #5
0
ファイル: TeamController.php プロジェクト: piyrus/proware
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $team = Team::where('identifier', '=', $id)->first();
     $players = Player::where('teamIdentifier', '=', $id)->get();
     return View::make('team.details', ['team' => $team, 'players' => $players]);
 }
コード例 #6
0
 public function Set_Player_Basic_Info($db_id, $input)
 {
     if (Cache::has($this->class_name . "_" . $db_id . "_Basic_MD5")) {
         //check the input MD5 against this
         if (md5($input) == Cache::get($this->class_name . "_" . $db_id . "_Basic_MD5")) {
             Player::where('db_id', '=', $db_id)->touch();
             return true;
         }
     } else {
         try {
             $is_addon_user = 1;
             $query_add_player = "INSERT INTO `players` ";
             $query_add_player .= "(name, armyTag, instanceId, db_id, e_id,";
             $query_add_player .= "armyId, current_archetype, region, ";
             $query_add_player .= "created_at, updated_at) ";
             $query_add_player .= "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ";
             $query_add_player .= "ON DUPLICATE KEY UPDATE ";
             $query_add_player .= "name = ?, armyTag = ?, instanceId = ?, armyId = ?, ";
             $query_add_player .= "e_id = ?, current_archetype = ?, addon_user = ?, region = ?, ";
             $query_add_player .= "updated_at = ?";
             $bindings = array($input['player_name'], $input['player_army_tag'], $input['player_instance_id'], $db_id, $input['player_eid'], $input['player_army_id'], $input['player_current_archetype'], $input['player_region'], $this->date, $this->date, $input['player_name'], $input['player_army_tag'], $input['player_instance_id'], $input['player_army_id'], $input['player_eid'], $input['player_current_archetype'], $is_addon_user, $input['player_region'], $this->date);
             if (!DB::query($query_add_player, $bindings)) {
                 throw new Exception('Add/Update player query failed');
             }
         } catch (Exception $e) {
             Log::info($log_header . $e->getMessage());
             file_put_contents($this->logpath . $this->logdate . '_bad_player.json', json_encode($input));
             return false;
         }
     }
     //set cache file and cache MD5 file
     Cache::forever($this->class_name . "_" . $db_id . "_Basic", json_encode($input));
     Cache::forever($this->class_name . "_" . $db_id . "_Basic_MD5", md5($input));
     return true;
 }
コード例 #7
0
 public function get_player_certs($name = NULL)
 {
     //searching by name, null name = no buenos
     if ($name == NULL) {
         return Response::error('404');
     } else {
         $input_name = urldecode($name);
     }
     //Look up the player, latest to account for deletes with the same name
     $player = Player::where('name', '=', $input_name)->order_by('created_at', 'DESC')->first();
     //no player found, why not search?
     if (!$player) {
         return Response::error('404');
     }
     //Does the player have an army?
     $army = Army::where('armyId', '=', $player->armyid)->order_by('created_at', 'DESC')->first();
     //escape for output in title
     $playerName = htmlentities($player->name);
     //Player website preferences
     $web_prefs = WebsitePref::where('db_id', '=', $player->db_id)->first();
     if (isset($web_prefs->attributes)) {
         $web_prefs = $web_prefs->attributes;
     }
     //website prefs we care about - show_workbench, show_craftables, show_market_listings
     if (!isset($web_prefs['show_workbench'])) {
         $web_prefs['show_workbench'] = 1;
     }
     if (!isset($web_prefs['show_craftables'])) {
         $web_prefs['show_craftables'] = 0;
     }
     if (!isset($web_prefs['show_market_listings'])) {
         $web_prefs['show_market_listings'] = 0;
     }
     if ($web_prefs['show_market_listings']) {
         //find out what this player has currently listed on the market
         $cache_key_player_market = $player->db_id . "_market_listings";
         if (Cache::has($cache_key_player_market)) {
             //pull from cache
             $cached_market_listings = Cache::get($cache_key_player_market);
             $item_stats_lookup = $cached_market_listings['stats'];
             $market_listings = $cached_market_listings['data'];
         } else {
             $market_listings = MarketListing::where('active', '=', '1')->where('character_guid', '=', $player->db_id)->get(array('item_sdb_id', 'expires_at', 'price_cy', 'price_per_unit', 'rarity', 'quantity', 'title', 'icon', 'ff_id', 'category'));
             if (!empty($market_listings)) {
                 $market_stat_ids = array();
                 $market_stat_cats = array();
                 foreach ($market_listings as $listing) {
                     $market_stat_ids[] = $listing->attributes['ff_id'];
                     $market_stat_cats[] = $listing->attributes['category'];
                 }
                 if (count($market_stat_cats) < 1) {
                     $stats = false;
                 }
                 $market_stat_cats_unique = array_unique($market_stat_cats);
                 $item_stats_lookup = false;
                 foreach ($market_stat_cats_unique as $statcat) {
                     switch ($statcat) {
                         case 'AbilityModule':
                             $stats = MarketStatAbilityModule::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '<table>';
                                 $ustats = (array) unserialize($stat->stats);
                                 ksort($ustats);
                                 foreach ($ustats as $key => $value) {
                                     $key = str_replace('_', ' ', $key);
                                     $key = ucwords($key);
                                     $value = number_format($value, 2);
                                     $temp .= '<tr><td>' . htmlentities($key) . ': </td><td>' . htmlentities($value) . '</td></tr>';
                                 }
                                 $temp .= '</table>';
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         case 'CraftingComponent':
                             $stats = MarketStatCraftingComponent::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '';
                                 $key_lookup = array('mass' => 'MASS', 'power' => 'PWR', 'cpu' => 'CPU');
                                 ksort($stat->attributes);
                                 foreach ($stat->attributes as $key => $value) {
                                     if ($value > 0 && array_key_exists($key, $key_lookup)) {
                                         $temp .= htmlentities($key_lookup[$key]) . ': ' . htmlentities($value) . '<br>';
                                     }
                                 }
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         case 'Jumpjet':
                             $stats = MarketStatJumpjet::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '<table>';
                                 $key_lookup = array('id', 'updated_at', 'created_at', 'marketlisting_id');
                                 ksort($stat->attributes);
                                 foreach ($stat->attributes as $key => $value) {
                                     if (!in_array($key, $key_lookup)) {
                                         $key = str_replace('_', ' ', $key);
                                         $key = ucwords($key);
                                         $value = number_format($value, 2);
                                         $temp .= '<tr><td>' . htmlentities($key) . ': </td><td>' . htmlentities($value) . '</td></tr>';
                                     }
                                 }
                                 $temp .= '</table>';
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         case 'Plating':
                             $stats = MarketStatPlating::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '<table>';
                                 $key_lookup = array('id', 'updated_at', 'created_at', 'marketlisting_id');
                                 ksort($stat->attributes);
                                 foreach ($stat->attributes as $key => $value) {
                                     if (!in_array($key, $key_lookup)) {
                                         $key = str_replace('_', ' ', $key);
                                         $key = ucwords($key);
                                         $value = number_format($value, 2);
                                         $temp .= '<tr><td>' . htmlentities($key) . ': </td><td>' . htmlentities($value) . '</td></tr>';
                                     }
                                 }
                                 $temp .= '</table>';
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         case 'Resource':
                             $stats = MarketStatResource::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '<table>';
                                 $key_lookup = array(1 => 'Thermal Resistance', 2 => 'Conductivity', 3 => 'Malleability', 4 => 'Density', 5 => 'Toughness', 'quality' => 'Quality');
                                 $temp_ar = array();
                                 foreach ($stat->attributes as $key => $value) {
                                     if (array_key_exists($key, $key_lookup)) {
                                         $temp_ar[$key] = '<tr><td>' . htmlentities($key_lookup[$key]) . ': </td><td>' . htmlentities($value) . '</td></tr>';
                                     }
                                 }
                                 //because resources are special, we alpha order them numerically
                                 $temp .= $temp_ar[2];
                                 $temp .= $temp_ar[4];
                                 $temp .= $temp_ar[3];
                                 $temp .= $temp_ar[1];
                                 $temp .= $temp_ar[5];
                                 $temp .= $temp_ar['quality'];
                                 $temp .= '</table>';
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         case 'Servo':
                             $stats = MarketStatServo::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '<table>';
                                 $key_lookup = array('id', 'updated_at', 'created_at', 'marketlisting_id');
                                 ksort($stat->attributes);
                                 foreach ($stat->attributes as $key => $value) {
                                     if (!in_array($key, $key_lookup)) {
                                         $key = str_replace('_', ' ', $key);
                                         $key = ucwords($key);
                                         $value = number_format($value, 2);
                                         $temp .= '<tr><td>' . htmlentities($key) . ': </td><td>' . htmlentities($value) . '</td></tr>';
                                     }
                                 }
                                 $temp .= '</table>';
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         case 'Weapon':
                             $stats = MarketStatWeapon::where_in('marketlisting_id', $market_stat_ids)->get();
                             foreach ($stats as $stat) {
                                 $temp = '<table>';
                                 $key_lookup = array('id', 'updated_at', 'created_at', 'marketlisting_id');
                                 ksort($stat->attributes);
                                 foreach ($stat->attributes as $key => $value) {
                                     if (!in_array($key, $key_lookup)) {
                                         $key = str_replace('_', ' ', $key);
                                         $key = ucwords($key);
                                         $value = number_format($value, 2);
                                         $temp .= '<tr><td>' . htmlentities($key) . ': </td><td>' . htmlentities($value) . '</td></tr>';
                                     }
                                 }
                                 $temp .= '</table>';
                                 $item_stats_lookup[(string) $stat->marketlisting_id] = $temp;
                             }
                             break;
                         default:
                             break;
                     }
                 }
                 //Cache
                 $cached_market_listings = array();
                 $cached_market_listings['data'] = $market_listings;
                 $cached_market_listings['stats'] = $item_stats_lookup;
                 Cache::put($cache_key_player_market, $cached_market_listings, 30);
             }
         }
     }
     if ($web_prefs['show_craftables']) {
         if (isset($web_prefs['show_progress'])) {
             if ($web_prefs['show_progress']) {
                 $progress = Progress::where('db_id', '=', $player->db_id)->order_by('updated_at', 'DESC')->first();
             } else {
                 $progress = null;
             }
         } else {
             $progress = Progress::where('db_id', '=', $player->db_id)->order_by('updated_at', 'DESC')->first();
         }
         if (!empty($progress)) {
             $cache_key_progress = $player->db_id . "_progress";
             $progress = $progress->entry;
             $progress_md5 = md5($progress);
             if (Cache::Get($cache_key_progress . "_md5_cc") != $progress_md5) {
                 $progress = unserialize($progress);
                 if (isset($progress->unlocks)) {
                     $master_cert_list = array();
                     //all odd number certs from 799 to 1245
                     //category names from 766 to 783
                     //arsenal = 1398
                     /*
                     	766 = base assault
                     	767 = base biotech
                     	768 = base dreadnaught
                     	769 = base engineer
                     	770 = base recon
                     	
                     	774 = firecat
                     	775 = tigerclaw
                     	776 = dragonfly
                     	777 = recluse
                     	778 = rhino
                     	779 = mammoth
                     	1398 = arsenal
                     	780 = electron
                     	781 = bastion
                     	782 = nighthawk
                     	783 = raptor
                     */
                     //certs we don't care about
                     $useless_certs = array(784, 785, 786, 788, 789, 790, 791, 792, 794, 1154, 1359, 1366, 1367, 1371, 1372, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392);
                     $unlocked_base_assault = 0;
                     $unlocked_base_biotech = 0;
                     $unlocked_base_dreadnaught = 0;
                     $unlocked_base_engineer = 0;
                     $unlocked_base_recon = 0;
                     $unlocked_firecat = 0;
                     $unlocked_tigerclaw = 0;
                     $unlocked_dragonfly = 0;
                     $unlocked_recluse = 0;
                     $unlocked_rhino = 0;
                     $unlocked_arsenal = 0;
                     $unlocked_mammoth = 0;
                     $unlocked_electron = 0;
                     $unlocked_bastion = 0;
                     $unlocked_nighthawk = 0;
                     $unlocked_raptor = 0;
                     foreach ($progress->unlocks as $progress_certs) {
                         //Make a master list of certs, note that certs are in numerical sorted order so we are able to do a fast merge
                         for ($i = 0; $i < count($progress_certs); $i++) {
                             if (!in_array($progress_certs[$i], $master_cert_list)) {
                                 if (!in_array($progress_certs[$i], $useless_certs)) {
                                     //unlock flags
                                     if ($progress_certs[$i] == 766) {
                                         $unlocked_base_assault = 1;
                                     }
                                     if ($progress_certs[$i] == 767) {
                                         $unlocked_base_biotech = 1;
                                     }
                                     if ($progress_certs[$i] == 768) {
                                         $unlocked_base_dreadnaught = 1;
                                     }
                                     if ($progress_certs[$i] == 769) {
                                         $unlocked_base_engineer = 1;
                                     }
                                     if ($progress_certs[$i] == 770) {
                                         $unlocked_base_recon = 1;
                                     }
                                     if ($progress_certs[$i] == 774) {
                                         $unlocked_firecat = 1;
                                     }
                                     if ($progress_certs[$i] == 775) {
                                         $unlocked_tigerclaw = 1;
                                     }
                                     if ($progress_certs[$i] == 776) {
                                         $unlocked_dragonfly = 1;
                                     }
                                     if ($progress_certs[$i] == 777) {
                                         $unlocked_recluse = 1;
                                     }
                                     if ($progress_certs[$i] == 778) {
                                         $unlocked_rhino = 1;
                                     }
                                     if ($progress_certs[$i] == 779) {
                                         $unlocked_mammoth = 1;
                                     }
                                     if ($progress_certs[$i] == 1398) {
                                         $unlocked_arsenal = 1;
                                     }
                                     if ($progress_certs[$i] == 780) {
                                         $unlocked_electron = 1;
                                     }
                                     if ($progress_certs[$i] == 781) {
                                         $unlocked_bastion = 1;
                                     }
                                     if ($progress_certs[$i] == 782) {
                                         $unlocked_nighthawk = 1;
                                     }
                                     if ($progress_certs[$i] == 783) {
                                         $unlocked_raptor = 1;
                                     }
                                     if ($progress_certs[$i] > 764 && $progress_certs[$i] < 798 || $progress_certs[$i] > 1246) {
                                         //add to the master list
                                         $master_cert_list[] = $progress_certs[$i];
                                     } else {
                                         if ($progress_certs[$i] > 797 && $progress_certs[$i] < 1246 && $progress_certs[$i] % 2 == 0) {
                                             //add to the master list
                                             $master_cert_list[] = $progress_certs[$i];
                                         }
                                     }
                                 }
                             }
                         }
                     }
                     //free up some memory
                     $progress = null;
                     sort($master_cert_list);
                     $cert_info = Certification::where(function ($query) use($master_cert_list) {
                         $query->where_in('id', $master_cert_list);
                     })->get(array('id', 'name'));
                     //look at all these arrays
                     //jumpjets, secondary weapons {Assault rifle, burst rifle, grenade launcher, SMG, shotgun}, servos
                     $base_shared_certs = array(910, 982, 984, 986, 988, 990, 992, 1222, 1224, 1226, 1228, 1230, 1242, 1244, 1345, 1346, 1347, 1348, 1349, 1355, 1356);
                     //accord absorbtion plating, afterburners, bombs away, burn jets, crater, overcharge, plasma cannon, shockwave, assault plating
                     $base_assault_certs = array(787, 793, 795, 798, 800, 802, 806, 828, 996, 1016, 1018, 1020, 1022, 1024, 1026, 1028, 1202, 1204, 1232, 1246, 1247, 1248, 1249, 1250, 1335, 1336, 1350);
                     //accord chemical sprayer, accord siphoning plating, healing generator, healing wave, needler, poison ball, poison trail, triage, biotech plating
                     $base_biotech_certs = array(804, 808, 812, 814, 824, 830, 832, 1008, 1010, 1054, 1056, 1058, 1060, 1062, 1064, 1210, 1212, 1236, 1256, 1264, 1265, 1266, 1267, 1268, 1339, 1340, 1352);
                     //Absorption Bomb, Accord Explosive Rounds, Accord Mortar Arcfold, Accord Repulsor Blast, Heavy Armor, Turret Mode, Heavy Machine Gun, Resilient Plating
                     $base_dreadnaught_certs = array(862, 866, 872, 880, 940, 998, 1012, 1014, 1090, 1092, 1094, 1096, 1098, 1100, 1206, 1208, 1234, 1281, 1282, 1283, 1284, 1285, 1286, 1337, 1338, 1351);
                     //Anti-Personnel Turret, Charged Pulse Generator, Claymore, Deployable Shield, Heavy Turret, Supply Station, Accord Nanite Deployment, engineer plating, Sticky Grenade Launcher
                     $base_engineer_certs = array(942, 944, 946, 948, 950, 994, 1004, 1006, 1126, 1128, 1130, 1132, 1134, 1136, 1214, 1216, 1238, 1299, 1300, 1301, 1302, 1303, 1304, 1341, 1342, 1353);
                     //Accord Artillery Strike, Cryo Grenade, Decoy, Proximity Reponse, Resonating Bolts, SIN Beacon, Accord Regenerative Plating, R36 Assault Rifle
                     $base_recon_certs = array(904, 918, 922, 928, 932, 934, 936, 1000, 1002, 1166, 1168, 1170, 1172, 1174, 1176, 1218, 1220, 1240, 1317, 1318, 1319, 1320, 1321, 1322, 1343, 1344, 1354);
                     //ADV frames
                     //fuel air bomb, immolate, incinerator, inferno dash, thermal cannon, thermal wave
                     $base_firecat_certs = array(810, 816, 818, 820, 822, 826, 1030, 1032, 1034, 1036, 1038, 1040, 1251, 1252, 1253, 1254, 1255, 1257);
                     //fusion cannon, Disruption, Missile Shot, Tether Field, Trailblaze, Auxiliary Tanks
                     $base_tigerclaw_certs = array(834, 838, 842, 844, 848, 852, 1042, 1044, 1046, 1048, 1050, 1052, 1258, 1259, 1260, 1261, 1262, 1263);
                     //bio rifle, Emergency Response, Healing Ball, Healing Dome, Healing Pillar, Rally
                     $base_dragonfly_certs = array(836, 846, 850, 856, 860, 864, 1066, 1068, 1070, 1072, 1074, 1076, 1269, 1270, 1271, 1272, 1273, 1274);
                     //bio crossbow, creeping death, evacuate, kinetic shot, necrosis, necrotic poison
                     $base_recluse_certs = array(874, 878, 884, 888, 890, 898, 1078, 1080, 1082, 1084, 1086, 1088, 1275, 1276, 1277, 1278, 1279, 1280);
                     //Charge!, Dreadfield, Gravity Field Grenade, Sundering Wave, Heavy Laser MG, Personal Shield
                     $base_rhino_certs = array(912, 916, 920, 924, 926, 930, 1114, 1116, 1118, 1120, 1122, 1124, 1293, 1294, 1295, 1296, 1297, 1298, 1393, 1394, 1395);
                     //Shield Wall, Teleport Shot, Thunderdome, Tremors, Imminent Threat, Heavy Plasma MG
                     $base_mammoth_certs = array(892, 896, 900, 902, 906, 908, 938, 1102, 1104, 1106, 1108, 1110, 1112, 1287, 1288, 1289, 1290, 1291, 1292, 1357, 1358);
                     //Boomerang Shot, Bulwark, Electrical Storm, Overclocking Station, Shock Rail, Fail-Safe
                     $base_arsenal_certs = array(1399, 1400, 1403, 1406, 1407, 1408, 1409, 1410, 1411, 1416, 1417, 1418, 1421, 1422, 1423, 1426, 1427, 1428, 1436, 1437, 1438);
                     //EMP, Particle Beam, Rocket Jump, Shoulder Rockets, Combat shotgun, light machine gun
                     $base_electron_certs = array(964, 966, 968, 970, 972, 974, 1150, 1152, 1156, 1158, 1162, 1164, 1311, 1312, 1313, 1314, 1315, 1316);
                     //Energy Wall, Fortify, Multi Turret, Sentinel Pod, Tesla Rifle, Overseer
                     $base_bastion_certs = array(952, 954, 956, 958, 960, 962, 1138, 1140, 1142, 1144, 1146, 1148, 1305, 1306, 1307, 1308, 1309, 1310);
                     //Eruption Rounds, Execute Shot, Remote Explosive, Smoke Screen, Sniper Rifle, Ambush
                     $base_nighthawk_certs = array(870, 876, 882, 886, 894, 914, 980, 1178, 1180, 1182, 1184, 1186, 1188, 1323, 1324, 1325, 1326, 1327, 1328);
                     //Overload, Power Field, SIN Scrambler, Teleport Beacon, Conduit, Charge Rifle
                     $base_raptor_certs = array(840, 854, 858, 868, 976, 978, 1190, 1192, 1194, 1196, 1198, 1200, 1329, 1330, 1331, 1332, 1333, 1334);
                     $base_shared_items = array();
                     $base_assault_items = array();
                     $base_biotech_items = array();
                     $base_dreadnaught_items = array();
                     $base_engineer_items = array();
                     $base_recon_items = array();
                     $base_firecat_items = array();
                     $base_tigerclaw_items = array();
                     $base_dragonfly_items = array();
                     $base_recluse_items = array();
                     $base_rhino_items = array();
                     $base_mammoth_items = array();
                     $base_arsenal_items = array();
                     $base_electron_items = array();
                     $base_bastion_items = array();
                     $base_nighthawk_items = array();
                     $base_raptor_items = array();
                     for ($i = 0; $i < count($cert_info); $i++) {
                         //base items
                         if (in_array($cert_info[$i]->id, $base_shared_certs)) {
                             $base_shared_items[] = $cert_info[$i]->name;
                         }
                         if ($unlocked_base_assault) {
                             if (in_array($cert_info[$i]->id, $base_assault_certs)) {
                                 $base_assault_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_base_biotech) {
                             if (in_array($cert_info[$i]->id, $base_biotech_certs)) {
                                 $base_biotech_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_base_dreadnaught) {
                             if (in_array($cert_info[$i]->id, $base_dreadnaught_certs)) {
                                 $base_dreadnaught_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_base_engineer) {
                             if (in_array($cert_info[$i]->id, $base_engineer_certs)) {
                                 $base_engineer_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_base_recon) {
                             if (in_array($cert_info[$i]->id, $base_recon_certs)) {
                                 $base_recon_items[] = $cert_info[$i]->name;
                             }
                         }
                         //ASSAULT ADV
                         if ($unlocked_firecat) {
                             if (in_array($cert_info[$i]->id, $base_firecat_certs)) {
                                 $base_firecat_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_tigerclaw) {
                             if (in_array($cert_info[$i]->id, $base_tigerclaw_certs)) {
                                 $base_tigerclaw_items[] = $cert_info[$i]->name;
                             }
                         }
                         //BIOTECH ADV
                         if ($unlocked_dragonfly) {
                             if (in_array($cert_info[$i]->id, $base_dragonfly_certs)) {
                                 $base_dragonfly_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_recluse) {
                             if (in_array($cert_info[$i]->id, $base_recluse_certs)) {
                                 $base_recluse_items[] = $cert_info[$i]->name;
                             }
                         }
                         //DREADNAUGHT ADV
                         if ($unlocked_rhino) {
                             if (in_array($cert_info[$i]->id, $base_rhino_certs)) {
                                 $base_rhino_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_mammoth) {
                             if (in_array($cert_info[$i]->id, $base_mammoth_certs)) {
                                 $base_mammoth_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_arsenal) {
                             if (in_array($cert_info[$i]->id, $base_arsenal_certs)) {
                                 $base_arsenal_items[] = $cert_info[$i]->name;
                             }
                         }
                         //ENGINEER ADV
                         if ($unlocked_electron) {
                             if (in_array($cert_info[$i]->id, $base_electron_certs)) {
                                 $base_electron_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_bastion) {
                             if (in_array($cert_info[$i]->id, $base_bastion_certs)) {
                                 $base_bastion_items[] = $cert_info[$i]->name;
                             }
                         }
                         //RECON ADV
                         if ($unlocked_nighthawk) {
                             if (in_array($cert_info[$i]->id, $base_nighthawk_certs)) {
                                 $base_nighthawk_items[] = $cert_info[$i]->name;
                             }
                         }
                         if ($unlocked_raptor) {
                             if (in_array($cert_info[$i]->id, $base_raptor_certs)) {
                                 $base_raptor_items[] = $cert_info[$i]->name;
                             }
                         }
                     }
                     asort($base_shared_items);
                     asort($base_assault_items);
                     asort($base_biotech_items);
                     asort($base_dreadnaught_items);
                     asort($base_engineer_items);
                     asort($base_recon_items);
                     asort($base_firecat_items);
                     asort($base_tigerclaw_items);
                     asort($base_dragonfly_items);
                     asort($base_recluse_items);
                     asort($base_rhino_items);
                     asort($base_mammoth_items);
                     asort($base_arsenal_items);
                     asort($base_electron_items);
                     asort($base_bastion_items);
                     asort($base_nighthawk_items);
                     asort($base_raptor_items);
                     //cache it, cache it good
                     $cached_can_craft = array();
                     $cached_can_craft['base_shared_items'] = $base_shared_items;
                     $cached_can_craft['base_assault_items'] = $base_assault_items;
                     $cached_can_craft['base_biotech_items'] = $base_biotech_items;
                     $cached_can_craft['base_dreadnaught_items'] = $base_dreadnaught_items;
                     $cached_can_craft['base_engineer_items'] = $base_engineer_items;
                     $cached_can_craft['base_recon_items'] = $base_recon_items;
                     $cached_can_craft['base_firecat_items'] = $base_firecat_items;
                     $cached_can_craft['base_tigerclaw_items'] = $base_tigerclaw_items;
                     $cached_can_craft['base_dragonfly_items'] = $base_dragonfly_items;
                     $cached_can_craft['base_recluse_items'] = $base_recluse_items;
                     $cached_can_craft['base_rhino_items'] = $base_rhino_items;
                     $cached_can_craft['base_mammoth_items'] = $base_mammoth_items;
                     $cached_can_craft['base_electron_items'] = $base_electron_items;
                     $cached_can_craft['base_bastion_items'] = $base_bastion_items;
                     $cached_can_craft['base_nighthawk_items'] = $base_nighthawk_items;
                     $cached_can_craft['base_raptor_items'] = $base_raptor_items;
                     $cached_can_craft['base_arsenal_items'] = $base_arsenal_items;
                     Cache::forever($cache_key_progress . "_can_craft", $cached_can_craft);
                     Cache::forever($cache_key_progress . "_md5_cc", $progress_md5);
                     //set progress to 1 for the view control params.
                     $progress = 1;
                 } else {
                     //this player does not have progress->unlocks so we can't even check for craftables; assume null.
                     $progress = null;
                 }
             } else {
                 //load it all from cache
                 $cached_can_craft = Cache::Get($cache_key_progress . "_can_craft");
                 //set all those variables
                 $base_shared_items = $cached_can_craft['base_shared_items'];
                 $base_assault_items = $cached_can_craft['base_assault_items'];
                 $base_biotech_items = $cached_can_craft['base_biotech_items'];
                 $base_dreadnaught_items = $cached_can_craft['base_dreadnaught_items'];
                 $base_engineer_items = $cached_can_craft['base_engineer_items'];
                 $base_recon_items = $cached_can_craft['base_recon_items'];
                 $base_firecat_items = $cached_can_craft['base_firecat_items'];
                 $base_tigerclaw_items = $cached_can_craft['base_tigerclaw_items'];
                 $base_dragonfly_items = $cached_can_craft['base_dragonfly_items'];
                 $base_recluse_items = $cached_can_craft['base_recluse_items'];
                 $base_rhino_items = $cached_can_craft['base_rhino_items'];
                 $base_mammoth_items = $cached_can_craft['base_mammoth_items'];
                 $base_arsenal_items = $cached_can_craft['base_arsenal_items'];
                 $base_electron_items = $cached_can_craft['base_electron_items'];
                 $base_bastion_items = $cached_can_craft['base_bastion_items'];
                 $base_nighthawk_items = $cached_can_craft['base_nighthawk_items'];
                 $base_raptor_items = $cached_can_craft['base_raptor_items'];
             }
         }
     }
     if ($web_prefs['show_workbench']) {
         //Workbench Stuff
         $workbench_info = array();
         if (Cache::has($player->db_id . '_printer')) {
             $workbench_info = Cache::get($player->db_id . '_printer');
         } else {
             $wbinfo = Printer::where('db_id', '=', $player->db_id)->get();
             foreach ($wbinfo as $wb) {
                 $workbench_info[] = $wb->original;
             }
             Cache::forever($player->db_id . '_printer', $workbench_info);
         }
         if (!empty($workbench_info)) {
             $workbench_info_blueprints = array();
             for ($i = 0; $i < count($workbench_info); $i++) {
                 $workbench_info_blueprints[] = $workbench_info[$i]['blueprint_id'];
             }
             $workbench_results = Recipe::with(array('outputs'))->where_in('itemtypeid', $workbench_info_blueprints)->get(array('itemtypeid', 'description', 'name'));
             $workbench_output_ids = array();
             $workbench_output_names = array();
             //at this point we will always have something in the workbench so don't worry about null
             foreach ($workbench_results as $workbench_result) {
                 if ($workbench_result->relationships['outputs'] != null) {
                     //add the output itemtypeid to the list
                     print_r($workbench_result->relationships['outputs']);
                 } else {
                     //add the blueprint_id as an itemtypeid because its a cert
                     $workbench_output_ids[] = $workbench_result->attributes['itemtypeid'];
                     if (strstr($workbench_result->attributes['description'], "Research")) {
                         $workbench_output_names[$workbench_result->attributes['itemtypeid']] = $workbench_result->attributes['description'];
                     } else {
                         $workbench_output_names[$workbench_result->attributes['itemtypeid']] = $workbench_result->attributes['name'];
                     }
                 }
             }
             unset($workbench_results);
             //get the icons
             $wb_icons = hWebIcon::where(function ($query) use($workbench_output_ids) {
                 $query->where('version', '=', Base_Controller::getVersionDate());
                 $query->where_in('itemTypeId', $workbench_output_ids);
             })->get(array('itemtypeid', 'asset_path'));
             foreach ($wb_icons as $wb) {
                 $workbench_output_icons[$wb->itemtypeid] = $wb->asset_path;
             }
             unset($wb_icons);
         }
     }
     //ShipIt(TM)
     $response = View::make('player.player_profile_store')->with('title', 'Player Store for ' . $playerName)->with(compact('web_prefs'))->with(compact('player'))->with(compact('army'));
     if (!empty($progress)) {
         $response->progress = $progress;
         $response->base_shared_items = $base_shared_items;
         $response->base_assault_items = $base_assault_items;
         $response->base_biotech_items = $base_biotech_items;
         $response->base_dreadnaught_items = $base_dreadnaught_items;
         $response->base_engineer_items = $base_engineer_items;
         $response->base_recon_items = $base_recon_items;
         $response->base_firecat_items = $base_firecat_items;
         $response->base_tigerclaw_items = $base_tigerclaw_items;
         $response->base_dragonfly_items = $base_dragonfly_items;
         $response->base_recluse_items = $base_recluse_items;
         $response->base_rhino_items = $base_rhino_items;
         $response->base_mammoth_items = $base_mammoth_items;
         $response->base_arsenal_items = $base_arsenal_items;
         $response->base_electron_items = $base_electron_items;
         $response->base_bastion_items = $base_bastion_items;
         $response->base_nighthawk_items = $base_nighthawk_items;
         $response->base_raptor_items = $base_raptor_items;
     }
     if (!empty($market_listings)) {
         $response->market_listings = $market_listings;
         if (!empty($item_stats_lookup)) {
             $response->stats = $item_stats_lookup;
         }
     }
     if (!empty($workbench_info)) {
         $response->workbench_info = $workbench_info;
         $response->workbench_output_icons = $workbench_output_icons;
         $response->workbench_output_names = $workbench_output_names;
     }
     return $response;
 }
コード例 #8
0
ファイル: User.php プロジェクト: romainmasc/jackmarshall
 public static function fantom()
 {
     return Player::where('name', '=', User::GHOST)->where('user', '=', Auth::user()->id)->first();
 }
コード例 #9
0
ファイル: player_data.php プロジェクト: odie5533/ThumpDumpDB
 public function get_single_battleframe($name = NULL, $frame_name = NULL)
 {
     //searching by name, null name = no buenos
     if ($name == NULL || $frame_name == NULL) {
         return Response::error('404');
     } else {
         $input_name = urldecode($name);
     }
     $valid_frame_name = array('assault', 'firecat', 'tigerclaw', 'biotech', 'recluse', 'dragonfly', 'dreadnaught', 'rhino', 'mammoth', 'engineer', 'electron', 'bastion', 'recon', 'raptor', 'nighthawk', 'arsenal');
     if (!in_array($frame_name, $valid_frame_name)) {
         return Response::error('404');
     }
     //Look up the player, latest to account for deletes with the same name
     $player = Player::where('name', '=', $input_name)->order_by('created_at', 'DESC')->first();
     //no player found, why not search?
     if (!$player) {
         return Response::error('404');
     }
     //escape for output in title
     $playerName = htmlentities($player->name);
     //Player website preferences
     $web_prefs = WebsitePref::where('db_id', '=', $player->db_id)->first();
     if (isset($web_prefs->attributes)) {
         $web_prefs = $web_prefs->attributes;
     }
     //loadouts
     /*
         Mappings:
             $loadout->Gear[$i] = Currently equipped items array
             $loadout->Gear[$i]->slot_index
             $loadout->Gear[$i]->info->durability->pool
             $loadout->Gear[$i]->info->durability->current
             $loadout->Gear[$i]->info->attribute_modifiers[$k] = array of custom attributes for this item
             $loadout->Gear[$i]->info->quality = The quality of the crafted item
             $loadout->Gear[$i]->info->creator_guid = the creators unique player ID
             $loadout->Gear[$i]->info->item_sdb_id = The root item this was crafted from
     
             $loadout->Weapons[$i] = Currently equiped weapons array
             $loadout->Weapons[$i]->info->durability->pool
             $loadout->Weapons[$i]->info->durability->current
             $loadout->Weapons[$i]->info->attribute_modifiers[$k]
             $loadout->Weapons[$i]->info->quality
             $loadout->Weapons[$i]->info->creator_guid
             $loadout->Weapons[$i]->info->item_sdb_id
             $loadout->Weapons[$i]->allocated_power
             $loadout->Weapons[$i]->slot_index = Weapon slot, 0 is main hand, 1 is alt weapon
     */
     /*
         Attribute modifiers mapping:
             5   = Jet Energy Recharge
             6   = health
             7   = health regen
             12  = Run Speed
             29  = weapon splash radius
             35  = Energy (for jetting)
             37  = Jump Height
             950 = Max durability pool
             951 = Mass (unmodified - YOU MUST take the abs of this to get it to display correctly!)
             952 = Power (unmodified - YOU MUST take the abs of this to get it to display correctly!)
             953 = CPU (unmodified - YOU MUST take the abs of this to get it to display correctly!)
             956 = clip size
             954 = damage per round
             977 = Damage
             978 = Debuff Duration
             1121= Air Sprint
     
             Defaults for weapons are set in the "hstats" table.
     */
     if (isset($web_prefs['show_loadout'])) {
         if ($web_prefs['show_loadout'] == 1) {
             $loadout = Loadout::where('db_id', '=', $player->db_id)->first();
         } else {
             $loadout = null;
         }
     } else {
         $loadout = Loadout::where('db_id', '=', $player->db_id)->first();
     }
     if ($loadout) {
         //Lets play the cache game, where all the stuff is stored locally and the points don't matter!
         $loadout = unserialize($loadout->entry);
         //VERSION 0.6 CHECKING (Array = Good, Object = BAD!)
         if (gettype($loadout) == "object") {
             //This is from version 0.6, we can no longer use this data.
             $loadout = null;
         }
         $cache_key_loadouts = $player->db_id . "_loadouts";
         $loadout_md5 = md5(serialize($loadout));
         if (Cache::Get($cache_key_loadouts . '_md5') != $loadout_md5 && $loadout != null) {
             //Oh I am playing the game, the one that will take me to my end.
             //Make sure this isnt a terrible send
             if (isset($loadout[0]->Gear)) {
                 for ($k = 0; $k < count($loadout); $k++) {
                     if ($loadout[$k]->Chassis_ID == 77733 || $loadout[$k]->Chassis_ID == 82394 || $loadout[$k]->Chassis_ID == 31334) {
                         //ignore the training frame
                     } else {
                         //Break each loadout into its own cache
                         Cache::forever($cache_key_loadouts . '_' . $loadout[$k]->Chassis_ID, $loadout[$k]);
                     }
                 }
                 //Cache the loadout md5 so we can call it again later
                 Cache::forever($cache_key_loadouts . '_md5', $loadout_md5);
                 //and finally set loadout=1 so we know to display equipped gear data
                 $loadout = 1;
             }
         }
     }
     //progress (feat. obama)
     if (isset($web_prefs['show_progress'])) {
         if ($web_prefs['show_progress'] == 1) {
             $progress = Progress::where('db_id', '=', $player->db_id)->order_by('updated_at', 'DESC')->first();
         } else {
             $progress = null;
         }
     } else {
         $progress = Progress::where('db_id', '=', $player->db_id)->order_by('updated_at', 'DESC')->first();
     }
     /*
         Mappings:
             $progress->xp[$i].sdb_id = ItemTypeId for chassis
             $progress->xp[$i].name = battle frame name
             $progress->xp[$i].lifetime_xp = amount of xp gained overall
             $progress->xp[$i].current_xp = currently allocated XP (WARNING: key may not exist!)
             $progress->chassis_id = current chassis ID, use this to identify what battleframe the player was last using
             $progress->unlocks.array() = certificate array for currently equipped chassis
     */
     if ($progress) {
         //Progression graph builder
         $player_progresses_cache_key = $player->db_id . "_graph";
         $player_id = $player->db_id;
         $frame_progress_javascript = array();
         if (Cache::has($player_progresses_cache_key)) {
             //pull from cache
             $frame_progress_javascript = Cache::get($player_progresses_cache_key);
         } else {
             //don't cache the query, that wont help us; cache the javascript output for highcharts instead.
             $player_progresses = DB::query('SELECT DISTINCT(`db_id`),`entry`,unix_timestamp(`updated_at`) AS `updated_at` FROM `progresses` WHERE db_id= ' . $player_id . '  AND `created_at` > DATE_SUB(CURDATE(), INTERVAL 7 DAY) GROUP BY `created_at` ORDER BY `updated_at` ASC LIMIT 7');
             //check chassis_id exists
             if (!empty($player_progresses)) {
                 $check_chassis = unserialize($player_progresses[0]->entry);
             } else {
                 $check_chassis = "";
                 $check_chassis_id = false;
             }
             if (!isset($check_chassis->chassis_id)) {
                 $check_chassis_id = false;
             } else {
                 $check_chassis_id = true;
             }
             if ($player_progresses && $check_chassis_id) {
                 $frame_progress = array();
                 for ($i = 0; $i < count($player_progresses); $i++) {
                     $day_progress = unserialize($player_progresses[$i]->entry);
                     unset($day_progress->unlocks);
                     foreach ($day_progress->xp as $key => $value) {
                         if ($value->sdb_id == 77733 || $value->sdb_id == 82394 || $value->sdb_id == 31334) {
                             //ignore training frame
                         } else {
                             $frame_progress[$value->name][$player_progresses[$i]->updated_at] = $value->lifetime_xp;
                         }
                     }
                 }
                 //Make it json datas
                 $frame_progress_javascript = array();
                 foreach ($frame_progress as $battle_frame_name => $value) {
                     $xp_data_string = "[";
                     foreach ($value as $day => $xp_amt) {
                         $xp_data_string .= "[" . $day * 1000 . "," . $xp_amt . "],";
                         $frame_progress_javascript[$battle_frame_name] = rtrim($xp_data_string, ",") . "]";
                     }
                 }
             } else {
                 $frame_progress_javascript = null;
                 $progress = false;
             }
             //build cache
             Cache::put($player_progresses_cache_key, $frame_progress_javascript, 30);
         }
     } else {
         $frame_progress_javascript = null;
         $progress = false;
     }
     //Frames & Unlocks
     if ($progress) {
         $progress = unserialize($progress->entry);
         $cache_key_progress = $player->db_id . "_progress";
         if (Cache::Get($cache_key_progress) != $progress) {
             if (isset($progress->xp)) {
                 $battle_frame_id_list = array();
                 for ($i = 0; $i < count($progress->xp); $i++) {
                     $battle_frame_id_list[$i] = $progress->xp[$i]->sdb_id;
                 }
                 $battle_frame_images = hWebIcon::where(function ($query) use($battle_frame_id_list) {
                     $query->where('version', '=', Base_Controller::getVersionDate());
                     $query->where_in('itemTypeId', $battle_frame_id_list);
                 })->get();
                 //set some cache
                 Cache::forever($cache_key_progress . "_battleframe_images", $battle_frame_images);
             } else {
                 $battle_frame_images = null;
             }
             if (isset($web_prefs['show_unlocks'])) {
                 $show_unlocks = $web_prefs['show_unlocks'];
             } else {
                 //Assume show unlocks is 1
                 $show_unlocks = 1;
             }
             if (isset($progress->unlocks) && $show_unlocks == 1) {
                 //VERSION 0.6 CHECK (Array = BAD, Object = Good!)
                 if (gettype($progress->unlocks) == "array") {
                     //NOPE.
                     $battle_frame_unlocks = null;
                 } else {
                     if (gettype($progress->unlocks) == "object") {
                         //Looks like 0.7+ to me!
                         //Create a cache for each frame unlock set
                         foreach ($progress->unlocks as $chassis_id => $cert_array) {
                             if ($chassis_id == 77733 || $chassis_id == 82394 || ($chassis_id = 31334)) {
                                 //ignore training frame
                             } else {
                                 Cache::forever($cache_key_progress . "_" . $chassis_id, $cert_array);
                             }
                         }
                     }
                 }
             }
             //Cache the progress variable so we can do a quick compare on a later load
             Cache::forever($cache_key_progress, $progress);
         } else {
             //Assign cache values to local variable names.
             $battle_frame_images = Cache::Get($cache_key_progress . "_battleframe_images");
             $progress = Cache::Get($cache_key_progress);
         }
     } else {
         $battle_frame_unlocks = null;
     }
     return View::make('player.single_battleframe')->with('title', 'Player Profile for ' . $playerName)->with(compact('player'))->with(compact('frame_name'))->with(compact('loadout'))->with(compact('battle_frame_unlocks'))->with(compact('progress'))->with(compact('frame_progress_javascript'))->with(compact('battle_frame_images'))->with(compact('web_prefs'));
 }
コード例 #10
0
 public function get_barsiggen($name = NULL, $beer = NULL, $frame_request = NULL)
 {
     //Your arguments must be recognized in Fort Kickass
     if (is_null($beer) || is_null($name) || is_null($frame_request)) {
         return Response::error('404');
     }
     //Light beer vs. Dark beer, the showdown -  Thanks Van.
     if (!in_array($beer, array('light', 'dark'))) {
         return Response::error('404');
     }
     //check to make sure in valid frame names
     //don't forget "barsig" for current
     $valid_frame_requests = array('barsig', 'arsenal', 'assault', 'firecat', 'tigerclaw', 'biotech', 'recluse', 'dragonfly', 'dreadnaught', 'rhino', 'mammoth', 'engineer', 'electron', 'bastion', 'recon', 'raptor', 'nighthawk');
     if (!in_array($frame_request, $valid_frame_requests)) {
         return Response::error('404');
     }
     //Alright, now that I'm nice and limber.  Let's see if you're even people.
     $input_name = urldecode($name);
     $player = Player::where('name', '=', $input_name)->order_by('created_at', 'DESC')->first();
     //If you're not even people (like Xtops), go away
     if (is_null($player)) {
         return Response::error('404');
     }
     //STOP.  Hammertime.  Get that data.  Set that data straight.
     $output_name = "";
     $output_xp = "";
     $output_class = "";
     $output_weapon = "";
     $current_frame = "";
     //Let's set the player name with army tag if it exists
     $playerName = htmlentities($player->name);
     if (isset($player->armytag) && strlen($player->armytag) > 1) {
         $output_name = htmlentities($player->armytag . ' ' . $player->name);
     } else {
         $output_name = htmlentities($player->name);
     }
     //Alright, now we're making progress!  (get it?)
     //Naw, let's just copy X5s
     $cache_key = $playerName . "_" . $beer . "_sig_" . $frame_request;
     if (!Cache::has($player->db_id . '_' . $beer . '_sig_' . $frame_request)) {
         $progress = Progress::where('db_id', '=', $player->db_id)->order_by('updated_at', 'DESC')->first();
         if ($progress) {
             $progress = unserialize($progress->entry);
             $cache_key_progress = $player->db_id . "_progress";
             if (isset($progress->xp) && isset($progress->chassis_id)) {
                 //if we're barsig only, current frame, if not check entry for other frame exists
                 if ($frame_request == 'barsig') {
                     $current_frame = $progress->chassis_id;
                 } else {
                     $frame_request_exists = self::simpleNameToChassisId($frame_request);
                     if (!$frame_request_exists) {
                         return Response::error('404');
                     } else {
                         $current_frame = $frame_request_exists;
                     }
                 }
                 foreach ($progress->xp as $chassy) {
                     if ($chassy->sdb_id == $current_frame) {
                         $output_xp = $chassy->lifetime_xp;
                         break;
                     }
                 }
             } else {
                 //we need this data, abort!
                 return Response::error('404');
             }
         } else {
             //We kind of need progress in order to display anything so if the user doesn't have a progress than abort everything.
             return Response::error('404');
         }
         $output_xp = number_format($output_xp / 1000000, 2) . 'M XP';
         //Classy.  But if not, gtfo
         $output_class = strtolower(self::chassisIdToSimpleName($current_frame));
         if (!$output_class) {
             Log::info('no class: ' . $current_frame);
             return Response::error('404');
         }
         //WEAPON ICONS, ASSEMBLE
         switch ($output_class) {
             case 'arsenal':
             case 'assault':
             case 'firecat':
             case 'tigerclaw':
                 $output_weapon = 'assault';
                 break;
             case 'engineer':
             case 'bastion':
             case 'electron':
                 $output_weapon = 'engineer';
                 break;
             case 'dreadnaught':
             case 'mammoth':
             case 'rhino':
                 $output_weapon = 'dreadnaught';
                 break;
             case 'biotech':
             case 'recluse':
             case 'dragonfly':
                 $output_weapon = 'biotech';
                 break;
             case 'recon':
             case 'raptor':
             case 'nighthawk':
                 $output_weapon = 'recon';
                 break;
             default:
                 $output_weapon = 'assault';
                 break;
         }
         // Copy and merge those sexy sexy images
         $background = imagecreatefrompng('public/img/sig_set/Bar/base-' . $beer . '.png');
         $overlay_weapon_icon = imagecreatefrompng('public/img/sig_set/Bar/class_weapons/' . $output_weapon . '.png');
         $overlay_class_icon = imagecreatefrompng('public/img/sig_set/Bar/class_icons/' . $output_class . '.png');
         imagesavealpha($background, true);
         self::imagecopymerge_alpha($background, $overlay_weapon_icon, 305, 2, 0, 0, imagesx($overlay_weapon_icon), imagesy($overlay_weapon_icon), 100);
         imagedestroy($overlay_weapon_icon);
         imagesavealpha($background, true);
         self::imagecopymerge_alpha($background, $overlay_class_icon, 5, 2, 0, 0, imagesx($overlay_class_icon), imagesy($overlay_class_icon), 100);
         imagedestroy($overlay_class_icon);
         imagesavealpha($background, true);
         imageantialias($background, true);
         //Don't worry text, we didn't forget about you!
         $text_color = $beer == 'light' ? imagecolorallocate($background, 0, 0, 0) : imagecolorallocate($background, 255, 255, 255);
         imagestring($background, 2, 30, 3, $output_name, $text_color);
         imagestring($background, 1, 240, 6, $output_xp, $text_color);
         // Output and free from memory
         Cache::put($player->db_id . '_' . $beer . '_sig', '1', 5);
         imagepng($background, 'storage/cache/sigs/' . $playerName . '_' . $beer . '_sig_' . $frame_request . '.png', 9);
         imagedestroy($background);
     }
     //end cache
     $image_path = 'storage/cache/sigs/' . $playerName . '_' . $beer . '_sig_' . $frame_request . '.png';
     //Generate the response
     Response::make('', 200, array('Content-Type' => 'image/png', 'Content-Transfer-Encoding' => 'binary', 'Content-Disposition' => 'inline', 'Expires' => 0, 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0', 'Pragma' => 'public', 'Content-Length' => filesize($image_path)))->send_headers();
     readfile($image_path);
     exit;
 }
コード例 #11
0
ファイル: addon_v2.php プロジェクト: odie5533/ThumpDumpDB
 public function post_printer()
 {
     $log_header = "addon_v2.php@printer [" . $this->user_ip . "] - ({$this->logdate}): ";
     $line = Input::json();
     $datlog = new DatLog();
     $datlog->ip = ip2long($this->user_ip);
     $datlog->db_id = isset($line->Player_ID) ? $line->Player_ID : NULL;
     $datlog->name = isset($line->Player_Name) ? $line->Player_Name : NULL;
     $datlog->category = 'printer';
     $datlog->save();
     if ($this->savedata) {
         file_put_contents($this->logpath . $this->logdate . '_printer.json', serialize($line));
     }
     try {
         /*
          ********************************
          ** Validate Minimum Keys Exist**
          ********************************
          *  # Fail if invalid
          */
         //Minimum keys
         if (!isset($line->Player_Craft_Queue) || !isset($line->Player_EID) || !isset($line->Player_ID) || !isset($line->Player_Name)) {
             throw new Exception('Player did not send all keys.');
         }
         /*
          *  If Craft Queue is empty, bail out
          */
         if (count((array) $line->Player_Craft_Queue) < 1) {
             return Response::json(array('ThumpDumpDB' => '(Printer) Thanks'));
         }
         /*
          ********************************
          ** Validate Player ID (db_id) **
          ********************************
          *  # Fail if invalid
          *  @ sets $player_db_id
          *
          *  -check digits only
          *  -19 characters long
          *  -Begins with a 9
          */
         //Digits only?
         if (preg_match('/[^0-9]/', $line->Player_ID)) {
             throw new Exception("Player ID was more than just numbers: " . $line->Player_ID);
         }
         //19 Characters long?
         if (strlen($line->Player_ID) !== 19) {
             throw new Exception("Player ID was not 19 characters: " . $line->Player_ID);
         }
         //Starts with a 9?
         if (substr($line->Player_ID, 0, 1) !== '9') {
             throw new Exception("Player ID did not start with a 9: " . $line->Player_ID);
         }
         $player_db_id = $line->Player_ID;
         /*
          **********************************
          ** Validate Player EID          **
          **********************************
          *  # Fail is non numeric, NULL otherwise
          *  @ sets $player_eid
          *
          *  -Greater than 0
          *  -Expected length 9 or 10, but others possible
          */
         //Sent only numbers
         if (preg_match('/[^0-9]/', $line->Player_EID)) {
             throw new Exception("Player ({$player_db_id}) EID contained something other than a number: " . $line->Player_EID);
         }
         //EID should be as long as a db_id
         if (strlen($line->Player_EID) !== 19) {
             Log::warn("Player ({$player_db_id}) EID was not the expected 19 digits long: " . $line->Player_EID);
             $line->Player_EID = NULL;
         }
         $player_eid = $line->Player_EID;
         /*
          **********************************
          ** Validate Player Name/Army Tag**
          **********************************
          *  # Warn if invalid
          *  @ sets $player_name
          *  @ sets $player_army_tag
          *
          *  -15 + 6 characters or less ~23 to be safe
          *  -We don't care about character content as much as FF does
          */
         //Check if name is way too long, or too short
         if (strlen($line->Player_Name) > 30 || trim(strlen($line->Player_Name)) < 3) {
             throw new Exception("Player ({$player_db_id}) name was longer than 30 characters, should be <= 23: " . $line->Player_Name);
         }
         //Warn if longer than expected (that's what she said)
         //But allow for armytag length too
         if (strlen($line->Player_Name) > 25) {
             Log::warn("Player ({$player_db_id}) sent a character name longer than max expected length of 23: " . $line->Player_Name);
         }
         //Name is ok, but does it have an army tag?  Does it blend?
         if (strpos($line->Player_Name, ']')) {
             $last = strripos($line->Player_Name, ']') + 1;
             $player_army_tag = substr($line->Player_Name, 0, $last);
             $player_name = trim(substr($line->Player_Name, $last));
         } else {
             $player_army_tag = NULL;
             $player_name = $line->Player_Name;
         }
         /*
          ***********************************
          ** Verify times and ids are ints **
          ***********************************
          *  ready_at, started_at, blueprint_id
          */
         $player_crafts = array();
         $now = date('Y-m-d H:i:s');
         foreach ($line->Player_Craft_Queue as $cq) {
             //we expect only three keys
             if (!isset($cq->ready_at) || !isset($cq->started_at) || !isset($cq->blueprint_id)) {
                 continue;
             } else {
                 if (is_numeric($cq->ready_at) && is_numeric($cq->started_at) && is_numeric($cq->blueprint_id)) {
                     $player_crafts[] = array('db_id' => $player_db_id, 'ready_at' => $cq->ready_at, 'started_at' => $cq->started_at, 'blueprint_id' => $cq->blueprint_id, 'created_at' => $now, 'updated_at' => $now);
                 } else {
                     throw new Exception("Craft Queue values contained something other than a number.");
                 }
             }
             //all keys set
         }
         //foreach
         /*
          ***********************************
          ** Check existing name/db_id/eid **
          ***********************************
          *  Does the db_id exist?
          *  Does the submitted name match existing?
          *  Does the submitted eid match existing?
          */
         $check_existing_sql = Player::where('db_id', '=', $player_db_id)->order_by('created_at', 'DESC')->first();
         if ($check_existing_sql) {
             if ($check_existing_sql->name != $player_name) {
                 throw new Exception("Existing db_id does not match existing name({$player_db_id}|in:{$player_name}|existing:{$check_existing_sql->name})");
                 Log::warn("Existing db_id does not match existing name({$player_db_id}|in:{$player_name}|existing:{$check_existing_sql->name})");
             }
             if ($check_existing_sql->e_id != $player_eid) {
                 throw new Exception("Existing db_id does not match existing name({$player_db_id}|in:{$player_eid}|existing:{$check_existing_sql->e_id})");
                 Log::warn("Existing db_id does not match existing eid({$player_db_id}|in:{$player_eid}|existing:{$check_existing_sql->e_id})");
             }
         }
         //Delete existing records before adding new ones
         DB::table('printers')->where('db_id', '=', $player_db_id)->delete();
         //add new records
         if (count($player_crafts) > 0) {
             $crafts_in = DB::table('printers')->insert($player_crafts);
         } else {
             $crafts_in = false;
         }
         Cache::forever($player_db_id . '_printer', $player_crafts);
     } catch (Exception $e) {
         Log::info($log_header . $e->getMessage());
         file_put_contents($this->logpath . $this->logdate . '_printer.json', serialize($line));
     }
     return Response::json(array('ThumpDumpDB' => '(Printer) Thanks'));
 }
コード例 #12
0
 public function contactEdit($id, $contact)
 {
     $contact = Contact::find($contact);
     $user = Auth::user();
     $player = Player::where('id', $id)->with('contacts')->first();
     $follow = Follower::where("user_id", "=", $player->user_id)->get();
     $club = $user->Clubs()->FirstOrFail();
     function search_in_array($value, $array)
     {
         if (in_array($value, $array)) {
             return true;
         }
         foreach ($array as $item) {
             if (is_array($item) && search_in_array($value, $item)) {
                 return true;
             }
         }
         return false;
     }
     //validate permission to edit contact
     $permission = search_in_array($contact->id, $player->toArray());
     if (!$permission) {
         return Response::view('shared.404', array(), 404);
     }
     $title = 'League Together - Contact Edit';
     return View::make('app.club.contact.edit')->with('page_title', $title)->with('player', $player)->with('club', $club)->with('contact', $contact)->withUser($user);
 }
コード例 #13
0
 public function statistics()
 {
     $counts = ["negativ" => Player::where('gametype', '=', 'negativ')->count(), "positiv" => Player::where('gametype', '=', 'positiv')->count(), "neutral" => Player::where('gametype', '=', 'neutral')->count()];
     echo "Anzahl aktuell: n " . $counts["negativ"] . ' p ' . $counts["positiv"] . " neutral " . $counts['neutral'] . '<br>' . "<br>" . "Anzahl 1: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "1")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "1")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "1")->count() . "<br>" . "Anzahl 2: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "2")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "2")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "2")->count() . "<br>" . "Anzahl 3: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "3")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "3")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "3")->count() . "<br>" . "Anzahl 4: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "4")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "4")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "4")->count() . "<br>" . "Anzahl 5: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "5")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "5")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "5")->count() . "<br>" . "Anzahl 6: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "6")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "6")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "6")->count() . "<br>" . "Anzahl 7: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "7")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "7")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "7")->count() . "<br>" . "Anzahl 8: " . ' negativ ' . Player::where('gametype', '=', 'negativ')->where('type', '=', "8")->count() . ' neutral ' . Player::where('gametype', '=', 'neutral')->where('type', '=', "8")->count() . ' positiv ' . Player::where('gametype', '=', 'positiv')->where('type', '=', "8")->count();
 }