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"); }
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 ''; }
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; }