Jump to content
MakeWebGames

Cron Problems


-BRAIDZ-

Recommended Posts

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

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • Replies 51
  • Created
  • Last Reply

Top Posters In This Topic

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

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...