0 Replies - 5050 Views - Last Post: 20 January 2006 - 11:42 PM Rate Topic: -----

#1 Hiimdaniel  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 20-January 06

Help with browser game programming

Posted 20 January 2006 - 11:42 PM

this is part of a browser based web game. For some reason, the troops that are built keep disappearing, but is' not due to a food shortage. Something else is wrong with this code. Help Please!!!!!!

if ($building_name == "Farm")
            {
                $food_update_amount = 0;
                $food_shortage = 0;
                $new_food_amount = $users_food[$i] + ($users_exp[$i] * $users_building_amount["Farm"] * $users_building_value["Farm"]);

                $new_food_amount = $new_food_amount - $users_food_upkeep[$i];
                if ($new_food_amount < 0)    {    $new_food_amount = 0;    };
                $food_shortage = $new_food_amount - $users_food_upkeep[$i];
                $resource_update_query = "UPDATE $cdbname.users SET food = '$new_food_amount' WHERE id = '$i'";
                $resource_update_result = mysql_query($resource_update_query, $connection) or die("Error updating users food" . mysql_error());

                // Calculate Shortage
                if ($food_shortage <= 0)
                {
                    // Kill Recruits
                    if ($users_recruits[$i] > 0)
                    {
                        $kill_unit = $users_recruits[$i] + $food_shortage;
                        if ($kill_unit < 0)    {    $kill_unit = 0 - $users_recruits[$i];    };
                        $food_shortage = $food_shortage + $kill_unit;
                        
                        if ($kill_unit < 0)    {    $kill_unit = 0;    };
                        $resource_update_query = "UPDATE $cdbname.users SET recruits = '$kill_unit' WHERE id = '$i'";
                        $resource_update_result = mysql_query($resource_update_query, $connection) or die("Error increasing users food" . mysql_error());
                    };

                    // Kill Mercenaries
                    if ($users_unit[$i]["Swordsman"] > 1)
                    {
                        if ($food_shortage <= 0)
                        {
                            $kill_unit = $users_unit[$i]["Swordsman"] + $food_shortage;
                            if ($kill_unit < 0)    {    $kill_unit = 0 - $users_unit[$i]["Swordsman"];    };
                            $food_shortage = $food_shortage + $kill_unit;

                            if ($kill_unit < 0)    {    $kill_unit = 0;    };
                            $unit_update_query = "UPDATE $cdbname.user_units SET amount = '$kill_unit' WHERE user_id = '$i' AND unit_id = '".$users_unit_id["Swordsman"]."'";
                            $unit_update_result = mysql_query($unit_update_query, $connection) or die("Error killing Swordsmen" . mysql_error());
                        };
                    };

                    if ($users_unit[$i]["Barbarian"] > 1)
                    {
                        if ($food_shortage <= 0)
                        {
                            $kill_unit = $users_unit[$i]["Barbarian"] + $food_shortage;
                            if ($kill_unit < 0)    {    $kill_unit = 0 - $users_unit[$i]["Barbarian"];    };
                            $food_shortage = $food_shortage + $kill_unit;

                            if ($kill_unit < 0)    {    $kill_unit = 0;    };
                            $unit_update_query = "UPDATE $cdbname.user_units SET amount = '$kill_unit' WHERE user_id = '$i' AND unit_id = '".$users_unit_id["Barbarian"]."'";
                            $unit_update_result = mysql_query($unit_update_query, $connection) or die("Error killing Barbarians" . mysql_error());
                        };
                    };

                    if ($food_shortage <= 0)
                    {
                        // Kill all other units.
                        $other_units_query = "SELECT u.id AS uid, u.name, u.upgold, u.upfood, un.id AS unid, un.amount FROM $cdbname.user_units un LEFT JOIN $dbname.units u ON un.unit_id = u.id WHERE un.user_id = '$i' AND u.race_id != 0 AND un.amount > 0 OR un.user_id = '$i' AND u.class_id != 0 AND un.amount > 0 GROUP BY u.id ASC";
                        $other_units_result = mysql_query($other_units_query, $connection) or die("Error getting list of units already trained:" . mysql_error());
                        while ($other_units_myrow = mysql_fetch_array($other_units_result)) 
                        {
                            if ($food_shortage <= 0)
                            {
                                $unit_id = $other_units_myrow["uid"];
                                $unit_name = $other_units_myrow["name"];
                                $unit_owned = $other_units_myrow["amount"];

                                $kill_unit = $unit_owned + $food_shortage;
                                if ($kill_unit < 0)    {    $kill_unit = 0 - $unit_owned;    };
                                $food_shortage = $food_shortage + $kill_unit;
    
                                if ($kill_unit < 0)    {    $kill_unit = 0;    };
                                $unit_update_query = "UPDATE $cdbname.user_units SET amount = '$kill_unit' WHERE user_id = '$i' AND unit_id = '$unit_id'";
                                $unit_update_result = mysql_query($unit_update_query, $connection) or die("Error killing $unit_name" . mysql_error());
                            };
                        };
                    };
                }
                else
                {
                    $recruit_update_amount = $users_building_amount["Home"] * $users_building_value["Home"];    
                    $resource_update_query = "UPDATE $cdbname.users SET recruits = recruits + '$recruit_update_amount' WHERE id = '$i'";
                    $resource_update_result = mysql_query($resource_update_query, $connection) or die("Error increasing users recruits" . mysql_error());
                };
            };

--------------------------------------------------------------------------------



Is This A Good Question/Topic? 0
  • +

Page 1 of 1