Пример #1
0
 function hack_player_account()
 {
     $building_id = JRequest::getvar('bank_id');
     $user = JFactory::getUser();
     $now = time();
     $db = JFactory::getDBO();
     $account_id = JRequest::getvar('playerid');
     $query = " SELECT *\n                                FROM j17_jigs_bank_accounts\n                                WHERE player_id = {$user->id} AND bank_id ={$building_id}";
     $db->setQuery($query);
     $player = $db->loadObject();
     $query = " SELECT *\n                                FROM j17_jigs_bank_accounts\n                                WHERE player_id = {$account_id} AND bank_id = {$building_id}";
     $db->setQuery($query);
     $account = $db->loadObject();
     if ($player->bank_sec_level > $account->bank_sec_level) {
         $account->amount = $account->amount - 100;
         $player->amount = $player->amount + 90;
         $message = " You win";
     } elseif ($player->bank_sec_level < $account->bank_sec_level) {
         if (in_array(34, $player->skills)) {
             $player->level++;
             $message = "You lose";
         }
     } else {
         $message = "You draw";
     }
     MessagesHelper::sendFeedback($user->id, $message);
     //$this->sendWavyLines($text);
     $query = "UPDATE j17_jigs_bank_accounts SET amount = {$player->amount}, timestamp = {$now} WHERE player_id = {$user->id} AND bank_id ={$building_id}";
     $db->setQuery($query);
     $db->query();
     $query = "UPDATE j17_jigs_bank_accounts SET amount = {$account->amount}, timestamp = {$now} WHERE player_id = {$account->player_id} AND bank_id ={$building_id}";
     $db->setQuery($query);
     $db->query();
     return $this->get_account_list();
 }
Пример #2
0
 function attack()
 {
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $id = JRequest::getvar('id');
     $monster = $this->getMonster($id, $db);
     $player = $this->getPlayer($user, $db);
     $attackRoundMonster = $monster->defence + rand(0, 6);
     $attackRoundPlayer = $monster->attack + rand(0, 6);
     if ($attackRoundPlayer > $attackRoundMonster) {
         $query = "UPDATE #__jigs_monsters SET health = health -10 WHERE id= {$id}";
         $db->setQuery($query);
         $db->query();
         $message = 'You caused 10 hit points of damage';
         MessagesHelper::sendFeedback($user->id, $message);
     }
     $query = "SELECT health FROM  #__jigs_monsters WHERE id= {$id}";
     $db->setQuery($query);
     $result['id'] = $id;
     $result['health'] = $db->loadResult();
     $entryData = array('category' => 'monsterHealthCategory', 'title' => 'title', 'article' => $result, 'when' => time());
     $context = new ZMQContext();
     $socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'my pusher');
     if ($socket->connect("tcp://localhost:5555")) {
         //   echo 'connected';
     }
     if ($socket->send(json_encode($entryData))) {
         //  echo 'delivered';
     }
     return true;
 }
Пример #3
0
 function use_hobbits($id, $total, $workforce_required)
 {
     $db = JFactory::getDBO();
     if ($total >= $workforce_required) {
         $query = "UPDATE #__jigs_hobbits SET status = 2 \n\t\t    WHERE owner = {$id} \n\t\t    ORDER BY xp ASC\n\t\t    LIMIT {$workforce_required}";
         $db->setQuery($query);
         $db->query;
         //  $message_result = Jview::loadHelper('messages'); //got an error without this
         $message = "{$workforce_required} hobbits have begun work";
         MessagesHelper::sendFeedback($id, $message);
         return true;
     }
     MessagesHelper::sendFeedback($id, "no hobbits");
     return false;
 }
