Пример #1
0
/**
 * Make multiple attempts to take money from a user (in cases where there is
 * a high likely hood of failure -- rare...)
 *
 * @param int $userid
 * @param int $amount
 * @param string $field
 * @param int $num_attempts
 * @return bool
 */
function gang_take_money_loop($userid, $amount, $field = 'money', $num_attempts = 5)
{
    for ($x = 1; $x <= $num_attempts; $x++) {
        $result = gang_take_money($userid, $amount, $field);
        if ($result) {
            break;
        }
    }
    return $result;
}
Пример #2
0
function gang_create2()
{
    global $gvars, $ir;
    if ($gvars->ir['gang']) {
        echo "<h3>You are in a {$gvars->name_sl}!</h3>";
        _gang_auto_clear_user($gvars->ir['userid'], $gvars->ir['gang']);
        return;
    }
    $cost_f = $gvars->new_gang_money_prefix . number_format($gvars->new_gang_price);
    if ($ir[$gvars->new_gang_db_field] < $gvars->new_gang_price) {
        echo "<h3>You can't afford the price of {$cost_f} to create a new {$gvars->name_sl}.</h3>";
        return;
    }
    if (!isset($_REQUEST['name']) or strlen($_REQUEST['name']) < 1 or !$gvars->check_gang_name_allowable_special_characters($_REQUEST['name']) or !ctype_alpha(substr($_REQUEST['name'], 0, 1))) {
        $name = $ir['username'] . "'s " . $gvars->name_su;
    } else {
        $name = $_REQUEST['name'];
    }
    if (!isset($_REQUEST['prefix']) or strlen($_REQUEST['prefix']) > $gvars->gang_prefix_max_length) {
        $prefix = '';
    } else {
        $prefix = $_REQUEST['prefix'];
    }
    if (!isset($_REQUEST['description'])) {
        $description = '';
    } else {
        $description = $_REQUEST['description'];
    }
    if (!gang_take_money($ir['userid'], $gvars->new_gang_price, $gvars->new_gang_db_field)) {
        echo "<h3>You don't have enough money create a {$gvars->name_sl}.</h3>";
        return;
    }
    $q_set = sprintf('insert into gangs (gangNAME, gangDESC, gangPREF, gangSUFF, gangMONEY, gangCRYSTALS,
		gangRESPECT, gangPRESIDENT, gangVICEPRES, gangCAPACITY, gangCRIME, gangCHOURS, gangAMENT)
		values ("%s", "%s", "%s", "", 0, 0, 100, %d, %d, 5, 0, 0, "")', $gvars->escape($name), $gvars->escape($description), $gvars->escape($prefix), $ir['userid'], $ir['userid']);
    mysql_query($q_set);
    if (mysql_affected_rows() < 1) {
        echo "<h3>The {$gvars->name_sl} could not be created.</h3>";
        gang_go_back('gangs.php?action=gang_create');
        return;
    }
    $q_set = sprintf('update users set gang = %d where userid = %d', mysql_insert_id(), $ir['userid']);
    mysql_query($q_set);
    echo "<h3>Your {$gvars->name_sl}, {$name}, has been created!</h3>";
    gang_go_back('yourgang.php');
}
Пример #3
0
function ygang_donate2()
{
    global $gvars;
    if (!isset($_REQUEST['money']) or floatval($_REQUEST['money']) < 1) {
        $money = 0;
    } else {
        $money = floatval($_REQUEST['money']);
    }
    if (!isset($_REQUEST['crystals']) or floatval($_REQUEST['crystals']) < 1) {
        $crystals = 0;
    } else {
        $crystals = floatval($_REQUEST['crystals']);
    }
    if ($money < 1 and $crystals < 1) {
        echo "<h3>You haven't donated anything. Please try again.</h3>";
        gang_go_back('yourgang.php?action=ygang_donate');
        return;
    }
    $money_l = strtolower($gvars->money_name);
    $crystals_l = strtolower($gvars->crystals_name);
    if ($money > 0) {
        if (!gang_take_money($gvars->userid, $money)) {
            echo "<h3>You don't have enough {$money_l} to cover your donation.</h3>";
            gang_go_back('yourgang.php?action=ygang_donate');
            return;
        }
    }
    if ($crystals > 0) {
        if (!gang_take_money($gvars->userid, $crystals, 'crystals')) {
            if ($money > 0) {
                gang_give_money($gvars->userid, $money);
            }
            echo "<h3>You don't have enough {$crystals_l} to cover your donation.</h3>";
            gang_go_back('yourgang.php?action=ygang_donate');
            return;
        }
    }
    if ($money > 0) {
        $result = gang_give_gang_money($gvars->ir['gang'], $money);
        if (!$result) {
            echo 'error';
        }
    }
    if ($crystals > 0) {
        gang_give_gang_money($gvars->ir['gang'], $crystals, 'gangCRYSTALS');
    }
    if (mysql_affected_rows() < 1) {
        echo "<h3>The donation failed.</h3>";
    } else {
        echo "<h3>Your donation has been received.</h3>";
        $us_p = gang_get_profile_link($gvars->ir['userid'], $gvars->ir['username']);
        if ($money > 1 and $crystals > 1) {
            $ev_msg = '%4$s donated %1$s and %2$s %3$s.';
        } else {
            if ($money > 1) {
                $ev_msg = '%4$s donated %1$s.';
            } else {
                $ev_msg = '%4$s donated %2$s %3$s.';
            }
        }
        gang_new_event($gvars->ir['gang'], sprintf($ev_msg, gang_money_format($money), number_format($crystals), $gvars->crystals_name, $us_p), 'escape');
        gang_go_back('yourgang.php?action=ygang_donate');
    }
}