Jump to content
MakeWebGames

Recommended Posts

Posted

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
  • 3 weeks later...
  • Replies 51
  • Created
  • Last Reply

Top Posters In This Topic

Posted
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

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...