diff --git a/_incl_data/class/Battle.php b/_incl_data/class/Battle.php index e7191db3..e3a2c451 100644 --- a/_incl_data/class/Battle.php +++ b/_incl_data/class/Battle.php @@ -1,8 +1,11 @@ 6, 'серая' => 7, ]; - public array $prm = [ - /* - act: 1 - когда персонаж получает повреждение - 2 - когда персонаж наносит удар - type_of: 1 - уворот - 2 - крит - 3 - атака - 4 - защита - 5 - прочее - */ + /** + * act: 1 - когда персонаж получает повреждение + * 2 - когда персонаж наносит удар + * + * type_of: 1 - уворот + * 2 - крит + * 3 - атака + * 4 - защита + * 5 - прочее + * @var array|array[] + */ + private array $prm = [ 1 => ['name' => 'Прикрыться', 'act' => 1, 'type_of' => 5], 2 => ['name' => 'Вломить', 'act' => 2, 'type_of' => 3], 4 => ['name' => 'Сильный удар', 'act' => 2, 'type_of' => 3], @@ -94,208 +99,129 @@ class Battle 343 => ['name' => 'Натиск', 'act' => 0, 'type_of' => 0], 237 => ['name' => 'Разведка боем', 'act' => 2, 'type_of' => 3], 239 => ['name' => 'Поступь смерти', 'act' => 2, 'type_of' => 3], - 240 => ['name' => 'Хлебнуть крови', 'act' => 2, 'type_of' => 5] - , - 21 => ['name' => 'Оледенение [4]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 73 => ['name' => 'Оледенение [5]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 74 => ['name' => 'Оледенение [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 75 => ['name' => 'Оледенение [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 76 => ['name' => 'Оледенение [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 77 => ['name' => 'Оледенение [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 78 => ['name' => 'Оледенение [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 79 => ['name' => 'Оледенение [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 22 => ['name' => 'Отравление [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 80 => ['name' => 'Отравление [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 81 => ['name' => 'Отравление [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 82 => ['name' => 'Отравление [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 83 => ['name' => 'Отравление [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 84 => ['name' => 'Отравление [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 36 => ['name' => 'Регенерация [5]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 85 => ['name' => 'Регенерация [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 86 => ['name' => 'Регенерация [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 87 => ['name' => 'Регенерация [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 88 => ['name' => 'Регенерация [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 89 => ['name' => 'Регенерация [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 90 => ['name' => 'Регенерация [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 23 => ['name' => 'Ядовитое Облако [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 70 => ['name' => 'Ядовитое Облако [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 71 => ['name' => 'Ядовитое Облако [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 72 => ['name' => 'Ядовитое Облако [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 269 => ['name' => 'Иней [8]', 'act' => 2, 'type_of' => 9] - , - 276 => ['name' => 'Иней [9]', 'act' => 2, 'type_of' => 9] - , - 277 => ['name' => 'Иней [10]', 'act' => 2, 'type_of' => 9] - , - 270 => ['name' => 'Духи Льда', 'act' => 2, 'type_of' => 5, 'type_sec' => 5] - , - 280 => ['name' => 'Хватка Льда', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 281 => ['name' => 'Жертва Воде', 'act' => 2, 'type_of' => 5] - , + 240 => ['name' => 'Хлебнуть крови', 'act' => 2, 'type_of' => 5], + 21 => ['name' => 'Оледенение [4]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 73 => ['name' => 'Оледенение [5]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 74 => ['name' => 'Оледенение [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 75 => ['name' => 'Оледенение [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 76 => ['name' => 'Оледенение [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 77 => ['name' => 'Оледенение [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 78 => ['name' => 'Оледенение [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 79 => ['name' => 'Оледенение [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 22 => ['name' => 'Отравление [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 80 => ['name' => 'Отравление [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 81 => ['name' => 'Отравление [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 82 => ['name' => 'Отравление [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 83 => ['name' => 'Отравление [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 84 => ['name' => 'Отравление [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 36 => ['name' => 'Регенерация [5]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 85 => ['name' => 'Регенерация [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 86 => ['name' => 'Регенерация [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 87 => ['name' => 'Регенерация [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 88 => ['name' => 'Регенерация [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 89 => ['name' => 'Регенерация [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 90 => ['name' => 'Регенерация [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 23 => ['name' => 'Ядовитое Облако [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 70 => ['name' => 'Ядовитое Облако [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 71 => ['name' => 'Ядовитое Облако [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 72 => ['name' => 'Ядовитое Облако [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 269 => ['name' => 'Иней [8]', 'act' => 2, 'type_of' => 9], + 276 => ['name' => 'Иней [9]', 'act' => 2, 'type_of' => 9], + 277 => ['name' => 'Иней [10]', 'act' => 2, 'type_of' => 9], + 270 => ['name' => 'Духи Льда', 'act' => 2, 'type_of' => 5, 'type_sec' => 5], + 280 => ['name' => 'Хватка Льда', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 281 => ['name' => 'Жертва Воде', 'act' => 2, 'type_of' => 5], 282 => ['name' => 'Ледяное Спасение', 'act' => 2, 'type_of' => 5], - 24 => ['name' => 'Медитация', 'act' => 2, 'type_of' => 0, 'moment' => 3] - , - 210 => ['name' => 'Магический Барьер [4]', 'act' => 2, 'type_of' => 8] - , - 209 => ['name' => 'Магический Барьер [7]', 'act' => 2, 'type_of' => 8] - , - 208 => ['name' => 'Магический Барьер [8]', 'act' => 2, 'type_of' => 8] - , - 207 => ['name' => 'Магический Барьер [9]', 'act' => 2, 'type_of' => 8] - , - 206 => ['name' => 'Магический Барьер [10]', 'act' => 2, 'type_of' => 8] - , - 284 => ['name' => 'Магический Барьер [11]', 'act' => 2, 'type_of' => 8] - , - 175 => ['name' => 'Магический Барьер [7]', 'act' => 2, 'type_of' => 8] - , - 176 => ['name' => 'Магический Барьер [8]', 'act' => 2, 'type_of' => 8] - , - 177 => ['name' => 'Магический Барьер [9]', 'act' => 2, 'type_of' => 8] - , - 178 => ['name' => 'Магический Барьер [10]', 'act' => 2, 'type_of' => 8] - , - 179 => ['name' => 'Магический Барьер [11]', 'act' => 2, 'type_of' => 8] - , - 42 => ['name' => 'Метеорит [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 121 => ['name' => 'Метеорит [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 122 => ['name' => 'Метеорит [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 123 => ['name' => 'Метеорит [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 124 => ['name' => 'Метеорит [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 125 => ['name' => 'Метеорит [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 249 => ['name' => 'Каменный Щит', 'act' => 2, 'type_of' => 4] - , - 248 => ['name' => 'Песчаный Щит', 'act' => 2, 'type_of' => 4] - , - 251 => ['name' => 'Заземление: Плюс', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 252 => ['name' => 'Заземление: Минус', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 273 => ['name' => 'Туманный Образ [10]', 'act' => 1, 'type_of' => 4] - , - 286 => ['name' => 'Туманный Образ [9]', 'act' => 1, 'type_of' => 4] - , - 287 => ['name' => 'Туманный Образ [8]', 'act' => 1, 'type_of' => 4] - , - 288 => ['name' => 'Туманный Образ [7]', 'act' => 1, 'type_of' => 4] - , - 255 => ['name' => 'Воздушный Щит', 'act' => 2, 'type_of' => 8] - , - 337 => ['name' => 'Выпить Душу', 'act' => 2, 'type_of' => 5] - , - 33 => ['name' => 'Пожирающее Пламя [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 56 => ['name' => 'Пожирающее Пламя [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 57 => ['name' => 'Пожирающее Пламя [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 58 => ['name' => 'Пожирающее Пламя [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 59 => ['name' => 'Пожирающее Пламя [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 60 => ['name' => 'Пожирающее Пламя [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 245 => ['name' => 'Огненный Щит', 'act' => 2, 'type_of' => 9] - , - 327 => ['name' => 'Живая Вода', 'act' => 2, 'type_of' => 0, 'moment' => 3] - , - 328 => ['name' => 'Сушеный Мухомор', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 329 => ['name' => 'Мешочек Пыли', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 330 => ['name' => 'Отвар когтей ПГ', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 331 => ['name' => 'Отвар Василиска', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 332 => ['name' => 'Точильный Камень', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 333 => ['name' => 'Волшебный Эликсир', 'act' => 2, 'type_of' => 0, 'moment' => 3] - , - 334 => ['name' => 'Цепь Защитника', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , + 24 => ['name' => 'Медитация', 'act' => 2, 'type_of' => 0, 'moment' => 3], + 210 => ['name' => 'Магический Барьер [4]', 'act' => 2, 'type_of' => 8], + 209 => ['name' => 'Магический Барьер [7]', 'act' => 2, 'type_of' => 8], + 208 => ['name' => 'Магический Барьер [8]', 'act' => 2, 'type_of' => 8], + 207 => ['name' => 'Магический Барьер [9]', 'act' => 2, 'type_of' => 8], + 206 => ['name' => 'Магический Барьер [10]', 'act' => 2, 'type_of' => 8], + 284 => ['name' => 'Магический Барьер [11]', 'act' => 2, 'type_of' => 8], + 175 => ['name' => 'Магический Барьер [7]', 'act' => 2, 'type_of' => 8], + 176 => ['name' => 'Магический Барьер [8]', 'act' => 2, 'type_of' => 8], + 177 => ['name' => 'Магический Барьер [9]', 'act' => 2, 'type_of' => 8], + 178 => ['name' => 'Магический Барьер [10]', 'act' => 2, 'type_of' => 8], + 179 => ['name' => 'Магический Барьер [11]', 'act' => 2, 'type_of' => 8], + 42 => ['name' => 'Метеорит [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 121 => ['name' => 'Метеорит [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 122 => ['name' => 'Метеорит [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 123 => ['name' => 'Метеорит [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 124 => ['name' => 'Метеорит [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 125 => ['name' => 'Метеорит [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 249 => ['name' => 'Каменный Щит', 'act' => 2, 'type_of' => 4], + 248 => ['name' => 'Песчаный Щит', 'act' => 2, 'type_of' => 4], + 251 => ['name' => 'Заземление: Плюс', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 252 => ['name' => 'Заземление: Минус', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 273 => ['name' => 'Туманный Образ [10]', 'act' => 1, 'type_of' => 4], + 286 => ['name' => 'Туманный Образ [9]', 'act' => 1, 'type_of' => 4], + 287 => ['name' => 'Туманный Образ [8]', 'act' => 1, 'type_of' => 4], + 288 => ['name' => 'Туманный Образ [7]', 'act' => 1, 'type_of' => 4], + 255 => ['name' => 'Воздушный Щит', 'act' => 2, 'type_of' => 8], + 337 => ['name' => 'Выпить Душу', 'act' => 2, 'type_of' => 5], + 33 => ['name' => 'Пожирающее Пламя [6]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 56 => ['name' => 'Пожирающее Пламя [7]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 57 => ['name' => 'Пожирающее Пламя [8]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 58 => ['name' => 'Пожирающее Пламя [9]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 59 => ['name' => 'Пожирающее Пламя [10]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 60 => ['name' => 'Пожирающее Пламя [11]', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 245 => ['name' => 'Огненный Щит', 'act' => 2, 'type_of' => 9], + 327 => ['name' => 'Живая Вода', 'act' => 2, 'type_of' => 0, 'moment' => 3], + 328 => ['name' => 'Сушеный Мухомор', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 329 => ['name' => 'Мешочек Пыли', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 330 => ['name' => 'Отвар когтей ПГ', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 331 => ['name' => 'Отвар Василиска', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 332 => ['name' => 'Точильный Камень', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 333 => ['name' => 'Волшебный Эликсир', 'act' => 2, 'type_of' => 0, 'moment' => 3], + 334 => ['name' => 'Цепь Защитника', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], 335 => [ 'name' => 'Эликсир Безумного Критовика', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3, - ] - , - 299 => ['name' => 'Ядовитые язвы', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 300 => ['name' => 'Элементарный заряд', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 301 => ['name' => 'Темное ранение', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 302 => ['name' => 'Подлечиться', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , - 303 => ['name' => 'Шкура поглощения', 'act' => 2, 'type_of' => 4] - , - 304 => ['name' => 'Особенное проклятье!', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3] - , + ], + 299 => ['name' => 'Ядовитые язвы', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 300 => ['name' => 'Элементарный заряд', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 301 => ['name' => 'Темное ранение', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 302 => ['name' => 'Подлечиться', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], + 303 => ['name' => 'Шкура поглощения', 'act' => 2, 'type_of' => 4], + 304 => ['name' => 'Особенное проклятье!', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], 305 => ['name' => 'Кровожадность', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3], ]; public bool $cached = false; //Кэширование данных - public int $expCoef = 0; # % опыта в бою - public int $aBexp = 0; //Добавочный опыт в боях + private int $expCoef = 0; # % опыта в бою + private int $aBexp = 0; //Добавочный опыт в боях public int $mainStatus = 1; //Отображаем главное окно (1 - можно бить, 2 - ожидаем ход противника, 3 - Проиграли. Ожидаем завершения поединка) public array $info = []; //Информация о поединке - public $users; //Информация о пользователях в этом бою + public array $users = []; //Информация о пользователях в этом бою public array $stats = []; //Информация о статах пользователей в этом бою public array $uids = []; //Список пользователей и их id в stats или users пример id пользователя = 555 , то $uids[555] выдаст его порядковый номер в массиве users \ stats public array $atacks = []; //Список ударов в этом бою (действующих) public array $ga = []; //Список uid кто нанес удар и по кому $ga[ {id кто ударил} ][ {id кого ударил} ] - public array $ag = []; //Список uid кто нанес удар и по кому $ga[ {id кого ударили} ][ {id кто ударил} ] - public int $na = 1; //возможность использовать удар - public int $nm = 1; //возможность использовать заклятия + private array $ag = []; //Список uid кто нанес удар и по кому $ga[ {id кого ударили} ][ {id кто ударил} ] public int $hodID = 0; - public int|array $stnZbVs = 0; - public array $bots = []; // ID ботов - public array $iBots = []; // i бота - public array $stnZb = []; + private int|array $stnZbVs = 0; + private array $bots = []; // ID ботов + private array $iBots = []; // i бота + private array $stnZb = []; /** Выбранные зоны атаки и блока. * @var array */ - public array $uAtc = [ + private array $uAtc = [ 'id' => 0, 'a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0], 'b' => 0, ]; //Если игрок нанес удар - public array $lg_itm = [ + + /** + * Чем лупили + * @var array|array[] + */ + private array $lgItm = [ 0 => [ 'грудью', 'ребром руки', @@ -321,8 +247,13 @@ class Battle ], 5 => ['сучковатой палкой', 'посохом', 'тяжелой тростью', 'корявым посохом', 'основанием посоха'], 22 => ['костылем'], - ]; // Чем лупили - public array $lg_zon = [ + ]; + + /** + * Куда лупили + * @var array|array[] + */ + private array $lgZon = [ 1 => [ 'в нос', 'в глаз', @@ -338,21 +269,24 @@ class Battle 3 => ['в бок', 'по желудку', 'по левой руке', 'по правой руке'], 4 => ['по <вырезано цензурой>', 'в пах', 'в промежность', 'по левой ягодице', 'по правой ягодице'], 5 => ['по ногам', 'в область правой пятки', 'в область левой пятки', 'по коленной чашечке', 'по икрам'], - ]; // Куда лупили - public string $e; //Ошибка (текст) + ]; + + /** + * Ошибка (текст) + * @var string + */ + public string $e; public array $is = []; public array $items = []; //Очистка кэша для ... - public array $uclearc = []; - public array $ucleari = []; - public array $ainm = []; + private array $uclearc = []; + private array $ucleari = []; + private array $ainm = []; public array $rehodeff = []; - public array $poglast = []; - public array $prlog = []; + private array $poglast = []; public array $um_priem = []; - // - public int $import_user = 0; + private int $importUser = 0; public array $pr_not_use = []; public array $del_val = []; @@ -447,10 +381,10 @@ class Battle $this->stats[$this->uids[$uid]]['last_hp'] = -$hp; Db::sql( 'update stats set last_hp = ?, tactic7 = ? where id = ?', [ - $this->users[$this->uids[$uid]]['last_hp'], - $this->users[$this->uids[$uid]]['tactic7'], - $uid, - ] + $this->users[$this->uids[$uid]]['last_hp'], + $this->users[$this->uids[$uid]]['tactic7'], + $uid, + ] ); } @@ -468,7 +402,7 @@ class Battle * @param int $id * @return void */ - public function deleffm(int $pid, int $uid, int $id) + public function deleffm(int $pid, int $uid, int $id): void { if ($id > 0) { Db::sql('delete from eff_users where id = ? and v1 = ? and v2 != 0', [$id, 'priem']); @@ -479,7 +413,7 @@ class Battle //Проверяем завершение боя - public function clear_cache_start() + public function clear_cache_start(): void { $uids = implode(',', $this->ucleari); Db::sql('delete from battle_cache where uid in (?)', [$uids]); @@ -490,11 +424,11 @@ class Battle /** * Проверка урон приемов над защитными. * Игрок 1 бьет по Игроку 2 при помощи приема на hp ед. здоровья. - * @param $u2 - * @param $hp - * @return mixed + * @param $u2 + * @param array $hp + * @return array */ - public function testYronPriemAttack($u2, $hp) + public function testYronPriemAttack($u2, array $hp): array { //Получаем приемы и смотрим когда какой действует foreach ($this->stats[$this->uids[$u2]]['effects'] as $effect) { @@ -515,27 +449,25 @@ class Battle return $hp; } - public function takeYronNow($uid, $y): void + public function takeYronNow(int $uid, int|float $hpDamageValue): void { global $u; - if (!is_numeric($y) || !is_numeric($uid)) { - return; - } - (int)$y = floor($y); - $this->users[$this->uids[$uid]]['battle_yron'] += $y; - $this->stats[$this->uids[$uid]]['battle_yron'] += $y; + + (int)$hpDamageValue = floor($hpDamageValue); + $this->users[$this->uids[$uid]]['battle_yron'] += $hpDamageValue; + $this->stats[$this->uids[$uid]]['battle_yron'] += $hpDamageValue; if ($uid == $u->info['id']) { - $u->info['battle_yron'] += $y; - $u->stats['battle_yron'] += $y; + $u->info['battle_yron'] += $hpDamageValue; + $u->stats['battle_yron'] += $hpDamageValue; } - Db::sql('update stats set battle_yron = battle_yron + ? where id = ?', [$y, $uid]); + Db::sql('update stats set battle_yron = battle_yron + ? where id = ?', [$hpDamageValue, $uid]); } - public function myInfo($id, $t) + public function myInfo($id, $t): string { global $u; if (!isset($this->users[$this->uids[$id]]) && $u->info['id'] != $id) { - return false; + return ''; } if ($u->info['id'] == $id || ($u->info['enemy'] == $id && $id > 0)) { //Всегда обновляем @@ -553,30 +485,38 @@ class Battle $st = $this->stats[$this->uids[$id]]; $itm = $this->stats[$this->uids[$id]]['items']; $eff = $this->stats[$this->uids[$id]]['effects']; - $ef = ''; $i = 0; + $img = Config::img(); + + $armor1 = '
Броня головы: '; + $armor2 = '
Броня корпуса: '; + $armor3 = '
Броня пояса: '; + $armor4 = '
Броня ног: '; + if ($u->info['seff'] < 1) { - $ef .= '
- Свернуть\',event,3,1,1,1,\'\');\" - onmouseout=\"top.hic();\" - onmousedown=\"top.hic();\"> -
'; + $ef = << + + + HTML; while ($i != -1) { $nseef = 0; - if ($this->users[$this->uids[$ur['id']]]['id'] != $u->info['id'] && $ur['id'] != 0) { - if ($this->stats[$this->uids[$ur['id']]]['seeAllEff'] != 1) { - $nseef = 1; - if ($eff[$i]['v1'] == 'priem') { - $eff[$i]['priem'] = Db::getRow('select * from priems where id = ?', [$eff[$i]['v2']]); + if ( + $this->users[$this->uids[$ur['id']]]['id'] != $u->info['id'] && + $ur['id'] != 0 && $this->stats[$this->uids[$ur['id']]]['seeAllEff'] != 1 + ) { + $nseef = 1; + if ($eff[$i]['v1'] == 'priem') { + $eff[$i]['priem'] = Db::getRow('select * from priems where id = ?', [$eff[$i]['v2']]); - } - if (isset($eff[$i]['priem']['id']) && $eff[$i]['priem']['neg'] == 1) { - $nseef = 0; - } + } + if (isset($eff[$i]['priem']['id']) && $eff[$i]['priem']['neg'] == 1) { + $nseef = 0; } } @@ -586,25 +526,19 @@ class Battle if ($eff[$i]['x'] > 1) { $ei .= ' x' . $eff[$i]['x'] . ' '; } - if ($eff[$i]['type1'] > 0 && $eff[$i]['type1'] < 7) { - $ei .= ' (Эликсир)'; - } elseif (($eff[$i]['type1'] > 6 && $eff[$i]['type1'] < 11) || $eff[$i]['type1'] == 16) { - $ei .= ' (Заклятие)'; - } elseif ($eff[$i]['type1'] == 14) { - $ei .= ' (Прием)'; - } elseif ($eff[$i]['type1'] == 15) { - $ei .= ' (Изучение)'; - } elseif ($eff[$i]['type1'] == 17) { - $ei .= ' (Проклятие)'; - } elseif ($eff[$i]['type1'] == 18 || $eff[$i]['type1'] == 19) { - $ei .= ' (Травма)'; - } elseif ($eff[$i]['type1'] == 20) { - $ei .= ' (Пристрастие)'; - } elseif ($eff[$i]['type1'] == 22) { - $ei .= ' (Ожидание)'; - } else { - $ei .= ' (Эффект)'; - } + + $ei .= match ($eff[$i]['type1']) { + 1, 2, 3, 4, 5, 6 => ' (Эликсир)', + 7, 8, 9, 10, 16 => ' (Заклятие)', + 14 => ' (Прием)', + 15 => ' (Изучение)', + 17 => ' (Проклятие)', + 18, 19 => ' (Травма)', + 20 => ' (Пристрастие)', + 22 => ' (Ожидание)', + default => ' (Эффект)' + }; + $ei .= '
'; $time_still = ($eff[$i]['timeUse'] + ($eff[$i]['timeAce'] - $eff[$i]['timeUse']) + $eff[$i]['actionTime']); @@ -625,11 +559,13 @@ class Battle } if ($eff[$i]['user_use'] != '') { + $str = '
Автор: %s'; if ($this->users[$this->uids[$eff[$i]['user_use']]]['login2'] != '') { - $ei .= '
Автор: ' . $this->users[$this->uids[$eff[$i]['user_use']]]['login2'] . ''; + $ei .= sprintf($str, $this->users[$this->uids[$eff[$i]['user_use']]]['login2']); } elseif ($this->users[$this->uids[$eff[$i]['user_use']]]['login'] != '') { - $ei .= '
Автор: ' . $this->users[$this->uids[$eff[$i]['user_use']]]['login'] . ''; + $ei .= sprintf($str, $this->users[$this->uids[$eff[$i]['user_use']]]['login']); } + unset($str); } //Действие эффекта @@ -644,53 +580,53 @@ class Battle if ($ed['add_' . $n] > 0) { $z = '+'; } - $tr .= '
' . $u->is[$n] . ': ' . $z . '' . $ed['add_' . $n]; + $tr .= '
' . $u->is[$n] . ': ' . $z . $ed['add_' . $n]; } $x++; } if ($ed['add_mib1'] != 0) { if ($ed['add_mab1'] != 0) { - $tr .= '
Броня головы: ' . $ed['add_mib1'] . '-' . $ed['add_mab1'] . ''; + $tr .= $armor1 . $ed['add_mib1'] . '-' . $ed['add_mab1']; } else { $m1l = $ed['add_mib1']; if ($m1l > 0) { $m1l = '+' . $m1l; } - $tr .= '
Броня головы: ' . $m1l . ''; + $tr .= $armor1 . $m1l; } } if ($ed['add_mib2'] != 0) { if ($ed['add_mab2'] != 0) { - $tr .= '
Броня корпуса: ' . $ed['add_mib2'] . '-' . $ed['add_mab2'] . ''; + $tr .= $armor2 . $ed['add_mib2'] . '-' . $ed['add_mab2']; } else { $m1l = $ed['add_mib2']; if ($m1l > 0) { $m1l = '+' . $m1l; } - $tr .= '
Броня корпуса: ' . $m1l . ''; + $tr .= $armor2 . $m1l; } } if ($ed['add_mib3'] != 0) { if ($ed['add_mab3'] != 0) { - $tr .= '
Броня пояса: ' . $ed['add_mib3'] . '-' . $ed['add_mab3'] . ''; + $tr .= $armor3 . $ed['add_mib3'] . '-' . $ed['add_mab3']; } else { $m1l = $ed['add_mib3']; if ($m1l > 0) { $m1l = '+' . $m1l; } - $tr .= '
Броня пояса: ' . $m1l . ''; + $tr .= $armor3 . $m1l; } } if ($ed['add_mib4'] != 0) { if ($ed['add_mab4'] != 0) { - $tr .= '
Броня ног: ' . $ed['add_mib4'] . '-' . $ed['add_mab4'] . ''; + $tr .= $armor4 . $ed['add_mib4'] . '-' . $ed['add_mab4']; } else { $m1l = $ed['add_mib4']; if ($m1l > 0) { $m1l = '+' . $m1l; } - $tr .= '
Броня ног: ' . $m1l . ''; + $tr .= $armor4 . $m1l; } } @@ -712,8 +648,15 @@ class Battle $ei .= '
Информация:
' . $eff[$i]['info']; } - $ef .= '
'; - unset($efix); + $efcol = $eff[$i]['x']; + $efimg = $eff[$i]['img']; + $ef .= << + + + HTML; + + unset($efix, $efcol, $efimg); } } elseif ($eff[$i] != 'delete') { $i = -2; @@ -721,27 +664,42 @@ class Battle $i++; } } else { - $ef .= '
Развернуть\',event,3,1,1,1,\'\');\" onmouseout=\"top.hic();\" onmousedown=\"top.hic();\">
'; + $ef = << + + + HTML; } + $ca = ''; + if ($ur['clan'] > 0) { - $cl = Db::getRow('select * from clan where id = ?', [$ur['clan']]); - if (isset($cl['id'])) { - $ca = ''; + $clanName = ClanInfo::getNameById($ur['clan']); + if (!empty($clanName)) { + $ca = "$clanName"; } } + if ($ur['align'] > 0) { - $ca = '' . $ca; + $ca = "Склонность $ca"; } + if ($ur['login2'] == '') { $ur['login2'] = $ur['login']; } + if (floor($st['hpNow']) > $st['hpAll']) { $st['hpNow'] = $st['hpAll']; } + if (floor($st['mpNow']) > $st['mpAll']) { $st['mpNow'] = $st['mpAll']; } + $stsua = '' . $ur['login2'] . ''; $stsua .= '
Сила: ' . $st['s1']; $stsua .= '
Ловкость: ' . $st['s2']; @@ -756,10 +714,10 @@ class Battle if ($st['s7'] != 0) { $stsua .= '
Духовность: ' . $st['s7']; } - if ($u->info['admin'] > 0) { + if ($u->isAdmin()) { $align = $ur['align']; } - $tp_img = [ + $tpImg = [ 1 => 4, 2 => 5, 14 => 6, @@ -786,8 +744,8 @@ class Battle if (is_array($itm)) { while ($i < count($itm)) { // - if (isset($st['items_img'][$tp_img[$itm[$i]['inOdet']]])) { - $itm[$i]['img'] = $st['items_img'][$tp_img[$itm[$i]['inOdet']]]; + if (isset($st['items_img'][$tpImg[$itm[$i]['inOdet']]])) { + $itm[$i]['img'] = $st['items_img'][$tpImg[$itm[$i]['inOdet']]]; } //генерируем предметы $ttl = '' . $itm[$i]['name'] . ''; @@ -795,46 +753,46 @@ class Battle $lvar = ''; if ($td['add_hpAll'] > 0) { $td['add_hpAll'] = '+' . $td['add_hpAll']; - $lvar .= '
Уровень жизни: ' . $td['add_hpAll'] . ''; + $lvar .= '
Уровень жизни: ' . $td['add_hpAll']; } if ($td['sv_yron_max'] > 0 || $td['sv_yron_min'] > 0) { - $lvar .= '
Урон: ' . (0 + $td['sv_yron_min']) . '-' . (0 + $td['sv_yron_max']) . ''; + $lvar .= '
Урон: ' . (0 + $td['sv_yron_min']) . '-' . (0 + $td['sv_yron_max']); } if ($td['add_mab1'] > 0) { - if ($td['add_mib1'] == $td['add_mab1'] && $pl['geniration'] == 1) { + if ($td['add_mib1'] == $td['add_mab1']) { $m1l = '+'; - $lvar .= '
Броня головы: ' . $m1l . '' . (0 + $td['add_mab1']) . ''; + $lvar .= $armor1 . $m1l . (0 + $td['add_mab1']); } else { - $lvar .= '
Броня головы: ' . (0 + $td['add_mib1']) . '-' . (0 + $td['add_mab1']) . ''; + $lvar .= $armor1 . (0 + $td['add_mib1']) . '-' . (0 + $td['add_mab1']); } } if ($td['add_mab2'] > 0) { - if ($td['add_mib2'] == $td['add_mab2'] && $pl['geniration'] == 1) { + if ($td['add_mib2'] == $td['add_mab2']) { $m1l = '+'; - $lvar .= '
Броня корпуса: ' . $m1l . '' . (0 + $td['add_mab2']) . ''; + $lvar .= $armor2 . $m1l . (0 + $td['add_mab2']); } else { - $lvar .= '
Броня корпуса: ' . (0 + $td['add_mib2']) . '-' . (0 + $td['add_mab2']) . ''; + $lvar .= $armor2 . (0 + $td['add_mib2']) . '-' . (0 + $td['add_mab2']); } } if ($td['add_mab3'] > 0) { - if ($td['add_mib3'] == $td['add_mab3'] && $pl['geniration'] == 1) { + if ($td['add_mib3'] == $td['add_mab3']) { $m1l = '+'; - $lvar .= '
Броня пояса: ' . $m1l . '' . (0 + $td['add_mab3']) . ''; + $lvar .= $armor3 . $m1l . (0 + $td['add_mab3']); } else { - $lvar .= '
Броня пояса: ' . (0 + $td['add_mib3']) . '-' . (0 + $td['add_mab3']) . ''; + $lvar .= $armor3 . (0 + $td['add_mib3']) . '-' . (0 + $td['add_mab3']); } } if ($td['add_mab4'] > 0) { - if ($td['add_mib4'] == $td['add_mab4'] && $pl['geniration'] == 1) { + if ($td['add_mib4'] == $td['add_mab4']) { $m1l = '+'; - $lvar .= '
Броня ног: ' . $m1l . '' . (0 + $td['add_mab4']) . ''; + $lvar .= $armor4 . $m1l . (0 + $td['add_mab4']); } else { - $lvar .= '
Броня ног: ' . (0 + $td['add_mib4']) . '-' . (0 + $td['add_mab4']) . ''; + $lvar .= $armor4 . (0 + $td['add_mib4']) . '-' . (0 + $td['add_mab4']); } } if ($itm[$i]['iznosMAX'] > 0) { if ($itm[$i]['iznosMAXi'] == 999999999) { - $lvar .= '
Долговечность: неразрушимо'; + $lvar .= '
Долговечность: неразрушимо'; } else { $lvar .= '
Долговечность: ' . floor( $itm[$i]['iznosNOW'] @@ -856,7 +814,17 @@ class Battle } } - $info .= 'abitms(' . (0 + $t) . ',' . (0 + $itm[$i]['uid']) . ',' . (0 + $itm[$i]['id']) . ',' . (0 + $itm[$i]['inOdet']) . ',"' . $itm[$i]['name'] . '","' . $ttl . '","' . $itm[$i]['img'] . '","' . $ccv . '");'; + $var1 = (int)$t; + $var2 = (int)$itm[$i]['uid']; + $var3 = (int)$itm[$i]['id']; + $var4 = (int)$itm[$i]['inOdet']; + $var5 = $itm[$i]['name']; + $var6 = $ttl; + $var7 = $itm[$i]['img']; + $var8 = $ccv; + + $info .= "abitms($var1,$var2,$var3,$var4,'$var5','$var6','$var7','$var8');"; + unset($var1, $var2, $var3, $var4, $var5, $var6, $var7, $var8); $i++; } } @@ -898,17 +866,19 @@ class Battle //Запускаем магические предметы, если в них что-то встроено - public function testFinish() + public function testFinish(): void { global $u; - mysql_query('START TRANSACTION;'); - $test = mysql_fetch_array( - mysql_query( - 'SELECT `id` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` = -1 LIMIT 1 FOR UPDATE' - ) - ); - mysql_query('COMMIT;'); - if ($this->info['team_win'] == -1 && isset($test['id'])) { + [ + 'id' => $check, + 'team_win' => $tw, + ] = Db::getRow('select id, team_win from battle where id = ?', [$this->info['id']]); + + if (empty($check)) { + return; + } + + if ($tw === -1) { $hp = []; $tml = []; $tmv = []; @@ -934,10 +904,11 @@ class Battle //Доп.проверка $tmHpNow = []; $tmNow = []; - $sp = mysql_query( - 'SELECT `u`.`login`,`u`.`id`,`u`.`battle`,`s`.`team`,`s`.`hpNow` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`battle` = "' . $this->info['id'] . '"' - ); - while ($pl = mysql_fetch_array($sp)) { + + foreach ( + Db::getRow('select team, hpNow from users left join stats on users.id = stats.id where battle = ?', [$this->info['id']]) + as $pl + ) { if (!isset($tmHpNow[$pl['team']])) { $tmHpNow[$pl['team']] = 0; $tmNow[] = $pl['team']; @@ -950,6 +921,7 @@ class Battle $tmHpNow[$pl['team']] += $pl['hpNow']; } } + $gdj = 0; $i = 0; while ($i < count($tmNow)) { @@ -979,20 +951,21 @@ class Battle $i++; } - if ($this->info['izlom'] == 0) { - if ($this->info['id'] > 0) { + $ir = 0; + $bi = 0; + if ($this->info['id'] > 0) { + if ($this->info['izlom'] == 0) { //данные о игроках в бою - unset($this->users, $this->stats, $this->uids, $this->bots, $this->iBots); $trl = mysql_query( - 'SELECT `u`.`no_ip`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`money3`,`u`.`money2`,`u`.`bot_id` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`battle` = "' . $this->info['id'] . '" ORDER BY `st`.`bot` DESC' + 'SELECT `u`.`no_ip`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`money3`,`u`.`money2`,`u`.`bot_id` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`battle` = "' . $this->info['id'] . '" ORDER BY `st`.`bot` DESC' ); - $ir = 0; - $bi = 0; - $this->users = null; - $this->stats = null; - $this->uids = null; - $this->bots = null; - $this->iBots = null; + + $this->users = []; + $this->stats = []; + $this->uids = []; + $this->bots = []; + $this->iBots = []; + while ($pl = mysql_fetch_array($trl)) { //записываем данные if ($pl['login2'] == '') { @@ -1006,15 +979,13 @@ class Battle $bi++; } //записываем статы - $this->stats[$ir] = $u->getStats($pl, 0, 0, false, false, true); + $this->stats[$ir] = $u->getStats($pl['id'], 0, 0, false, false, true); $ir++; } - } - } elseif (!isset($this->uids[$u->info['id']])) { - if ($this->info['id'] > 0) { + } elseif (!isset($this->uids[$u->info['id']])) { //данные о игроках в бою $trl = mysql_query( - 'SELECT `u`.`no_ip`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`bot_id`,`u`.`money3`,`u`.`money2` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`id` = "' . $this->info['id'] . '" LIMIT 1' + 'SELECT `u`.`no_ip`,`u`.`id`,`u`.`notrhod`,`u`.`login`,`u`.`login2`,`u`.`sex`,`u`.`online`,`u`.`admin`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,`u`.`level`,`u`.`battle`,`u`.`obraz`,`u`.`win`,`u`.`lose`,`u`.`nich`,`u`.`animal`,`st`.`stats`,`st`.`hpNow`,`st`.`mpNow`,`st`.`exp`,`st`.`dnow`,`st`.`team`,`st`.`battle_yron`,`st`.`battle_exp`,`st`.`enemy`,`st`.`battle_text`,`st`.`upLevel`,`st`.`timeGo`,`st`.`timeGoL`,`st`.`bot`,`st`.`lider`,`st`.`btl_cof`,`st`.`tactic1`,`st`.`tactic2`,`st`.`tactic3`,`st`.`tactic4`,`st`.`tactic5`,`st`.`tactic6`,`st`.`tactic7`,`st`.`x`,`st`.`y`,`st`.`battleEnd`,`st`.`priemslot`,`st`.`priems`,`st`.`priems_z`,`st`.`bet`,`st`.`clone`,`st`.`atack`,`st`.`bbexp`,`st`.`res_x`,`st`.`res_y`,`st`.`res_s`,`st`.`id`,`st`.`last_hp`,`st`.`last_pr`,`u`.`sex`,`u`.`money`,`u`.`bot_id`,`u`.`money3`,`u`.`money2` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`id` = ' . $this->info['id'] ); $pl = mysql_fetch_array($trl); //записываем данные @@ -1028,44 +999,27 @@ class Battle $this->iBots[$pl['id']] = $bi; } //записываем статы - $this->stats[] = $u->getStats($pl, 0, 0, false, false, true); + $this->stats[] = $u->getStats($pl['id'], 0, 0, false, false, true); } } - if ($this->info['izlom'] > 0 && $tmwin == 1) { // выкидываем ботов из боя $i = 0; - $dlt = ''; - $dlt2 = ''; - $sp = mysql_query( - 'SELECT `users`.`id`,`stats`.`bot`,`stats`.`team` FROM `users`,`stats` WHERE `users`.`battle` = "' . $this->info['id'] . '" AND `stats`.`id` = `users`.`id` LIMIT 250' - ); - while ($pl = mysql_fetch_array($sp)) { - if ($pl['bot'] == 1 && $pl['team'] != $u->info['team']) { - $dlt .= ' `id`="' . $pl['id'] . '" OR'; - $dlt2 .= ' `uid`="' . $pl['id'] . '" OR'; - $i++; - } - } - if ($i > 0) { - $dlt = trim($dlt, 'OR'); - $dlt2 = trim($dlt2, 'OR'); - mysql_query('DELETE FROM `users` WHERE ' . $dlt . ' LIMIT ' . $i); - mysql_query('DELETE FROM `stats` WHERE ' . $dlt . ' LIMIT ' . $i); - mysql_query('DELETE FROM `items_users` WHERE ' . $dlt2 . ' LIMIT ' . ($i * 100)); - mysql_query('DELETE FROM `eff_users` WHERE ' . $dlt2 . ' LIMIT ' . ($i * 100)); - } - - unset($i, $dlt, $dlt2); + $botsIds = Db::getColumn('select users.id from users left join stats on users.id = stats.id where battle = ? and bot = 1 and team != ?', [$this->info['id'], $u->info['team']]); + Db::sql('delete from users where id in (?)', [implode(',', $botsIds)]); + Db::sql('delete from stats where id in (?)', [implode(',', $botsIds)]); + Db::sql('delete from items_users where uid in (?)', [implode(',', $botsIds)]); + Db::sql('delete from eff_users where uid in (?)', [implode(',', $botsIds)]); $j = 0; $obr = 0; - + $bots = []; //Это излом, добавляем еще ботов - if ($this->get_chanse(20)) { + if ($this->getChanse(20)) { //Уникальные монстры + if ($this->info['izlomLvl'] == 8) { $bots = [ 'Валентайский Охотник', @@ -1075,54 +1029,11 @@ class Battle 'Фанатик Хаоса', ]; } - $logins_bot = []; - // - echo '
Приближается нечто...
'; - // - $id2 = rand(0, (count($bots) - 1)); - $id = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1' - ) - ); - $bot = $u->addNewbot( - $id['id'], null, null, $logins_bot, null, - round($this->info['izlomRoundSee']) - ); - if (isset($id['id']) && $bot != false) { - // - $btxt = ''; - if ($id['align'] > 0) { - $btxt = $btxt . ''; - } - if ($id['clan'] > 0) { - $btxt = $btxt . ''; - } - $btxt = $btxt . '{u1}[' . $id['level'] . ']'; - if ($id['sex'] == 1) { - $btxt = $btxt . ' вмешалась в поединок.'; - } else { - $btxt = $btxt . ' вмешался в поединок.'; - } - $this->miniLogAdd( - [ - 'login' => $id['login'], - 'sex' => $id['sex'], - 'team' => 0, - ], '{tm1} ' . $btxt - ); - // - $logins_bot = $bot['logins_bot']; - mysql_query( - 'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1' - ); - mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'); - $u->addAction(time(), 'win_bot_' . $id['id'], '', $this->users[$i]['id']); - if (rand(0, 10000) < 1500) { - $obr++; - } - $j++; - } + + echo '
Приближается нечто...
'; + + $this->addIzlomBot($bots, $j, $obr, $this->users[$i]['id']); + } else { //Обычные монстры if ($this->info['izlomLvl'] == 8) { @@ -1136,200 +1047,29 @@ class Battle 'Сторож Мглы', ]; } - $logins_bot = []; - // - $id2 = rand(0, (count($bots) - 1)); - $id = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1' - ) - ); - $bot = $u->addNewbot( - $id['id'], null, null, $logins_bot, null, - ($this->info['izlomRoundSee'] * 2) - ); - if (isset($id['id']) && $bot) { - // - $btxt = ''; - if ($id['align'] > 0) { - $btxt = $btxt . ''; - } - if ($id['clan'] > 0) { - $btxt = $btxt . ''; - } - $btxt = $btxt . '{u1}[' . $id['level'] . ']'; - if ($id['sex'] == 1) { - $btxt = $btxt . ' вмешалась в поединок.'; - } else { - $btxt = $btxt . ' вмешался в поединок.'; - } - $this->miniLogAdd( - [ - 'login' => $id['login'], - 'sex' => $id['sex'], - 'team' => 0, - ], '{tm1} ' . $btxt - ); - // - $logins_bot = $bot['logins_bot']; - mysql_query( - 'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1' - ); - mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'); - if (rand(0, 10000) < 1500) { - $obr++; - } - $j++; - } - // - $id2 = rand(0, (count($bots) - 1)); - $id = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1' - ) - ); - $bot = $u->addNewbot($id['id'], null, null, $logins_bot, null, $this->info['izlomRoundSee']); - if (isset($id['id']) && $bot) { - // - $btxt = ''; - if ($id['align'] > 0) { - $btxt = $btxt . ''; - } - if ($id['clan'] > 0) { - $btxt = $btxt . ''; - } - $btxt = $btxt . '{u1}[' . $id['level'] . ']'; - if ($id['sex'] == 1) { - $btxt = $btxt . ' вмешалась в поединок.'; - } else { - $btxt = $btxt . ' вмешался в поединок.'; - } - $this->miniLogAdd( - [ - 'login' => $id['login'], - 'sex' => $id['sex'], - 'team' => 0, - ], '{tm1} ' . $btxt - ); - // - $logins_bot = $bot['logins_bot']; - mysql_query( - 'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1' - ); - mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'); - if (rand(0, 10000) < 1500) { - $obr++; - } - $j++; - } - // + + $this->addIzlomBot($bots, $j, $obr); + $this->addIzlomBot($bots, $j, $obr); + if (rand(0, 100) < 70) { - $id2 = rand(0, (count($bots) - 1)); - $id = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1' - ) - ); - $bot = $u->addNewbot( - $id['id'], null, null, $logins_bot, null, - $this->info['izlomRoundSee'] - ); - if (isset($id['id']) && $bot) { - // - $btxt = ''; - if ($id['align'] > 0) { - $btxt = $btxt . ''; - } - if ($id['clan'] > 0) { - $btxt = $btxt . ''; - } - $btxt = $btxt . '{u1}[' . $id['level'] . ']'; - if ($id['sex'] == 1) { - $btxt = $btxt . ' вмешалась в поединок.'; - } else { - $btxt = $btxt . ' вмешался в поединок.'; - } - $this->miniLogAdd( - [ - 'login' => $id['login'], - 'sex' => $id['sex'], - 'team' => 0, - ], '{tm1} ' . $btxt - ); - // - $logins_bot = $bot['logins_bot']; - mysql_query( - 'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1' - ); - mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1'); - if (rand(0, 10000) < 1500) { - $obr++; - } - $j++; - } + $this->addIzlomBot($bots, $j, $obr); } - //Каждые 10 вол = +1 монстр + + //Каждые 10 волн = +1 монстр $irb = floor($this->info['izlomRoundSee'] / 10); while ($irb > 0) { - // - if (rand(0, 100) < 20) { - $id2 = rand(0, (count($bots) - 1)); - $id = mysql_fetch_array( - mysql_query( - 'SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . '" AND `level` <= "' . $u->info['level'] . '" AND `pishera` != "" AND `active` = "1" ORDER BY `level` DESC LIMIT 1' - ) - ); - $bot = $u->addNewbot( - $id['id'], null, null, $logins_bot, null, - $this->info['izlomRoundSee'] - ); - if (isset($id['id']) && $bot) { - // - $btxt = ''; - if ($id['align'] > 0) { - $btxt = $btxt . ''; - } - if ($id['clan'] > 0) { - $btxt = $btxt . ''; - } - $btxt = $btxt . '{u1}[' . $id['level'] . ']'; - if ($id['sex'] == 1) { - $btxt = $btxt . ' вмешалась в поединок.'; - } else { - $btxt = $btxt . ' вмешался в поединок.'; - } - $this->miniLogAdd( - [ - 'login' => $id['login'], - 'sex' => $id['sex'], - 'team' => 0, - ], '{tm1} ' . $btxt - ); - // - $logins_bot = $bot['logins_bot']; - mysql_query( - 'UPDATE `users` SET `battle`="' . $this->info['id'] . '" WHERE `id` = "' . $bot['id'] . '" LIMIT 1' - ); - mysql_query( - 'UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1' - ); - if (rand(0, 10000) < 1500) { - $obr++; - } - $j++; - } - } + $this->addIzlomBot($bots, $j, $obr); $irb--; } } - // - unset($logins_bot); + if ($j == 0) { //конец излома $this->finishBattle($tml, $tmv, null); - $fin1 = mysql_query( - 'INSERT INTO `izlom_rating` (`uid`,`time`,`voln`,`level`,`bots`,`rep`,`obr`,`btl`) VALUES ("' . $u->info['id'] . '","' . time() . '","' . $this->info['izlomRoundSee'] . '","' . $this->info['izlomLvl'] . '","0","0","' . ($this->info['izlomObr'] - $this->info['izlomObrNow']) . '","' . $this->info['id'] . '")' + mysql_query( + 'INSERT INTO `izlom_rating` (`uid`,`time`,`voln`,`level`,`bots`,`rep`,`obr`,`btl`) VALUES ("' . $u->info['id'] . '","' . time( + ) . '","' . $this->info['izlomRoundSee'] . '","' . $this->info['izlomLvl'] . '","0","0","' . ($this->info['izlomObr'] - $this->info['izlomObrNow']) . '","' . $this->info['id'] . '")' ); } else { $this->info['izlomRound'] = $iz['round']; @@ -1340,282 +1080,206 @@ class Battle $this->stats[$this->uids[$u->info['id']]]['mpNow'] += $this->stats[$this->uids[$u->info['id']]]['mpAll'] * 0.25; $this->users[$this->uids[$u->info['id']]]['hpNow'] = $this->stats[$this->uids[$u->info['id']]]['hpAll']; $this->users[$this->uids[$u->info['id']]]['mpNow'] = $this->stats[$this->uids[$u->info['id']]]['mpAll']; - $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . '||bl1=' . $this->atacks[$id]['b' . $a] . '||bl2=' . $this->atacks[$id]['b' . $b] . '||time1=' . $this->atacks[$id]['time'] . '||time2=' . $this->atacks[$id]['time2'] . '||s2=' . $this->users[$this->uids[$u2]]['sex'] . '||s1=' . $this->users[$this->uids[$u1]]['sex'] . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2'] . ''; + + //где это брать?? + $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . + '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . + '||bl1=' . $this->atacks[$id]['b' . $a] . + '||bl2=' . $this->atacks[$id]['b' . $b] . + '||time1=' . $this->atacks[$id]['time'] . + '||time2=' . $this->atacks[$id]['time2'] . + '||s2=' . $this->users[$this->uids[$u2]]['sex'] . + '||s1=' . $this->users[$this->uids[$u1]]['sex'] . + '||t2=' . $this->users[$this->uids[$u2]]['team'] . + '||t1=' . $this->users[$this->uids[$u1]]['team'] . + '||login1=' . $this->users[$this->uids[$u1]]['login2'] . + '||login2=' . $this->users[$this->uids[$u2]]['login2']; $mas = [ - 'time' => time(), 'battle' => $this->info['id'], 'id_hod' => ($this->hodID + 1), 'vars' => $vLog, 'type' => 1, ]; - if ($u->info['sex'] == 1) { - $mas['text'] = '' . date( - 'H:i' - ) . ' ' . $u->info['login'] . ' воспользовалась приемом "Передышка".'; - } else { - $mas['text'] = '' . date( - 'H:i' - ) . ' ' . $u->info['login'] . ' воспользовался приемом "Передышка".'; - } + + $textpart1 = $u->info['sex'] == 1 ? 'воспользовалась' : 'воспользовался'; + + $mas['text'] = '' . date('H:i') . + ' ' . $u->info['login'] . + ' ' . $textpart1 . ' приемом "Передышка".'; + if ($u->stats['hpNow'] < $u->stats['hpAll']) { $hpSks = floor(($u->stats['hpAll'] * ((rand(15, 25)) / 100))); if ($hpSks > floor($u->stats['hpAll'] - $u->stats['hpNow'])) { $hpSks = floor($u->stats['hpAll'] - $u->stats['hpNow']); } - $mas['text'] .= ' +' . $hpSks . ''; + $textpart2 = "+$hpSks"; } else { $hpSks = 0; - $mas['text'] .= ' --'; + $textpart2 = '--'; } + + $mas['text'] .= ' +' . $textpart2 . ''; $mas['text'] .= ' [' . floor($u->info['hpNow'] + $hpSks) . '/' . $u->stats['hpAll'] . ']'; + $this->add_log($mas); - mysql_query( - 'UPDATE `stats` SET `hpNow` = "' . ($u->info['hpNow'] + ($u->stats['hpAll'] * ((rand( - 15, - 25 - )) / 100))) . '",`mpNow` = "' . ($u->info['mpNow'] + ($u->stats['mpAll'] * 0.25)) . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1' + Db::sql( + 'update stats set hpNow = ?, mpNow = ? where id = ?', + [ + $u->info['hpNow'] + $u->stats['hpAll'] * ((rand(15, 25)) / 100), + $u->info['mpNow'] + $u->stats['mpAll'] * 0.25, + $u->info['id'], + ] ); } + } else { //завершаем бой $this->finishBattle($tml, $tmv, null); if ($this->info['izlom'] > 0) { - $fin1 = mysql_query( - 'INSERT INTO `izlom_rating` (`uid`,`time`,`voln`,`level`,`bots`,`rep`,`obr`,`btl`) VALUES ("' . $u->info['id'] . '","' . time() . '","' . $this->info['izlomRoundSee'] . '","' . $this->info['izlomLvl'] . '","0","0","' . ($this->info['izlomObr'] - $this->info['izlomObrNow']) . '","' . $this->info['id'] . '")' + Db::sql( + 'insert into izlom_rating (uid, time, voln, level, obr, btl) values (?,unix_timestamp(),?,?,?,?)', + [ + $u->info['id'], + $this->info['izlomRoundSee'], + $this->info['izlomLvl'], + $this->info['izlomObr'] - $this->info['izlomObrNow'], + $this->info['id'], + ] ); } } - if (isset($fin1)) { - mysql_query( - 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","31","23","' . $u->info['id'] . '","Касание Хаоса","nofastfinisheff=1","' . time() . '")' - ); - $cmsg = new ChatMessage(); - $cmsg->setCity($u->info['city']); - $cmsg->setRoom($u->info['room']); - $cmsg->setTo($u->info['login']); - $cmsg->setType(6); - $cmsg->setText( - 'Вы создали предмет "Образец" x' . (($this->info['izlomObr'] - $this->info['izlomObrNow']) * 7) - ); - (new Chat())->sendMsg($cmsg); - $i01 = 1; - while ($i01 <= (($this->info['izlomObr'] - $this->info['izlomObrNow'])) * 7) { - ItemsModel::addItem(1226, $u->info['id'], '|sudba=' . $u->info['login']); - $i01++; - } - mysql_query( - 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $u->info['id'] . '","' . time() . '","capitalcity","' . $u->info['room'] . '","izlom"," ","","")' - ); - unset($fin1); + Effects::addById($u->info['id'], 31); + + $cmsg = new ChatMessage(); + $cmsg->setRoom($u->info['room']); + $cmsg->setTo($u->info['login']); + $cmsg->setType(6); + $cmsg->setText( + 'Вы создали предмет "Образец" x' . (($this->info['izlomObr'] - $this->info['izlomObrNow']) * 7) + ); + (new Chat())->sendMsg($cmsg); + + $i01 = 1; + while ($i01 <= (($this->info['izlomObr'] - $this->info['izlomObrNow'])) * 7) { + ItemsModel::addItem(1226, $u->info['id'], '|sudba=' . $u->info['login']); + $i01++; } + + Db::sql( + "insert into actions (uid, time, city, room, vars, ip, vals, val) values (?,unix_timestamp(),'capitalcity',?,'izlom','','','')", + [$u->info['id'], $u->info['room']] + ); + } } else { - mysql_query('START TRANSACTION;'); - $test = mysql_fetch_array( - mysql_query( - 'SELECT `id`,`team_win`, `testfinish` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` != -1 LIMIT 1 FOR UPDATE' - ) - ); - mysql_query('COMMIT;'); - if (isset($test['id'])) { - $this->finishBattle(null, null, 10); - } + $this->finishBattle(null, null, 10); + } + } + + /** + * @param array $botLogins + * @param int $counter + * @param int $obr + * @param int $unique для совместимости с непонятным вызовом User->addAction + * при вызове уникального монстра. + * @return void + */ + private function addIzlomBot(array $botLogins, int &$counter, int &$obr, int $unique = 0): void + { + global $u; + if (empty($botLogins) || mt_rand(0, count($botLogins) - 1) === 0) { + return; + } + [ + 'id' => $id, + 'align' => $align, + 'clan' => $clan, + 'level' => $level, + 'sex' => $gender, + 'login' => $login, + ] = Db::getRow( + "select id, align, clan, level, sex, login from test_bot where login = ? and pishera != '' and active = 1 and level <= ? order by level desc limit 1", + [$botLogins[array_rand($botLogins)], $u->info['level']] + ); + $bot = $u->addNewbot(id: $id, round: round($this->info['izlomRoundSee']) * mt_rand(1, 2)); + if (empty($bot)) { + return; + } + $imgBase = Config::img() . DIRECTORY_SEPARATOR . 'i'; + $alignStr = empty($align) ? '' : ""; + $clanStr = empty($clan) ? '' : "$clan"; + $spacedLogin = str_replace(' ', '%20', $login); + $loginLink = "Инф. о $login"; + $btxt = "$alignStr$clanStr$login [$level]$loginLink"; + $btxt .= $gender == 1 ? ' вмешалась в поединок.' : ' вмешался в поединок.'; + + $this->miniLogAdd( + [ + 'login' => $login, + 'sex' => $gender, + 'team' => 0, + ], + "{tm1} $btxt" + ); + Db::sql('update users left join stats on users.id = stats.id set battle = ?, team = 2 where users.id = ?', [$this->info['id'], $bot['id']]); + + if ($unique) { + $u->addAction(time(), 'win_bot_' . $id, '', $unique); + } + + $counter++; + if (mt_rand(0, 10000) < 1500) { + $obr++; } } //Поглощение урона - private function get_chanse(int $percent): bool + private function getChanse(int $percent): bool { return rand(0, 100) <= $percent; } //Поглощение урона - private function miniLogAdd($user, $text) + private function miniLogAdd(array $user, string $text): void { - $vLog = 'at1=00000||at2=00000||zb1=0||zb2=0||bl1=0||bl2=0||time1=' . time() . '||time2=' . time() . '||s1=' . $user['sex'] . '||t1=' . $user['team'] . '||login1=' . $user['login'] . '||'; - $mas1 = [ - 'time' => time(), - 'battle' => $this->info['id'], - 'id_hod' => ($this->hodID + 1), - 'text' => $text, - 'vars' => $vLog, - 'zona1' => '', - 'zonb1' => '', - 'zona2' => '', - 'zonb2' => '', - 'type' => '1', - ]; - $this->add_log($mas1); + if (empty($text) || !isset($user['sex'], $user['team'], $user['login'])) { + return; + } + Log::add( + [ + 'text' => $text, + 'battle' => $this->info['id'], + 'id_hod' => ($this->hodID + 1), + 'vars' => 'at1=00000||at2=00000||zb1=0||zb2=0||bl1=0||bl2=0||time1=' . time() . + '||time2=' . time() . + '||s1=' . $user['sex'] . + '||t1=' . $user['team'] . + '||login1=' . $user['login'], + 'type' => 1, + ] + ); } - public function add_log($mass) + public function add_log(array $mass): void { if (empty($mass['text'])) { return; } - mysql_query( - 'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`type`) VALUES (unix_timestamp(), "' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $mass['text'] . '","' . $mass['vars'] . '","' . $mass['type'] . '")' - ); - if ($this->get_chanse(12)) { - $this->get_comment(); + Log::add($mass); + if ($this->getChanse(12)) { + Log::addComment($this); } } - private function get_comment() - { - $boycom = [ - 'А танцуешь ты лучше.', - 'А мы что, в прятки тут играем?', - 'А вы разве пингвинов никогда не видели?', - 'А, ведь когда-то, вы были красивыми… А теперь? Ну и рожи! Жуть!', - 'А потом еще труп пинать будут.', - 'А я вчера ночью за соседями подглядывал. Они точно так же кувыркались', - 'А ведь вы живых людей дубасите...', - 'А вот я вчера в зоопарке был...', - 'А вы в стройбате не служили?', - 'А вы видели, чтобы так на улице делали!?', - 'А вы знали что ёжики размножаются в интернете?', - 'А жить-то, как хочется:', - 'А из-за чего вы собственно дерётесь?', - 'А чего ржёте, вы ещё остальных не видели', - 'А что произойдёт если ты испугаешся до полусмерти дважды?!', - 'Больше так не делай. Ты же не садист?', - 'Без комментариев...', - 'Больно ведь!', - 'Быстро ты за монитор спрятался!', - 'Все хотят попасть в рай, но никто не хочет умирать!', - 'Вчера с такой девчонкой познакомился.', - 'Всего 5 минут знакомы, а дерутся, словно супруги с 20-ти летним стажем...', - 'Все. Я так больше не могу.', - 'В конце концов, кто-то победит?', - 'Вы чего, с дерева упали?', - 'Возятся как сонные мухи... давайте я вам лучше анекдот расскажу: ...', - 'Вот видишь, как полезно чистить зубы на ночь?', - 'Вот вы все руками махаете, а за вами уже очередь', - 'Вот попадёте вы в плен и вас там будут долго бить. Но вы ничего не расскажете... и не потому, что вы такой стойкий, просто вы ничего не знаете', - 'Вы бы лучше пошли потренировались!', - 'Вы все еще разминаетесь? Позовите, когда кости в муку друг другу разминать будете.', - 'Вы же бойцы! Имейте совесть!', - 'Гаси недоумка!', - 'Да, если бы я смог это остановить, то получил бы нобелевскую премию `За мир` ', - 'Да куда они бьют?!', - 'Давайте быстрее! За вами уже очередь образовалась.', - 'Давайте обойдемся сегодня таймаутом. А? А то мне уже кошмары скоро будут сниться.', - 'Дерутся как девчонки!', - 'Дети, посмотрите налево... Ой!.. Нет, туда лучше не смотреть.', - 'Если так будет продолжаться, то скоро мы заснем!', - 'Если бы у меня было кресло-качалка, я бы в нём качался...', - 'Если вы что-то сказать хотите, то лучше молчите :)', - 'Жестокость не порок.', - 'Жизнь вне нашего клуба - это пустая трата кислорода!!!', - 'Жми! Дави! Кусай! Царапай!', - 'За такие бои надо в хаос отправлять!', - 'Знаете откуда в комиссионном магазине столько вещей? Это я после ваших гулянок собираю и сдаю туда. Иногда вместе с частями тела, застрявшими в них.', - 'Здесь люди так близки друг к другу. Просто иначе ударить нельзя.', - 'И пролитая кровь еще пульсирует...', - 'Инвалидов развелось...', - 'Какой бой!!!', - 'Кто!? Кто здесь?!', - 'Кто вас этому научил?', - 'Кузнечик, блин...', - 'Куплю импортный проигрыватель грампластинок.', - 'Лошадью ходи!', - 'Лучше враг, чем друг - враг.', - 'Ладно, вы тут пока друг друга за волосы таскайте, а я пойду, пообедаю.', - 'Мне ваш балет уже надоел!', - 'Может, начнется-таки настоящий бой???', - 'Мысли лезут в голову изнутри, а удары снаружи.', - 'Ну и где ваши коронные удары? Где живописные падения я спрашиваю!', - 'Ну, нельзя же так наотмашь лупить!', - 'Надо раньше было думать, теперь смертельно поздно...', - 'На такое зрелище билеты продавать можно. Народ ухохочется!', - 'Нет! Не надо драки! А... ладно деритесь, все равно не умеете.', - 'Нет, ну должен быть повод, должен же быть повод?', - 'Нет, я отказываюсь это комментировать!', - 'Не таких обламывали!', - 'Ну выпили вы рюмку, ну две... ну литр, ну два... так зачем же после этого драку затевать?!', - 'Ну и кто за этот погром платить будет?', - 'Ну и оскал у вас. Из вашей улыбки кастеты делать можно.', - 'Ну, что же ты..? Не печалься. Выше голову, так по ней удобней попасть.', - 'Ничего... Блок тоже удар.', - 'Обернись!!!.... Поздно...', - 'Ого! Научите меня так не делать.', - 'Осторожно! Сделаешь дырочку, уже не запломбируешь!', - 'Оно вам надо???', - 'Обычное дело...там что-то отклеилось.', - 'Ой, и заболтался я с вами...', - 'Он же не промахнётся если ты не отойдёшь!', - 'По-моему, кому-то светит инвалидность.', - 'Подкинь ему грабли, на которые он еще не наступал.', - 'Прав был кот Леопольд, давайте жить дружно?', - 'При ударе в живот нарушается кислотно-щелочной баланс.', - 'Проверь, не торчит ли у тебя нож из живота.', - 'Перестаньте мне орать!', - 'Подкинь ему грабли, на которые он еще не наступал.', - 'Прыгают тут как блохи... Все, я пошел за дихлофосом!', - 'Разбудите меня когда эта порнография закончится...', - 'Ребенок сильнее ударил бы!', - 'Славно вмазал!', - 'Славно они веселятся', - 'Смотрю вот на вас, и слезы наворачиваются.', - 'Сначала учатся ходить, а потом только в драку лезут.', - 'Так они друг другу что-нибудь сломают.', - 'Так ты ему все кости переломаешь!', - 'У меня в подъезде точно так же соседа отмудохали', - 'Убогих развелось...', - 'Ух ты, какой прыткий!', - 'Фашист!! Надо ж, так по больному месту врезать...', - 'Хватит бить его об угол моей кабинки! Мне же потом ее чинить.', - 'Хулиганы, прекратите немедленно!', - 'Хочешь, подскажу, куда он ударит?', - 'Хорошо, что у меня ловкости больше чем у вас всех, а то б вы и меня в инвалидную коляску посадили бы.', - 'Хороший бой!', - 'Хороший удар!', - 'Хиляк-разрядник!', - 'Что ты его за волосы схватил?! Отпусти немедленно!', - 'Щас я вас настигну, вот тогда мы и похохочем', - 'Это была какая-то неизвестная мне техника...', - 'Это же противник, а не глина! Хватит мяться!', - 'Это не бой, это издевательское избиение.', - 'Это поубавит спеси', - 'Это и был твой план `Б` ?', - 'Это была какая-то неизвестная мне техника...', - 'Я же предупреждал, - будет больно.', - 'Я не страдаю безумием. Я наслаждаюсь им каждую минуту :)', - 'Я красивый, я сильный, я умный, я добрый. А вот вы? Вы себя-то видели?!', - 'Я тоже умею драться, но не буду...', - '(тревожно озираясь) я вам по секрету скажу... за вами наблюдают!', - '<вырезано цензурой> после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>', - '<вырезано цензурой> каратисты фиговы', - ]; - - $txt = '{tm1} Комментатор: ' . $boycom[rand(0, count($boycom) - 1)] . ''; - - $vLog = 'time1=' . time(); - $mas1 = [ - 'time' => time(), - 'battle' => $this->info['id'], - 'id_hod' => $this->hodID, - 'text' => $txt, - 'vars' => $vLog, - 'zona1' => '', - 'zonb1' => '', - 'zona2' => '', - 'zonb2' => '', - 'type' => '1', - ]; - $this->add_log($mas1); - } - //Игрок1 наносит удар Игрок2 - private function finishBattle($t, $v, $nl) + private function finishBattle($t, $v, $nl): void { global $u; $chat = new Chat(); @@ -1626,7 +1290,9 @@ class Battle 'SELECT `id`,`team_win`,`testfinish` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` != -1 LIMIT 1;' ) ); - if ($test['testfinish'] != -1) { + if ($test['testfinish'] == -1) { + sleep(2); + } else { $trtt = mysql_query( 'UPDATE `battle` SET `testfinish` = "-1" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1' ); @@ -1664,7 +1330,7 @@ class Battle $bi++; } //записываем статы - $this->stats[$i] = $u->getStats($pl, 0, 0, false, false, true); + $this->stats[$i] = $u->getStats($pl['id'], 0, 0, false, false, true); $i++; } unset($pl, $t); @@ -1690,7 +1356,8 @@ class Battle $vtvl = ''; $relu = 0; while ($i < count($this->users)) { - $vl .= '("' . $this->users[$i]['login'] . '","' . $this->users[$i]['city'] . '","' . $this->info['id'] . '","' . $this->users[$i]['id'] . '","' . time() . '","' . $this->users[$i]['team'] . '","' . $this->users[$i]['level'] . '","' . $this->users[$i]['align'] . '","' . $this->users[$i]['clan'] . '","' . $this->users[$i]['exp'] . '","' . $this->users[$i]['bot'] . '","' . $this->users[$i]['money'] . '","' . $this->users[$i]['money2'] . '","' . $this->users[$i]['money3'] . '"),'; + $vl .= '("' . $this->users[$i]['login'] . '","' . $this->users[$i]['city'] . '","' . $this->info['id'] . '","' . $this->users[$i]['id'] . '","' . time( + ) . '","' . $this->users[$i]['team'] . '","' . $this->users[$i]['level'] . '","' . $this->users[$i]['align'] . '","' . $this->users[$i]['clan'] . '","' . $this->users[$i]['exp'] . '","' . $this->users[$i]['bot'] . '","' . $this->users[$i]['money'] . '","' . $this->users[$i]['money2'] . '","' . $this->users[$i]['money3'] . '"),'; if ($this->users[$i]['team'] == $this->info['team_win'] && $this->info['team_win'] > 0) { $vtvl .= '' . $this->users[$i]['login'] . ', '; } @@ -1739,7 +1406,7 @@ class Battle ) ); $this->info['players_cc2'] = $this->info['players_cc2'][0]; - $inf_test = ', users: ' . $this->info['players_cc'] . ' and ' . $this->info['players_cc2'] . ''; + $inf_test = ', users: ' . $this->info['players_cc'] . ' and ' . $this->info['players_cc2']; $this->hodID++; $vLog = 'time1=' . time(); $mass = [ @@ -1822,7 +1489,7 @@ class Battle if ($vl != '') { $vl = rtrim($vl, ','); mysql_query( - 'INSERT INTO `battle_last` (`login`,`city`,`battle_id`,`uid`,`time`,`team`,`lvl`,`align`,`clan`,`exp`,`bot`,`money`,`money2`,`money3`) VALUES ' . $vl . '' + 'INSERT INTO `battle_last` (`login`,`city`,`battle_id`,`uid`,`time`,`team`,`lvl`,`align`,`clan`,`exp`,`bot`,`money`,`money2`,`money3`) VALUES ' . $vl ); } @@ -2156,7 +1823,8 @@ class Battle 'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' ); mysql_query( - 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' + 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time( + ) . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' ); mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'); } elseif ($this->users[$i]['bot'] > 0) { @@ -2165,7 +1833,8 @@ class Battle 'UPDATE `users` SET `battle` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' ); mysql_query( - 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' + 'UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "0",`battle_yron` = "0",`enemy` = "0", `timeGo` = "' . time( + ) . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' ); mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'); } @@ -2312,7 +1981,7 @@ class Battle if ( date('m') == 9 && date('d') < 15 && - !$this->get_chanse(99) && + !$this->getChanse(99) && ($this->info['dungeon'] == 12 || $this->info['dungeon'] == 101) ) { $tou = 0; //какому юзеру предназначено @@ -2378,7 +2047,8 @@ class Battle } } mysql_query( - 'UPDATE `dungeon_bots` SET `delete` = "' . time() . '" AND `inBattle` = "' . $this->info['id'] . '" WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `delete` = "0" ' + 'UPDATE `dungeon_bots` SET `delete` = "' . time( + ) . '" AND `inBattle` = "' . $this->info['id'] . '" WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `delete` = "0" ' ); } else { //выкидываем всех игроков в клетку RESTART @@ -3020,14 +2690,17 @@ class Battle } if ($this->users[$i]['battle_yron'] > 0) { mysql_query( - 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time() . '")' + 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","478","111","' . $this->users[$i]['id'] . '","Право на подвиг","pravonapodvig=1","' . time( + ) . '")' ); } mysql_query( - 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->users[$i]['id'] . '","' . (time() - $timewait) . '","capitalcity","' . $this->users[$i]['room'] . '","end_trup"," ","","")' + 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->users[$i]['id'] . '","' . (time( + ) - $timewait) . '","capitalcity","' . $this->users[$i]['room'] . '","end_trup"," ","","")' ); 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() . '")' + 'INSERT INTO `eff_users` (`no_Ace`,`id_eff`,`overType`,`uid`,`name`,`data`,`timeUse`) VALUES ("1","479","112","' . $u->info['id'] . '","Защита от нападения","zashitatk=1","' . time( + ) . '")' ); $ritem = rand(1, 1000); if ($ritem == 555) { @@ -3095,7 +2768,8 @@ class Battle 'UPDATE `rep` SET `rep3` = `rep3` + "' . $rzbvo . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' ); mysql_query( - 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->users[$i]['id'] . '","' . time() . '","capitalcity","' . $this->users[$i]['room'] . '","end_xaot"," ","' . $zadID . '","")' + 'INSERT INTO `actions`(`uid`, `time`, `city`, `room`, `vars`, `ip`, `vals`, `val`) VALUES ("' . $this->users[$i]['id'] . '","' . time( + ) . '","capitalcity","' . $this->users[$i]['room'] . '","end_xaot"," ","' . $zadID . '","")' ); } } @@ -3274,7 +2948,8 @@ class Battle ); //удаляем все предметы которые пропадают после выхода из пещеры mysql_query( - 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")' + 'UPDATE `items_users` SET `delete` = "' . time( + ) . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` < 1234567890 AND `inShop` = "0" AND (`dn_delete` = "1" OR `data` LIKE "%fromlaba=1%")' ); if ($this->users[$i]['login'] != '') { if ($this->users[$i]['sex'] == 0) { @@ -3347,7 +3022,8 @@ class Battle } mysql_query( - 'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpNow'] . '",`mpNow` = "' . $this->stats[$i]['mpNow'] . '",`bn_capitalcity` = 0,`bn_demonscity` = 0,`smena` = 3,`tactic7` = "-100",`x`="' . $this->users[$i]['x'] . '",`y`="' . $this->users[$i]['y'] . '",`priems_z`="0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0",`last_pr`="0",`tactic1`="0",`tactic2`="0",`tactic3`="0",`tactic4`="0",`tactic5`="0",`tactic6`="0.00000000",`tactic7`="10",`exp` = "' . $this->users[$i]['exp'] . '",`battle_exp` = "' . $this->users[$i]['battle_exp'] . '",`battle_text` = "' . $this->users[$i]['battle_text'] . '",`battle_yron` = "0",`enemy` = "0",`last_b`="' . $this->info['id'] . '",`regHP` = "' . time() . '",`regMP` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' + 'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpNow'] . '",`mpNow` = "' . $this->stats[$i]['mpNow'] . '",`bn_capitalcity` = 0,`bn_demonscity` = 0,`smena` = 3,`tactic7` = "-100",`x`="' . $this->users[$i]['x'] . '",`y`="' . $this->users[$i]['y'] . '",`priems_z`="0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0",`last_pr`="0",`tactic1`="0",`tactic2`="0",`tactic3`="0",`tactic4`="0",`tactic5`="0",`tactic6`="0.00000000",`tactic7`="10",`exp` = "' . $this->users[$i]['exp'] . '",`battle_exp` = "' . $this->users[$i]['battle_exp'] . '",`battle_text` = "' . $this->users[$i]['battle_text'] . '",`battle_yron` = "0",`enemy` = "0",`last_b`="' . $this->info['id'] . '",`regHP` = "' . time( + ) . '",`regMP` = "' . time() . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1' ); if ($this->info['turnir'] == 0) { //пишем в чат @@ -3394,8 +3070,6 @@ class Battle } } - } else { - sleep(2); } mysql_query('UPDATE `battle` SET `testfinish` = "0" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'); mysql_query('UNLOCK TABLES'); @@ -3452,10 +3126,12 @@ class Battle } $timeEnd *= 3600; mysql_query( - 'INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","' . time() . '","-1","' . $name . '","' . $data . '","' . $uid . '", "4", "' . $img . '","' . $timeEnd . '", "' . $v1 . '")' + 'INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","' . time( + ) . '","-1","' . $name . '","' . $data . '","' . $uid . '", "4", "' . $img . '","' . $timeEnd . '", "' . $v1 . '")' ); mysql_query( - 'INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","' . time() . '","-1","Иммунитет: Защита от травм","add_notravma=1","' . $uid . '", "263", "cure1.gif","21600", "")' + 'INSERT INTO `eff_users` (`overType`,`timeUse`,`hod`,`name`,`data`,`uid`, `id_eff`, `img2`, `timeAce`, `v1`) VALUES ("0","' . time( + ) . '","-1","Иммунитет: Защита от травм","add_notravma=1","' . $uid . '", "263", "cure1.gif","21600", "")' ); } @@ -3496,7 +3172,7 @@ class Battle //Старый Новый Год $jit = 0; $iit = mysql_fetch_array( - mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120) . '') + mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120)) ); $iit = floor($iit[0] / 20); $iit = rand(1, $iit); @@ -3660,7 +3336,7 @@ class Battle //Хэллоуин, Тыквоголовый CAPITAL CITY $jit = 0; $iit = mysql_fetch_array( - mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120) . '') + mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120)) ); $iit = floor($iit[0] / 20); $iit = rand(1, $iit); @@ -4663,7 +4339,7 @@ class Battle } } //тест удара - if ($this->uAtc['id'] > 0 && $this->na == 1) { + if ($this->uAtc['id'] > 0) { if ($pl['out1'] == 0 && $pl['out2'] == 0) { //Может разменяться только тот кто бил if ($pl['uid1'] == $u->info['id'] || $pl['uid2'] == $u->info['id']) { @@ -4709,7 +4385,8 @@ class Battle } } else { //Удары между ботами - if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time() && $this->users[$j]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['hpNow'] >= 1) { + if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time( + ) && $this->users[$j]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['hpNow'] >= 1) { $this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['a1'] = rand( 1, 5 ) . '' . rand( @@ -4797,7 +4474,7 @@ class Battle mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $pl . '" AND `hpNow` >= 1 LIMIT 1') ); if (isset($test_uid['id']) && isset($test_pl['id']) && $test_uid['id'] != $test_pl['id']) { - $a = rand(1, 5) . '' . rand(1, 5) . '' . rand(1, 5) . '' . rand(1, 5) . '' . rand(1, 5); + $a = rand(1, 5) . '' . rand(1, 5) . rand(1, 5) . rand(1, 5) . rand(1, 5); $b = rand(1, 5); mysql_query( 'INSERT INTO `battle_act` (`battle`,`time`,`uid1`,`uid2`,`a1`,`b1`) VALUES ("' . $this->info['id'] . '","' . time() . '","' . $pl . '","' . $uid . '","' . $a . '","' . $b . '")' @@ -4842,8 +4519,6 @@ class Battle public function startAtack($id) { global $u, $priem; - $this->prlog = []; - $this->inport_user = 0; if (!isset($this->atacks[$id]) || $this->atacks[$id]['lock'] != 0) { return; @@ -5382,22 +5057,21 @@ class Battle $k2nm = null, $yrn = null, $yrnt = null - ) - { + ) { global $u, $priem; if (!isset($pl['priem']['id']) || isset($this->del_val['eff'][$pl['priem']['id']])) { return; } if ($pl['x'] > 1) { - $pl['name'] = $pl['name'] . ' x' . $pl['x'] . ''; + $pl['name'] = $pl['name'] . ' x' . $pl['x']; } if ($pl['timeUse'] == 77) { //завершаем прием mysql_query('DELETE FROM `eff_users` WHERE `id` = "' . $pl['id'] . '" LIMIT 1'); } - $vLog = 'time1=' . time() . '||s1=' . $u1['sex'] . '||t1=' . $u1['team'] . '||login1=' . $u1['login'] . ''; + $vLog = 'time1=' . time() . '||s1=' . $u1['sex'] . '||t1=' . $u1['team'] . '||login1=' . $u1['login']; if (isset($u2['id'])) { - $vLog .= '||s2=' . $u2['sex'] . '||t2=' . $u2['team'] . '||login2=' . $u2['login'] . ''; + $vLog .= '||s2=' . $u2['sex'] . '||t2=' . $u2['team'] . '||login2=' . $u2['login']; } $mas1 = [ 'time' => time(), @@ -5819,11 +5493,15 @@ class Battle $uid2 = $this->atacks[$id]['uid2']; if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) { - $uid1 = $this->yhod_user($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], - $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']); + $uid1 = $this->yhod_user( + $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] + ); } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) { - $uid2 = $this->yhod_user($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], - $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']); + $uid2 = $this->yhod_user( + $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] + ); } $i = 1; @@ -5906,7 +5584,7 @@ class Battle { // 1 - кто бьет . 2 - в кого бьют . тип //Удал летит прямо в противника - if ($this->import_user == 0) { + if ($this->importUser == 0) { $r = $uid1; $rand_user = false; if ($type == 2) { @@ -5954,9 +5632,9 @@ class Battle if ($rand_user && count($rand_user) > 0) { $r = $rand_user[rand(0, (count($rand_user) - 1))]; } - $this->import_user = $r; + $this->importUser = $r; } else { - $r = $this->import_user; + $r = $this->importUser; } return $r; } @@ -6079,7 +5757,7 @@ class Battle } break; } - return $this->get_chanse($rval) ? 1 : 0; + return $this->getChanse($rval) ? 1 : 0; } //Сохранение данные @@ -6105,11 +5783,15 @@ class Battle $uid2 = $this->atacks[$id]['uid2']; if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) { - $uid1 = $this->yhod_user($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], - $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']); + $uid1 = $this->yhod_user( + $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] + ); } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) { - $uid2 = $this->yhod_user($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], - $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']); + $uid2 = $this->yhod_user( + $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] + ); } $i = 1; @@ -6185,11 +5867,15 @@ class Battle $uid2 = $this->atacks[$id]['uid2']; if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) { - $uid1 = $this->yhod_user($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], - $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']); + $uid1 = $this->yhod_user( + $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] + ); } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) { - $uid2 = $this->yhod_user($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], - $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']); + $uid2 = $this->yhod_user( + $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] + ); } $i = 1; @@ -6249,11 +5935,15 @@ class Battle $uid2 = $this->atacks[$id]['uid2']; if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) { - $uid1 = $this->yhod_user($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], - $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']); + $uid1 = $this->yhod_user( + $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] + ); } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) { - $uid2 = $this->yhod_user($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], - $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']); + $uid2 = $this->yhod_user( + $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] + ); } $i = 1; @@ -6345,11 +6035,15 @@ class Battle $uid2 = $this->atacks[$id]['uid2']; if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) { - $uid1 = $this->yhod_user($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], - $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']); + $uid1 = $this->yhod_user( + $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] + ); } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) { - $uid2 = $this->yhod_user($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], - $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']); + $uid2 = $this->yhod_user( + $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] + ); } $i = 1; @@ -6827,8 +6521,7 @@ class Battle int $weapom_min = 0, int $weapom_max = 0, int $wp_type = 0, - ): array - { + ): array { $level = $st1['lvl']; $power_krit = round($st1['m3']); @@ -7479,11 +7172,15 @@ class Battle $uid2 = $this->atacks[$id]['uid2']; if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) { - $uid1 = $this->yhod_user($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], - $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod']); + $uid1 = $this->yhod_user( + $this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] + ); } elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) { - $uid2 = $this->yhod_user($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], - $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']); + $uid2 = $this->yhod_user( + $this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] + ); } $i = 1; @@ -7769,12 +7466,12 @@ class Battle Db::sql( 'update stats set last_hp = ?, tactic6 = ?, battle_yron = ?, battle_exp = ? where id = ?', [ - $this->users[$this->uids[$id1]]['last_hp'], - $this->users[$this->uids[$id1]]['tactic6'], - $this->users[$this->uids[$id1]]['battle_yron'], - $this->users[$this->uids[$id1]]['battle_exp'], - (int)$id1, - ] + $this->users[$this->uids[$id1]]['last_hp'], + $this->users[$this->uids[$id1]]['tactic6'], + $this->users[$this->uids[$id1]]['battle_yron'], + $this->users[$this->uids[$id1]]['battle_exp'], + (int)$id1, + ] ); $this->stats[$this->uids[$id1]]['battle_exp'] = $this->users[$this->uids[$id1]]['battle_exp']; @@ -7879,7 +7576,7 @@ class Battle $stat[$a]['a'] = $this->atacks[$id]['a' . $a]; $stat[$a]['b'] = $this->atacks[$id]['b' . $a]; - $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . '||bl1=' . $this->atacks[$id]['b' . $a] . '||bl2=' . $this->atacks[$id]['b' . $b] . '||time1=' . $this->atacks[$id]['time'] . '||time2=' . $this->atacks[$id]['time2'] . '||s' . $a . '=' . $s1 . '||s' . $b . '=' . $s2 . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2'] . ''; + $vLog = 'at1=00000||at2=00000||zb1=' . $this->stats[$this->uids[$u1]]['zonb'] . '||zb2=' . $this->stats[$this->uids[$u2]]['zonb'] . '||bl1=' . $this->atacks[$id]['b' . $a] . '||bl2=' . $this->atacks[$id]['b' . $b] . '||time1=' . $this->atacks[$id]['time'] . '||time2=' . $this->atacks[$id]['time2'] . '||s' . $a . '=' . $s1 . '||s' . $b . '=' . $s2 . '||t2=' . $this->users[$this->uids[$u2]]['team'] . '||t1=' . $this->users[$this->uids[$u1]]['team'] . '||login1=' . $this->users[$this->uids[$u1]]['login2'] . '||login2=' . $this->users[$this->uids[$u2]]['login2']; $mas = [ 'text' => '', @@ -7907,7 +7604,8 @@ class Battle $mas['text'] .= '{u1} пропустил свой ход.'; //Проверка сброс туманок mysql_query( - 'UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `uid` = "' . $u1 . '" AND `delete` = 0 AND `v1` = "priem" AND (`v2`=288 OR `v2`=287 OR `v2`=286 OR `v2`=273) LIMIT 1' + 'UPDATE `eff_users` SET `delete` = "' . time( + ) . '" WHERE `uid` = "' . $u1 . '" AND `delete` = 0 AND `v1` = "priem" AND (`v2`=288 OR `v2`=287 OR `v2`=286 OR `v2`=273) LIMIT 1' ); } } @@ -7930,13 +7628,13 @@ class Battle ]; $par = [ 'zona' => '{zn2_' . $at[$a]['atack'][$j][0] . '} ', - 'kyda' => $this->lg_zon[$at[$a]['atack'][$j][0]][rand( + 'kyda' => $this->lgZon[$at[$a]['atack'][$j][0]][rand( 0, - (count($this->lg_zon[$at[$a]['atack'][$j][0]]) - 1) + (count($this->lgZon[$at[$a]['atack'][$j][0]]) - 1) )], - 'chem' => $this->lg_itm[$wt[$at[$a]['atack'][$j]['wt']]][rand( + 'chem' => $this->lgItm[$wt[$at[$a]['atack'][$j]['wt']]][rand( 0, - (count($this->lg_itm[$wt[$at[$a]['atack'][$j]['wt']]]) - 1) + (count($this->lgItm[$wt[$at[$a]['atack'][$j]['wt']]]) - 1) )], ]; @@ -8556,7 +8254,8 @@ class Battle 'DELETE FROM `battle_act` WHERE `battle` = "' . $this->info['id'] . '" AND ((`uid2` = "' . $u->info['id'] . '" AND `uid1` = "' . $u->info['enemy'] . '") OR (`uid1` = "' . $u->info['id'] . '" AND `uid2` = "' . $u->info['enemy'] . '")) LIMIT 2' ); $d = mysql_query( - 'INSERT INTO `battle_act` (`battle`,`time`,`uid1`,`uid2`,`a1`,`b1`) VALUES ("' . $this->info['id'] . '","' . time() . '","' . $u->info['id'] . '","' . $u->info['enemy'] . '","' . $a . '","' . $b . '")' + 'INSERT INTO `battle_act` (`battle`,`time`,`uid1`,`uid2`,`a1`,`b1`) VALUES ("' . $this->info['id'] . '","' . time( + ) . '","' . $u->info['id'] . '","' . $u->info['enemy'] . '","' . $a . '","' . $b . '")' ); if (!$d) { $this->e = 'Не удалось нанести удар по противнику...'; @@ -8698,7 +8397,7 @@ class Battle $bi++; } //записываем статы - $this->stats[$i] = $u->getStats($pl, 0, 0, false, $this->cached, true); + $this->stats[$i] = $u->getStats($pl['id'], 0, 0, false, $this->cached, true); //Заносим старт if ($this->info['start2'] == 0) { if (!isset($ts[$this->users[$i]['team']])) { @@ -8791,7 +8490,7 @@ class Battle // $anl = Conversion::dataStringToArray($anl); - $vLog = 'time1=' . time() . '||s1=' . $this->users[$i]['sex'] . '||t1=' . $this->users[$i]['team'] . '||login1=' . $this->users[$i]['login'] . ''; + $vLog = 'time1=' . time() . '||s1=' . $this->users[$i]['sex'] . '||t1=' . $this->users[$i]['team'] . '||login1=' . $this->users[$i]['login']; $vLog .= '||s2=1||t2=' . $this->users[$i]['team'] . '||login2=' . $a['name'] . ' (Зверь ' . $this->users[$i]['login'] . ')'; $mas1 = [ @@ -8836,7 +8535,7 @@ class Battle mysql_query( 'UPDATE `users_animal` SET `eda` = `eda` - 1 WHERE `id` = "' . $a['id'] . '" LIMIT 1' ); - $this->get_comment(); + Log::addComment($this); } } } @@ -8935,7 +8634,8 @@ class Battle if (empty($this->stats[$id]['hp'])) { $this->stats[$id]['hp'] = $this->stats[$id]['hpNow']; } - Db::sql('insert into battle_users (battle,uid,time_enter,login,level,align,clan,hpAll,hp,hpStart,team) values (?,?,unix_timestamp(),?,?,?,?,?,?,?,?)', + Db::sql( + 'insert into battle_users (battle,uid,time_enter,login,level,align,clan,hpAll,hp,hpStart,team) values (?,?,unix_timestamp(),?,?,?,?,?,?,?,?)', [ $this->info['id'], $uid, @@ -8946,7 +8646,8 @@ class Battle $this->stats[$id]['hp'], $this->stats[$id]['hpNow'], $this->users[$id]['team'], - ]); + ] + ); } public function testZonbVis() diff --git a/_incl_data/class/Battle/Log.php b/_incl_data/class/Battle/Log.php new file mode 100644 index 00000000..4cfbc670 --- /dev/null +++ b/_incl_data/class/Battle/Log.php @@ -0,0 +1,180 @@ + после боя я этих <вырезано цензурой> обоих в <вырезано цензурой> и <вырезано цензурой>', + '<вырезано цензурой> каратисты фиговы', + ]; + $randomcomment = $comments[array_rand($comments)]; + $text = "{tm1} Комментатор: $randomcomment"; + + self::add( + [ + 'battle' => $battle->info['id'], + 'id_hod' => $battle->hodID, + 'text' => "{tm1} Комментатор: $randomcomment", + 'vars' => 'time1=' . time(), + 'type' => 1, + ] + ); + } +} \ No newline at end of file diff --git a/_incl_data/class/User.php b/_incl_data/class/User.php index bc0385cf..78279a18 100644 --- a/_incl_data/class/User.php +++ b/_incl_data/class/User.php @@ -643,8 +643,8 @@ class User ); $this->addAction( time(), 'frg', '[ ' . $this->info['login'] . ' ] ' . date( - 'd.m.Y H:i:s' - ) . ' [true] , balance: ' . $sb . ' / ' . $this->info['catch'] . ' / ' . $this->info['frg'] . ' ' + 'd.m.Y H:i:s' + ) . ' [true] , balance: ' . $sb . ' / ' . $this->info['catch'] . ' / ' . $this->info['frg'] . ' ' ); } else { mysql_query( @@ -655,8 +655,8 @@ class User if ($sb - 10 > $this->info['catch'] - $this->info['frg']) { $this->addAction( time(), 'frgfalse', '[ ' . $this->info['login'] . ' ] ' . date( - 'd.m.Y H:i:s' - ) . ' [false] , [' . ($sb - ($this->info['catch'] - $this->info['frg'])) . '] , balance: ' . $sb . ' | ' . $this->info['catch'] . ' | ' . $this->info['frg'] . ' ' + 'd.m.Y H:i:s' + ) . ' [false] , [' . ($sb - ($this->info['catch'] - $this->info['frg'])) . '] , balance: ' . $sb . ' | ' . $this->info['catch'] . ' | ' . $this->info['frg'] . ' ' ); } } @@ -744,7 +744,8 @@ class User 'UPDATE `items_users` SET `use_text` = "' . $itm['use_text'] . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1' ); mysql_query( - 'INSERT INTO `items_text` (`item_id`,`time`,`login`,`text`,`city`,`x`) VALUES ("' . $itm['id'] . '","' . time() . '","' . $this->info['login'] . '","' . mysql_real_escape_string( + 'INSERT INTO `items_text` (`item_id`,`time`,`login`,`text`,`city`,`x`) VALUES ("' . $itm['id'] . '","' . time( + ) . '","' . $this->info['login'] . '","' . mysql_real_escape_string( htmlspecialchars($txt, null) ) . '","' . $this->info['city'] . '","' . $sx . '")' ); @@ -790,7 +791,8 @@ class User $this->error = 'Персонаж уже проводит сделку'; } else { $ins = mysql_query( - 'INSERT INTO `transfers` (`uid1`,`uid2`,`city`,`room`,`time`,`text`,`start1`) VALUES ("' . $this->info['id'] . '","' . $t['id'] . '","' . $this->info['city'] . '","' . $this->info['room'] . '","' . time() . '","' . mysql_real_escape_string( + 'INSERT INTO `transfers` (`uid1`,`uid2`,`city`,`room`,`time`,`text`,`start1`) VALUES ("' . $this->info['id'] . '","' . $t['id'] . '","' . $this->info['city'] . '","' . $this->info['room'] . '","' . time( + ) . '","' . mysql_real_escape_string( htmlspecialchars($_POST['textarea'], null) ) . '","' . time() . '")' ); @@ -1971,7 +1973,7 @@ class User return $plid; } - public function addNewbot($id, $botDate, $clon, $logins_bot = null, $luser = null, $round = null) + public function addNewbot($id, $botDate = null, $clon = null, $logins_bot = null, $luser = null, $round = null): array|int { if ($clon != null) { $r = 0; @@ -2022,7 +2024,7 @@ class User unset($statss); } - $uid = Db::lastInsertId(); + $uid = (int)Db::lastInsertId(); //копируем статы Db::sql('insert into stats (clone, id, stats, hpNow, upLevel, bot, priems) values (?,?,?,1000000,?,1,?)', [$clon['id'], $uid, $clon['stats'], $clon['upLevel'], $clon['priems']]); @@ -2049,71 +2051,67 @@ class User if (!isset($bot['id'])) { return []; + } + if (isset($logins_bot[$bot['login']])) { + $logins_bot[$bot['login']]++; + $bot['login'] = $bot['login'] . ' (' . $logins_bot[$bot['login']] . ')'; } else { - if (isset($logins_bot[$bot['login']])) { - $logins_bot[$bot['login']]++; - $bot['login'] = $bot['login'] . ' (' . $logins_bot[$bot['login']] . ')'; - } else { - $logins_bot[$bot['login']] = 1; - } - - Db::sql( - "insert into users (align, login, level, pass, city, cityreg, name, sex, hobby, timereg, obraz, bot_id) + $logins_bot[$bot['login']] = 1; + } + Db::sql( + "insert into users (align, login, level, pass, city, cityreg, name, sex, hobby, timereg, obraz, bot_id) select align, ?, level, uuid(), 'Неведомые земли', 'Неведомые земли', name, sex, hobby, replace(time_reg, 100, unix_timestamp()), obraz, id from test_bot where id = ?", - [$bot['login'], $id] - ); + [$bot['login'], $id] + ); - $uid = Db::lastInsertId(); + $uid = Db::lastInsertId(); - if ($round > 0) { //Улучшаем мф. и статы и НР 1 раунд = +20% - $statss = Conversion::dataStringToArray($bot['stats']); + if ($round > 0) { //Улучшаем мф. и статы и НР 1 раунд = +20% + $statss = Conversion::dataStringToArray($bot['stats']); - $statss['s1'] = ceil($statss['s1'] * (1 + 0.20 * ($round))); - $statss['s2'] = ceil($statss['s2'] * (1 + 0.20 * ($round))); - $statss['s3'] = ceil($statss['s3'] * (1 + 0.20 * ($round))); - $statss['s4'] = ceil($statss['s4'] * (1 + 0.20 * ($round))); + $statss['s1'] = ceil($statss['s1'] * (1 + 0.20 * ($round))); + $statss['s2'] = ceil($statss['s2'] * (1 + 0.20 * ($round))); + $statss['s3'] = ceil($statss['s3'] * (1 + 0.20 * ($round))); + $statss['s4'] = ceil($statss['s4'] * (1 + 0.20 * ($round))); - $statss['hpAll'] = ceil($statss['hpAll'] * (1 + 0.20 * ($round))); - $statss['mpAll'] = ceil($statss['mpAll'] * (1 + 0.20 * ($round))); + $statss['hpAll'] = ceil($statss['hpAll'] * (1 + 0.20 * ($round))); + $statss['mpAll'] = ceil($statss['mpAll'] * (1 + 0.20 * ($round))); - $statss['m1'] = ceil($statss['m1'] * (1 + 0.20 * ($round))); - $statss['m2'] = ceil($statss['m2'] * (1 + 0.20 * ($round))); - $statss['m3'] = ceil($statss['m3'] * (1 + 0.20 * ($round))); - $statss['m4'] = ceil($statss['m4'] * (1 + 0.20 * ($round))); - $statss['m5'] = ceil($statss['m5'] * (1 + 0.20 * ($round))); - $statss['za'] = ceil($statss['za'] * (1 + 0.20 * ($round))); - $statss['zm'] = ceil($statss['zm'] * (1 + 0.20 * ($round))); - $bot['stats'] = Conversion::arrayToDataString($statss); - unset($statss); - } - - Db::sql('insert into stats (id, stats, hpNow, upLevel, bot) values (?,?,1000000,?,1)', [$uid, $bot['stats'], $bot['upLevel']]); - - $bot['id'] = $uid; - $bot['logins_bot'] = $logins_bot; - - //Выдаем предметы - $iu = explode(',', $bot['itemsUse']); - - $i = 0; - $w3b = 0; - - foreach ($iu as $item) { - $iditem = ItemsModel::addItem($item, $bot['id']); - $inslot = Db::getValue('select inslot from items_main where id = ?', [$item]) ?? 2000; - if ($inslot === 3) { - if ($w3b === 1) { - $inslot = 14; - } else { - $w3b = 1; - } - } - Db::sql('update items_users set inOdet = ? where id = ?', [$inslot, $iditem]); - } - - return $bot; + $statss['m1'] = ceil($statss['m1'] * (1 + 0.20 * ($round))); + $statss['m2'] = ceil($statss['m2'] * (1 + 0.20 * ($round))); + $statss['m3'] = ceil($statss['m3'] * (1 + 0.20 * ($round))); + $statss['m4'] = ceil($statss['m4'] * (1 + 0.20 * ($round))); + $statss['m5'] = ceil($statss['m5'] * (1 + 0.20 * ($round))); + $statss['za'] = ceil($statss['za'] * (1 + 0.20 * ($round))); + $statss['zm'] = ceil($statss['zm'] * (1 + 0.20 * ($round))); + $bot['stats'] = Conversion::arrayToDataString($statss); + unset($statss); } + Db::sql('insert into stats (id, stats, hpNow, upLevel, bot) values (?,?,1000000,?,1)', [$uid, $bot['stats'], $bot['upLevel']]); + + $bot['id'] = $uid; + $bot['logins_bot'] = $logins_bot; + + //Выдаем предметы + $iu = explode(',', $bot['itemsUse']); + + $i = 0; + $w3b = 0; + + foreach ($iu as $item) { + $iditem = ItemsModel::addItem($item, $bot['id']); + $inslot = Db::getValue('select inslot from items_main where id = ?', [$item]) ?? 2000; + if ($inslot === 3) { + if ($w3b === 1) { + $inslot = 14; + } else { + $w3b = 1; + } + } + Db::sql('update items_users set inOdet = ? where id = ?', [$inslot, $iditem]); + } + return $bot; } } @@ -2344,8 +2342,10 @@ class User { //fixme какая-то дичь тут. $item = Db::getRow('select uid, item_id, inGroup, inShop from items_users where id = ?', [$id]); - return Db::getValue('select count(id) from items_users where inShop = ? and item_id = ? and uid = ? and inGroup = ?', - [$item['inShop'], $item['item_id'], $item['uid'], $item['ingroup']]); + return Db::getValue( + 'select count(id) from items_users where inShop = ? and item_id = ? and uid = ? and inGroup = ?', + [$item['inShop'], $item['item_id'], $item['uid'], $item['ingroup']] + ); } public function obj_takeItem($id): void @@ -3605,7 +3605,8 @@ class User if ($po['sudba'] == '0') { $is2 .= ' '; } elseif ($po['sudba'] == '1') { - $is2 .= ' '; + $is2 .= ' '; } else { $is2 .= ' '; } @@ -3789,7 +3790,8 @@ class User $tr .= '
• Броня ' . $bn[$i] . ': ' . $po['add_mib' . $i] . '-' . $po['add_mab' . $i]; } if (isset($po['mf_mib']) && $po['mf_mib'] > 0) { - $tr .= ' '; + $tr .= ' '; } } $i++; @@ -3933,7 +3935,11 @@ class User if (isset($po['free_stats']) && $po['free_stats'] > 0) { $is2 .= '
Распределение статов:'; - $is2 .= '
Сила: ' . $po['add_s1'] . '
Ловкость: ' . $po['add_s2'] . '
Интуиция: ' . $po['add_s3'] . '
Интеллект: ' . $po['add_s5'] . '
'; + $is2 .= '
Сила: ' . $po['add_s1'] . '
Ловкость: ' . $po['add_s2'] . '
Интуиция: ' . $po['add_s3'] . '
Интеллект: ' . $po['add_s5'] . '
'; $is2 .= '• Осталось распределений: ' . $po['free_stats'] . ''; } @@ -3985,17 +3991,28 @@ class User } else { $is2 .= '
Мастерство владения мечами: ' . (0 + $po['add_a1']) . '
- Мастерство владения дубинами, булавами: ' . (0 + $po['add_a2']) . '
- Мастерство владения ножами, кастетами: ' . (0 + $po['add_a3']) . '
- Мастерство владения топорами, секирами: ' . (0 + $po['add_a4']) . '
- Мастерство владения магическими посохами: ' . (0 + $po['add_a5']) . '
- Мастерство владения стихией Огня: ' . (0 + $po['add_mg1']) . '
- Мастерство владения стихией Воздуха: ' . (0 + $po['add_mg2']) . '
- Мастерство владения стихией Воды: ' . (0 + $po['add_mg3']) . '
- Мастерство владения стихией Земли: ' . (0 + $po['add_mg4']) . '
- Мастерство владения магией Света: ' . (0 + $po['add_mg5']) . '
- Мастерство владения магией Тьмы: ' . (0 + $po['add_mg6']) . '
- Мастерство владения серой магией: ' . (0 + $po['add_mg7']) . '
+ Мастерство владения дубинами, булавами: ' . (0 + $po['add_a2']) . '
+ Мастерство владения ножами, кастетами: ' . (0 + $po['add_a3']) . '
+ Мастерство владения топорами, секирами: ' . (0 + $po['add_a4']) . '
+ Мастерство владения магическими посохами: ' . (0 + $po['add_a5']) . '
+ Мастерство владения стихией Огня: ' . (0 + $po['add_mg1']) . '
+ Мастерство владения стихией Воздуха: ' . (0 + $po['add_mg2']) . '
+ Мастерство владения стихией Воды: ' . (0 + $po['add_mg3']) . '
+ Мастерство владения стихией Земли: ' . (0 + $po['add_mg4']) . '
+ Мастерство владения магией Света: ' . (0 + $po['add_mg5']) . '
+ Мастерство владения магией Тьмы: ' . (0 + $po['add_mg6']) . '
+ Мастерство владения серой магией: ' . (0 + $po['add_mg7']) . '
'; $is2 .= 'Осталось распределений: ' . $mx1; } @@ -4146,14 +4163,16 @@ class User mysql_query('SELECT * FROM `clan` WHERE `id` = "' . $po['toclan1'][0] . '" LIMIT 1') ); if (isset($clpo['id'])) { - $is2 .= '
Предмет принадлежит клану ' . $clpo['name'] . ''; + $is2 .= '
Предмет принадлежит клану ' . $clpo['name'] . ''; $plpo = mysql_fetch_array( mysql_query( 'SELECT `id`,`login`,`cityreg` FROM `users` WHERE `id` = "' . $po['toclan1'][1] . '" LIMIT 1' ) ); if (isset($plpo['id'])) { - $is2 .= ' (Дар игрока ' . $plpo['login'] . ')'; + $is2 .= ' (Дар игрока ' . $plpo['login'] . ')'; if ($plpo['login'] == $this->info['login']) { if (isset($_GET['backmyitm'])) { $pl['inOdet'] = 0; @@ -4299,7 +4318,8 @@ class User ) . '" LIMIT 1' ) ); - $is1 .= 'Предмет у игрока
' . $yui['login'] . '
'; + $is1 .= 'Предмет у игрока
' . $yui['login'] . '
'; if ($this->info['tt'][14][0] == 1 || ($this->info['id'] == $us_1)) { $is1 .= '
Изъять предмет'; } @@ -4647,13 +4667,15 @@ class User } if ($pl['magic_inc'] && $pl['type'] == 30) { //используем эликсир - $pldate = '
"' . $pl['name'] . '"
Использовать сейчас?
'; + $pldate = '
"' . $pl['name'] . '"
Использовать сейчас?
'; $useUrl = 'top.useiteminv(\'' . (0 + $pl['id']) . '\',\'' . $pl['img'] . '\',\'' . $pl['img'] . '\',1,\'' . $pldate . '\',\'' . (0 + $_GET['otdel']) . '\');'; } elseif ($pl['magic_inc'] && $pl['type'] == 29) { //используем заклятие if (isset($po['useOnLogin']) && !isset($po['zazuby'])) { //на персонажа $useUrl = 'top.useMagic(\'' . $pl['name'] . '\',' . (0 + $pl['id']) . ',\'' . $pl['img'] . '\',1,\'main.php?' . $inv1 . 'otdel=' . ((int)$_GET['otdel']) . '&use_pid=' . $pl['id'] . '&rnd=' . $code . '\');'; } else { //просто использование (на себя, либо без указания предмета\логина) - $pldate = '
"' . $pl['name'] . '"
Использовать сейчас?
'; + $pldate = '
"' . $pl['name'] . '"
Использовать сейчас?
'; $useUrl = 'top.useiteminv(\'' . (0 + $pl['id']) . '\',\'' . $pl['img'] . '\',\'' . $pl['img'] . '\',1,\'' . $pldate . '\',\'' . (0 + $_GET['otdel']) . '\',' . (0 + $_GET['otdel']) . ');'; } //на предмет @@ -4700,7 +4722,8 @@ class User if ($pl['group'] > 0) { $is1 .= '
'; if ($this->itemsX($pl['id']) < $pl['group_max']) { - $is1 .= ''; + $is1 .= ''; } if ($this->itemsX($pl['id']) > 1) { $tbl = '
@@ -4727,7 +4750,8 @@ class User if ($d[1] == 1) { //можно выкинуть if (!isset($po['nodelete'])) { - $is1 .= '
Предмет ' . $pl['name'] . ' будет утерян, вы уверены ?
\',\'' . intval( $_GET['otdel'] ) . Config::img() . ' / i / clear . gif">'; } @@ -5015,7 +5039,8 @@ class User $itm['data'] = Conversion::dataStringToArray($itm['data']); unset($itm['data']['frompisher']); $itm['data'] = Conversion::arrayToDataString($itm['data']); - if ($pl['data'] == $itm['data'] && $pl['name'] == $itm['name'] && $itm['iznosMAX'] == $pl['iznosMAX'] && $pl['iznosNOW'] == 0 && ($pl['timeOver'] == 0 || $pl['timeOver'] > time()) && $pl['gift'] == $itm['gift']) { + if ($pl['data'] == $itm['data'] && $pl['name'] == $itm['name'] && $itm['iznosMAX'] == $pl['iznosMAX'] && $pl['iznosNOW'] == 0 && ($pl['timeOver'] == 0 || $pl['timeOver'] > time( + )) && $pl['gift'] == $itm['gift']) { $upd = mysql_query( 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `inGroup` = "' . $itm['inGroup'] . '" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); @@ -5070,7 +5095,8 @@ class User $snIt = 0; //Проверяем одетые вещи и вещи с сроком годности - $itm = Db::getRow("select + $itm = Db::getRow( + "select items_main.id, items_users.id as iduid, data, @@ -5100,7 +5126,8 @@ class User srok > 0 or (timeOver !=0 and timeOver < unix_timestamp()) ) and uid = ?", - [$u['id']]); + [$u['id']] + ); $t = $this->items['tr']; @@ -5318,8 +5345,10 @@ class User if ($e['id_eff'] == 2) { //Проверка - $et = Db::getRow("select id, time from actions where uid = ? and vars like '%read%' and vals = (select id from items_main where name = ? limit 1)", - [$e['uid'], str_replace('Изучение: ', '', $e['name'])]); + $et = Db::getRow( + "select id, time from actions where uid = ? and vars like '%read%' and vals = (select id from items_main where name = ? limit 1)", + [$e['uid'], str_replace('Изучение: ', '', $e['name'])] + ); $et = isset($et['id']) && $et['time'] >= time(); } else { @@ -5348,8 +5377,10 @@ class User if ($u['battle'] > 0) { $lastHOD = Db::getValue('select if(type != 6, id_hod + 1, id_hod) as id_hod from battle_logs where battle = ? order by id_hod desc limit 1', [$u['battle']]); if (!empty($lastHOD)) { - Db::sql("insert into battle_logs (time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type) values (unix_timestamp(),?,?,?,?,'','','','',6)", - [$u['battle'], $lastHOD, "{tm1}$text у игрока {u1}", "login1={$u['login']}||t1={$u['team']}||time=" . time()]); + Db::sql( + "insert into battle_logs (time, battle, id_hod, text, vars, zona1, zonb1, zona2, zonb2, type) values (unix_timestamp(),?,?,?,?,'','','','',6)", + [$u['battle'], $lastHOD, "{tm1}$text у игрока {u1}", "login1={$u['login']}||t1={$u['team']}||time=" . time()] + ); } } } @@ -5359,8 +5390,10 @@ class User public function info_remont(): string { $r = ''; - $sp = Db::getRows('select iznosNOW, iznosMAX, name from items_users left join items_main on item_id = items_main.id where uid = ? and inShop = 0 and inOdet between 1 and 18 limit 18', - [$this->info['id']]); + $sp = Db::getRows( + 'select iznosNOW, iznosMAX, name from items_users left join items_main on item_id = items_main.id where uid = ? and inShop = 0 and inOdet between 1 and 18 limit 18', + [$this->info['id']] + ); foreach ($sp as $pl) { if ($pl['iznosNOW'] <= ceil($pl['iznosMAX'] * 0.80)) { continue; @@ -5604,7 +5637,8 @@ class User ); $this->error = 'Вам нехорошо...'; } elseif (mysql_query( - 'UPDATE `items_users` SET `uid` = "' . $this->info['id'] . '",`lastUPD` = "' . time() . '",`gift` = "' . $itm['gift'] . '",`gtxt1` = "' . $itm['gtxt1'] . '",`gtxt2` = "Предмет из упаковки. Дата запаковки: ' . date( + 'UPDATE `items_users` SET `uid` = "' . $this->info['id'] . '",`lastUPD` = "' . time( + ) . '",`gift` = "' . $itm['gift'] . '",`gtxt1` = "' . $itm['gtxt1'] . '",`gtxt2` = "Предмет из упаковки. Дата запаковки: ' . date( 'd.m.Y H:i:s', $itmin['time_create'] ) . '" WHERE `id` = "' . $itmin['id'] . '" LIMIT 1' )) { @@ -5635,7 +5669,8 @@ class User $pid = ItemsModel::addItem($s['id'], $this->info['id']); if ($pid > 0) { mysql_query( - 'UPDATE `items_users` SET `lastUPD` = "' . time() . '",`gift` = "' . $itm['gift'] . '" WHERE `id` = "' . $pid . '" AND `uid` = "' . $this->info['id'] . '" LIMIT 1' + 'UPDATE `items_users` SET `lastUPD` = "' . time( + ) . '",`gift` = "' . $itm['gift'] . '" WHERE `id` = "' . $pid . '" AND `uid` = "' . $this->info['id'] . '" LIMIT 1' ); } $j++; @@ -5957,14 +5992,16 @@ LIMIT 1' ); $col = $col[0]; mysql_query( - 'UPDATE `items_users` SET `lastUPD`="' . time() . '",`delete`="' . time() . '" WHERE `item_id`="' . $itm['item_id'] . '" AND `inOdet` = 0 AND `delete` < 100000 AND `uid` = "' . $itm['uid'] . '" AND `data` NOT LIKE "%nodelete%"' . $whr + 'UPDATE `items_users` SET `lastUPD`="' . time() . '",`delete`="' . time( + ) . '" WHERE `item_id`="' . $itm['item_id'] . '" AND `inOdet` = 0 AND `delete` < 100000 AND `uid` = "' . $itm['uid'] . '" AND `data` NOT LIKE "%nodelete%"' . $whr ); $this->error = 'Предметы "' . $itm['name'] . ' (x' . ($col + 1) . ')" выброшены'; Delo::add( 1, 'System.inventory', $uid, - '"System.inventory": Предметы "' . $itm['name'] . ' (x' . $col . ')" [itm:' . $itm['id'] . '=' . time() . '] были выброшены.', + '"System.inventory": Предметы "' . $itm['name'] . ' (x' . $col . ')" [itm:' . $itm['id'] . '=' . time( + ) . '] были выброшены.', ); } else { $this->error = 'Предмет "' . $itm['name'] . '" выброшен'; @@ -6036,7 +6073,8 @@ LIMIT 1' mysql_query( 'UPDATE `stats` SET `exp` = "12499" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1' ); - echo ''; + echo ''; } else { mysql_query( 'UPDATE `items_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $itm['id'] . '" LIMIT 1' @@ -6478,7 +6516,8 @@ LIMIT 1' $r = 'Вы успешно изъяли предмет "' . $itm_['name'] . '"
'; $col = $this->itemsX(((int)$id)); mysql_query( - 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time() . '", "6", "' . $user['login'] . '", "' . $itm_['name'] . ' (x' . $col . ') Ид : [' . $id . '] | У персонажа : [' . $itm_['uid'] . ']", "' . $user['id'] . '")' + 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time( + ) . '", "6", "' . $user['login'] . '", "' . $itm_['name'] . ' (x' . $col . ') Ид : [' . $id . '] | У персонажа : [' . $itm_['uid'] . ']", "' . $user['id'] . '")' ); mysql_query( 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "-21' . $res['id'] . '" ' . $o . ' WHERE `id` = "' . $id . '" LIMIT 1' @@ -6509,7 +6548,8 @@ LIMIT 1' if ($user['inTurnir'] == 0 && $user['inTurnirnew'] == 0) { $col = $this->itemsX(((int)$id)); mysql_query( - 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time() . '", "5", "' . $user['login'] . '", "' . $itm_['name'] . ' (x' . $col . ') Ид : [' . $id . '] Хозяин : [' . $cls . ']", "' . $user['id'] . '")' + 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time( + ) . '", "5", "' . $user['login'] . '", "' . $itm_['name'] . ' (x' . $col . ') Ид : [' . $id . '] Хозяин : [' . $cls . ']", "' . $user['id'] . '")' ); mysql_query( 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "' . $user['id'] . '" WHERE `id` = "' . $id . '" LIMIT 1' @@ -6551,7 +6591,8 @@ LIMIT 1' 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "' . $user['id'] . '", `data` = "' . $pl['data'] . '" WHERE `id` = "' . $pl['id'] . '"' ); mysql_query( - 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time() . '", "' . $type . '", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")' + 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time( + ) . '", "' . $type . '", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")' ); } elseif ($pl['uid'] == $user['id']) { $col = $this->itemsX(((int)$pl['id'])); @@ -6562,7 +6603,8 @@ LIMIT 1' 'UPDATE `items_users` SET `lastUPD` = "' . time() . '", `uid` = "-21' . $user['clan'] . '" WHERE `id` = "' . $pl['id'] . '"' ); mysql_query( - 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time() . '", "9", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")' + 'INSERT INTO `clan_operations` (`clan`, `time`, `type`, `text`, `val`, `uid`) VALUES ("' . $res['id'] . '", "' . time( + ) . '", "9", "' . $user['login'] . '", "' . $it_n['name'] . ' (x' . $col . ') Ид : [' . $pl['id'] . ']", "' . $user['id'] . '")' ); } } diff --git a/_incl_data/class/priem/2.php b/_incl_data/class/priem/2.php index b7fa2b50..d9453ebe 100644 --- a/_incl_data/class/priem/2.php +++ b/_incl_data/class/priem/2.php @@ -1,118 +1,114 @@ atacks[$id]['uid1']; - $uid2 = $btl->atacks[$id]['uid2']; - if( $uid == $uid1 ) { - $a = 1; - $b = 2; - $u1 = $uid1; - $u2 = $uid2; - }elseif( $uid == $uid2 ) { - $a = 2; - $b = 1; - $u1 = $uid2; - $u2 = $uid1; - } - if( isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { - mysql_query('UPDATE `eff_users` SET `delete` = "'.time().'" WHERE `id` = "'.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].'" AND `uid` = "'.$uid.'" LIMIT 1'); - unset($btl->stats[$btl->uids[$uid]]['u_priem'][$j_id]); - } - // - // -- конец приема - return $at; - }; - unset( $pr_used_this ); -}elseif( isset($pr_used_this) ) { - $fx_priem = function( $id , $at , $uid, $j_id ) { - // -- начало приема - global $u, $btl; - // - //Параметры приема - $pvr['used'] = 0; - // - $uid1 = $btl->atacks[$id]['uid1']; - $uid2 = $btl->atacks[$id]['uid2']; - if( $uid == $uid1 ) { - $a = 1; - $b = 2; - $u1 = $uid1; - $u2 = $uid2; - }elseif( $uid == $uid2 ) { - $a = 2; - $b = 1; - $u1 = $uid2; - $u2 = $uid1; - } - if( $a > 0 ) { - $j = 0; $k = 0; $wp = 3; - while($j < count($at['p'][$a]['atack'])) { - if( isset($at['p'][$a]['atack'][$j]['yron']) && ( - $at['p'][$a]['atack'][$j][1] == 1 || - $at['p'][$a]['atack'][$j][1] == 4 || - $at['p'][$a]['atack'][$j][1] == 5 )) { - if( $pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id]) ) { - // - $pvr['hp'] = 4; - $pvr['hp'] = $btl->testYronPriem( $u1, $u2, 12, $pvr['hp'], -1, true, false, 0 ); - $pvr['mg'] = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "'.$u2.'" AND `v2` = "249" AND `delete` = 0 LIMIT 1')); - if( $pvr['hp'] <= 1 && isset($pvr['mg'])) { - $pvr['hp'] = 0; - $at['p'][$a]['atack'][$j]['yron']['y'] = 1; - $at['p'][$a]['atack'][$j]['yron']['r'] = -1; - $at['p'][$a]['atack'][$j]['yron']['k'] = 1; - $at['p'][$a]['atack'][$j]['yron']['m_k'] = 1; - $at['p'][$a]['atack'][$j]['yron']['m_y'] = 1; - } - else - // - { - $at['p'][$a]['atack'][$j]['yron']['y'] += $pvr['hp']; - $at['p'][$a]['atack'][$j]['yron']['r'] -= $pvr['hp']; - $at['p'][$a]['atack'][$j]['yron']['k'] += $pvr['hp']; - $at['p'][$a]['atack'][$j]['yron']['m_y'] += $pvr['hp']; - $at['p'][$a]['atack'][$j]['yron']['m_k'] += $pvr['hp']; - } - //$at['p'][$a]['atack'][$j]['yron'] = $btl->testYronPriemAttack( 2 , $u1 , $u2 , $at['p'][$a]['atack'][$j]['yron'] ); - - // - $at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(2,'.(0+$uid).','.$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3].'); - $this->priemAddLog( '.$id.', '.$a.', '.$b.', '.$u1.', '.$u2.', - "'.$btl->stats[$btl->uids[$u1]]['effects'][$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0]]['name'].'", - "{tm1} '.$btl->addlt($a , 17 , $btl->users[$btl->uids[$u1]]['sex'] , NULL).'", - '.($btl->hodID + 1).' );'; - // - - $at['p'][$a]['atack'][$j]['yron']['used'][] = array($j_id,$uid,$pvr['used']); - $at['p'][$a]['atack'][$j]['yron']['kill'][] = array($j_id,$uid,$pvr['kill']); - // - $at['p'][$a]['priems']['kill'][$uid][$j_id] = true; - } - } - $j++; - } - } - // -- конец приема - return $at; - }; - unset( $pr_used_this ); -}else{ - //Действие при клике - $this->addEffPr($pl,$id); +$pvr = []; +if (isset($pr_tested_this)) { + $fx_priem = function ($id, $at, $uid, $j_id) { + // -- начало приема + global $btl; + + //Параметры приема + $pvr['used'] = 0; + + $uid1 = $btl->atacks[$id]['uid1']; + $uid2 = $btl->atacks[$id]['uid2']; + if ($uid == $uid1) { + $a = 1; + $b = 2; + $u1 = $uid1; + $u2 = $uid2; + } elseif ($uid == $uid2) { + $a = 2; + $b = 1; + $u1 = $uid2; + $u2 = $uid1; + } + if (isset($at['p'][$a]['priems']['kill'][$uid][$j_id])) { + mysql_query('UPDATE `eff_users` SET `delete` = "' . time() . '" WHERE `id` = "' . $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3] . '" AND `uid` = "' . $uid . '" LIMIT 1'); + unset($btl->stats[$btl->uids[$uid]]['u_priem'][$j_id]); + } + + // -- конец приема + return $at; + }; + unset($pr_used_this); +} elseif (isset($pr_used_this)) { + $fx_priem = function ($id, $at, $uid, $j_id) { + // -- начало приема + global $btl; + + //Параметры приема + $pvr['used'] = 0; + + $uid1 = $btl->atacks[$id]['uid1']; + $uid2 = $btl->atacks[$id]['uid2']; + if ($uid == $uid1) { + $a = 1; + $b = 2; + $u1 = $uid1; + $u2 = $uid2; + } elseif ($uid == $uid2) { + $a = 2; + $b = 1; + $u1 = $uid2; + $u2 = $uid1; + } + if ($a > 0) { + $j = 0; + $k = 0; + $wp = 3; + while ($j < count($at['p'][$a]['atack'])) { + if (isset($at['p'][$a]['atack'][$j]['yron']) && ( + $at['p'][$a]['atack'][$j][1] == 1 || + $at['p'][$a]['atack'][$j][1] == 4 || + $at['p'][$a]['atack'][$j][1] == 5)) { + if ($pvr['used'] == 0 && !isset($at['p'][$a]['priems']['kill'][$uid][$j_id])) { + // + $pvr['hp'] = 4; + $pvr['hp'] = $btl->testYronPriem($u1, $u2, 12, $pvr['hp'], -1, true, false, 0); + $pvr['mg'] = mysql_fetch_array(mysql_query('SELECT * FROM `eff_users` WHERE `uid` = "' . $u2 . '" AND `v2` = "249" AND `delete` = 0 LIMIT 1')); + if ($pvr['hp'] <= 1 && isset($pvr['mg'])) { + $pvr['hp'] = 0; + $at['p'][$a]['atack'][$j]['yron']['y'] = 1; + $at['p'][$a]['atack'][$j]['yron']['r'] = -1; + $at['p'][$a]['atack'][$j]['yron']['k'] = 1; + $at['p'][$a]['atack'][$j]['yron']['m_k'] = 1; + $at['p'][$a]['atack'][$j]['yron']['m_y'] = 1; + } else { + $at['p'][$a]['atack'][$j]['yron']['y'] += $pvr['hp']; + $at['p'][$a]['atack'][$j]['yron']['r'] -= $pvr['hp']; + $at['p'][$a]['atack'][$j]['yron']['k'] += $pvr['hp']; + $at['p'][$a]['atack'][$j]['yron']['m_y'] += $pvr['hp']; + $at['p'][$a]['atack'][$j]['yron']['m_k'] += $pvr['hp']; + } + + $at['p'][$a]['atack'][$j]['yron']['plog'][] = '$this->deleffm(2,' . (0 + $uid) . ',' . $btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][3] . '); + $this->priemAddLog( ' . $id . ', ' . $a . ', ' . $b . ', ' . $u1 . ', ' . $u2 . ', + "' . $btl->stats[$btl->uids[$u1]]['effects'][$btl->stats[$btl->uids[$uid]]['u_priem'][$j_id][0]]['name'] . '", + "{tm1} ' . $btl->addlt($a, 17, $btl->users[$btl->uids[$u1]]['sex'], null) . '", + ' . ($btl->hodID + 1) . ' );'; + + + $at['p'][$a]['atack'][$j]['yron']['used'][] = [$j_id, $uid, $pvr['used']]; + $at['p'][$a]['atack'][$j]['yron']['kill'][] = [$j_id, $uid, $pvr['kill']]; + + $at['p'][$a]['priems']['kill'][$uid][$j_id] = true; + } + } + $j++; + } + } + // -- конец приема + return $at; + }; + unset($pr_used_this); +} else { + //Действие при клике + $this->addEffPr($pl, $id); } unset($pvr); -?> \ No newline at end of file