attack = new Attack($this); } 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 = Conversion::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 = 'Каст "' . $itm['name'] . '" сгорел'; $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' ); Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory":(КАСТ СГОРЕЛ) Персонаж использовал "' . $itm['name'] . '" (' . $us[1] . ') [itm:' . $itm['id'] . '].', ); } elseif (isset($st['usefromfile'])) { //используем заклятие $st = Conversion::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.
'; } else { $u->error = 'Ваше здоровье и так полностью восстановлено
'; $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.
'; } 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' ); Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory": Персонаж использовал эликсир "' . $itm['name'] . '" (+' . $use['moment_hp'] . ' HP) [itm:' . $itm['id'] . '].', ); $this->youuse++; $u->error = 'Вы успешно использовали эликсир "' . $itm['name'] . '"
' . $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->addEffect($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' ); Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory": Персонаж использовал эликсир "' . $itm['name'] . '" (' . $us[1] . ') [itm:' . $itm['id'] . '].', ); $this->youuse++; $u->error = 'Вы успешно использовали эликсир "' . $itm['name'] . '"
' . $us[1] . ''; } else { $u->error = 'Не удалось использовать "' . $itm['name'] . '"'; } } else { $u->error = 'Не удалось использовать "' . $itm['name'] . '"'; } } } //--------------- } elseif ($itm['type'] == 29) { //используем заклятие $st = Conversion::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 = '' . $txt . ''; if ($u->info['sex'] == 1) { $txt = 'Хитрая {u1} бросила кусок снега в {u2}. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']'; } else { $txt = 'Хитрый {u1} бросил кусок снега в {u2}. ' . $txt . ' [' . $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 . ' "' . $u->info['login'] . '" бросил' . $sx2 . ' кусок снега в "' . $usr['login'] . '". -1000 [' . 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]] "' . $u->info['login'] . '" использовал' . $sx . ' магию нападения на персонажа "' . $usr['login'] . '".'; $cmsg->setText($rtxt); $cmsg->setType(11); $chat->sendMsg($cmsg); //напали, обновляем экран die(''); } else { if ($u->error == '') { $u->error = 'Не удалось напасть на персонажа...'; } } } } elseif ($itm['magic_inci'] == 'cureHP') { //Реген НР,MP $po = Conversion::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 = '' . $txt . ''; if ($u->info['id'] == $usr['id']) { if ($u->info['sex'] == 1) { $txt = '{u1} использовала "' . $itm['name'] . '" на себя. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']'; } else { $txt = '{u1} использовал "' . $itm['name'] . '" на себя. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']'; } } else { if ($u->info['sex'] == 1) { $txt = '{u1} использовала "' . $itm['name'] . '" на {u2}. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['hpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['hpAll'] . ']'; } else { $txt = '{u1} использовал "' . $itm['name'] . '" на {u2}. ' . $txt . ' [' . $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 = 'Свиток "' . $itm['name'] . '" был успешно использован.'; } 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 = 'Свиток "' . $itm['name'] . '" был успешно использован.'; $rtxt = '[img[items/' . $itm['img'] . ']] Персонаж "' . $u->info['login'] . '" использовал' . $sx2 . ' "' . $itm['name'] . '" на "' . $usr['login'] . '".'; $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 = Conversion::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 = '' . $txt . ''; if ($u->info['id'] == $usr['id']) { if ($u->info['sex'] == 1) { $txt = '{u1} использовала "' . $itm['name'] . '" на себя. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)'; } else { $txt = '{u1} использовал "' . $itm['name'] . '" на себя. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)'; } } else { if ($u->info['sex'] == 1) { $txt = '{u1} использовала "' . $itm['name'] . '" на {u2}. ' . $txt . ' [' . $btl->stats[$btl->uids[$usr['id']]]['mpNow'] . '/' . $btl->stats[$btl->uids[$usr['id']]]['mpAll'] . '] (Мана)'; } else { $txt = '{u1} использовал "' . $itm['name'] . '" на {u2}. ' . $txt . ' [' . $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 = 'Свиток "' . $itm['name'] . '" был успешно использован.'; } 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 = 'Свиток "' . $itm['name'] . '" был успешно использован.'; $rtxt = '[img[items/' . $itm['img'] . ']] Персонаж "' . $u->info['login'] . '" использовал' . $sx2 . ' "' . $itm['name'] . '" на "' . $usr['login'] . '".'; $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 = '"Легкой травмы"'; $text_msg2 = 'легких'; } elseif ($itm['magic_inci'] == 'lech_2') { $type_lechenie = 2; // тип травмы котору лечим $text_msg = '"Средней травмы"'; $text_msg2 = 'средних'; } elseif ($itm['magic_inci'] == 'lech_3') { $type_lechenie = 3; // тип травмы котору лечим $text_msg = '"Тяжелой травмы"'; $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]] Лекарь "' . $u->info['login'] . '" кинул цепь исцеления на игрока "' . $usr['login'] . '".'; $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]] Лекари "' . $u->info['login'] . $it_users . '" вылечили от ' . $text_msg . ' игрока "' . $usr['login'] . '".'; $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 = 'Вы присоединились к цепи исцеления для "' . $text_msg . '" (исцеление ' . $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 = 'Вы создали цепь исцеления для "' . $text_msg . '" (исцеление ' . $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]] Лекарь "' . $u->info['login'] . '" кинул цепь исцеления на игрока "' . $usr['login'] . '".'; $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 = '"Легкой травмы"'; $text_msg2 = 'легких'; } elseif ($itm['magic_inci'] == 'lech_free_2') { $type_lechenie = 2; // тип травмы котору лечим $text_msg = '"Средней травмы"'; $text_msg2 = 'средних'; } elseif ($itm['magic_inci'] == 'lech_free_3') { $type_lechenie = 3; // тип травмы котору лечим $text_msg = '"Тяжелой травмы"'; $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]] Лекари "' . $u->info['login'] . $it_users . '" вылечили от ' . $text_msg . ' игрока "' . $usr['login'] . '".'; $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 = 'Вы присоединились к цепи исцеления для "' . $text_msg . '" (исцеление ' . $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 = 'Вы создали цепь исцеления для "' . $text_msg . '" (исцеление ' . $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]] Лекарь "' . $u->info['login'] . '" кинул цепь исцеления на игрока "' . $usr['login'] . '".'; $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 = 'Персонаж ' . User::getLogin($usr['id']) . ' находится в Общежитии!'; } 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} переманил клона {u2} на свою сторону.'; } else { $txt_m = '{u1} переманила клона {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 = 'Вы успешно использовали заклинание "' . $itm['name'] . '" на "' . $usr['login'] . '"'; } else { $u->error = 'Вы не можете переманивать данного персонажа...'; } } elseif ($goodUse == 1) { $us = $this->addEffect($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']) { Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory": Персонаж использовал заклинание "' . $itm['name'] . '" (' . $us[1] . ') на персонажа "' . $usr['login'] . '" (id' . $usr['id'] . ') [itm:' . $itm['id'] . '].', ); Delo::add( 1, 'System.inventory', $usr['id'], '"System.inventory": Персонаж "' . $u->info['login'] . '" (id' . $u->info['id'] . ') использовал заклинание "' . $itm['name'] . '" (' . $us[1] . ') на персонажа [itm:' . $itm['id'] . '].', ); $u->error = 'Вы успешно использовали заклинание "' . $itm['name'] . '" на персонажа "' . $usr['login'] . '"
' . $us[1] . ''; } else { Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory": Персонаж использовал заклинание "' . $itm['name'] . '" (' . $us[1] . ') на персонажа самого себя [itm:' . $itm['id'] . '].', ); $u->error = 'Вы успешно использовали заклинание "' . $itm['name'] . '" на самого себя
' . $us[1] . ''; } // if ($usr['battle'] > 0) { //Заносим в лог $txt_m = ''; if ($u->info['sex'] == 0) { if ($u->info['id'] != $usr['id']) { $txt_m .= '{u1} воспользовался магией "' . $itm['name'] . '" на {u2}.'; } else { $txt_m .= '{u1} воспользовался магией "' . $itm['name'] . '" на себя.'; } } else { if ($u->info['id'] != $usr['id']) { $txt_m .= '{u1} воспользовалась магией "' . $itm['name'] . '" на {u2}.'; } else { $txt_m .= '{u1} воспользовалась магией "' . $itm['name'] . '" на себя.'; } } $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->addEffect($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->addEffect($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->addEffect($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->addEffect($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'] . ']] "' . $u->info['login'] . '" использовала "' . $itm['name'] . ' Саныча" и получила эффект ' . $echotext . ' травмы.'; } else { $rtxt = '[img[items/' . $itm['img'] . ']] "' . $u->info['login'] . '" использовал "' . $itm['name'] . ' Саныча" и получил эффект ' . $echotext . ' травмы.'; } } else { $u->error = 'Задержка использования ' . Conversion::secondsToTimeout( ($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 = 'Вы успешно использовали "' . $itm['name'] . '"'; $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} использовала "' . $itm['name'] . ' Саныча".'); } else { $this->inBattleLog('{u1} использовал "' . $itm['name'] . ' Саныча".'); } 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 = 'Задержка использования ' . Conversion::secondsToTimeout(($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 = 'Вы успешно использовали "' . $itm['name'] . '" на ' . $usr['login'] . ''; if ($u->info['sex'] == 1) { $this->inBattleLog( '{u1} использовала "' . $itm['name'] . ' Саныча" на {u2}.', $usr ); } else { $this->inBattleLog( '{u1} использовал "' . $itm['name'] . ' Саныча" на {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 = 'Задержка использования ' . Conversion::secondsToTimeout( ($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} использовал "' . $itm['name'] . '" и породил клона.'; } else { $txt_m = '{u1} использовала "' . $itm['name'] . '" и породила клона.'; } $this->inBattleLog($txt_m, null); if ($u->info['sex'] == 0) { $txt_m = '' . $u->info['login'] . ' (клон ' . $bot_cou . ')[' . $u->info['level'] . '] вмешался в поединок!'; } else { $txt_m = '' . $u->info['login'] . ' (клон ' . $bot_cou . ')[' . $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 = 'Заклятие "' . $itm['name'] . '" было успешно использовано'; } 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} применил заклинание "' . $itm['name'] . '".'; } else { $txt_m = '{u1} применила заклинание "' . $itm['name'] . '".'; } $this->inBattleLog($txt_m, null); mysql_query( 'UPDATE `items_users` SET `iznosNOW` = "' . ($itm['iznosNOW'] + 1) . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1' ); $u->error = 'Заклятие "' . $itm['name'] . '" было успешно использовано'; } } 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'] . '" и помните - "Мы в ответе за тех, кого приручили".'; $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' ); } Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory": Персонаж использовал заклинание "' . $itm['name'] . '" (' . $us[1] . ') [itm:' . $itm['id'] . '].', ); } else { $u->error = 'Не удалось использовать "' . $itm['name'] . '", что-то здесь не так ...'; } } } elseif ($goodUse == 1) { if ($itm['magic_inc'] == '') { $itm['magic_inc'] = $itm['magic_inci']; } $us = $this->addEffect($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' ); } Delo::add( 1, 'System.inventory', $u->info['id'], '"System.inventory": Персонаж использовал заклинание "' . $itm['name'] . '" (' . $us[1] . ') [itm:' . $itm['id'] . '].', ); $this->youuse++; $u->error = 'Вы успешно использовали заклинание "' . $itm['name'] . '"
' . $us[1] . ''; } else { if ($u->error != '') { $u->error = 'Не удалось использовать "' . $itm['name'] . '"...
' . $u->error; } else { $u->error = 'Не удалось использовать "' . $itm['name'] . '"...'; } } } else { if ($u->error != '') { $u->error = 'Не удалось использовать "' . $itm['name'] . '"
' . $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 addEffect($uid, $id, $isNo = null): array { return Effects::addById($uid, $id, (bool)$isNo) ? [1, '...'] : [0, '']; } public function atackUser($uid1, $uid2, $tm, $btl, $addExp = 0, $type = 0) { return $this->attack->atackUser($uid1, $uid2, $tm, $btl, $addExp, $type); } //Проверка травмы private 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); } //создаем нападение на персонажа 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); } }