game/_incl_data/class/Magic.php
2023-08-11 18:28:54 +03:00

2600 lines
173 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use Core\ConversionHelper;
use Core\Db;
use Insallah\Math;
use User\ItemsModel;
class Magic
{
public int $youuse = 0;
public array $cMagic = [4174, 4175, 4176, 4177, 4178, 4179, 4180];
public array $eMagic = [4185, 4186, 4187];
public function __construct()
{
ignore_user_abort(true);
if (isset($_POST['useitemon'])) {
$_GET['login'] = $_POST['useitemon'];
}
}
public function useItems($id)
{
global $u, $btl;
$itm = mysql_fetch_array(
mysql_query(
'SELECT `iu`.`id` AS `iuid`,`im`.*,`iu`.* FROM `items_users` AS `iu` LEFT JOIN `items_main` AS `im` ON (`im`.`id` = `iu`.`item_id`) WHERE `iu`.`uid` = "' . $u->info['id'] . '" AND `iu`.`inShop`="0" AND `iu`.`delete`="0" AND `iu`.`id` = "' . mysql_real_escape_string(
(int)$id
) . '" LIMIT 1'
)
);
$bs_is = mysql_fetch_array(
mysql_query('SELECT * FROM `bs_turnirs` WHERE `id` = "' . $u->info['inTurnir'] . '" LIMIT 1')
);
if (isset($itm['id'])) {
//Группа предметов
if ($itm['group'] == 1 && $u->itemsX($itm['id']) > 1) {
//вытаскиваем предмет из группы
$u->unstack($itm['id'], 1);
}
$st = ConversionHelper::dataStringToArray($itm['data']);
if (isset($st['tr_lvl']) && $st['tr_lvl'] > $u->info['level']) {
$u->error = 'Вы слишком малы чтобы использовать данный предмет ';
return 'Вы слишком малы чтобы использовать данный предмет';
}
if ($itm['magic_chance'] > 0 && $itm['magic_chance'] < 100) {
$itm['magic_chance'] += floor($u->stats['s5'] * 3);
if ($itm['magic_chance'] >= 99) {
$itm['magic_chance'] = 99;
}
}
if (isset($bs_is['id']) && (in_array($itm['item_id'], $this->eMagic) || in_array(
$itm['item_id'], $this->cMagic
))) {
$itm['magic_chance'] += $bs_is['users'];
if ($itm['magic_chance'] >= 99) {
$itm['magic_chance'] = 99;
}
}
if ($itm['iznosNOW'] >= $itm['iznosMAX']) {
$u->error = 'Не осталось зарядов...';
} elseif ($st['useOnlyInBattle'] == 1 && $u->info['battle'] == 0) {
//Можно использовать только в поединке
$u->error = 'Можно использовать только в поединке';
} elseif ($u->info['battle'] > 0 && $itm['btl_zd'] > 0) {
//Можно использовать только в поединке
$u->error = 'Задержка использования еще ' . $itm['btl_zd'] . ' ходов';
} elseif ($st['useOnlyInBattle'] == 1 && $u->info['battle'] > 0 && $u->stats['hpNow'] < 1) {
//Можно использовать только в поединке
$u->error = 'Вы погибли, нельзя пользоваться свитками и магией';
} elseif ($itm['magic_chance'] > 0 && rand(0, 100) > $itm['magic_chance']) {
$u->error = 'Каст &quot;' . $itm['name'] . '&quot; сгорел';
$itm['iznosNOW']++;
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = 0, `delete` = 0 WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;:<B>(КАСТ СГОРЕЛ)</b> Персонаж использовал &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
} elseif (isset($st['usefromfile'])) {
//используем заклятие
$st = ConversionHelper::dataStringToArray($itm['data']);
if (isset($st['zazuby']) && $_GET['login'] != $u->info['login']) {
//unset($st['useOnLogin']);
$_GET['login'] = $u->info['login'];
}
$jl = $_GET['login'];
$_GET['login'] = urlencode($_GET['login']);
//используем на персонажа (все кроме себя)
$_GET['login'] = str_replace('%', ' ', $_GET['login']);
$_GET['login'] = str_replace('25', '', $_GET['login']);
$jl = str_replace('%', ' ', $jl);
$jl = str_replace('25', '', $jl);
if (isset($st['useOnLogin']) && $st['useOnLogin'] == 1) {
if ($u->info['inTurnir'] == 0) {
if ($u->info['battle'] > 0) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`, `st`.`clone`, `u`.`bot_id`, `u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string($jl) . '") LIMIT 1'
)
);
} else {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`, `st`.`clone`, `u`.`bot_id`, `u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string($jl) . '") LIMIT 1'
)
);
}
} else {
if ($u->info['battle'] > 0) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`,`st`.`clone`,`u`.`bot_id`,`u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string(
$jl
) . '") AND `u`.`inTurnir` > 0 LIMIT 1'
)
);
} else {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`,`st`.`clone`,`u`.`bot_id`,`u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string(
$jl
) . '") AND `u`.`inTurnir` > 0 LIMIT 1'
)
);
}
}
}
if ($st['usefromfile'] == 1) {
if ($u->info['battle'] > 0) {
if (file_exists('../../_incl_data/class/Magic/' . $itm['magic_inci'] . '.php')) {
require('../../_incl_data/class/Magic/' . $itm['magic_inci'] . '.php');
} else {
$u->error = 'Не удалось использовать (' . $itm['magic_inci'] . '.b)';
}
} else {
if (file_exists('_incl_data/class/Magic/' . $itm['magic_inci'] . '.php')) {
require('_incl_data/class/Magic/' . $itm['magic_inci'] . '.php');
} else {
$u->error = 'Не удалось использовать (' . $itm['magic_inci'] . ')';
}
}
} else {
if ($itm['useInBattle'] > 0) {
if (file_exists('../../_incl_data/class/priems/' . $st['usefromfile'] . '.php')) {
require('../../_incl_data/class/priems/' . $st['usefromfile'] . '.php');
} else {
$u->error = 'Не удалось использовать (' . $st['usefromfile'] . '.)';
}
} else {
$u->error = 'Не удалось использовать (' . $st['usefromfile'] . '!)';
}
}
} elseif ($itm['type'] == 30) {
//Эликсиры
$goodUse = 0;
$use = [];
if (isset($st['moment'])) {
//Эликсир используется моментально (Восстановление НР или МР)
if (isset($st['moment_hp'])) {
//Восстанавливаем здоровье
if ($u->stats['hpNow'] < $u->stats['hpAll']) {
$goodUse = 1;
$use['moment_hp'] = $st['moment_hp'];
if ($u->stats['hpNow'] + $use['moment_hp'] > $u->stats['hpAll']) {
$use['moment_hp'] = ceil($u->stats['hpAll'] - $u->stats['hpNow']);
}
$u->error .= 'Вы восстановили ' . ($use['moment_hp']) . ' HP.<br>';
} else {
$u->error = 'Ваше здоровье и так полностью восстановлено<br>';
$goodUse = 0;
}
}
if (isset($st['moment_mp'])) {
//Восстанавливаем здоровье
if ($u->stats['mpNow'] < $u->stats['mpAll']) {
$goodUse = 1;
$use['moment_mp'] = $st['moment_mp'];
if ($u->stats['mpNow'] + $use['moment_mp'] > $u->stats['mpAll']) {
$use['moment_mp'] = ceil($u->stats['mpAll'] - $u->stats['mpNow']);
}
$u->error .= 'Вы восстановили ' . ($use['moment_mp']) . ' MP.<br />';
} else {
$u->error = 'Ваша манна и так полностью восстановлена';
$goodUse = 0;
}
}
if ($itm['iznosNOW'] >= $itm['iznosMAX']) {
$u->error = 'Эликсир был испорчен...';
$goodUse = 0;
}
if (($u->info['align'] == 2 || $u->info['haos'] > time()) && isset($st['nohaos'])) {
$goodUse = 0;
$u->error = 'Хаосники не могут использовать данный эликсир';
}
//Заносим данные в БД
if ($goodUse == 1) {
$itm['iznosNOW']++;
$upd = mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($upd) {
$u->stats['hpNow'] += $use['moment_hp'];
$u->info['hpNow'] += $use['moment_hp'];
$u->stats['mpNow'] += $use['moment_mp'];
$u->info['mpNow'] += $use['moment_mp'];
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $u->info['hpNow'] . '", `mpNow` = "' . $u->info['mpNow'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж использовал эликсир &quot;' . $itm['name'] . '&quot; (+' . $use['moment_hp'] . ' HP) [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
$this->youuse++;
$u->error = 'Вы успешно использовали эликсир &quot;' . $itm['name'] . '&quot;<br>' . $u->error . '';
} else {
$u->error = 'Не удалось использовать эликсир...';
}
}
} else {
//Эликсиры с продолжительным эффектом
$goodUse = 1;
if (($u->info['align'] == 2 || $u->info['haos'] > time()) && isset($st['nohaos'])) {
$goodUse = 0;
$u->error = 'Хаосники не могут использовать данный эликсир';
}
if ($goodUse == 1) {
$upd1 = 1;
$upd2 = 1;
//добавляем эффект персонажу
if (isset($st['onlyOne'])) {
//убираем прошлые эффекты
$goodUse = 0;
$upd1 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" AND `id_eff` = "' . $itm['magic_inc'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
if (isset($st['oneType'])) {
//убираем прошлые эффекты
$goodUse = 0;
$upd2 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" AND `overType` = "' . $itm['overType'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
if ($goodUse == 1) {
$us = $this->add_eff($u->info['id'], $itm['magic_inc']);
if ($us[0] == 1) {
$itm['iznosNOW']++;
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж использовал эликсир &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
$this->youuse++;
$u->error = 'Вы успешно использовали эликсир &quot;' . $itm['name'] . '&quot;<br>' . $us[1] . '';
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"';
}
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"';
}
}
}
//---------------
} elseif ($itm['type'] == 29) {
//используем заклятие
$st = ConversionHelper::dataStringToArray($itm['data']);
if (isset($st['zazuby']) && $_GET['login'] != $u->info['login']) {
//unset($st['useOnLogin']);
$_GET['login'] = $u->info['login'];
}
$jl = $_GET['login'];
$_GET['login'] = urlencode($_GET['login']);
//используем на персонажа (все кроме себя)
$_GET['login'] = str_replace('%', ' ', $_GET['login']);
$_GET['login'] = str_replace('25', '', $_GET['login']);
$jl = str_replace('%', ' ', $jl);
$jl = str_replace('25', '', $jl);
if ($itm['magic_inci'] == 'nextuplvl') {
if ($itm['iznosNOW'] >= $itm['iznosMAX']) {
$u->error = 'Свиток был исполчен...';
} elseif ($u->info['battle'] > 0) {
//
$u->error = 'Вы не можете использовать свиток в бою';
} else {
if ($u->info['twink'] > 0) {
$u->error = 'Используйте свиток на основном персонаже';
} else {
mysql_query(
'UPDATE `users` SET `stopexp` = 0 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `users_twink` SET `stopexp` = 0 WHERE `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
}
}
} elseif (isset($st['useOnLogin']) && $st['useOnLogin'] == 1) {
if ($u->info['inTurnir'] == 0) {
if ($u->info['battle'] > 0) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`, `st`.`clone`, `u`.`bot_id`, `u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string($jl) . '") LIMIT 1'
)
);
} else {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`, `st`.`clone`, `u`.`bot_id`, `u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string($jl) . '") LIMIT 1'
)
);
}
} else {
if ($u->info['battle'] > 0) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`,`st`.`clone`,`u`.`bot_id`,`u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string(
$jl
) . '") AND `u`.`inTurnir` > 0 LIMIT 1'
)
);
} else {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`atack`,`st`.`clone`,`u`.`bot_id`,`u`.`type_pers`,`u`.`inTurnir`,`st`.`zv`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string(
$jl
) . '") AND `u`.`inTurnir` > 0 LIMIT 1'
)
);
}
}
if (isset($usr['id'])) {
$chat = new Chat();
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setTypeTime(1);
//заклятье нападения
if ($itm['iznosNOW'] >= $itm['iznosMAX']) {
$u->error = 'Свиток был исполчен...';
} elseif ($itm['magic_inci'] == 'snowball') {
if ($u->info['battle'] == 0) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`clone`,`u`.`type_pers`,`u`.`bot_id`,`st`.`zv`,`u`.`inTurnir`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND (`u`.`battle` = 0 OR `u`.`battle` = "' . $u->info['battle'] . '") AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string($jl) . '") LIMIT 1'
)
);
} else {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `st`.`clone`,`u`.`type_pers`,`u`.`bot_id`,`st`.`zv`,`u`.`inTurnir`,`st`.`bot`,`st`.`hpNow`,`u`.`login`,`st`.`dnow`,`u`.`id`,`u`.`align`,`u`.`admin`,`u`.`clan`,`u`.`level`,`u`.`room`,`u`.`online`,`u`.`battle`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`city` = "' . $u->info['city'] . '" AND (`u`.`battle` = 0 OR `u`.`battle` = "' . $u->info['battle'] . '") AND (`u`.`login`="' . mysql_real_escape_string(
$_GET['login']
) . '" OR `u`.`login`="' . mysql_real_escape_string(
$jl
) . '") AND `u`.`battle` = "' . $u->info['battle'] . '" LIMIT 1'
)
);
}
if ($usr['battle'] > 0 && $u->info['battle'] != $usr['battle']) {
$u->error = 'Персонаж находится в бою';
} elseif ($usr['battle'] > 0) {
//Кидаемся в поединке
if ($usr['team'] != $u->info['team'] && $usr['hpNow'] > 0) {
$txt = 1;
//Отморозки
if ($usr['bot_id'] >= 439 && $usr['bot_id'] <= 460) {
$txt = 500;
} elseif ($usr['bot_id'] == 291) {
if ($usr['hpNow'] < 961) {
$txt = 1982;
} elseif ($usr['hpNow'] > 980 && $usr['hpNow'] < 1981) {
$txt = 1982;
}
} elseif ($usr['id'] == 1008) {
$txt = $u->info['level'] * 250;
}
$usr['hpNow'] -= $txt;
if ($txt < 0) {
$txt = '+' . $txt;
} elseif ($txt == 0) {
$txt = '--';
} else {
$txt = '-' . $txt;
}
if ($usr['hpNow'] < 0) {
$usr['hpNow'] = 0;
}
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = $usr['hpNow'];
$lastHOD = mysql_fetch_array(
mysql_query(
'SELECT * FROM `battle_logs` WHERE `battle` = "' . $u->info['battle'] . '" ORDER BY `id_hod` DESC LIMIT 1'
)
);
if (isset($lastHOD['id'])) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = floor(
$btl->stats[$btl->uids[$usr['id']]]['hpNow']
);
if ($btl->stats[$btl->uids[$usr['id']]]['hpNow'] > $btl->stats[$btl->uids[$usr['id']]]['hpAll']) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = $btl->stats[$btl->uids[$usr['id']]]['hpAll'];
}
if ($btl->stats[$btl->uids[$usr['id']]]['hpNow'] < 1) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = 0;
}
$id_hod = $lastHOD['id_hod'];
if ($lastHOD['type'] != 6) {
$id_hod++;
}
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$txt = '<font color=#006699>' . $txt . '</font>';
if ($u->info['sex'] == 1) {
$txt = 'Хитрая {u1} бросила кусок снега в {u2}. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']';
} else {
$txt = 'Хитрый {u1} бросил кусок снега в {u2}. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']';
}
mysql_query(
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . time() . '","' . $u->info['battle'] . '","' . ($id_hod) . '","{tm1} ' . $txt . '","login1=' . $u->info['login'] . '||t1=' . $u->info['team'] . '||login2=' . $usr['login'] . '||t2=' . $usr['team'] . '||time1=' . time() . '","","","","","6")'
);
}
unset($txt);
} else {
$u->error = 'Нельзя использовать на данного персонажа';
}
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($usr['id'] == $u->info['id']) {
$u->error = 'Нельзя кидаться в самого себя';
} elseif ($usr['online'] < time() - 520 && $usr['battle'] == 0 && $usr['bot'] == 0) {
$u->error = 'Персонаж находится в реальном мире ;)';
} elseif ($usr['room'] != $u->info['room']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($usr['admin'] > 0 && $u->info['admin'] == 0) {
$u->error = 'Нельзя кидаться в Ангелов';
} else {
$usr['hpNow'] -= 1000;
if ($usr['hpNow'] < 0) {
$usr['hpNow'] = 0;
}
$upd = mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $usr['hpNow'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
if ($upd) {
$sx = 'ый';
$sx2 = '';
if ($u->info['sex'] == 1) {
$sx = 'ая';
$sx2 = 'а';
}
$itm['iznosNOW']++;
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$urs_st = $u->getStats($usr['id']);
$rtxt = '[img[items/snowball1.gif]] Хитр' . $sx . ' &quot;' . $u->info['login'] . '&quot; бросил' . $sx2 . ' кусок снега в &quot;' . $usr['login'] . '&quot;. <font color=red><b>-1000</b></font> [' . floor(
$urs_st['hpNow']
) . '/' . $urs_st['hpAll'] . ']';
$cmsg->setText($rtxt);
$cmsg->setType(6);
$chat->sendMsg($cmsg);
unset($sx, $sx2);
} else {
$u->error = 'Не удалось кинуть снежок...';
}
}
} elseif ($itm['magic_inci'] == 'atack') { //заклятье нападения
$usta = $u->getStats($usr['id'], 0); // статы цели
$rgd = $u->regen($usr['id'], $usta, 1);
$usta['hpNow'] = $rgd['hpNow'];
$usta['mpNow'] = $rgd['mpNow'];
$minHp = floor(
$usta['hpAll'] / 100 * 33
); // минимальный запас здоровья цели при котором можно напасть
$batlatest = mysql_fetch_array(
mysql_query(
'SELECT * FROM `battle` WHERE `id` = "' . $usr['battle'] . '" AND `team_win` = -1 LIMIT 1'
)
);
$test = mysql_fetch_array(
mysql_query(
'SELECT `id` FROM `battle_last` WHERE `uid` = "' . $u->info['id'] . '" AND `battle_id` = "' . $usr['battle'] . '" LIMIT 1'
)
);
if (isset($test['id'])) {
echo 'Нельзя вмешаться, вы уже были в этом поединке.';
} elseif (time() - $usr['timereg'] < 86400 * 10) {
$u->error = 'Нападать на новичков запрещается! Сейчас придет Мироздатель и превратит тебя в лягушку...';
} elseif ($usr['atack'] == 1 || $usr['atack'] > time()) {
$u->error = 'На персонаже метка нападения, нападайте через неё...';
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате (пещере)';
} elseif ($usr['inTurnirnew'] > 0) {
$u->error = 'Персонаж принимает участие в турнире';
} elseif ($u->info['battle'] > 0) {
$u->error = 'Вы уже находитесь в бою';
} elseif ($usr['id'] == $u->info['id']) {
$u->error = 'Нельзя нападать на самого себя';
} elseif ($usr['bot'] == 2) {
$u->error = 'Не удалость напасть на бота ' . $usr['login'] . '';
} elseif ($usr['online'] < time() - 120) {
$u->error = 'Персонаж не в сети';
} elseif ($usr['admin'] == 1) {
$u->error = 'Уважайте хранителей...';
} elseif ($usr['room'] != $u->info['room'] && $u->info['battle'] != $usr['battle'] && $u->info['battle'] > 0) {
$u->error = 'Персонаж находится в другой комнате!';
} elseif ($usr['room'] != $u->info['room']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($batlatest['noatack'] == 1) {
$u->error = 'Поединок защищен магией! Вы не можете вмешаться!';
} elseif ($minHp > $usta['hpNow'] && !isset($batlatest['id'])) {
//мало хп
$u->error = 'Персонаж слишком слаб (' . floor($usta['hpNow']) . 'HP)';
} elseif ($u->info['noatack'] != 0) {
//мало хп
$u->error = 'В этой комнате нападения запрещены.';
} else {
if ($usr['type_pers'] > 0) {
$kroww = $usr['type_pers'];
} elseif ($itm['item_id'] == '2391') {
$kroww = 99;
} elseif ($itm['item_id'] == '11117') {
$kroww = 222;
} else {
$kroww = 0;
}
$kulak = 0;
if ($itm['item_id'] == 4404) {
$kulak = 1;
}
if ($u->info['inTurnir'] > 0) {
$bsi = $u->info['inTurnir'];
} else {
$bsi = 0;
}
$atc = $this->atackUser(
$u->info['id'], $usr['id'], $usr['team'], $usr['battle'], 0, $kroww, $kulak, $bsi
);
if ($atc > 0) {
//отправляем системку в чат
$sx = '';
if ($u->info['sex'] == 1) {
$sx = 'а';
}
$itm['iznosNOW']++;
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$rtxt = '[img[items/pal_button8.gif]] &quot;' . $u->info['login'] . '&quot; использовал' . $sx . ' магию нападения на персонажа &quot;' . $usr['login'] . '&quot;.';
$cmsg->setText($rtxt);
$cmsg->setType(11);
$chat->sendMsg($cmsg);
//напали, обновляем экран
die('<script>top.frames[\'main\'].location = "main.php";</script>');
} else {
if ($u->error == '') {
$u->error = 'Не удалось напасть на персонажа...';
}
}
}
} elseif ($itm['magic_inci'] == 'cureHP') {
//Реген НР,MP
$po = ConversionHelper::dataStringToArray($itm['data']);
if ($u->info['battle'] > 0) {
//используем свиток в поединке
$bu = mysql_fetch_array(
mysql_query(
'SELECT * FROM `spells` WHERE `btl` = "' . $u->info['battle'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
)
);
if (isset($bu['id'])) {
$u->error = 'Нельзя использовать свиток каждый ход...';
} elseif ($usr['battle'] != $u->info['battle']) {
$u->error = 'Неудалось использовать, персонаж в другом поединке...';
} elseif ($usr['team'] != $u->info['team']) {
$u->error = 'Неудалось использовать на противника...';
} elseif ($usr['hpNow'] < 1) {
$u->error = 'Неудалось использовать на мертвых...';
} elseif ($u->info['hpNow'] < 1) {
$u->error = 'Неудалось использовать, вы погибли...';
} elseif ($btl->info['noeff'] > 0) {
$u->error = 'Запрет на использования свитков восстановления';
} elseif ($po['magic_hpNow'] < 1 && $po['magic_mpNow'] < 1) {
$u->error = 'Неудалось использовать, в магическом свитке нет магии...';
} elseif (($usr['battle'] == $u->info['battle'] && ($u->info['team'] == $usr['team'] && ($po['magic_hpNow'] > 0 || $po['magic_mpNow'] > 0))) && $usr['hpNow'] >= 1 && $u->info['hpNow'] >= 1) {
//кастуем
if (isset($po['magic_hpNow'])) {
mysql_query(
'INSERT INTO `spells` (`btl`,`uid`,`time`,`item_id`,`var`,`hod`) VALUES (
"' . $u->info['battle'] . '","' . $u->info['id'] . '","' . time() . '","' . $itm['item_id'] . '","' . $itm['name'] . '","1"
)'
);
$txt = $po['magic_hpNow'];
if ($btl->stats[$btl->uids[$usr['id']]]['hpAll'] - $btl->stats[$btl->uids[$usr['id']]]['hpNow'] < $txt) {
$txt = floor(
$btl->stats[$btl->uids[$usr['id']]]['hpAll'] - $btl->stats[$btl->uids[$usr['id']]]['hpNow']
);
}
//653 - 400
//253
//453 1306
$gdhh = round($txt / $btl->stats[$btl->uids[$usr['id']]]['hpAll'] * 5, 2);
$gdhd = round($gdhh / $btl->users[$btl->uids[$usr['id']]]['tactic7'] * 100);
if ($gdhd > 100) {
$txt = floor($txt / 100 * $gdhd);
}
if ($btl->users[$btl->uids[$usr['id']]]['tactic7'] >= 1) {
if ($txt > 0) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] += $txt;
$btl->users[$btl->uids[$usr['id']]]['tactic7'] -= $gdhh;
if ($btl->users[$btl->uids[$usr['id']]]['tactic7'] < 0) {
$btl->users[$btl->uids[$usr['id']]]['tactic7'] = 0;
}
}
mysql_query(
'UPDATE `stats` SET `last_hp` = "' . $txt . '", `hpNow` = `hpNow` + ' . $po['magic_hpNow'] . ', `tactic7` = "' . $btl->users[$btl->uids[$usr['id']]]['tactic7'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
if ($txt > 0) {
$txt = '+' . $txt;
} elseif ($txt == 0) {
$txt = '--';
}
} else {
$txt = '--';
}
$lastHOD = mysql_fetch_array(
mysql_query(
'SELECT * FROM `battle_logs` WHERE `battle` = "' . $u->info['battle'] . '" ORDER BY `id_hod` DESC LIMIT 1'
)
);
if (isset($lastHOD['id'])) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = floor(
$btl->stats[$btl->uids[$usr['id']]]['hpNow']
);
if ($btl->stats[$btl->uids[$usr['id']]]['hpNow'] > $btl->stats[$btl->uids[$usr['id']]]['hpAll']) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = $btl->stats[$btl->uids[$usr['id']]]['hpAll'];
}
if ($btl->stats[$btl->uids[$usr['id']]]['hpNow'] < 1) {
$btl->stats[$btl->uids[$usr['id']]]['hpNow'] = 0;
}
$id_hod = $lastHOD['id_hod'];
if ($lastHOD['type'] != 6) {
$id_hod++;
}
$txt = '<font color=#006699>' . $txt . '</font>';
if ($u->info['id'] == $usr['id']) {
if ($u->info['sex'] == 1) {
$txt = '{u1} использовала &quot;<b>' . $itm['name'] . '</b>&quot; на себя. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']';
} else {
$txt = '{u1} использовал &quot;<b>' . $itm['name'] . '</b>&quot; на себя. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']';
}
} else {
if ($u->info['sex'] == 1) {
$txt = '{u1} использовала &quot;<b>' . $itm['name'] . '</b>&quot; на {u2}. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']';
} else {
$txt = '{u1} использовал &quot;<b>' . $itm['name'] . '</b>&quot; на {u2}. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']';
}
}
mysql_query(
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . time() . '","' . $u->info['battle'] . '","' . ($id_hod) . '","{tm1} ' . $txt . '","login1=' . $u->info['login'] . '||t1=' . $u->info['team'] . '||login2=' . $usr['login'] . '||t2=' . $usr['team'] . '||time1=' . time() . '","","","","","6")'
);
}
}
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
// сообщение в лог боя
$sx = 'ый';
$sx2 = '';
if ($u->info['sex'] == 1) {
$sx = 'ая';
$sx2 = 'а';
}
$u->error = 'Свиток &quot;' . $itm['name'] . '&quot; был успешно использован.';
} else {
$u->error = 'Нельзя использовать на данного персонажа';
}
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате [пещера]';
} elseif ($usr['online'] < time() - 120 && $usr['bot'] == 0) {
$u->error = 'Персонаж находится в реальном мире';
} elseif ($usr['room'] != $u->info['room']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($usr['battle'] != $u->info['battle']) {
$u->error = 'Персонаж находится в поединке';
} else {
//кастуем
if (isset($po['magic_hpNow'])) {
mysql_query(
'UPDATE `stats` SET `hpNow` = `hpNow` + ' . $po['magic_hpNow'] . ' WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
}
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
// сообщение в чат
$sx = 'ый';
$sx2 = '';
if ($u->info['sex'] == 1) {
$sx = 'ая';
$sx2 = 'а';
}
$u->error = 'Свиток &quot;' . $itm['name'] . '&quot; был успешно использован.';
$rtxt = '[img[items/' . $itm['img'] . ']] Персонаж &quot;' . $u->info['login'] . '&quot; использовал' . $sx2 . ' &quot;' . $itm['name'] . '&quot; на &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
}
} elseif ($itm['magic_inci'] == 'cureMP') {
//Реген НР,MP
$po = ConversionHelper::dataStringToArray($itm['data']);
if ($u->info['battle'] > 0) {
//используем свиток в поединке
$bu = mysql_fetch_array(
mysql_query(
'SELECT * FROM `spells` WHERE `btl` = "' . $u->info['battle'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
)
);
if (isset($bu['id'])) {
$u->error = 'Нельзя использовать свиток каждый ход...';
} elseif ($btl->info['noeff'] > 0) {
$u->error = 'Запрет на использования свитков восстановления';
} elseif (($usr['battle'] == $u->info['battle'] && ($u->info['team'] == $usr['team'] && ($po['magic_hpNow'] > 0 || $po['magic_mpNow'] > 0))) && $usr['hpNow'] > 1 && $u->info['hpNow'] >= 1) {
//кастуем
if (isset($po['magic_mpNow'])) {
mysql_query(
'INSERT INTO `spells` (`btl`,`uid`,`time`,`item_id`,`var`,`hod`) VALUES (
"' . $u->info['battle'] . '","' . $u->info['id'] . '","' . time() . '","' . $itm['item_id'] . '","' . $itm['name'] . '","1"
)'
);
$txt = $po['magic_mpNow'];
if ($btl->stats[$btl->uids[$usr['id']]]['mpAll'] - $btl->stats[$btl->uids[$usr['id']]]['mpNow'] < $txt) {
$txt = floor(
$btl->stats[$btl->uids[$usr['id']]]['mpAll'] - $btl->stats[$btl->uids[$usr['id']]]['mpNow']
);
}
$gdhh = round($txt / $btl->stats[$btl->uids[$usr['id']]]['mpAll'] * 5);
$gdhd = round($gdhh / $btl->users[$btl->uids[$usr['id']]]['tactic7'] * 100);
if ($gdhd > 100) {
$txt = floor($txt / 100 * $gdhd);
}
if ($btl->users[$btl->uids[$usr['id']]]['tactic7'] >= 1) { // поставить >= 1 , если требует дух
if ($txt > 0) {
$btl->stats[$btl->uids[$usr['id']]]['mpNow'] += $txt;
$btl->users[$btl->uids[$usr['id']]]['tactic7'] -= $gdhh;
if ($btl->users[$btl->uids[$usr['id']]]['tactic7'] < 0) {
$btl->users[$btl->uids[$usr['id']]]['tactic7'] = 0;
}
}
mysql_query(
'UPDATE `stats` SET `mpNow` = `mpNow` + ' . $txt . ', `tactic7` = "' . $btl->users[$btl->uids[$usr['id']]]['tactic7'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
if ($txt > 0) {
$txt = '+' . $txt;
} elseif ($txt == 0) {
$txt = '--';
}
} else {
$txt = '--';
}
$lastHOD = mysql_fetch_array(
mysql_query(
'SELECT * FROM `battle_logs` WHERE `battle` = "' . $u->info['battle'] . '" ORDER BY `id_hod` DESC LIMIT 1'
)
);
if (isset($lastHOD['id'])) {
$btl->stats[$btl->uids[$usr['id']]]['mpNow'] = floor(
$btl->stats[$btl->uids[$usr['id']]]['mpNow']
);
if ($btl->stats[$btl->uids[$usr['id']]]['mpNow'] > $btl->stats[$btl->uids[$usr['id']]]['mpAll']) {
$btl->stats[$btl->uids[$usr['id']]]['mpNow'] = $btl->stats[$btl->uids[$usr['id']]]['mpAll'];
}
if ($btl->stats[$btl->uids[$usr['id']]]['mpNow'] < 1) {
$btl->stats[$btl->uids[$usr['id']]]['mpNow'] = 0;
}
$id_hod = $lastHOD['id_hod'];
if ($lastHOD['type'] != 6) {
$id_hod++;
}
$txt = '<font color=#006699>' . $txt . '</font>';
if ($u->info['id'] == $usr['id']) {
if ($u->info['sex'] == 1) {
$txt = '{u1} использовала &quot;<b>' . $itm['name'] . '</b>&quot; на себя. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)';
} else {
$txt = '{u1} использовал &quot;<b>' . $itm['name'] . '</b>&quot; на себя. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)';
}
} else {
if ($u->info['sex'] == 1) {
$txt = '{u1} использовала &quot;<b>' . $itm['name'] . '</b>&quot; на {u2}. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)';
} else {
$txt = '{u1} использовал &quot;<b>' . $itm['name'] . '</b>&quot; на {u2}. <b>' . $txt . '</b> [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)';
}
}
mysql_query(
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . time() . '","' . $u->info['battle'] . '","' . ($id_hod) . '","{tm1} ' . $txt . '","login1=' . $u->info['login'] . '||t1=' . $u->info['team'] . '||login2=' . $usr['login'] . '||t2=' . $usr['team'] . '||time1=' . time() . '","","","","","6")'
);
}
}
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
// сообщение в лог боя
$sx = 'ый';
$sx2 = '';
if ($u->info['sex'] == 1) {
$sx = 'ая';
$sx2 = 'а';
}
$u->error = 'Свиток &quot;' . $itm['name'] . '&quot; был успешно использован.';
} else {
$u->error = 'Нельзя использовать на данного персонажа';
}
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате [пещера]';
} elseif ($usr['online'] < time() - 120 && $usr['bot'] == 0) {
$u->error = 'Персонаж находится в реальном мире';
} elseif ($usr['room'] != $u->info['room']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($usr['battle'] != $u->info['battle']) {
$u->error = 'Персонаж находится в поединке';
} else {
//кастуем
if (isset($po['magic_mpNow'])) {
mysql_query(
'UPDATE `stats` SET `mpNow` = `mpNow` + ' . $po['magic_mpNow'] . ' WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
}
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
// сообщение в чат
$sx = 'ый';
$sx2 = '';
if ($u->info['sex'] == 1) {
$sx = 'ая';
$sx2 = 'а';
}
$u->error = 'Свиток &quot;' . $itm['name'] . '&quot; был успешно использован.';
$rtxt = '[img[items/' . $itm['img'] . ']] Персонаж &quot;' . $u->info['login'] . '&quot; использовал' . $sx2 . ' &quot;' . $itm['name'] . '&quot; на &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
}
} elseif ($itm['magic_inci'] == 'lech_1' or $itm['magic_inci'] == 'lech_2' or $itm['magic_inci'] == 'lech_3') {
if ($u->info['battle'] > 0) {
//используем свиток в поединке
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате [пещера]';
} elseif ($usr['online'] < time() - 120 && $usr['bot'] == 0) {
$u->error = 'Персонаж находится в реальном мире';
} elseif ($usr['room'] != $u->info['room']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($usr['battle'] != $u->info['battle']) {
$u->error = 'Персонаж находится в поединке';
} else {
$travm = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid`="' . $usr['id'] . '" and `id_eff`="4" and `delete`="0" ORDER BY `v1` DESC LIMIT 1'
)
);
//$type_lechenie = $travm['v1'];
$itm['magic_inci'] = 'lech_' . $travm['v1'];
if ($itm['magic_inci'] == 'lech_1') {
$type_lechenie = 1; // тип травмы котору лечим
$text_msg = '&quot;Легкой травмы&quot;';
$text_msg2 = 'легких';
} elseif ($itm['magic_inci'] == 'lech_2') {
$type_lechenie = 2; // тип травмы котору лечим
$text_msg = '&quot;Средней травмы&quot;';
$text_msg2 = 'средних';
} elseif ($itm['magic_inci'] == 'lech_3') {
$type_lechenie = 3; // тип травмы котору лечим
$text_msg = '&quot;Тяжелой травмы&quot;';
$text_msg2 = 'тяжелых';
}
if ($travm) {
$lech_aa = [0, 2, 3, 4];
$travm_cep = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid`="' . $usr['id'] . '" and `id_eff`="335" and `delete`="0" and `v1`="' . $type_lechenie . '" LIMIT 1'
)
);
if ($travm_cep['timeUse'] < time() - 360) {
unset($travm_cep);
}
$cep_users = explode(',', $travm_cep['data']);
$it_i = 0;
$it_no = 0;
$it_users = '';
while ($it_i < count($cep_users)) {
$it_u = $cep_users[$it_i];
if ($it_u == $u->info['id']) {
$it_no = 1;
}
$it_u = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login`,`level`,`align`,`clan`,`room` FROM `users` WHERE `id` = "' . $it_u . '" LIMIT 1'
)
);
if (isset($it_u['id'])) {
$it_users .= ', ' . $it_u['login'] . '';
}
$it_i++;
}
$it_u = ltrim($it_u, ', ');
$lech_co = round($travm_cep['x'] + 1);
if ($it_no == 1) {
$u->error = 'Вы уже один из лекарей';
} elseif ($lech_co >= $lech_aa[$type_lechenie]) {
mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $travm['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
$rtxt = '[img[items/cure_g1.gif]] Лекарь &quot;' . $u->info['login'] . '&quot; кинул цепь исцеления на игрока &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
//mysql_query('UPDATE `eff_users` SET `delete` = "'.time().'" WHERE `id` = "'.$travm_cep['id'].'" LIMIT 1');
mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $usr['id'] . '" AND `id_eff` = 4 AND `delete` = 0 LIMIT 1'
);
// сообщение в чат
$u->error = 'Персонаж излечен от ' . $text_msg . '.';
$rtxt = '[img[items/cure' . $type_lechenie . '.gif]] Лекари &quot;' . $u->info['login'] . $it_users . '&quot; вылечили от ' . $text_msg . ' игрока &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
} else {
if (isset($travm_cep['id'])) {
$travm_cep['x']++;
$u->error = 'Вы присоединились к цепи исцеления для &quot;' . $text_msg . '&quot; (исцеление ' . $text_msg2 . ' травм)';
mysql_query(
'UPDATE `eff_users` SET `x` = "' . $travm_cep['x'] . '"
,`data` = "' . $travm_cep['data'] . ',' . $u->info['id'] . '"
WHERE `id` = "' . $travm_cep['id'] . '" LIMIT 1'
);
} else {
$u->error = 'Вы создали цепь исцеления для &quot;' . $text_msg . '&quot; (исцеление ' . $text_msg2 . ' травм), у остальных лекарей есть 5 минут, чтобы завершить заклинание';
mysql_query(
'INSERT INTO `eff_users`
(
`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`user_use`,`v1`,`x`
) VALUES (
"335","' . $usr['id'] . '","Цепь исцеления","' . $u->info['id'] . '","28","' . time() . '","' . $u->info['id'] . '","' . $type_lechenie . '","1"
)'
);
}
//mysql_query('UPDATE `eff_users` SET `delete` = "'.time().'" WHERE `id` = "'.$travm['id'].'" LIMIT 1');
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
// сообщение в чат
$rtxt = '[img[items/cure_g1.gif]] Лекарь &quot;' . $u->info['login'] . '&quot; кинул цепь исцеления на игрока &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
}
} else {
$u->error = 'Персонаж не имеет данной травмы.';
}
}
} elseif ($itm['magic_inci'] == 'lech_free_1' or $itm['magic_inci'] == 'lech_free_2' or $itm['magic_inci'] == 'lech_free_3') {
if ($u->info['battle'] > 0) {
//используем свиток в поединке
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате [пещера]';
} elseif ($usr['online'] < time() - 120 && $usr['bot'] == 0) {
$u->error = 'Персонаж находится в реальном мире';
} elseif ($usr['room'] != $u->info['room']) {
$u->error = 'Персонаж находится в другой комнате';
} elseif ($usr['battle'] != $u->info['battle']) {
$u->error = 'Персонаж находится в поединке';
} else {
$travm = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid`="' . $usr['id'] . '" and `id_eff`="4" and `delete`="0" ORDER BY `v1` DESC LIMIT 1'
)
);
//$type_lechenie = $travm['v1'];
//$itm['magic_inci'] = 'lech_free_'.$travm['v1'];
if ($itm['magic_inci'] == 'lech_free_1') {
$type_lechenie = 1; // тип травмы котору лечим
$text_msg = '&quot;Легкой травмы&quot;';
$text_msg2 = 'легких';
} elseif ($itm['magic_inci'] == 'lech_free_2') {
$type_lechenie = 2; // тип травмы котору лечим
$text_msg = '&quot;Средней травмы&quot;';
$text_msg2 = 'средних';
} elseif ($itm['magic_inci'] == 'lech_free_3') {
$type_lechenie = 3; // тип травмы котору лечим
$text_msg = '&quot;Тяжелой травмы&quot;';
$text_msg2 = 'тяжелых';
}
if ($travm['v1'] != $type_lechenie) {
$u->error = 'Неподходящий свиток для данной травмы.';
} elseif ($travm['id']) {
$lech_aa = [0, 0, 0, 0];
$travm_cep = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid`="' . $usr['id'] . '" and `id_eff`="335" and `delete`="0" and `v1`="' . $type_lechenie . '" LIMIT 1'
)
);
if ($travm_cep['timeUse'] < time() - 360) {
unset($travm_cep);
}
$cep_users = explode(',', $travm_cep['data']);
$it_i = 0;
$it_no = 0;
$it_users = '';
while ($it_i < count($cep_users)) {
$it_u = $cep_users[$it_i];
if ($it_u == $u->info['id']) {
$it_no = 1;
}
$it_u = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login`,`level`,`align`,`clan`,`room` FROM `users` WHERE `id` = "' . $it_u . '" LIMIT 1'
)
);
if (isset($it_u['id'])) {
$it_users .= ', ' . $it_u['login'] . '';
}
$it_i++;
}
$it_u = ltrim($it_u, ', ');
$lech_co = round($travm_cep['x'] + 1);
if ($it_no == 1) {
$u->error = 'Вы уже один из лекарей';
} elseif ($lech_co >= $lech_aa[$type_lechenie]) {
mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $travm['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $usr['id'] . '" AND `id_eff` = 4 AND `delete` = 0 LIMIT 1'
);
// сообщение в чат
$u->error = 'Персонаж излечен от ' . $text_msg . '.';
$rtxt = '[img[items/cure' . $type_lechenie . '.gif]] Лекари &quot;' . $u->info['login'] . $it_users . '&quot; вылечили от ' . $text_msg . ' игрока &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
} else {
if (isset($travm_cep['id'])) {
$travm_cep['x']++;
$u->error = 'Вы присоединились к цепи исцеления для &quot;' . $text_msg . '&quot; (исцеление ' . $text_msg2 . ' травм)';
mysql_query(
'UPDATE `eff_users` SET `x` = "' . $travm_cep['x'] . '"
,`data` = "' . $travm_cep['data'] . ',' . $u->info['id'] . '"
WHERE `id` = "' . $travm_cep['id'] . '" LIMIT 1'
);
} else {
$u->error = 'Вы создали цепь исцеления для &quot;' . $text_msg . '&quot; (исцеление ' . $text_msg2 . ' травм), у остальных лекарей есть 5 минут, чтобы завершить заклинание';
mysql_query(
'INSERT INTO `eff_users`
(
`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`user_use`,`v1`,`x`
) VALUES (
"335","' . $usr['id'] . '","Цепь исцеления","' . $u->info['id'] . '","28","' . time() . '","' . $u->info['id'] . '","' . $type_lechenie . '","1"
)'
);
}
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
// сообщение в чат
$rtxt = '[img[items/cure_g1.gif]] Лекарь &quot;' . $u->info['login'] . '&quot; кинул цепь исцеления на игрока &quot;' . $usr['login'] . '&quot;.';
$cmsg = new ChatMessage();
$cmsg->setCity($u->info['city']);
$cmsg->setRoom($u->info['room']);
$cmsg->setText($rtxt);
$cmsg->setType(6);
$cmsg->setTypeTime(1);
(new Chat())->sendMsg($cmsg);
}
} else {
$u->error = 'Персонаж не имеет данной травмы.';
}
}
} else {
if ($u->info['id'] != $usr['id']) {
$lsct = mysql_fetch_array(
mysql_query(
'SELECT `id_eff` FROM `eff_users` WHERE `uid` = "' . $usr['id'] . '" AND `delete` = "0" AND (`overType` = "' . $itm['overType'] . '" OR (`id_eff` = "' . $itm['magic_inc'] . '" AND "' . (0 + $st['onlyOne']) . '" != "0")) LIMIT 1'
)
);
$lsct['good'] = 1;
//Касты
if ($lsct['id_eff'] >= 291 && $lsct['id_eff'] <= 296 && $itm['magic_inc'] >= 291 && $itm['magic_inc'] <= 296) {
if ($lsct['id_eff'] > $itm['magic_inc']) {
$u->error = 'На персонаже есть каст лучше этого!';
$lsct['good'] = 0;
}
}
} else {
$lsct['good'] = 1;
}
//просто используем на персонажа
if ($lsct['good'] == 0) {
} elseif ($u->info['dnow'] != $usr['dnow']) {
$u->error = 'Персонаж находится в другой комнате [пещера]';
} elseif ($usr['room'] == 217 || $usr['room'] == 218 || $usr['room'] == 219) {
$u->error = 'Персонаж ' . $u->microLogin($usr['id'], 1) . ' находится в Общежитии!';
} elseif ($usr['inTurnir'] != 0 && ($u->info['inTurnir'] != $usr['inTurnir'])) {
$u->error = 'Участвует в турнире Башни смерти...';
} elseif ($usr['id'] == $u->info['id'] && isset($st['useOnlyUser'])) {
$u->error = 'Нельзя использовать это заклятие на самого себя';
} elseif ($usr['online'] < time() - 120 && $usr['bot'] == 0) {
$u->error = 'Персонаж находится в реальном мире ;)';
} elseif ($usr['room'] != $u->info['room'] && $usr['battle'] != $u->info['battle'] && $u->info['battle'] > 0) {
$u->error = 'Персонаж находится в другой комнате [' . $usr['room'] . ' ' . $u->info['room'] . ']';
} elseif ($usr['admin'] > 0 && $u->info['admin'] == 0 && isset($st['useNoAdmin'])) {
$u->error = 'Нельзя использовать данное заклятие на Ангелов';
} elseif ($usr['battle'] > 0 && $u->info['battle'] != $usr['battle']) {
$u->error = 'Персонаж находится в бою';
} elseif (($u->info['align'] == 2 || $u->info['haos'] > time()) && isset($st['nohaos'])) {
$u->error = 'Хаосники не могут использовать данное заклятие';
} else {
//добавляем эффект персонажу
$goodUse = 1;
//
$tpsm = 0;
if ($itm['useInBattle'] == 0 && $usr['battle'] > 0) {
//Нельзя юзать
$goodUse = 0;
} else {
if ($usr['battle'] > 0) {
global $btl;
if ($u->info['team'] != $btl->users[$btl->uids[$usr['id']]]['team']) {
if ($itm['useInBattle'] == 1) {
$goodUse = 0;
}
$tpsm = 2;
} elseif ($u->info['team'] == $btl->users[$btl->uids[$usr['id']]]['team']) {
if ($itm['useInBattle'] == 2) {
$goodUse = 0;
}
$tpsm = 1;
}
}
}
//
if ($goodUse == 1) {
if (isset($st['onlyOne'])) {
//убираем прошлые эффекты
$goodUse = 0;
$upd1 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $usr['id'] . '" AND `delete` = "0" AND `id_eff` = "' . $itm['magic_inc'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
if (isset($st['oneType'])) {
//убираем прошлые эффекты
$goodUse = 0;
$upd2 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $usr['id'] . '" AND `delete` = "0" AND `overType` = "' . $itm['overType'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
}
//
if ($goodUse == 1 && $itm['magic_inc'] == 'unclone') {
//Переманить клона
if ($usr['clone'] > 0 && $usr['hpNow'] >= 1 && $usr['team'] != $u->info['team']) {
mysql_query(
'UPDATE `stats` SET `team` = "' . $u->info['team'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
if ($u->info['sex'] == 0) {
$txt_m = '{u1} <b>переманил клона</b> {u2} на свою сторону.';
} else {
$txt_m = '{u1} <b>переманила</b> клона {u2} на свою сторону.';
}
$this->inBattleLog($txt_m, $usr);
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . ($itm['iznosNOW'] + 1) . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `items_users` SET `btl_zd` = "1" WHERE `item_id` = "' . $itm['item_id'] . '" AND `inOdet` > 0 AND `uid` = "' . $u->info['id'] . '" AND `delete` = "0" LIMIT 20'
);
$u->error = 'Вы успешно использовали заклинание &quot;' . $itm['name'] . '&quot; на &quot;' . $usr['login'] . '&quot;';
} else {
$u->error = 'Вы не можете переманивать данного персонажа...';
}
} elseif ($goodUse == 1) {
$us = $this->add_eff($usr['id'], $itm['magic_inc']);
if ($us[0] == 1) {
$mmmid = mysql_insert_id();
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
if ($u->info['id'] != $usr['id']) {
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж использовал заклинание &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') на персонажа &quot;' . $usr['login'] . '&quot; (id' . $usr['id'] . ') [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
$u->addDelo(
1, $usr['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж &quot;' . $u->info['login'] . '&quot; (id' . $u->info['id'] . ') использовал заклинание &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') на персонажа [itm:' . $itm['id'] . '].',
time(), $usr['city'], 'System.inventory', 0, 0
);
$u->error = 'Вы успешно использовали заклинание &quot;' . $itm['name'] . '&quot; на персонажа &quot;' . $usr['login'] . '&quot;<br>' . $us[1] . '';
} else {
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж использовал заклинание &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') на персонажа самого себя [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
$u->error = 'Вы успешно использовали заклинание &quot;' . $itm['name'] . '&quot; на самого себя<br>' . $us[1] . '';
}
//
if ($usr['battle'] > 0) {
//Заносим в лог
$txt_m = '';
if ($u->info['sex'] == 0) {
if ($u->info['id'] != $usr['id']) {
$txt_m .= '{u1} воспользовался магией &quot;<b>' . $itm['name'] . '</b>&quot; на {u2}.';
} else {
$txt_m .= '{u1} воспользовался магией &quot;<b>' . $itm['name'] . '</b>&quot; на себя.';
}
} else {
if ($u->info['id'] != $usr['id']) {
$txt_m .= '{u1} воспользовалась магией &quot;<b>' . $itm['name'] . '</b>&quot; на {u2}.';
} else {
$txt_m .= '{u1} воспользовалась магией &quot;<b>' . $itm['name'] . '</b>&quot; на себя.';
}
}
$this->inBattleLog($txt_m, $usr);
//
//По завершению боя эффект должен слетать
//306 - положительное , 307 - отрицательное
if ($tpsm == 1) {
//306
mysql_query(
'UPDATE `eff_users` SET `v1` = "priem",`v2` = "306",`timeUse` = "77",`hod` = "-1",`img2` = "' . $itm['img'] . '" WHERE `id` = "' . $mmmid . '" LIMIT 1'
);
} elseif ($tpsm == 2) {
//307
mysql_query(
'UPDATE `eff_users` SET `v1` = "priem",`v2` = "307",`timeUse` = "77",`hod` = "-1",`img2` = "' . $itm['img'] . '" WHERE `id` = "' . $mmmid . '" LIMIT 1'
);
}
//
}
//
$this->youuse++;
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '" ... (' . $itm['magin_inc'] . ' and ' . $itm['magic_inci'] . ', Эффект не добавлен)';
}
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"';
}
}
}
} else {
$u->error = 'Персонаж "' . $jl . '" не найден в этом городе (' . $u->info['city'] . ')';
}
} elseif (isset($st['useOnItem']) && $st['useOnItem'] == 1) {
//используем на предмет
} else {
//на себя
$goodUse = 1;
if (($u->info['align'] == 2 || $u->info['haos'] > time()) && isset($st['nohaos'])) {
$goodUse = 0;
$u->error = 'Хаосники не могут использовать данное заклятие';
}
if ($itm['magic_inci'] == 'sanich2') {
if ($u->info['battle'] == 0) {
$sz = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich2" AND `time` > ' . (time() - 4 * 60 * 60) . ' LIMIT 1', 1
);
if (!isset($sz['id'])) {
$slech = rand(0, 4);
$goodUse = 0;
if ($slech == 1) {
//3083 Настойка на жучьей требухе
//$this->add_eff($u->info['id'],3083);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 290 AND `delete` =0'
);
$this->add_eff($u->info['id'], 290);
$echotext = 'Настойка на жучьей требухе!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} elseif ($slech == 2) {
//5239 Амброзия подмастерья Владык
//$this->add_eff($u->info['id'],5239);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 472 AND `delete` =0'
);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 470 AND `delete` =0'
);
$this->add_eff($u->info['id'], 472);
$echotext = 'Амброзия подмастерья Владык!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} elseif ($slech == 3) {
//5069 Амброзия Скучающих Владык
//$this->add_eff($u->info['id'],470);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 472 AND `delete` =0'
);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 470 AND `delete` =0'
);
$this->add_eff($u->info['id'], 470);
$echotext = 'Амброзия Скучающих Владык!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} elseif ($slech == 4) {
//1463 Звездное Сияние
//$this->add_eff($u->info['id'],1463);
mysql_query(
'DELETE FROM `eff_users` WHERE `uid` = "' . $u->info['id'] . '" AND `id_eff` = 35 AND `delete` =0'
);
$this->add_eff($u->info['id'], 35);
$echotext = 'Звездное Сияние!';
$u->error = 'Вы получили эфект от ' . $echotext . '';
} else {
$slech = 1;
$echotext = 'Не удалось прочитать страницу!';
$u->error = ' ' . $echotext . ' ';
}
$itm['iznosNOW'] += $slech;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addAction(time(), 'sanich2', $slech);
if ($u->info['sex'] == 1) {
$rtxt = '[img[items/' . $itm['img'] . ']] &quot;' . $u->info['login'] . '&quot; использовала &quot;' . $itm['name'] . ' Саныча&quot; и получила эффект ' . $echotext . ' травмы.';
} else {
$rtxt = '[img[items/' . $itm['img'] . ']] &quot;' . $u->info['login'] . '&quot; использовал &quot;' . $itm['name'] . ' Саныча&quot; и получил эффект ' . $echotext . ' травмы.';
}
} else {
$u->error = 'Задержка использования ' . $u->timeOut(
($sz['time'] + 4 * 60 * 60) - time()
) . '.';
}
} else {
$u->error = 'Невозможно использовать в бою';
}
} elseif ($itm['magic_inci'] == 'sanich1' && $u->info['battle'] > 0) {
$sz = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich1" AND `time` > ' . (time() - 6 * 60) . ' LIMIT 1', 1
);
if (!isset($sz['id'])) {
$goodUse = 0;
$u->error = 'Вы успешно использовали &quot;' . $itm['name'] . '&quot;';
$z = 1;
while ($z <= 5) {
$u->info['tactic' . $z]++;
if ($u->info['tactic' . $z] > 25) {
$u->info['tactic' . $z] = 25;
} elseif ($u->info['tactic' . $z] < 0) {
$u->info['tactic' . $z] = 0;
}
$z++;
}
if ($u->info['sex'] == 1) {
$this->inBattleLog('{u1} использовала &quot;<b>' . $itm['name'] . ' Саныча</b>&quot;.');
} else {
$this->inBattleLog('{u1} использовал &quot;<b>' . $itm['name'] . ' Саныча</b>&quot;.');
}
mysql_query(
'UPDATE `stats` SET `tactic1` = "' . $u->info['tactic1'] . '",`tactic2` = "' . $u->info['tactic2'] . '",`tactic3` = "' . $u->info['tactic3'] . '",`tactic4` = "' . $u->info['tactic4'] . '",`tactic5` = "' . $u->info['tactic5'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addAction(time(), 'sanich1', $u->info['battle']);
} else {
$u->error = 'Задержка использования ' . $u->timeOut(($sz['time'] + 6 * 60) - time()) . '.';
}
} elseif ($itm['magic_inci'] == 'sanich3' && $u->info['battle'] > 0) {
$sz = $u->testAction(
'`uid` = "' . $u->info['id'] . '" AND `vars` = "sanich3" AND `time` > ' . (time() - 3 * 60 * 60) . ' LIMIT 1', 1
);
if (!isset($sz['id'])) {
$usr = mysql_fetch_array(
mysql_query(
'SELECT `u`.`id`,`u`.`level`,`s`.`hpNow`,`s`.`team`,`u`.`login`,`u`.`sex` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`id` = "' . $u->info['enemy'] . '" AND `u`.`battle` = "' . $u->info['battle'] . '" LIMIT 1'
)
);
if (isset($usr['id']) && $usr['hpNow'] >= 1) {
$iznslvl = $usr['level'];
$goodUse = 0;
$u->error = 'Вы успешно использовали &quot;' . $itm['name'] . '&quot; на ' . $usr['login'] . '';
if ($u->info['sex'] == 1) {
$this->inBattleLog(
'{u1} использовала &quot;<b>' . $itm['name'] . ' Саныча</b>&quot; на {u2}.',
$usr
);
} else {
$this->inBattleLog(
'{u1} использовал &quot;<b>' . $itm['name'] . ' Саныча</b>&quot; на {u2}.', $usr
);
}
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $usr['hpNow'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $u->stats['hpNow'] . '" WHERE `id` = "' . $usr['id'] . '" LIMIT 1'
);
$itm['iznosNOW'] += $iznslvl;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->addAction(time(), 'sanich3', $u->info['battle']);
} else {
$u->error = 'Нет подходящего противника';
}
} else {
$u->error = 'Задержка использования ' . $u->timeOut(
($sz['time'] + 3 * 60 * 60) - time()
) . '.';
}
} elseif ($itm['magic_inci'] == 'lech') {
$goodUse = 0;
if ($u->info['level'] >= 2 and $u->info['level'] <= 13) {
$travm = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid`="' . $u->info['id'] . '" and `id_eff`="4" and `delete`="0" LIMIT 1'
)
);
if ($travm && $travm['v1'] == 4) {
$u->error = 'У вас неизлечимая травма, вам помогут только боги или время.';
} elseif ($travm) {
mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $travm['id'] . '" LIMIT 1'
);
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
} else {
$u->error = 'У вас нету травмы.';
}
} else {
$u->error = 'Ваш уровень не подходит для использования свитка.';
}
}
if ($goodUse == 1) {
$upd1 = 1;
$upd2 = 1;
//добавляем эффект персонажу
if (isset($st['onlyOne'])) {
//убираем прошлые эффекты
$goodUse = 0;
$upd1 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" AND `id_eff` = "' . $itm['magic_inc'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
if (isset($st['oneType'])) {
//убираем прошлые эффекты
$goodUse = 0;
$upd2 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `delete` = "0" AND `overType` = "' . $itm['overType'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
if ($itm['magic_inci'] == 'unclone') {
//Свиток клонирования
if ($u->info['hpNow'] < 1) {
$u->error = 'Вам не удалось переманить клона...';
} elseif ($u->info['battle'] == 0) {
$u->error = 'Можно использовать только в поединке...';
} else {
//Преманиваем
$u->error = 'Переманили...';
}
} elseif ($itm['magic_inci'] == 'cloneMe') {
//Свиток клонирования
if (true == false) {
$u->error = 'Свитки клонирования запрещены в нашем проекте.';
} elseif ($u->info['hpNow'] < 1) {
$u->error = 'Вы успешно клонировали свой труп ;)';
} elseif ($u->info['battle'] == 0) {
$u->error = 'Можно использовать только в поединке...';
} else {
$bot_cou = mysql_fetch_array(
mysql_query(
'SELECT COUNT(`id`) FROM `users` WHERE `login` LIKE "%' . $u->info['login'] . ' (клон%" AND `battle` = "' . $u->info['battle'] . '" LIMIT 1'
)
);
$bot_cou = $bot_cou[0] + 1;
//Добавляем бота
$clone = [
'id' => $u->info['id'],
'login' => $u->info['login'] . ' (клон ' . $bot_cou . ')',
'level' => $u->info['level'],
'city' => $u->info['city'],
'cityreg' => $u->info['cityreg'],
'name' => $u->info['name'],
'sex' => $u->info['sex'],
'hobby' => $u->info['hobby'],
'time_reg' => $u->info['time_reg'],
'obraz' => $u->info['obraz'],
'stats' => $u->info['stats'],
'upLevel' => $u->info['upLevel'],
'priems' => $u->info['priems'],
'loclon' => true,
'inTurnir' => $u->info['inTurnir'],
];
$bot = $u->addNewbot(1, null, $clone, null, true);
if ($bot > 0) {
mysql_query(
'UPDATE `stats` SET `team` = "' . $u->info['team'] . '",`hpNow` = "' . $u->stats['hpNow'] . '",`mpNow` = "' . $u->stats['mpNow'] . '" WHERE `id` = "' . $bot . '" LIMIT 1'
);
mysql_query(
'UPDATE `users` SET `battle` = "' . $u->info['battle'] . '" WHERE `id` = "' . $bot . '" LIMIT 1'
);
//Доабвляем лог
if ($u->info['sex'] == 0) {
$txt_m = '{u1} использовал &quot;' . $itm['name'] . '&quot; и <b>породил клона</b>.';
} else {
$txt_m = '{u1} использовала &quot;' . $itm['name'] . '&quot; и <b>породила клона</b>.';
}
$this->inBattleLog($txt_m, null);
if ($u->info['sex'] == 0) {
$txt_m = '<b>' . $u->info['login'] . ' (клон ' . $bot_cou . ')</b>[' . $u->info['level'] . '] вмешался в поединок!';
} else {
$txt_m = '<b>' . $u->info['login'] . ' (клон ' . $bot_cou . ')</b>[' . $u->info['level'] . '] вмешалась в поединок!';
}
$this->inBattleLog($txt_m, $usr_m);
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . ($itm['iznosNOW'] + 1) . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
mysql_query(
'UPDATE `items_users` SET `btl_zd` = "1" WHERE `item_id` = "' . $itm['item_id'] . '" AND `inOdet` > 0 AND `uid` = "' . $u->info['id'] . '" AND `delete` = "0" LIMIT 20'
);
$u->error = 'Заклятие &quot;' . $itm['name'] . '&quot; было успешно использовано';
} else {
$u->error = 'Неудалось использовать заклятие...';
}
unset($txt_m, $usr_m, $clone, $bot_cou, $bot);
}
} elseif ($itm['magic_inci'] == 'scan') {
if ($u->info['inTurnir'] != 0) {
$sp = mysql_query(
'SELECT `st`.*, `u`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `inTurnir` = "' . $u->info['inTurnir'] . '"'
);
while ($pl = mysql_fetch_array($sp)) {
$rrm = mysql_fetch_array(
mysql_query(
'SELECT * FROM `bs_map` WHERE `x` = "' . $pl['x'] . '" AND `y` = "' . $pl['y'] . '"'
)
);
$trnt .= $pl['login'] . ' Комната : ' . $rrm['name'] . ', ';
}
$trnt = rtrim($trnt, ', ');
$it_ = ItemsModel::addItem(
2435, $u->info['id'], 'noodet=1|noremont=1|sudba=' . $u->info['login'] . ''
);
mysql_query(
'UPDATE `items_users` SET `use_text` = 500 WHERE `id` = "' . $it_ . '" LIMIT 1'
);
mysql_query(
'INSERT INTO `items_text` (`item_id`,`time`,`login`,`text`,`city`,`x`,`type`) VALUES ("' . $it_ . '","' . time() . '","","' . mysql_real_escape_string(
$trnt
) . '","' . $u->info['city'] . '","1","1")'
);
mysql_query('DELETE FROM `items_users` WHERE `id` = "' . $itm['id'] . '" LIMIT 1');
$u->error = 'Вы получили выписку...';
} else {
$u->error = 'Используется только в Башне смерти...';
}
} elseif ($itm['magic_inci'] == 'tactic') {
//Выдаем тактику
if ($u->stats['hpNow'] >= 1) {
$bu = mysql_fetch_array(
mysql_query(
'SELECT * FROM `tactic` WHERE `btl` = "' . $u->info['battle'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
)
);
if (isset($bu['id'])) {
$u->error = 'Нельзя использовать свиток каждый ход...';
} else {
//
mysql_query(
'INSERT INTO `tactic` (`btl`,`uid`,`time`,`item_id`,`var`,`hod`) VALUES ("' . $u->info['battle'] . '","' . $u->info['id'] . '","' . time() . '","' . $itm['item_id'] . '","' . $itm['name'] . '","1")'
);
//
mysql_query(
'INSERT INTO `battle_actions` (`uid`,`btl`,`time`,`vars`,`vals`) VALUES (
"' . $u->info['id'] . '","' . $u->info['battle'] . '","' . time() . '","use_cast_tactic",""
)'
);
$u->info['tactic' . $st['addtac']] += $st['addtacv'];
mysql_query(
'UPDATE `stats` SET `tactic' . $st['addtac'] . '` = "' . $u->info['tactic' . $st['addtac']] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
//Доабвляем лог
if ($u->info['sex'] == 0) {
$txt_m = '{u1} применил заклинание &quot;<b>' . $itm['name'] . '</b>&quot;.';
} else {
$txt_m = '{u1} применила заклинание &quot;<b>' . $itm['name'] . '</b>&quot;.';
}
$this->inBattleLog($txt_m, null);
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . ($itm['iznosNOW'] + 1) . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
$u->error = 'Заклятие &quot;' . $itm['name'] . '&quot; было успешно использовано';
}
} else {
$u->error = 'Вы погибли...';
}
} elseif ($itm['magic_inci'] == 'add_animal') {
if ($u->info['animal'] > 0) {
$u->error = 'Не удалось использовать "' . $itm['name'] . '", у Вас уже есть зверь.';
} else {
$anm = ['type' => 1, 'name' => '', 'obraz' => '', 'stats' => '', 'sex' => 0];
//Выбираем тип зверя
if ($itm['name'] == 'Призвать Сову') {
$anm['type'] = 2;
} elseif ($itm['name'] == 'Призвать Светляка') {
$anm['type'] = 3;
} elseif ($itm['name'] == 'Призвать Кота') {
$anm['type'] = 1;
} elseif ($itm['name'] == 'Призвать Чертяку') {
$anm['type'] = 4;
} elseif ($itm['name'] == 'Призвать Свина') {
$anm['type'] = 6;
} elseif ($itm['name'] == 'Призвать Пса') {
$anm['type'] = 5;
} elseif ($itm['name'] == 'Призвать Дракона') {
$anm['type'] = 7;
if ($anm['type'] == 1) {
$anm['name'] = 'Кот';
$anm['sex'] = 0;
$anm['obraz'] = [1 => '20864.gif', 2 => '21301.gif', 3 => '21139.gif', 4 => '20427.gif'];
$anm['stats'] = 's1=2|s2=5|s3=2|s4=5|rinv=40|m9=5|m6=10';
} elseif ($anm['type'] == 7) {
$anm['name'] = 'Дракон';
$anm['sex'] = 0;
$anm['obraz'] = [1 => '21338_pgtpdbx.gif'];
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
}
} elseif ($anm['type'] == 2) {
$anm['name'] = 'Сова';
$anm['sex'] = 1;
$anm['obraz'] = [1 => '21415.gif', 2 => '21722.gif', 3 => '21550.gif'];
$anm['stats'] = 's1=2|s2=2|s3=5|s4=5|rinv=40|m9=5|m6=10';
} elseif ($anm['type'] == 3) {
$anm['name'] = 'Светляк';
$anm['sex'] = 0;
$anm['obraz'] = [1 => '22277.gif', 2 => '22265.gif', 3 => '22333.gif', 4 => '22298.gif'];
$anm['stats'] = 's1=3|s2=10|s3=3|s4=4|rinv=40|m9=5|m6=10';
} elseif ($anm['type'] == 4) {
$anm['name'] = 'Чертяка';
$anm['sex'] = 0;
$anm['obraz'] = [1 => '22177.gif', 2 => '21976.gif', 3 => '21877.gif'];
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
} elseif ($anm['type'] == 5) {
$anm['name'] = 'Пес';
$anm['sex'] = 0;
$anm['obraz'] = [1 => '22352.gif', 2 => '23024.gif', 3 => '22900.gif', 4 => '22501.gif', 5 => '22700.gif'];
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
} elseif ($anm['type'] == 6) {
$anm['name'] = 'Свин';
$anm['sex'] = 0;
$anm['obraz'] = [1 => '24000.gif', 2 => '25000.gif', 3 => '27000.gif', 4 => '28000.gif'];
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
}
$anm['obraz'] = $anm['obraz'][rand(1, count($anm['obraz']))];
$anm['obraz'] = str_replace('.gif', '', $anm['obraz']);
$anm['obraz'] = str_replace('.jpg', '', $anm['obraz']);
$anm['obraz'] = str_replace('.png', '', $anm['obraz']);
$ins = mysql_query(
'INSERT INTO `users_animal` (`type`,`name`,`uid`,`obraz`,`stats`,`sex`) VALUES ("' . $anm['type'] . '","' . $anm['name'] . '","' . $u->info['id'] . '","' . $anm['obraz'] . '","' . $anm['stats'] . '","' . $anm['sex'] . '")'
);
if ($ins) {
$u->info['animal'] = mysql_insert_id();
mysql_query(
'UPDATE `users` SET `animal` = "' . $u->info['animal'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
$u->error = 'Вы успешно использовали "' . $itm['name'] . '" и помните - &quot;Мы в ответе за тех, кого приручили&quot;.';
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж использовал заклинание &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '", что-то здесь не так ...';
}
}
} elseif ($goodUse == 1) {
if ($itm['magic_inc'] == '') {
$itm['magic_inc'] = $itm['magic_inci'];
}
$us = $this->add_eff($u->info['id'], $itm['magic_inc']);
if ($us[0] == 1) {
$itm['iznosNOW']++;
mysql_query(
'UPDATE `items_users` SET `iznosNOW` = "' . $itm['iznosNOW'] . '" WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
if ($itm['inGroup'] > 0 && $itm['delete'] == 0) {
mysql_query(
'UPDATE `items_users` SET `inGroup` = "0", `delete` = "0" WHERE `id` = "' . $itm['id'] . '" LIMIT 1'
);
}
$u->addDelo(
1, $u->info['id'],
'&quot;<font color="maroon">System.inventory</font>&quot;: Персонаж использовал заклинание &quot;' . $itm['name'] . '&quot; (' . $us[1] . ') [itm:' . $itm['id'] . '].',
time(), $u->info['city'], 'System.inventory', 0, 0
);
$this->youuse++;
$u->error = 'Вы успешно использовали заклинание &quot;' . $itm['name'] . '&quot;<br>' . $us[1] . '';
} else {
if ($u->error != '') {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"...<br>' . $u->error;
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"...';
}
}
} else {
if ($u->error != '') {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"<br>' . $u->error;
} else {
$u->error = 'Не удалось использовать "' . $itm['name'] . '"';
}
}
}
//------------------------------
}
}
if ($goodUse == 1) {
mysql_query(
'UPDATE `items_users` SET `lastUPD` = ' . time() . ' WHERE `id` = "' . $itm['id'] . '" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
);
}
} else {
if ($id == 5555) {
mysql_query('UPDATE `stats` SET `seff` = 0 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
$u->error = 'Эфекты развернуты';
} elseif ($id == 7777) {
mysql_query('UPDATE `stats` SET `seff` = 1 WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
$u->error = 'Эфекты свернуты';
} else {
$u->error = 'Предмет не найден в инвентаре';
}
}
}
//Использование предмета
public function add_eff($uid, $id, $is_no = null)
{
$g = [0 => 0, 1 => ''];
$eff = mysql_fetch_array(mysql_query('SELECT * FROM `eff_main` WHERE `id2` = "' . $id . '" LIMIT 1'));
if ($is_no != null) {
//добавляем эффект персонажу
if ($eff['onlyOne'] > 0) {
//убираем прошлые эффекты
$goodUse = 0;
$upd1 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $uid . '" AND `delete` = "0" AND `id_eff` = "' . $eff['id2'] . '"'
);
if ($upd1) {
$goodUse = 1;
}
}
if ($st['oneType'] > 0) {
//убираем прошлые эффекты
$goodUse = 0;
$upd2 = mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $uid . '" AND `delete` = "0" AND `overType` = "' . $eff['overType'] . '"'
);
if ($upd2) {
$goodUse = 1;
}
}
}
if ($goodUse == 1 || $is_no == null) {
if (isset($eff['id2'])) {
//$eff = $this->paguba($eff);
$n = $eff['mname'];
$d = $eff['mdata'];
$ins = mysql_query(
'INSERT INTO `eff_users` (`overType`,`id_eff`,`uid`,`name`,`timeUse`,`data`,`no_Ace`) VALUES ("' . $eff['oneType'] . '","' . $eff['id2'] . '","' . $uid . '","' . $n . '","' . time() . '","' . $d . '","' . $eff['noAce'] . '")'
);
if ($ins) {
$g[0] = 1;
$g[1] = '...';
}
}
}
return $g;
}
public function atackUser($uid1, $uid2, $tm, $btl, $addExp = 0, $type = 0, $kulak = 0, $bsid = 0)
{
global $u;
$usr = mysql_fetch_array(
mysql_query(
'SELECT `u`.*,`s`.* FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `u`.`id` = `s`.`id` WHERE `u`.`id` = "' . $uid2 . '" LIMIT 1'
)
);
$btl_test = mysql_fetch_array(
mysql_query('SELECT * FROM `battle` WHERE `id` = "' . $btl . '" AND `team_win` = -1 LIMIT 1')
);
$clan_test = mysql_fetch_array(
mysql_query(
'SELECT * FROM `clan_wars` WHERE ((`clan1`="' . $u->info['clan'] . '" AND `clan2`="' . $usr['clan'] . '") OR (`clan2`="' . $u->info['clan'] . '" AND `clan1`="' . $usr['clan'] . '")) AND `time_finish` > "' . time() . '" LIMIT 1'
)
);
$good = 0;
//Эффекты из-за которых нельзя нападать
$efsno = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `uid` = "' . $uid2 . '"
AND `name` LIKE "%Лепим снежок%" AND `delete` = "0"
LIMIT 1'
)
);
$check = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE `id_eff` = 478 AND `uid` = "' . $u->info['id'] . '" AND `delete` = 0 ORDER BY `overType` DESC LIMIT 1;'
)
);
$check2 = mysql_fetch_array(
mysql_query(
'SELECT * FROM `eff_users` WHERE (`id_eff` = 479 OR `id_eff` = 480 OR `id_eff` = 481) AND `uid` = "' . $usr['id'] . '" AND `delete` = 0 ORDER BY `overType` DESC LIMIT 1;'
)
);
$u->error = 'Нельзя нападать на монстра этого уровня!';
if ($usr['no_ip'] == 'trupojor' && $usr['level'] == 9 && $u->info['level'] > 9) {
$u->error = 'Нельзя нападать на монстра этого уровня!';
} elseif ($usr['no_ip'] == 'trupojor' && $usr['level'] == 10 && ($u->info['level'] < 10 || $u->info['level'] > 11)) {
$u->error = 'Нельзя нападать на монстра этого уровня!';
} elseif ($ua['no_ip'] == 'trupojor' && isset($check['id'])) { //&& $ua['level'] >9
$u->error = 'Нельзя нападать на монстра чаще одного раза в 3 часа!';
} elseif (isset($check2['id'])) { //&& $ua['level'] >9
$u->error = 'Персонаж имеет защиту от нападения!';
} elseif ($usr['level'] == 8 && $usr['no_ip'] != 'trupojor' && self::canAttack8Level(
$u->info['id'], $usr['id']
)) {
$u->error = 'На 8-е уровни нападать нельзя.';
} elseif ($u->info['level'] != $usr['level'] && $usr['no_ip'] != 'trupojor') { //&& !isset ($clan_test['id'])
$u->error = 'Нападать можно на персонажей только своего уровня!!!';
} elseif (isset($btl_test['id']) && $btl_test['noatack'] > 0) {
$u->error = 'Поединок защищен магией! Вы не можете вмешаться!';
} elseif ($usr['level'] < 8) {
$u->error = 'Новички находятся под защитой Мироздателя...';
} elseif ($u->info['level'] < 8) {
$u->error = 'Тренируйтесь вам пока еще рано...';
} elseif (isset($efsno['id']) && $efsno['delete'] > 0) {
$u->error = 'Невозможно напасть, противник чем-то занят...';
} elseif ($usr['admin'] == 1 && $u->info['admin'] == 0) {
$u->error = 'Уважайте хранителей...';
} elseif ($this->testTravma($uid2, 3)) {
$u->error = 'Противник тяжело травмирован, нельзя напасть!';
} elseif ($this->testTravma($uid1, 2)) {
$u->error = 'Вы травмированы, нельзя напасть!';
} elseif ($bsid != 0 && ($u->info['x'] != $usr['x'] || $u->info['y'] != $usr['y'])) {
$u->error = 'Вы находитесь в разных комнатах...';
} elseif ($usr['clan'] != 0 && ($usr['clan'] == $u->info['clan']) && $u->info['admin'] == 0) {
$u->error = 'Чтите честь ваших сокланов.';
} elseif ($btl != 0 && $btl_test['smert'] == 1 && $type != 222) {
$u->error = 'Вы не можете вмешаться в этот кровавый поединок!';
} elseif ($btl == 0) {
$s01 = $u->getStats($uid1, 0);
if ($s01['hpNow'] < floor($s01['hpAll'] / 100 * 33)) {
$u->error = 'Нельзя напасть, у противника не восстановилось здоровье';
} else {
$addExp += $usr['bbexp'];
//effect ненападения
if ($usr['no_ip'] == 'trupojor') {
mysql_query(
'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time() . '")'
);
}
//тут клан вар
//************
//нападаем на персонажа
$timewait = rand(1, 3);
//===Удаление защиты от нападения в результате нападения пользователем
$dsl = mysql_query(
'SELECT * FROM `eff_users` WHERE (`id_eff` = 479 OR `id_eff` = 480 OR `id_eff` = 481) AND `uid` = "' . $u->info['id'] . '" AND `delete` = 0 ORDER BY `overType` DESC;'
);
while ($dpl = mysql_fetch_array($dsl)) {
mysql_query(
'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $dpl['id'] . '";'
);
}
//=======
if ($type == 222) //
{
$ins = mysql_query(
'INSERT INTO `battle` (`kulak`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`, `inTurnir`, `clan1`, `clan2`, `smert` ) VALUES (
"' . $kulak . '",
"' . $u->info['city'] . '",
"' . time() . '",
"' . $u->info['login'] . ',' . $usr['login'] . '",
"' . (60 * $timewait) . '",
"99",
"0",
"0",
"50",
"9",
"' . $addExp . '",
"0",
"' . $bsid . '",
"' . $u->info['clan'] . '",
"' . $usr['clan'] . '",
"1"
)'
);
} elseif (isset ($clan_test['id'])) //
{
$ins = mysql_query(
'INSERT INTO `battle` (`kulak`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`, `inTurnir`, `clan1`, `clan2` ) VALUES (
"' . $kulak . '",
"' . $u->info['city'] . '",
"' . time() . '",
"' . $u->info['login'] . ',' . $usr['login'] . '",
"' . (60 * $timewait) . '",
"250",
"0",
"0",
"50",
"9",
"' . $addExp . '",
"0",
"' . $bsid . '",
"' . $u->info['clan'] . '",
"' . $usr['clan'] . '")'
);
} else {
$ins = mysql_query(
'INSERT INTO `battle` (`kulak`,`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`, `inTurnir`) VALUES (
"' . $kulak . '",
"' . $u->info['city'] . '",
"' . time() . '",
"' . $u->info['login'] . ',' . $usr['login'] . '",
"' . (60 * $timewait) . '",
"' . $type . '",
"0",
"0",
"50",
"9",
"' . $addExp . '",
"0", "' . $bsid . '")'
);
}
unset($timewait);
if ($ins) {
$btl_id = mysql_insert_id();
//Обновляем НР и МР игрокам
if ($s01['level'] <= 7) {
$s01['tactic7'] = floor(10 / $s01['hpAll'] * $s01['hpNow']);
} elseif ($s01['level'] == 8) {
$s01['tactic7'] = floor(20 / $s01['hpAll'] * $s01['hpNow']);
} elseif ($s01['level'] == 9) {
$s01['tactic7'] = floor(30 / $s01['hpAll'] * $s01['hpNow']);
} elseif ($s01['level'] >= 10) {
$s01['tactic7'] = floor(40 / $s01['hpAll'] * $s01['hpNow']);
}
$s01 = ['hpAll' => $s01['hpAll'], 'hpNow' => $s01['hpNow'], 'mpAll' => $s01['mpAll'], 'mpNow' => $s01['mpNow']];
$s02 = $u->getStats($uid2, 0);
if ($s02['level'] <= 7) {
$s02['tactic7'] = floor(10 / $s02['hpAll'] * $s02['hpNow']);
} elseif ($s02['level'] == 8) {
$s02['tactic7'] = floor(20 / $s02['hpAll'] * $s02['hpNow']);
} elseif ($s02['level'] == 9) {
$s02['tactic7'] = floor(30 / $s02['hpAll'] * $s02['hpNow']);
} elseif ($s02['level'] >= 10) {
$s02['tactic7'] = floor(40 / $s02['hpAll'] * $s02['hpNow']);
}
$s02 = ['hpAll' => $s02['hpAll'], 'hpNow' => $s02['hpNow'], 'mpAll' => $s02['mpAll'], 'mpNow' => $s02['mpNow']];
$upd2 = mysql_query(
'UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $uid1 . '" OR `id` = "' . $uid2 . '" LIMIT 2'
);
mysql_query(
'UPDATE `stats` SET `lider` = "' . $btl_id . '",`tactic7` = "' . $s01['tactic7'] . '",`hpNow` = "' . $s01['hpNow'] . '",`mpNow` = "' . $s01['mpNow'] . '",`team`="1",`zv` = "0" WHERE `id` = "' . $uid1 . '" LIMIT 1'
);
mysql_query(
'UPDATE `stats` SET `lider` = "' . $btl_id . '",`tactic7` = "' . $s02['tactic7'] . '",`hpNow` = "' . $s02['hpNow'] . '",`mpNow` = "' . $s02['mpNow'] . '",`team`="2",`zv` = "0" WHERE `id` = "' . $uid2 . '" LIMIT 1'
);
if ($kulak > 0 || $btl_test['kulak'] > 0) {
mysql_query(
'UPDATE `items_users` SET `inOdet` = "0" WHERE ( `uid` = "' . $uid1 . '" OR `uid` = "' . $uid2 . '" ) AND `delete` = "0"'
);
}
$good = $btl_id;
if ($bsid != 0) {
$bs = mysql_fetch_array(
mysql_query(
'SELECT * FROM `bs_turnirs` WHERE `id` = "' . $u->info['inTurnir'] . '" LIMIT 1'
)
);
if ($u->info['sex'] == 0) {
$text = '<img src="//img.new-combats.tech/i/items/atackk.gif" /> {u1} напал на {u2} завязался бой <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
} else {
$text = '<img src="//img.new-combats.tech/i/items/atackk.gif" /> {u1} напала на {u2} завязался бой <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
}
$usr_real = mysql_fetch_array(
mysql_query(
'SELECT `id`, `login`, `align`, `clan`, `battle`, `level` FROM `users` WHERE (`inUser` = "' . $usr['id'] . '" OR `id` = "' . $usr['id'] . '") LIMIT 1'
)
);
if (!isset($usr_real['id'])) {
$usr_real = $usr;
}
if (isset($usr_real['id'])) {
$usrreal = '';
if ($usr_real['align'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/align/align' . $usr_real['align'] . '.gif width=12 height=15 >';
}
if ($usr_real['clan'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
}
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else {
$usrreal = '<i>Невидимка</i>[??]';
}
$me_real = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login`,`align`,`clan`,`battle`,`level` FROM `users` WHERE `inUser` = "' . $u->info['id'] . '" AND `login` = "' . $u->info['login'] . '" LIMIT 1'
)
);
if (isset($me_real['id'])) {
$mereal = '';
if ($me_real['align'] > 0) {
$mereal .= '<img src=//img.new-combats.tech/i/align/align' . $me_real['align'] . '.gif width=12 height=15 >';
}
if ($me_real['clan'] > 0) {
$mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >';
}
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else {
$mereal = '<i>Невидимка</i>[??]';
}
$text = str_replace('{u1}', $mereal, $text);
$text = str_replace('{u2}', $usrreal, $text);
mysql_query(
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
"1", "' . mysql_real_escape_string($text) . '", "' . time() . '", "' . $bs['id'] . '", "' . $bs['count'] . '", "' . $bs['city'] . '",
"' . round($bs['money'] * 0.85, 2) . '","' . $i . '")'
);
unset($text, $usrreal, $mereal, $usr_real, $me_real);
}
}
}
} elseif (isset($btl_test['id']) && $btl_test['type'] == 500 && $usr['team'] == 1) {
$u->error = 'Нельзя сражаться на стороне монстров!';
} elseif (isset($btl_test['id']) && $btl_test['type'] == 250 && $u->info['clan'] != $btl_test['clan1'] && $u->info['clan'] != $btl_test['clan2']) {
$u->error = 'Нельзя попасть в клановые бои - если вы неявляетесь представителем данных кланов!!!';
} elseif (isset($btl_test['id']) && $btl_test['invis'] > 0) {
$u->error = 'Нельзя вмешиваться в невидимый бой!';
} elseif ($btl_test['noatack'] > 0) {
$u->error = 'В этот поединок нельзя вмешиваться!';
} else {
//вмешиваемся в бой
//effect ненападения
if ($usr['no_ip'] == 'trupojor') {
mysql_query(
'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time() . '")'
);
}
$upd = mysql_query('UPDATE `users` SET `battle`="' . $btl . '" WHERE `id` = "' . $uid1 . '" LIMIT 1');
if ($upd) {
if ($kulak > 0 || $btl_test['kulak'] > 0) {
mysql_query(
'UPDATE `items_users` SET `inOdet` = "0" WHERE `uid` = "' . $uid1 . '" AND `delete` = "0"'
);
}
$uid1st = $u->getStats($uid1);
$uid1u = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login`,`level`,`clan`,`align`,`sex` FROM `users` WHERE `id` = "' . $uid1 . '" LIMIT 1'
)
);
if ($uid1u['level'] <= 7) {
$uid1st['tactic7'] = floor((10 + $uid1st['s7']) / $uid1st['hpAll'] * $uid1st['hpNow']);
} elseif ($uid1u['level'] == 8) {
$uid1st['tactic7'] = floor((20 + $uid1st['s7']) / $uid1st['hpAll'] * $uid1st['hpNow']);
} elseif ($uid1u['level'] == 9) {
$uid1st['tactic7'] = floor((30 + $uid1st['s7']) / $uid1st['hpAll'] * $uid1st['hpNow']);
} elseif ($uid1u['level'] >= 10) {
$uid1st['tactic7'] = floor((40 + $uid1st['s7']) / $uid1st['hpAll'] * $uid1st['hpNow']);
} else {
$uid1st['tactic7'] = floor((10 + $uid1st['s7']) / $uid1st['hpAll'] * $uid1st['hpNow']);
}
//Духовность, спасение
if ($uid1st['s7'] > 49) {
mysql_query(
'UPDATE `eff_users` SET `delete`="' . time() . '" WHERE `uid` = "' . $uid1st['id'] . '" AND `overType` = 101 AND `delete` = 0'
);
mysql_query(
"
INSERT INTO `eff_users` ( `id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
( 22, '" . $uid1st['id'] . "', 'Спасение', 'add_spasenie=1', 101, 77, 0, '" . $uid1st['id'] . "', 0, 'priem', 324, 'preservation.gif', 1, -1, 'спасение', 0, 0, '', 0, 0, 0, 1, 0);
"
);
}
$btxt = '';
if ($uid1u['align'] > 0) {
$btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $uid1u['align'] . '.gif >';
}
if ($uid1u['align2'] > 0) {
$btxt = $btxt . '<img width=12 height=15 src=//img.new-combats.tech/i/align/align' . $uid1u['align2'] . '.gif >';
}
if ($uid1u['clan'] > 0) {
$btxt = $btxt . '<img width=24 height=15 src=//img.new-combats.tech/i/clan/' . $uid1u['clan'] . '.gif >';
}
$btxt = $btxt . '<b>{u1}</b>[' . $uid1u['level'] . ']<a href=info/' . $uid1u['id'] . ' target=_blank ><img width=12 height=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
if ($uid1u['sex'] == 1) {
$btxt = $btxt . ' вмешалась в поединок.';
} else {
$btxt = $btxt . ' вмешался в поединок.';
}
if ($kulak > 0) {
$btxt .= ' (Кулачное нападение)';
}
$lastHOD = mysql_fetch_array(
mysql_query(
'SELECT * FROM `battle_logs` WHERE `battle` = "' . $btl . '" ORDER BY `id_hod` DESC LIMIT 1'
)
);
if (isset($lastHOD['id'])) {
$id_hod = $lastHOD['id_hod'];
if ($lastHOD['type'] != 6) {
$id_hod++;
}
mysql_query(
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . time() . '","' . $btl . '","' . ($id_hod) . '","{tm1} ' . $btxt . '","login1=' . $uid1st['login'] . '||t1=' . $uid1st['team'] . '||login2=' . $uid1st['login'] . '||t2=' . $uid1st['team'] . '||time1=' . time() . '","","","","","6")'
);
}
// Бафф Зверя animal_bonus ---------------------------------
if ($u->info['animal'] > 0) {
$a = mysql_fetch_array(
mysql_query(
'SELECT * FROM `users_animal` WHERE `uid` = "' . $u->info['id'] . '" AND `id` = "' . $u->info['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
)
);
if (isset($a['id'])) {
if ($a['eda'] >= 1) {
$anl = mysql_fetch_array(
mysql_query(
'SELECT `bonus` FROM `levels_animal` WHERE `type` = "' . $a['type'] . '" AND `level` = "' . $a['level'] . '" LIMIT 1'
)
);
$anl = $anl['bonus'];
$tpa = [1 => 'cat', 2 => 'owl', 3 => 'wisp', 4 => 'demon', 5 => 'dog', 6 => 'pig', 7 => 'dragon'];
$tpa2 = [1 => 'Кота', 2 => 'Совы', 3 => 'Светляка', 4 => 'Чертяки', 5 => 'Пса', 6 => 'Свина', 7 => 'Дракона'];
$tpa3 = [1 => 'Кошачья Ловкость', 2 => 'Интуиция Совы', 3 => 'Сила Стихий', 4 => 'Демоническая Сила', 5 => 'Друг', 6 => 'Полная Броня', 7 => 'Инферно'];
mysql_query(
'UPDATE `eff_users` SET `delete`="' . time() . '" WHERE `uid` = "' . $u->info['id'] . '" AND `overType` = 100 AND `delete` = 0'
);
mysql_query(
'INSERT INTO `eff_users` (`hod`,`v2`,`img2`,`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`v1`,`user_use`) VALUES ("-1","201","summon_pet_' . $tpa[$a['type']] . '.gif",22,"' . $u->info['id'] . '","' . $tpa3[$a['type']] . ' [' . $a['level'] . ']","' . $anl . '","100","77","priem","' . $u->info['id'] . '")'
);
if ($a['type'] == 6) {
if ($a['level'] == 1 || $a['level'] == 2 || $a['level'] == 3) {
$zhp = 50;
} elseif ($a['level'] == 4) {
$zhp = 75;
} elseif ($a['level'] == 5 || $a['level'] == 6) {
$zhp = 125;
} elseif ($a['level'] == 7 || $a['level'] == 8) {
$zhp = 150;
} elseif ($a['level'] == 9) {
$zhp = 200;
} elseif ($a['level'] == 10) {
$zhp = 300;
} else {
$zhp = 0;
}
$u->info['hpNow'] += $zhp;
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $u->info['hpNow'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
);
}
} else {
$cmsg = new ChatMessage();
$cmsg->setRoom($u->info['room']);
$cmsg->setCity($u->info['city']);
$cmsg->setTo($u->info['login']);
$cmsg->setText('<strong>' . $a['name'] . '</strong> нуждается в еде...');
$cmsg->setType(6);
(new Chat())->sendMsg($cmsg);
}
}
}
// Бафф Зверя animal_bonus ---------------------------------
$ltm = [1 => 2, 2 => 1];
mysql_query(
'UPDATE `stats` SET `hpNow` = "' . $uid1st['hpNow'] . '",`mpNow` = "' . $uid1st['mpNow'] . '",`team`="' . $ltm[$tm] . '",`tactic7`="' . (0 + $uid1st['tactic7']) . '" WHERE `id` = "' . $uid1 . '" LIMIT 1'
);
$good = $btl;
unset($uid1st);
if ($bsid != 0) {
$bs = mysql_fetch_array(
mysql_query('SELECT * FROM `bs_turnirs` WHERE `id` = "' . $u->info['inTurnir'] . '" LIMIT 1')
);
if ($u->info['sex'] == 0) {
$text = '<img src="//img.new-combats.tech/i/items/atackk.gif" /> {u1} вмешался в поединок против {u2} <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
} else {
$text = '<img src="//img.new-combats.tech/i/items/atackk.gif" /> {u1} вмешалась в поединок против {u2} <a target=_blank href=/logs.php?log=' . $btl_id . ' >»»</a>';
}
$usr_real = mysql_fetch_array(
mysql_query(
'SELECT `id`, `login`, `align`, `clan`, `battle`, `level` FROM `users` WHERE `inUser` = "' . $usr['id'] . '" LIMIT 1'
)
);
if (!isset($usr_real['id'])) {
$usr_real = $usr;
}
if (isset($usr_real['id'])) {
$usrreal = '';
if ($usr_real['align'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/align/align' . $usr_real['align'] . '.gif width=12 height=15 >';
}
if ($usr_real['clan'] > 0) {
$usrreal .= '<img src=//img.new-combats.tech/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
}
$usrreal .= '<b>' . $usr_real['login'] . '</b>[' . $usr_real['level'] . ']<a target=_blank href=/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else {
$mereal = '<i>Невидимка</i>[??]';
}
$me_real = mysql_fetch_array(
mysql_query(
'SELECT `id`,`login`,`align`,`clan`,`battle`,`level` FROM `users` WHERE `inUser` = "' . $u->info['id'] . '" AND `login` = "' . $u->info['login'] . '" LIMIT 1'
)
);
if (isset($me_real['id'])) {
$mereal = '';
if ($me_real['align'] > 0) {
$mereal .= '<img src=//img.new-combats.tech/i/align/align' . $me_real['align'] . '.gif width=12 height=15 >';
}
if ($me_real['clan'] > 0) {
$mereal .= '<img src=//img.new-combats.tech/i/clan/' . $me_real['clan'] . '.gif width=24 height=15 >';
}
$mereal .= '<b>' . $me_real['login'] . '</b>[' . $me_real['level'] . ']<a target=_blank href=/info/' . $me_real['id'] . ' ><img width=12 hiehgt=11 src=//img.new-combats.tech/i/inf_capitalcity.gif ></a>';
} else {
$mereal = '<i>Невидимка</i>[??]';
}
$text = str_replace('{u1}', $mereal, $text);
$text = str_replace('{u2}', $usrreal, $text);
mysql_query(
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
"1", "' . mysql_real_escape_string($text) . '", "' . time() . '", "' . $bs['id'] . '", "' . $bs['count'] . '", "' . $bs['city'] . '",
"' . round($bs['money'] * 0.85, 2) . '","' . $i . '")'
);
unset($text, $usrreal, $mereal, $usr_real, $me_real);
}
}
}
return $good;
}
//Проверка травмы
private static function canAttack8Level($attacker, $target): bool
{
$aSum = self::getDressedEkrTotalPrice($attacker);
$tRange = Math::get20PercentRange(self::getDressedEkrTotalPrice($target));
return $aSum >= $tRange['min'] && $aSum <= $tRange['max'];
}
private static function getDressedEkrTotalPrice($uid)
{
return Db::getValue('select sum(2price) from items_users where inOdet > 0 and uid = ?', [$uid]);
}
public function testTravma(int $uid, $vals): bool
{
$v1 = Db::getValue('select v1 from eff_users where id_eff = 4 and uid = ? and `delete` = 0 and v1 >= ?', [$uid, $vals]);
return intval($v1) >= intval($vals);
}
//создаем нападение на персонажа
public function inBattleLog($txt, $usr = null)
{
global $u;
$lastHOD = Db::getRow('select id_hod, type from battle_logs where battle = ? order by id_hod desc limit 1', [$u->info['battle']]);
if (!$lastHOD) {
return;
}
$idTurn = $lastHOD['id_hod'];
if ($lastHOD['type'] != 6) {
$idTurn++;
}
$sql = 'insert into battle_logs (time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type) values (unix_timestamp(),?,?,?,?,?,?,?,?,6)';
$args = [
$u->info['battle'],
$idTurn,
$txt,
"login1={$u->info['login']}||t1={$u->info['team']}||login2={$usr['login']}||t2={$usr['team']}||time1=" . time(),
'',
'',
'',
'',
];
Db::sql($sql, $args);
}
}