Пример #4
0
 public function use_battery_new($id, $energy_units_required)
 {
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $message = "Energy Required : " . $energy_units_required;
     MessagesHelper::sendFeedback($user->id, $message);
     $batteries = $this->get_all_energy($id);
     $total = $this->get_total_energy($id);
     $message = "Total Energy available : " . $total;
     MessagesHelper::sendFeedback($user->id, $message);
     if ($total < $energy_units_required) {
         $message = "not enough energy";
         MessagesHelper::sendFeedback($user->id, $message);
         return false;
     }
     $i = 1;
     foreach ($batteries as $battery) {
         if ($energy_units_required > 0) {
             if ($energy_units_required < $battery->units) {
                 $db = JFactory::getDBO();
                 $battery->units = $battery->units - $energy_units_required;
                 $message = $energy_units_required . " unit(s) deducted from  battery " . $i;
                 $energy_units_required = 0;
                 MessagesHelper::sendFeedback($user->id, $message);
             } else {
                 $energy_units_required = $energy_units_required - $battery->units;
                 $message .= $battery->units . " unit(s) deducted from  battery " . $i . "<br/>";
                 $battery->units = 0;
                 $message .= "zero units remaining in battery " . $i . "</br>";
                 MessagesHelper::sendFeedback($user->id, $message);
             }
             $sql = "UPDATE #__jigs_batteries SET units = " . $battery->units . " WHERE id = " . $battery->id;
             $db->setQuery($sql);
             $result = $db->query();
         } else {
             $message = "energy transer complete";
             MessagesHelper::sendFeedback($user->id, $message);
             break;
         }
         $i++;
     }
     $total = $this->get_total_energy($id);
     $message = $total . " remaining energy units";
     MessagesHelper::sendFeedback($user->id, $message);
     return true;
 }
Пример #5
0
 function get_free_seed()
 {
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $query = "SELECT seed_list FROM #__jigs_crop_seeds WHERE #__jigs_crop_seeds.owner = {$user->id} ";
     $db->setQuery($query);
     $result = $db->loadResult();
     $result_array = explode(',', $result);
     if (in_array(1, $result_array)) {
         $message = "You already received your yearly supply of Bonsanto(tm) Basic Seeds level 1";
         $message .= "Your attempt to defraud the people of Pryamid City has been recorded";
     } else {
         $result_array[] = 1;
         $string = implode($result_array, ',');
         $sql = "INSERT INTO #__jigs_crop_seeds (seed_list,owner)\n                              VALUES ('{$string}', {$user->id}) ON DUPLICATE KEY\n                              UPDATE seed_list = '{$string}'";
         $db->setQuery($sql);
         $db->query();
         $message = "You receive your yearly supply of Bonsanto Basic Seeds level 1";
     }
     MessagesHelper::sendFeedback($user->id, $message);
     return $message;
 }
Пример #6
0
 function test_level($user_id)
 {
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $now = time();
     $query = "SELECT xp FROM #__jigs_players where id = {$user_id}";
     $db->setQuery($query);
     $xp = $db->loadResult();
     $milestones = array(100, 200, 400, 800, 1600, 2000, 4000, 8000);
     foreach ($milestones as $check) {
         if ($xp == $check) {
             $query = "UPDATE #__jigs_players SET level=level+1, statpoints = statpoints + 5 WHERE id = {$user_id}";
             $db->setQuery($query);
             $db->query();
             $text = 'Citizen ' . $user->username . ' leveled up';
             $this->sendWavyLines($text);
             MessagesHelper::sendFeedback($user->id, $text);
         }
     }
 }
