Ejemplo n.º 1
0
function AddUnionMember($union_id, $name)
{
    global $db_prefix;
    global $GlobalUser;
    $union = LoadUnion($union_id);
    // Пустое имя, ничего не делаем.
    if ($name === "") {
        return "";
    }
    // Достигнуто максимальное количество пользователей
    if ($union['players'] >= 5) {
        return "Участвовать могут максимум 5 игроков!";
    }
    // Найти пользователя
    $name = mb_strtolower($name, 'UTF-8');
    $query = "SELECT * FROM " . $db_prefix . "users WHERE name = '" . $name . "' LIMIT 1";
    $result = dbquery($query);
    if (dbrows($result) == 0) {
        return "Пользователь не найден";
    }
    $user = dbarray($result);
    // Проверить есть ли уже такой пользователь в САБе.
    for ($i = 0; $i <= $union['players']; $i++) {
        if ($union["player"][$i] == $user['player_id']) {
            return "Такой пользователь уже добавлен в союз";
        }
        // есть.
    }
    // Проверить является ли пользователем другом или соалом.
    if (!IsBuddy($GlobalUser['player_id'], $user['player_id'])) {
        if ($user['ally_id']) {
            if ($user['ally_id'] != $GlobalUser['ally_id']) {
                return "Пользователь должен быть в списке друзей или одном альянсе";
            }
        } else {
            return "Пользователь должен быть в списке друзей или одном альянсе";
        }
    }
    // Добавить пользователя в САБ и послать ему сообщение о приглашении.
    $union['player'][$union['players']] = $user['player_id'];
    $query = "UPDATE " . $db_prefix . "union SET players = '" . implode(",", $union['player']) . "' WHERE union_id = {$union_id}";
    dbquery($query);
    $target_player = LoadUser($union['target_player']);
    $head_fleet = LoadFleet($union['fleet_id']);
    $target_planet = GetPlanet($head_fleet['target_planet']);
    $queue = GetFleetQueue($union['fleet_id']);
    $text = va("#1 приглашает Вас на миссию #2 против игрока #3 на планете <a href=\"#\" onClick=showGalaxy(#4,#5,#6)><b><u>[#7:#8:#9]</u></b></a>. ", $GlobalUser['oname'], $union['name'], $target_player['oname'], $target_planet['g'], $target_planet['s'], $target_planet['p'], $target_planet['g'], $target_planet['s'], $target_planet['p']) . va("Прибытие флота назначено на #1. ВНИМАНИЕ: время прибытия может измениться из-за скорости других задействованных флотов!", date("D M Y H:i:s", $queue['end']));
    SendMessage($user['player_id'], $GlobalUser['oname'], "Приглашение к совместной атаке", $text, 5);
    return "";
}
Ejemplo n.º 2
0
function AddBuddy($from, $to, $text)
{
    global $db_prefix;
    $text = mb_substr($text, 0, 5000, "UTF-8");
    // Огранчить длину строк
    if ($text === "") {
        $text = "пусто";
    }
    // Проверить заявки, ожидающие подтверждения.
    $query = "SELECT * FROM " . $db_prefix . "buddy WHERE ((request_from = {$from} AND request_to = {$to}) OR (request_from = {$to} AND request_to = {$from})) AND accepted = 0";
    $result = dbquery($query);
    if (dbrows($result)) {
        return 0;
    }
    // Пользователи уже друзья?
    if (IsBuddy($from, $to)) {
        return 0;
    }
    // Добавить запрос.
    $buddy = array(null, $from, $to, $text, 0);
    $id = AddDBRow($buddy, "buddy");
    return $id;
}
Ejemplo n.º 3
0
 case '8':
     // Переработать
     if ($fleet[209] == 0) {
         FleetError("Для переработки надо послать переработчик!");
     } else {
         if ($target['type'] != 10000) {
             FleetError("При переработке можно приближаться только к полям обломков!");
         }
     }
     break;
 case '9':
     // Уничтожить
     if ($target == NULL) {
         FleetError("Планета необитаема либо должна быть колонизирована!");
     } else {
         if ($origin_user['ally_id'] == $target_user['ally_id'] && $origin_user['ally_id'] > 0 || IsBuddy($origin_user['player_id'], $target_user['player_id'])) {
             $BlockAttack = 0;
         }
     }
     if ($fleet[214] == 0) {
         FleetError("Для уничтожения луны необходима звезда смерти.");
     } else {
         if ($target['type'] != 0) {
             FleetError("Уничтожать можно только луны!");
         } else {
             if ($BlockAttack) {
                 FleetError("Запрет на атаки");
             } else {
                 if ($GlobalUser['noattack']) {
                     FleetError(va("Запрет на атаки до #1", date("d.m.Y H:i:s", $GlobalUser['noattack_util'])));
                 }
    if ($planettype == 1) {
        AjaxSendError(614);
    } else {
        if ($planettype == 3) {
            AjaxSendError(602);
        } else {
            AjaxSendError();
        }
    }
    // нет ПО
}
$target_user = LoadUser($target['owner_id']);
$probes = $aktplanet['f210'];
$recyclers = $aktplanet['f209'];
$missiles = $aktplanet['d503'];
if ($GlobalUser['ally_id'] == $target_user['ally_id'] && $GlobalUser['ally_id'] > 0 || IsBuddy($GlobalUser['player_id'], $target_user['player_id'])) {
    $BlockAttack = 0;
}
/* ************ ШПИОНАЖ ************  */
if ($order == 6) {
    $amount = min($aktplanet["f210"], $shipcount);
    if ($target['owner_id'] == $GlobalUser['player_id']) {
        AjaxSendError();
    }
    // Своя планета
    if ($GlobalUser['noattack'] || $BlockAttack) {
        AjaxSendError();
    }
    // Бан атак
    if ($target_user['admin'] > 0) {
        AjaxSendError();