function sgang_vault_give() { global $gvars; if (!gang_auth_all($gvars->userid, array('pres', 'vice'))) { echo "<h3>You are not authorized to access this portion of the staff panel.</h3>"; gang_go_back('yourgang.php?action=sgang_home'); return; } if (!isset($_REQUEST['them_id']) or intval($_REQUEST['them_id']) < 1) { echo "<h3>Please select a {$gvars->name_sl} member.</h3>"; gang_go_back('yourgang.php?action=sgang_vault'); return; } $them_id = intval($_REQUEST['them_id']); $q_check = sprintf('select username, gang from users where userid = %d', $them_id); $q_check = mysql_query($q_check); if (!$q_check or mysql_num_rows($q_check) < 1) { echo "<h3>The player you selected could not be found.</h3>"; gang_go_back('yourgang.php?action=sgang_vault'); return; } list($them_name, $them_gang) = mysql_fetch_row($q_check); if ($them_gang != $gvars->ir['gang']) { echo "<h3>The player you selected is not in your {$gvars->name_sl}.</h3>"; gang_go_back('yourgang.php?action=sgang_vault'); return; } 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>Please select an amount of {$gvars->money_name} or {$gvars->crystals_name} to give.</h3>"; gang_go_back('yourgang.php?action=sgang_vault'); return; } $money_l = strtolower($gvars->money_name); $crystals_l = strtolower($gvars->crystals_name); if ($money > 0) { if (!gang_take_gang_money($gvars->ir['gang'], $money)) { echo "<h3>The {$gvars->name_sl} doesn't have enough {$money_l} to cover this transaction.</h3>"; gang_go_back('yourgang.php?action=sgang_vault'); return; } } if ($crystals > 0) { if (!gang_take_gang_money($gvars->ir['gang'], $crystals, 'gangCRYSTALS')) { if ($money > 0) { gang_give_gang_money($gvars->ir['gang'], $money); } echo "<h3>The {$gvars->name_sl} doesn't have enough {$crystals_l} to cover this transaction.</h3>"; gang_go_back('yourgang.php?action=sgang_vault'); return; } } if ($money > 0) { gang_give_money($them_id, $money); } if ($crystals > 0) { gang_give_money($them_id, $crystals, 'crystals'); } if ($money > 0 and $crystals > 0) { $gang_event = '%1$s sent %2$s and %3$s %4$s to %5$s'; $player_event = '%1$s sent %2$s and %3$s %4$s to you from the %5$s'; $msg = '<h3>You sent %1$s and %2$s %3$s to %4$s</h3>'; } else { if ($money > 0) { $gang_event = '%1$s sent %2$s to %5$s'; $player_event = '%1$s sent %2$s to you from the %5$s'; $msg = '<h3>You sent %1$s to %4$s</h3>'; } else { if ($crystals > 0) { $gang_event = '%1$s sent %3$s %4$s to %5$s'; $player_event = '%1$s sent %3$s %4$s to you from the %5$s'; $msg = '<h3>You sent %2$s %3$s to %4$s</h3>'; } } } $us_p = gang_get_profile_link($gvars->userid, $gvars->ir['username']); $them_p = gang_get_profile_link($them_id, $them_name); gang_new_event($gvars->ir['gang'], sprintf($gang_event, $us_p, gang_money_format($money), number_format($crystals), $crystals_l, $them_p), 'escape'); event_add($them_id, sprintf($player_event, $us_p, gang_money_format($money), number_format($crystals), $crystals_l, $gvars->name_sl), $gvars->c); printf($msg, gang_money_format($money), number_format($crystals), $crystals_l, $them_p); gang_go_back('yourgang.php?action=sgang_vault'); return; }
/** * Make multiple attempts to give money to 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_give_money_loop($userid, $amount, $field = 'money', $num_attempts = 5) { for ($x = 1; $x <= $num_attempts; $x++) { $result = gang_give_money($userid, $amount, $field); if ($result) { break; } } return $result; }
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'); } }