Example #1
0
function start_chaos($tur)
{
    global $char;
    //все места заняты - начинаем бой
    //создаем бой
    $combat_type = 11;
    $uid = create_combat($combat_type, $char['map_name'], $char['map_xpos'], $char['map_ypos'], $tur['format']);
    //закидываем туда игроков рандомно
    $sel_users = myquery("SELECT game_users_active_host.host_more,game_users_active.host,game_turnir_users.side,view_active_users.*,game_users_data.sex FROM game_turnir_users,view_active_users,game_users_data,game_users_active,game_users_active_host WHERE game_users_data.user_id=game_turnir_users.user_id AND game_turnir_users.user_id=view_active_users.user_id AND game_turnir_users.turnir_id=" . $tur['id'] . " AND game_users_active.user_id=view_active_users.user_id AND game_users_active_host.user_id=view_active_users.user_id ORDER BY RAND()");
    $user_side = 2;
    while ($us = mysql_fetch_array($sel_users)) {
        $user_side = 3 - $user_side;
        $hod = 1;
        $join = 0;
        $svit = 0;
        $k_komu = 0;
        $k_exp = 1;
        $k_gp = 0;
        $skill = 0;
        $func = 5;
        $delay = 44;
        $no_rejoin = 1;
        combat_insert($us, 0, $uid, $combat_type, $user_side, $hod, $join, $svit, $k_komu, $k_exp, $k_gp, $skill, $func, $delay, $no_rejoin);
        $pismo = iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-style:italic;font-size:12px;color:gold;\">Начинается турнирный хаотичный бой</span>");
        myquery("INSERT INTO game_log (`message`,`date`,`fromm`,`too`,ptype) VALUES ('" . mysql_real_escape_string($pismo) . "'," . time() . ",-1," . $us['user_id'] . ",1)");
    }
    myquery("DELETE game_turnir,game_turnir_users FROM game_turnir,game_turnir_users WHERE (game_turnir.id=" . $tur['id'] . ") AND (game_turnir.id=game_turnir_users.turnir_id) ");
    setLocation("http://" . domain_name . "/combat.php");
}
Example #2
0
function attack_user($char, $player, $type, $turnir_type = 0)
{
    $id = $player['user_id'];
    $user_id = $char['user_id'];
    $l_type = $type;
    $map = mysql_fetch_array(myquery("SELECT * FROM game_maps WHERE id=" . $char['map_name'] . ""));
    if ($l_type != 8 and $l_type != 9) {
        if (check_attack($char, $player, $l_type, $map) != 1) {
            if (function_exists("save_debug")) {
                save_debug();
            }
            return 0;
        }
    }
    if (clans_war == 1 and $map['dolina'] == 1 and clans_war_type > 0) {
        $type = clans_war_type;
    }
    if (chaos_war == 1) {
        $type = 5;
    }
    // Проверка на то, что игрок не нападает на другого более 2-ух раз за последний час
    $kol_attacks = mysql_num_rows(myquery("SELECT count(*) as kol FROM game_combats_log WHERE user1_id = " . $user_id . " AND user2_id = " . $id . " AND time>=" . (time() - 60 * 60) . " HAVING kol>=2"));
    // Создаём бой
    $uid = create_combat($type, $char['map_name'], $char['map_xpos'], $char['map_ypos'], $turnir_type, $user_id, $id);
    $side_char = $char['user_id'];
    $side_player = $player['user_id'];
    switch ($type) {
        case 1:
            $nam = 14;
            break;
        case 2:
            $nam = 15;
            break;
        case 3:
            $nam = 16;
            break;
        case 4:
            $nam = 17;
            $side_char = $char['clan_id'];
            $side_player = $player['clan_id'];
            break;
        case 5:
            $nam = 18;
            break;
        case 6:
            $nam = 49;
            $side_char = $char['sklon'];
            $side_player = $player['sklon'];
            break;
        case 7:
            $nam = 48;
            $side_char = $char['race'];
            $side_player = $player['race'];
            break;
        case 8:
            $nam = 47;
            break;
        case 9:
            $nam = 46;
            break;
    }
    $skill = take_skills($char['user_id']);
    $skill1 = take_skills($player['user_id']);
    //Проверим нет ли на пострадавшем эффекта "Неуязвимости"
    $check_effect = myquery("SELECT * FROM game_obelisk_users WHERE user_id='" . $player['user_id'] . "' AND type=6 AND time_end>" . time() . " ");
    if ($turnir_type == 0 and $map['dolina'] != 1 and ($char['vsadnik'] < $player['vsadnik'] or mysql_num_rows($check_effect) > 0 or $kol_attacks > 0)) {
        $func1 = 2;
        $func2 = 1;
    } else {
        $func1 = 5;
        $func2 = 5;
        if ($type == 4) {
            myquery("INSERT INTO game_log (message,date,FROMm,ob) VALUES ('" . iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-weight:900;font-size:14px;color:red;font-family:Verdana,Tahoma,Arial,Helvetica,sans-serif\"> ВНИМАНИЕ! <img align=\"center\" src=\"http://" . img_domain . "/clan/" . $char['clan_id'] . ".gif\"> " . mysql_result(myquery("SELECT nazv FROM game_clans WHERE clan_id=" . $char['clan_id'] . ""), 0, 0) . " и <img align=\"center\" src=\"http://" . img_domain . "/clan/" . $player['clan_id'] . ".gif\"> " . mysql_result(myquery("SELECT nazv FROM game_clans WHERE clan_id=" . $player['clan_id'] . ""), 0, 0) . " начинают бой: " . $map['name'] . "(" . $char['map_xpos'] . "; " . $char['map_ypos'] . ") </span>'") . "," . time() . ",-1,1)");
        }
        //Если на игрока напали против его воли, то, при наличии соответствующего навыка, выдадим его эффект неуязвимости
        if ($type == 4 and $skill1['HIDE'] > 0 and mysql_num_rows($check_effect) == 0) {
            $time_hide = time() + $skill1['HIDE'] * 3 * 60;
            myquery("INSERT INTO game_obelisk_users (user_id,time_end,type) VALUES (" . $player['user_id'] . "," . $time_hide . ",6)");
        }
    }
    //Снимем с атакующего игрока эффект неуязвимости
    myquery("DELETE FROM game_obelisk_users WHERE user_id=" . $char['user_id'] . " AND type=6");
    $hod = 1;
    //Кидаем в бой игроков
    combat_insert($char, 0, $uid, $type, $side_char, $hod, 0, 0, 0, $map['k_exp'] / 100, $map['k_gp'] / 100, $skill, $func1, $nam, 1);
    combat_insert($player, 0, $uid, $type, $side_player, $hod, 0, 0, 0, $map['k_exp'] / 100, $map['k_gp'] / 100, $skill1, $func2, $nam, 1);
    //Отработаем действие навыка "Убийца" для 1-ого игрока
    if ($skill['SLAYER'] > 0) {
        $r = mt_rand(1, 100);
        if ($r <= $skill['SLAYER'] * 2 + 5) {
            $effect = $skill['SLAYER'] * 5;
            insert_fast_effect($char['user_id'], $player['user_id'], $uid, $hod, 42, $effect);
        }
    }
    if ($l_type != 8 and $l_type != 9) {
        $pismo = iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-style:italic;font-size:12px;color:gold;\">На тебя напал игрок <b>" . $char['name'] . "</b></span>");
        myquery("INSERT INTO game_log (`message`,`date`,`FROMm`,`too`,`ptype`) VALUES ('" . mysql_real_escape_string($pismo) . "'," . time() . ",-1,{$id},1)");
    } else {
        $pismo = iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-style:italic;font-size:12px;color:gold;\">Начинается турнирная дуэль с игроком: <b>" . $char['name'] . "</b></span>");
        myquery("INSERT INTO game_log (`message`,`date`,`FROMm`,`too`,`ptype`) VALUES ('" . mysql_real_escape_string($pismo) . "'," . time() . ",-1," . $player['user_id'] . ",1)");
        $pismo = iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-style:italic;font-size:12px;color:gold;\">Начинается турнирная дуэль с игроком: <b>" . $player['name'] . "</b></span>");
        myquery("INSERT INTO game_log (`message`,`date`,`FROMm`,`too`,`ptype`) VALUES ('" . mysql_real_escape_string($pismo) . "'," . time() . ",-1," . $char['user_id'] . ",1)");
    }
    if ($l_type != 8 and $l_type != 9) {
        save_stat($user_id, '', '', 16, '', '', '', $player['clan_id'], '', '', '');
    }
    setLocation("http://" . domain_name . "/combat.php");
    return '';
}
Example #3
0
function create_autocombat($type = 4, $min_kol)
{
    $map = "5, 18, 4, 6, 8, 10, 12, 13, 16";
    $check = myquery("SELECT v1.user_id as us1_id, v1.clan_id as us1_clan_id, v1.vsadnik as us1_vsadnik, v1.sklon as us1_sklon, v1.race as us1_race, v1.name as us1_name,\n\tv1.map_name as us1_map_name, v1.map_xpos as us1_map_xpos, v1.map_ypos as us1_map_ypos, \n\tv2.user_id as us2_id, v2.clan_id as us2_clan_id, v2.vsadnik as us2_vsadnik, v2.sklon as us2_sklon, v2.race as us2_race, v2.name as us2_name\n\tFROM (\n\tSELECT va1.user_id, va1.name, va1.clevel, va1.clan_id, va1.sklon, va1.race, va1.vsadnik, gum1.map_name, gum1.map_xpos, gum1.map_ypos \n\tFROM view_active_users AS va1\n\tJOIN game_users_map gum1 ON va1.user_id = gum1.user_id\n\tJOIN game_users_func guf1 ON va1.user_id = guf1.user_id\n\tWHERE va1.clevel >=18 AND va1.clan_id >1 AND gum1.map_name IN (" . $map . ") AND guf1.func_id NOT IN ( '1',  '2',  '4',  '6',  '7' )\n\t) AS v1 JOIN (\n\tSELECT va1.user_id, va1.name, va1.clevel, va1.clan_id, va1.sklon, va1.race, va1.vsadnik, gum1.map_name, gum1.map_xpos, gum1.map_ypos \n\tFROM view_active_users AS va1\n\tJOIN game_users_map gum1 ON va1.user_id = gum1.user_id\n\tJOIN game_users_func guf1 ON va1.user_id = guf1.user_id\n\tWHERE va1.clevel >=18 AND va1.clan_id >1 AND gum1.map_name IN (" . $map . ") AND guf1.func_id NOT IN ( '1',  '2',  '4',  '6',  '7' )\n\t) AS v2 ON ( v1.clan_id <> v2.clan_id AND abs(v1.clevel*1.0 - v2.clevel*1.0)<=3 AND (v1.map_name = v2.map_name OR (v1.map_name<>5 AND v2.map_name<>5)))\t\n\t");
    $kol = mysql_num_rows($check);
    if ($kol > $min_kol) {
        $r2 = mt_rand(0, $kol - 1);
        mysql_data_seek($check, $r2);
        $boy = mysql_fetch_array($check);
        $time_hod = time();
        //Вытащим первого игрока с расовки/клановки
        if ($boy['us1_map_name'] != 5 and $boy['us1_map_name'] != 18) {
            $boy['us1_map_name'] = 18;
            $boy['us1_map_xpos'] = 25;
            $boy['us1_map_ypos'] = 21;
            myquery("UPDATE game_users_map SET map_name='" . $boy['us1_map_name'] . "', map_xpos='" . $boy['us1_map_xpos'] . "', map_ypos='" . $boy['us1_map_ypos'] . "' WHERE user_id='" . $boy['us1_id'] . "' ");
        }
        //Перемещаем второго игрока к первому
        $boy['us2_map_name'] = $boy['us1_map_name'];
        $boy['us2_map_xpos'] = $boy['us1_map_xpos'];
        $boy['us2_map_ypos'] = $boy['us1_map_ypos'];
        myquery("UPDATE game_users_map SET map_name='" . $boy['us1_map_name'] . "', map_xpos='" . $boy['us1_map_xpos'] . "', map_ypos='" . $boy['us1_map_ypos'] . "' WHERE user_id='" . $boy['us2_id'] . "' ");
        //Создаём бой
        $uid = create_combat($type, $boy['us1_map_name'], $boy['us1_map_xpos'], $boy['us1_map_ypos']);
        //Установка параметров боя
        //Определение состояния игроков в бою
        if ($boy['us2_vsadnik'] > $boy['us1_vsadnik']) {
            $func1 = 2;
            $func2 = 1;
        } else {
            $func1 = 5;
            $func2 = 5;
        }
        $side_char = $boy['us1_id'];
        $side_player = $boy['us2_id'];
        switch ($type) {
            case 1:
                $nam = 14;
                break;
            case 2:
                $nam = 15;
                break;
            case 3:
                $nam = 16;
                break;
            case 4:
                $nam = 17;
                $side_char = $boy['us1_clan_id'];
                $side_player = $boy['us2_clan_id'];
                break;
            case 5:
                $nam = 18;
                break;
            case 6:
                $nam = 49;
                $side_char = $boy['us1_sklon'];
                $side_player = $boy['us2_sklon'];
                break;
            case 7:
                $nam = 48;
                $side_char = $boy['us1_race'];
                $side_player = $boy['us2_race'];
                break;
            case 8:
                $nam = 47;
                break;
            case 9:
                $nam = 46;
                break;
            case 12:
                $nam = 50;
                break;
        }
        $full_stats = 1;
        $k_map = 1;
        //Кидаем в бой игроков
        combat_insert(0, $boy['us1_id'], $uid, $type, $side_char, 1, 0, 0, 0, $k_map, $k_map, 0, $func1, $nam, 1, $full_stats);
        combat_insert(0, $boy['us2_id'], $uid, $type, $side_player, 1, 0, 0, 0, $k_map, $k_map, 0, $func2, $nam, 1, $full_stats);
        //Напишем в чат о начале боя+известим игроков на которых бой инициирован
        $map = mysql_fetch_array(myquery("SELECT * FROM game_maps WHERE id=" . $boy['us1_map_name'] . ""));
        myquery("INSERT INTO game_log (message,date,FROMm,ob) VALUES ('" . iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-weight:900;font-size:14px;color:red;font-family:Verdana,Tahoma,Arial,Helvetica,sans-serif\"> ВНИМАНИЕ! <img align=\"center\" src=\"http://" . img_domain . "/clan/" . $boy['us1_clan_id'] . ".gif\"> " . mysql_result(myquery("SELECT nazv FROM game_clans WHERE clan_id=" . $boy['us1_clan_id'] . ""), 0, 0) . " и <img align=\"center\" src=\"http://" . img_domain . "/clan/" . $boy['us2_clan_id'] . ".gif\"> " . mysql_result(myquery("SELECT nazv FROM game_clans WHERE clan_id=" . $boy['us2_clan_id'] . ""), 0, 0) . " начинают бой: " . $map['name'] . "(" . $boy['us1_map_xpos'] . "; " . $boy['us1_map_ypos'] . ") </span>'") . "," . time() . ",-1,1)");
        $pismo = iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-style:italic;font-size:12px;color:gold;\">Начат многоклановый бой с игроком <b>" . $boy['us2_name'] . "</b></span>");
        myquery("INSERT INTO game_log (`message`,`date`,`FROMm`,`too`,`ptype`) VALUES ('" . mysql_real_escape_string($pismo) . "'," . time() . ",-1,'" . $boy['us1_id'] . "',1)");
        $pismo = iconv("Windows-1251", "UTF-8//IGNORE", "<span style=\"font-style:italic;font-size:12px;color:gold;\">Начат многоклановый бой с игроком <b>" . $boy['us1_name'] . "</b></span>");
        myquery("INSERT INTO game_log (`message`,`date`,`FROMm`,`too`,`ptype`) VALUES ('" . mysql_real_escape_string($pismo) . "'," . time() . ",-1,'" . $boy['us2_id'] . "',1)");
        $result = "Бой начат!";
    } else {
        $result = "Бой не может быть начат!";
    }
    return $result;
}