Magictallguy Posted May 26, 2016 Posted May 26, 2016 Jeez, procedural style is almost alien to me after writing OO for so long.. <?php ini_set('error_reporting', E_ALL); $dbhost = "localhost"; $dbuser = "usernamehere"; $dbpass = "passwordhere"; $dbbase = "dbnamehere"; $cron_are_so_cool = "trick_is_da_bomb"; $db = "mysql_tut"; $con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbbase); if(!isset($_GET['code_to_run']) || $_GET['code_to_run'] != $cron_are_so_cool) die("<center><font color=red>Fatal error!</font><br/><blink>IP logged as {$_SERVER['REMOTE_ADDR']}</blink></center>"); /*----------------------- HELPER FUNCTIONS ------------------------ */ // -- Fugly "hacky" method for implementing MySQL's mysql_result() into MySQLi function mysqli_result($result, $row = 0, $column = 0) { $count = mysqli_num_rows($result); if($count && $row <= ($count - 1) && $row >=0) { mysqli_data_seek($result, $row); $get = ctype_digit($row) ? mysqli_fetch_row($result) : mysqli_fetch_assoc($result); if(isset($get[$column])) return $get[$column]; } return false; } // -- End fugly "hacky" method function remove_staff($id) { global $con; if(!ctype_digit($id)) return false; $selectStaff = mysqli_query($con, 'SELECT `p_maids`, `p_butler`, `p_guard`, `p_doctor`, `p_pilot` FROM `members_properties` WHERE `p_id` = '.$id) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectStaff)) return false; $row = mysqli_fetch_assoc($selectStaff); $happloss = 0; if($row['p_maids'] != 0) { $selectName = mysqli_query($con, 'SELECT `ps_name` FROM `property_staff` WHERE `ps_id` = '.$row['p_maids']) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectName)) return false; switch(mysqli_result($selectName)) { case '5x Maid Service': $happloss += 100; break; case '3x Maid Service': $happloss += 85; break; case '2x Maid Service': $happloss += 75; break; case 'Maid Service': $happloss += 50; break; } } if($row['p_butler'] != 0) { $selectName = mysqli_query($con, 'SELECT `ps_name` FROM `property_staff` WHERE `ps_id` = '.$row['p_butler']) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectName)) return false; switch(mysqli_result($selectName)) { case '3x Butler Service': $happloss += 125; break; case '2x Butler Service': $happloss += 100; break; case 'Butler Service': $happloss += 75; break; } } if($row['p_guard'] != 0) { $selectName = mysqli_query($con, 'SELECT `ps_name` FROM `property_staff` WHERE `ps_id` = '.$row['p_guard']) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectName)) return false; switch(mysqli_result($selectName)) { case '10x Guard Service': $happloss += 500; break; case '5x Guard Service': $happloss += 300; break; case '3x Guard Service': $happloss += 200; break; case '2x Guard Service': $happloss += 150; break; case 'Guard Service': $happloss += 100; break; } } if($row['p_doctor'] != 0) $happloss += 25; if($row['p_pilot'] != 0) $happloss += 50; mysqli_query($con, 'UPDATE `members_properties` SET `p_happy` = GREATEST(`p_happy` - '.$happloss.', 0), `p_maids` = 0, `p_butler` = 0, `p_guard` = 0, `p_doctor` = 0, `p_pilot` = 0, `p_priceofstaff` = 0, `p_daysofstaff` = 0 WHERE `p_id` = '.$id) or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members` SET `my_maxhappy` = my_maxhappy` - '.$happloss.' WHERE `my_property` = '.$id) or exit(mysqli_error($con)); } function in_event($player, $text, $cs_val = true) { global $con; if(!ctype_digit($player)) return false; mysqli_query($con, 'INSERT INTO `member_events` VALUES (NULL, '.$player.', "'.mysqli_real_escape_string($con, $text).'", '.time().', 0)') or exit(mysqli_error($con)); if($cs_val) mysqli_query($con, 'UPDATE `city_statistic` SET `cs_value` = `cs_value` + 1 WHERE `cs_id` = 1') or exit(mysqli_error($con)); } function stock_credit($id, $credit) { global $con; if(!ctype_digit($id) || !ctype_digit($credit)) return false; mysqli_query($con, 'UPDATE `stock_market` SET `s_profit` = GRETEST(0, `s_profit` + '.$credit.'), `s_losses` = GREATEST(0, `s_losses` - '.$credit.') WHERE `s_id` = '.$id) or exit(mysqli_error($con)); } function award_check($user, $number, $award) { global $con; if(!ctype_digit($user) || !ctype_digit($number) || !ctype_digit($award)) return false; $selectAward = mysqli_query($con, 'SELECT `ma_id`, `ma_tier` FROM `members_award` WHERE `ma_playerid` = '.$user.' AND `ma_award` = '.$award) or exit(mysqli_error($con)); if(mysqli_num_rows($selectAward)) { $row = mysqli_fetch_assoc($selectAward); if($row['ma_tier'] < $number) { mysqli_query($con, 'UPDATE `members_awards` SET `ma_viewed` = 0, `ma_time` = '.time().', `ma_tier` = '.$number.' WHERE `ma_id` = '.$row['ma_id']) or exit(mysqli_error($con)); } } else mysqli_query($con, 'INSERT INTO `members_awards` VALUES (NULL, '.$award.', '.$number.', '.$user.', 0, '.time().')') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members` SET `my_merits` = `my_merits` + 1 WHERE `playerid` = '.$user) or exit(mysqli_error($con)); } /* ------------------- END HELPER FUNCTIONS ----------------------- */ /*----------------------------------Start cron days--------------------------*/ mysqli_query($con, 'UPDATE `members` SET `my_mailban` = IF(`my_mailban` > 0, `my_mailban` - 1, 0), `my_forumban` = IF(`my_forumban` > 0, `my_forumban` - 1, 0), `my_dondays` = IF(`my_dondays` > 0, `my_dondays` - 1, 0), `my_maxenergy` = IF(`my_dondays` = 0, 100, `my_maxenergy`), `my_partner_days`` = IF(`my_partner` > 0, `my_partner_days` - 1, 0), `brew` = 0') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members_extra` SET `my_daysold` = `my_daysold` + 1, `energy_refill` = 0, `my_ctokens` = `my_ctokens_daily`.`my_cstreak` = 0') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `none_agressive` SET `na_days` = IF(`na_days` > 0, `na_days` - 1, 0)') or exit(mysqli_error($con)); mysqli_query($con, 'DELETE FROM `none_agressive` WHERE `na_days` = 0') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `city_shop_dogs` SET `csd_daysold` = `csd_daysold` + 1') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members_dogs` SET `md_daysold` = `md_daysold` + 1') or exit(mysqli_error($con)); $newones = mt_rand(1, 15); $morf = [ 1 => 'male', 2 => 'female' ]; for($i = 1; $i <= $newones; ++$i) mysqli_query($con, 'INSERT INTO `city_shop_dogs` VALUES (NULL, '.mt_rand(1, 8).', "'.$morf[mt_rand(1, 2)].'", 0)') or exit(mysqli_error($con)); $selectPlayerJobs = mysqli_query($con, 'SELECT `me`.`playerid`, `me`.`my_job`, `me`.`my_job_rank`, `sjr`.*, `m`.`mt_level` FROM `members_extra` AS `me` INNER JOIN `system_job_ranks` AS `sjr` ON `me`.`my_job_rank` = `sjr`.`r_ID` INNER JOIN `members` AS `m` ON `me`.`playerid` = `m`.`playerid` WHERE `me`.`my_job` > 0') or exit(mysqli_error($con)); if(mysqli_num_rows($selectPlayerJobs)) { $job = [ 1 => 'armypoints', 2 => 'grocpoints', 3 => 'casipoints', 4 => 'medipoints', 5 => 'educpoints', 6 => 'lawpoints' ]; while($row = mysqli_fetch_assoc($selectPlayerJobs)) { mysqli_query($con, 'UPDATE `memberstats` SET `my_labor` = `my_labor` + '.$row['r_MANUALGAIN'].', `my_intelligence` = `my_intelligence` + '.$row['r_INTELGAIN'].', `my_endurance` = `my_endurance` + '.$row['r_ENDURGAIN'].' WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); $row['r_POINTS'] *= $row['my_level']; mysqli_query($con, 'UPDATE `members_extra` SET `'.$job[$row['my_job']].'` = `'.$job[$row['my_job']].'` + '.$row['r_POINTS'].' WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members` SET `wallet` = `wallet` + '.$row['r_WAGES'].' WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); } } mysqli_query($con, 'UPDATE `members_properties` SET `p_ltime` = IF(`p_leasedto` > 0, GREATEST(0, `p_ltime` - 1), 0), `p_daysofstaff` = IF(`p_priceofstaff` > 0, `p_daysofstaff` + 1, `p_daysofstaff`)') or exit(mysqli_error($con)); //Check for expired rentings $selectRents = mysqli_query($con, 'SELECT * FROM `members_properties` AS `mp` LEFT JOIN `properties` AS `h` ON `mp`.`p_property` = `h`.`house_id` WHERE `mp`.`p_leasedto` > 0 AND `mp`.`p_ltime` = 0') or exit(mysqli_error($con)); if(mysqli_num_rows($selectRents)) { while($row = mysqli_fetch_assoc($selectRents)) { // ---- THIS BIT IS FUGLY AS HELL AND NEEDS A REWRITE (Well, it all does, but this bit especially!) $getPlayer = mysqli_query($con, 'SELECT `playerid` FROM `members` WHERE `my_property` = '.$row['p_id']) or exit(mysqli_error($con)); if(mysqli_num_rows($getPlayer)) { $prop = mysqli_fetch_assoc($getPlayer); $selectProp = mysqli_query($con, 'SELECT `p_id` FROM `members_properties` WHERE `p_property` = 1 AND `p_playerid` = '.$prop['playerid']) or exit(mysqli_error($con)); $pid = mysqli_result($selectProp); mysqli_query($con, 'UPDATE `members` SET `my_property` = '.$pid.', `my_happy` = 100, `my_maxhappy` = 100 WHERE `playerid` = '.$prop['playerid']) or exit(mysqli_error($con)); } remove_staff($row['p_id']); mysqli_query($con, 'UPDATE `members_properties` SET `p_leasedto` = 0, `p_ltime` = 0 WHERE `p_id` = '.$row['p_id']) or exit(mysqli_error($con)); in_event($row['p_playerid'], 'The lease for your '.$row['house_name'].' has now ended. Your property has been returned to you.', false); in_event($row['p_leasedto'], 'The lease for the '.$row['house_name'].' has now ended. The property has been returned to its owner.', false); } } //Check for expired rentings //Charge daily upkeep $selectProps = mysqli_query($con, 'SELECT * FROM `members_properties` AS `mp` LEFT JOIN `properties` AS `h` ON `mp`.`p_property` = `h`.`house_id` WHERE `mp`.`p_property` <> 1') or exit(mysqli_error($con)); if(mysqli_num_rows($selectProps)) { while($row = mysqli_fetch_assoc($selectProps)) { $total = $row['p_priceofstaff'] + $row['house_tax']; $target = $row['p_leasedto'] ? $row['p_leasedto'] : $row['p_playerid']; $selectPlayer = mysqli_query($con, 'SELECT `wallet` FROM `members` WHERE `playerid` = '.$target) or exit(mysqli_error($con)); if(mysqli_num_rows($selectPlayer)) { //Shouldn't be necessary - failsafe check $cash = mysqli_result($selectPlayer); if($row['p_priceofstaff']) { stock_credit(5, 1); if($cash < $total) { remove_staff($row['p_id']); in_event($target, 'You didn\'t have enough to pay your staff for today. They\'ve packed up and left!'); } mysqli_query($con, 'UPDATE `members` SET `wallet` = GREATEST(0, `wallet` - '.$total.') WHERE `playerid` = '.$target) or exit(mysqli_error($con)); } } } } //Charge daily upkeep $selectAwards = mysqli_query($con, 'SELECT * FROM `award_checks` AS `ac` LEFT JOIN `awards` AS `a` ON `ac`.`ac_award_id` = `a`.`a_id`') or exit(mysqli_error($con)); if(mysqli_num_rows($selectAwards)) { while($row = mysqli_fetch_assoc($selectAwards)) { $selectAward = mysqli_query($con, 'SELECT `'.$row['ac_identify'].'`, `'.$row['ac_what'].'` FROM `'.$row['ac_table'].'` WHERE `'.$row['ac_what'].'` >= '.$row['ac_amount']) or exit(mysqli_error($con)); if(mysqli_num_rows($selectAward)) while($get = mysqli_fetch_assoc($selectAward)) award_check($get[$row['ac_identify']], $row['ac_number'], $row['ac_award_id']); } } $selectFactionPlayers = mysqli_query($con, 'SELECT `playerid` FROM `members` WHERE `my_faction` > 0') or exit(mysqli_error($con)); if(mysqli_num_rows($selectFactionPlayers)) while($row = mysqli_fetch_assoc($selectFactionPlayers)) mysqli_query($con, 'UPDATE `members_extra` SET `my_faction_days`= `my_faction_days` + 1 WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); mysqli_query($con, 'DELETE FROM `votes_count` WHERE `vc_site` IN ("apex", "ultra")') or exit(mysqli_error($con)); $selectStocks = mysqli_query($con, 'SELECT * FROM `stock_holdings` WHERE `sh_saletime` > 0 AND `sh_playerid` <> 3 AND (`sh_saletime` + 1036800) <= '.time()) or exit(mysqli_error($con)); if(mysqli_num_rows($selectStocks)) { while($row = mysqli_fetch_assoc($selectStocks)) { $credit = $row['sh_nowprice'] * $row['sh_qty']; mysqli_query($con, 'UPDATE `members` SET `wallet` = `wallet` + '.$credit.' WHERE `playerid` = '.$row['sh_playerid']) or exit(mysqli_error($con)); in_event($row['sh_playerid'], 'Someome bought '.$row['sh_qty'].' of your stocks for $'.number_format($credit)); mysqli_query($con, 'UPDATE `stock_holdings` SET `sh_playerid` = 1, sh_payed` = '.$row['sh_nowprice'].', `sh_time` = '.time().', `sh_sale` = 1, `sh_saletime` = '.time().' WHERE `sh_id` = '.$row['sh_id']) or exit(mysqli_error($con)); } } $yearago = (time() - 32140800); $sixmonths = $yearago / 2; $threemonths = $sixmonths / 2; $onemonth = $sixmonths / 6; $twoweeks = $onemonth / 2; $queries = [ 'DELETE FROM `member_mail` WHERE `mm_time` <= '.$onemonth, 'DELETE FROM `members_events` WHERE `e_time` <= '.$onemonth, 'DELETE FROM`attack_logs` WHERE `time` <= '.$onemonth, 'DELETE FROM `faction_events` WHERE `fe_time` <= '.$onemonth, 'DELETE FROM `stock_history` WHERE `h_time` <= '.$sixmonth ]; foreach($queries as $query) mysqli_query($con, $query) or exit(mysqli_error($con)); From 500~ lines to 268 and does the same job. There's still a few practises in there that I'd change, but I'm not willing to do all the work for you TESTED FOR PARSE ERRORS ONLY This is now using mysqli_*() (as opposed to deprecated mysql_*()) Including another file that contains database connections or mysql_*() functions may break this. I can provide a mysql_*() version if you'd like 1 Quote
-BRAIDZ- Posted June 10, 2016 Author Posted June 10, 2016 Jeez, procedural style is almost alien to me after writing OO for so long.. <?php ini_set('error_reporting', E_ALL); $dbhost = "localhost"; $dbuser = "usernamehere"; $dbpass = "passwordhere"; $dbbase = "dbnamehere"; $cron_are_so_cool = "trick_is_da_bomb"; $db = "mysql_tut"; $con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbbase); if(!isset($_GET['code_to_run']) || $_GET['code_to_run'] != $cron_are_so_cool) die("<center><font color=red>Fatal error!</font><br/><blink>IP logged as {$_SERVER['REMOTE_ADDR']}</blink></center>"); /*----------------------- HELPER FUNCTIONS ------------------------ */ // -- Fugly "hacky" method for implementing MySQL's mysql_result() into MySQLi function mysqli_result($result, $row = 0, $column = 0) { $count = mysqli_num_rows($result); if($count && $row <= ($count - 1) && $row >=0) { mysqli_data_seek($result, $row); $get = ctype_digit($row) ? mysqli_fetch_row($result) : mysqli_fetch_assoc($result); if(isset($get[$column])) return $get[$column]; } return false; } // -- End fugly "hacky" method function remove_staff($id) { global $con; if(!ctype_digit($id)) return false; $selectStaff = mysqli_query($con, 'SELECT `p_maids`, `p_butler`, `p_guard`, `p_doctor`, `p_pilot` FROM `members_properties` WHERE `p_id` = '.$id) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectStaff)) return false; $row = mysqli_fetch_assoc($selectStaff); $happloss = 0; if($row['p_maids'] != 0) { $selectName = mysqli_query($con, 'SELECT `ps_name` FROM `property_staff` WHERE `ps_id` = '.$row['p_maids']) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectName)) return false; switch(mysqli_result($selectName)) { case '5x Maid Service': $happloss += 100; break; case '3x Maid Service': $happloss += 85; break; case '2x Maid Service': $happloss += 75; break; case 'Maid Service': $happloss += 50; break; } } if($row['p_butler'] != 0) { $selectName = mysqli_query($con, 'SELECT `ps_name` FROM `property_staff` WHERE `ps_id` = '.$row['p_butler']) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectName)) return false; switch(mysqli_result($selectName)) { case '3x Butler Service': $happloss += 125; break; case '2x Butler Service': $happloss += 100; break; case 'Butler Service': $happloss += 75; break; } } if($row['p_guard'] != 0) { $selectName = mysqli_query($con, 'SELECT `ps_name` FROM `property_staff` WHERE `ps_id` = '.$row['p_guard']) or exit(mysqli_error($con)); if(!mysqli_num_rows($selectName)) return false; switch(mysqli_result($selectName)) { case '10x Guard Service': $happloss += 500; break; case '5x Guard Service': $happloss += 300; break; case '3x Guard Service': $happloss += 200; break; case '2x Guard Service': $happloss += 150; break; case 'Guard Service': $happloss += 100; break; } } if($row['p_doctor'] != 0) $happloss += 25; if($row['p_pilot'] != 0) $happloss += 50; mysqli_query($con, 'UPDATE `members_properties` SET `p_happy` = GREATEST(`p_happy` - '.$happloss.', 0), `p_maids` = 0, `p_butler` = 0, `p_guard` = 0, `p_doctor` = 0, `p_pilot` = 0, `p_priceofstaff` = 0, `p_daysofstaff` = 0 WHERE `p_id` = '.$id) or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members` SET `my_maxhappy` = my_maxhappy` - '.$happloss.' WHERE `my_property` = '.$id) or exit(mysqli_error($con)); } function in_event($player, $text, $cs_val = true) { global $con; if(!ctype_digit($player)) return false; mysqli_query($con, 'INSERT INTO `member_events` VALUES (NULL, '.$player.', "'.mysqli_real_escape_string($con, $text).'", '.time().', 0)') or exit(mysqli_error($con)); if($cs_val) mysqli_query($con, 'UPDATE `city_statistic` SET `cs_value` = `cs_value` + 1 WHERE `cs_id` = 1') or exit(mysqli_error($con)); } function stock_credit($id, $credit) { global $con; if(!ctype_digit($id) || !ctype_digit($credit)) return false; mysqli_query($con, 'UPDATE `stock_market` SET `s_profit` = GRETEST(0, `s_profit` + '.$credit.'), `s_losses` = GREATEST(0, `s_losses` - '.$credit.') WHERE `s_id` = '.$id) or exit(mysqli_error($con)); } function award_check($user, $number, $award) { global $con; if(!ctype_digit($user) || !ctype_digit($number) || !ctype_digit($award)) return false; $selectAward = mysqli_query($con, 'SELECT `ma_id`, `ma_tier` FROM `members_award` WHERE `ma_playerid` = '.$user.' AND `ma_award` = '.$award) or exit(mysqli_error($con)); if(mysqli_num_rows($selectAward)) { $row = mysqli_fetch_assoc($selectAward); if($row['ma_tier'] < $number) { mysqli_query($con, 'UPDATE `members_awards` SET `ma_viewed` = 0, `ma_time` = '.time().', `ma_tier` = '.$number.' WHERE `ma_id` = '.$row['ma_id']) or exit(mysqli_error($con)); } } else mysqli_query($con, 'INSERT INTO `members_awards` VALUES (NULL, '.$award.', '.$number.', '.$user.', 0, '.time().')') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members` SET `my_merits` = `my_merits` + 1 WHERE `playerid` = '.$user) or exit(mysqli_error($con)); } /* ------------------- END HELPER FUNCTIONS ----------------------- */ /*----------------------------------Start cron days--------------------------*/ mysqli_query($con, 'UPDATE `members` SET `my_mailban` = IF(`my_mailban` > 0, `my_mailban` - 1, 0), `my_forumban` = IF(`my_forumban` > 0, `my_forumban` - 1, 0), `my_dondays` = IF(`my_dondays` > 0, `my_dondays` - 1, 0), `my_maxenergy` = IF(`my_dondays` = 0, 100, `my_maxenergy`), `my_partner_days`` = IF(`my_partner` > 0, `my_partner_days` - 1, 0), `brew` = 0') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members_extra` SET `my_daysold` = `my_daysold` + 1, `energy_refill` = 0, `my_ctokens` = `my_ctokens_daily`.`my_cstreak` = 0') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `none_agressive` SET `na_days` = IF(`na_days` > 0, `na_days` - 1, 0)') or exit(mysqli_error($con)); mysqli_query($con, 'DELETE FROM `none_agressive` WHERE `na_days` = 0') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `city_shop_dogs` SET `csd_daysold` = `csd_daysold` + 1') or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members_dogs` SET `md_daysold` = `md_daysold` + 1') or exit(mysqli_error($con)); $newones = mt_rand(1, 15); $morf = [ 1 => 'male', 2 => 'female' ]; for($i = 1; $i <= $newones; ++$i) mysqli_query($con, 'INSERT INTO `city_shop_dogs` VALUES (NULL, '.mt_rand(1, 8).', "'.$morf[mt_rand(1, 2)].'", 0)') or exit(mysqli_error($con)); $selectPlayerJobs = mysqli_query($con, 'SELECT `me`.`playerid`, `me`.`my_job`, `me`.`my_job_rank`, `sjr`.*, `m`.`mt_level` FROM `members_extra` AS `me` INNER JOIN `system_job_ranks` AS `sjr` ON `me`.`my_job_rank` = `sjr`.`r_ID` INNER JOIN `members` AS `m` ON `me`.`playerid` = `m`.`playerid` WHERE `me`.`my_job` > 0') or exit(mysqli_error($con)); if(mysqli_num_rows($selectPlayerJobs)) { $job = [ 1 => 'armypoints', 2 => 'grocpoints', 3 => 'casipoints', 4 => 'medipoints', 5 => 'educpoints', 6 => 'lawpoints' ]; while($row = mysqli_fetch_assoc($selectPlayerJobs)) { mysqli_query($con, 'UPDATE `memberstats` SET `my_labor` = `my_labor` + '.$row['r_MANUALGAIN'].', `my_intelligence` = `my_intelligence` + '.$row['r_INTELGAIN'].', `my_endurance` = `my_endurance` + '.$row['r_ENDURGAIN'].' WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); $row['r_POINTS'] *= $row['my_level']; mysqli_query($con, 'UPDATE `members_extra` SET `'.$job[$row['my_job']].'` = `'.$job[$row['my_job']].'` + '.$row['r_POINTS'].' WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); mysqli_query($con, 'UPDATE `members` SET `wallet` = `wallet` + '.$row['r_WAGES'].' WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); } } mysqli_query($con, 'UPDATE `members_properties` SET `p_ltime` = IF(`p_leasedto` > 0, GREATEST(0, `p_ltime` - 1), 0), `p_daysofstaff` = IF(`p_priceofstaff` > 0, `p_daysofstaff` + 1, `p_daysofstaff`)') or exit(mysqli_error($con)); //Check for expired rentings $selectRents = mysqli_query($con, 'SELECT * FROM `members_properties` AS `mp` LEFT JOIN `properties` AS `h` ON `mp`.`p_property` = `h`.`house_id` WHERE `mp`.`p_leasedto` > 0 AND `mp`.`p_ltime` = 0') or exit(mysqli_error($con)); if(mysqli_num_rows($selectRents)) { while($row = mysqli_fetch_assoc($selectRents)) { // ---- THIS BIT IS FUGLY AS HELL AND NEEDS A REWRITE (Well, it all does, but this bit especially!) $getPlayer = mysqli_query($con, 'SELECT `playerid` FROM `members` WHERE `my_property` = '.$row['p_id']) or exit(mysqli_error($con)); if(mysqli_num_rows($getPlayer)) { $prop = mysqli_fetch_assoc($getPlayer); $selectProp = mysqli_query($con, 'SELECT `p_id` FROM `members_properties` WHERE `p_property` = 1 AND `p_playerid` = '.$prop['playerid']) or exit(mysqli_error($con)); $pid = mysqli_result($selectProp); mysqli_query($con, 'UPDATE `members` SET `my_property` = '.$pid.', `my_happy` = 100, `my_maxhappy` = 100 WHERE `playerid` = '.$prop['playerid']) or exit(mysqli_error($con)); } remove_staff($row['p_id']); mysqli_query($con, 'UPDATE `members_properties` SET `p_leasedto` = 0, `p_ltime` = 0 WHERE `p_id` = '.$row['p_id']) or exit(mysqli_error($con)); in_event($row['p_playerid'], 'The lease for your '.$row['house_name'].' has now ended. Your property has been returned to you.', false); in_event($row['p_leasedto'], 'The lease for the '.$row['house_name'].' has now ended. The property has been returned to its owner.', false); } } //Check for expired rentings //Charge daily upkeep $selectProps = mysqli_query($con, 'SELECT * FROM `members_properties` AS `mp` LEFT JOIN `properties` AS `h` ON `mp`.`p_property` = `h`.`house_id` WHERE `mp`.`p_property` <> 1') or exit(mysqli_error($con)); if(mysqli_num_rows($selectProps)) { while($row = mysqli_fetch_assoc($selectProps)) { $total = $row['p_priceofstaff'] + $row['house_tax']; $target = $row['p_leasedto'] ? $row['p_leasedto'] : $row['p_playerid']; $selectPlayer = mysqli_query($con, 'SELECT `wallet` FROM `members` WHERE `playerid` = '.$target) or exit(mysqli_error($con)); if(mysqli_num_rows($selectPlayer)) { //Shouldn't be necessary - failsafe check $cash = mysqli_result($selectPlayer); if($row['p_priceofstaff']) { stock_credit(5, 1); if($cash < $total) { remove_staff($row['p_id']); in_event($target, 'You didn\'t have enough to pay your staff for today. They\'ve packed up and left!'); } mysqli_query($con, 'UPDATE `members` SET `wallet` = GREATEST(0, `wallet` - '.$total.') WHERE `playerid` = '.$target) or exit(mysqli_error($con)); } } } } //Charge daily upkeep $selectAwards = mysqli_query($con, 'SELECT * FROM `award_checks` AS `ac` LEFT JOIN `awards` AS `a` ON `ac`.`ac_award_id` = `a`.`a_id`') or exit(mysqli_error($con)); if(mysqli_num_rows($selectAwards)) { while($row = mysqli_fetch_assoc($selectAwards)) { $selectAward = mysqli_query($con, 'SELECT `'.$row['ac_identify'].'`, `'.$row['ac_what'].'` FROM `'.$row['ac_table'].'` WHERE `'.$row['ac_what'].'` >= '.$row['ac_amount']) or exit(mysqli_error($con)); if(mysqli_num_rows($selectAward)) while($get = mysqli_fetch_assoc($selectAward)) award_check($get[$row['ac_identify']], $row['ac_number'], $row['ac_award_id']); } } $selectFactionPlayers = mysqli_query($con, 'SELECT `playerid` FROM `members` WHERE `my_faction` > 0') or exit(mysqli_error($con)); if(mysqli_num_rows($selectFactionPlayers)) while($row = mysqli_fetch_assoc($selectFactionPlayers)) mysqli_query($con, 'UPDATE `members_extra` SET `my_faction_days`= `my_faction_days` + 1 WHERE `playerid` = '.$row['playerid']) or exit(mysqli_error($con)); mysqli_query($con, 'DELETE FROM `votes_count` WHERE `vc_site` IN ("apex", "ultra")') or exit(mysqli_error($con)); $selectStocks = mysqli_query($con, 'SELECT * FROM `stock_holdings` WHERE `sh_saletime` > 0 AND `sh_playerid` <> 3 AND (`sh_saletime` + 1036800) <= '.time()) or exit(mysqli_error($con)); if(mysqli_num_rows($selectStocks)) { while($row = mysqli_fetch_assoc($selectStocks)) { $credit = $row['sh_nowprice'] * $row['sh_qty']; mysqli_query($con, 'UPDATE `members` SET `wallet` = `wallet` + '.$credit.' WHERE `playerid` = '.$row['sh_playerid']) or exit(mysqli_error($con)); in_event($row['sh_playerid'], 'Someome bought '.$row['sh_qty'].' of your stocks for $'.number_format($credit)); mysqli_query($con, 'UPDATE `stock_holdings` SET `sh_playerid` = 1, sh_payed` = '.$row['sh_nowprice'].', `sh_time` = '.time().', `sh_sale` = 1, `sh_saletime` = '.time().' WHERE `sh_id` = '.$row['sh_id']) or exit(mysqli_error($con)); } } $yearago = (time() - 32140800); $sixmonths = $yearago / 2; $threemonths = $sixmonths / 2; $onemonth = $sixmonths / 6; $twoweeks = $onemonth / 2; $queries = [ 'DELETE FROM `member_mail` WHERE `mm_time` <= '.$onemonth, 'DELETE FROM `members_events` WHERE `e_time` <= '.$onemonth, 'DELETE FROM`attack_logs` WHERE `time` <= '.$onemonth, 'DELETE FROM `faction_events` WHERE `fe_time` <= '.$onemonth, 'DELETE FROM `stock_history` WHERE `h_time` <= '.$sixmonth ]; foreach($queries as $query) mysqli_query($con, $query) or exit(mysqli_error($con)); From 500~ lines to 268 and does the same job. There's still a few practises in there that I'd change, but I'm not willing to do all the work for you TESTED FOR PARSE ERRORS ONLY This is now using mysqli_*() (as opposed to deprecated mysql_*()) Including another file that contains database connections or mysql_*() functions may break this. I can provide a mysql_*() version if you'd like Thanks, I don't have my game anymore, just weren't getting enough players, so I thought I might stick it out and try and create my own game, and test it in wamp before I even think about hosting another game, no point on wasting money that could be spent on other things for now 1 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.