コード例 #1
0
function UpdatePlanetBatimentQueueList($planetid)
{
    $RetValue = false;
    $now = time();
    begin_transaction();
    $CurrentPlanet = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $planetid . "' FOR UPDATE", 'planets', true);
    if (!$CurrentPlanet || $CurrentPlanet['b_building'] == 0 || $CurrentPlanet['b_building'] > $now) {
        rollback();
        return false;
    }
    $CurrentUser = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $CurrentPlanet['id_owner'] . "' LOCK IN SHARE MODE", 'users', true);
    if (!$CurrentUser) {
        return false;
    }
    PlanetResourceUpdate($CurrentUser, $CurrentPlanet, $CurrentPlanet['b_building'], false);
    CheckPlanetBuildingQueue($CurrentPlanet, $CurrentUser);
    commit();
}
コード例 #2
0
function UpdatePlanetBatimentQueueList(&$CurrentPlanet, &$CurrentUser)
{
    $RetValue = false;
    if ($CurrentPlanet['b_building_id'] != 0) {
        while ($CurrentPlanet['b_building_id'] != 0) {
            if ($CurrentPlanet['b_building'] <= time()) {
                PlanetResourceUpdate($CurrentUser, $CurrentPlanet, $CurrentPlanet['b_building'], false);
                $IsDone = CheckPlanetBuildingQueue($CurrentPlanet, $CurrentUser);
                if ($IsDone == true) {
                    SetNextQueueElementOnTop($CurrentPlanet, $CurrentUser);
                }
            } else {
                $RetValue = true;
                break;
            }
        }
    }
    return $RetValue;
}