Пример #7
0
 function sell()
 {
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $building_id = JRequest::getvar('building_id');
     $item = JRequest::getvar('item');
     $sell = JRequest::getvar('sell');
     $player_money = $this->get_player_money($db, $user);
     if ($sell == 'objects') {
         $query1 = "SELECT buy_price FROM #__jigs_shop_prices WHERE item_id =  {$item} AND shop_id = " . $building_id;
         $query2 = "DELETE FROM #__jigs_objects WHERE #__jigs_objects.player_id = {$user->id}  AND item_id= {$item} LIMIT 1";
         $text = "You sold object.";
     }
     if ($sell == 'crops') {
         $total_crops = $this->get_total_crops();
         $query2 = "Update #__jigs_farms\n                                LEFT JOIN #__jigs_buildings\n                                on #__jigs_farms.building = #__jigs_buildings.id\n                                SET total = 0\n                                WHERE #__jigs_buildings.owner = {$user->id}";
         $text = "You sold {$total_crops} crops.";
         $xp_type = 'nbr_crops';
     }
     if ($sell == "battery") {
         $query2 = "UPDATE #__jigs_batteries SET id = {$building_id} WHERE id =  {$user->id} LIMIT 1";
         $text = "You sold battery";
     }
     if ($sell == "metal") {
         $query1 = "SELECT buy_price FROM #__jigs_shop_metal_prices WHERE item_id = {$item} AND shop_id = " . $building_id;
         $query2 = "UPDATE #__jigs_metals SET quantity = quantity - 1 WHERE #__jigs_metals.player_id = {$user->id} AND item_id= {$item} ";
         $text = "You sold metal";
     }
     if ($sell == "weapon") {
         $query1 = "SELECT sell_price FROM #__jigs_weapon_types WHERE id = " . $item;
         $query2 = "DELETE FROM  #__jigs_weapons WHERE #__jigs_weapons.player_id = {$user->id} AND item_id=" . $item . " LIMIT 1";
         $text = "You sold weapon";
     }
     if ($sell == "crystals") {
         $query1 = "SELECT buy_price FROM #__jigs_crystal_prices WHERE #__jigs_crystal_prices.item_id =" . $item;
         $query2 = "DELETE FROM  #__jigs_crystals WHERE #__jigs_crystals.player_id = {$user->id} AND item_id= {$item}  LIMIT 1";
         $text = "You sold crystals";
     }
     if ($sell == "papers") {
         $query1 = "SELECT buy_price FROM #__jigs_papers WHERE #__jigs_papers.id =" . $item;
         $query2 = "DELETE FROM #__jigs_papers WHERE #__jigs_papers.player_id = {$user->id}  AND item_id= {$item}  LIMIT 1";
         $text = "You sold papers";
     }
     //////////////////////////Get Buy Price for player /////////
     if ($sell == "crops") {
         $buy_price = $total_crops * 1000;
     } elseif ($sell == "battery") {
         $buy_price = 90;
     } else {
         $db->setQuery($query1);
         $buy_price = $db->loadResult();
     }
     ////Update players money////////////////////////////////////
     $player_money = $player_money + $buy_price;
     $this->update_players_money($db, $player_money, $user);
     ////////// Delete item or update ownership /////////////////
     $db->setQuery($query2);
     $db->query();
     /////////////////// Increment XP ///////////////////////////
     $test = $this->increment_xp($xp_type, $user->id);
     ////////////////// Send Messages //////////////////////////
     MessagesHelper::sendFeedback($user->id, $text);
     return $player_money;
 }
Пример #8
0
 /**
  * @param $energyUnitsRequired
  * @param $batteries
  * @param $user
  * @param $message
  * @return string
  */
 protected function unitsDeductedLoop($energyUnitsRequired, $batteries, $user, $message)
 {
     $iter = 1;
     foreach ($batteries as $battery) {
         if ($energyUnitsRequired > 0) {
             if ($energyUnitsRequired < $battery->units) {
                 $db = JFactory::getDBO();
                 $battery->units = $battery->units - $energyUnitsRequired;
                 $message = $energyUnitsRequired . " unit(s) deducted from  battery " . $iter;
                 $energyUnitsRequired = 0;
                 MessagesHelper::sendFeedback($user->id, $message);
             } else {
                 $energyUnitsRequired = $energyUnitsRequired - $battery->units;
                 $message .= $battery->units . " unit(s) deducted from  battery " . $iter . "<br/>";
                 $battery->units = 0;
                 $message .= "zero units remaining in battery " . $iter . "</br>";
                 MessagesHelper::sendFeedback($user->id, $message);
             }
             $sql = "UPDATE #__jigs_batteries SET units = " . $battery->units . "\n                WHERE id = " . $battery->id;
             $db->setQuery($sql);
             $db->query();
         } else {
             $message = "energy transer complete";
             MessagesHelper::sendFeedback($user->id, $message);
             break;
         }
         $iter++;
     }
     return;
 }