9913 lines
466 KiB
PHP
9913 lines
466 KiB
PHP
<?php
|
|
|
|
class Battle
|
|
{
|
|
|
|
public function __construct()
|
|
{
|
|
ignore_user_abort(true);
|
|
}
|
|
|
|
public function maginfoattack($u1, $u2, $type): string
|
|
{
|
|
/*
|
|
1 - îãîíü,
|
|
2 - âîçäóõ,
|
|
3 - âîäà,
|
|
4 - çåìëÿ
|
|
*/
|
|
$v_l = str_replace(' ', ' ', $this->users[$this->uids[$u1]]['login']);
|
|
$v_z = 0 + $this->stats[$this->uids[$u2]]['zm' . $type]; //çàùèòà öåëè
|
|
$v_p = 0 + round(
|
|
($this->stats[$this->uids[$u1]]['pzm' . $type] + $this->stats[$this->uids[$u1]]['pzm']) * 0.4
|
|
); //ïîäàâëåíèå çàùèòû îò ìàãèè
|
|
$v_m = 0 + $this->stats[$this->uids[$u1]]['pm' . $type]; //ìîùíîñòü ìàãà
|
|
//
|
|
return ' magelogin=' . $v_l . ' onMouseOver=top.hi(this,maginfo(' . $v_z . ',' . $v_p . ',' . $v_m . ',this),event,3,1,1,1,null); onMouseOut=top.hic(); onMouseDown=top.hic(); ';
|
|
}
|
|
|
|
public function typeBattle(int $x): array
|
|
{
|
|
$r = [0, 0, 'Îáû÷íûé ïîåäèíîê', 'Êðîâàâûé Ïîåäèíîê'];
|
|
if ($x >= 50000 && $x < 100000) {
|
|
$r = [25, 50, 'Âåëèêàÿ Áèòâà', 'Êðîâàâàÿ Áèòâà'];
|
|
} elseif ($x < 500000) {
|
|
$r = [50, 75, 'Âåëè÷àéøàÿ Áèòâà', 'Êðîâàâàÿ Ðåçíÿ'];
|
|
} elseif ($x < 1000000) {
|
|
$r = [75, 100, 'Èñòîðè÷åñêàÿ Áèòâà', 'Êðîâàâàÿ Ñå÷à'];
|
|
} elseif ($x < 2500000) {
|
|
$r = [100, 125, 'Ýïîõàëüíàÿ Áèòâà', 'Êðîâàâîå Ïîáîèùå'];
|
|
} elseif ($x >= 5000000) {
|
|
$r = [150, 150, 'Ñóäíûé Äåíü', 'Ñóäíûé Äåíü'];
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
public array $mncolor = [
|
|
1 => '006699',
|
|
2 => '006699',
|
|
3 => '006699',
|
|
4 => '006699',
|
|
5 => '006699',
|
|
6 => '006699',
|
|
7 => '006699',
|
|
]; //íå êðèò
|
|
public array $mcolor = [
|
|
1 => 'A00000',
|
|
2 => '008080',
|
|
3 => '0000FF',
|
|
4 => 'A52A2A',
|
|
5 => '006699',
|
|
6 => '006699',
|
|
7 => '006699',
|
|
]; //íå êðèò
|
|
public array $mname = [
|
|
'îãîíü' => 1,
|
|
'âîçäóõ' => 2,
|
|
'âîäà' => 3,
|
|
'çåìëÿ' => 4,
|
|
'ñâåò' => 5,
|
|
'òüìà' => 6,
|
|
'ñåðàÿ' => 7,
|
|
];
|
|
public array $prm = [
|
|
/*
|
|
act: 1 - êîãäà ïåðñîíàæ ïîëó÷àåò ïîâðåæäåíèå
|
|
2 - êîãäà ïåðñîíàæ íàíîñèò óäàð
|
|
type_of: 1 - óâîðîò
|
|
2 - êðèò
|
|
3 - àòàêà
|
|
4 - çàùèòà
|
|
5 - ïðî÷åå
|
|
*/
|
|
1 => ['name' => 'Ïðèêðûòüñÿ', 'act' => 1, 'type_of' => 5],
|
|
2 => ['name' => 'Âëîìèòü', 'act' => 2, 'type_of' => 3],
|
|
4 => ['name' => 'Ñèëüíûé óäàð', 'act' => 2, 'type_of' => 3],
|
|
7 => ['name' => 'Àêòèâíàÿ çàùèòà', 'act' => 1, 'type_of' => 4],
|
|
290 => ['name' => 'Âûòÿãèâàíèå äóøè', 'act' => 1, 'type_of' => 4],
|
|
//Êàíàëèçàöèÿ
|
|
294 => ['name' => 'Çëîâîííàÿ Âîäà', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
|
|
295 => ['name' => 'Ïðîòêíóòü', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
|
|
296 => ['name' => 'Ãíèëàÿ Êðîâü', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
|
|
297 => ['name' => 'Ñîáðàòüñÿ', 'act' => 2, 'type_of' => 0, 'moment' => 3],
|
|
298 => ['name' => 'Ïðèêàç Ñëàáîñòè', 'act' => 2, 'type_of' => 3],
|
|
141 => ['name' => 'Ïðèçðà÷íàÿ çàùèòà', 'act' => 2, 'type_of' => 4],
|
|
147 => ['name' => 'Ïðèçðà÷íûé êèíæàë', 'act' => 2, 'type_of' => 4],
|
|
148 => ['name' => 'Ïðèçðà÷íûé òîïîð', 'act' => 2, 'type_of' => 4],
|
|
149 => ['name' => 'Ïðèçðà÷íûé óäàð', 'act' => 2, 'type_of' => 4],
|
|
150 => ['name' => 'Ïðèçðà÷íîå ëåçâèå', 'act' => 2, 'type_of' => 4],
|
|
142 => ['name' => 'Ïðèçðà÷íûé îãîíü', 'act' => 2, 'type_of' => 4],
|
|
144 => ['name' => 'Ïðèçðà÷íûé âîçäóõ', 'act' => 2, 'type_of' => 4],
|
|
146 => ['name' => 'Ïðèçðà÷íàÿ çåìëÿ', 'act' => 2, 'type_of' => 4],
|
|
145 => ['name' => 'Ïðèçðà÷íàÿ âîäà', 'act' => 2, 'type_of' => 4],
|
|
8 => ['name' => 'Òàíåö âåòðà', 'act' => 1, 'type_of' => 1],
|
|
9 => ['name' => 'Äèêàÿ óäà÷à', 'act' => 2, 'type_of' => 3],
|
|
10 => ['name' => 'Ïðåäâèäåíèå', 'act' => 1, 'type_of' => 1],
|
|
11 => ['name' => 'Óäà÷íûé óäàð', 'act' => 2, 'type_of' => 3],
|
|
45 => ['name' => 'Ïîëíàÿ çàùèòà', 'act' => 1, 'type_of' => 4],
|
|
47 => ['name' => 'Ñëåïàÿ óäà÷à', 'act' => 2, 'type_of' => 2],
|
|
48 => ['name' => 'Òàíåö ëåçâèé', 'act' => 1, 'type_of' => 1],
|
|
49 => ['name' => 'Âòîðîå äûõàíèå', 'act' => 1, 'type_of' => 1],
|
|
138 => ['name' => 'Ñîêðóøàþùèé óäàð', 'act' => 2, 'type_of' => 3],
|
|
140 => ['name' => 'Àáñîëþòíàÿ çàùèòà', 'act' => 1, 'type_of' => 4],
|
|
193 => ['name' => 'Óñèëåííûå óäàðû', 'act' => 2, 'type_of' => 3],
|
|
204 => ['name' => 'Îáðå÷¸ííîñòü', 'act' => 2, 'type_of' => 0, 'moment' => 3],
|
|
211 => ['name' => 'Àãðåññèâíàÿ çàùèòà', 'act' => 1, 'type_of' => 4],
|
|
213 => ['name' => 'Êîâàðíûé Óõîä', 'act' => 1, 'type_of' => 4],
|
|
215 => ['name' => 'Ñêðûòàÿ ëîâêîñòü', 'act' => 1, 'type_of' => 1],
|
|
216 => ['name' => 'Ñêðûòàÿ ñèëà', 'act' => 2, 'type_of' => 2],
|
|
217 => ['name' => 'Ðàçãàäàòü òàêòèêó', 'act' => 2, 'type_of' => 0, 'moment' => 3],
|
|
219 => ['name' => 'Òî÷íûé óäàð', 'act' => 2, 'type_of' => 3],
|
|
220 => ['name' => 'Ñòàâêà íà îïåðåæåíèå', 'act' => 2, 'type_of' => 0, 'moment' => 3],
|
|
222 => ['name' => 'Ïîñëåäíèé óäàð', 'act' => 2, 'type_of' => 3],
|
|
225 => ['name' => 'Ìàãè÷åñêàÿ çàùèòà', 'act' => 1, 'type_of' => 4],
|
|
226 => ['name' => 'Âîçìåçäèå', 'act' => 1, 'type_of' => 4],
|
|
231 => ['name' => 'Ãëóõàÿ çàùèòà', 'act' => 2, 'type_of' => 0, 'moment' => 3],
|
|
234 => ['name' => 'Îñòîðîæíîñòü', 'act' => 2, 'type_of' => 4],
|
|
235 => ['name' => 'Øîêèðóþùèé óäàð', 'act' => 2, 'type_of' => 3],
|
|
342 => ['name' => 'Êðóãîâàÿ Çàùèòà', 'act' => 0, 'type_of' => 0],
|
|
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]
|
|
,
|
|
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]
|
|
,
|
|
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]
|
|
,
|
|
305 => ['name' => 'Êðîâîæàäíîñòü', 'act' => 2, 'type_of' => 0, 'moment' => 0, 'moment_end' => 3],
|
|
];
|
|
|
|
//Ñîõðàíÿåì ëîã â àðõèê
|
|
public function saveLogs($id, $type)
|
|
{
|
|
if ($type == 'all') {
|
|
$type = '';
|
|
mysql_query(
|
|
'INSERT INTO `battle_logs_save` SELECT `id`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type` FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` <= ' . ($this->hodID) . ''
|
|
);
|
|
} else {
|
|
mysql_query(
|
|
'INSERT INTO `battle_logs_save` SELECT `id`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type` FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` <= ' . ($this->hodID - 5) . ''
|
|
);
|
|
}
|
|
mysql_query('DELETE FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" ' . $type . '');
|
|
mysql_query('DELETE FROM `battle_stat` WHERE `battle` < "' . ($this->info['id'] - 100) . '" ');
|
|
mysql_query('DELETE FROM `battle_actions` WHERE `btl` = "' . $this->info['id'] . '" ');
|
|
|
|
}
|
|
|
|
public function hphe($uid, $hp, $false_t7 = false)
|
|
{
|
|
global $u;
|
|
if (!isset($this->stats[$this->uids[$uid]])) {
|
|
echo 'WARNING! ÎØÈÁÊÀ! ÏÎÒÅÐßÍÀ ÏÅÐÅÌÅÍÍÀß ÇÄÎÐÎÂÜß ÏÅÐÑÎÍÀÆÀ!';
|
|
} else {
|
|
$hpnow = floor($this->stats[$this->uids[$uid]]['hpNow']);
|
|
$hpall = $this->stats[$this->uids[$uid]]['hpAll'];
|
|
if ($hp > 0) {
|
|
//Õèëÿåì
|
|
if ($hpnow + $hp > $hpall) {
|
|
$hpli = $hpnow + $hp - $hpall;
|
|
$hp -= $hpli;
|
|
}
|
|
if (isset($this->stats[$this->uids[$uid]]['min_heal_proc']) && $this->stats[$this->uids[$uid]]['min_heal_proc'] < -99) {
|
|
$hp = 0;
|
|
} else {
|
|
$hp = $hp / 100 * (100 + $this->stats[$this->uids[$uid]]['min_heal_proc']);
|
|
}
|
|
//Îòíèìàåì òàêòèêó
|
|
if (!$false_t7) {
|
|
if ($this->users[$this->uids[$uid]]['tactic7'] <= 0) {
|
|
$hp = 0;
|
|
$this->users[$this->uids[$uid]]['tactic7'] = 0;
|
|
$this->stats[$this->uids[$uid]]['tactic7'] = $this->users[$this->uids[$uid]]['tactic7'];
|
|
} else {
|
|
$gdhh = round($hp / $this->stats[$this->uids[$uid]]['hpAll'] * 10, 2);
|
|
if ($gdhh == 0) {
|
|
$gdhh = 0.01;
|
|
}
|
|
|
|
$gdhd = round($this->users[$this->uids[$uid]]['tactic7'] / $gdhh * 100);
|
|
|
|
$this->users[$this->uids[$uid]]['tactic7'] = round(
|
|
($this->users[$this->uids[$uid]]['tactic7'] - $gdhh),
|
|
2
|
|
);
|
|
if ($this->users[$this->uids[$uid]]['tactic7'] < 0) {
|
|
$this->users[$this->uids[$uid]]['tactic7'] = 0;
|
|
}
|
|
$this->stats[$this->uids[$uid]]['tactic7'] = $this->users[$this->uids[$uid]]['tactic7'];
|
|
if ($gdhd < 100) {
|
|
$hp = floor($hp / 100 * $gdhd);
|
|
}
|
|
}
|
|
}
|
|
} elseif ($hp < 0) {
|
|
//Îòíèìàåìô
|
|
if ($hpnow + $hp < 0) {
|
|
$hpli = $hpnow + $hp;
|
|
$hp += -($hpli);
|
|
}
|
|
}
|
|
|
|
if ($this->stats[$this->uids[$uid]]['hpNow'] < 1) {
|
|
$hp = 0;
|
|
}
|
|
|
|
$this->stats[$this->uids[$uid]]['last_hp'] = -$hp;
|
|
mysql_query(
|
|
'UPDATE `stats` SET
|
|
`last_hp` = "' . $this->users[$this->uids[$uid]]['last_hp'] . '",
|
|
`tactic7` = "' . $this->users[$this->uids[$uid]]['tactic7'] . '"
|
|
WHERE `id` = "' . $uid . '" LIMIT 1'
|
|
);
|
|
}
|
|
|
|
return floor($hp);
|
|
}
|
|
|
|
public function deleffm(int $pid, int $uid, int $id)
|
|
{
|
|
if ($id > 0) {
|
|
if (!mysql_query('DELETE FROM `eff_users` WHERE `id` = ' . $id . ' AND `v1` = "priem" AND `v2` != 0')) {
|
|
echo '[*Îøèáêà óäàëåíèÿ ïðèåì[' . $id . ',' . $pid . ',' . $uid . ']]';
|
|
}
|
|
} else {
|
|
mysql_query('DELETE FROM `eff_users` WHERE `uid` = ' . $uid . ' AND `v1` = "priem" AND `v2` = ' . $pid);
|
|
}
|
|
}
|
|
|
|
|
|
public $cached = false; //Êýøèðîâàíèå äàííûõ
|
|
public $expCoef = 0; # % îïûòà â áîþ
|
|
public $aBexp = 0; //Äîáàâî÷íûé îïûò â áîÿõ
|
|
public $mainStatus = 1; //Îòîáðàæàåì ãëàâíîå îêíî (1 - ìîæíî áèòü, 2 - îæèäàåì õîä ïðîòèâíèêà, 3 - Ïðîèãðàëè. Îæèäàåì çàâåðøåíèÿ ïîåäèíêà)
|
|
public $info = []; //Èíôîðìàöèÿ î ïîåäèíêå
|
|
public $users = []; //Èíôîðìàöèÿ î ïîëüçîâàòåëÿõ â ýòîì áîþ
|
|
public $stats = []; //Èíôîðìàöèÿ î ñòàòàõ ïîëüçîâàòåëåé â ýòîì áîþ
|
|
public $uids = []; //Ñïèñîê ïîëüçîâàòåëåé è èõ id â stats èëè users ïðèìåð id ïîëüçîâàòåëÿ = 555 , òî $uids[555] âûäàñò åãî ïîðÿäêîâûé íîìåð â ìàññèâå users \ stats
|
|
public $atacks = []; //Ñïèñîê óäàðîâ â ýòîì áîþ (äåéñòâóþùèõ)
|
|
public $ga = []; //Ñïèñîê uid êòî íàíåñ óäàð è ïî êîìó $ga[ {id êòî óäàðèë} ][ {id êîãî óäàðèë} ]
|
|
public $ag = []; //Ñïèñîê uid êòî íàíåñ óäàð è ïî êîìó $ga[ {id êîãî óäàðèëè} ][ {id êòî óäàðèë} ]
|
|
public $na = 1; //âîçìîæíîñòü èñïîëüçîâàòü óäàð
|
|
public $np = 1; //âîçìîæíîñòü èñïîëüçîâàòü ïðèåìû
|
|
public $nm = 1; //âîçìîæíîñòü èñïîëüçîâàòü çàêëÿòèÿ
|
|
public $hodID = 0;
|
|
public $stnZbVs = 0;
|
|
public $bots = []; // ID áîòîâ
|
|
public $iBots = []; // i áîòà
|
|
public $stnZb = [];
|
|
public array $uAtc = [
|
|
'id' => 0,
|
|
'a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0],
|
|
'b' => 0,
|
|
]; //Åñëè èãðîê íàíåñ óäàð
|
|
public array $lg_itm = [
|
|
0 => [
|
|
'ãðóäüþ',
|
|
'ðåáðîì ðóêè',
|
|
'ëáîì',
|
|
'êóëàêîì',
|
|
'íîãîé',
|
|
'ëåâîé íîãîé',
|
|
'ïðàâîé íîãîé',
|
|
'êîëåíîì',
|
|
],
|
|
1 => ['íîæîì', 'òûëüíîé ñòîðîíîé ëåçâèÿ íîæà', 'ðóêîÿòüþ íîæà', 'ëåçâèåì íîæà'],
|
|
2 => ['ñó÷êîâàòîé ïàëêîé', 'ïîëåíîì', 'òÿæåëîé äóáèíîé', 'äóáèíîé', 'ðóêîÿòüþ ìîëîòà'],
|
|
3 => ['ñåêèðîé', 'òîïîðîì', 'ëåçâèåì ñåêèðû', 'àëåáàðäîé', 'òÿæåëûì äåðæàêîì', 'äëèííîé ñåêèðîé'],
|
|
4 => [
|
|
'íîæíàìè',
|
|
'ãàðäîé',
|
|
'ìå÷îì',
|
|
'ëåçâèåì ìå÷à',
|
|
'ðóêîÿòüþ ìå÷à',
|
|
'òóïûì ëåçâèåì',
|
|
'îñòðîé ñòîðîíîé ìå÷à',
|
|
'îãðîìíûì ìå÷îì',
|
|
],
|
|
5 => ['ñó÷êîâàòîé ïàëêîé', 'ïîñîõîì', 'òÿæåëîé òðîñòüþ', 'êîðÿâûì ïîñîõîì', 'îñíîâàíèåì ïîñîõà'],
|
|
22 => ['êîñòûëåì'],
|
|
]; // ×åì ëóïèëè
|
|
public array $lg_zon = [
|
|
1 => [
|
|
'â íîñ',
|
|
'â ãëàç',
|
|
'â ÷åëþñòü',
|
|
'ïî ïåðåíîñèöå',
|
|
'â êàäûê',
|
|
'ïî çàòûëêó',
|
|
'â ïðàâûé ãëàç',
|
|
'â ëåâûé ãëàç',
|
|
'â ñêóëó',
|
|
],
|
|
2 => ['â ãðóäü', 'â êîðïóñ', 'â ñîëíå÷íîå ñïëåòåíèå', 'â ñåðäöå', 'â îáëàñòü ëîïàòîê'],
|
|
3 => ['â áîê', 'ïî æåëóäêó', 'ïî ëåâîé ðóêå', 'ïî ïðàâîé ðóêå'],
|
|
4 => ['ïî <âûðåçàíî öåíçóðîé>', 'â ïàõ', 'â ïðîìåæíîñòü', 'ïî ëåâîé ÿãîäèöå', 'ïî ïðàâîé ÿãîäèöå'],
|
|
5 => ['ïî íîãàì', 'â îáëàñòü ïðàâîé ïÿòêè', 'â îáëàñòü ëåâîé ïÿòêè', 'ïî êîëåííîé ÷àøå÷êå', 'ïî èêðàì'],
|
|
]; // Êóäà ëóïèëè
|
|
public $e; //Îøèáêà (òåêñò)
|
|
public $is = [];
|
|
public $items = [];
|
|
//Î÷èñòêà êýøà äëÿ ...
|
|
public $uclearc = [];
|
|
public $ucleari = [];
|
|
|
|
public function clear_cache($uid)
|
|
{
|
|
if ($uid > 0 && !isset($this->uclearc[$uid])) {
|
|
$this->uclearc[$uid] = true;
|
|
$this->ucleari[] = $uid;
|
|
}
|
|
}
|
|
|
|
public function clear_cache_start()
|
|
{
|
|
$i = 0;
|
|
while ($i < count($this->ucleari)) {
|
|
mysql_query(
|
|
'DELETE FROM `battle_cache` WHERE `uid` = "' . mysql_real_escape_string($this->ucleari[$i]) . '"'
|
|
);
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
//Ïðîâåðêà óðîí ïðèåìîâ íàä çàùèòíûìè
|
|
public function testYronPriemAttack($pid, $u1, $u2, $hp)
|
|
{
|
|
//Èãðîê 1 áüåò ïî Èãðîêó 2 ïðè ïîìîùè ïðèåìà ¹ pid íà hp åä. çäîðîâüÿ
|
|
|
|
/*
|
|
Ïîëíàÿ çàùèòà
|
|
*/
|
|
//Ïîëó÷àåì ïðèåìû è ñìîòðèì êîãäà êàêîé äåéñòâóåò
|
|
$eff = $this->stats[$this->uids[$u2]]['effects'];
|
|
$j = 0;
|
|
while ($j <= count($eff)) {
|
|
if (isset($eff[$j]) && $eff[$j]['id_eff'] == 22 && $eff[$j]['v1'] == 'priem' && $eff[$j]['v2'] > 0) {
|
|
// id ïðèåì $eff[$j]['v2']
|
|
if ($eff[$j]['v2'] == 140 || $eff[$j]['v2'] == 211 || $eff[$j]['v2'] == 45) { //|| $eff[$j]['v2'] == 45
|
|
//Ïðèåìû îò êîòîðûõ óðîí = 1 , òî åñòü âûäàåì 0
|
|
$hp['y'] = -1;
|
|
$hp['r'] = 1;
|
|
$hp['k'] = 2;
|
|
$hp['m_y'] = 1;
|
|
$hp['m_k'] = 2;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
unset($eff);
|
|
|
|
return $hp;
|
|
}
|
|
|
|
//Ðàñ÷åò ìàã.êðèòà
|
|
public function magKrit($l2, $t)
|
|
{
|
|
$r = 0;
|
|
$r = $l2 * 2 - 7;
|
|
if ($r > $t) {
|
|
//ìàãè÷åñêèé ïðîìàõ (ñåðûé óäàð, â 2 ðàçà ìåíüøå) 6%
|
|
//250 åä. çàùèòû îò ìàãèè äàåò 1% øàíñà óâåðíóòüñÿ îò ìàãèè
|
|
//$r = -1; , ïðîìàõ --
|
|
$r = 0;
|
|
} else {
|
|
//êàæäàÿ âëàäåëêà äàåò 3% øàíñ êðèòà
|
|
$r = ceil($t * 0.75);
|
|
if ($r > 30) {
|
|
$r = 30;
|
|
}
|
|
if (rand(0, 10000) < $r * 100) {
|
|
//êðèò óäàð
|
|
$r = 1;
|
|
} else {
|
|
$r = 0;
|
|
}
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
|
|
//Ðàñ÷åò îïûòà
|
|
public function testExp($y, $s1, $s2, $id1, $id2)
|
|
{
|
|
global $u, $c;
|
|
|
|
//ÒÓÒ òàáëèöà óìíîæåíèÿ îûòà
|
|
$oplevel = [ // Ìàêñèìóì äëÿ êàæäîãî óðîâíÿ.
|
|
0 => 1,
|
|
1 => 1,
|
|
2 => 1,
|
|
3 => 1,
|
|
4 => 2,
|
|
5 => 2,
|
|
6 => 2,
|
|
7 => 2,
|
|
8 => 3,
|
|
9 => 4,
|
|
10 => 5,
|
|
11 => 6,
|
|
12 => 7,
|
|
13 => 50,
|
|
14 => 75,
|
|
];
|
|
|
|
if ($y < 0) {
|
|
$y = 0;
|
|
}
|
|
if ($s2['hpNow'] < 0) {
|
|
$y = 0;
|
|
}
|
|
if ($s2['hpNow'] < $y) {
|
|
$y = $s2['hpNow'];
|
|
}
|
|
if ($y < 0) {
|
|
$y = 0;
|
|
}
|
|
$addExp = 0 + ($y * $oplevel[$this->users[$this->uids[$s2['id']]]['level']]);
|
|
if ($s2['hpAll'] - $y <= 0) {
|
|
$addExp = 100;
|
|
}
|
|
|
|
|
|
if ($addExp < 0) {
|
|
$addExp = 0;
|
|
}
|
|
if ($s2['levels'] != 'undefined' && $this->users[$this->uids[$s2['id']]]['pass'] != 'saintlucia') {
|
|
|
|
if ($doexp < 0) {
|
|
$doexp = 0;
|
|
}
|
|
|
|
if ($this->info['razdel'] != 5 && $c['exp_limit_many'] == true) {
|
|
$texp = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`a`.`id`) FROM `battle_users` AS `a` WHERE `a`.`uid` = "' . $id1 . '" AND `a`.`battle` IN ( SELECT `b`.`battle` FROM `battle_users` AS `b` WHERE `b`.`uid` = "' . $id2 . '" AND `b`.`team` != `a`.`team` AND `b`.`time` > "' . (time(
|
|
) - 86400) . '" ) LIMIT 1'
|
|
)
|
|
);
|
|
$texp = $texp[0];
|
|
//
|
|
if ($texp > 5) {
|
|
$addExp = $addExp * 0.00;
|
|
} elseif ($texp > 4) {
|
|
$addExp = $addExp * 0.50;
|
|
} elseif ($texp > 3) {
|
|
$addExp = $addExp * 0.75;
|
|
} elseif ($texp > 2) {
|
|
$addExp = $addExp * 1.00;
|
|
} elseif ($texp > 1) {
|
|
$addExp = $addExp * 1.00;
|
|
} else {
|
|
$addExp = $addExp * 1.00;
|
|
}
|
|
}
|
|
unset($doexp);
|
|
} else {
|
|
$addExp = 0;
|
|
}
|
|
|
|
|
|
return $addExp;
|
|
}
|
|
|
|
//Äîáàâëÿåì îïûò \ íàíåñåííûé óðîí
|
|
public function takeExp($id, $y, $id1, $id2, $mgregen = false, $nobattle_uron = false)
|
|
{
|
|
global $u;
|
|
if (isset($this->users[$this->uids[$id]])) {
|
|
$s1 = $this->stats[$this->uids[$id1]];
|
|
$s2 = $this->stats[$this->uids[$id2]];
|
|
if ($id1 != $id2) {
|
|
$e = $this->testExp($y, $s1, $s2, $id1, $id2);
|
|
} else {
|
|
$e = 0;
|
|
}
|
|
|
|
|
|
if ((int)$this->users[$this->uids[$id1]]['bot_id'] == 0 && $this->users[$this->uids[$id1]]['dnow'] != 0 && $this->info['dungeon'] != 1) {
|
|
$dun_limitForLevel = [ // Ìàêñèìóì äëÿ êàæäîãî óðîâíÿ.
|
|
4 => 750,
|
|
5 => 1500,
|
|
6 => 3500,
|
|
7 => 8000,
|
|
8 => 25000,
|
|
9 => 50000,
|
|
10 => 75000,
|
|
11 => 125000,
|
|
12 => 250000,
|
|
13 => 500000,
|
|
14 => 750000,
|
|
];
|
|
$dun_expFactor = [ // Ìàêñèìóì äëÿ êàæäîãî óðîâíÿ.
|
|
4 => 5,
|
|
5 => 5,
|
|
6 => 5,
|
|
7 => 5,
|
|
8 => 5,
|
|
9 => 3,
|
|
10 => 1,
|
|
11 => 1,
|
|
12 => 1,
|
|
13 => 1,
|
|
14 => 1,
|
|
];
|
|
|
|
if (isset($dun_expFactor[(int)$this->users[$this->uids[$id1]]['level']])) {
|
|
$e = $e * $dun_expFactor[(int)$this->users[$this->uids[$id1]]['level']];
|
|
}
|
|
if ($this->info['dungeon'] > 1 && $this->users[$this->uids[$id1]]['battle'] > 0) { // ïåùåðíûé ëèìèò
|
|
$dun_exp = []; // Òåêóùèé ëèìèò îïûòà èãðîêà â ïîäçåìåëüÿõ.
|
|
$rep = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `dungeonexp`,`id` FROM `rep` WHERE `id` = "' . $this->users[$this->uids[$id1]]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$rep = explode(',', $rep['dungeonexp']);
|
|
foreach ($rep as $key => $val) {
|
|
$val = explode('=', $val);
|
|
if (isset($val[0]) && isset($val[1]) && $val[0] != '' && $val[1] != 0) {
|
|
$dun_exp[(int)$val[0]] = (int)$val[1];
|
|
} // òåêóùèé ëèìèò îïûòà â ïîäçåìêå
|
|
}
|
|
unset($rep);
|
|
|
|
if (!isset($dun_exp[$this->info['dungeon']])) {
|
|
$dun_exp[$this->info['dungeon']] = 0;
|
|
}
|
|
if (!isset($dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']])) { // Åñëè ëèìèò íå çàäàí, îïûò íå äàåì.
|
|
$e = 0;
|
|
} elseif (
|
|
isset($dun_exp[$this->info['dungeon']]) &&
|
|
$dun_exp[$this->info['dungeon']] >= $dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']]
|
|
) { // Åñëè ëèìèò óæå äîñòèãíóò, îïûò íå äàåì.
|
|
$e = 0;
|
|
} elseif (
|
|
isset($dun_exp[$this->info['dungeon']]) &&
|
|
$dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']] > $dun_exp[$this->info['dungeon']]
|
|
) { // Åñëè òåêóùàÿ ðåïóòàöèÿ íå äîñòèãëà ëèìèòà.
|
|
if (($dun_exp[$this->info['dungeon']] + $e) > $dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']]) {
|
|
// Åñëè îïûòà íàáðàíî äîñòàòî÷íî, äëÿ äîñòèæåíèÿ ëèìèòà.
|
|
$e = abs(
|
|
$e - abs(
|
|
$dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']] - ($e + $dun_exp[$this->info['dungeon']])
|
|
)
|
|
);
|
|
$dun_exp[$this->info['dungeon']] += $e;
|
|
} elseif ($dun_limitForLevel[(int)$this->users[$this->uids[$id1]]['level']] > ($dun_exp[$this->info['dungeon']] + $e)) {
|
|
// Åñëè îïûòà íåäîñòàòî÷íî, äëÿ äîñòèæåíèÿ ëèìèòà.
|
|
$e = $e;
|
|
$dun_exp[$this->info['dungeon']] += $e;
|
|
} else {
|
|
$e = 0;
|
|
}
|
|
} else { // Â ëþáîé íåïîíÿòíîé ñèòóöàèè.
|
|
$e = 0;
|
|
}
|
|
}
|
|
// Îïûò â ïåùåðàõ.
|
|
if ($this->info['dungeon'] == 102) {
|
|
$e = floor($e * 0.002);
|
|
}
|
|
}
|
|
|
|
$this->users[$this->uids[$id1]]['battle_exp'] += floor($e);
|
|
if (!$mgregen && !$nobattle_uron) {
|
|
$this->users[$this->uids[$id1]]['battle_yron'] += floor($y);
|
|
if ($this->stats[$this->uids[$id1]]['notactic'] != 1) {
|
|
if ($s2['hpAll'] <= 1000) {
|
|
if ($this->stats[$this->uids[$id2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$id1]]['tactic6'] += round(
|
|
0.1 * (floor($y) / $s2['hpAll'] * 100),
|
|
10
|
|
);
|
|
} else {
|
|
$this->users[$this->uids[$id1]]['tactic6'] += round(
|
|
0.1 * (floor($y) / $s2['hpAll'] * 100),
|
|
10
|
|
) / 3;
|
|
}
|
|
} else {
|
|
if ($this->stats[$this->uids[$id2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$id1]]['tactic6'] += round(0.1 * (floor($y) / 1000 * 100), 10);
|
|
} else {
|
|
$this->users[$this->uids[$id1]]['tactic6'] += round(0.1 * (floor($y) / 1000 * 100), 10) / 3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
$upd = mysql_query(
|
|
'UPDATE `stats` SET `last_hp` = "' . $this->users[$this->uids[$id1]]['last_hp'] . '",`tactic6` = "' . $this->users[$this->uids[$id1]]['tactic6'] . '",`battle_yron` = "' . $this->users[$this->uids[$id1]]['battle_yron'] . '",`battle_exp` = "' . $this->users[$this->uids[$id1]]['battle_exp'] . '" WHERE `id` = "' . ((int)$id1) . '" LIMIT 1'
|
|
);
|
|
if (!$upd) {
|
|
echo '[íå óäà÷à ïðè èñïîëüçîâàíèè ïðèåìà]';
|
|
} else {
|
|
$this->stats[$this->uids[$id1]]['battle_exp'] = $this->users[$this->uids[$id1]]['battle_exp'];
|
|
$this->clear_cache($id1);
|
|
$this->stats[$this->uids[$id1]]['tactic6'] = $this->users[$this->uids[$id1]]['tactic6'];
|
|
if ($id1 == $u->info['id']) {
|
|
$u->info['tactic6'] = $this->users[$this->uids[$id1]]['tactic6'];
|
|
$u->stats['tactic6'] = $this->users[$this->uids[$id1]]['tactic6'];
|
|
$u->info['battle_exp'] = $this->users[$this->uids[$id1]]['battle_exp'];
|
|
$u->info['battle_yron'] = $this->users[$this->uids[$id1]]['battle_yron'];
|
|
$u->info['notactic'] = $this->users[$this->uids[$id1]]['notactic'];
|
|
$u->stats['notactic'] = $this->users[$this->uids[$id1]]['notactic'];
|
|
}
|
|
}
|
|
unset($s1, $s2);
|
|
}
|
|
}
|
|
|
|
//Äîáàâëÿåì íàíåñåííûé óðîí
|
|
public function takeYronNow($uid, $y)
|
|
{
|
|
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;
|
|
if ($uid == $u->info['id']) {
|
|
$u->info['battle_yron'] += $y;
|
|
$u->stats['battle_yron'] += $y;
|
|
}
|
|
mysql_query("UPDATE stats SET battle_yron = battle_yron + $y WHERE id = " . $uid);
|
|
}
|
|
|
|
//JS èíôîðìàöèÿ î èãðîêå
|
|
public function myInfo($id, $t)
|
|
{
|
|
global $c, $u;
|
|
if (isset($this->users[$this->uids[$id]]) || $u->info['id'] == $id) {
|
|
if ($u->info['id'] == $id || ($u->info['enemy'] == $id && $id > 0)) {
|
|
//Âñåãäà îáíîâëÿåì
|
|
$this->users[$this->uids[$id]] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT
|
|
|
|
`u`.`zag`,`u`.`id`,`u`.`login`,`u`.`login2`,`u`.`online`,`u`.`admin`,`u`.`city`,`u`.`cityreg`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,
|
|
`u`.`level`,`u`.`money`,`u`.`money3`,`u`.`money2`,`u`.`money4`,`u`.`battle`,`u`.`sex`,`u`.`obraz`,`u`.`win`,`u`.`win_t`,
|
|
`u`.`lose`,`u`.`lose_t`,`u`.`nich`,`u`.`timeMain`,`u`.`invis`,`u`.`bot_id`,`u`.`animal`,`u`.`type_pers`,
|
|
`u`.`notrhod`,`u`.`bot_room`,`u`.`inUser`,`u`.`inTurnir`,`u`.`inTurnirnew`,`u`.`stopexp`,`u`.`real`,
|
|
|
|
`st`.*
|
|
|
|
FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`id` = "' . $id . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->stats[$this->uids[$id]] = $u->getStats($this->users[$this->uids[$id]], 0, 0, false, false, true);
|
|
$this->stats[$this->uids[$id]]['items'] = $this->stats[$this->uids[$id]]['items'];
|
|
$this->stats[$this->uids[$id]]['effects'] = $this->stats[$this->uids[$id]]['effects'];
|
|
|
|
}
|
|
|
|
|
|
$ur = $this->users[$this->uids[$id]];
|
|
$st = $this->stats[$this->uids[$id]];
|
|
$itm = $this->stats[$this->uids[$id]]['items'];
|
|
$eff = $this->stats[$this->uids[$id]]['effects'];
|
|
$ef = '';
|
|
$i = 0;
|
|
if ($u->info['seff'] < 1) {
|
|
$ef .= '<div class=\"pimg\" pog=\"0\" col=\"0\" stl=\"0\" stt=\"Ñâåðíóòü\"><img src=\"https://img.new-combats.com/i/eff/effs_hide.gif\"/ onclick=\"top.useMagicBattle(\'Ñâåðíóòü\',7777,\'effs_show.gif\',1,2);\" onmouseover=\"top.hi(this,\'<strong>Ñâåðíóòü</strong>\',event,3,1,1,1,\'\');\" onmouseout=\"top.hic();\" onmousedown=\"top.hic();\"></div>';
|
|
|
|
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'] = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
|
|
);
|
|
}
|
|
if (isset($eff[$i]['priem']['id']) && $eff[$i]['priem']['neg'] == 1) {
|
|
$nseef = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (isset($eff[$i]) && $eff[$i] != 'delete') {
|
|
if ($nseef == 0) {
|
|
$ei = '<strong><u>' . $eff[$i]['name'] . '</u></strong>';
|
|
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 .= '<br>';
|
|
|
|
$out = '';
|
|
$time_still = ($eff[$i]['timeUse'] + ($eff[$i]['timeAce'] - $eff[$i]['timeUse']) + $eff[$i]['actionTime']);
|
|
if ($eff[$i]['timeAce'] == 0) {
|
|
$time_still += $eff[$i]['timeUse'];
|
|
}
|
|
$time_still -= time();
|
|
if ($eff[$i]['bp'] == 0 && $eff[$i]['timeUse'] != 77) {
|
|
if ($eff[$i]['type1'] != 13) {
|
|
|
|
$ei .= 'Îñòàëîñü: ' . $u->timeOut($time_still) . '';
|
|
}
|
|
} else {
|
|
if ($eff[$i]['timeUse'] != 77 && $eff[$i]['hod'] < 1) {
|
|
$ei .= 'Îñòàëîñü: ' . $u->timeOut($time_still) . '';
|
|
//$ei .= 'Çàðÿäîâ: '.$out.'<br>';
|
|
} elseif ($eff[$i]['hod'] >= 0) {
|
|
$ei .= 'Çàðÿäîâ: ' . $eff[$i]['hod'] . '';
|
|
}
|
|
}
|
|
|
|
if ($eff[$i]['user_use'] != '') {
|
|
if ($this->users[$this->uids[$eff[$i]['user_use']]]['login2'] != '') {
|
|
$ei .= '<br>Àâòîð: <strong>' . $this->users[$this->uids[$eff[$i]['user_use']]]['login2'] . '</strong>';
|
|
} elseif ($this->users[$this->uids[$eff[$i]['user_use']]]['login'] != '') {
|
|
$ei .= '<br>Àâòîð: <strong>' . $this->users[$this->uids[$eff[$i]['user_use']]]['login'] . '</strong>';
|
|
}
|
|
}
|
|
|
|
//Äåéñòâèå ýôôåêòà
|
|
$tr = '';
|
|
$ti = $u->items['add'];
|
|
$x = 0;
|
|
$ed = $u->lookStats($eff[$i]['data']);
|
|
while ($x < count($ti)) {
|
|
$n = $ti[$x];
|
|
if (isset($ed['add_' . $n], $u->is[$n]) && $n != 'pog') {
|
|
$z = '';
|
|
if ($ed['add_' . $n] > 0) {
|
|
$z = '+';
|
|
}
|
|
$tr .= '<br>' . $u->is[$n] . ': ' . $z . '' . $ed['add_' . $n];
|
|
}
|
|
$x++;
|
|
}
|
|
|
|
if ($ed['add_mib1'] != 0) {
|
|
if ($ed['add_mab1'] != 0) {
|
|
$tr .= '<br>Áðîíÿ ãîëîâû: ' . $ed['add_mib1'] . '-' . $ed['add_mab1'] . '';
|
|
} else {
|
|
$m1l = $ed['add_mib1'];
|
|
if ($m1l > 0) {
|
|
$m1l = '+' . $m1l;
|
|
}
|
|
$tr .= '<br>Áðîíÿ ãîëîâû: ' . $m1l . '';
|
|
}
|
|
}
|
|
if ($ed['add_mib2'] != 0) {
|
|
if ($ed['add_mab2'] != 0) {
|
|
$tr .= '<br>Áðîíÿ êîðïóñà: ' . $ed['add_mib2'] . '-' . $ed['add_mab2'] . '';
|
|
} else {
|
|
$m1l = $ed['add_mib2'];
|
|
if ($m1l > 0) {
|
|
$m1l = '+' . $m1l;
|
|
}
|
|
$tr .= '<br>Áðîíÿ êîðïóñà: ' . $m1l . '';
|
|
}
|
|
}
|
|
if ($ed['add_mib3'] != 0) {
|
|
if ($ed['add_mab3'] != 0) {
|
|
$tr .= '<br>Áðîíÿ ïîÿñà: ' . $ed['add_mib3'] . '-' . $ed['add_mab3'] . '';
|
|
} else {
|
|
$m1l = $ed['add_mib3'];
|
|
if ($m1l > 0) {
|
|
$m1l = '+' . $m1l;
|
|
}
|
|
$tr .= '<br>Áðîíÿ ïîÿñà: ' . $m1l . '';
|
|
}
|
|
}
|
|
if ($ed['add_mib4'] != 0) {
|
|
if ($ed['add_mab4'] != 0) {
|
|
$tr .= '<br>Áðîíÿ íîã: ' . $ed['add_mib4'] . '-' . $ed['add_mab4'] . '';
|
|
} else {
|
|
$m1l = $ed['add_mib4'];
|
|
if ($m1l > 0) {
|
|
$m1l = '+' . $m1l;
|
|
}
|
|
$tr .= '<br>Áðîíÿ íîã: ' . $m1l . '';
|
|
}
|
|
}
|
|
|
|
$efix = 0;
|
|
if (isset($ed['add_pog2']) && $ed['add_pog2'] > 0) {
|
|
$efix = $ed['add_pog2'];
|
|
}
|
|
if (isset($ed['add_pog'])) {
|
|
$tr .= '<br>Ìàãè÷åñêèé áàðüåð ñïîñîáåí ïîãëîòèòü åùå <strong>' . $ed['add_pog'] . '</strong> åä. óðîíà';
|
|
}
|
|
if (isset($ed['add_pog2'])) {
|
|
$tr .= '<br>Ìàãè÷åñêèé áàðüåð ñïîñîáåí ïîãëîòèòü åùå <strong>' . $ed['add_pog2'] . '</strong> åä. óðîíà <small>(' . $ed['add_pog2p'] . '%)</small>';
|
|
}
|
|
|
|
if ($tr != '') {
|
|
$ei .= $tr;
|
|
}
|
|
if ($eff[$i]['info'] != '') {
|
|
$ei .= '<br><i>Èíôîðìàöèÿ:</i><br>' . $eff[$i]['info'];
|
|
}
|
|
|
|
$ef .= '<div class=\"pimg\" pog=\"' . $efix . '\" col=\"' . $eff[$i]['x'] . '\" stl=\"0\" stt=\"' . $ei . '\"><img src=\"https://img.new-combats.com/i/eff/' . $eff[$i]['img'] . '\"/></div>';
|
|
unset($efix);
|
|
}
|
|
} elseif ($eff[$i] != 'delete') {
|
|
$i = -2;
|
|
}
|
|
$i++;
|
|
}
|
|
} else {
|
|
$ef .= '<div class=\"pimg\" pog=\"0\" col=\"0\" stl=\"0\" stt=\"Ðàçâåðíóòü\"><img src=\"https://img.new-combats.com/i/eff/effs_show.gif\"/ onclick=\"top.useMagicBattle(\'Ðàçâåðíóòü\',5555,\'effs_show.gif\',1,2);\" onmouseover=\"top.hi(this,\'<strong>Ðàçâåðíóòü</strong>\',event,3,1,1,1,\'\');\" onmouseout=\"top.hic();\" onmousedown=\"top.hic();\"></div>';
|
|
}
|
|
|
|
$ca = '';
|
|
if ($ur['clan'] > 0) {
|
|
$cl = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id` = "' . $ur['clan'] . '" LIMIT 1'));
|
|
if (isset($cl['id'])) {
|
|
$ca = '<img src=\"https://img.new-combats.com/i/clan/' . $cl['name_mini'] . '.gif\" title=\"' . $cl['name'] . '\">';
|
|
}
|
|
}
|
|
if ($ur['align'] > 0) {
|
|
$ca = '<img src=\"https://img.new-combats.com/i/align/align' . $ur['align'] . '.gif\">' . $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 = '<strong>' . $ur['login2'] . '</strong>';
|
|
$stsua .= '<br>Ñèëà: ' . $st['s1'];
|
|
$stsua .= '<br>Ëîâêîñòü: ' . $st['s2'];
|
|
$stsua .= '<br>Èíòóèöèÿ: ' . $st['s3'];
|
|
$stsua .= '<br>Âûíîñëèâîñòü: ' . $st['s4'];
|
|
if ($st['s5'] != 0) {
|
|
$stsua .= '<br>Èíòåëåêò: ' . $st['s5'];
|
|
}
|
|
if ($st['s6'] != 0) {
|
|
$stsua .= '<br>Ìóäðîñòü: ' . $st['s6'];
|
|
}
|
|
if ($st['s7'] != 0) {
|
|
$stsua .= '<br>Äóõîâíîñòü: ' . $st['s7'];
|
|
}
|
|
if ($u->info['admin'] > 0) {
|
|
$align = $ur['align'];
|
|
}
|
|
$tp_img = [
|
|
1 => 4,
|
|
2 => 5,
|
|
14 => 6,
|
|
3 => 7,
|
|
5 => 8,
|
|
7 => 9,
|
|
17 => 10,
|
|
16 => 11,
|
|
13 => 12,
|
|
10 => 13,
|
|
9 => 14,
|
|
8 => 15,
|
|
11 => 17, //êîëüöî 2
|
|
12 => 18, //êîëüöî 3
|
|
];
|
|
$info = 'info_reflesh(' . $t . ',' . $ur['id'] . ',"' . $ca . '<a href=\"javascript:void(0)\" onclick=\"top.chat.addto(\'' . $ur['login2'] . '\',\'to\');return false;\">' . $ur['login2'] . '</a> [' . $ur['level'] . ']<a href=\"info/' . $ur['id'] . '\" target=\"_blank\"><img src=\"https://img.new-combats.com/i/inf_' . $ur['cityreg'] . '.gif\" title=\"Èíô. î ' . $ur['login2'] . '\"></a> ","' . $ur['obraz'] . '",' . floor(
|
|
$st['hpNow']
|
|
) . ',' . floor($st['hpAll']) . ',' . floor($st['mpNow']) . ',' . floor(
|
|
$st['mpAll']
|
|
) . ',0,' . $ur['sex'] . ',"' . $ef . '","' . $stsua . '", "' . $align . '", "' . $ur['zag'] . '");shpb();';
|
|
$i = 0;
|
|
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']]];
|
|
}
|
|
//ãåíåðèðóåì ïðåäìåòû
|
|
$ttl = '<strong>' . $itm[$i]['name'] . '</strong>';
|
|
$td = $u->lookStats($itm[$i]['data']);
|
|
$lvar = '';
|
|
if ($td['add_hpAll'] > 0) {
|
|
$td['add_hpAll'] = '+' . $td['add_hpAll'];
|
|
$lvar .= '<br>Óðîâåíü æèçíè: ' . $td['add_hpAll'] . '';
|
|
}
|
|
if ($td['sv_yron_max'] > 0 || $td['sv_yron_min'] > 0) {
|
|
$lvar .= '<br>Óðîí: ' . (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) {
|
|
$m1l = '+';
|
|
$lvar .= '<br>Áðîíÿ ãîëîâû: ' . $m1l . '' . (0 + $td['add_mab1']) . '';
|
|
} else {
|
|
$lvar .= '<br>Áðîíÿ ãîëîâû: ' . (0 + $td['add_mib1']) . '-' . (0 + $td['add_mab1']) . '';
|
|
}
|
|
}
|
|
if ($td['add_mab2'] > 0) {
|
|
if ($td['add_mib2'] == $td['add_mab2'] && $pl['geniration'] == 1) {
|
|
$m1l = '+';
|
|
$lvar .= '<br>Áðîíÿ êîðïóñà: ' . $m1l . '' . (0 + $td['add_mab2']) . '';
|
|
} else {
|
|
$lvar .= '<br>Áðîíÿ êîðïóñà: ' . (0 + $td['add_mib2']) . '-' . (0 + $td['add_mab2']) . '';
|
|
}
|
|
}
|
|
if ($td['add_mab3'] > 0) {
|
|
if ($td['add_mib3'] == $td['add_mab3'] && $pl['geniration'] == 1) {
|
|
$m1l = '+';
|
|
$lvar .= '<br>Áðîíÿ ïîÿñà: ' . $m1l . '' . (0 + $td['add_mab3']) . '';
|
|
} else {
|
|
$lvar .= '<br>Áðîíÿ ïîÿñà: ' . (0 + $td['add_mib3']) . '-' . (0 + $td['add_mab3']) . '';
|
|
}
|
|
}
|
|
if ($td['add_mab4'] > 0) {
|
|
if ($td['add_mib4'] == $td['add_mab4'] && $pl['geniration'] == 1) {
|
|
$m1l = '+';
|
|
$lvar .= '<br>Áðîíÿ íîã: ' . $m1l . '' . (0 + $td['add_mab4']) . '';
|
|
} else {
|
|
$lvar .= '<br>Áðîíÿ íîã: ' . (0 + $td['add_mib4']) . '-' . (0 + $td['add_mab4']) . '';
|
|
}
|
|
}
|
|
if ($itm[$i]['iznosMAX'] > 0) {
|
|
if ($itm[$i]['iznosMAXi'] == 999999999) {
|
|
$lvar .= '<br>Äîëãîâå÷íîñòü: <font color=brown>íåðàçðóøèìî</font>';
|
|
} else {
|
|
$lvar .= '<br>Äîëãîâå÷íîñòü: ' . floor($itm[$i]['iznosNOW']) . '/' . floor(
|
|
$itm[$i]['iznosMAX']
|
|
);
|
|
}
|
|
}
|
|
$ttl .= $lvar;
|
|
$ccv = '';
|
|
|
|
if ($itm[$i]['magic_inci'] != '' || $itm[$i]['magic_inc'] != '') {
|
|
if ($itm[$i]['magic_inc'] == '') {
|
|
$itm[$i]['magic_inc'] = $itm[$i]['magic_inci'];
|
|
}
|
|
$mgi = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `eff_main` WHERE `id2` = "' . $itm[$i]['magic_inc'] . '" AND `type1` = "12345" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($mgi['id2'])) {
|
|
$mgilog = '';
|
|
$ccv .= 'top.useMagicBattle(\'' . $mgi['mname'] . '\',' . $itm[$i]['id'] . ',\'' . $mgi['img'] . '\',1,2);';
|
|
}
|
|
}
|
|
|
|
$info .= 'abitms(' . (0 + $t) . ',' . (0 + $itm[$i]['uid']) . ',' . (0 + $itm[$i]['id']) . ',' . (0 + $itm[$i]['inOdet']) . ',"' . $itm[$i]['name'] . '","' . $ttl . '","' . $itm[$i]['img'] . '","' . $ccv . '");';
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
return $info;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//Ïðîâåðêà íà âûæèâøèõ
|
|
public function testUsersLive(): bool
|
|
{
|
|
$r = false;
|
|
$tl = 0;
|
|
$i = 0;
|
|
$j = 0;
|
|
while ($i < count($this->uids)) {
|
|
if ($this->stats[$i]['id'] > 0) {
|
|
if (floor($this->stats[$i]['hpNow']) < 1) {
|
|
$this->stats[$i]['hpNow'] = 0;
|
|
}
|
|
$hp[$this->users[$i]['team']] += floor($this->stats[$i]['hpNow']);
|
|
if (!isset($tml[$this->users[$i]['team']]) && floor($this->stats[$i]['hpNow']) >= 1) {
|
|
$tml[$this->users[$i]['team']] = 1;
|
|
$tmv[$j] = $this->users[$i]['team'];
|
|
$tl++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
if ($tl > 1) {
|
|
$r = true;
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//Ìèíè ëîã
|
|
public function miniLogAdd($user, $text)
|
|
{
|
|
$txt = $text;
|
|
$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' => '',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$mas1['text'] = $txt;
|
|
$this->add_log($mas1);
|
|
}
|
|
|
|
//Ïðîâåðÿåì çàâåðøåíèå áîÿ
|
|
public function testFinish()
|
|
{
|
|
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'])) {
|
|
$hp = [];
|
|
$tml = [];
|
|
$tmv = [];
|
|
$tl = 0;
|
|
$i = 0;
|
|
$j = 0;
|
|
while ($i < count($this->uids)) {
|
|
if ($this->stats[$i]['id'] > 0) {
|
|
if (floor($this->stats[$i]['hpNow']) < 1) {
|
|
$this->stats[$i]['hpNow'] = 0;
|
|
}
|
|
$hp[$this->users[$i]['team']] += floor($this->stats[$i]['hpNow']);
|
|
if (!isset($tml[$this->users[$i]['team']]) && floor($this->stats[$i]['hpNow']) >= 1) {
|
|
$tml[$this->users[$i]['team']] = 1;
|
|
$tmv[$j] = $this->users[$i]['team'];
|
|
$tl++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
if ($tl <= 1) {
|
|
//Äîï.ïðîâåðêà
|
|
$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)) {
|
|
if (!isset($tmHpNow[$pl['team']])) {
|
|
$tmHpNow[$pl['team']] = 0;
|
|
$tmNow[] = $pl['team'];
|
|
}
|
|
$hpTm = floor($pl['hpNow']);
|
|
if ($hpTm < 0) {
|
|
$hpTm = 0;
|
|
}
|
|
if ($hpTm > 0) {
|
|
$tmHpNow[$pl['team']] += $pl['hpNow'];
|
|
}
|
|
}
|
|
$gdj = 0;
|
|
$i = 0;
|
|
while ($i < count($tmNow)) {
|
|
if (isset($tmNow[$i])) {
|
|
$j = $tmNow[$i];
|
|
if ($tmHpNow[$j] > 0) {
|
|
$gdj++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
if ($gdj > 1) {
|
|
$tl = $gdj;
|
|
echo 'Ïîåäèíîê ìîæåò çàâåðøèòüñÿ íå êîððåêòíî... (Ñîîáùèòå Àäìèíèñòðàöèè îá ýòîì)';
|
|
}
|
|
}
|
|
|
|
if ($tl <= 1) {
|
|
//çàâåðøàåì ïîåäèíîê, êòî-òî îäèí ïîáåäèë, ëèáî íè÷üÿ
|
|
|
|
$i = 0;
|
|
$tmwin = 0;
|
|
while ($i < count($tmv)) {
|
|
if ($tmv[$i] >= 1 && $tml[$tmv[$i]] > 0) {
|
|
$tmwin = $tmv[$i];
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
if ($this->info['izlom'] == 0) {
|
|
$rs = '';
|
|
$ts = [];
|
|
$tsi = 0;
|
|
if ($this->info['id'] > 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'
|
|
);
|
|
$ir = 0;
|
|
$bi = 0;
|
|
$this->users = null;
|
|
$this->stats = null;
|
|
$this->uids = null;
|
|
$this->bots = null;
|
|
$this->iBots = null;
|
|
while ($pl = mysql_fetch_array($trl)) {
|
|
//çàïèñûâàåì äàííûå
|
|
if ($pl['login2'] == '') {
|
|
$pl['login2'] = $pl['login'];
|
|
}
|
|
$this->users[$ir] = $pl;
|
|
$this->uids[$pl['id']] = $ir;
|
|
if ($pl['bot'] > 0) {
|
|
$this->bots[$bi] = $pl['id'];
|
|
$this->iBots[$pl['id']] = $bi;
|
|
$bi++;
|
|
}
|
|
//çàïèñûâàåì ñòàòû
|
|
$this->stats[$ir] = $u->getStats($pl, 0, 0, false, false, true);
|
|
$ir++;
|
|
}
|
|
}
|
|
} elseif (!isset($this->uids[$u->info['id']])) {
|
|
$rs = '';
|
|
$ts = [];
|
|
$tsi = 0;
|
|
if ($this->info['id'] > 0) {
|
|
//äàííûå î èãðîêàõ â áîþ
|
|
$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'
|
|
);
|
|
$pl = mysql_fetch_array($trl);
|
|
//çàïèñûâàåì äàííûå
|
|
if ($pl['login2'] == '') {
|
|
$pl['login2'] = $pl['login'];
|
|
}
|
|
$this->users[] = $pl;
|
|
$this->uids[$pl['id']] = $ir;
|
|
if ($pl['bot'] > 0) {
|
|
$this->bots[] = $pl['id'];
|
|
$this->iBots[$pl['id']] = $bi;
|
|
}
|
|
//çàïèñûâàåì ñòàòû
|
|
$this->stats[] = $u->getStats($pl, 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);
|
|
|
|
$j = 0;
|
|
$k = 0;
|
|
$obr = 0;
|
|
|
|
//Ýòî èçëîì, äîáàâëÿåì åùå áîòîâ
|
|
if ($this->get_chanse(20)) {
|
|
//Óíèêàëüíûå ìîíñòðû
|
|
if ($this->info['izlomLvl'] == 8) {
|
|
$bots = [
|
|
'Âàëåíòàéñêèé Îõîòíèê',
|
|
'Øèïîêðûë Õàîñà',
|
|
'Øèïîêðûë',
|
|
'Ëèê Õàîñà',
|
|
'Ôàíàòèê Õàîñà',
|
|
];
|
|
}
|
|
$logins_bot = [];
|
|
//
|
|
echo '<center><strong><font color=red>Ïðèáëèæàåòñÿ íå÷òî...</font></strong></center>';
|
|
//
|
|
$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 . '<img width=12 height=15 src=https://img.new-combats.com/i/align/align' . $id['align'] . '.gif >';
|
|
}
|
|
if ($id['clan'] > 0) {
|
|
$btxt = $btxt . '<img width=24 height=15 src=https://img.new-combats.com/i/clan/' . $id['clan'] . '.gif >';
|
|
}
|
|
$btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
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++;
|
|
}
|
|
} else {
|
|
//Îáû÷íûå ìîíñòðû
|
|
if ($this->info['izlomLvl'] == 8) {
|
|
$bots = [
|
|
'Ëèòåéùèê',
|
|
'Ïðîêëÿòèå Ãëóáèí',
|
|
'Ïóñòûííèê Ìàíüÿê',
|
|
'Ïóñòûííèê Óáèéöà',
|
|
'Ðàáî÷èé Ìãëû',
|
|
'Ñìîòðèòåëü Ìãëû',
|
|
'Ñòîðîæ Ìãëû',
|
|
];
|
|
}
|
|
$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 . '<img width=12 height=15 src=https://img.new-combats.com/i/align/align' . $id['align'] . '.gif >';
|
|
}
|
|
if ($id['clan'] > 0) {
|
|
$btxt = $btxt . '<img width=24 height=15 src=https://img.new-combats.com/i/clan/' . $id['clan'] . '.gif >';
|
|
}
|
|
$btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
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 . '<img width=12 height=15 src=https://img.new-combats.com/i/align/align' . $id['align'] . '.gif >';
|
|
}
|
|
if ($id['clan'] > 0) {
|
|
$btxt = $btxt . '<img width=24 height=15 src=https://img.new-combats.com/i/clan/' . $id['clan'] . '.gif >';
|
|
}
|
|
$btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
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++;
|
|
}
|
|
//
|
|
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 . '<img width=12 height=15 src=https://img.new-combats.com/i/align/align' . $id['align'] . '.gif >';
|
|
}
|
|
if ($id['clan'] > 0) {
|
|
$btxt = $btxt . '<img width=24 height=15 src=https://img.new-combats.com/i/clan/' . $id['clan'] . '.gif >';
|
|
}
|
|
$btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
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++;
|
|
}
|
|
}
|
|
//Êàæäûå 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 . '<img width=12 height=15 src=https://img.new-combats.com/i/align/align' . $id['align'] . '.gif >';
|
|
}
|
|
if ($id['clan'] > 0) {
|
|
$btxt = $btxt . '<img width=24 height=15 src=https://img.new-combats.com/i/clan/' . $id['clan'] . '.gif >';
|
|
}
|
|
$btxt = $btxt . '<strong>{u1}</strong>[' . $id['level'] . ']<a href=info/' . $id['id'] . ' target=_blank ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
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++;
|
|
}
|
|
}
|
|
$irb--;
|
|
}
|
|
}
|
|
//
|
|
unset($logins_bot);
|
|
|
|
if ($j == 0) {
|
|
//êîíåö èçëîìà
|
|
$this->finishBattle($tml, $tmv, null, $tl);
|
|
$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'] . '")'
|
|
);
|
|
} else {
|
|
$this->info['izlomRound'] = $iz['round'];
|
|
mysql_query(
|
|
'UPDATE `battle` SET `izlomObrNow` = ' . $obr . ',`izlomObr` = `izlomObr` + ' . $obr . ',`timeout` = (`timeout`+5),`izlomRound` = "' . ($this->info['izlomRound'] + 1) . '",`izlomRoundSee` = `izlomRoundSee`+1 WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
$this->stats[$this->uids[$u->info['id']]]['hpNow'] += $this->stats[$this->uids[$u->info['id']]]['hpAll'] * 0.25;
|
|
$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'] . '';
|
|
|
|
$mas = [
|
|
'text' => '',
|
|
'time' => time(),
|
|
'vars' => '',
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => ($this->hodID + 1),
|
|
'vars' => $vLog,
|
|
'type' => 1,
|
|
];
|
|
if ($u->info['sex'] == 1) {
|
|
$mas['text'] = '<span class=date>' . date(
|
|
'H:i'
|
|
) . '</span> <strong>' . $u->info['login'] . '</strong> âîñïîëüçîâàëàñü ïðèåìîì "<strong>Ïåðåäûøêà</strong>".';
|
|
} else {
|
|
$mas['text'] = '<span class=date>' . date(
|
|
'H:i'
|
|
) . '</span> <strong>' . $u->info['login'] . '</strong> âîñïîëüçîâàëñÿ ïðèåìîì "<strong>Ïåðåäûøêà</strong>".';
|
|
}
|
|
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'] .= ' <font color=#0066aa><strong>+' . $hpSks . '</strong></font>';
|
|
} else {
|
|
$hpSks = 0;
|
|
$mas['text'] .= ' <font color=#0066aa><strong>--</strong></font>';
|
|
}
|
|
$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'
|
|
);
|
|
}
|
|
} else {
|
|
//çàâåðøàåì áîé
|
|
$this->finishBattle($tml, $tmv, null, $tl);
|
|
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'] . '")'
|
|
);
|
|
}
|
|
}
|
|
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(
|
|
) . '")'
|
|
);
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $u->info['city'] . "','" . $u->info['room'] . "','','" . $u->info['login'] . "','Âû ñîçäàëè ïðåäìåò "Îáðàçåö"x" . (($this->info['izlomObr'] - $this->info['izlomObrNow']) * 7) . "','" . time(
|
|
) . "','6','0')"
|
|
);
|
|
$i01 = 1;
|
|
while ($i01 <= (($this->info['izlomObr'] - $this->info['izlomObrNow'])) * 7) {
|
|
$u->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);
|
|
}
|
|
}
|
|
} 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, $tl);
|
|
}
|
|
}
|
|
}
|
|
|
|
//çàâåðøåíèå ïîåäèíêà
|
|
public function finishBattle($t, $v, $nl, $tl)
|
|
{
|
|
global $magic, $u, $q, $c;
|
|
mysql_query('LOCK TABLES users,stats,battle,battle_last,battle_end,chat WRITE');
|
|
$frtu = false;
|
|
$test = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`team_win`,`testfinish` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `team_win` != -1 LIMIT 1;'
|
|
)
|
|
);
|
|
if ($test['testfinish'] != -1) {
|
|
$trtt = mysql_query(
|
|
'UPDATE `battle` SET `testfinish` = "-1" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
$relbf = $this->info['team_win'];
|
|
if ($nl != 10) {
|
|
$i = 0;
|
|
$dnr = 0;
|
|
if ($this->info['team_win'] == -1) {
|
|
$this->info['team_win'] = 0;
|
|
while ($i < count($v)) {
|
|
if ($v[$i] >= 1 && $t[$v[$i]] > 0) {
|
|
$this->info['team_win'] = $v[$i];
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
//äàííûå î èãðîêàõ â áîþ
|
|
$t = mysql_query(
|
|
'SELECT `u`.`stopexp`,`u`.`twink`,`u`.`city`,`u`.`room`,`u`.`no_ip`,`u`.`pass`,`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`.`battle` = "' . $this->info['id'] . '"'
|
|
);
|
|
$i = 0;
|
|
$bi = 0;
|
|
while ($pl = mysql_fetch_array($t)) {
|
|
//çàïèñûâàåì äàííûå
|
|
if ($pl['login2'] == '') {
|
|
$pl['login2'] = $pl['login'];
|
|
}
|
|
$this->users[$i] = $pl;
|
|
$this->uids[$pl['id']] = $i;
|
|
if ($pl['bot'] > 0) {
|
|
$this->bots[$bi] = $pl['id'];
|
|
$this->iBots[$pl['id']] = $bi;
|
|
$bi++;
|
|
}
|
|
//çàïèñûâàåì ñòàòû
|
|
$this->stats[$i] = $u->getStats($pl, 0, 0, false, false, true);
|
|
$i++;
|
|
}
|
|
unset($pl, $t);
|
|
|
|
if ($this->info['time_over'] == 0) {
|
|
$tststrt = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `time_over` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($tststrt['id'])) {
|
|
if ($this->info['inTurnir'] == 0 || $this->info['type'] == 500) {
|
|
mysql_query(
|
|
'UPDATE `battle` SET `time_over` = "' . time(
|
|
) . '",`team_win` = "' . $this->info['team_win'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
mysql_query(
|
|
'UPDATE `battle_stat` SET `team_win` = "' . $this->info['team_win'] . '" WHERE `battle_id` = "' . $this->info['id'] . '"'
|
|
);
|
|
//Çàíîñèì äàííûå î çàâåðøåíèè áîÿ
|
|
$i = 0;
|
|
$vl = '';
|
|
$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'] . '"),';
|
|
if ($this->users[$i]['team'] == $this->info['team_win'] && $this->info['team_win'] > 0) {
|
|
$vtvl .= '<strong>' . $this->users[$i]['login'] . '</strong>, ';
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$this->info['players_c'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`id`) FROM `users` WHERE `login` NOT LIKE "%(çâåðü%" AND `battle` = "' . $this->info['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->info['players_c'] = $this->info['players_c'][0];
|
|
|
|
mysql_query(
|
|
'UPDATE `battle` SET `players_c` = "' . $this->info['players_c'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
|
|
if ($vtvl != '') {
|
|
$vtvl = rtrim($vtvl, ', ');
|
|
$vtvl = str_replace('"', '\\\\\"', $vtvl);
|
|
$this->hodID++;
|
|
$vLog = 'time1=' . time();
|
|
$mass = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => 'test',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$vtvl = 'Áîé çàêîí÷åí, ïîáåäà çà ' . $vtvl . '.';
|
|
} else {
|
|
$this->info['players_cc'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`u`.`id`) FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `s`.`hpNow` > 0 AND `u`.`battle` = "' . $this->info['id'] . '" AND `s`.`team` != "' . $u->info['team'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->info['players_cc'] = $this->info['players_cc'][0];
|
|
$this->info['players_cc2'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`u`.`id`) FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `s`.`hpNow` >= 1 AND `u`.`battle` = "' . $this->info['id'] . '" AND `s`.`team` != "' . $u->info['team'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->info['players_cc2'] = $this->info['players_cc2'][0];
|
|
$inf_test = ', users: ' . $this->info['players_cc'] . ' and ' . $this->info['players_cc2'] . '';
|
|
$this->hodID++;
|
|
$vLog = 'time1=' . time();
|
|
$mass = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => 'test',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$vtvl = 'Áîé çàêîí÷åí, íè÷üÿ.';
|
|
}
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
|
|
$this->saveLogs($this->info['id'], 'all');
|
|
|
|
if ($this->info['type'] == 99) {
|
|
$vLog = 'time1=' . time();
|
|
$mass = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => 'test',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$vtvl = 'È ïîáåäèòåëè ñòàëè êàëå÷èòü ïðîèãðàâøèõ...';
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
$i = 0;
|
|
$vtvl = '';
|
|
$tr_nm = [
|
|
1 => 'ëåãêóþ',
|
|
2 => 'ñðåäíþþ',
|
|
3 => 'òÿæåëóþ',
|
|
4 => 'íåèçëå÷èìóþ',
|
|
];
|
|
while ($i < count($this->users)) {
|
|
if ($this->users[$i]['team'] != $this->info['team_win']) {
|
|
$tr_pl = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`v1` FROM `eff_users` WHERE `id_eff` = 4 AND `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = "0" ORDER BY `v1` DESC LIMIT 1'
|
|
)
|
|
);
|
|
if (!isset($tr_pl['id']) || $tr_pl['v1'] < 3) {
|
|
if ($this->info['smert'] == 1) {
|
|
$tr_tp = 4;
|
|
} else {
|
|
$tr_tp = rand(1, 3);
|
|
}
|
|
if (isset($tr_pl['id'])) {
|
|
$tr_tp = rand(($tr_pl['v1'] + 1), 3);
|
|
}
|
|
if ($this->users[$i]['sex'] == 1) {
|
|
$vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> ïîëó÷èëà ïîâðåæäåíèå: <font color=red>' . $tr_nm[$tr_tp] . ' òðàâìó</font>.<br>' . $vtvl;
|
|
} else {
|
|
$vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> ïîëó÷èë ïîâðåæäåíèå: <font color=red>' . $tr_nm[$tr_tp] . ' òðàâìó</font>.<br>' . $vtvl;
|
|
}
|
|
$this->addTravm($this->users[$i]['id'], $tr_tp, rand(3, 5));
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
}
|
|
|
|
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 . ''
|
|
);
|
|
}
|
|
|
|
mysql_query(
|
|
'INSERT INTO `battle_end` (`battle_id`,`city`,`time`,`team_win`) VALUES ("' . $this->info['id'] . '","' . $this->info['city'] . '","' . $this->info['time_start'] . '","' . $this->info['team_win'] . '")'
|
|
);
|
|
}
|
|
|
|
|
|
$vLog = 'time1=' . time();
|
|
$mass = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => 'test',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$i = 0;
|
|
$vtvl = '';
|
|
$tr_nm = [
|
|
1 => 'ëåãêóþ',
|
|
2 => 'ñðåäíþþ',
|
|
3 => 'òÿæåëóþ',
|
|
4 => 'íåèçëå÷èìóþ',
|
|
];
|
|
while ($i < count($this->users)) {
|
|
if ($this->users[$i]['team'] != $this->info['team_win'] && $this->info['team_win'] > 0) {
|
|
$tr_pl = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `eff_users` WHERE `v1` = "priem" AND `v2` = 292 AND `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl2 . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
|
|
if (isset($tr_pl['id'])) {
|
|
if (rand(0, 100) < $tr_pl['data']) {
|
|
$tr_tp = rand(1, 3);
|
|
if (isset($tr_pl['id'])) {
|
|
$tr_tp = rand(($tr_pl['v1'] + 1), 3);
|
|
}
|
|
if ($this->users[$i]['sex'] == 1) {
|
|
$vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> ïîëó÷èëà ïîâðåæäåíèå (Èñêàëå÷èòü, àâòîð: <strong>' . $this->users[$this->uids[$tr_pl['user_use']]]['login'] . '</strong>): <font color=red>' . $tr_nm[$tr_tp] . ' òðàâìó</font>.<br>' . $vtvl;
|
|
} else {
|
|
$vtvl = '<strong>' . $this->users[$i]['login'] . '</strong> ïîëó÷èë ïîâðåæäåíèå (Èñêàëå÷èòü, àâòîð: <strong>' . $this->users[$this->uids[$tr_pl['user_use']]]['login'] . '</strong>): <font color=red>' . $tr_nm[$tr_tp] . ' òðàâìó</font>.<br>' . $vtvl;
|
|
}
|
|
$this->addTravm($this->users[$i]['id'], $tr_tp, rand(3, 5));
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
if ($vtvl != '') {
|
|
if ($this->info['type'] != 99) {
|
|
$vtvl2 = 'È ïîáåäèòåëè ñòàëè êàëå÷èòü ïðîèãðàâøèõ...';
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl2 . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
}
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $vtvl . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
}
|
|
|
|
//Òóðíèð ÁÑ
|
|
if ($this->info['inTurnir'] > 0 && $this->info['dungeon'] != 15 && $u->info['room'] != 413) {
|
|
$bs = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `bs_turnirs` WHERE `id` = "' . $this->info['inTurnir'] . '" LIMIT 1')
|
|
);
|
|
$i = 0;
|
|
$j = 0;
|
|
while ($i < count($this->users)) {
|
|
if ($this->stats[$i]['hpNow'] < 1 && $this->users[$i]['clone'] == 0 && $this->stats[$i]['clone'] == 0) {
|
|
//Äîáàâëÿåì â ëîã ÁÑ
|
|
if ($this->users[$i]['sex'] == 0) {
|
|
$text .= '{u1} ïîâåðæåí è âûáûâàåò èç òóðíèðà';
|
|
} else {
|
|
$text .= '{u1} ïîâåðæåíà è âûáûâàåò èç òóðíèðà';
|
|
}
|
|
//Âûêèäûâàåì ïðåäìåòû ñ ïåðñîíàæà
|
|
$spik = mysql_query(
|
|
'SELECT `id`,`item_id` FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` ="0"'
|
|
);
|
|
while ($plik = mysql_fetch_array($spik)) {
|
|
|
|
mysql_query(
|
|
'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES (
|
|
"' . $this->users[$i]['dnow'] . '","' . $plik['item_id'] . '","' . (time(
|
|
) - 600) . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '"
|
|
)'
|
|
);
|
|
}
|
|
unset($spik, $plik);
|
|
//
|
|
$usrreal = '';
|
|
$usr_real = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`login`,`align`,`clan`,`battle`,`level` FROM `users` WHERE `login` = "' . $this->users[$i]['login'] . '" AND `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (!isset($usr_real['id'])) {
|
|
$usr_real = $this->users[$i];
|
|
}
|
|
if (isset($usr_real['id'])) {
|
|
if ($usr_real['align'] > 0) {
|
|
$usrreal .= '<img src=https://img.new-combats.com/i/align/align' . $usr_real['align'] . '.gif width=12 height=15 >';
|
|
}
|
|
if ($usr_real['clan'] > 0) {
|
|
$usrreal .= '<img src=https://img.new-combats.com/i/clan/' . $usr_real['clan'] . '.gif width=24 height=15 >';
|
|
}
|
|
$usrreal .= '<strong>' . $usr_real['login'] . '</strong>[' . $usr_real['level'] . ']<a target=_blank href=https://new-combats.com/info/' . $usr_real['id'] . ' ><img width=12 hiehgt=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
} else {
|
|
$mereal = '<i>Íåâèäèìêà</i>[??]';
|
|
}
|
|
$text = str_replace('{u1}', $usrreal, $text);
|
|
mysql_query(
|
|
'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES (
|
|
"1", "' . mysql_real_escape_string($text) . '", "' . time(
|
|
) . '", "' . $bs['id'] . '", "' . $bs['count'] . '", "' . $bs['city'] . '",
|
|
"' . round($bs['money'] * 0.85, 2) . '","' . $i . '"
|
|
)'
|
|
);
|
|
//
|
|
//Óäàëåíèå êëîíà
|
|
mysql_query('DELETE FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
|
|
mysql_query('DELETE FROM `stats` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
|
|
mysql_query('DELETE FROM `actions` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
|
|
mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
|
|
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
|
|
mysql_query('DELETE FROM `users_delo` WHERE `uid` = "' . $this->users[$i]['id'] . '"');
|
|
//Îáíîâëåíèå ïåðñîíàæà
|
|
mysql_query(
|
|
'UPDATE `users` SET `inUser` = "0" WHERE `login` = "' . $this->users[$i]['login'] . '" OR `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
//Îáíîâëÿåì çàÿâêó
|
|
mysql_query(
|
|
'UPDATE `bs_zv` SET `off` = "' . time(
|
|
) . '" WHERE `inBot` = "' . $this->users[$i]['id'] . '" AND `off` = "0" LIMIT 1'
|
|
);
|
|
unset($text, $usrreal, $usr_real);
|
|
if ($this->users[$i]['pass'] != 'bstowerbot') {
|
|
$bs['users']--;
|
|
$bs['users_finish']++;
|
|
} else {
|
|
$bs['arhiv']--;
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
if ($j > 0) {
|
|
mysql_query(
|
|
'UPDATE `bs_turnirs` SET `arhiv` = "' . $bs['arhiv'] . '",`users` = "' . $bs['users'] . '",`users_finish` = "' . $bs['users_finish'] . '" WHERE `id` = "' . $bs['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
|
|
unset($bs, $j);
|
|
}
|
|
|
|
//Íàãðàäà çà ñîáûòèÿ
|
|
if ($this->info['type'] == 500 && isset($tststrt['id'])) {
|
|
//Ïðåäìåòû êîòîðûå âûïàäàþò â öåíòð
|
|
|
|
$i = 0;
|
|
while ($i < count($this->users)) {
|
|
if ($this->users[$i]['no_ip'] == 'trupojor') {
|
|
$mon = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `aaa_monsters` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($mon['id'])) {
|
|
if ($this->info['team_win'] == 0) {
|
|
//Íè÷üÿ
|
|
mysql_query(
|
|
'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpAll'] . '",`mpNow` = "' . $this->stats[$i]['mpAll'] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("<font color=red>Âíèìàíèå!</font> ' . mysql_real_escape_string(
|
|
str_replace(
|
|
'{b}',
|
|
'<strong>' . $this->users[$i]['login'] . '</strong> [' . $this->users[$i]['level'] . ']<a target=_blank href=info/' . $this->users[$i]['id'] . ' ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>',
|
|
$mon['nich_text']
|
|
)
|
|
) . ' ","' . $this->users[$i]['city'] . '","","6","1","' . time() . '")'
|
|
);
|
|
} elseif ($this->info['team_win'] != $this->users[$i]['team']) {
|
|
//Âûèãðàëè
|
|
$j = 0;
|
|
$usrwin = '';
|
|
while ($j < count($this->users)) {
|
|
if ($this->users[$j]['no_ip'] != 'trupojor' && $this->users[$j]['bot'] == 0) {
|
|
if ($this->stats[$j]['hpNow'] > 0) {
|
|
$usrwin .= ', ';
|
|
if ($this->users[$j]['align'] > 0) {
|
|
$usrwin .= '<img width=12 height=15 src=https://img.new-combats.com/i/align/align' . $this->users[$j]['align'] . '.gif >';
|
|
}
|
|
if ($this->users[$j]['clan'] > 0) {
|
|
$usrwin .= '<img width=24 height=15 src=https://img.new-combats.com/i/clan/' . $this->users[$j]['clan'] . '.gif >';
|
|
}
|
|
$usrwin .= '<strong>' . $this->users[$j]['login'] . '</strong> [' . $this->users[$j]['level'] . ']<a target=_blank href=info/' . $this->users[$j]['id'] . ' ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>';
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
if ($usrwin != '') {
|
|
$usrwin = ltrim($usrwin, ', ');
|
|
} else {
|
|
$usrwin = '<i>Êîìàíäà ãåðîåâ</i>';
|
|
}
|
|
|
|
mysql_query(
|
|
'UPDATE `users` SET `room` = "303" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
|
|
$truptimelast = time() + rand(1800, 3600);
|
|
|
|
mysql_query(
|
|
'UPDATE `stats` SET `res_x` = "' . $truptimelast . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("<font color=red>Âíèìàíèå!</font> ' . mysql_real_escape_string(
|
|
str_replace(
|
|
'{b}',
|
|
'<strong>' . $this->users[$i]['login'] . '</strong> [' . $this->users[$i]['level'] . ']<a target=_blank href=info/' . $this->users[$i]['id'] . ' ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>',
|
|
str_replace(
|
|
'{u}', $usrwin,
|
|
$mon['win_text']
|
|
)
|
|
)
|
|
) . ' ","' . $this->users[$i]['city'] . '","","6","1","' . time() . '")'
|
|
);
|
|
unset($usrwin);
|
|
} else {
|
|
//Ïðîèãðàëè
|
|
if ($mon['win_back'] == 1) {
|
|
mysql_query(
|
|
'UPDATE `users` SET `room` = "303" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
mysql_query(
|
|
'UPDATE `stats` SET `hpNow` = "' . $this->stats[$i]['hpAll'] . '",`mpNow` = "' . $this->stats[$i]['mpAll'] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("<font color=red>Âíèìàíèå!</font> ' . mysql_real_escape_string(
|
|
str_replace(
|
|
'{b}',
|
|
'<strong>' . $this->users[$i]['login'] . '</strong> [' . $this->users[$i]['level'] . ']<a target=_blank href=info/' . $this->users[$i]['id'] . ' ><img width=12 height=11 src=https://img.new-combats.com/i/inf_capitalcity.gif ></a>',
|
|
$mon['lose_text']
|
|
)
|
|
) . ' ","' . $this->users[$i]['city'] . '","","6","1","' . time() . '")'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
// âûêèäûâàåì áîòîâ èç áîÿ
|
|
$i = 0;
|
|
$botsi = 0;
|
|
if (isset($tststrt['id'])) {
|
|
while ($i < count($this->users)) {
|
|
//Òóò âûêèäûâàåì þçåðîâ èç Ïðèçàâîãî õàîòà
|
|
if ($this->info['type'] == 33) {
|
|
$plde = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1')
|
|
);
|
|
if (isset($plde['mail']) && $plde['mail'] == "haot@new-combats.com") {
|
|
$pld = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `users` WHERE `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
|
|
if (isset($pld['id'])) {
|
|
if ($this->users[$i]['battle_yron'] >= 500) {
|
|
$u->addItem(4754, $pld['id'], '');
|
|
$u->addItem(4754, $pld['id'], '');
|
|
$u->addItem(4754, $pld['id'], '');
|
|
$u->addItem(4754, $pld['id'], '');
|
|
$u->addItem(4754, $pld['id'], '');
|
|
$pld['battle_text'] .= ' Çà Ãåðîè÷åñêîå Ñðàæåíèå âû ïîëó÷àåòå <strong>Ðåëèêâèÿ Àíãåëà (x5)</strong>. ';
|
|
mysql_query(
|
|
'UPDATE `users_achiv` SET `pg`= `pg`+1 WHERE `id` = "' . $pld['id'] . '" LIMIT 1'
|
|
);
|
|
|
|
if ($this->users[$i]['team'] == $this->info['team_win']) {
|
|
if (rand(1, 100) <= 5) {
|
|
$u->addItem(10020, $pld['id'], '');
|
|
$pld['battle_text'] .= ' è <strong>Æåòîí Óñïåõà</strong>. ';
|
|
}
|
|
}
|
|
} else {
|
|
$pld['battle_text'] .= ' Âû íè÷åãî íå ïîëó÷èëè. <strong>Íóæíî íàáèòü áîëüøå 500 óðîíà óðîíà</strong> .';
|
|
}
|
|
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $pld['city'] . "','" . $pld['room'] . "','','" . $pld['login'] . "','" . $pld['battle_text'] . "','-1','6','0')"
|
|
);
|
|
mysql_query(
|
|
'DELETE FROM `stats` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'DELETE FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'
|
|
);
|
|
mysql_query(
|
|
'DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `users` SET `inUser` = "0" WHERE `inUser` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'DELETE FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
}
|
|
|
|
unset ($plde, $pld);
|
|
}
|
|
|
|
if ($this->users[$i]['bot'] == 1) {
|
|
$botsi++;
|
|
mysql_query('DELETE FROM `users` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
|
|
mysql_query('DELETE FROM `stats` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1');
|
|
mysql_query(
|
|
'DELETE FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100'
|
|
);
|
|
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100');
|
|
} elseif ($this->users[$i]['bot'] == 2) {
|
|
$this->users[$i]['battle'] = 0;
|
|
mysql_query(
|
|
'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'
|
|
);
|
|
//mysql_query('UPDATE `stats` SET `zv` = "0",`team` = "0",`exp` = `exp` + `battle_exp`,`battle_exp` = "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) {
|
|
$this->users[$i]['battle'] = 0;
|
|
mysql_query(
|
|
'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'
|
|
);
|
|
mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" LIMIT 100');
|
|
}
|
|
if ($this->users[$i]['clone'] > 0 && $this->users[$i]['bot'] > 0 && isset($this->users[$this->uids[$this->users[$i]['clone']]]['id']) && $this->users[$this->uids[$this->users[$i]['clone']]]['team'] != $this->users[$i]['team']) {
|
|
//Äîáàâëÿåì ÷òî êëîí ïîáåæäåí
|
|
if ($this->users[$this->uids[$this->users[$i]['clone']]]['team'] == $this->info['team_win']) {
|
|
$u->addAction(time(), 'win_bot_clone', '', $this->users[$i]['clone']);
|
|
} elseif ($this->info['team_win'] == 0) {
|
|
$u->addAction(time(), 'nich_bot_clone', '', $this->users[$i]['clone']);
|
|
} else {
|
|
$u->addAction(time(), 'lose_bot_clone', '', $this->users[$i]['clone']);
|
|
}
|
|
} elseif ($this->users[$i]['bot'] > 0 && $this->users[$i]['bot_id'] > 0) {
|
|
//Äîáàâëÿåì ÷òî áîòà ïîáåäèëè
|
|
$j = 0;
|
|
while ($j < count($this->users)) {
|
|
if ($this->users[$j]['bot'] == 0 && $this->users[$j]['team'] != $this->users[$i]['team']) {
|
|
if ($this->users[$j]['team'] == $this->info['team_win']) { // if($this->users[$j]['team']==$this->info['team_win']){
|
|
$u->addAction(
|
|
time(), 'win_bot_' . $this->users[$i]['bot_id'], '',
|
|
$this->users[$j]['id']
|
|
);
|
|
//
|
|
mysql_query(
|
|
'UPDATE `dialog_act` SET `now` = `now` + 1 WHERE `uid` = "' . $this->users[$j]['id'] . '" AND
|
|
( `btl_bot` LIKE "' . $this->users[$i]['bot_id'] . '!%" OR `btl_bot` LIKE "%!' . $this->users[$i]['bot_id'] . '!%" )
|
|
AND `val` != 1
|
|
LIMIT 1'
|
|
);
|
|
//
|
|
} elseif ($this->info['team_win'] == 0) {
|
|
$u->addAction(
|
|
time(), 'nich_bot_' . $this->users[$i]['bot_id'], '',
|
|
$this->users[$j]['id']
|
|
);
|
|
} else {
|
|
$u->addAction(
|
|
time(), 'lose_bot_' . $this->users[$i]['bot_id'], '',
|
|
$this->users[$j]['id']
|
|
);
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
$botss = [];
|
|
|
|
//Èç áîòà ïàäàþò ïðåäìåòû
|
|
if ($nl != 10 && $this->info['dungeon'] > 0) {
|
|
if ($this->info['team_win'] == $u->info['team'] && $this->info['dungeon'] == 102) {
|
|
$j1 = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `laba_obj` WHERE `type` = 2 AND `lib` = "' . $this->info['dn_id'] . '" AND `x` = "' . $this->info['x'] . '" AND `y` = "' . $this->info['y'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($j1['id'])) {
|
|
mysql_query('DELETE FROM `laba_obj` WHERE `id` = "' . $j1['id'] . '" LIMIT 1');
|
|
//Âûïàäàåò øìîòêà
|
|
mysql_query(
|
|
'INSERT INTO `laba_obj` (`use`,`lib`,`time`,`type`,`x`,`y`,`vars`) VALUES (
|
|
"0","' . $j1['lib'] . '","' . time(
|
|
) . '","6","' . $j1['x'] . '","' . $j1['y'] . '","' . (0 + $botsi) . '"
|
|
)'
|
|
);
|
|
}
|
|
} elseif ($this->info['team_win'] == $u->info['team']) {
|
|
//âûéãðàëè ëþäè, âûêèäûâàåì ïðåäìåòû èç ìîáîâ
|
|
$j1 = mysql_query(
|
|
'SELECT * FROM `dungeon_bots` WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `x` = "' . $this->info['x'] . '" AND `delete` = "0" AND `y`= "' . $this->info['y'] . '" LIMIT 100'
|
|
);
|
|
while ($tbot = mysql_fetch_array($j1)) {
|
|
$j2 = 0;
|
|
while ($j2 < $tbot['colvo']) {
|
|
if (isset($tbot['id2'])) {
|
|
$tbot2 = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `test_bot` WHERE `id` = "' . $tbot['id_bot'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$itms = explode('|', $tbot2['p_items']);
|
|
$tii = 0;
|
|
$testdrop = 0;
|
|
while ($tii < count($itms) && $testdrop == 0) {
|
|
$itmz = explode('=', $itms[$tii]);
|
|
if ($itmz[0] > 0) {
|
|
if (isset($itmz[2]) && $itmz[2] != '') { // $itmz[2] == quest888
|
|
$questDrop = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `actions` WHERE `vars` LIKE "%' . $itmz[2] . '%" AND `vals` = "go" AND `uid` = "' . $u->info['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
}
|
|
if (isset($questDrop['id'])) { // Åñëè êâåñò åñòü, ïðåäìåò èìååò øàíñ âûïàñòü
|
|
} elseif (isset($itmz[2]) && $itmz[2] != '') {
|
|
$itmz[1] = 0;
|
|
} // Åñëè ïðåäìåò êâåñòîâûé, à êâåñòà ó èãðîêà íåò, òî ïðåäìåò âûïàäåò ñ âåðîÿòíîñòüþ 0
|
|
unset($questDrop);
|
|
|
|
//Äîáàâëÿåì ýòîò ïðåäìåò â çîíó Õ è Ó
|
|
if ($itmz[1] * 100000 >= rand(1, 10000000)) {
|
|
$tou = 0; //êàêîìó þçåðó ïðåäíàçíà÷åíî
|
|
/* âûäåëÿåì ñëó÷àéíîãî þçåðà èç êîìàíäû */
|
|
$itmnm = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `name` FROM `items_main` WHERE `id` = "' . $itmz[0] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$itmnm = $itmnm['name'];
|
|
|
|
$rtxt = 'Ó <strong>' . $tbot2['login'] . '</strong> áûë ïðåäìåò "' . $itmnm . '" è êòî óãîäíî ìîæåò ïîäíÿòü åãî';
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`dn`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`,`typeTime`,`new`) VALUES ('" . $this->info['dn_id'] . "','" . $this->users[0]['city'] . "','" . $this->users[0]['room'] . "','','','" . $rtxt . "','" . time(
|
|
) . "','6','0','1','1')"
|
|
);
|
|
|
|
$ins = mysql_query(
|
|
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`) VALUES (
|
|
"' . $this->info['dn_id'] . '",
|
|
"' . $tou . '",
|
|
"' . $itmz[0] . '",
|
|
"' . time() . '",
|
|
"' . $this->info['x'] . '",
|
|
"' . $this->info['y'] . '")'
|
|
);
|
|
if (!isset($questDrop['id'])) {
|
|
$testdrop = 1; //ÒÓÒ drop-drop //quest
|
|
}
|
|
}
|
|
}
|
|
$tii++;
|
|
}
|
|
}
|
|
$j2++;
|
|
}
|
|
//
|
|
//Êâåñò 1-15 ñåíòÿáðÿ,
|
|
if (date('m') == 9 && date('d') < 15) {
|
|
if ($this->get_chanse(99) == true) {
|
|
//Íå âûïàëî
|
|
} elseif ($this->info['dungeon'] == 12 || $this->info['dungeon'] == 101) {
|
|
$tou = 0; //êàêîìó þçåðó ïðåäíàçíà÷åíî
|
|
/* âûäåëÿåì ñëó÷àéíîãî þçåðà èç êîìàíäû */
|
|
$itmz = [
|
|
rand(4745, 4751),
|
|
100,
|
|
];
|
|
//
|
|
$itmnm = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `name` FROM `items_main` WHERE `id` = "' . $itmz[0] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$itmnm = $itmnm['name'];
|
|
|
|
$rtxt = 'Ó <strong>' . $tbot2['login'] . '</strong> áûë ïðåäìåò "' . $itmnm . '" è êòî óãîäíî ìîæåò ïîäíÿòü åãî';
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`dn`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`,`typeTime`,`new`) VALUES ('" . $this->info['dn_id'] . "','" . $this->users[0]['city'] . "','" . $this->users[0]['room'] . "','','','" . $rtxt . "','" . time(
|
|
) . "','6','0','1','1')"
|
|
);
|
|
|
|
$ins = mysql_query(
|
|
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`) VALUES (
|
|
"' . $this->info['dn_id'] . '",
|
|
"' . $tou . '",
|
|
"' . $itmz[0] . '",
|
|
"' . time() . '",
|
|
"' . $this->info['x'] . '",
|
|
"' . $this->info['y'] . '")'
|
|
);
|
|
}
|
|
}
|
|
//
|
|
//Ñòðàíè÷êè ñàíû÷à,
|
|
|
|
if (rand(1, 100) <= 99) {
|
|
//Íå âûïàëî
|
|
} elseif ($this->info['dungeon'] == 12 || $this->info['dungeon'] == 3 ||
|
|
$this->info['dungeon'] == 101 || $this->info['dungeon'] == 16 ||
|
|
$this->info['dungeon'] == 9 || $this->info['dungeon'] == 10 ||
|
|
$this->info['dungeon'] == 13 || $this->info['dungeon'] == 106) {
|
|
$tou = 0; //êàêîìó þçåðó ïðåäíàçíà÷åíî
|
|
// âûäåëÿåì ñëó÷àéíîãî þçåðà èç êîìàíäû
|
|
$itmz = rand(3143, 3192);
|
|
//
|
|
$itmnm = mysql_fetch_array(
|
|
mysql_query('SELECT `name` FROM `items_main` WHERE `id` = "' . $itmz . '" LIMIT 1')
|
|
);
|
|
$itmnm = $itmnm['name'];
|
|
|
|
$rtxt = 'Ó <strong>' . $tbot2['login'] . '</strong> áûë ïðåäìåò "' . $itmnm . '" è êòî óãîäíî ìîæåò ïîäíÿòü åãî';
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`dn`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`,`typeTime`,`new`) VALUES ('" . $this->info['dn_id'] . "','" . $this->users[0]['city'] . "','" . $this->users[0]['room'] . "','','','" . $rtxt . "','" . time(
|
|
) . "','6','0','1','1')"
|
|
);
|
|
|
|
$ins = mysql_query(
|
|
'INSERT INTO `dungeon_items` (`dn`,`user`,`item_id`,`time`,`x`,`y`) VALUES (
|
|
"' . $this->info['dn_id'] . '",
|
|
"' . $tou . '",
|
|
"' . $itmz . '",
|
|
"' . time() . '",
|
|
"' . $this->info['x'] . '",
|
|
"' . $this->info['y'] . '")'
|
|
);
|
|
}
|
|
}
|
|
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" '
|
|
);
|
|
} else {
|
|
//âûêèäûâàåì âñåõ èãðîêîâ â êëåòêó RESTART
|
|
$dnr = 1;
|
|
if ($this->info['dungeon'] != 102) {
|
|
mysql_query(
|
|
'UPDATE `dungeon_bots` SET `inBattle` = "0" WHERE `dn` = "' . $this->info['dn_id'] . '" AND `for_dn` = "0" AND `x` = "' . $this->info['x'] . '" AND `y`= "' . $this->info['y'] . '"'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
$gm = [];
|
|
$gms = [];
|
|
$bm = [];
|
|
$bms = [];
|
|
|
|
//Êâåñòîâûé ðàçäåë
|
|
//Êâåñòîâûé ðàçäåë
|
|
|
|
//çàâåðøàåì ïîåäèíîê
|
|
$i = $this->uids[$u->info['id']];
|
|
|
|
if ($this->info['team_win'] >= 0) {
|
|
|
|
|
|
if ($this->stats[$i]['pbe'] > 0) {
|
|
//Áîíóñ ïîêóïàòåëÿ
|
|
$this->expCoef += $this->stats[$i]['pbe'];
|
|
}
|
|
|
|
if ($this->info['razdel'] == 5) {
|
|
if ($c['m'] >= 6 && $c['m'] <= 8) {
|
|
//Ëåòíèé ïåðèîä
|
|
$this->expCoef += 5;
|
|
} elseif ($c['w'] == 0 || $c['w'] == 6) {
|
|
//Âûõîäíûå äíè
|
|
$this->expCoef += 5;
|
|
}
|
|
}
|
|
|
|
$this->stats[$i]['exp'] += $this->expCoef;
|
|
|
|
$this->stats[$i]['exp'] += $this->aBexp * $c['exp'];
|
|
|
|
if ($this->stats[$i]['os4'] > 0) {
|
|
$this->stats[$i]['exp'] += $this->stats[$i]['os4'];
|
|
}
|
|
|
|
|
|
$act01 = 0;
|
|
$this->users[$i]['battle_exp'] = round(
|
|
$this->users[$i]['battle_exp'] + ($this->users[$i]['battle_exp'] / 100 * (1 + $this->info['addExp'] + $this->stats[$i]['exp']))
|
|
);
|
|
|
|
if ($this->info['type'] == 564) {
|
|
//Áîé ñ êîïèåé
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
}
|
|
|
|
if ($this->info['dungeon'] == 104) {
|
|
$this->users[$i]['battle_exp'] = ($u->info['level'] * 2) * (count($this->uids) - 1);
|
|
} elseif ($this->info['dungeon'] > 0 && $this->users[$i]['dnow'] != 0 && $this->info['dungeon'] != 1 && $this->users[$i]['team'] == $this->info['team_win']) {
|
|
$dun_limitForLevel = [
|
|
4 => 750,
|
|
5 => 1500,
|
|
6 => 3500,
|
|
7 => 8000,
|
|
8 => 25000,
|
|
9 => 50000,
|
|
10 => 75000,
|
|
11 => 100000,
|
|
12 => 100000,
|
|
13 => 100000,
|
|
14 => 100000,
|
|
];
|
|
// Ìàêñèìóì äëÿ êàæäîãî óðîâíÿ.
|
|
|
|
if ($this->users[$i]['battle_exp'] > 0) {
|
|
$dun_exp = []; // Òåêóùèé ëèìèò îïûòà èãðîêà â ïîäçåìåëüÿõ.
|
|
$rep = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `dungeonexp`,`id` FROM `rep` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$rep = explode(',', $rep['dungeonexp']);
|
|
foreach ($rep as $key => $val) {
|
|
$val = explode('=', $val); // òåêóùèé ëèìèò îïûòà â ïîäçåìêå
|
|
if (isset($val[0]) && isset($val[1]) && $val[0] != '' && $val[1] != 0) {
|
|
$dun_exp[(int)$val[0]] = (int)$val[1];
|
|
}
|
|
}
|
|
unset($rep);
|
|
}
|
|
|
|
if (!isset($dun_exp[$this->info['dungeon']])) {
|
|
$dun_exp[$this->info['dungeon']] = 0;
|
|
}
|
|
|
|
if (!isset($dun_limitForLevel[(int)$this->users[$i]['level']])) { // Åñëè ëèìèò íå çàäàí, îïûò íå äàåì.
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
} elseif (
|
|
isset($dun_exp[$this->info['dungeon']]) &&
|
|
$dun_exp[$this->info['dungeon']] >= $dun_limitForLevel[(int)$this->users[$i]['level']]
|
|
) { // Åñëè ëèìèò óæå äîñòèãíóò, îïûò íå äàåì.
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
} elseif (
|
|
isset($dun_exp[$this->info['dungeon']]) &&
|
|
$dun_limitForLevel[(int)$this->users[$i]['level']] > $dun_exp[$this->info['dungeon']]
|
|
) { // Åñëè òåêóùàÿ ðåïóòàöèÿ íå äîñòèãëà ëèìèòà.
|
|
if (($dun_exp[$this->info['dungeon']] + $this->users[$i]['battle_exp']) > $dun_limitForLevel[(int)$this->users[$i]['level']]) {
|
|
// Åñëè îïûòà íàáðàíî äîñòàòî÷íî, äëÿ äîñòèæåíèÿ ëèìèòà.
|
|
$this->users[$i]['battle_exp'] = abs(
|
|
$this->users[$i]['battle_exp'] - abs(
|
|
$dun_limitForLevel[(int)$this->users[$i]['level']] - ($this->users[$i]['battle_exp'] + $dun_exp[$this->info['dungeon']])
|
|
)
|
|
);
|
|
$dun_exp[$this->info['dungeon']] += $this->users[$i]['battle_exp'];
|
|
} elseif ($dun_limitForLevel[(int)$this->users[$i]['level']] > ($dun_exp[$this->info['dungeon']] + $this->users[$i]['battle_exp'])) {
|
|
// Åñëè îïûòà íåäîñòàòî÷íî, äëÿ äîñòèæåíèÿ ëèìèòà.
|
|
$dun_exp[$this->info['dungeon']] += $this->users[$i]['battle_exp'];
|
|
} else {
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
}
|
|
} else { // Â ëþáîé íåïîíÿòíîé ñèòóöàèè.
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
}
|
|
|
|
|
|
if ($this->users[$i]['battle_exp'] > 0 && isset($dun_exp[$this->info['dungeon']]) && $dun_exp[$this->info['dungeon']] > 0) {
|
|
$dunexp = [];
|
|
foreach ($dun_exp as $key => $val) {
|
|
$dunexp[$key] = $key . '=' . $val; // òåêóùèé ëèìèò îïûòà â ïîäçåìêå
|
|
}
|
|
$dun_exp = implode(",", $dunexp);
|
|
mysql_query(
|
|
'UPDATE `rep` SET `dungeonexp` = "' . $dun_exp . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
unset($dunexp, $dun_exp);
|
|
}
|
|
unset($dun_limitForLevel);
|
|
}
|
|
|
|
$sinf = '';
|
|
if ($c['exp_mega']) {
|
|
$this->users[$i]['battle_exp'] += floor(
|
|
$this->users[$i]['battle_exp'] / 100 * $c['exp_mega_val'][$this->users[$i]['level']]
|
|
);
|
|
}
|
|
|
|
if ($this->info['team_win'] == 0 && $this->info['type'] != 564) {
|
|
if ($this->users[$i]['level'] <= 1) {
|
|
$this->users[$i]['battle_exp'] = floor($this->users[$i]['battle_exp'] * 0.50);
|
|
} else {
|
|
$this->users[$i]['battle_exp'] = ceil($this->users[$i]['battle_exp'] * 0.10);
|
|
}
|
|
$this->users[$i]['nich'] += 1;
|
|
mysql_query(
|
|
'UPDATE `users` SET `swin` = 0, `slose` = 0 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
} elseif ($this->users[$i]['team'] == $this->info['team_win'] && $this->info['type'] != 564) {
|
|
$gm[$i] = $this->info['money'];
|
|
$gms[$i] = $this->info['money3'];
|
|
$this->users[$i]['win'] += 1;
|
|
$act01 = 1;
|
|
mysql_query(
|
|
'UPDATE `users` SET `swin` = `swin` + 1, `slose` = 0 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
} elseif ($this->info['type'] != 564) {
|
|
if ($this->users[$i]['level'] <= 1) {
|
|
$this->users[$i]['battle_exp'] = ceil($this->users[$i]['battle_exp'] * 0.33);
|
|
} else {
|
|
$this->users[$i]['battle_exp'] = ceil($this->users[$i]['battle_exp'] * 0.10);
|
|
}
|
|
$bm[$i] = $this->info['money'];
|
|
$bms[$i] = $this->info['money3'];
|
|
$this->users[$i]['lose'] += 1;
|
|
mysql_query(
|
|
'UPDATE `users` SET `swin` = 0, `slose` = `slose` + 1 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
$act01 = 2;
|
|
}
|
|
//Ðàññ÷èòûâàåì êîë-âî âûèãðûøíûõ ñóìì è êòî ñêîëüêî ïîëó÷èë (äëÿ åêð.)
|
|
if ($this->info['money3'] > 0 && isset($gms[$i]) && $this->info['type'] != 564) {
|
|
$mn = [
|
|
'l' => 0, //ñêîëüêî ïðîèãðàâøèõ èãðîêîâ
|
|
'w' => 0, //ñêîëüêî âûèãðûâøèõ èãðîêîâ
|
|
'm' => 0, //ñóììà âûèãðûøà (îáùàÿ)
|
|
];
|
|
if ($act01 == 1) {
|
|
$mn['l'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`id`) FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" AND `team` != "' . $this->users[$i]['team'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$mn['l'] = $mn['l'][0];
|
|
$mn['w'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`id`) FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" AND `team` = "' . $this->users[$i]['team'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$mn['w'] = $mn['w'][0];
|
|
$mn['m'] = round(($mn['l'] * $this->info['money3']) / 100 * 87, 2);
|
|
$gms[$i] = round(($mn['m'] / $mn['w']), 2);
|
|
}
|
|
}
|
|
//çàíîñèì äàííûå â ÁÄ
|
|
//Ïîëîìêà ïðåäìåòîâ
|
|
if ($act01 == 1) {
|
|
//ïîáåäà
|
|
if ($this->users[$i]['dnow'] == 0) {
|
|
if ($this->users[$i]['hpNow'] < 1) {
|
|
$lom = 0.05;
|
|
}
|
|
}
|
|
} elseif ($act01 == 2) {
|
|
//ïîðàæåíèå
|
|
$lom = 0.55;
|
|
} else {
|
|
//íè÷üÿ
|
|
$lom = 0.05;
|
|
}
|
|
$nlom = [0 => rand(0, 18), 1 => rand(0, 18), 2 => rand(0, 18), 3 => rand(0, 18)];
|
|
if ($this->info['type'] == 564) {
|
|
$lom = 0;
|
|
}
|
|
if ($this->stats[$i]['silver'] >= 4) {
|
|
$lom = 0;
|
|
}
|
|
mysql_query(
|
|
'UPDATE `items_users` SET `iznosNOW` = `iznosNOW`+' . $lom . ' WHERE `inOdet` < "18" AND `inOdet` > "0" AND `uid` = "' . $this->users[$i]['id'] . '" AND `inOdet`!="0" AND `inOdet`!=' . $nlom[0] . ' AND `inOdet`!=' . $nlom[1] . ' AND `inOdet`!=' . $nlom[2] . ' AND `inOdet`!=' . $nlom[3] . ' LIMIT 18'
|
|
);
|
|
|
|
$prc = '';
|
|
if ($this->users[$i]['align'] == 2) {
|
|
$this->users[$i]['battle_exp'] = floor($this->users[$i]['battle_exp'] / 2);
|
|
}
|
|
if ($this->users[$i]['animal'] > 0) {
|
|
$ulan = $u->testAction(
|
|
'`uid` = "' . $this->users[$i]['id'] . '" AND `vars` = "animal_use' . $this->info['id'] . '" LIMIT 1',
|
|
1
|
|
);
|
|
if (isset($ulan['id']) && $this->users[$i]['team'] == $this->info['team_win'] && $this->users[$i]['level'] > $ulan['vals']) {
|
|
$a004 = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `max_exp`,`name` FROM `users_animal` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `id` = "' . $this->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
//33% îò îïûòà ïåðåõîäèò çâåðþ, íî íå áîëåå ìàêñèìóìà
|
|
$aexp = (round($this->users[$i]['battle_exp'] / 100 * 33));
|
|
if ($aexp > $a004['max_exp']) {
|
|
$aexp = $a004['max_exp'];
|
|
}
|
|
unset($ulan);
|
|
//
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`
|
|
) VALUES (
|
|
'1','" . $this->users[$i]['city'] . "','" . $this->users[$i]['room'] . "','','" . $this->users[$i]['login'] . "'
|
|
,'Âàø ïèòîìåö "" . $a004['name'] . "" ïîëó÷èë îïûò: <strong>" . $aexp . "</strong>','-1','6','0')"
|
|
);
|
|
//
|
|
$upd = mysql_query(
|
|
'UPDATE `users_animal` SET `exp` = `exp` + ' . $aexp . ' WHERE `id` = "' . $this->users[$i]['animal'] . '" AND `level` < ' . $this->users[$i]['level'] . ' LIMIT 1'
|
|
);
|
|
if ($upd) {
|
|
$this->users[$i]['battle_exp'] = round($this->users[$i]['battle_exp'] / 100 * 67);
|
|
$this->info['addExp'] -= 33.333;
|
|
}
|
|
}
|
|
}
|
|
|
|
$prsusers = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT SUM(`price1`) FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
|
|
$btlstatus = $this->typeBattle($prsusers[0]);
|
|
if ($this->info['smert'] == 1) {
|
|
$btlstatus = [150, 150, 'Æåñòî÷àéøåå Ñðàæåíèå', 'Æåñòî÷àéøåå Ñðàæåíèå'];
|
|
}
|
|
//
|
|
if ($this->stats[$i]['clanpos'] > 0 && ($this->stats[$i]['clanpos'] == 1 || $this->stats[$i]['clanpos'] == 2 || $this->stats[$i]['clanpos'] == 3)) {
|
|
$this->info['addExp'] += 0;
|
|
}
|
|
|
|
unset($r1);
|
|
//Ñòàòóñíàÿ áèòâà
|
|
if ($btlstatus[0] > 0) {
|
|
if ($this->info['type'] == 99) {
|
|
$this->info['addExp'] += $btlstatus[1];
|
|
} else {
|
|
$this->info['addExp'] += $btlstatus[0];
|
|
}
|
|
}
|
|
|
|
if ($this->users[$i]['align'] == 2 || $this->users[$i]['haos'] > time()) {
|
|
$this->stats[$i]['exp'] = -($this->info['addExp'] + 50);
|
|
}
|
|
if ($this->info['addExp'] + $this->stats[$i]['exp'] != 0) {
|
|
$prc = ' (' . (100 + $this->info['addExp'] + $this->stats[$i]['exp']) . '%)';
|
|
}
|
|
if ($this->info['money'] > 0) {
|
|
if (isset($gm[$i])) {
|
|
$prc .= ' Âû âûéãðàëè <strong>' . $gm[$i] . ' êð.</strong> çà ýòîò áîé.';
|
|
$u->addDelo(
|
|
4, $this->users[$i]['id'],
|
|
'"<font color="olive">System.battle</font>": Ïåðñîíàæ âûéãðàë <strong>' . $gm[$i] . ' êð.</strong> (Â áîþ ¹' . $this->info['id'] . ').',
|
|
time(), $this->info['city'], 'System.battle', 0, 0
|
|
);
|
|
$this->users[$i]['money'] += $gm[$i];
|
|
} elseif (isset($bm[$i])) {
|
|
$prc .= ' Âû çàïëàòèëè <strong>' . $bm[$i] . ' êð.</strong> çà ýòîò áîé.';
|
|
$u->addDelo(
|
|
4, $this->users[$i]['id'],
|
|
'"<font color="olive">System.battle</font>": Ïåðñîíàæ <i>ïðîèãðàë</i> <strong>' . $gm[$i] . ' êð.</strong> (Â áîþ ¹' . $this->info['id'] . ').',
|
|
time(), $this->info['city'], 'System.battle', 0, 0
|
|
);
|
|
$this->users[$i]['money'] -= $bm[$i];
|
|
}
|
|
}
|
|
if ($c['money_haot'] && $this->users[$i]['exp'] <= 200000000) {
|
|
if ($act01 == 1 && $this->info['razdel'] == 5 && $this->users[$i]['level'] >= 8) {
|
|
//Ñêîëüêî íóæíî îïûòà íàáèòü
|
|
$trexp = [
|
|
8 => 1200,
|
|
9 => 3000,
|
|
10 => 4500,
|
|
11 => 12000,
|
|
12 => 20000,
|
|
13 => 30000,
|
|
14 => 30000,
|
|
15 => 30000,
|
|
16 => 30000,
|
|
17 => 30000,
|
|
18 => 30000,
|
|
19 => 30000,
|
|
20 => 30000,
|
|
21 => 30000,
|
|
];
|
|
$trexp = $trexp[$this->users[$i]['level']];
|
|
|
|
//Êàêàÿ öåíà ôóëëà äîëæíà áûòü
|
|
$trmn = [
|
|
8 => 1000,
|
|
9 => 3000,
|
|
10 => 2500,
|
|
11 => 3000,
|
|
12 => 3000,
|
|
13 => 3000,
|
|
14 => 3000,
|
|
15 => 3000,
|
|
16 => 3000,
|
|
17 => 3000,
|
|
18 => 3000,
|
|
19 => 3000,
|
|
20 => 3000,
|
|
21 => 3000,
|
|
];
|
|
$trmn = $trmn[$this->users[$i]['level']];
|
|
|
|
//Ñêîëüêî åêð äàåòñÿ
|
|
$admn = [
|
|
8 => 0.05, //0.05
|
|
9 => 0.065, //0.065
|
|
10 => 0.075, //0.075
|
|
11 => 0.085, //0.085
|
|
12 => 0.1, //0.1
|
|
13 => 0.1,
|
|
14 => 0.1,
|
|
15 => 0.1,
|
|
16 => 0.1,
|
|
17 => 0.1,
|
|
18 => 0.1,
|
|
19 => 0.1,
|
|
20 => 0.1,
|
|
21 => 0.1,
|
|
];
|
|
$admn = $admn[$this->users[$i]['level']];
|
|
|
|
if ($c['m'] >= 6 && $c['m'] <= 8) {
|
|
//Ëåòíèé ïåðèîä
|
|
if ($c['w'] == 0 || $c['w'] == 5 || $c['w'] == 6) {
|
|
//Âûõîäíûå äíè
|
|
$admn = $admn * 2;
|
|
}
|
|
} elseif ($c['w'] == 0 || $c['w'] == 5 || $c['w'] == 6) {
|
|
//Âûõîäíûå äíè
|
|
$admn = $admn * 2;
|
|
}
|
|
if ($this->users[$i]['battle_exp'] < $trexp) {
|
|
$prc .= ', Íàãðàäà <strong>0 ÅÊÐ</strong> çà ýòîò áîé (Ìàëî îïûòà íàáèëè).';
|
|
} elseif ($admn > 0) {
|
|
if ($this->info['type'] != 33) {
|
|
$prc .= ', Íàãðàäà <strong>' . $admn . ' ÅÊÐ</strong> çà ýòîò áîé.';
|
|
}
|
|
$u->addDelo(
|
|
4, $this->users[$i]['id'],
|
|
'"<font color="olive">System.battle</font>": Ïåðñîíàæ ïîëó÷èë <strong>' . $admn . ' ÅÊÐ</strong> ( áîþ ¹' . $this->info['id'] . ').',
|
|
time(), $this->info['city'], 'System.battle', 0, 0
|
|
);
|
|
$this->users[$i]['money2'] += $admn;
|
|
}
|
|
}
|
|
}
|
|
if ($this->info['money3'] > 0) {
|
|
if (isset($gms[$i])) {
|
|
$prc .= ' Âû âûéãðàëè <strong>' . $gms[$i] . ' $.</strong> çà ýòîò áîé.';
|
|
$u->addDelo(
|
|
4, $this->users[$i]['id'],
|
|
'"<font color="olive">System.battle</font>": Ïåðñîíàæ âûéãðàë <strong>' . $gms[$i] . ' $.</strong> (Â áîþ ¹' . $this->info['id'] . ').',
|
|
time(), $this->info['city'], 'System.battle', 0, 0
|
|
);
|
|
$this->users[$i]['money3'] += $gms[$i];
|
|
mysql_query(
|
|
'UPDATE `users` SET `money3` = `money3` + "' . $gms[$i] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
} elseif (isset($bms[$i])) {
|
|
$prc .= ' Âû çàïëàòèëè <strong>' . $bms[$i] . ' $.</strong> çà ýòîò áîé.';
|
|
$u->addDelo(
|
|
4, $this->users[$i]['id'],
|
|
'"<font color="olive">System.battle</font>": Ïåðñîíàæ <i>ïðîèãðàë</i> <strong>' . $gms[$i] . ' $.</strong> (Â áîþ ¹' . $this->info['id'] . ').',
|
|
time(), $this->info['city'], 'System.battle', 0, 0
|
|
);
|
|
$this->users[$i]['money3'] -= $bms[$i];
|
|
mysql_query(
|
|
'UPDATE `users` SET `money3` = `money3` - "' . $bms[$i] . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
}
|
|
|
|
$lime = [
|
|
8 => 18000,
|
|
9 => 28000,
|
|
10 => 84000,
|
|
11 => 100,
|
|
12 => 100,
|
|
13 => 100,
|
|
14 => 100,
|
|
15 => 100,
|
|
16 => 100,
|
|
17 => 100,
|
|
18 => 100,
|
|
19 => 100,
|
|
20 => 100,
|
|
21 => 100,
|
|
];
|
|
|
|
if ($this->users[$i]['level'] < 8) {
|
|
$lime = 5400;
|
|
} else {
|
|
$lime = $lime[$this->users[$i]['level']];
|
|
}
|
|
|
|
if ($this->stats[$i]['silver'] >= 5) {
|
|
$lime += round($lime);
|
|
}
|
|
|
|
if ($this->users[$i]['stopexp'] == 1) {
|
|
$lime = 0;
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
}
|
|
|
|
if ($lime < $this->users[$i]['battle_exp'] && $c['limitedexp'] == true) {
|
|
$this->users[$i]['battle_exp'] = $lime;
|
|
}
|
|
|
|
unset($lime);
|
|
|
|
if ($btlstatus[0] > 0) {
|
|
if ($this->info['type'] == 99) {
|
|
$prc .= ' (' . $btlstatus[3] . ')';
|
|
} else {
|
|
$prc .= ' (' . $btlstatus[2] . ')';
|
|
}
|
|
}
|
|
|
|
if ($this->info['dungeon'] == 1 && $this->users[$i]['team'] == $this->info['team_win']) {
|
|
//êàíàëèçàöèÿ ëèìèò
|
|
$rep = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `dl1`,`id` FROM `rep` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if ($rep['dl' . $this->info['dungeon']] > 0) {
|
|
$this->users[$i]['battle_exp'] += 3 * count($this->users);
|
|
if ($rep['dl' . $this->info['dungeon']] > $this->users[$i]['battle_exp']) {
|
|
$rep['dl' . $this->info['dungeon']] -= $this->users[$i]['battle_exp'];
|
|
} else {
|
|
$this->users[$i]['battle_exp'] = $rep['dl' . $this->info['dungeon']];
|
|
$rep['dl' . $this->info['dungeon']] = 0;
|
|
}
|
|
mysql_query(
|
|
'UPDATE `rep` SET `dl' . $this->info['dungeon'] . '` = "' . $rep['dl' . $this->info['dungeon']] . '" WHERE `id` = "' . $rep['id'] . '" LIMIT 1'
|
|
);
|
|
} else {
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
}
|
|
}
|
|
|
|
if ($this->users[$i]['battle_exp'] < 1) {
|
|
$this->users[$i]['battle_exp'] = 0;
|
|
}
|
|
|
|
if ($this->users[$i]['battle_exp'] < 1 && $this->users[$i]['twink'] == 0) {
|
|
if ($this->info['money'] == 0 && $this->info['money3'] == 0 && $this->info['kingfight'] == 0 && (!isset($admnb) || $admnb == 0)) {
|
|
$prc = '';
|
|
}
|
|
}
|
|
|
|
if ($this->user[$i]['host_reg'] == 'real_bot_user') {
|
|
$this->users[$i]['battle_exp'] = round($this->users[$i]['battle_exp'] / 3);
|
|
}
|
|
|
|
if ($sinf != '') {
|
|
$sinf = ' ( ' . $sinf . ' )';
|
|
}
|
|
|
|
//--------------Ëèìèò 8-9--------------
|
|
if ($this->users[$i]['level'] == 8 && $this->users[$i]['battle_exp'] >= 23000) {
|
|
$this->users[$i]['battle_exp'] = 23000;
|
|
};
|
|
if ($this->users[$i]['level'] == 9 && $this->users[$i]['battle_exp'] >= 31000) {
|
|
$this->users[$i]['battle_exp'] = 31000;
|
|
};
|
|
if ($this->users[$i]['level'] == 10 && $this->users[$i]['battle_exp'] >= 52000) {
|
|
$this->users[$i]['battle_exp'] = 52000;
|
|
};
|
|
if ($this->users[$i]['level'] >= 11 && $this->users[$i]['battle_exp'] >= 75000) {
|
|
$this->users[$i]['battle_exp'] = 75000;
|
|
};
|
|
//-------------------------------------
|
|
|
|
if ($this->info['type'] != 33) {
|
|
$this->users[$i]['battle_text'] = 'Áîé çàêîí÷åí. Âñåãî âàìè íàíåñåíî óðîíà: <strong>' . floor(
|
|
$this->users[$i]['battle_yron']
|
|
) . ' HP</strong>. Ïîëó÷åíî îïûòà: <strong>' . (0 + $this->users[$i]['battle_exp']) . '</strong>' . $prc . '.' . $sinf; //stats
|
|
}
|
|
|
|
/*Âûïàäåíèå çóáîâ â êîíöå áîÿ */
|
|
if ($c['nolevel']) {
|
|
$rex95 = substr($this->users[$i]['exp'], -1);
|
|
if ($this->users[$i]['money4'] < 1000 && $this->users[$i]['exp'] == 12499) {
|
|
$rex95 = 6;
|
|
$rex95 = 5;
|
|
}
|
|
} else {
|
|
$rex95 = 5;
|
|
}
|
|
|
|
if ($c['zuby'] && $this->info['dungeon'] == 0 && ($this->info['clone'] == 0 || $this->users[$i]['level'] < 5) && $rex95 != 9 && $this->info['type'] != 564) {
|
|
if ($this->users[$i]['align'] != 2 && $this->users[$i]['level'] >= 0 && $this->users[$i]['level'] < 8 && $this->users[$i]['battle_exp'] > 0) {
|
|
$rzb = 0;
|
|
|
|
if ($this->get_chanse(50)) {
|
|
$rzb += rand(1, 3);
|
|
} else {
|
|
if ($this->users[$i]['battle_exp'] > 15) {
|
|
$rzb += 1;
|
|
}
|
|
}
|
|
|
|
$chzbs = 100;
|
|
|
|
if ($this->stats[$i]['silver'] > 0) {
|
|
$chzbs = 150;
|
|
}
|
|
|
|
if ($this->users[$i]['battle_exp'] > 9) {
|
|
if ($this->users[$i]['level'] > 1) {
|
|
//Íîðìàëüíûé çóá
|
|
if ($this->get_chanse(25 / 100 * $chzbs)) {
|
|
$rzb += 10;
|
|
}
|
|
} elseif ($this->users[$i]['level'] == 1) {
|
|
if ($this->get_chanse(30 / 100 * $chzbs)) {
|
|
$rzb += 10;
|
|
}
|
|
}
|
|
|
|
if ($this->users[$i]['level'] > 3) {
|
|
if ($this->get_chanse(5 / 100 * $chzbs)) {
|
|
$rzb += 100;
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($this->users[$i]['team'] == $this->info['team_win']) {
|
|
//âûèãðàëè
|
|
if ($this->users[$i]['level'] < 8) {
|
|
$rzb += 1;
|
|
}
|
|
} elseif ($this->users[$i]['team'] == 0) {
|
|
//íè÷üÿ
|
|
if ($this->get_chanse(25 / 100 * $chzbs) && $this->users[$i]['battle_exp'] > 2) {
|
|
$rzb = rand(0, 1);
|
|
} else {
|
|
$rzb = 0;
|
|
}
|
|
} else {
|
|
//ïðîèãðàëè
|
|
if ($this->users[$i]['level'] >= 1) {
|
|
$rzb = 0;
|
|
} else {
|
|
if ($this->users[$i]['battle_exp'] < 3) {
|
|
$rzb = 0;
|
|
} elseif ($this->user[$i]['lose'] > $this->user[$i]['win']) {
|
|
if ($this->get_chanse(5 / 100 * $chzbs)) {
|
|
$rzb = rand(0, 1);
|
|
} else {
|
|
$rzb = 0;
|
|
}
|
|
} elseif ($this->get_chanse(10 / 100 * $chzbs)) {
|
|
$rzb = rand(0, 1);
|
|
}
|
|
}
|
|
$rzb = 0;
|
|
}
|
|
|
|
if ($rex95 == 6) {
|
|
if ($this->users[$i]['battle_exp'] > 10) {
|
|
$rzb = rand(0, 1);
|
|
} else {
|
|
$rzb = 0;
|
|
}
|
|
}
|
|
|
|
if ($rzb > 0 && rand(0, 1000) <= 500) {
|
|
$rzb = rand(1, 3);
|
|
}
|
|
if ($rzb > 0) {
|
|
if ($this->stats[$i]['silver'] >= 5) {
|
|
$rzb = $rzb * 2;
|
|
}
|
|
mysql_query(
|
|
'UPDATE `users` SET `money4` = `money4` + "' . $rzb . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
$this->users[$i]['battle_text'] .= ' Âû ïîëó÷èëè <small>' . $u->zuby(
|
|
$rzb,
|
|
1
|
|
) . '</small> çà ýòîò áîé.';
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($this->info['priz'] > 0) {
|
|
//Ïðèçîâîé õàîò
|
|
/*
|
|
[4754]
|
|
2-3 ëâë = 1 æåòîí
|
|
4-5 ëâë = 1 æåòîíà
|
|
6-7 ëâë = 2 æåòîíîâ
|
|
8-9 ëâë = 3 æåòîíîâ
|
|
 ñëó÷àè ïîáåäû (õ3)
|
|
|
|
*/
|
|
if ($this->info['type'] != 33)//ÒÓÒ ïðèç õàîò äðîï
|
|
{
|
|
$tmon = [
|
|
2 => 1,
|
|
3 => 1,
|
|
4 => 1,
|
|
5 => 1,
|
|
6 => 1,
|
|
7 => 2,
|
|
8 => 3,
|
|
9 => 3,
|
|
10 => 5,
|
|
11 => 5,
|
|
];
|
|
$tmon = $tmon[$this->users[$i]['level']];
|
|
$tmonc = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(*) FROM `battle` WHERE `id` IN ( SELECT `battle_id` FROM `battle_last` WHERE `uid` = "' . $this->users[$i]['id'] . '" ) AND `priz` > 0 AND `time_start` > "' . strtotime(
|
|
date('d.m.Y')
|
|
) . '"'
|
|
)
|
|
);
|
|
$tmonc = $tmonc[0];
|
|
if ($this->users[$i]['team'] == $this->info['team_win']) {
|
|
//Ïðè âûèãðûøå óâåëè÷èâàåì
|
|
if ($tmonc < 1) {
|
|
$tmonc = 1;
|
|
} elseif ($tmonc > 96) {
|
|
$tmonc = 96;
|
|
}
|
|
$tmon = ($tmon * $tmonc);
|
|
}
|
|
$tmoni = 1;
|
|
while ($tmoni <= floor($tmon / 2)) {
|
|
$u->addItem(4754, $this->users[$i]['id'], ''); //
|
|
$tmoni++;
|
|
}
|
|
$this->users[$i]['battle_text'] .= ' Çà ïðèçîâîé õàîò âû ïîëó÷àåòå <strong>Ïðèçîâîé Æåòîí (x' . floor(
|
|
$tmon / 2
|
|
) . ')</strong>. (×åì áîëüøå ïðèçîâûõ õàîòîâ âû ïðèìèòå çà ñóòêè, òåì áîëüøå áóäåò âûäàâàòüñÿ æåòîíîâ ïðè ïîáåäå! Ïðèçîâûõ õàîòîâ ïîñåùåíî ñåãîäíÿ ' . ($tmonc) . '/96 )';
|
|
unset($tmon, $tmoni);
|
|
}
|
|
}
|
|
//Ñíèæåíèå âðåìåíè Ïðàâî íà ïîäâèã Òèòóë çà ïîáåäó â õàîòå
|
|
if ($this->info['dungeon'] == 0 && $this->info['razdel'] == 5 && $this->users[$i]['team'] == $this->info['team_win']) {
|
|
//ÒÓÒ2
|
|
$u->repexp_add($this->users[$i]['id'], 2); //Ðåïóòàöèÿ çà ïîá â õàîòå +2
|
|
$check = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `eff_users` WHERE `id_eff` = 478 AND `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = 0 ORDER BY `overType` DESC LIMIT 1;'
|
|
)
|
|
);
|
|
if (isset($check['id'])) {
|
|
$urcheck = 10000;
|
|
if ($this->users[$i]['level'] == 8) {
|
|
$urcheck = 3000;
|
|
} elseif ($this->users[$i]['level'] == 9) {
|
|
$urcheck = 7000;
|
|
} elseif ($this->users[$i]['level'] == 10) {
|
|
$urcheck = 12000;
|
|
} elseif ($this->users[$i]['level'] >= 11) {
|
|
$urcheck = 18000;
|
|
}
|
|
|
|
if ($this->users[$i]['battle_yron'] >= $urcheck) {
|
|
mysql_query(
|
|
'UPDATE `eff_users` SET `timeUse` = `timeUse` - 300 WHERE `id_eff`=478 AND `delete` = 0 AND `uid` =' . $this->users[$i]['id'] . ' LIMIT 1'
|
|
);
|
|
$this->users[$i]['battle_text'] .= ' Çà ïîáåäó â õàîòå è íàíåñåíèå óðîíà â <strong>' . $urcheck . '</strong> è áîëåå âû ïîëó÷àåòå <strong>-5 ìèí.</strong> ê ïðàâó íà ïîäâèã!';
|
|
}
|
|
}
|
|
mysql_query(
|
|
'UPDATE `users_achiv` SET `vx`= `vx`+1 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
); //
|
|
|
|
}
|
|
//Íàãðàäà çà êëàí âàð
|
|
if ($this->info['dungeon'] == 0 && $this->info['type'] == 250 && $this->users[$i]['team'] == $this->info['team_win']) {
|
|
mysql_query(
|
|
'UPDATE `users_achiv` SET `kw`= `kw`+1 WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
if (date('w') == 0 || date('w') == 6 || date('w') == 4) {
|
|
$u->repexp_add($this->users[$i]['id'], 25); //Êëàíîâûå âîéíû(ïîáåäà) 25
|
|
}
|
|
}
|
|
//Íàãðàäà çà êëàí âàð
|
|
if ($this->info['dungeon'] == 0 && $this->info['type'] == 99 && $this->users[$i]['team'] == $this->info['team_win']) {
|
|
if (date('w') == 0 || date('w') == 6 || date('w') == 5) {
|
|
$u->repexp_add($this->users[$i]['id'], 10); //Êðîâàâûå âîéíû(ïîáåäà) 10
|
|
}
|
|
}
|
|
|
|
//Íîâàÿ âûäà÷à íà òðóïîæîðà
|
|
if ($this->info['dungeon'] == 0 && $this->info['type'] == 500 && $this->users[$i]['team'] == $this->info['team_win'] && $this->users[$i]['no_ip'] != 'trupojor' && $this->users[$i]['bot'] == 0) {
|
|
if ($this->users[$i]['level'] > 9) {
|
|
$mid = 903093;
|
|
} else {
|
|
$mid = 89489;
|
|
}
|
|
$mon = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `aaa_monsters` WHERE `uid` = "' . $mid . '" LIMIT 1')
|
|
);
|
|
|
|
if ($this->users[$i]['battle_yron'] >= 2000) {
|
|
$ritem = rand(1, 100);
|
|
if ($ritem <= 20) {
|
|
$mon['win_itm'] = '4459@1';
|
|
} elseif ($ritem <= 40) {
|
|
$mon['win_itm'] = '4460@1';
|
|
} elseif ($ritem <= 60) {
|
|
$mon['win_itm'] = '4461@1';
|
|
} elseif ($ritem <= 80) {
|
|
$mon['win_itm'] = '4462@1';
|
|
} else {
|
|
$mon['win_itm'] = '4463@1';
|
|
}
|
|
} elseif ($this->users[$i]['battle_yron'] >= 1500) {
|
|
$ritem = rand(1, 100);
|
|
if ($ritem <= 20) {
|
|
$mon['win_itm'] = '4459@1';
|
|
} elseif ($ritem <= 40) {
|
|
$mon['win_itm'] = '4460@1';
|
|
} elseif ($ritem <= 60) {
|
|
$mon['win_itm'] = '4461@1';
|
|
} elseif ($ritem <= 80) {
|
|
$mon['win_itm'] = '4462@1';
|
|
} else {
|
|
$mon['win_itm'] = '4463@1';
|
|
}
|
|
} elseif ($this->users[$i]['battle_yron'] >= 1000) {
|
|
$ritem = rand(1, 100);
|
|
if ($ritem <= 25) {
|
|
$mon['win_itm'] = '4460@1';
|
|
} elseif ($ritem <= 50) {
|
|
$mon['win_itm'] = '4461@1';
|
|
} elseif ($ritem <= 75) {
|
|
$mon['win_itm'] = '4462@1';
|
|
} else {
|
|
$mon['win_itm'] = '4463@1';
|
|
}
|
|
} else {
|
|
$mon['win_itm'] = '4392@1';
|
|
$timewait = 0;
|
|
}
|
|
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(
|
|
) . '")'
|
|
);
|
|
}
|
|
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"," ","","")'
|
|
);
|
|
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(
|
|
) . '")'
|
|
);
|
|
$ritem = rand(1, 1000);
|
|
if ($ritem == 555) {
|
|
$mon['win_itm'] = $mon['win_itm'] . ',5022@1';
|
|
}
|
|
//
|
|
$this->addGlobalItems(
|
|
$mid, $this->users[$i]['id'], $mon['win_itm'], $mon['win_eff'],
|
|
$mon['win_ico'], 1, $mon['win_money1'], $mon['win_money2']
|
|
); //$mon['win_exp']
|
|
|
|
}
|
|
|
|
if ($this->info['dungeon'] == 0 && $this->info['razdel'] == 5 && $u->info['battle_yron'] >= 2000) //$u->info['battle_yron']
|
|
{
|
|
//Ðåëèêâèÿ Àíãåëà ang_g
|
|
if ($this->users[$i]['team'] == $this->info['team_win']) {
|
|
//Ïðè âûèãðûøå óâåëè÷èâàåì
|
|
$tmoni = 2;
|
|
} else {
|
|
$tmoni = 1;
|
|
}
|
|
|
|
//
|
|
$tmon = $tmoni;
|
|
$effblago = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `eff_users` WHERE `uid` = ' . $this->users[$i]['id'] . ' AND `delete` = 0 AND `id_eff`= 414 LIMIT 1'
|
|
)
|
|
);
|
|
if (isset ($effblago['id'])) {
|
|
$limitg = 50;
|
|
} else {
|
|
$limitg = 25;
|
|
}
|
|
while ($tmoni >= 1) {
|
|
if ($u->info['ang_g'] < $limitg) {
|
|
$u->addItem(4754, $this->users[$i]['id'], '');
|
|
mysql_query(
|
|
'UPDATE `users` SET `ang_g`=`ang_g`+1 WHERE `id` =' . $this->users[$i]['id'] . ''
|
|
);
|
|
} else {
|
|
$tmon--;
|
|
}
|
|
$tmoni--;
|
|
}
|
|
|
|
if ($this->info['type'] != 33) {
|
|
$this->users[$i]['battle_text'] .= ' Çà õàîò âû ïîëó÷àåòå <strong>Ðåëèêâèÿ Àíãåëà (' . $tmon . ')</strong>. Âñåãî [' . ($u->info['ang_g'] + $tmon) . '/' . $limitg . '] â äåíü. ';
|
|
}
|
|
unset($tmon, $tmoni, $effblago, $limitg);
|
|
}
|
|
|
|
|
|
if ($this->info['razdel'] == 5 || $this->info['razdel'] == 4) {
|
|
if (date('d.m') == '31.10' || (date('m') == 11 && date('d') < 7)) {
|
|
//Õýëëîóèí 4504
|
|
$this->users[$i]['battle_text'] .= ' Âû ïîëó÷àåòå <strong>Òûêâà (x1)</strong>.';
|
|
$u->addItem(4504, $this->users[$i]['id'], '|sudba=1');
|
|
}
|
|
}
|
|
|
|
|
|
//Äîáàâëÿåì âîèíñòâåííîñòü
|
|
if ($this->info['dungeon'] == 0 && $this->info['razdel'] == 5 && $this->users[$i]['exp'] >= 1500 /*($this->users[$i]['exp'] < 12499 || $this->users[$i]['exp'] > 12500)*/
|
|
) {
|
|
if ($this->users[$i]['battle_exp'] > 100 * $this->users[$i]['level']) {
|
|
$rzbvo = $this->users[$i]['battle_exp'] * 6 / 1000;
|
|
|
|
if ($this->users[$i]['level'] == 8) {
|
|
if ($rzbvo >= 100) {
|
|
$rzbvo = 100;
|
|
}
|
|
}
|
|
if ($this->users[$i]['level'] == 9) {
|
|
if ($rzbvo >= 150) {
|
|
$rzbvo = 150;
|
|
}
|
|
}
|
|
if ($this->users[$i]['level'] == 10) {
|
|
if ($rzbvo >= 200) {
|
|
$rzbvo = 200;
|
|
}
|
|
}
|
|
if ($this->users[$i]['level'] == 11) {
|
|
if ($rzbvo >= 250) {
|
|
$rzbvo = 250;
|
|
}
|
|
}
|
|
if ($this->users[$i]['level'] == 12) {
|
|
if ($rzbvo >= 250) {
|
|
$rzbvo = 250;
|
|
}
|
|
}
|
|
|
|
|
|
if ($this->info['type'] != 33) {
|
|
$this->users[$i]['battle_text'] .= ' Âû ïîëó÷èëè ' . $rzbvo . ' âîèíñòâåííîñòè çà ýòîò áîé.';
|
|
}
|
|
mysql_query(
|
|
'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 . '","")'
|
|
);
|
|
}
|
|
}
|
|
|
|
if ($this->stats[$i]['hpNow'] >= 1) {
|
|
$this->stats[$i]['test_heal'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT SUM(`yrn`) FROM `battle_stat` WHERE `uid2` = "' . $this->users[$i]['id'] . '" AND `battle` = "' . $this->info['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->stats[$i]['test_heal'] = $this->stats[$i]['test_heal'][0];
|
|
$this->stats[$i]['test_start'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `hpStart` FROM `battle_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `battle` = "' . $this->info['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->stats[$i]['test_start'] = $this->stats[$i]['test_start']['hpStart'];
|
|
//
|
|
$this->stats[$i]['hpNow'] = ($this->stats[$i]['test_start'] - $this->stats[$i]['test_heal']);
|
|
if ($this->stats[$i]['hpNow'] < 1) {
|
|
$this->stats[$i]['hpNow'] = 1;
|
|
}
|
|
} else {
|
|
$this->stats[$i]['hpNow'] = 0;
|
|
}
|
|
|
|
unset($this->stats[$i]['test_heal']);
|
|
|
|
$this->users[$i]['last_b'] = $this->info['id']; //stats
|
|
$this->users[$i]['last_a'] = $act01;
|
|
$this->users[$i]['battle'] = -1; //users
|
|
$this->users[$i]['battle_yron'] = 0; //stats
|
|
|
|
$this->users[$i]['exp'] += $this->users[$i]['battle_exp']; //users
|
|
|
|
|
|
//Äîáàâëÿåì êëàí îïûò (Âñå êðîìå ïåùåð)
|
|
|
|
if ($this->users[$i]['clan'] > 0) {
|
|
$cpr = 1;
|
|
if ($this->info['typeBattle'] == 9) {
|
|
$cpr = 25;
|
|
} elseif ($this->info['typeBattle'] == 50) {
|
|
$cpr = 65;
|
|
}
|
|
if ($this->stats[$i]['silver'] >= 5) {
|
|
$cpr = floor($cpr / 100 * 150);
|
|
}
|
|
mysql_query(
|
|
'UPDATE `clan` SET `exp` = `exp` + "' . round(
|
|
$this->users[$i]['battle_exp'] / 100 * $cpr
|
|
) . '" WHERE `id` = "' . $this->users[$i]['clan'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
|
|
$this->users[$i]['battle_exp'] = 0; //stats
|
|
|
|
if ($this->users[$i]['team'] == $this->info['team_win']) {
|
|
mysql_query(
|
|
'UPDATE `rep` SET `n_capitalcity` = `n_capitalcity` + ' . $this->users[$i]['bn_capitalcity'] . ' ,`n_demonscity` = `n_demonscity` + ' . $this->users[$i]['bn_demonscity'] . ' ,`n_demonscity` = `n_demonscity` + ' . $this->users[$i]['bn_suncity'] . ' WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
|
|
//ðåïóòàöèÿ
|
|
$this->users[$i]['bn_demonscity'] = 0;
|
|
$this->users[$i]['bn_capitalcity'] = 0;
|
|
$this->users[$i]['bn_suncity'] = 0;
|
|
//çàâåðøåíèå ýôôåêòîâ ñ ôèíèøåì
|
|
$spe = mysql_query(
|
|
'SELECT * FROM `eff_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `file_finish` != "" AND `v1` = "priem" LIMIT 30'
|
|
);
|
|
while ($ple = mysql_fetch_array($spe)) {
|
|
if (file_exists('../../_incl_data/class/priems/' . $ple['file_finish'] . '.php')) {
|
|
require('../../_incl_data/class/priems/' . $ple['file_finish'] . '.php');
|
|
}
|
|
}
|
|
//îáíîâëÿåì äàííûå
|
|
mysql_query(
|
|
'DELETE FROM `eff_users` WHERE `v1` = "priem" AND `uid` = "' . $this->users[$i]['id'] . '" LIMIT 50'
|
|
);
|
|
if ($dnr == 1) {
|
|
if ($this->users[$i]['room'] == 370) {
|
|
$dies = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`id`) FROM `dungeon_actions` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `dn` = "' . $this->users[$i]['dnow'] . '" AND `vars` = "dielaba" LIMIT 1'
|
|
)
|
|
);
|
|
$dies = $dies[0];
|
|
mysql_query(
|
|
'INSERT INTO `dungeon_actions` (`dn`,`uid`,`x`,`y`,`time`,`vars`,`vals`) VALUES (
|
|
"' . $this->users[$i]['dnow'] . '","' . $this->users[$i]['id'] . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '","' . time(
|
|
) . '","dielaba",""
|
|
)'
|
|
);
|
|
} else {
|
|
$dies = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(`id`) FROM `dungeon_actions` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `dn` = "' . $this->users[$i]['dnow'] . '" AND `vars` = "die" LIMIT 1'
|
|
)
|
|
);
|
|
$dies = $dies[0];
|
|
mysql_query(
|
|
'INSERT INTO `dungeon_actions` (`dn`,`uid`,`x`,`y`,`time`,`vars`,`vals`) VALUES (
|
|
"' . $this->users[$i]['dnow'] . '","' . $this->users[$i]['id'] . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '","' . time(
|
|
) . '","die",""
|
|
)'
|
|
);
|
|
}
|
|
if ($dies < 2 || $this->info['dungeon'] == 15) {
|
|
//
|
|
$tshbn = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `items_users` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `delete` = 0 AND `item_id` = "4910" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($tshbn['id'])) {
|
|
//âûáðàñûâàåì øàéáó
|
|
mysql_query('DELETE FROM `items_users` WHERE `id` = "' . $tshbn['id'] . '" LIMIT 1');
|
|
//
|
|
mysql_query(
|
|
'INSERT INTO `dungeon_obj` (
|
|
`name`,`dn`,`x`,`y`,`img`,`delete`,`action`,`for_dn`,
|
|
`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`
|
|
) VALUES (
|
|
"Øàéáà","' . $this->info['dn_id'] . '","' . $this->users[$i]['x'] . '","' . $this->users[$i]['y'] . '","shaiba.png","0","fileact:15/shaiba","0",
|
|
"0","120","220","0","0","5","8","12","0","0","0","0","{use:\'takeit\',rt1:69,rl1:-47,rt2:74,rl2:126,rt3:76,rl3:140,rt4:80,rl4:150}"
|
|
)'
|
|
);
|
|
//
|
|
}
|
|
//òåëåïîðòèðóåì â ðåñòàðò (êîîðäèíàòà 0õ0)
|
|
$this->users[$i]['x'] = $this->users[$i]['res_x'];
|
|
$this->users[$i]['y'] = $this->users[$i]['res_y'];
|
|
$this->users[$i]['s'] = $this->users[$i]['res_s'];
|
|
$r_n = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `name` FROM `room` WHERE `id` = "' . (int)$this->users[$i]['room'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if ($this->users[$i]['room'] == 370) {
|
|
if ($this->users[$i]['sex'] == 0) {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèá è íàõîäèòñÿ â íà÷àëå ëàáèðèíòà';
|
|
} else {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèáëà è íàõîäèòñÿ â íà÷àëå ëàáèðèíòà';
|
|
}
|
|
} else {
|
|
if ($this->users[$i]['sex'] == 0) {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèá è íàõîäèòñÿ â êîìíàòå "' . $r_n['name'] . '"';
|
|
} else {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèáëà è íàõîäèòñÿ â êîìíàòå "' . $r_n['name'] . '"';
|
|
}
|
|
}
|
|
} elseif ($this->info['dungeon'] == 102) {
|
|
$nld = '';
|
|
$lab = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`users` FROM `laba_now` WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if ($lab['users'] < 2) {
|
|
//Óäàëÿåì ïîäçåìåëüå
|
|
mysql_query('DELETE FROM `laba_now` WHERE `id` = "' . $lab['id'] . '" LIMIT 1');
|
|
mysql_query('DELETE FROM `laba_map` WHERE `id` = "' . $lab['id'] . '" LIMIT 1');
|
|
mysql_query('DELETE FROM `laba_obj` WHERE `lib` = "' . $lab['id'] . '"');
|
|
mysql_query('DELETE FROM `laba_act` WHERE `lib` = "' . $lab['id'] . '"');
|
|
mysql_query('DELETE FROM `laba_itm` WHERE `lib` = "' . $lab['id'] . '"');
|
|
} else {
|
|
$lab['users']--;
|
|
mysql_query(
|
|
'UPDATE `laba_now` SET `users` = "' . $lab['users'] . '" WHERE `id` = "' . $lab['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
mysql_query(
|
|
'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `users` SET `room` = "369" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
//óäàëÿåì âñå ïðåäìåòû êîòîðûå ïðîïàäàþò ïîñëå âûõîäà èç ïåùåðû
|
|
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%")'
|
|
);
|
|
if ($this->users[$i]['login'] != '') {
|
|
if ($this->users[$i]['sex'] == 0) {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèá áåç ïðàâà íà âîñêðåøåíèå è ïîêèäàåò ïîäçåìåëüå' . $nld;
|
|
} else {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèáëà áåç ïðàâà íà âîñêðåøåíèå è ïîêèäàåò ïîäçåìåëüå' . $nld;
|
|
}
|
|
}
|
|
} else {
|
|
$tinf = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `uid` FROM `dungeon_now` WHERE `id` = "' . $this->info['dn_id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$nld = '';
|
|
if ($tinf['uid'] == $this->users[$i]['id']) {
|
|
$tinf = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `stats` WHERE `dnow` = "' . $this->info['dn_id'] . '" AND `hpNow` >= 1 LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($tinf['id'])) {
|
|
$tinf = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`login` FROM `users` WHERE `id` = "' . $tinf['id'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$nld .= ', íîâûì ëèäåðîì ñòàíîâèòñÿ "' . $tinf['login'] . '"';
|
|
mysql_query(
|
|
'UPDATE `dungeon_now` SET `uid` = "' . $tinf['id'] . '" WHERE `id` = "' . $this->info['dn_id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
}
|
|
$rooms = [
|
|
374 => 372, //ÏÒÏ (Êýïèòàë ñèòè)
|
|
189 => 188, //Âîäîñòîê (Êýïèòàë ñèòè)
|
|
392 => 393, //Øàõòû (Êýïèòàë ñèòè)
|
|
|
|
398 => 397, //Øàõòû (Àíãåëñ ñèòè)
|
|
243 => 395, //Âîäîñòîê (Àíãåëñ ñèòè)
|
|
360 => 242, //Áåçäíà (Àíãåëñ ñèòè)
|
|
|
|
19 => 293, //Êàòàêîìáû
|
|
];
|
|
// $n_rm = $rooms[$this->users[$i]['room']];
|
|
mysql_query(
|
|
'UPDATE `stats` SET `dnow` = "0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `users` SET `room` = "321" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
//óäàëÿåì âñå ïðåäìåòû êîòîðûå ïðîïàäàþò ïîñëå âûõîäà èç ïåùåðû
|
|
mysql_query(
|
|
'UPDATE `items_users` SET `delete` = "' . time(
|
|
) . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `dn_delete` = "1" LIMIT 1000'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `items_users` SET `delete` = "' . time(
|
|
) . '" WHERE `uid` = "' . $u->info['id'] . '" AND `item_id` = "1189" OR `item_id` = "4447" OR `item_id` = "1174") LIMIT 1000'
|
|
);
|
|
if ($this->users[$i]['sex'] == 0) {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèá áåç ïðàâà íà âîñêðåøåíèå è ïîêèäàåò ïîäçåìåëüå' . $nld;
|
|
} else {
|
|
$rtxt = '<strong>' . $this->users[$i]['login'] . '</strong> òðàãè÷åñêè ïîãèáëà áåç ïðàâà íà âîñêðåøåíèå è ïîêèäàåò ïîäçåìåëüå' . $nld;
|
|
}
|
|
}
|
|
if ($rtxt != '') {
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`dn`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`,`typeTime`,`new`) VALUES ('" . $this->info['dn_id'] . "','" . $this->users[$i]['city'] . "','" . $this->users[$i]['room'] . "','','','" . $rtxt . "','" . time(
|
|
) . "','6','0','1','1')"
|
|
);
|
|
}
|
|
}
|
|
|
|
mysql_query('UPDATE `users` SET `login2` = "" WHERE `battle` = "' . $this->info['id'] . '"');
|
|
$upd = mysql_query(
|
|
'UPDATE `users` SET `login2` = "", `money` = "' . $this->users[$i]['money'] . '", `money2` = "' . $this->users[$i]['money2'] . '",`win` = "' . $this->users[$i]['win'] . '",`lose` = "' . $this->users[$i]['lose'] . '",`nich` = "' . $this->users[$i]['nich'] . '",`battle` = "-1" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
|
|
if ($u->info['id'] == $this->users[$i]['id']) {
|
|
$u->info['battle_text'] = $this->users[$i]['battle_text'];
|
|
}
|
|
|
|
$upd2 = 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'
|
|
);
|
|
if ($this->info['turnir'] == 0) {
|
|
//ïèøåì â ÷àò
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $this->users[$i]['city'] . "','" . $this->users[$i]['room'] . "','','" . $this->users[$i]['login'] . "','" . $this->users[$i]['battle_text'] . "','-1','6','0')"
|
|
);
|
|
} else {
|
|
mysql_query(
|
|
'UPDATE `turnirs` SET `winner` = "' . $this->info['team_win'] . '" WHERE `id` = "' . $this->info['turnir'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
//çàâåðøàåì ñàì áîé
|
|
$upd3 = mysql_query(
|
|
'UPDATE `battle` SET `time_over` = "' . time(
|
|
) . '",`team_win` = "' . $this->info['team_win'] . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
|
|
|
|
// Æðàòü õî÷åò
|
|
if ($this->users[$i]['animal'] > 0) {
|
|
$a = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `users_animal` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `id` = "' . $this->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($a['id'])) {
|
|
if ($a['eda'] < 1) {
|
|
$u->send(
|
|
'', $this->users[$i]['room'], $this->users[$i]['city'], '',
|
|
$this->users[$i]['login'], '<strong>' . $a['name'] . '</strong> íóæäàåòñÿ â åäå...',
|
|
time(), 6, 0, 0, 0, 1
|
|
);
|
|
}
|
|
}
|
|
}
|
|
mysql_query(
|
|
'UPDATE `stats` SET `battle_text` = "",`last_b`="0" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
mysql_query('UPDATE `battle_users` SET `finish` = 1 WHERE `uid` = "' . $this->users[$i]['id'] . '"');
|
|
$this->saveLogs($this->info['id'], 'all');
|
|
if ($u->info['battle'] != 0 && !isset($u->info['battle_lsto'])) {
|
|
echo '<script>document.getElementById(\'teams\').style.display=\'none\';var battleFinishData = "' . $u->info['battle_text'] . '";</script>';
|
|
}
|
|
}
|
|
|
|
} else {
|
|
sleep(2);
|
|
}
|
|
mysql_query('UPDATE `battle` SET `testfinish` = "0" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1');
|
|
mysql_query('UNLOCK TABLES');
|
|
}
|
|
|
|
|
|
public $ainm = [];
|
|
|
|
public function addGlobalItems($bid, $uid, $itm, $eff, $ico, $exp, $cr, $ecr)
|
|
{
|
|
global $u;
|
|
//
|
|
//Âûïàäåíèå äðîïà íà ÖÏ
|
|
if ($bid == 1008) {
|
|
//Ñòàðûé Íîâûé Ãîä
|
|
$jit = 0;
|
|
$iit = mysql_fetch_array(
|
|
mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120) . '')
|
|
);
|
|
$iit = floor($iit[0] / 20);
|
|
$iit = rand(1, $iit);
|
|
while ($jit < $iit) {
|
|
if (rand(0, 100) < 50) {
|
|
$svtk = [
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1461,
|
|
1462,
|
|
1463,
|
|
4037,
|
|
4038,
|
|
4039,
|
|
4040,
|
|
911,
|
|
1172,
|
|
1173,
|
|
2142,
|
|
2141,
|
|
2143,
|
|
2870,
|
|
2144,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
1000,
|
|
];
|
|
$svtk = $svtk[rand(0, count($svtk) - 1)];
|
|
if ($svtk == 1000) {
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
),(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
),(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
),(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
),(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
),(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
}
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"' . $svtk . '",
|
|
"|nosale=1|srok=259200",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
}
|
|
$jit++;
|
|
}
|
|
unset($svtk);
|
|
} elseif ($bid == 1007) {
|
|
//Õýëëîóèí, Òûêâîãîëîâûé CAPITAL CITY
|
|
$jit = 0;
|
|
$iit = mysql_fetch_array(
|
|
mysql_query('SELECT COUNT(*) FROM `users` WHERE `online` > ' . (time() - 120) . '')
|
|
);
|
|
$iit = floor($iit[0] / 20);
|
|
$iit = rand(1, $iit);
|
|
while ($jit < $iit) {
|
|
if (rand(0, 100) < 50) {
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4504",
|
|
"",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
}
|
|
$jit++;
|
|
}
|
|
} elseif ($bid == 1006) {
|
|
//Òðóïîæîð CAPITAL CITY
|
|
if (rand(0, 100) < 10) {
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4451",
|
|
"srok=86400",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
}
|
|
} elseif ($bid == 1000) {
|
|
//Òðóïîæîð CAPITAL CITY
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4460",
|
|
"srok=2592000",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
} elseif ($bid == 1001) {
|
|
//Òðóïîæîð CAPITAL CITY
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4461",
|
|
"srok=2592000",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
} elseif ($bid == 1002) {
|
|
//Òðóïîæîð CAPITAL CITY
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4462",
|
|
"srok=2592000",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
} elseif ($bid == 1003) {
|
|
//Òðóïîæîð CAPITAL CITY
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4463",
|
|
"srok=2592000",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
} elseif ($bid == 1004) {
|
|
//Òðóïîæîð CAPITAL CITY
|
|
mysql_query(
|
|
'INSERT INTO `items_local`
|
|
( `room` , `time`,`item_id`,`data`,`tr_login`,`colvo` ) VALUES
|
|
(
|
|
"' . $this->users[$this->uids[$uid]]['room'] . '",
|
|
"' . time() . '",
|
|
"4459",
|
|
"srok=2592000",
|
|
"' . $this->users[$this->uids[$uid]]['login'] . '",
|
|
"1"
|
|
)'
|
|
);
|
|
}
|
|
if ($exp >= 0) {
|
|
//added if, was division by zero. 27.08.22, ins.
|
|
$this->users[$this->uids[$uid]]['battle_exp'] += round(
|
|
$this->stats[$this->uids[$bid]]['hpAll'] > 0 ? $exp * $this->users[$this->uids[$uid]]['battle_yron'] / $this->stats[$this->uids[$bid]]['hpAll'] : $exp * $this->users[$this->uids[$uid]]['battle_yron']
|
|
);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `battle_exp` = "' . mysql_real_escape_string(
|
|
$this->users[$this->uids[$uid]]['battle_exp']
|
|
) . '" WHERE `id` = "' . mysql_real_escape_string($uid) . '" LIMIT 1'
|
|
);
|
|
}
|
|
//
|
|
if ($cr != '' && $cr > 0 && $this->stats[$this->uids[$uid]]['hpNow'] > 0) {
|
|
mysql_query(
|
|
'UPDATE `users` SET `money` = (`money` + ' . mysql_real_escape_string(
|
|
$cr
|
|
) . ') WHERE `id` = "' . mysql_real_escape_string($uid) . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $this->users[$this->uids[$uid]]['city'] . "','" . $this->users[$this->uids[$uid]]['room'] . "','','" . $this->users[$this->uids[$uid]]['login'] . "','<font color=#cb0000><strong>Âû ïîëó÷èëè êðåäèòû:</strong> " . mysql_real_escape_string(
|
|
$cr
|
|
) . " <strong>êð.</strong></font>','-1','6','0')"
|
|
);
|
|
}
|
|
//
|
|
if ($ecr != '' && $ecr > 0 && $this->stats[$this->uids[$uid]]['hpNow'] > 0) {
|
|
$this->users[$this->uids[$uid]]['money2'] += $ecr;
|
|
$resulttp = mysql_query(
|
|
'UPDATE `users` SET `money2` = (`money2` + ' . mysql_real_escape_string(
|
|
$ecr
|
|
) . ') WHERE `id` = "' . $this->users[$this->uids[$uid]]['id'] . '" LIMIT 1'
|
|
);
|
|
if (!$resulttp) {
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $this->users[$this->uids[$uid]]['city'] . "','" . $this->users[$this->uids[$uid]]['room'] . "','','" . $this->users[$this->uids[$uid]]['login'] . "','<font color=#cb0000><strong>Òðóïîæîð áûë ïóñò!!!</strong></font>','-1','6','0')"
|
|
);
|
|
$u->addDelo(
|
|
4, $this->users[$this->uids[$uid]]['id'],
|
|
'"<font color="olive">System.battle</font>": (Â áîþ òðóïîæîð), ÏÓÑÒ!!! ', time(),
|
|
$this->users[$this->uids[$uid]]['city'], 'System.battle', 0, 0
|
|
);
|
|
} else {
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $this->users[$this->uids[$uid]]['city'] . "','" . $this->users[$this->uids[$uid]]['room'] . "','','" . $this->users[$this->uids[$uid]]['login'] . "','<font color=#cb0000><strong>Âû ïîëó÷èëè Åâðî-êðåäèòû:</strong> " . mysql_real_escape_string(
|
|
$ecr
|
|
) . " <strong>åêð.</strong></font>','-1','6','0')"
|
|
);
|
|
$u->addDelo(
|
|
4, $this->users[$this->uids[$uid]]['id'],
|
|
'"<font color="olive">System.battle</font>": Ïåðñîíàæ ïîëó÷èë <strong>' . $ecr . ' ÅÊÐ</strong> ( áîþ òðóïîæîð), ñåé÷àñ: <strong>' . $this->users[$this->uids[$uid]]['money2'] . ' ÅÊÐ</strong>',
|
|
time(), $this->users[$this->uids[$uid]]['city'], 'System.battle', 0, 0
|
|
);
|
|
}
|
|
}
|
|
if ($ico != '') {
|
|
/*
|
|
0(òèï, 1 - çíà÷îê, 2 - ïîäâèã)@
|
|
1(âðåìÿ â ìèíóòàõ)@
|
|
2(íàçâàíèå êàðòèíêè)@
|
|
3(íàçâàíèå)@
|
|
4(òðåáóåò îñòàòüñÿ â æèâûõ 0 èëè 1, ëèáî èãðîê óìåð -1)@
|
|
5(òðåáóåò íàáèòü ñ áîòàì óðîíà â % Íàïðèìåð 0.001)@
|
|
6(äåéñòâèÿ íàïðèìåð: add_s1=5|add_hpAll=50)@
|
|
7(Òðåáóåò äðóãîé çíà÷îê, íàçâàíèå êàðòèíêè)@
|
|
8(ïëþñóåò çíà÷îê 0 èëè 1)@
|
|
9(óäàëÿåì ïðîøëûé çíà÷îê 0 or 1)
|
|
*/
|
|
$i = 0;
|
|
$txt = '';
|
|
$ico = explode('#', $ico);
|
|
while ($i < count($ico)) {
|
|
$ico_e = explode('@', $ico[$i]);
|
|
if (isset($ico_e[3])) {
|
|
$add = 1;
|
|
if ($ico_e[4] == 1 && floor($this->stats[$this->uids[$uid]]['hpNow']) < 1) {
|
|
$add = 0;
|
|
}
|
|
if ($add == 1) {
|
|
$ins = false;
|
|
if ($ico_e[8] == 0) {
|
|
$ins = true;
|
|
if ($ico_e[9] == 1) {
|
|
mysql_query(
|
|
'DELETE FROM `users_ico` WHERE `uid` = "' . mysql_real_escape_string(
|
|
$uid
|
|
) . '" AND `img` = "' . mysql_real_escape_string($ico_e[2]) . '"'
|
|
);
|
|
}
|
|
} else {
|
|
$old_ico = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `users_ico` WHERE `uid` = "' . mysql_real_escape_string(
|
|
$uid
|
|
) . '" AND (`endTime` > "' . time(
|
|
) . '" OR `endTime` = 0) AND `img` = "' . mysql_real_escape_string(
|
|
$ico_e[2]
|
|
) . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (!isset($old_ico['id'])) {
|
|
$ins = true;
|
|
} else {
|
|
if ($old_ico['id'] > 0) {
|
|
$txt .= ', "' . $ico_e[3] . ' (<small>Îáíîâëåíèå</small>)"';
|
|
mysql_query(
|
|
'UPDATE `users_ico` SET `x` = `x` + 1,`endTime` = "' . mysql_real_escape_string(
|
|
time() + $ico_e[1] * 60
|
|
) . '" WHERE `id` = "' . $old_ico['id'] . '" LIMIT 1'
|
|
);
|
|
} else {
|
|
$ins = true;
|
|
}
|
|
}
|
|
unset($old_ico);
|
|
}
|
|
if ($ins) {
|
|
if ($ico_e[9] == 1) {
|
|
mysql_query(
|
|
'DELETE FROM `users_ico` WHERE `uid` = "' . mysql_real_escape_string(
|
|
$uid
|
|
) . '" AND `img` = "' . mysql_real_escape_string($ico_e[2]) . '"'
|
|
);
|
|
}
|
|
mysql_query(
|
|
'INSERT INTO `users_ico` (`uid`,`time`,`text`,`img`,`endTime`,`type`,`bonus`) VALUES (
|
|
"' . mysql_real_escape_string($uid) . '",
|
|
"' . time() . '",
|
|
"' . mysql_real_escape_string($ico_e[3]) . '",
|
|
"' . mysql_real_escape_string($ico_e[2]) . '",
|
|
"' . mysql_real_escape_string(time() + $ico_e[1] * 60) . '",
|
|
"' . mysql_real_escape_string($ico_e[0]) . '",
|
|
"' . mysql_real_escape_string($ico_e[6]) . '"
|
|
)'
|
|
);
|
|
$txt .= ', "' . $ico_e[3] . '"';
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
if ($txt != '') {
|
|
$txt = ltrim($txt, ', ');
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $this->users[$this->uids[$uid]]['city'] . "','" . $this->users[$this->uids[$uid]]['room'] . "','','" . $this->users[$this->uids[$uid]]['login'] . "','<font color=#cb0000><strong>Âû ñîâåðøèëè ïîäâèã:</strong> " . mysql_real_escape_string(
|
|
$txt
|
|
) . "</font>','-1','6','0')"
|
|
);
|
|
}
|
|
}
|
|
if ($itm != '') {
|
|
$i = 0;
|
|
$txt = '';
|
|
$itm = explode(',', $itm);
|
|
while ($i < count($itm)) {
|
|
$itm_e = explode('@', $itm[$i]);
|
|
if ($itm_e[0] > 0) {
|
|
$j = 0;
|
|
while ($j < $itm_e[1]) {
|
|
$u->addItem($itm_e[0], $uid, '|' . $itm_e[2]);
|
|
$j++;
|
|
}
|
|
if (!isset($this->ainm[$itm_e[0]])) {
|
|
$this->ainm[$itm_e[0]] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`name` FROM `items_main` WHERE `id` = "' . mysql_real_escape_string(
|
|
$itm_e[0]
|
|
) . '" LIMIT 1'
|
|
)
|
|
);
|
|
}
|
|
if (isset($this->ainm[$itm_e[0]]['id'])) {
|
|
//Äîáàâëÿåì òåêñò î äîáàâëåíèè ïðåäìåòà
|
|
$txt .= ', <strong>' . $this->ainm[$itm_e[0]]['name'] . '</strong>';
|
|
if ($itm_e[1] > 1) {
|
|
$txt .= ' <strong>(x' . $itm_e[1] . ')</strong>';
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
if ($txt != '') {
|
|
$txt = ltrim($txt, ', ');
|
|
mysql_query(
|
|
"INSERT INTO `chat` (`new`,`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('1','" . $this->users[$this->uids[$uid]]['city'] . "','" . $this->users[$this->uids[$uid]]['room'] . "','','" . $this->users[$this->uids[$uid]]['login'] . "','<font color=#cb0000><strong>Âû ïîëó÷èëè ïðåäìåòû:</strong> " . mysql_real_escape_string(
|
|
$txt
|
|
) . "</font>','-1','6','0')"
|
|
);
|
|
}
|
|
}
|
|
//
|
|
}
|
|
|
|
//Ïðîâîäèì óäàð
|
|
public function addNewAtack()
|
|
{
|
|
global $u;
|
|
if (!isset($this->ga[$u->info['id']][$u->info['enemy']])) {
|
|
if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] > 0) {
|
|
|
|
$us = $this->stats[$this->uids[$u->info['id']]];
|
|
$i = 1;
|
|
$no = 0;
|
|
|
|
while ($i <= $us['zona']) {
|
|
if ($this->uAtc['a'][$i] == 0) {
|
|
$no = 1;
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
if ($this->uAtc['b'] == 0) {
|
|
$no = 1;
|
|
}
|
|
|
|
if ($no == 0) {
|
|
//íàíîñèì óäàð
|
|
if ($u->info['enemy'] > 0) {
|
|
if (!isset($this->ga[$u->info['enemy']][$u->info['id']])) {
|
|
if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] >= 1 && $this->stats[$this->uids[$u->info['enemy']]]['hpNow'] >= 1) {
|
|
//íàíîñèì íîâûé óäàð
|
|
$a = $this->uAtc['a'][1] . $this->uAtc['a'][2] . $this->uAtc['a'][3] . $this->uAtc['a'][4] . $this->uAtc['a'][5];
|
|
$b = $this->uAtc['b'];
|
|
mysql_query(
|
|
'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 . '")'
|
|
);
|
|
if (!$d) {
|
|
$this->e = 'Íå óäàëîñü íàíåñòè óäàð ïî ïðîòèâíèêó...';
|
|
} else {
|
|
$this->ga[$u->info['id']][$u->info['enemy']] = mysql_insert_id();
|
|
}
|
|
}
|
|
} else {
|
|
//îòâå÷àåì íà óäàð ïðîòèâíèêà
|
|
if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] >= 1 && $this->stats[$this->uids[$u->info['enemy']]]['hpNow'] >= 1 && isset($this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['id'])) {
|
|
$this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['a2'] = $this->uAtc['a'][1] . '' . $this->uAtc['a'][2] . '' . $this->uAtc['a'][3] . '' . $this->uAtc['a'][4] . '' . $this->uAtc['a'][5];
|
|
$this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['b2'] = $this->uAtc['b'];
|
|
$this->startAtack($this->atacks[$this->ga[$u->info['enemy']][$u->info['id']]]['id']);
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
$this->e = 'Âûáåðèòå çîíû óäàðà è áëîêà';
|
|
}
|
|
} else {
|
|
$this->e = 'Äëÿ âàñ ïîåäèíîê çàêîí÷åí, îæèäàéòå ïîêà çàâåðøàò äðóãèå...';
|
|
}
|
|
}
|
|
}
|
|
|
|
//Çàïóñêàåì ìàãè÷åñêèå ïðåäìåòû, åñëè â íèõ ÷òî-òî âñòðîåíî
|
|
public function magicItems($uid1, $uid2, $end)
|
|
{
|
|
global $u, $priem, $c, $code;
|
|
if (!isset($this->stats[$this->uids[$uid1]])) {
|
|
return;
|
|
}
|
|
$i = 0;
|
|
while ($i < count($this->stats[$this->uids[$uid1]]['items'])) {
|
|
$itm = $this->stats[$this->uids[$uid1]]['items'][$i];
|
|
if (isset($itm['id'])) {
|
|
$e = $u->lookStats($itm['data']);
|
|
if (isset($e['bm_a1'])) {
|
|
if ($end > 0) {
|
|
if (file_exists('../../_incl_data/class/priems/' . $e['bm_a1'] . '.end.php')) {
|
|
require('../../_incl_data/class/priems/' . $e['bm_a1'] . '.end.php');
|
|
}
|
|
} else {
|
|
if (file_exists('../../_incl_data/class/priems/' . $e['bm_a1'] . '.php')) {
|
|
require('../../_incl_data/class/priems/' . $e['bm_a1'] . '.php');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
unset($itm);
|
|
}
|
|
|
|
//Ïîãëîùåíèå óðîíà
|
|
public function testPog($uid, $yr)
|
|
{
|
|
$yr2 = $yr;
|
|
if ($yr > 0) {
|
|
$testmana = false;
|
|
global $u, $priem;
|
|
$i = 0;
|
|
$ypg22 = 0;
|
|
while ($i < count($this->stats[$this->uids[$uid]]['set_pog2'])) {
|
|
$j = $this->stats[$this->uids[$uid]]['set_pog2'][$i];
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
|
|
'add_pog2=' . $j['y'],
|
|
'add_pog2=$', $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
|
|
);
|
|
$dt3 = $u->lookStats($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
|
|
if (isset($dt3['add_pog2mp'])) {
|
|
$priem->minMana($uid, round(round($yr2 / 100 * (100 - $dt3['add_pog2p'])) * $dt3['add_pog2mp']));
|
|
}
|
|
$j['y'] -= $yr2; // îñòàëîñü äëÿ ïîãëîùåíèÿ
|
|
if (isset($dt3['add_pog2p'])) {
|
|
$yr2 = round($yr2 / 100 * (100 - $dt3['add_pog2p']));
|
|
}
|
|
unset($dt3);
|
|
if ($j['y'] < 0 || ($this->stats[$this->uids[$uid]]['mpNow'] <= 0 && $dt3['add_pog2mp'] > 0)) {
|
|
$dt2 = $u->lookStats($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
|
|
if (isset($dt2['endPog']) && $dt2['endPog'] == 1) {
|
|
//óäàëÿåì ïðèåì
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['priem'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `priems` WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['v2'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->delPriem(
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1],
|
|
$this->users[$this->uids[$uid]], 4, $uid
|
|
);
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1] = 'delete';
|
|
}
|
|
unset($dt2);
|
|
$yr2 = -($j['y']);
|
|
$j['y'] = 0;
|
|
}
|
|
|
|
$this->stats[$this->uids[$uid]]['set_pog'][$i]['y'] = $j['y'];
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
|
|
'add_pog2=$',
|
|
'add_pog2=' . $j['y'], $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
|
|
);
|
|
$upd = mysql_query(
|
|
'UPDATE `eff_users` SET `data` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] . '" WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['id'] . '" LIMIT 1'
|
|
);
|
|
$i++;
|
|
}
|
|
}
|
|
return $yr2;
|
|
}
|
|
|
|
public $rehodeff = [];
|
|
|
|
//Ïîãëîùåíèå óðîíà
|
|
public $poglast = [];
|
|
|
|
public function testPogB($uid, $yr, $pliid, $test = 0)
|
|
{
|
|
$yr2 = $yr;
|
|
$checktuman = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `eff_users` WHERE `uid` = "' . $uid . '"
|
|
AND (`v2` = 273 OR `v2` = 286 OR `v2` = 287 OR `v2` = 288)
|
|
AND `delete` =0 LIMIT 1'
|
|
)
|
|
); //ïðîâåðêà íà òóìàííûé îáðàç
|
|
if ($yr > 0 && !isset($checktuman['id'])) {
|
|
$testmana = false;
|
|
global $u, $priem;
|
|
$i = 0;
|
|
$ypg22 = 0;
|
|
while ($i < count($this->stats[$this->uids[$uid]]['set_pog2'])) {
|
|
$j = $this->stats[$this->uids[$uid]]['set_pog2'][$i];
|
|
if ($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['id'] == $pliid || $test == 1) {
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
|
|
'add_pog2=' . $j['y'],
|
|
'add_pog2=$', $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
|
|
);
|
|
$dt3 = $u->lookStats($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
|
|
$dt30 = 0;
|
|
$dt30 = floor($j['y'] / $yr2 * 100);
|
|
if ($dt30 < $dt3['add_pog2p']) {
|
|
$dt3['add_pog2p'] = $dt30;
|
|
}
|
|
unset($dt30);
|
|
if (isset($dt3['add_pog2mp'])) {
|
|
if ((round(
|
|
round($yr2 / 100 * (100 - $dt3['add_pog2p'])) * $dt3['add_pog2mp']
|
|
)) > $this->stats[$this->uids[$uid]]['mpNow']) {
|
|
//íå õâàòèëî ìàíû, ñ÷èòàåì ñêîëüêî õâàòèò % îò ïîãëîùåííîãî óðîíà
|
|
$j['yhj'] = $this->stats[$this->uids[$uid]]['mpNow'] / (round(
|
|
round($yr2 / 100 * (100 - $dt3['add_pog2p'])) * $dt3['add_pog2mp']
|
|
)) * 100;
|
|
$j['yhj'] = floor($j['yhj']); //Ñêîëüêî % ìû ìîæåì ïîãëîòèòü
|
|
$dt3['add_pog2p'] = floor($dt3['add_pog2p'] / 100 * $j['yhj']);
|
|
}
|
|
if ($test == 1) {
|
|
$priem->minMana($uid, round(round($yr2 / 100 * $dt3['add_pog2p']) * $dt3['add_pog2mp']));
|
|
}
|
|
}
|
|
if (!isset($this->poglast[$uid])) {
|
|
$this->poglast[$uid] = 0;
|
|
}
|
|
$this->poglast[$uid] += $yr2;
|
|
if ($test == 1) {
|
|
//$j['y'] -= $this->poglast[$uid]; // îñòàëîñü äëÿ ïîãëîùåíèÿ
|
|
$j['y'] -= round($this->poglast[$uid] / 100 * $dt3['add_pog2p']);
|
|
$priem->minMana(
|
|
$uid,
|
|
round(round($this->poglast[$uid] / 100 * $dt3['add_pog2p']) * $dt3['add_pog2mp'])
|
|
);
|
|
}
|
|
if (isset($dt3['add_pog2p'])) {
|
|
$yr2 = round($yr2 / 100 * (100 - $dt3['add_pog2p']));
|
|
}
|
|
if ($j['y'] < 0 || ($this->stats[$this->uids[$uid]]['mpNow'] <= 0 && $dt3['add_pog2mp'] > 0)) {
|
|
$dt2 = $u->lookStats($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']);
|
|
if (isset($dt2['endPog']) && $dt2['endPog'] == 1) {
|
|
//óäàëÿåì ïðèåì
|
|
//Äîáàâëÿåì â ëîã
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['priem'] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `priems` WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['v2'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->delPriem(
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1],
|
|
$this->users[$this->uids[$uid]], 4, $uid
|
|
);
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1] = 'delete';
|
|
}
|
|
unset($dt2);
|
|
$j['y'] = 0;
|
|
}
|
|
$this->stats[$this->uids[$uid]]['set_pog'][$i]['y'] = $j['y'];
|
|
if (isset($this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'])) {
|
|
$this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] = str_replace(
|
|
'add_pog2=$',
|
|
'add_pog2=' . $j['y'], $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data']
|
|
);
|
|
$upd = mysql_query(
|
|
'UPDATE `eff_users` SET `data` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['data'] . '" WHERE `id` = "' . $this->stats[$this->uids[$uid]]['effects'][$j['id'] - 1]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
if ($j['y'] - $this->poglast[$uid] + $yr2 < 0) {
|
|
$yr -= $yr + ($j['y'] - $this->poglast[$uid] + $yr2);
|
|
$yr2 = $yr;
|
|
$i = count($this->stats[$this->uids[$uid]]['set_pog2']) + 1;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
unset($checktuman);
|
|
return $yr2;
|
|
}
|
|
|
|
|
|
//Òåñòèðóåì óäàðû è ò.ä
|
|
public function newRazmen($id, $at = null)
|
|
{
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
|
|
if ($this->atacks[$id]['out1'] == 0) {
|
|
$at[1] = $this->usersTestAtack($id, $uid1, $uid2);
|
|
} else {
|
|
$at[1] = [0];
|
|
}
|
|
if ($this->atacks[$id]['out2'] == 0) {
|
|
$at[2] = $this->usersTestAtack($id, $uid2, $uid1);
|
|
} else {
|
|
$at[2] = [0];
|
|
}
|
|
|
|
return $at;
|
|
}
|
|
|
|
//Èãðîê1 íàíîñèò óäàð Èãðîê2
|
|
public function usersTestAtack($id, $uid1, $uid2): array
|
|
{
|
|
$r = [];
|
|
$block = [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
];
|
|
|
|
//Ïðîâåðêà áëîêîâ
|
|
$i = 1;
|
|
if ($uid1 == $this->atacks[$id]['uid1']) {
|
|
$a = 2;
|
|
$j = $this->atacks[$id]['b2'];
|
|
$atack = [
|
|
0,
|
|
$this->atacks[$id]['a1'][0],
|
|
$this->atacks[$id]['a1'][1],
|
|
$this->atacks[$id]['a1'][2],
|
|
$this->atacks[$id]['a1'][3],
|
|
$this->atacks[$id]['a1'][4],
|
|
];
|
|
} elseif ($uid2 == $this->atacks[$id]['uid1']) {
|
|
$a = 1;
|
|
$j = $this->atacks[$id]['b1'];
|
|
$atack = [
|
|
0,
|
|
$this->atacks[$id]['a2'][0],
|
|
$this->atacks[$id]['a2'][1],
|
|
$this->atacks[$id]['a2'][2],
|
|
$this->atacks[$id]['a2'][3],
|
|
$this->atacks[$id]['a2'][4],
|
|
];
|
|
}
|
|
if ($this->atacks[$id]['out' . $a] == 0) {
|
|
while ($i <= $this->stats[$this->uids[$uid2]]['zonb']) {
|
|
$block[$j] = 1;
|
|
$j++;
|
|
if ($j > 5 || $j < 1) {
|
|
$j = 1;
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
//Ïðîâåðêà óäàðîâ
|
|
$i = 1;
|
|
while ($i <= $this->stats[$this->uids[$uid1]]['zona']) {
|
|
if (!isset($atack[$i]) || $atack[$i] == 0) {
|
|
$atack[$i] = rand(1, 5);
|
|
}
|
|
if ($atack[$i] > 0) {
|
|
if ($block[$atack[$i]] == 1) {
|
|
//óäàð áûë çàáëîêèðîâàí
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
$r['atack'][] = [$atack[$i], 3, 0];
|
|
} else {
|
|
//Óäàð ïðîøåë
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
$r['atack'][] = [$atack[$i], 1, 0];
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//Ïðîâåðêà çîíû è áëîêà
|
|
public function testRazmenblock1($id, $uid1, $uid2, $atack): bool
|
|
{
|
|
$r = false;
|
|
//Ïðîâåðêà áëîêîâ
|
|
$i = 1;
|
|
if ($uid1 == $this->atacks[$id]['uid1']) {
|
|
$j = $this->atacks[$id]['b2'];
|
|
} elseif ($uid2 == $this->atacks[$id]['uid1']) {
|
|
$j = $this->atacks[$id]['b1'];
|
|
}
|
|
if ($this->atacks[$id]['out2'] == 0) {
|
|
while ($i <= $this->stats[$this->uids[$uid2]]['zonb']) {
|
|
$block[$j] = 1;
|
|
$j++;
|
|
if ($j > 5 || $j < 1) {
|
|
$j = 1;
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
//Ïðîâåðêà óäàðîâ
|
|
if ($atack > 0) {
|
|
$r = $block[$atack] == 1;
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//Ïðîâåðêà óõîäà óäàðà â èãðîêà
|
|
public function yhod_user($uid1, $uid2, $type)
|
|
{
|
|
// 1 - êòî áüåò . 2 - â êîãî áüþò . òèï
|
|
//Óäàë ëåòèò ïðÿìî â ïðîòèâíèêà
|
|
if ($this->import_user == 0) {
|
|
$r = $uid1;
|
|
$rand_user = false;
|
|
if ($type == 2) {
|
|
//Ñëó÷àéíûé ïåðñîíàæ èç ñâîåé êîìàíäû (â òîì ÷èñëå èãðîê)
|
|
$i = 0;
|
|
while ($i < count($this->users)) {
|
|
if ($this->users[$i]['team'] == $this->users[$this->uids[$uid2]]['team']) {
|
|
$rand_user[] = $this->users[$i]['id'];
|
|
}
|
|
$i++;
|
|
}
|
|
} elseif ($type == 4) {
|
|
//Ñëó÷àéíûé ïåðñîíàæ, ëþáîé
|
|
$i = 0;
|
|
while ($i < count($this->users)) {
|
|
//if( $this->users[$i]['team'] == $this->users[$this->uids[$uid1]]['team'] ) {
|
|
$rand_user[] = $this->users[$i]['id'];
|
|
//}
|
|
$i++;
|
|
}
|
|
} elseif ($type == 5) {
|
|
//Ñëó÷àéíûé ïåðñîíàæ, ëþáîé (êðîìå èãðîêà)
|
|
$i = 0;
|
|
while ($i < count($this->users)) {
|
|
if ($this->users[$i]['team'] == $this->users[$this->uids[$uid2]]['team'] && $uid2 != $this->users[$i]['id']) {
|
|
$rand_user[] = $this->users[$i]['id'];
|
|
}
|
|
$i++;
|
|
}
|
|
} elseif ($type == 6) {
|
|
//Ñëó÷àéíûé ïåðñîíàæ èç êîìàíäû ïðîòèâíèêà
|
|
$i = 0;
|
|
while ($i < count($this->users)) {
|
|
if ($this->users[$i]['team'] != $this->users[$this->uids[$uid2]]['team']) {
|
|
$rand_user[] = $this->users[$i]['id'];
|
|
}
|
|
$i++;
|
|
}
|
|
} elseif ($type > 100) {
|
|
//Óäàð èäåò â êîíêðåòíîãî èãðîêà
|
|
if (!isset($this->users[$this->uids[$type]]) || $this->users[$this->uids[$type]]['id'] != $type) {
|
|
$r = $uid2;
|
|
} else {
|
|
$r = $type;
|
|
}
|
|
}
|
|
if ($rand_user && count($rand_user) > 0) {
|
|
$r = $rand_user[rand(0, (count($rand_user) - 1))];
|
|
}
|
|
$this->import_user = $r;
|
|
} else {
|
|
$r = $this->import_user;
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//Ðàñ÷åò óâîðîòà èãðîêîâ
|
|
public function mf1Razmen($id, $at, $v, $pat = false, $rjd = 0)
|
|
{
|
|
global $u;
|
|
|
|
if ($pat) {
|
|
$pat = $at;
|
|
$at = $pat['p'];
|
|
} else {
|
|
unset($pat);
|
|
}
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$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']
|
|
);
|
|
} 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']
|
|
);
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
//Ðàñ÷åò óâîðîòà Öåëè (u2) îò Àòàêóþùåãî (u1)
|
|
$j = 0;
|
|
$wp01 = 3;
|
|
$k01 = 0;
|
|
if ($rjd > 0) {
|
|
$j = $rjd - 1;
|
|
}
|
|
if (is_array($at[$a]['atack'])) {
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
if ($k01 == 0 && isset($this->stats[$this->uids[$u1]]['wp3id'])) {
|
|
//Ëåâàÿ ðóêà
|
|
$wp01 = 3;
|
|
$k01 = 1;
|
|
} else {
|
|
//Ïðàâàÿ ðóêà
|
|
if (isset($this->stats[$this->uids[$u1]]['wp14id']) && $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp14id']]['type'] != 13) {
|
|
$wp01 = 14;
|
|
} else {
|
|
$wp01 = 3;
|
|
}
|
|
$k01 = 0;
|
|
}
|
|
$witm01 = 0;
|
|
$witm_type01 = 0;
|
|
$witm01 = $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp' . $wp01 . 'id']];
|
|
$witm_data01 = $u->lookStats($witm01['data']);
|
|
if ($at[$a]['atack'][$j][2] == $v) {
|
|
$tyv = $this->mfs(
|
|
2, [
|
|
'u1' => $u1,
|
|
'u2' => $u2,
|
|
'mf' => $this->stats[$this->uids[$u2]]['m4'],
|
|
'amf' => (int)$this->stats[$this->uids[$u2]]['m15'],
|
|
'smf' => ($this->stats[$this->uids[$u1]]['m5'] + $witm_data01['sv_m5']),
|
|
'asmf' => $this->stats[$this->uids[$u1]]['m21'],
|
|
], $this->users[$this->uids[$u1]]['level'], $this->users[$this->uids[$u2]]['level']
|
|
);
|
|
if ($tyv == 1 && $this->atacks[$id]['out' . $b] == 0) {
|
|
//óâåðíóëñÿ, ãàä :)
|
|
$this->stats[$this->uids[$u1]]['nopryh'] = floor(
|
|
0 + (int)$this->stats[$this->uids[$u1]]['nopryh']
|
|
);
|
|
if (!isset($this->stats[$this->uids[$u1]]['nopryh']) || $this->stats[$this->uids[$u1]]['nopryh'] <= 0) {
|
|
$at[$a]['atack'][$j][1] = 2;
|
|
} else {
|
|
$this->stats[$this->uids[$u1]]['nopryh']--;
|
|
$this->stats[$this->uids[$u1]]['nopryh_act']++;
|
|
}
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
unset($witm01, $witm_type01, $wp01, $k01);
|
|
|
|
if (isset($pat) && $pat) {
|
|
$pat['p'] = $at;
|
|
$at = $pat;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Ðàñ÷åò êðèòà èãðîêîâ
|
|
public function mf2Razmen($id, $at, $v, $pat = false, $rjd = 0)
|
|
{
|
|
global $u;
|
|
if ($pat) {
|
|
$pat = $at;
|
|
$at = $pat['p'];
|
|
} else {
|
|
unset($pat);
|
|
}
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$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']
|
|
);
|
|
} 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']
|
|
);
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
//Ðàñ÷åò êðèòà Àòàêóþùåãî (u1) ïî Öåëè (u2)
|
|
$j = 0;
|
|
$wp01 = 0;
|
|
$k01 = 0;
|
|
if ($rjd > 0) {
|
|
$j = $rjd - 1;
|
|
}
|
|
|
|
if (is_array($at[$a]['atack'])) {
|
|
while ($j < count($at[$a]['atack']) && $j <= 8) {
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
if ($k01 == 0 && isset($this->stats[$this->uids[$u1]]['wp3id'])) {
|
|
//Ëåâàÿ ðóêà
|
|
$wp01 = 3;
|
|
$k01 = 1;
|
|
} else {
|
|
//Ïðàâàÿ ðóêà
|
|
if (isset($this->stats[$this->uids[$u1]]['wp14id']) && $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp14id']]['type'] != 13) {
|
|
$wp01 = 14;
|
|
} else {
|
|
$wp01 = 3;
|
|
}
|
|
$k01 = 0;
|
|
}
|
|
$witm01 = 0;
|
|
$witm_type01 = 0;
|
|
$witm01 = $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp' . $wp01 . 'id']];
|
|
$witm_data01 = $u->lookStats($witm01['data']);
|
|
if ($this->mfs(
|
|
1, [
|
|
'u1' => $u1,
|
|
'u2' => $u2,
|
|
'mf' => $this->stats[$this->uids[$u1]]['m1'] + $witm_data01['sv_m1'],
|
|
'amf' => $this->stats[$this->uids[$u1]]['m14'],
|
|
'smf' => $this->stats[$this->uids[$u2]]['m2'],
|
|
'aamf1' => (int)$this->stats[$this->uids[$u2]]['enemy_am1'],
|
|
], $this->users[$this->uids[$u1]]['level'], $this->users[$this->uids[$u2]]['level']
|
|
) == 1) {
|
|
//êðèòàíóë, ãàä :)
|
|
if ($at[$a]['atack'][$j][1] == 3) {
|
|
//â áëîê
|
|
$at[$a]['atack'][$j][1] = 4; //Òóò òåñò
|
|
} elseif ($at[$a]['atack'][$j][1] != 2 && $at[$a]['atack'][$j][1] != 6 && $at[$a]['atack'][$j][1] != 7 && $at[$a]['atack'][$j][1] != 8) {
|
|
//îáû÷íûé êðèò
|
|
$at[$a]['atack'][$j][1] = 5;
|
|
} else {
|
|
$at[$a]['atack'][$j][1] = 1;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
unset($witm01, $witm_type01, $k01, $wp01);
|
|
|
|
if (isset($pat) && $pat) {
|
|
$pat['p'] = $at;
|
|
$at = $pat;
|
|
}
|
|
|
|
return $at;
|
|
}
|
|
|
|
//Ðàñ÷åò ïàðèðîâàíèÿ èãðîêîâ
|
|
public function mf3Razmen($id, $at, $v, $pat = false, $rjd = 0)
|
|
{
|
|
if ($pat) {
|
|
$pat = $at;
|
|
$at = $pat['p'];
|
|
} else {
|
|
unset($pat);
|
|
}
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$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']
|
|
);
|
|
} 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']
|
|
);
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
//Ðàñ÷åò ïàðèðîâàíèÿ Öåëè (u2) îò Àòàêóþùåãî (u1)
|
|
$j = 0;
|
|
if ($rjd > 0) {
|
|
$j = $rjd - 1;
|
|
}
|
|
|
|
if (is_array($at[$a]['atack'])) {
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
if ((!isset($this->stats[$this->uids[$u2]]['no_pr1']) || $this->stats[$this->uids[$u2]]['no_pr1'] == 0) && $at[$a]['atack'][$j][2] == $v) {
|
|
if ($this->mfs(
|
|
3, [
|
|
'u1' => $u1,
|
|
'u2' => $u2,
|
|
'1' => $this->stats[$this->uids[$u2]]['m7'],
|
|
'2' => $this->stats[$this->uids[$u1]]['m7'],
|
|
], $this->users[$this->uids[$u1]]['level'],
|
|
$this->users[$this->uids[$u2]]['level']
|
|
) == 1 && $this->atacks[$id]['out' . $b] == 0) {
|
|
//Ïàðèðîâàë, ãàä :)
|
|
$this->stats[$this->uids[$u1]]['nopryh'] = floor(
|
|
0 + (int)$this->stats[$this->uids[$u1]]['nopryh']
|
|
);
|
|
if ((!isset($this->stats[$this->uids[$u1]]['nopryh']) || $this->stats[$this->uids[$u1]]['nopryh'] == 0) && $this->stats[$this->uids[$u1]]['nopryh_act'] < 1) {
|
|
$at[$a]['atack'][$j][1] = 6;
|
|
$this->stats[$this->uids[$u1]]['nopryh']--;
|
|
$this->stats[$this->uids[$u1]]['nopryh_act']++;
|
|
}
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
if (isset($pat) && $pat) {
|
|
$pat['p'] = $at;
|
|
$at = $pat;
|
|
}
|
|
|
|
return $at;
|
|
}
|
|
|
|
//Ðàñ÷åò áëîêà ùèòîì èãðîêîâ
|
|
public function mf4Razmen($id, $at, $v, $pat = false, $rjd = 0)
|
|
{
|
|
if ($pat) {
|
|
$pat = $at;
|
|
$at = $pat['p'];
|
|
} else {
|
|
unset($pat);
|
|
}
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$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']
|
|
);
|
|
} 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']
|
|
);
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
if ($this->stats[$this->uids[$u2]]['sheld1'] > 0) {
|
|
//Ðàñ÷åò áëîêà ùèòîì Öåëè (u2) îò Àòàêóþùåãî (u1)
|
|
$j = 0;
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
if ($at[$a]['atack'][$j][2] == $v) {
|
|
if ($this->mfs(
|
|
5,
|
|
($this->stats[$this->uids[$u2]]['m8'] / 2 + $this->stats[$this->uids[$u2]]['m18']),
|
|
$this->users[$this->uids[$u1]]['level'],
|
|
$this->users[$this->uids[$u2]]['level']
|
|
) == 1 && $this->atacks[$id]['out' . $b] == 0) {
|
|
//áëîêèðîâàë ùèòîì, ãàä :)
|
|
$at[$a]['atack'][$j][1] = 7;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
if (isset($pat) && $pat) {
|
|
$pat['p'] = $at;
|
|
$at = $pat;
|
|
}
|
|
|
|
return $at;
|
|
}
|
|
|
|
//Ðàñ÷åò êîíòðóäàðà èãðîêîâ
|
|
public function mf5Razmen($id, $at, $v, $rjd = 0)
|
|
{
|
|
global $u;
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$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']
|
|
);
|
|
} 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']
|
|
);
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
//Ðàñ÷åò êîíòðóäàðà Öåëè (u2) ïî Àòàêóþùåìó (u1)
|
|
$j = 0;
|
|
if ($rjd > 0) {
|
|
$j = $rjd - 1;
|
|
}
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
if ($at[$a]['atack'][$j][2] == $v) {
|
|
if ($at[$a]['atack'][$j][1] == 2) {
|
|
if ($this->mfs(
|
|
6, [
|
|
'u1' => $u1,
|
|
'u2' => $u2,
|
|
'a' => $this->stats[$this->uids[$u2]]['m6'],
|
|
'b' => $this->stats[$this->uids[$u1]]['m6'],
|
|
], $this->users[$this->uids[$u1]]['level'], $this->users[$this->uids[$u2]]['level']
|
|
) == 1) {
|
|
//êîíòðóäàð, ãàä :)
|
|
$at[$a]['atack'][$j][1] = 8;
|
|
$rnd_a = rand(1, 5);
|
|
$rjd = count($at[$b]['atack']);
|
|
if (!$this->testRazmenblock1($id, $u2, $u1, $rnd_a)) {
|
|
$at[$b]['atack'][] = [$rnd_a, 1, 0, 1]; // 3 , 0 , 1
|
|
} else {
|
|
$at[$b]['atack'][] = [$rnd_a, 3, 0, 1]; // 3 , 0 , 1
|
|
}
|
|
$at = $this->contrRestart($id, $at, 1, $rjd);
|
|
}
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Âûäåëåíèå èç ëîã òåêñòà
|
|
public function addlt($a, $id, $s, $rnd = null): string
|
|
{
|
|
global $log_text;
|
|
if ($rnd === null) {
|
|
$rnd = rand(0, (count($log_text[$s][$id]) - 1));
|
|
}
|
|
return '{' . $a . 'x' . $id . 'x' . $rnd . '}';
|
|
}
|
|
|
|
//Äîáàâëÿåì ñòàòèñòèêó
|
|
public function addNewStat($stat)
|
|
{
|
|
if (isset($stat[1])) {
|
|
mysql_query(
|
|
'INSERT INTO `battle_stat`
|
|
( `battle`,`uid1`,`uid2`,`time`,`type`,`a`,`b`,`ma`,`mb`,`type_a`,`type_b`,`yrn`,`yrn_krit`,`tm1`,`tm2` ) VALUES (
|
|
"' . $this->info['id'] . '",
|
|
"' . $stat[1]['uid1'] . '",
|
|
"' . $stat[1]['uid2'] . '",
|
|
"' . $stat[1]['time'] . '",
|
|
"' . $stat[1]['type'] . '",
|
|
"' . $stat[1]['a'] . '",
|
|
"' . $stat[1]['b'] . '",
|
|
"' . $stat[1]['ma'] . '",
|
|
"' . $stat[1]['mb'] . '",
|
|
"' . $stat[1]['type_a'] . '",
|
|
"' . $stat[1]['type_b'] . '",
|
|
"' . $stat[1]['yrn'] . '",
|
|
"' . $stat[1]['yrn_krit'] . '",
|
|
"' . $stat[1]['tm1'] . '",
|
|
"' . $stat[1]['tm2'] . '"
|
|
)'
|
|
);
|
|
}
|
|
if (isset($stat[2])) {
|
|
mysql_query(
|
|
'INSERT INTO `battle_stat`
|
|
( `battle`,`uid1`,`uid2`,`time`,`type`,`a`,`b`,`ma`,`mb`,`type_a`,`type_b`,`yrn`,`yrn_krit`,`tm1`,`tm2` ) VALUES (
|
|
"' . $this->info['id'] . '",
|
|
"' . $stat[2]['uid1'] . '",
|
|
"' . $stat[2]['uid2'] . '",
|
|
"' . $stat[2]['time'] . '",
|
|
"' . $stat[2]['type'] . '",
|
|
"' . $stat[2]['a'] . '",
|
|
"' . $stat[2]['b'] . '",
|
|
"' . $stat[1]['ma'] . '",
|
|
"' . $stat[2]['mb'] . '",
|
|
"' . $stat[2]['type_a'] . '",
|
|
"' . $stat[2]['type_b'] . '",
|
|
"' . $stat[2]['yrn'] . '",
|
|
"' . $stat[2]['yrn_krit'] . '",
|
|
"' . $stat[2]['tm1'] . '",
|
|
"' . $stat[2]['tm2'] . '"
|
|
)'
|
|
);
|
|
}
|
|
}
|
|
|
|
public $prlog = [];
|
|
|
|
//Äîáàâëÿåì ñòàòèñòèêó óäàðîâ
|
|
public function asr($u1, $u2, $type)
|
|
{
|
|
mysql_query(
|
|
'INSERT INTO battle_static (
|
|
`uid1`,`uid2`,`hod`,`type`,`time`,`bid`
|
|
) VALUES (
|
|
"' . $u1 . '","' . $u2 . '","' . $this->hodID . '","' . $type . '","' . time(
|
|
) . '","' . $this->info['id'] . '"
|
|
)'
|
|
);
|
|
}
|
|
|
|
//Äîáàâëÿåì ðàçìåíû â ëîã
|
|
public function addlogRazmen($id, $at): bool
|
|
{
|
|
global $u;
|
|
|
|
$r = '';
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
|
|
$this->hodID++;
|
|
|
|
$dies = [
|
|
1 => 0,
|
|
2 => 0,
|
|
];
|
|
|
|
//ìàññèâ äëÿ ñòàòèñòèêè
|
|
$stat = [
|
|
1 => [
|
|
'uid1' => 0,
|
|
'uid2' => 0,
|
|
'time' => time(),
|
|
'type' => 0,
|
|
'a' => '00000',
|
|
'b' => '0',
|
|
'type_a' => '',
|
|
'type_b' => '0',
|
|
'yrn' => 0,
|
|
'yrn_krit' => 0,
|
|
'ma' => 0,
|
|
'mb' => 0,
|
|
'tm1' => 0,
|
|
'tm2' => 0,
|
|
],
|
|
2 => [
|
|
'uid1' => 0,
|
|
'uid2' => 0,
|
|
'time' => time(),
|
|
'type' => 0,
|
|
'a' => '00000',
|
|
'b' => '0',
|
|
'type_a' => '',
|
|
'type_b' => '0',
|
|
'yrn' => 0,
|
|
'yrn_krit' => 0,
|
|
'ma' => 0,
|
|
'mb' => 0,
|
|
'tm1' => 0,
|
|
'tm2' => 0,
|
|
],
|
|
];
|
|
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
if ($this->stats[$this->uids[$u1]]['yhod'] <= 0 && $this->stats[$this->uids[$u2]]['yhod'] > 0) {
|
|
$u2 = $this->yhod_user($u1, $u2, $this->stats[$this->uids[$u2]]['yhod']);
|
|
}
|
|
|
|
$s1 = $this->users[$this->uids[$u1]]['sex'];
|
|
$s2 = $this->users[$this->uids[$u2]]['sex'];
|
|
|
|
$stat[$a]['uid1'] = $u1;
|
|
$stat[$a]['uid2'] = $u2;
|
|
$stat[$a]['ma'] = $this->stats[$this->uids[$u1]]['zona'];
|
|
$stat[$a]['mb'] = $this->stats[$this->uids[$u1]]['zonb'];
|
|
$stat[$a]['tm1'] = $this->users[$this->uids[$u1]]['team'];
|
|
$stat[$a]['tm2'] = $this->users[$this->uids[$u2]]['team'];
|
|
$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'] . '';
|
|
|
|
$mas = [
|
|
'text' => '',
|
|
'time' => time(),
|
|
'vars' => '',
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'vars' => $vLog,
|
|
'type' => 1,
|
|
];
|
|
|
|
if (!isset($at[$a]['atack'])) { //ÒÓÒ òåñò ïðîïóñêà
|
|
if ($this->atacks[$id]['tpo' . $a] == 2) {
|
|
$mas['text'] .= '{u1} ïîòðàòèë ñâîé õîä íà ìàãèþ.';
|
|
} else {
|
|
//
|
|
if ($this->info['razdel'] == 0 && $this->info['dn_id'] == 0 && $this->info['izlom'] == 0) {
|
|
mysql_query(
|
|
'INSERT INTO `battle_out` (`battle`,`uid1`,`uid2`,`time`,`out`) VALUES (
|
|
"' . $this->info['id'] . '","' . $u1 . '","' . $u2 . '","' . time() . '","1"
|
|
)'
|
|
);
|
|
}
|
|
//
|
|
if (isset($u1)) {
|
|
$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'
|
|
);
|
|
}
|
|
}
|
|
$mas['text'] = '{tm1} ' . $mas['text'];
|
|
$this->add_log($mas);
|
|
} else {
|
|
$j = 0;
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
//
|
|
$mas['text'] = '';
|
|
//
|
|
$wt = [
|
|
21 => 4,
|
|
22 => 5,
|
|
20 => 2,
|
|
28 => 2,
|
|
19 => 3,
|
|
18 => 1,
|
|
26 => 22,
|
|
];
|
|
$par = [
|
|
'zona' => '{zn2_' . $at[$a]['atack'][$j][0] . '} ',
|
|
'kyda' => $this->lg_zon[$at[$a]['atack'][$j][0]][rand(
|
|
0,
|
|
(count($this->lg_zon[$at[$a]['atack'][$j][0]]) - 1)
|
|
)],
|
|
'chem' => $this->lg_itm[$wt[$at[$a]['atack'][$j]['wt']]][rand(
|
|
0,
|
|
(count($this->lg_itm[$wt[$at[$a]['atack'][$j]['wt']]]) - 1)
|
|
)],
|
|
];
|
|
//
|
|
$this->atacks[$id]['uid_' . $u1 . '_t' . $at[$a]['atack'][$j][1]]++;
|
|
//
|
|
//
|
|
$this->asr($u1, $u2, $at[$a]['atack'][$j][1]);
|
|
//
|
|
if ($at[$a]['atack'][$j][1] == 1) {
|
|
//u1 óäàðèë îáû÷íûì óäàðîì u2
|
|
$mas['text'] .= $par['zona'] . '{u2} ' . $this->addlt($b, 1, $s2, null) . '' . $this->addlt(
|
|
$b,
|
|
2, $s2, null
|
|
) . '' . $this->addlt($a, 3, $s1, null) . ' {u1} ' . $this->addlt(
|
|
$a, 4,
|
|
$s1, null
|
|
) . '' . $this->addlt($a, 5, $s1, null) . '' . $this->addlt(
|
|
$a, 6, $s1,
|
|
null
|
|
) . ' ' . $this->addlt(
|
|
1, 7, $s1,
|
|
$at[$a]['atack'][$j]['yron']['t']
|
|
) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
} elseif ($at[$a]['atack'][$j][1] == 2) {
|
|
//u2 óâåðíóëñÿ îò u1
|
|
$mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
|
|
$a,
|
|
9, $s1, null
|
|
) . ' {u2} <font color=#0071a3><strong>' . $this->addlt(
|
|
$b, 11, $s2,
|
|
null
|
|
) . '</strong></font> ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
} elseif ($at[$a]['atack'][$j][1] == 3) {
|
|
//u2 çàáëîêèðîâàë óäàð u1
|
|
$mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
|
|
$a,
|
|
9, $s1, null
|
|
) . ' {u2} <font color=#356d37><strong>' . $this->addlt(
|
|
$b, 10, $s2,
|
|
null
|
|
) . '</strong></font> ' . $this->addlt(
|
|
1, 7, 0, $s1,
|
|
$at[$a]['atack'][$j]['yron']['t']
|
|
) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
} elseif ($at[$a]['atack'][$j][1] == 4) {
|
|
//u1 ïðîáèë áëîê u2 êðèòîì
|
|
if (isset($at[$a]['atack'][$j]['yron']['t'])) {
|
|
$mas['text'] .= $par['zona'] . '{u2} ' . $this->addlt(
|
|
$b, 1, $s2,
|
|
null
|
|
) . '' . $this->addlt($b, 2, $s2, null) . '' . $this->addlt(
|
|
$a, 3, $s1,
|
|
null
|
|
) . ' {u1} ' . $this->addlt($a, 4, $s1, null) . '' . $this->addlt(
|
|
$a, 5, $s1,
|
|
null
|
|
) . ', <u><font color=red>ïðîáèâ áëîê</font></u>, ' . $this->addlt(
|
|
$a, 6, $s1,
|
|
null
|
|
) . ' ' . $this->addlt(
|
|
1, 7, $s1,
|
|
$at[$a]['atack'][$j]['yron']['t']
|
|
) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
}
|
|
} elseif ($at[$a]['atack'][$j][1] == 5) {
|
|
//u1 óäàðèë êðèòè÷åñêèì óäàðîì u2
|
|
$mas['text'] .= $par['zona'] . '{u2} ' . $this->addlt($b, 1, $s2, null) . '' . $this->addlt(
|
|
$b,
|
|
2, $s2, null
|
|
) . '' . $this->addlt($a, 3, $s1, null) . ' {u1} ' . $this->addlt(
|
|
$a, 4,
|
|
$s1, null
|
|
) . '' . $this->addlt($a, 5, $s1, null) . '' . $this->addlt(
|
|
$a, 6, $s1,
|
|
null
|
|
) . ' ' . $this->addlt(
|
|
1, 7, $s1,
|
|
$at[$a]['atack'][$j]['yron']['t']
|
|
) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
} elseif ($at[$a]['atack'][$j][1] == 6) {
|
|
//u2 ïàðèðîâàë óäàð u1
|
|
$mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
|
|
$a,
|
|
9, $s1,
|
|
null
|
|
) . ' {u2} íåîæèäàííî <strong><font color=#c59400>ïàðèðîâàë</font></strong> ' . $this->addlt(
|
|
1,
|
|
7, 0, $s1,
|
|
$at[$a]['atack'][$j]['yron']['t']
|
|
) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
} elseif ($at[$a]['atack'][$j][1] == 7) {
|
|
//u2 áëîêèðîâàë ùèòîì óäàð u1
|
|
$mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
|
|
$a,
|
|
9, $s1,
|
|
null
|
|
) . ' {u2}, âîñïîëüçîâàâøèñü <u><font color=#356d37>ñâîèì ùèòîì</font></u>, ' . $this->addlt(
|
|
$b,
|
|
10, $s2, null
|
|
) . ' ' . $this->addlt(
|
|
1, 7, 0, $s1,
|
|
$at[$a]['atack'][$j]['yron']['t']
|
|
) . ' ' . $par['chem'] . ' ' . $par['kyda'] . '. ';
|
|
} elseif ($at[$a]['atack'][$j][1] == 8) {
|
|
//u2 óâåðíóëñÿ îò óäàðà u1 è íàíåñ ïî íåìó êîíòðóäàð
|
|
$mas['text'] .= $par['zona'] . '{u1} ' . $this->addlt($a, 8, $s1, null) . '' . $this->addlt(
|
|
$a,
|
|
9, $s1, null
|
|
) . ' {u2} <font color=#0071a3><strong>' . $this->addlt(
|
|
$b, 11, $s2,
|
|
null
|
|
) . '</strong></font> ' . $par['chem'] . ' ' . $par['kyda'] . ' è íàíåñ êîíòðóäàð. ';
|
|
}
|
|
|
|
$stat[$a]['type_a'] .= '' . $at[$a]['atack'][$j][1] . '';
|
|
if ((!isset($this->stats[$this->uids[$u2]]['notravma']) || $this->stats[$this->uids[$u2]]['notravma'] == 0) && isset($at[$a]['atack'][$j]['yron']['travma']) && $at[$a]['atack'][$j]['yron']['travma'][0] > 0 && floor(
|
|
$at[$a]['atack'][$j]['yron']['hp']
|
|
) <= 0) {
|
|
$tr_pl = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`v1` FROM `eff_users` WHERE `id_eff` = 4 AND `uid` = "' . $u2 . '" AND `delete` = "0" ORDER BY `v1` DESC LIMIT 1'
|
|
)
|
|
);
|
|
if (!isset($tr_pl['id']) || $tr_pl['v1'] < 3) {
|
|
//263
|
|
if (isset($tr_pl['id'])) {
|
|
$at[$a]['atack'][$j]['yron']['travma'][0] = rand(($tr_pl['v1'] + 1), 3);
|
|
}
|
|
$tr_pl2 = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `eff_users` WHERE `uid` = "' . $u2 . '" AND `delete` = "0" AND `name` LIKE "%Çàùèòà îò òðàâì%" LIMIT 1'
|
|
)
|
|
);
|
|
if (!isset($tr_pl2['id']) && $at[$a]['atack'][$j]['yron']['travma'][0] <= 3) {
|
|
$mas['text'] = rtrim($mas['text'], '. ');
|
|
$mas['text'] .= ', <font color=red>íàíåñÿ ïðîòèâíèêó <strong>';
|
|
if ($at[$a]['atack'][$j]['yron']['travma'][0] == 1) {
|
|
$mas['text'] .= 'Ëåãêóþ';
|
|
$this->addTravm($u2, 1, rand(3, 5));
|
|
} elseif ($at[$a]['atack'][$j]['yron']['travma'][0] == 2) {
|
|
$mas['text'] .= 'Ñðåäíþþ';
|
|
$this->addTravm($u2, 2, rand(3, 5));
|
|
} elseif ($at[$a]['atack'][$j]['yron']['travma'][0] == 3) {
|
|
$mas['text'] .= 'Òÿæåëóþ';
|
|
$this->addTravm($u2, 3, rand(3, 5));
|
|
}
|
|
$mas['text'] .= ' òðàâìó</strong></font>. ';
|
|
}
|
|
}
|
|
unset($tr_pl);
|
|
}
|
|
if ($at[$a]['atack'][$j]['yron']['pb'] == 1 && isset($at[$a]['atack'][$j]['yron']['hp'])) {
|
|
$mas['text'] = rtrim($mas['text'], '. ');
|
|
$mas['text'] .= ' <i>ïðîáèâ áðîíþ</i>. ';
|
|
}
|
|
if ($at[$a]['atack'][$j][3] == 1) {
|
|
$mas['text'] .= '(êîíòðóäàð) ';
|
|
}
|
|
if (isset($at[$a]['atack'][$j]['yron'])) {
|
|
if ($at[$a]['atack'][$j]['yron']['w'] == 3) {
|
|
$mas['textWP'] = '(ïðàâàÿ ðóêà)';
|
|
} elseif ($at[$a]['atack'][$j]['yron']['w'] == 14) {
|
|
$mas['textWP'] = '(ëåâàÿ ðóêà)';
|
|
} else {
|
|
$mas['textWP'] = '(íåïîíÿòíî ÷åì)';
|
|
}
|
|
if ($at[$a]['atack'][$j][1] == 4 || $at[$a]['atack'][$j][1] == 5 || $at[$a]['atack'][$j][1] == 1) {
|
|
if ($at[$a]['atack'][$j]['yron']['y'] < 1) {
|
|
$at[$a]['atack'][$j]['yron']['r'] = '--';
|
|
}
|
|
}
|
|
if ($at[$a]['atack'][$j][1] == 4 || $at[$a]['atack'][$j][1] == 5) {
|
|
$stat[$a]['yrn_krit'] += -$at[$a]['atack'][$j]['yron']['r'];
|
|
$mas['text'] .= ' <font title=' . $mas['textWP'] . ' color=#ff0000><strong>' . $at[$a]['atack'][$j]['yron']['r'] . '</strong></font>';
|
|
} else {
|
|
$mas['text'] .= ' <font title=' . $mas['textWP'] . ' color=#0066aa><strong>' . $at[$a]['atack'][$j]['yron']['r'] . '</strong></font>';
|
|
}
|
|
$stat[$a]['yrn'] += -$at[$a]['atack'][$j]['yron']['r'];
|
|
}
|
|
if (isset($at[$a]['atack'][$j]['yron']['hp'])) {
|
|
if ($this->users[$this->uids[$u2]]['align'] == 9) {
|
|
$at[$a]['atack'][$j]['yron']['hp'] = $at[$a]['atack'][$j]['yron']['hp'] / ($at[$a]['atack'][$j]['yron']['hpAll'] / 100);
|
|
$at[$a]['atack'][$j]['yron']['hpAll'] = '100%';
|
|
}
|
|
$mas['text'] .= ' [' . floor($at[$a]['atack'][$j]['yron']['hp']) . '/' . floor(
|
|
$at[$a]['atack'][$j]['yron']['hpAll']
|
|
) . ']';
|
|
}
|
|
if ($mas['text'] != '') {
|
|
$mas['text'] = '{tm1} ' . $mas['text'];
|
|
}
|
|
|
|
if (is_array($at[$a]['atack'][$j]['yron']['plog'])) {
|
|
$il = 0;
|
|
while ($il <= count($at[$a]['atack'][$j]['yron']['plog'])) {
|
|
if (isset($at[$a]['atack'][$j]['yron']['plog'][$il])) {
|
|
eval($at[$a]['atack'][$j]['yron']['plog'][$il]);
|
|
}
|
|
$il++;
|
|
}
|
|
}
|
|
$this->add_log($mas);
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
//Äîáàâëÿåì ñòàòèñòèêó + çàïèñûâàåì â áàòòë_þçåðñ ÍÐ èãðîêîâ
|
|
$this->addNewStat($stat);
|
|
|
|
//Âûâîä â ëîã ñìåðòè ïåðñîíàæà
|
|
if (floor($this->stats[$this->uids[$u1]]['hpNow']) < 1) {
|
|
$dies[1] = 1;
|
|
}
|
|
if (floor($this->stats[$this->uids[$u2]]['hpNow']) < 1) {
|
|
$dies[2] = 1;
|
|
}
|
|
if ($dies[1] > 0 || $dies[2] > 0) {
|
|
$s1 = $this->users[$this->uids[$u1]]['sex'];
|
|
$s2 = $this->users[$this->uids[$u2]]['sex'];
|
|
|
|
$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 = [
|
|
'text' => '',
|
|
'time' => time(),
|
|
'vars' => '',
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'vars' => $vLog,
|
|
'type' => 1,
|
|
];
|
|
|
|
$rtngwin = [1, 2, 3, 5, 10, 20, 40, 80, 160];
|
|
$rtnglos = [0, 0, 0, -1, -2, -5, -10, -20, -40];
|
|
|
|
if ($this->info['typeBattle'] == 99) {
|
|
if ($btlstatus[0] == 0) {
|
|
//Êðîâàâûå áîè îáû÷íûå
|
|
$rtngwin = [2, 4, 6, 10, 20, 40, 80, 160, 320];
|
|
if ($this->info['razdel'] == 5) {
|
|
//íå õàîò
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} else {
|
|
//õàîò
|
|
$rtnglos = [0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
}
|
|
} elseif ($btlstatus[0] == 25) {
|
|
//Êðîâàâàÿ áèòâà
|
|
$rtngwin = [3, 6, 9, 15, 30, 60, 120, 240, 480];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 50) {
|
|
//Êðîâàâàÿ ðåçíÿ
|
|
$rtngwin = [4, 8, 16, 32, 64, 128, 256, 512, 1024];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 75) {
|
|
//Êðîâàâàÿ ñå÷à
|
|
$rtngwin = [5, 10, 20, 40, 80, 160, 320, 640, 1280];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 100) {
|
|
//Êðîâàâîå ïîáîèùå
|
|
$rtngwin = [6, 12, 24, 48, 98, 196, 392, 784, 1568];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 150) {
|
|
//Ñóäíûé äåíü
|
|
$rtngwin = [7, 14, 28, 56, 112, 224, 448, 896, 1792];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
}
|
|
} else {
|
|
if ($btlstatus[0] == 0) {
|
|
//Îáû÷íûé ïîåäèíîê
|
|
$rtngwin = [1, 2, 3, 5, 10, 20, 40, 80, 160];
|
|
if ($this->info['razdel'] == 5) {
|
|
//íå õàîò
|
|
$rtnglos = [0, 0, 0, -1, -2, -5, -10, -20, -40];
|
|
} else {
|
|
//õàîò
|
|
$rtnglos = [0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
}
|
|
} elseif ($btlstatus[0] == 25) {
|
|
//âåëèêàÿ áèòâà
|
|
$rtngwin = [2, 4, 6, 10, 20, 40, 80, 160, 320];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 50) {
|
|
//âåëè÷àéøàÿ áèòâà
|
|
$rtngwin = [3, 6, 9, 15, 30, 60, 120, 240, 480];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 75) {
|
|
//èñòîðè÷åñêàÿ áèòâà ñå÷à
|
|
$rtngwin = [4, 8, 16, 32, 64, 128, 256, 512, 1024];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 100) {
|
|
//ýïîõàëüíàÿ áèòâà
|
|
$rtngwin = [5, 10, 20, 40, 80, 160, 320, 640, 1280];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
} elseif ($btlstatus[0] == 150) {
|
|
//ñóäíûé äåíü
|
|
$rtngwin = [7, 14, 28, 56, 112, 224, 448, 896, 1792];
|
|
$rtnglos = [0, 0, 0, -2, -4, -10, -20, -40, -80];
|
|
}
|
|
}
|
|
|
|
if ($this->info['dn_id'] > 0 || $this->info['izlom'] != 0 || $this->info['turnir'] != 0) {
|
|
//Ïåùåðíûå áîè íå ñ÷èòàþòñÿ è Èçëîìû òîæå, íó è Òóðíèðû
|
|
$rtngwin = [0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
$rtnglos = [0, 0, 0, 0, 0, 0, 0, 0, 0];
|
|
} elseif ($this->info['clan1'] > 0 && $this->info['clan2'] > 0) {
|
|
//Êëàíîâàÿ âîéíà
|
|
$rtngwin = [3, 6, 9, 15, 30, 60, 120, 240, 480];
|
|
$rtnglos = [-1, -2, -4, -8, -16, -32, -64, -128, -256];
|
|
}
|
|
|
|
|
|
if ($dies[1] == 1) {
|
|
if ($this->info['dn_id'] <= 0 && $this->users[$this->uids[$u1]]['level'] >= 4) {
|
|
$rtng1 += $rtnglos[$this->users[$this->uids[$u1]]['level'] - 4];
|
|
$rtng2 += $rtngwin[$this->users[$this->uids[$u1]]['level'] - 4];
|
|
}
|
|
//Ïåðñîíàæ 1 ïîãèá îò ðóê ïåðñîíàæ 2
|
|
$this->spaCheck($this->users[$this->uids[$u1]]['id']);
|
|
}
|
|
if ($dies[2] == 1) {
|
|
if ($this->info['dn_id'] <= 0 && $this->users[$this->uids[$u1]]['level'] >= 4) {
|
|
$rtng1 += $rtnglos[$this->users[$this->uids[$u1]]['level'] - 4];
|
|
$rtng2 += $rtngwin[$this->users[$this->uids[$u1]]['level'] - 4];
|
|
}
|
|
//Ïåðñîíàæ 2 ïîãèá îò ðóê ïåðñîíàæ 1
|
|
$this->spaCheck($this->stats[$this->uids[$u2]]['id']);
|
|
}
|
|
//Çàïèñûâàåì ðåéòèíã
|
|
//
|
|
if ($this->info['type'] != 564 && $this->stats[$this->uids[$u1]]['inTurnir'] == 0 && $this->stats[$this->uids[$u2]]['inTurnir'] == 0 && $this->info['dn_id'] == 0 && $this->info['izlom'] == 0) {
|
|
//
|
|
if ($this->users[$this->uids[$u2]]['bot'] == 0) {
|
|
mysql_query(
|
|
'INSERT INTO `users_reting` (`uid`,`time`,`val`,`align`,`clan`) VALUES (
|
|
"' . $u1 . '","' . time(
|
|
) . '","' . $rtng1 . '","' . $this->users[$this->uids[$u1]]['align'] . '","' . $this->users[$this->uids[$u1]]['clan'] . '")'
|
|
);
|
|
}
|
|
unset($rtng);
|
|
if ($this->users[$this->uids[$u1]]['bot'] == 0) {
|
|
mysql_query(
|
|
'INSERT INTO `users_reting` (`uid`,`time`,`val`,`align`,`clan`) VALUES (
|
|
"' . $u2 . '","' . time(
|
|
) . '","' . $rtng2 . '","' . $this->users[$this->uids[$u2]]['align'] . '","' . $this->users[$this->uids[$u2]]['clan'] . '")'
|
|
);
|
|
}
|
|
}
|
|
unset($rtng1, $rtng2);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//Äîáàâëÿåì â ëîã äåéñòâèÿ ïðèåìà
|
|
public function priemAddLog($id, $a, $b, $u1, $u2, $prm, $text, $hodID, $tm1 = 0, $tm2 = 0)
|
|
{
|
|
$time = time();
|
|
if ($tm1 == 0) {
|
|
$tm1 = isset($this->atacks[$id]) ? $this->atacks[$id]['time'] : $time;
|
|
}
|
|
if ($tm2 == 0) {
|
|
$tm2 = isset($this->atacks[$id]) ? $this->atacks[$id]['time2'] : $time;
|
|
}
|
|
$prm = str_replace('=', '^^^^', $prm);
|
|
$vLog =
|
|
'prm=' . $prm .
|
|
'||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=' . $tm1 .
|
|
'||time2=' . $tm2 .
|
|
'||s' . $a . '=' . $this->users[$this->uids[$u1]]['sex'] .
|
|
'||s' . $b . '=' . $this->users[$this->uids[$u2]]['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 = [
|
|
'text' => $text,
|
|
'time' => $time,
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $hodID,
|
|
'vars' => $vLog,
|
|
'type' => 1,
|
|
];
|
|
$this->add_log($mas);
|
|
}
|
|
|
|
//Äîáàâëÿåì â ëîã äåéñòâèÿ ïðèåìà (áåç àòàêè)
|
|
public function priemAddLogFast($u1, $u2, $prm, $text, $hodID, $tm)
|
|
{
|
|
$vLog = 'prm=' . $prm . '||time1=' . $tm . '||time2=' . $tm . '||s1=' . $this->users[$this->uids[$u1]]['sex'] . '||s2=' . $this->users[$this->uids[$u2]]['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 = [
|
|
'text' => $text,
|
|
'time' => time(),
|
|
'vars' => '',
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => ($this->hodID + $hodID),
|
|
'vars' => $vLog,
|
|
'type' => 1,
|
|
];
|
|
$this->add_log($mas);
|
|
}
|
|
|
|
//Ñ÷èòàåì êîíòðó
|
|
public function contrRestart($id, $at, $v, $rjd = 0)
|
|
{
|
|
//óâîðîò
|
|
$at = $this->mf1Razmen($id, $at, $v, true, $rjd);
|
|
//ïàðèðîâàíèå
|
|
$at = $this->mf3Razmen($id, $at, $v, true, $rjd);
|
|
//êîíòðóäàð
|
|
//$at = $this->mf5Razmen($id,$at,$v,true,$rjd);
|
|
//áëîê ùèòîì (åñëè åñòü ùèò, êîíå÷íî)
|
|
$at = $this->mf4Razmen($id, $at, $v, true, $rjd);
|
|
//Ïðîâåðÿåì óðîí
|
|
//$at = $this->yronRazmen($id,$at);
|
|
//êðèò
|
|
$at = $this->mf2Razmen($id, $at, $v, true, $rjd);
|
|
$at = $this->yronRazmen($id, $at, true, $rjd);
|
|
return $at;
|
|
}
|
|
|
|
|
|
//Ðàñ÷èòûâàåì ñòàòû äëÿ êîíêðåòíîé çîíû àòàêè
|
|
public function yronGetrazmenStats($s, $z)
|
|
{
|
|
global $u;
|
|
/*
|
|
1 - øëåì
|
|
2 - íàðó÷è
|
|
3 - îðóæèå (ïðàâàÿ ðóêà)
|
|
4 - ðóáàõà
|
|
5 - áðîíÿ
|
|
6 - ïëàù
|
|
7 - ïîÿñ
|
|
8 - ñåðüãè
|
|
9 - àìóëåò
|
|
10-12 - êîëüöà
|
|
13 - ïåð÷àòêè
|
|
14 - îðóæèå / ùèò (ëåâàÿ ðóêà)
|
|
16 - ïîíîæè
|
|
17 - áîòèíêè
|
|
*/
|
|
$zi = [ //Ïðåäìåòû âëèÿþùèå íà çîíû
|
|
1 => [1, 8, 9, 52], //ãîëîâà
|
|
2 => [4, 5, 6], //ãðóäü
|
|
3 => [2, 4, 5, 6, 13], //æèâîò
|
|
4 => [7, 16, 10, 11, 12], //ïîÿñ
|
|
5 => [17], //íîãè
|
|
];
|
|
$zi = $zi[$z];
|
|
$i = 0;
|
|
while ($i < count($zi)) {
|
|
$t = $u->items['add'];
|
|
$ii = 0;
|
|
while ($ii < count($s['items'])) {
|
|
if (isset($s['items'][$ii]) && $s['items'][$ii]['inOdet'] == $zi[$i]) {
|
|
$po = $u->lookStats($s['items'][$ii]['data']);
|
|
$x = 0;
|
|
while ($x < count($t)) {
|
|
$n = $t[$x];
|
|
if (isset($po['sv_' . $n])) {
|
|
$s[$n] += $po['sv_' . $n];
|
|
if ($n == 'za') {
|
|
$iii = 1;
|
|
while ($iii <= 4) {
|
|
$s['za' . $iii] += $po['sv_' . $n];
|
|
$iii++;
|
|
}
|
|
} elseif ($n == 'zm') {
|
|
$iii = 1;
|
|
while ($iii <= 4) {
|
|
$s['zm' . $iii] += $po['sv_' . $n];
|
|
$iii++;
|
|
}
|
|
} elseif ($n == 'zma') {
|
|
$iii = 1;
|
|
while ($iii <= 7) {
|
|
$s['zma' . $iii] += $po['sv_' . $n];
|
|
$iii++;
|
|
}
|
|
}
|
|
}
|
|
$x++;
|
|
}
|
|
}
|
|
$ii++;
|
|
}
|
|
$i++;
|
|
}
|
|
return $s;
|
|
}
|
|
|
|
//Ðàñ÷èòûâàåì åä. óðîíà
|
|
public function yronGetrazmen($uid1, $uid2, $wp, $zona): array
|
|
{
|
|
global $u;
|
|
|
|
$r = [
|
|
'y' => 0,
|
|
'r' => '--',
|
|
];
|
|
//Îïðåäåëÿåì òèï óðîíà
|
|
/*
|
|
Êîëþùèé
|
|
Ðóáÿùèé
|
|
Ðåæóùèé
|
|
Äðîáÿùèé
|
|
*/
|
|
$witm = 0;
|
|
$witm_type = 0;
|
|
|
|
if ($wp > 0) {
|
|
$witm = $this->stats[$this->uids[$uid1]]['items'][$this->stats[$this->uids[$uid1]]['wp' . $wp . 'id']];
|
|
$witm_data = $u->lookStats($witm['data']);
|
|
$witm_type = $this->weaponTx($witm);
|
|
}
|
|
if ($witm_type == 0 || $witm_type == 12) {
|
|
$witm_type2 = '';
|
|
} else {
|
|
$witm_type2 = $witm_type;
|
|
}
|
|
$r['t'] = $witm_type2;
|
|
//Ðàñ÷åò áðîíè
|
|
/*
|
|
ãîëîâà
|
|
ãðóäü
|
|
æèâîò
|
|
ïîÿñ
|
|
íîãè
|
|
*/
|
|
$bron = [
|
|
1 => [$this->stats[$this->uids[$uid2]]['mib1'], $this->stats[$this->uids[$uid2]]['mab1']],
|
|
2 => [$this->stats[$this->uids[$uid2]]['mib2'], $this->stats[$this->uids[$uid2]]['mab2']],
|
|
3 => [$this->stats[$this->uids[$uid2]]['mib2'], $this->stats[$this->uids[$uid2]]['mab2']],
|
|
4 => [$this->stats[$this->uids[$uid2]]['mib3'], $this->stats[$this->uids[$uid2]]['mab3']],
|
|
5 => [$this->stats[$this->uids[$uid2]]['mib4'], $this->stats[$this->uids[$uid2]]['mab4']],
|
|
];
|
|
//
|
|
//Óâåëè÷èâàåì ïàðàìåòðû îò òåêóùåãî îðóæèÿ êîòîðûì áüåì
|
|
$iii = 1;
|
|
while ($iii <= 7) {
|
|
if (isset($witm_data['sv_a' . $iii]) && $witm_data['sv_a' . $iii] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['a' . $iii] += $witm_data['sv_a' . $iii];
|
|
}
|
|
if (isset($witm_data['sv_mg' . $iii]) && $witm_data['sv_mg' . $iii] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['mg' . $iii] += $witm_data['sv_mg' . $iii];
|
|
}
|
|
$iii++;
|
|
}
|
|
$iii = 1;
|
|
while ($iii <= 4) {
|
|
if (isset($witm_data['sv_aall']) && $witm_data['sv_aall'] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['a' . $iii] += $witm_data['sv_aall'];
|
|
}
|
|
$iii++;
|
|
}
|
|
$iii = 1;
|
|
while ($iii <= 4) {
|
|
if (isset($witm_data['sv_mall']) && $witm_data['sv_mall'] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['mg' . $iii] += $witm_data['sv_mall'];
|
|
}
|
|
$iii++;
|
|
}
|
|
$iii = 1;
|
|
while ($iii <= 7) {
|
|
if (isset($witm_data['sv_m2all']) && $witm_data['sv_m2all'] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['mg' . $iii] += $witm_data['sv_m2all'];
|
|
}
|
|
$iii++;
|
|
}
|
|
|
|
if (isset($witm_data['sv_m3']) && $witm_data['sv_m3'] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['m3'] += $witm_data['sv_m3'];
|
|
}
|
|
|
|
$iii = 1;
|
|
while ($iii <= 7) {
|
|
if (isset($witm_data['sv_pa' . $iii]) && $witm_data['sv_pa' . $iii] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['pa' . $iii] += $witm_data['sv_pa' . $iii] + $witm_data['sv_m10'];
|
|
}
|
|
if (isset($witm_data['sv_pm' . $iii]) && $witm_data['sv_pm' . $iii] != 0) {
|
|
$this->stats[$this->uids[$uid1]]['pm' . $iii] += $witm_data['sv_pm' . $iii] + $witm_data['sv_m11a'];
|
|
if ($iii < 5) {
|
|
$this->stats[$this->uids[$uid1]]['pm' . $iii] += $witm_data['sv_m11'];
|
|
}
|
|
}
|
|
$iii++;
|
|
}
|
|
//
|
|
//ìîùíîñòü + ïîäàâëåíèå ìîùíîñòè ïðîòèâíèêîì
|
|
$wAp = 0;
|
|
$w3p = 0;
|
|
$w14p = 0;
|
|
|
|
if ($witm_type == 12) {
|
|
//óäàð êóëàêîì
|
|
$wAp += $this->stats[$this->uids[$uid1]]['m10'];
|
|
if ($this->users[$this->uids[$uid1]]['align'] == 7) {
|
|
$wAp += 15;
|
|
}
|
|
} elseif ($witm_type < 5) {
|
|
$wAp += $this->stats[$this->uids[$uid1]]['pa' . $witm_type . '']/* + $this->stats[$this->uids[$uid1]]['m10'] + $witm_data['sv_pa'.$witm_type.'']*/
|
|
;
|
|
$wAp -= $this->stats[$this->uids[$uid2]]['antpa' . $witm_type . ''];
|
|
} else {
|
|
$wAp += $this->stats[$this->uids[$uid1]]['m10'] + $this->stats[$this->uids[$uid1]]['pm' . ($witm_type - 4) . ''] + $this->stats[$this->uids[$uid1]]['m11a'] + $witm_data['sv_pm' . ($witm_type - 4) . ''];
|
|
$wAp -= $this->stats[$this->uids[$uid2]]['antpm' . ($witm_type - 4) . ''];
|
|
}
|
|
|
|
//Âëàäåíèå äàííûì îðóæèåì
|
|
$vladenie = 0;
|
|
|
|
//Ïðîáîé áðîíè
|
|
$proboi = 0;
|
|
$witm_data['m9'] = $this->stats[$this->uids[$uid1]]['m9'];
|
|
if (rand(1, 100) < floor($witm_data['m9'] / 2)) {
|
|
$proboi = floor($witm_data['m9'] / 2);
|
|
$r['pb'] = 1;
|
|
}
|
|
|
|
$y = $this->yrn(
|
|
$this->stats[$this->uids[$uid1]],
|
|
$this->stats[$this->uids[$uid2]],
|
|
$this->users[$this->uids[$uid1]],
|
|
$this->users[$this->uids[$uid2]],
|
|
$this->users[$this->uids[$uid1]]['level'],
|
|
$this->users[$this->uids[$uid2]]['level'],
|
|
$witm_type,
|
|
$this->stats[$this->uids[$uid1]]['minAtack'], //ìèí. óðîí (äîáàâî÷íûé)
|
|
$this->stats[$this->uids[$uid1]]['maxAtack'], //ìàêñ. óðîí
|
|
$bron[$zona][0], //áðîíÿ ìèí.
|
|
$bron[$zona][1], //áðîíÿ ìàêñ
|
|
$vladenie, //âëàäåíèÿ
|
|
(($wAp /*+ $w3p + $w14p*/)), //ìîùíîñòü óðîíà
|
|
(round($this->stats[$this->uids[$uid1]]['m3'])), //ìîùíîñòü êðèòà
|
|
(($this->stats[$this->uids[$uid2]]['za' . $witm_type2]) - $this->stats[$this->uids[$uid1]]['pza']),
|
|
//çàùèòà îò óðîíà
|
|
$this->stats[$this->uids[$uid1]]['ozash'], //ïîäàâëåíèå çàùèòû
|
|
$proboi, //ïðîáîé áðîíè
|
|
0, //õç
|
|
($witm_data['sv_yron_min'] + $this->stats[$this->uids[$uid1]]['yron_min']),
|
|
($witm_data['sv_yron_max'] + $this->stats[$this->uids[$uid1]]['yron_max']),
|
|
$this->stats[$this->uids[$uid2]]['zaproc'],
|
|
$this->stats[$this->uids[$uid2]]['zmproc'],
|
|
(($this->stats[$this->uids[$uid2]]['zm' . ($witm_type2 - 4)]) - round(
|
|
$this->stats[$this->uids[$uid1]]['pzm'] * 0.8
|
|
)),
|
|
//çàùèòà îò óðîíà
|
|
$this->stats[$this->uids[$uid1]]['omzash'], //ïîäàâëåíèå çàùèòû
|
|
$witm['type'],
|
|
$witm
|
|
);
|
|
|
|
$r['y'] = round(rand($y['min'] + $proboi, $y['max'] + round($proboi / 2)));
|
|
$r['k'] = round(rand($y['Kmin'] + round($proboi / 4), $y['Kmax'] + round($proboi / 8)));
|
|
|
|
$r['m_y'] = $y['max'];
|
|
$r['m_k'] = $y['Kmax'];
|
|
|
|
$r['bRND'] = $y['bRND'];
|
|
|
|
$r['w_type'] = $witm_type;
|
|
|
|
//Åñëè âòîðîå îðóæèå - óðîí íèæå íà 50%
|
|
$wp1 = $this->stats[$this->uids[$uid1]]['items'][$this->stats[$this->uids[$uid1]]['wp3id']];
|
|
$wp2 = $this->stats[$this->uids[$uid1]]['items'][$this->stats[$this->uids[$uid1]]['wp14id']];
|
|
|
|
//òèï îò îðóæèÿ
|
|
if ($witm['type'] == 18) {
|
|
$tp = 1;
|
|
} elseif ($witm['type'] == 19) {
|
|
$tp = 2;
|
|
} elseif ($witm['type'] == 20) {
|
|
$tp = 3;
|
|
} elseif ($witm['type'] == 21) {
|
|
$tp = 4;
|
|
} else {
|
|
$tp = 0;
|
|
}
|
|
|
|
if ($tp != $witm_type && $wp > 0) // ÒÓÒ
|
|
{
|
|
(int)$r['y'] = round((int)$r['y'] / 3);
|
|
$r['r'] = round($r['r'] / 3);
|
|
$r['k'] = round($r['k'] / 3);
|
|
$r['m_k'] = round($r['m_k'] / 3);
|
|
$r['m_y'] = round($r['m_y'] / 3);
|
|
}
|
|
|
|
if (isset($this->stats[$this->uids[$uid2]]['zaproc'])) {
|
|
$r['y'] = round($r['y'] - $r['y'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
|
|
(int)$r['r'] = round((int)$r['r'] - (int)$r['r'] * (int)$this->stats[$this->uids[$uid2]]['zaproc'] / 100);
|
|
$r['k'] = round($r['k'] - $r['k'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
|
|
$r['m_k'] = round($r['m_k'] - $r['m_k'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
|
|
$r['m_y'] = round($r['m_y'] - $r['m_y'] * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
|
|
if ($r['k'] < 1) {
|
|
$r['k'] = 2;
|
|
}
|
|
}
|
|
|
|
if ($r['y'] < 1) {
|
|
$r['y'] = 1;
|
|
}
|
|
if ($r['r'] >= 0) {
|
|
$r['r'] = -1;
|
|
}
|
|
if ($r['k'] < 1) {
|
|
$r['k'] = 1;
|
|
}
|
|
if ($r['m_k'] < 1) {
|
|
$r['m_k'] = 1;
|
|
}
|
|
if ($r['m_y'] < 1) {
|
|
$r['m_y'] = 1;
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//Ñ÷èòàåì óðîí
|
|
public function yronRazmen($id, $at, $pat = false, $rjd = 0)
|
|
{
|
|
if ($pat) {
|
|
$pat = $at;
|
|
$at = $pat['p'];
|
|
} else {
|
|
unset($pat);
|
|
}
|
|
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
|
|
if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
|
|
$yhod = [1 => 1, 2 => 0];
|
|
} elseif ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod'] > 0) {
|
|
$yhod = [1 => 0, 2 => 1];
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
$j = 0;
|
|
$k = 0;
|
|
$wp = 3;
|
|
if ($rjd > 0) {
|
|
$j = $rjd - 1;
|
|
}
|
|
|
|
if (is_array($at[$a]['atack'])) {
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
if ($k == 0 && isset($this->stats[$this->uids[$u1]]['wp3id'])) {
|
|
//Ëåâàÿ ðóêà
|
|
$wp = 3;
|
|
$k = 1;
|
|
} else {
|
|
//Ïðàâàÿ ðóêà
|
|
if (isset($this->stats[$this->uids[$u1]]['wp14id']) && $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp14id']]['type'] != 13) {
|
|
$wp = 14;
|
|
} else {
|
|
if (isset($this->stats[$this->uids[$u1]]['wp3id'])) {
|
|
$wp = 3;
|
|
} else {
|
|
//íåò îðóæèÿ
|
|
$wp = 3;
|
|
}
|
|
}
|
|
$k = 0;
|
|
}
|
|
$witm = $this->stats[$this->uids[$u1]]['items'][$this->stats[$this->uids[$u1]]['wp' . $wp . 'id']];
|
|
$witm_type = $this->weaponTx($witm);
|
|
$at[$a]['atack'][$j]['wt'] = $witm['type'];
|
|
$at[$a]['atack'][$j]['yhod'] = $yhod[$a];
|
|
if (!isset($at[$a]['atack'][$j]['yron']) && (
|
|
$at[$a]['atack'][$j][1] == 1 ||
|
|
$at[$a]['atack'][$j][1] == 4 ||
|
|
$at[$a]['atack'][$j][1] == 5)
|
|
) {
|
|
$at[$a]['atack'][$j]['yron'] = $this->yronGetrazmen(
|
|
$u1, $u2, $wp, $at[$a]['atack'][$j][0],
|
|
);
|
|
|
|
if ($at[$a]['atack'][$j][1] == 4) {
|
|
$at[$a]['atack'][$j]['yron']['y_old'] = $at[$a]['atack'][$j]['yron']['y'];
|
|
$at[$a]['atack'][$j]['yron']['y'] = round($at[$a]['atack'][$j]['yron']['k'] / 2);
|
|
} elseif ($at[$a]['atack'][$j][1] == 5) {
|
|
$at[$a]['atack'][$j]['yron']['y_old'] = $at[$a]['atack'][$j]['yron']['y'];
|
|
$at[$a]['atack'][$j]['yron']['y'] = $at[$a]['atack'][$j]['yron']['k'];
|
|
}
|
|
$at[$a]['atack'][$j]['yron']['2h'] = $witm['2h'];
|
|
$at[$a]['atack'][$j]['yron']['w'] = $wp;
|
|
if ($at[$a]['atack'][$j]['yron']['y'] < 1) {
|
|
$at[$a]['atack'][$j]['yron']['r'] = '--';
|
|
} else {
|
|
$at[$a]['atack'][$j]['yron']['r'] = '-' . $at[$a]['atack'][$j]['yron']['y'];
|
|
}
|
|
} else {
|
|
$at[$a]['atack'][$j]['block'] = $this->yronGetrazmen(
|
|
$u1, $u2, $wp, $at[$a]['atack'][$j][0],
|
|
$yhod[$b]
|
|
);
|
|
if ($at[$a]['atack'][$j][1] == 4) {
|
|
$at[$a]['atack'][$j]['block']['y_old'] = $at[$a]['atack'][$j]['block']['y'];
|
|
$at[$a]['atack'][$j]['block']['y'] = round($at[$a]['atack'][$j]['block']['k'] / 2);
|
|
} elseif ($at[$a]['atack'][$j][1] == 5) {
|
|
$at[$a]['atack'][$j]['block']['y_old'] = $at[$a]['atack'][$j]['block']['y'];
|
|
$at[$a]['atack'][$j]['block']['y'] = $at[$a]['atack'][$j]['block']['k'];
|
|
}
|
|
$at[$a]['atack'][$j]['block']['2h'] = $witm['2h'];
|
|
$at[$a]['atack'][$j]['block']['w'] = $wp;
|
|
if ($at[$a]['atack'][$j]['block']['y'] < 1) {
|
|
$at[$a]['atack'][$j]['block']['r'] = '--';
|
|
} else {
|
|
$at[$a]['atack'][$j]['block']['r'] = '-' . $at[$a]['atack'][$j]['block']['y'];
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
if (isset($pat) && $pat) {
|
|
$pat['p'] = $at;
|
|
$at = $pat;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Îáíîâëåíèå çäîðîâüÿ
|
|
public function updateHealth($id, $at): array
|
|
{
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$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']
|
|
);
|
|
} 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']
|
|
);
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
//Ðàññ÷åò äîïîëíèòåëüíûõ òàêòèê
|
|
if ($this->atacks[$id]['out' . $b] > 0) {
|
|
//Èãðîê ${'u'.$a} ïîëó÷àåò òàêòèêè, âîçìîæíî
|
|
if (rand(0, 100) < min(floor($this->stats[$this->uids[$u1]]['m6'] / 5), 20)) {
|
|
//âûäàåì òàêòèêó êîíòðóäàðà
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic3']++;
|
|
}
|
|
}
|
|
if (rand(0, 100) < min(floor($this->stats[$this->uids[$u1]]['m8'] / 4), 20)) {
|
|
//âûäàåì òàêòèêó ùèòà
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic4']++;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Ðàñ÷åò óäàðà Öåëè (u2) ïî Àòàêóþùåìó (u1)
|
|
$j = 0;
|
|
$k = 0;
|
|
$wp = 3;
|
|
while ($j < count($at[$a]['atack']) && $j < 8) {
|
|
//Äîáàâëÿåì òàêòèêè
|
|
if ($at[$a]['atack'][$j][1] == 1) {
|
|
//u1 óäàðèë îáû÷íûì óäàðîì u2
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic1']++;
|
|
}
|
|
//Äâóðó÷êà
|
|
if ($at[$a]['atack'][$j]['yron']['2h'] == 1 && $this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic1'] += 2;
|
|
}
|
|
} elseif ($at[$a]['atack'][$j][1] != 2) {
|
|
if ($at[$a]['atack'][$j][1] == 3) {
|
|
//u2 çàáëîêèðîâàë óäàð u1
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u2]]['tactic4']++;
|
|
}
|
|
} elseif ($at[$a]['atack'][$j][1] == 4) {
|
|
//u1 ïðîáèë áëîê u2 êðèòîì
|
|
if (!isset($at[$a]['atack'][$j]['notactic2'])) {
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic2']++;
|
|
}
|
|
}
|
|
$this->users[$this->uids[$u2]]['tactic4']++; //òàêòèêà çà ïðîáèâ áëîê
|
|
} elseif ($at[$a]['atack'][$j][1] == 5) {
|
|
//u1 óäàðèë êðèòè÷åñêèì óäàðîì u2
|
|
if (!isset($at[$a]['atack'][$j]['notactic2'])) {
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic2'] += 2;
|
|
}
|
|
//Äâóðó÷êà
|
|
if ($at[$a]['atack'][$j]['yron']['2h'] == 1 && $this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic2'] += 1;
|
|
}
|
|
}
|
|
} elseif ($at[$a]['atack'][$j][1] == 6) {
|
|
//u2 ïàðèðîâàë óäàð u1
|
|
if (!isset($at[$a]['atack'][$j]['notactic5']) && $this->stats[$this->uids[$u1]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u2]]['tactic5']++;
|
|
}
|
|
} elseif ($at[$a]['atack'][$j][1] == 7) {
|
|
//u2 áëîêèðîâàë ùèòîì óäàð u1 //ÒÓÒ ÙÈÒ
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u2]]['tactic4']++;
|
|
}
|
|
} elseif ($at[$a]['atack'][$j][1] == 8) {
|
|
//u2 óâåðíóëñÿ îò óäàðà u1 è íàíåñ ïî íåìó êîíòðóäàð
|
|
if ($this->stats[$this->uids[$u1]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u2]]['tactic3']++;
|
|
}
|
|
}
|
|
}
|
|
// ÊÓÄÀ ÁÈË , ÒÈÏ ÓÄÀÐÀ
|
|
if (isset($at[$a]['atack'][$j]['yron']) && (
|
|
$at[$a]['atack'][$j][1] == 1 ||
|
|
$at[$a]['atack'][$j][1] == 4 ||
|
|
$at[$a]['atack'][$j][1] == 5)) {
|
|
//
|
|
|
|
if ($this->stats[$this->uids[$u2]]['hpNow'] <= $at[$a]['atack'][$j]['yron']['y']) {
|
|
$at[$a]['atack'][$j]['yron']['y'] = $this->stats[$this->uids[$u2]]['hpNow'];
|
|
}
|
|
if ($this->stats[$this->uids[$u2]]['hpNow'] <= $at[$a]['atack'][$j]['yron']['k']) {
|
|
$at[$a]['atack'][$j]['yron']['k'] = $this->stats[$this->uids[$u2]]['hpNow'];
|
|
}
|
|
|
|
if ($at[$a]['atack'][$j]['yron']['y'] < 0) {
|
|
$at[$a]['atack'][$j]['yron']['y'] = 1;
|
|
$at[$a]['atack'][$j]['yron']['r'] = -1;
|
|
$at[$a]['atack'][$j]['yron']['k'] = 1;
|
|
}
|
|
if ($this->stats[$this->uids[$u2]]['hpNow'] < 1) {
|
|
$at[$a]['atack'][$j]['yron']['y'] = 0;
|
|
$at[$a]['atack'][$j]['yron']['r'] = -1;
|
|
$at[$a]['atack'][$j]['yron']['k'] = 0;
|
|
}
|
|
|
|
//Äîáàâëÿåì íàíåñåííûé óðîí è îïûò
|
|
$this->takeExp($u1, $at[$a]['atack'][$j]['yron']['y'], $u1, $u2);
|
|
//Îòíèìàåì ÍÐ
|
|
$this->stats[$this->uids[$u2]]['hpNow'] -= $at[$a]['atack'][$j]['yron']['y'];
|
|
$this->users[$this->uids[$u2]]['last_hp'] = -$at[$a]['atack'][$j]['yron']['y'];
|
|
$at[$a]['atack'][$j]['yron']['hp'] = $this->stats[$this->uids[$u2]]['hpNow'];
|
|
if ($at[$a]['atack'][$j]['yron']['hp'] < 1) {
|
|
$at[$a]['atack'][$j]['yron']['hp'] = 0;
|
|
}
|
|
$at[$a]['atack'][$j]['yron']['hpAll'] = $this->stats[$this->uids[$u2]]['hpAll'];
|
|
if ($at[$a]['atack'][$j]['yron']['hp'] > $at[$a]['atack'][$j]['yron']['hpAll']) {
|
|
$at[$a]['atack'][$j]['yron']['hp'] = $at[$a]['atack'][$j]['yron']['hpAll'];
|
|
}
|
|
//Òðàâìèðîâàíèå
|
|
if (rand(0, 100) <= 50) {
|
|
if ($at[$a]['atack'][$j][1] == 4 || $at[$a]['atack'][$j][1] == 5) {
|
|
if (!isset($at[$a]['atack'][$j]['yron']['travma']) && rand(
|
|
0,
|
|
1000
|
|
) < 500 && $this->users[$this->uids[$u2]]['level'] > 1 && $this->stats[$this->uids[$u1]] > 1) {
|
|
$trvm_chns = floor(rand(0, 200) / 10);
|
|
if ($trvm_chns > 3 || $trvm_chns < 1) {
|
|
$trvm_chns = 0;
|
|
}
|
|
$at[$a]['atack'][$j]['yron']['travma'] = [$trvm_chns, 'Îáûêíîâåííàÿ òðàâìà'];
|
|
unset($trvm_chns);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Äîáàâëÿåì íîâóþ ñòàòèñòèêó èãðîêà
|
|
public function addstatuser($id)
|
|
{
|
|
if ($id > 0) {
|
|
$uid = $id;
|
|
$id = $this->uids[$uid];
|
|
mysql_query(
|
|
'INSERT INTO `battle_users`
|
|
( `battle`,`uid`,`time_enter`,`login`,`level`,`align`,`clan`,`hpAll`,`hp`,`hpStart`,`team` )
|
|
VALUES
|
|
(
|
|
"' . $this->info['id'] . '",
|
|
"' . $uid . '",
|
|
"' . time() . '","' . $this->users[$id]['login'] . '",
|
|
"' . $this->users[$id]['level'] . '",
|
|
"' . $this->users[$id]['align'] . '",
|
|
"' . $this->users[$id]['clan'] . '",
|
|
"' . $this->stats[$id]['hpAll'] . '",
|
|
"' . $this->stats[$id]['hp'] . '",
|
|
"' . $this->stats[$id]['hpNow'] . '",
|
|
"' . $this->users[$id]['team'] . '"
|
|
)'
|
|
);
|
|
}
|
|
}
|
|
|
|
//Ïðîâåðÿåì ïðèåìû
|
|
public function priemsRazmen($id, $at)
|
|
{
|
|
if ($at == 'fast') {
|
|
$uid1 = $id[0];
|
|
$uid2 = $id[1];
|
|
} else {
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
}
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
//Ïîëó÷àåì ïðèåìû è ñìîòðèì êîãäà êàêîé äåéñòâóåò
|
|
$eff = $this->stats[$this->uids[$u1]]['effects'];
|
|
$this->stats[$this->uids[$u1]]['u_priem'] = [];
|
|
$j = 0;
|
|
while ($j <= count($eff)) {
|
|
if (isset($eff[$j]) && $eff[$j]['id_eff'] == 22 && $eff[$j]['v1'] == 'priem' && $eff[$j]['v2'] > 0) {
|
|
$this->stats[$this->uids[$u1]]['u_priem'][] = [
|
|
$j,
|
|
$eff[$j]['v2'],
|
|
$this->prm[$eff[$j]['v2']]['act'],
|
|
$eff[$j]['id'],
|
|
$this->prm[$eff[$j]['v2']]['type_of'],
|
|
$this->prm[$eff[$j]['v2']]['moment'],
|
|
$this->prm[$eff[$j]['v2']]['moment_end'],
|
|
$this->prm[$eff[$j]['v2']]['type_sec'],
|
|
];
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
//Ïðèåìû êîòîðûå èñïîëüçóþòñÿ ìîìåíòàëüíî
|
|
public function priemsRazmenMoment($id, $at)
|
|
{
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
if (!isset($at['p']['p_cast'])) {
|
|
$at['p'] = $at;
|
|
$at['p']['p_cast'] = true;
|
|
}
|
|
//Ïðèåìû óõîäà îò óäàðà
|
|
if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 1) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
$this->stats[$this->uids[$u2]]['nopryh']--;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
//Ïðèåìû êðèòà
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 2) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðèåìû àòàêè
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 3) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_priem)) {
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
}
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðèåìû çàùèòû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 4) {
|
|
if ($this->testPriemVarTrueZash(
|
|
$i, 1, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
|
|
$u1, $u2
|
|
) == false) {
|
|
} elseif (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][5] == 5) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Ïðèåìû êîòîðûå èñïîëüçóþòñÿ ìîìåíòàëüíî (â êîíöå õîäà)
|
|
public function priemsRazmenMomentEnd($id, $at)
|
|
{
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
if (!isset($at['p']['p_cast'])) {
|
|
$at['p'] = $at;
|
|
$at['p']['p_cast'] = true;
|
|
}
|
|
//Ïðèåìû óõîäà îò óäàðà
|
|
if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 1) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
$this->stats[$this->uids[$u2]]['nopryh']--;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
//Ïðèåìû êðèòà
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 2) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðèåìû àòàêè
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 3) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_priem)) {
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðèåìû çàùèòû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 4) {
|
|
if ($this->testPriemVarTrueZash(
|
|
$i, 2, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
|
|
$u1, $u2
|
|
) && file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][6] == 5) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
$pr_moment = true;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Èñïîëüçóåì ïðèåìû
|
|
public function priemsTestRazmen($id, $at)
|
|
{
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
if (!isset($at['p']['p_cast'])) {
|
|
$at['p'] = $at;
|
|
$at['p']['p_cast'] = true;
|
|
}
|
|
|
|
//ñòàâêà
|
|
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 220 || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 237
|
|
|| $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 286 || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 287 || $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 288
|
|
|| $this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 213) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðèåìû óõîäà îò óäàðà
|
|
if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 1) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
$this->stats[$this->uids[$u2]]['nopryh']--;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
//Ïðèåìû êðèòà
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 2) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðèåìû àòàêè
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 3) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_priem)) {
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
}
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðèåìû çàùèòû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 4) {
|
|
if (!$this->testPriemVarTrueZash(
|
|
$i, 3, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
|
|
$u1, $u2
|
|
)) {
|
|
} elseif (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_priem)) {
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
}
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 5) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_priem)) {
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
}
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
if (!isset($at['p']['p_cast'])) {
|
|
$at['p'] = $at;
|
|
$at['p']['p_cast'] = true;
|
|
}
|
|
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 8) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 9) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_used_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Ïîâòîðíàÿ ïðîâåðêà ïðèåìîâ
|
|
public function priemsRestartRazmen($id, $at)
|
|
{
|
|
if (isset($at['p'])) {
|
|
//Ïðîâåðêà
|
|
$uid1 = $this->atacks[$id]['uid1'];
|
|
$uid2 = $this->atacks[$id]['uid2'];
|
|
/*
|
|
Åñëè âîçíèêíóò ïðîáëåìû ñ ïðèåìàìè, ïðèäåòñÿ ïåðåïèñàòü àëãîðèòì, ñåé÷àñ îí âûãëÿäèò òàê:
|
|
Öèêë 1. Ïðîâåðÿåì ïîëüçîâàòåëÿ
|
|
Öèêë 2 âíóòðè Öèêëà 1. Ïðîâåðÿåì ïðèåìû ïîòîðûå ïîëüçîâàòåëü èñïîëüçîâàë
|
|
Ïðèäåòñÿ ñäåëàòü:
|
|
Öèêë 1. Ïðîâåðÿåì ïîëüçîâàòåëÿ
|
|
Öèêë 2 âíóòðè Öèêëà 1. Ïðîâåðÿåì ïðèåìû óâîðîòà
|
|
Öèêë 3. Ïðîâåðÿåì ïîëüçîâàòåëÿ
|
|
Öèêë 4 âíóòðè Öèêëà 3. Ïðîâåðÿåì ïðèåìû êðèòà
|
|
è ò.ä.
|
|
*/
|
|
$i = 1;
|
|
while ($i <= 2) {
|
|
if ($i == 1) {
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = ${'uid1'};
|
|
$u2 = ${'uid2'};
|
|
} else {
|
|
$a = 2;
|
|
$b = 1;
|
|
$u1 = ${'uid2'};
|
|
$u2 = ${'uid1'};
|
|
}
|
|
|
|
if (!isset($at['p']['p_cast'])) {
|
|
$at['p'] = $at;
|
|
$at['p']['p_cast'] = true;
|
|
}
|
|
|
|
//Ïðèåìû óõîäà îò óäàðà
|
|
if (!isset($this->stats[$this->uids[$u2]]['nopryh']) || $this->stats[$this->uids[$u2]]['nopryh'] == 0) {
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 1) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
$this->stats[$this->uids[$u2]]['nopryh']--;
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
//Ïðèåìû êðèòà
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 2) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðèåìû çàùèòû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 4) {
|
|
if ($this->testPriemVarTrueZash(
|
|
$i, 4, $this->stats[$this->uids[$u1]]['u_priem'][$j][1], $a, $b,
|
|
$u1, $u2
|
|
) == false) {
|
|
} elseif (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðèåìû àòàêè
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 3) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 5) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u1, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 8) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u2;
|
|
require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u2, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 9) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_tested_this = $u2;
|
|
require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
|
|
$at = $fx_priem($id, $at, $u2, $j);
|
|
unset(${'fx_priem'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
$i++;
|
|
}
|
|
$at = $at['p'];
|
|
unset($at['p']);
|
|
}
|
|
return $at;
|
|
}
|
|
|
|
//Ïðîâåðêà äåéñòâèÿ ïðèåìà
|
|
|
|
/**
|
|
* @param $i
|
|
* @param $id
|
|
* @param $pid
|
|
* @param $a
|
|
* @param $b
|
|
* @param $u1
|
|
* @param $u2
|
|
* @return bool
|
|
* @deprecated always returns true
|
|
*/
|
|
public function testPriemVarTrueZash($i, $id, $pid, $a, $b, $u1, $u2): bool
|
|
{
|
|
return true;
|
|
}
|
|
|
|
//Ïðîâåðêà óðîíà ïðèåìîâ
|
|
public $um_priem = [];
|
|
|
|
/**
|
|
* Òðîãàòü î÷åíü îñòîðîæíî. Ýòîò øàéòàí êàê-òî ïðîâåðÿåò ïðè¸ìû íà âðàãå
|
|
* è ðàññ÷èòûâàåò óðîí ó÷èòûâàÿ è ýòè ïðè¸ìû òîæå.
|
|
* @param $uid1
|
|
* @param $uid2
|
|
* @param $priem
|
|
* @param $yron
|
|
* @param $profil
|
|
* @param $stabil
|
|
* @param $test
|
|
* @param $inlog
|
|
* @return float|int|mixed
|
|
*/
|
|
public function testYronPriem($uid1, $uid2, $priem, $yron, $profil, $stabil, $test = false, $inlog = 0)
|
|
{
|
|
/*
|
|
profil = {
|
|
-1 - óðîí îðóæèåì
|
|
-2 - óðîí ìàãèåé
|
|
0 - íåèçâåñòíî
|
|
1-4 - ïðîôèëüíûé îðóæèÿ
|
|
5-12 - ïðîôèëüíûé ìàãèÿ
|
|
}
|
|
stabil - óðîí íå ïîäâåðæåí ìîùíîñòÿì è ò.ä
|
|
*/
|
|
//Ïðîâåðêà
|
|
$a = 1;
|
|
$b = 2;
|
|
$u1 = $uid1;
|
|
$u2 = $uid2;
|
|
|
|
//Ïðîâåðÿåì ïðèåìû çàùèòû èãðîêà $u1 íà óðîí èãðîêà $u2
|
|
//Ïîëó÷àåì ïðèåìû è ñìîòðèì êîãäà êàêîé äåéñòâóåò
|
|
if (!isset($this->stats[$this->uids[$u2]]['u_priem'])) {
|
|
$eff = $this->stats[$this->uids[$u2]]['effects'];
|
|
$j = 0;
|
|
while ($j <= count($eff)) {
|
|
if (isset($eff[$j]) && $eff[$j]['id_eff'] == 22 && $eff[$j]['v1'] == 'priem' && $eff[$j]['v2'] > 0) {
|
|
$this->stats[$this->uids[$u2]]['u_priem'][] = [
|
|
$j,
|
|
$eff[$j]['v2'],
|
|
$this->prm[$eff[$j]['v2']]['act'],
|
|
$eff[$j]['id'],
|
|
$this->prm[$eff[$j]['v2']]['type_of'],
|
|
$this->prm[$eff[$j]['v2']]['moment'],
|
|
];
|
|
}
|
|
$j++;
|
|
}
|
|
unset($eff);
|
|
}
|
|
//Ïðèåìû çàùèòû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u2]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 4) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_momental_this = $u2;
|
|
require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
|
|
$yron = $fx_moment($u2, $u1, $j, $yron, $profil);
|
|
unset(${'fx_moment'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][4] == 5) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_momental_this = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_moment)) {
|
|
$yron = $fx_moment($u1, $u2, $j, $yron, $profil, $inlog);
|
|
}
|
|
unset(${'fx_moment'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðî÷èå ïðèåìû (âëèÿåò íà óðîí îò ìîìåíòàëüíûõ ïðèåìîâ)
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u1]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u1]]['u_priem'][$j][7] == 5) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_momental_this_seven = $u1;
|
|
require('priem/' . $this->stats[$this->uids[$u1]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_moment_seven)) {
|
|
$yron = $fx_moment_seven($u1, $u2, $j, $yron, $profil, $inlog);
|
|
}
|
|
unset(${'fx_moment_seven'});
|
|
}
|
|
}
|
|
if ($this->stats[$this->uids[$u1]]['u_priem'][$j][1] == 180) {
|
|
// Ïåðåîõëàæäåíèå (ñíèæàåò óðîí íà 10%). Ïàí èëè ïðîïàë.
|
|
$x = mysql_fetch_row(mysql_query('select x from eff_users where v2 = 180 and uid = ' . $u1));
|
|
$yron = 0.1 * $x[0];
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
//Ïðî÷èå ïðèåìû
|
|
$j = 0;
|
|
while ($j <= count($this->stats[$this->uids[$u2]]['u_priem'])) {
|
|
if ($this->stats[$this->uids[$u2]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 8) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_momental_this = $u2;
|
|
require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_moment)) {
|
|
$yron = $fx_moment($u2, $u1, $j, $yron, $profil, $inlog);
|
|
}
|
|
unset(${'fx_moment'});
|
|
}
|
|
}
|
|
if ($this->stats[$this->uids[$u2]]['u_priem'][$j][2] > 0 && $this->stats[$this->uids[$u2]]['u_priem'][$j][4] == 9) {
|
|
if (file_exists(
|
|
'../../_incl_data/class/priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php'
|
|
)) {
|
|
$pr_momental_this = $u2;
|
|
require('priem/' . $this->stats[$this->uids[$u2]]['u_priem'][$j][1] . '.php');
|
|
if (isset($fx_moment)) {
|
|
$yron = $fx_moment($u2, $u1, $j, $yron, $profil, $inlog);
|
|
}
|
|
unset(${'fx_moment'});
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
|
|
if ($this->stats[$this->uids[$u2]]['zaproc'] > 0) {
|
|
$yron = round($yron - $yron * $this->stats[$this->uids[$uid2]]['zaproc'] / 100);
|
|
if ($yron < 1) {
|
|
$yron = 1;
|
|
}
|
|
}
|
|
return $yron;
|
|
}
|
|
|
|
//Îïûò + íàáèòûé óðîí çà óäàð ïðèåìîì\ìàãèåé
|
|
public function priemYronSave($u1, $u2, $yron, $type)
|
|
{
|
|
//$type 0 - óðîí , 1 - õèë
|
|
|
|
$this->testUserInfoBattle($u1);
|
|
$this->testUserInfoBattle($u2);
|
|
|
|
if (isset($this->uids[$u1])) {
|
|
if ($this->stats[$this->uids[$u2]]['hpAll'] <= 1000) {
|
|
$adt6 = round(0.1 * (floor($yron) / $this->stats[$this->uids[$u2]]['hpAll'] * 100), 10);
|
|
} else {
|
|
$adt6 = round(0.1 * (floor($yron) / 1000 * 100), 10);
|
|
}
|
|
|
|
if ($yron > $this->stats[$this->uids[$u2]]['hpNow']) {
|
|
$yron = $this->stats[$this->uids[$u2]]['hpNow'];
|
|
}
|
|
|
|
if ($yron > 0) {
|
|
$this->users[$this->uids[$u1]]['battle_yron'] += $yron;
|
|
$this->users[$this->uids[$u1]]['battle_exp'] += round(
|
|
1 * $this->testExp(
|
|
$yron,
|
|
$this->stats[$this->uids[$u1]], $this->stats[$this->uids[$u2]], $u1, $u2
|
|
)
|
|
);
|
|
if ($this->stats[$this->uids[$u2]]['this_animal'] == 0) {
|
|
$this->users[$this->uids[$u1]]['tactic6'] += $adt6;
|
|
$this->stats[$this->uids[$u1]]['tactic6'] += $adt6;
|
|
} else {
|
|
$this->users[$this->uids[$u1]]['tactic6'] += $adt6 / 3;
|
|
$this->stats[$this->uids[$u1]]['tactic6'] += $adt6 / 3;
|
|
}
|
|
} else {
|
|
$adt6 = 0;
|
|
}
|
|
//
|
|
$this->users[$this->uids[$u2]]['last_hp'] = -$yron;
|
|
//
|
|
mysql_query(
|
|
'UPDATE `stats` SET
|
|
`tactic6` = `tactic6` + "' . $adt6 . '",
|
|
`battle_yron` = `battle_yron` + "' . $yron . '",
|
|
`battle_exp` = `battle_exp` + "' . round(
|
|
$this->testExp(
|
|
$yron, $this->stats[$this->uids[$u1]],
|
|
$this->stats[$this->uids[$u2]], $u1, $u2
|
|
)
|
|
) . '"
|
|
WHERE `id` = "' . $u1 . '" LIMIT 1'
|
|
);
|
|
//
|
|
mysql_query(
|
|
'UPDATE `stats` SET
|
|
`last_hp` = "' . $this->users[$this->uids[$u2]]['last_hp'] . '"
|
|
WHERE `id` = "' . $u2 . '" LIMIT 1'
|
|
);
|
|
}
|
|
$this->addNewStat(
|
|
[
|
|
1 => [
|
|
'battle' => $this->info['id'],
|
|
'uid1' => $this->users[$this->uids[$u1]]['id'],
|
|
'uid2' => $this->users[$this->uids[$u2]]['id'],
|
|
'time' => time(),
|
|
'type' => 0,
|
|
'a' => '10000',
|
|
'b' => 0,
|
|
'type_a' => 1,
|
|
'type_b' => 0,
|
|
'ma' => 1,
|
|
'mb' => 1,
|
|
'yrn' => $yron,
|
|
'yrn_krit' => 0,
|
|
'tm1' => $this->users[$this->uids[$u1]]['team'],
|
|
'tm2' => $this->users[$this->uids[$u2]]['team'],
|
|
],
|
|
]
|
|
);
|
|
}
|
|
|
|
//Íàíîñèì óäàð ìåæäó èãðîêàìè
|
|
public $restart_stats_data = [];
|
|
|
|
public $import_atack = [];
|
|
public $contr = [];
|
|
public $import_user = 0;
|
|
|
|
public function startAtack($id)
|
|
{
|
|
global $c, $u, $log_text, $priem;
|
|
$this->prlog = [];
|
|
$this->inport_user = 0;
|
|
$vrm = [
|
|
'uid1' => $this->atacks[$id]['uid1'],
|
|
'uid2' => $this->atacks[$id]['uid2'],
|
|
];
|
|
|
|
if (isset($this->atacks[$id]) && $this->atacks[$id]['lock'] == 0) {
|
|
//Ïðèåì ðàçãàäàòü òàêòèêó
|
|
$i = 1;
|
|
$j = 2;
|
|
$k = 0;
|
|
$unpr = '';
|
|
while ($i <= 2) {
|
|
$untac = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `eff_users` WHERE `v1` = "priem" AND `v2` = "217" AND `uid` = "' . $this->atacks[$id]['uid' . $i] . '" AND `delete` = 0 LIMIT 1'
|
|
)
|
|
);
|
|
$agrs = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `eff_users` WHERE `v1` = "priem" AND `v2` = "211" AND `uid` = "' . $this->atacks[$id]['uid' . $j] . '" AND `delete` = 0 LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($untac['id']) && !isset($agrs['id'])) {
|
|
$pvr['sp'] = mysql_query(
|
|
'SELECT `a`.* FROM `eff_users` AS `a` WHERE `a`.`uid` = "' . $this->atacks[$id]['uid' . $j] . '" AND `a`.`delete` = 0 AND `a`.`v1` = "priem"
|
|
AND `a`.`v2` != 222 AND `a`.`v2` != 238 AND `a`.`v2` != 228 AND `a`.`v2` != 229
|
|
AND `a`.`v2` != 139 AND `a`.`v2` != 188 AND `a`.`v2` != 226 AND `a`.`v2` != 211
|
|
AND `a`.`v2` != 49 AND `a`.`v2` != 233 AND `a`.`v2` != 227 AND `a`.`v2` != 220
|
|
AND `a`.`v2` != 191 AND `a`.`v2` != 332 AND `a`.`v2` != 333 AND `a`.`v2` != 334
|
|
AND `a`.`v2` != 335 AND `a`.`v2` != 236 AND `a`.`v2` != 201
|
|
AND `a`.`v2` != 261 AND `a`.`v2` != 262 AND `a`.`v2` != 206 AND `a`.`v2` != 207 AND `a`.`v2` != 208 AND `a`.`v2` != 209
|
|
AND `a`.`v2` != 210 AND `a`.`v2` != 284
|
|
AND `a`.`v2` != 263 AND `a`.`v2` != 258 AND `a`.`v2` != 29 AND `a`.`v2` != 30
|
|
AND `a`.`v2` != 31 AND `a`.`v2` != 32 AND `a`.`v2` != 256 AND `a`.`v2` != 249
|
|
AND `a`.`v2` != 248 AND `a`.`v2` != 187 AND `a`.`v2` != 245 AND `a`.`v2` != 175
|
|
AND `a`.`v2` != 176 AND `a`.`v2` != 177 AND `a`.`v2` != 178 AND `a`.`v2` != 179
|
|
AND `a`.`v2` != 285 AND `a`.`v2` != 36 AND `a`.`v2` != 85 AND `a`.`v2` != 86
|
|
AND `a`.`v2` != 87 AND `a`.`v2` != 88 AND `a`.`v2` != 89 AND `a`.`v2` != 90
|
|
AND `a`.`v2` != 269 AND `a`.`v2` != 276 AND `a`.`v2` != 277 AND `a`.`v2` != 270
|
|
AND `a`.`v2` != 174 AND `a`.`v2` != 324 AND `a`.`v2` != 217
|
|
AND `name` NOT LIKE "%Èììóíèòåò%"
|
|
LIMIT 30'
|
|
);
|
|
while ($pvr['pl'] = mysql_fetch_array($pvr['sp'])) {
|
|
$pvr['pl']['priem'] = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $pvr['pl']['v2'] . '" LIMIT 1')
|
|
);
|
|
if (isset($pvr['pl']['priem']['id']) && $pvr['pl']['priem']['neg'] == 0) {
|
|
$this->delPriem($pvr['pl'], $this->users[$this->uids[$this->atacks[$id]['uid' . $j]]], 100);
|
|
}
|
|
}
|
|
}
|
|
$j--;
|
|
$i++;
|
|
}
|
|
|
|
//Âîññòàíîâëåíèå ìàííû 1% çà õîä
|
|
if ($this->atacks[$id]['out1'] == 0) {
|
|
if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['s6'] / 4 < $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['level']) {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] += floor(
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid1']]]['level'] + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hod_minmana']
|
|
);
|
|
} else {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] += floor(
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid1']]]['s6'] / 4 + $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hod_minmana']
|
|
);
|
|
}
|
|
$this->users[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] = $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'];
|
|
}
|
|
//
|
|
if ($this->atacks[$id]['out2'] == 0) {
|
|
if ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['s6'] / 4 < $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['level']) {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] += floor(
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['level'] + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hod_minmana']
|
|
);
|
|
} else {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] += floor(
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['s6'] / 4 + $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hod_minmana']
|
|
);
|
|
}
|
|
$this->users[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] = $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'];
|
|
}
|
|
|
|
//Àíòèñòàòû
|
|
if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['antm3'] != 0) {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['m3'] -= round(
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid1']]]['antm3']
|
|
);
|
|
}
|
|
if ($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['antm3'] != 0) {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid1']]]['m3'] -= round(
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['antm3']
|
|
);
|
|
}
|
|
|
|
$last_yrn = [
|
|
1 => $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_yron'],
|
|
2 => $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_yron'],
|
|
];
|
|
|
|
//Ðàñ÷åò êîëè÷åñòâà áëîêîâ è ïðîòèâíèêîâ
|
|
$this->testZonb($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2']);
|
|
|
|
//Çàïóñêàåì ìàãèþ ïðåäìåòîâ
|
|
$this->magicItems($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], $id);
|
|
$this->magicItems($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], $id);
|
|
|
|
// Ïîëó÷àåì ïðèåìû èãðîêîâ
|
|
$this->priemsRazmen($id, $at);
|
|
$this->priemsRazmenMoment($id, $at);
|
|
$this->priemsRazmen($id, $at);
|
|
|
|
$at = $this->newRazmen($id);
|
|
|
|
// Òåñòèðóåì êàêèå åùå ìîãóò áûòü âàðèàíòû ïðè óäàðå
|
|
// Óâîðîò, ïàðèðîâàíèå, êðèò, ïðîáèòü áëîê, áëîê ùèòîì
|
|
// Áëîê ùèòîì (åñëè åñòü ùèò, êîíå÷íî)
|
|
|
|
$at = $this->mf2Razmen($id, $at, $v); //êðèò
|
|
$at = $this->mf3Razmen($id, $at, $v); //ïàðèðîâàíèå
|
|
$at = $this->mf4Razmen($id, $at, $v); //áëîê ùèòîì
|
|
|
|
$at = $this->mf1Razmen($id, $at, $v); //óâîðîò
|
|
$at = $this->mf5Razmen($id, $at, $v); //êîíòðóäàð
|
|
|
|
$at = $this->yronRazmen($id, $at); //ðàñ÷åò óðîíà
|
|
|
|
// Ïðîâåðÿåì ïðèåìû
|
|
// Ïîëó÷àåì ïðèåìû èãðîêîâ
|
|
$at = $this->priemsTestRazmen($id, $at);
|
|
// Ñîáèðàåì ðàçìåí (ïåðåñ÷èòûâàåì è ðàñ÷èòûâàåì óðîí è ò.ä)
|
|
$at = $this->priemsRestartRazmen($id, $at); //Ïîâòîðíàÿ ïðîâåðêà ïðèåìîâ (åñëè òðåáóåòñÿ)
|
|
|
|
//Ìèíóñóåì ïîãëîùåííûé óðîí
|
|
if (count($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['set_pog']) > 0) {
|
|
$this->testPogB($this->atacks[$id]['uid1'], 1, $id, 1);
|
|
}
|
|
if (count($this->stats[$this->uids[$this->atacks[$id]['uid2']]]['set_pog']) > 0) {
|
|
$this->testPogB($this->atacks[$id]['uid2'], 1, $id, 1);
|
|
}
|
|
|
|
// Îáíîâëÿåì ÍÐ è äîáàâëÿåì òàêòèêè
|
|
$at = $this->updateHealth($id, $at);
|
|
|
|
// Çàíîñèì â ëîãè + çàïèñûâàåì ñòàòèñòèêó áîÿ
|
|
$this->addlogRazmen($id, $at);
|
|
|
|
//Çàïóñêàåì ìàãèþ ïðåäìåòîâ
|
|
$this->magicItems($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'], $id);
|
|
$this->magicItems($this->atacks[$id]['uid2'], $this->atacks[$id]['uid1'], $id);
|
|
|
|
//Âîçðàùàåì çîíû áëîêà
|
|
$this->restZonb($this->atacks[$id]['uid1'], $this->atacks[$id]['uid2']);
|
|
//îáíîâëÿåì çàäåðæêè ïðèåìîâ
|
|
$zd1 = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems_z']);
|
|
$zd2 = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems_z']);
|
|
$zd1id = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems']);
|
|
$zd2id = explode('|', $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems']);
|
|
$prmos = [];
|
|
$i5 = 0;
|
|
|
|
while ($i5 < 51) {
|
|
if (isset($zd1[$i5]) && $zd1[$i5] > 0) {
|
|
//Åñëè ïðèåìû íå òðåáóþò õîä
|
|
$zd1[$i5] -= 1;
|
|
} else {
|
|
$zd1[$i5] = 0;
|
|
}
|
|
if (isset($zd2[$i5]) && $zd2[$i5] > 0) {
|
|
//Åñëè ïðèåìû íå òðåáóþò õîä
|
|
$zd2[$i5] -= 1;
|
|
} else {
|
|
$zd2[$i5] = 0;
|
|
}
|
|
$i5++;
|
|
}
|
|
unset($prmos);
|
|
|
|
if ($this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'] == $this->users[$this->uids[$this->atacks[$id]['uid2']]]['id']) {
|
|
$this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'] = -$this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'];
|
|
}
|
|
|
|
if ($this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'] == $this->users[$this->uids[$this->atacks[$id]['uid1']]]['id']) {
|
|
$this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'] = -$this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'];
|
|
}
|
|
|
|
$this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems_z'] = implode('|', $zd1);
|
|
$this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems_z'] = implode('|', $zd2);
|
|
if ($this->atacks[$id]['uid1'] == $u->info['id']) {
|
|
$u->info['priems_z'] = implode('|', $zd1);
|
|
} elseif ($this->atacks[$id]['uid2'] == $u->info['id']) {
|
|
$u->info['priems_z'] = implode('|', $zd2);
|
|
}
|
|
//Ïðîâåðÿåì òàêòèêè
|
|
$i = 1;
|
|
while ($i <= 6) {
|
|
if ($this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] > 25) {
|
|
$this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] = 25;
|
|
} elseif ($this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] <= 0) {
|
|
$this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic' . $i] = 0;
|
|
}
|
|
if ($this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] > 25) {
|
|
$this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] = 25;
|
|
} elseif ($this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] <= 0) {
|
|
$this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic' . $i] = 0;
|
|
}
|
|
$i++;
|
|
}
|
|
//Îáíîâëÿåì çàäåðæêè ïðåäìåòîâ
|
|
mysql_query(
|
|
'UPDATE `items_users` SET `btl_zd` = `btl_zd` - 1 WHERE (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '") AND `btl_zd` > 0 AND `inOdet` > 0 LIMIT 100'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `users` SET `notrhod` = "-1" WHERE `id` = "' . $this->atacks[$id]['uid1'] . '" OR `id` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 2'
|
|
);
|
|
|
|
//Îáíîâëÿåì çàäåðæêè ïèðîæêîâ
|
|
mysql_query(
|
|
'UPDATE `pirogi` SET `hod` = `hod` - 1 WHERE `btl` = "' . $this->info['id'] . '" AND (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '")'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `tactic` SET `hod` = `hod` - 1 WHERE `btl` = "' . $this->info['id'] . '" AND (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '")'
|
|
);
|
|
|
|
//Òàêòèêè
|
|
mysql_query('DELETE FROM `pirogi` WHERE `btl` = "' . $this->info['id'] . '" AND `hod` < 1');
|
|
mysql_query('DELETE FROM `tactic` WHERE `btl` = "' . $this->info['id'] . '" AND `hod` < 1');
|
|
|
|
//Îáíîâëÿåì çàäåðæêè ïèðîæêîâ
|
|
mysql_query(
|
|
'UPDATE `spells` SET `hod` = `hod` - 1 WHERE `btl` = "' . $this->info['id'] . '" AND (`uid` = "' . $this->atacks[$id]['uid1'] . '" OR `uid` = "' . $this->atacks[$id]['uid2'] . '")'
|
|
);
|
|
mysql_query('DELETE FROM `spells` WHERE `btl` = "' . $this->info['id'] . '" AND `hod` < 1');
|
|
|
|
//Îáíîâëÿåì äàííûå â battle_users
|
|
mysql_query(
|
|
'UPDATE `battle_users` SET `hp` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hpNow'] . '"
|
|
WHERE `battle` = "' . $this->info['id'] . '" AND `uid` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `battle_users` SET `hp` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hpNow'] . '"
|
|
WHERE `battle` = "' . $this->info['id'] . '" AND `uid` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
|
|
);
|
|
//Âîññòàíîâëåíèå ìàííû 25% îò ìóäðîñòè çà õîä
|
|
|
|
$last_yrn = [
|
|
1 => $last_yrn[1],
|
|
2 => $last_yrn[2],
|
|
10 => $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_yron'],
|
|
20 => $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_yron'],
|
|
];
|
|
|
|
$last_yrn[100] = floor($last_yrn[10] - $last_yrn[1]);
|
|
$last_yrn[200] = floor($last_yrn[20] - $last_yrn[2]);
|
|
|
|
if ($this->stats[$this->uids[$this->atacks[$id]['uid1']]]['yhod'] > 0) {
|
|
$this->save_stats(
|
|
$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) {
|
|
$this->save_stats(
|
|
$this->yhod_user(
|
|
$this->atacks[$id]['uid1'], $this->atacks[$id]['uid2'],
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid2']]]['yhod']
|
|
)
|
|
);
|
|
}
|
|
mysql_query(
|
|
'UPDATE `stats` SET
|
|
|
|
`hpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['hpNow'] . '",
|
|
`mpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid1']]]['mpNow'] . '",
|
|
`tactic1` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic1'] . '",
|
|
`tactic2` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic2'] . '",
|
|
`tactic3` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic3'] . '",
|
|
`tactic4` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic4'] . '",
|
|
`tactic5` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic5'] . '",
|
|
`tactic6` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic6'] . '",
|
|
`tactic7` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['tactic7'] . '",
|
|
|
|
`enemy` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'] . '",
|
|
`battle_yron` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_yron'] . '",
|
|
`last_hp` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['last_hp'] . '",
|
|
`battle_exp` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['battle_exp'] . '",
|
|
`priems_z` = "' . $this->users[$this->uids[$this->atacks[$id]['uid1']]]['priems_z'] . '"
|
|
|
|
WHERE `id` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `stats` SET
|
|
|
|
`hpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['hpNow'] . '",
|
|
`mpNow` = "' . $this->stats[$this->uids[$this->atacks[$id]['uid2']]]['mpNow'] . '",
|
|
`tactic1` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic1'] . '",
|
|
`tactic2` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic2'] . '",
|
|
`tactic3` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic3'] . '",
|
|
`tactic4` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic4'] . '",
|
|
`tactic5` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic5'] . '",
|
|
`tactic6` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic6'] . '",
|
|
`tactic7` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['tactic7'] . '",
|
|
|
|
`enemy` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'] . '",
|
|
`battle_yron` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_yron'] . '",
|
|
`last_hp` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['last_hp'] . '",
|
|
`battle_exp` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['battle_exp'] . '",
|
|
`priems_z` = "' . $this->users[$this->uids[$this->atacks[$id]['uid2']]]['priems_z'] . '"
|
|
|
|
WHERE `id` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
|
|
);
|
|
$this->priemsRazmenMomentEnd($id, $at);
|
|
//Ìèíóñóåì çàðÿä ïðèåìà \ ýôôåêòà
|
|
$j = 1;
|
|
$jn = 1;
|
|
while ($j <= 2) {
|
|
$eff = $this->stats[$this->uids[$this->atacks[$id]['uid' . $j]]]['effects'];
|
|
$i = 0;
|
|
while ($i < count($eff)) {
|
|
if (isset($eff[$i])) {
|
|
if ($eff[$i]['timeUse'] == 77 && $eff[$i]['hod'] > -1) {
|
|
$eff[$i]['hod']--;
|
|
$eff[$i]['priem'] = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
|
|
);
|
|
if (round($eff[$i]['priem']['minmana'] * $eff[$i]['x']) != 0) {
|
|
//Îòíèìàåì ìàíó ó òîãî êòî êàñòîâàë
|
|
$priem->minMana(
|
|
$eff[$i]['user_use'],
|
|
round($eff[$i]['priem']['minmana'] * $eff[$i]['x'])
|
|
);
|
|
if ($this->stats[$this->uids[$eff[$i]['user_use']]]['mpNow'] <= 0) {
|
|
$eff[$i]['hod'] = 0;
|
|
}
|
|
}
|
|
if (strripos($eff[$i]['data'], 'minprocmanahod')) {
|
|
$pvr = [
|
|
'x1' => 0,
|
|
'x2' => 0,
|
|
'd' => '',
|
|
'i' => 0,
|
|
'uid' => $eff[$i]['uid'],
|
|
'color' => '',
|
|
'color2' => '',
|
|
'effx' => '',
|
|
'x' => $eff[$i]['name'],
|
|
];
|
|
$pvr['d'] = explode('|', $eff[$i]['data']);
|
|
while ($pvr['i'] < count($pvr['d'])) {
|
|
if (isset($pvr['d'][$pvr['i']])) {
|
|
$pvr['d1'] = explode('=', $pvr['d'][$pvr['i']]);
|
|
if ($pvr['d1'][0] == 'minprocmanahod') {
|
|
$pvr['d1'] = explode('x', $pvr['d1'][1]);
|
|
$pvr['x1'] = $pvr['d1'][0];
|
|
$pvr['x2'] = $pvr['d1'][1];
|
|
}
|
|
}
|
|
$pvr['i']++;
|
|
}
|
|
|
|
$pvr['mp'] = round(
|
|
$this->stats[$this->uids[$pvr['uid']]]['mpAll'] / 100 * rand(
|
|
$pvr['x1'],
|
|
$pvr['x2']
|
|
)
|
|
);
|
|
$pvr['mpSee'] = 0;
|
|
$pvr['mpNow'] = floor($this->stats[$this->uids[$pvr['uid']]]['mpNow']);
|
|
$pvr['mpAll'] = $this->stats[$this->uids[$pvr['uid']]]['mpAll'];
|
|
$pvr['mpTr'] = $pvr['mpAll'] - $pvr['mpNow'];
|
|
|
|
if ($pvr['mpTr'] > 0) {
|
|
//Òðåáóåòñÿ õèëë
|
|
if ($pvr['mpTr'] < $pvr['mp']) {
|
|
$pvr['mp'] = $pvr['mpTr'];
|
|
}
|
|
$pvr['mpSee'] = '+' . $pvr['mp'];
|
|
$pvr['mpNow'] += $pvr['mp'];
|
|
}
|
|
if ($pvr['mpNow'] > $pvr['mpAll']) {
|
|
$pvr['mpNow'] = $pvr['mpAll'];
|
|
} elseif ($pvr['mpNow'] < 0) {
|
|
$pvr['mpNow'] = 0;
|
|
}
|
|
if ($pvr['mpSee'] == 0) {
|
|
$pvr['mpSee'] = '--';
|
|
}
|
|
|
|
$btl->stats[$btl->uids[$pvr['uid']]]['mpNow'] = $pvr['mpNow'];
|
|
$btl->users[$btl->uids[$pvr['uid']]]['mpNow'] = $pvr['mpNow'];
|
|
mysql_query(
|
|
'UPDATE `stats` SET `mpNow` = "' . $btl->stats[$btl->uids[$pvr['uid']]]['mpNow'] . '" WHERE `id` = "' . $pvr['uid'] . '" LIMIT 1'
|
|
);
|
|
|
|
$pvr['text'] = $this->addlt(1, 21, $this->users[$this->uids[$pvr['uid']]]['sex'], null);
|
|
$pvr['text2'] = '{tm1} ' . $pvr['text'] . ' íà <font Color=#006699><strong>' . $pvr['mpSee'] . '</strong></font> [' . $pvr['mpNow'] . '/' . $pvr['mpAll'] . '] (Ìàíà)';
|
|
$this->priemAddLog(
|
|
$id, 1, 2, $pvr['uid'], 0,
|
|
'<font color^^^^#' . $pvr['color2'] . '>' . $pvr['x'] . '</font>',
|
|
$pvr['text2'],
|
|
($this->hodID + 0)
|
|
);
|
|
unset($pvr);
|
|
}
|
|
|
|
if (isset($this->rehodeff[$eff[$i]['id']])) {
|
|
$eff[$i]['hod'] = $this->rehodeff[$eff[$i]['id']];
|
|
}
|
|
if ($eff[$i]['hod'] > 0) {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid' . $j]]]['effects']['hod'] = $eff[$i]['hod'];
|
|
mysql_query(
|
|
'UPDATE `eff_users` SET `hod` = "' . $eff[$i]['hod'] . '" WHERE `id` = "' . $eff[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
} else {
|
|
//óäàëÿåì ïðèåì
|
|
if ($eff[$i]['v2'] > 0) {
|
|
if ($j == 1) {
|
|
$jn = 2;
|
|
} else {
|
|
$jn = 1;
|
|
}
|
|
$this->delPriem(
|
|
$eff[$i], $this->users[$this->uids[$this->atacks[$id]['uid' . $j]]],
|
|
3, $this->atacks[$id]['uid' . $jn]
|
|
);
|
|
}
|
|
}
|
|
} elseif ($eff[$i]['timeUse'] == 77 && $eff[$i]['hod'] == -2) {
|
|
$eff[$i]['priem'] = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
|
|
);
|
|
$priem->hodUsePriem($eff[$i], $eff[$i]['priem']);
|
|
} else {
|
|
$eff[$i]['priem'] = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `priems` WHERE `id` = "' . $eff[$i]['v2'] . '" LIMIT 1')
|
|
);
|
|
if (isset($eff[$i]['priem']['minmana']) && round(
|
|
$eff[$i]['priem']['minmana'] * $eff[$i]['x']
|
|
) != 0) {
|
|
//Îòíèìàåì ìàíó ó òîãî êòî êàñòîâàë
|
|
$priem->minMana(
|
|
$eff[$i]['user_use'],
|
|
round($eff[$i]['priem']['minmana'] * $eff[$i]['x'])
|
|
);
|
|
if ($this->stats[$this->uids[$eff[$i]['user_use']]]['mpNow'] <= 0) {
|
|
$eff[$i]['hod'] = 0;
|
|
if (isset($this->rehodeff[$eff[$i]['id']])) {
|
|
$eff[$i]['hod'] = $this->rehodeff[$eff[$i]['id']];
|
|
}
|
|
if ($eff[$i]['v2'] > 0) {
|
|
if ($j == 1) {
|
|
$jn = 2;
|
|
} else {
|
|
$jn = 1;
|
|
}
|
|
$this->delPriem(
|
|
$eff[$i],
|
|
$this->users[$this->uids[$this->atacks[$id]['uid' . $j]]], 3,
|
|
$this->atacks[$id]['uid' . $jn]
|
|
);
|
|
}
|
|
}
|
|
} elseif ($eff[$i]['timeUse'] > 100 && $eff[$i]['hod'] > -1 && $c['effz'] > 0) {
|
|
$eff[$i]['hod']--;
|
|
if (isset($this->rehodeff[$eff[$i]['id']])) {
|
|
$eff[$i]['hod'] = $this->rehodeff[$eff[$i]['id']];
|
|
}
|
|
if ($eff[$i]['hod'] > 0) {
|
|
$this->stats[$this->uids[$this->atacks[$id]['uid' . $j]]]['effects']['hod'] = $eff[$i]['hod'];
|
|
mysql_query(
|
|
'UPDATE `eff_users` SET `hod` = "' . $eff[$i]['hod'] . '" WHERE `id` = "' . $eff[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
} else {
|
|
//óäàëÿåì ïðèåì
|
|
if ($eff[$i]['v2'] > 0) {
|
|
if ($j == 1) {
|
|
$jn = 2;
|
|
} else {
|
|
$jn = 1;
|
|
}
|
|
$this->delPriem(
|
|
$eff[$i],
|
|
$this->users[$this->uids[$this->atacks[$id]['uid' . $j]]], 3,
|
|
$this->atacks[$id]['uid' . $jn]
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
$j++;
|
|
}
|
|
//Ïðîâåðÿåì
|
|
if ($c['propsk_die'] > 0 && $this->info['razdel'] == 0 && $this->info['dn_id'] == 0 && $this->info['izlom'] == 0) {
|
|
$cn1 = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(*) FROM `battle_out` WHERE `battle` = "' . $this->info['id'] . '" AND `uid1` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$cn2 = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT COUNT(*) FROM `battle_out` WHERE `battle` = "' . $this->info['id'] . '" AND `uid1` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if ($cn1[0] > 3) {
|
|
$pvr['text2'] = '{tm1} Ïåðñîíàæ {u1} áûë óáèò èç-çà áîëüøîãî êîëè÷åñòâà ïðîïóñêîâ õîäà.';
|
|
$this->priemAddLog(
|
|
$id, 1, 2, $this->atacks[$id]['uid1'], 0, '',
|
|
$pvr['text2'],
|
|
($this->hodID + 0)
|
|
);
|
|
unset($pvr);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `hpNow` = 0 WHERE `id` = "' . $this->atacks[$id]['uid1'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
if ($cn2[0] > $c['propsk_die']) {
|
|
$pvr['text2'] = '{tm1} Ïåðñîíàæ {u1} áûë óáèò èç-çà áîëüøîãî êîëè÷åñòâà ïðîïóñêîâ õîäà.';
|
|
$this->priemAddLog(
|
|
$id, 1, 2, $this->atacks[$id]['uid2'], 0, '',
|
|
$pvr['text2'],
|
|
($this->hodID + 0)
|
|
);
|
|
unset($pvr);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `hpNow` = 0 WHERE `id` = "' . $this->atacks[$id]['uid2'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
}
|
|
//
|
|
//Îáíîâëÿåì òåêóùåãî ïðîòèâíèêà
|
|
if ($u->info['id'] == $this->atacks[$id]['uid1']) {
|
|
$u->info['enemy'] = $this->users[$this->uids[$this->atacks[$id]['uid1']]]['enemy'];
|
|
}
|
|
if ($u->info['id'] == $this->atacks[$id]['uid2']) {
|
|
$u->info['enemy'] = $this->users[$this->uids[$this->atacks[$id]['uid2']]]['enemy'];
|
|
}
|
|
//Óäàëÿåì ðàçìåí èç áàçû //ÒÓÒ âîçìîæåí ëàã óäàëåíèÿ
|
|
mysql_query(
|
|
'DELETE FROM `battle_act` WHERE ( `uid1` = "' . $this->atacks[$id]['uid1'] . '" AND `uid2` = "' . $this->atacks[$id]['uid2'] . '" ) OR
|
|
( `uid2` = "' . $this->atacks[$id]['uid1'] . '" AND `uid1` = "' . $this->atacks[$id]['uid2'] . '" )'
|
|
);
|
|
unset($old_s1, $old_s2);
|
|
unset($this->ga[$this->atacks[$id]['uid1']][$this->atacks[$id]['uid2']], $this->ga[$this->atacks[$id]['uid2']][$this->atacks[$id]['uid1']]);
|
|
unset($this->ag[$this->atacks[$id]['uid1']][$this->atacks[$id]['uid2']], $this->ag[$this->atacks[$id]['uid2']][$this->atacks[$id]['uid1']]);
|
|
unset($this->atacks[$id]);
|
|
mysql_query('DELETE FROM `battle_act` WHERE `id` = "' . $id . '" LIMIT 1');
|
|
unset($old_s1, $old_s2);
|
|
}
|
|
}
|
|
|
|
//Ñîõðàíåíèå äàííûå
|
|
public function save_stats($uid)
|
|
{
|
|
mysql_query(
|
|
'UPDATE `stats` SET
|
|
|
|
`hpNow` = "' . $this->stats[$this->uids[$uid]]['hpNow'] . '",
|
|
`mpNow` = "' . $this->stats[$this->uids[$uid]]['mpNow'] . '",
|
|
`tactic1` = "' . $this->users[$this->uids[$uid]]['tactic1'] . '",
|
|
`tactic2` = "' . $this->users[$this->uids[$uid]]['tactic2'] . '",
|
|
`tactic3` = "' . $this->users[$this->uids[$uid]]['tactic3'] . '",
|
|
`tactic4` = "' . $this->users[$this->uids[$uid]]['tactic4'] . '",
|
|
`tactic5` = "' . $this->users[$this->uids[$uid]]['tactic5'] . '",
|
|
`tactic6` = "' . $this->users[$this->uids[$uid]]['tactic6'] . '",
|
|
`tactic7` = "' . $this->users[$this->uids[$uid]]['tactic7'] . '",
|
|
|
|
`enemy` = "' . $this->users[$this->uids[$uid]]['enemy'] . '",
|
|
`battle_yron` = "' . $this->users[$this->uids[$uid]]['battle_yron'] . '",
|
|
`last_hp` = "' . $this->users[$this->uids[$uid]]['last_hp'] . '",
|
|
`battle_exp` = "' . $this->users[$this->uids[$uid]]['battle_exp'] . '",
|
|
`priems_z` = "' . $this->users[$this->uids[$uid]]['priems_z'] . '"
|
|
|
|
WHERE `id` = "' . $uid . '" LIMIT 1'
|
|
);
|
|
}
|
|
|
|
//Îòîáðàæåíèå ÍÐ
|
|
public function hpSee($now, $all, $type = 1): string
|
|
{
|
|
$r = '[' . $now . '/' . $all . ']';
|
|
if ($all > 10000) {
|
|
$type = 2;
|
|
}
|
|
if ($type == 2) {
|
|
$p1 = floor($now / $all * 100);
|
|
$r = '[' . $p1 . '/100%]';
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
|
|
//Âûâîäèì ëîã áîÿ
|
|
public function lookLog(): string
|
|
{
|
|
global $c, $u, $log_text;
|
|
$hodID = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`id_hod` FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
|
|
)
|
|
);
|
|
if ($hodID['id_hod'] <= 1) {
|
|
$u->info['alog'] = 0;
|
|
}
|
|
if (isset($hodID['id']) && $this->info['team_win'] != -1) {
|
|
$hodID = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `battle_logs_save` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
|
|
)
|
|
);
|
|
}
|
|
$hodID = $hodID['id'] ?? 0;
|
|
|
|
$updt = 0;
|
|
$js = '';
|
|
$pll = 0;
|
|
if ($_POST['idlog'] < 1) {
|
|
$_POST['idlog'] = 0;
|
|
}
|
|
$talog = mysql_fetch_array(
|
|
mysql_query('SELECT `alog` FROM `stats` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1')
|
|
);
|
|
$sp = mysql_query(
|
|
'SELECT
|
|
`id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
|
|
FROM `battle_logs`
|
|
WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $talog['alog'] . ' ORDER BY `id` DESC'
|
|
);
|
|
if (isset($sp) && $this->info['team_win'] != -1) {
|
|
$sp = mysql_query(
|
|
'SELECT
|
|
`id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
|
|
FROM `battle_logs_save`
|
|
WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $talog['alog'] . ' ORDER BY `id` DESC'
|
|
);
|
|
}
|
|
$jin = 0;
|
|
$forYou2 = 0;
|
|
if (is_array($sp)) {
|
|
while ($pl = mysql_fetch_array($sp)) {
|
|
if ($jin == 0) {
|
|
$u->info['alog'] = $pl['id_hod'];
|
|
}
|
|
$jin++;
|
|
|
|
$rt = $pl['text'];
|
|
$pl['vars'] = str_replace('^^^^', 'rvnO', $pl['vars']);
|
|
$rt = str_replace(
|
|
'{tm1}', '<span class=\"date {fru}\">' . date('H:i', $pl['time']) . '</span>',
|
|
$rt
|
|
);
|
|
$rt = str_replace(
|
|
'{tm2}', '<span class=\"date {fru}\">' . date('H:i', $pl['time']) . '</span>',
|
|
$rt
|
|
);
|
|
$rt = str_replace(
|
|
'{tm3}',
|
|
'<span class=\"date {fru}\">' . date('d.m.Y H:i', $pl['time']) . '</span>', $rt
|
|
);
|
|
$rt = str_replace(
|
|
'{tm4}',
|
|
'<span class=\"date {fru}\">' . date('d.m.Y H:i', $pl['time']) . '</span>', $rt
|
|
);
|
|
$pl['text'] = $rt;
|
|
|
|
unset($rt);
|
|
if ($pll < $pl['id']) {
|
|
$pll = $pl['id'];
|
|
}
|
|
$js = 'add_log(' . $pl['id'] . ',' . $forYou2 . ',"' . $pl['text'] . '",' . $pl['id_hod'] . ',0,0,"' . str_replace(
|
|
'"',
|
|
'"', $pl['vars']
|
|
) . '");' . $js;
|
|
}
|
|
}
|
|
mysql_query(
|
|
'UPDATE `stats` SET `alog`="' . $u->info['alog'] . '" WHERE `id` ="' . $u->info['id'] . '" LIMIT 1'
|
|
);
|
|
$js .= 'id_log=' . $pll . ';';
|
|
return $js;
|
|
}
|
|
|
|
//Íîâûé ëîã Ìîé Ëîã
|
|
public function lookmLog(): string
|
|
{
|
|
global $c, $u, $log_text;
|
|
$js = '';
|
|
$pll = 0;
|
|
|
|
if ($this->info['type'] != 9) {
|
|
$hodID = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id`,`id_hod` FROM `battle_logs` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
|
|
)
|
|
);
|
|
if ($hodID['id_hod'] <= 1) {
|
|
$u->info['mlog'] = 0;
|
|
}
|
|
if (isset($hodID['id']) && $this->info['team_win'] != -1) {
|
|
$hodID = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `battle_logs_save` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `time` ASC LIMIT 1'
|
|
)
|
|
);
|
|
}
|
|
$hodID = $hodID['id'] ?? 0;
|
|
$tmlog = mysql_fetch_array(
|
|
mysql_query('SELECT `mlog` FROM `stats` WHERE `id` = "' . $u->info['id'] . '" LIMIT 1')
|
|
);
|
|
$spm = mysql_query(
|
|
'SELECT
|
|
`id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
|
|
FROM `battle_logs`
|
|
WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $tmlog['mlog'] . ' AND `vars` LIKE "%' . $u->info['login'] . '%" ORDER BY `id` DESC'
|
|
);
|
|
|
|
if (isset($spm) && $this->info['team_win'] != -1) {
|
|
$spm = mysql_query(
|
|
'SELECT
|
|
`id`,`type`,`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zona2`,`zonb1`,`zonb2`
|
|
FROM `battle_logs_save`
|
|
WHERE `battle` = "' . $this->info['id'] . '" AND `id_hod` >= ' . $tmlog['mlog'] . ' AND `vars` LIKE "%' . $u->info['login'] . '%" ORDER BY `id` DESC'
|
|
);
|
|
}
|
|
|
|
$jin = 0;
|
|
$forYou2 = 0;
|
|
if (is_array($spm)) {
|
|
while ($plm = mysql_fetch_array($spm)) {
|
|
if ($jin == 0) {
|
|
$u->info['mlog'] = $plm['id_hod'];
|
|
}
|
|
$jin++;
|
|
$rt = $plm['text'];
|
|
$plm['vars'] = str_replace('^^^^', 'rvnO', $plm['vars']);
|
|
$rt = str_replace(
|
|
'{tm1}', '<span class=\"date {fru}\">' . date('H:i', $plm['time']) . '</span>', $rt
|
|
);
|
|
$rt = str_replace(
|
|
'{tm2}', '<span class=\"date {fru}\">' . date('H:i', $plm['time']) . '</span>', $rt
|
|
);
|
|
$rt = str_replace(
|
|
'{tm3}', '<span class=\"date {fru}\">' . date('d.m.Y H:i', $plm['time']) . '</span>',
|
|
$rt
|
|
);
|
|
$rt = str_replace(
|
|
'{tm4}', '<span class=\"date {fru}\">' . date('d.m.Y H:i', $plm['time']) . '</span>',
|
|
$rt
|
|
);
|
|
$plm['text'] = $rt;
|
|
unset($rt);
|
|
if ($pll < $plm['id']) {
|
|
$pll = $plm['id'];
|
|
}
|
|
$js = 'add_mlog(' . $plm['id'] . ',' . $forYou2 . ',"' . $plm['text'] . '",' . $plm['id_hod'] . ',0,0,"' . str_replace(
|
|
'"',
|
|
'"', $plm['vars']
|
|
) . '");' . $js;
|
|
}
|
|
}
|
|
$js .= 'id_mlog=' . $pll . ';';
|
|
mysql_query(
|
|
'UPDATE `stats` SET `mlog`="' . $u->info['mlog'] . '" WHERE `id` ="' . $u->info['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
return $js;
|
|
}
|
|
//======================
|
|
|
|
//Äîáàâëÿåì â ëîã
|
|
public function add_log($mass)
|
|
{
|
|
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 (rand(2, 10) == 10) {
|
|
$this->get_comment();
|
|
}
|
|
}
|
|
|
|
///Êîììåíòàòîð
|
|
public function get_comment()
|
|
{
|
|
$boycom = [
|
|
'À òàíöóåøü òû ëó÷øå.',
|
|
'À ìû ÷òî, â ïðÿòêè òóò èãðàåì?',
|
|
'À âû ðàçâå ïèíãâèíîâ íèêîãäà íå âèäåëè?',
|
|
'À, âåäü êîãäà-òî, âû áûëè êðàñèâûìè… À òåïåðü? Íó è ðîæè! Æóòü!',
|
|
'À ïîòîì åùå òðóï ïèíàòü áóäóò.',
|
|
'À ÿ â÷åðà íî÷üþ çà ñîñåäÿìè ïîäãëÿäûâàë. Îíè òî÷íî òàê æå êóâûðêàëèñü',
|
|
'À âåäü âû æèâûõ ëþäåé äóáàñèòå...',
|
|
'À âîò ÿ â÷åðà â çîîïàðêå áûë...',
|
|
'À âû â ñòðîéáàòå íå ñëóæèëè?',
|
|
'À âû âèäåëè, ÷òîáû òàê íà óëèöå äåëàëè!?',
|
|
'À âû çíàëè ÷òî ¸æèêè ðàçìíîæàþòñÿ â èíòåðíåòå?',
|
|
'À æèòü-òî, êàê õî÷åòñÿ:',
|
|
'À èç-çà ÷åãî âû ñîáñòâåííî äåð¸òåñü?',
|
|
'À ÷åãî ðæ¸òå, âû åù¸ îñòàëüíûõ íå âèäåëè',
|
|
'À ÷òî ïðîèçîéä¸ò åñëè òû èñïóãàåøñÿ äî ïîëóñìåðòè äâàæäû?!',
|
|
'Áîëüøå òàê íå äåëàé. Òû æå íå ñàäèñò?',
|
|
'Áåç êîììåíòàðèåâ...',
|
|
'Áîëüíî âåäü!',
|
|
'Áûñòðî òû çà ìîíèòîð ñïðÿòàëñÿ!',
|
|
'Âñå õîòÿò ïîïàñòü â ðàé, íî íèêòî íå õî÷åò óìèðàòü!',
|
|
'Â÷åðà ñ òàêîé äåâ÷îíêîé ïîçíàêîìèëñÿ.',
|
|
'Âñåãî 5 ìèíóò çíàêîìû, à äåðóòñÿ, ñëîâíî ñóïðóãè ñ 20-òè ëåòíèì ñòàæåì...',
|
|
'Âñå. ß òàê áîëüøå íå ìîãó.',
|
|
'Â êîíöå êîíöîâ, êòî-òî ïîáåäèò?',
|
|
'Âû ÷åãî, ñ äåðåâà óïàëè?',
|
|
'Âîçÿòñÿ êàê ñîííûå ìóõè... äàâàéòå ÿ âàì ëó÷øå àíåêäîò ðàññêàæó: ...',
|
|
'Âîò âèäèøü, êàê ïîëåçíî ÷èñòèòü çóáû íà íî÷ü?',
|
|
'Âîò âû âñå ðóêàìè ìàõàåòå, à çà âàìè óæå î÷åðåäü',
|
|
'Âîò ïîïàä¸òå âû â ïëåí è âàñ òàì áóäóò äîëãî áèòü. Íî âû íè÷åãî íå ðàññêàæåòå... è íå ïîòîìó, ÷òî âû òàêîé ñòîéêèé, ïðîñòî âû íè÷åãî íå çíàåòå',
|
|
'Âû áû ëó÷øå ïîøëè ïîòðåíèðîâàëèñü!',
|
|
'Âû âñå åùå ðàçìèíàåòåñü? Ïîçîâèòå, êîãäà êîñòè â ìóêó äðóã äðóãó ðàçìèíàòü áóäåòå.',
|
|
'Âû æå áîéöû! Èìåéòå ñîâåñòü!',
|
|
'Ãàñè íåäîóìêà!',
|
|
'Äà, åñëè áû ÿ ñìîã ýòî îñòàíîâèòü, òî ïîëó÷èë áû íîáåëåâñêóþ ïðåìèþ `Çà ìèð` ',
|
|
'Äà êóäà îíè áüþò?!',
|
|
'Äàâàéòå áûñòðåå! Çà âàìè óæå î÷åðåäü îáðàçîâàëàñü.',
|
|
'Äàâàéòå îáîéäåìñÿ ñåãîäíÿ òàéìàóòîì. À? À òî ìíå óæå êîøìàðû ñêîðî áóäóò ñíèòüñÿ.',
|
|
'Äåðóòñÿ êàê äåâ÷îíêè!',
|
|
'Äåòè, ïîñìîòðèòå íàëåâî... Îé!.. Íåò, òóäà ëó÷øå íå ñìîòðåòü.',
|
|
'Åñëè òàê áóäåò ïðîäîëæàòüñÿ, òî ñêîðî ìû çàñíåì!',
|
|
'Åñëè áû ó ìåíÿ áûëî êðåñëî-êà÷àëêà, ÿ áû â í¸ì êà÷àëñÿ...',
|
|
'Åñëè âû ÷òî-òî ñêàçàòü õîòèòå, òî ëó÷øå ìîë÷èòå :)',
|
|
'Æåñòîêîñòü íå ïîðîê.',
|
|
'Æèçíü âíå íàøåãî êëóáà - ýòî ïóñòàÿ òðàòà êèñëîðîäà!!!',
|
|
'Æìè! Äàâè! Êóñàé! Öàðàïàé!',
|
|
'Çà òàêèå áîè íàäî â õàîñ îòïðàâëÿòü!',
|
|
'Çíàåòå îòêóäà â êîìèññèîííîì ìàãàçèíå ñòîëüêî âåùåé? Ýòî ÿ ïîñëå âàøèõ ãóëÿíîê ñîáèðàþ è ñäàþ òóäà. Èíîãäà âìåñòå ñ ÷àñòÿìè òåëà, çàñòðÿâøèìè â íèõ.',
|
|
'Çäåñü ëþäè òàê áëèçêè äðóã ê äðóãó. Ïðîñòî èíà÷å óäàðèòü íåëüçÿ.',
|
|
'È ïðîëèòàÿ êðîâü åùå ïóëüñèðóåò...',
|
|
'Èíâàëèäîâ ðàçâåëîñü...',
|
|
'Êàêîé áîé!!!',
|
|
'Êòî!? Êòî çäåñü?!',
|
|
'Êòî âàñ ýòîìó íàó÷èë?',
|
|
'Êóçíå÷èê, áëèí...',
|
|
'Êóïëþ èìïîðòíûé ïðîèãðûâàòåëü ãðàìïëàñòèíîê.',
|
|
'Ëîøàäüþ õîäè!',
|
|
'Ëó÷øå âðàã, ÷åì äðóã - âðàã.',
|
|
'Ëàäíî, âû òóò ïîêà äðóã äðóãà çà âîëîñû òàñêàéòå, à ÿ ïîéäó, ïîîáåäàþ.',
|
|
'Ìíå âàø áàëåò óæå íàäîåë!',
|
|
'Ìîæåò, íà÷íåòñÿ-òàêè íàñòîÿùèé áîé???',
|
|
'Ìûñëè ëåçóò â ãîëîâó èçíóòðè, à óäàðû ñíàðóæè.',
|
|
'Íó è ãäå âàøè êîðîííûå óäàðû? Ãäå æèâîïèñíûå ïàäåíèÿ ÿ ñïðàøèâàþ!',
|
|
'Íó, íåëüçÿ æå òàê íàîòìàøü ëóïèòü!',
|
|
'Íàäî ðàíüøå áûëî äóìàòü, òåïåðü ñìåðòåëüíî ïîçäíî...',
|
|
'Íà òàêîå çðåëèùå áèëåòû ïðîäàâàòü ìîæíî. Íàðîä óõîõî÷åòñÿ!',
|
|
'Íåò! Íå íàäî äðàêè! À... ëàäíî äåðèòåñü, âñå ðàâíî íå óìååòå.',
|
|
'Íåò, íó äîëæåí áûòü ïîâîä, äîëæåí æå áûòü ïîâîä?',
|
|
'Íåò, ÿ îòêàçûâàþñü ýòî êîììåíòèðîâàòü!',
|
|
'Íå òàêèõ îáëàìûâàëè!',
|
|
'Íó âûïèëè âû ðþìêó, íó äâå... íó ëèòð, íó äâà... òàê çà÷åì æå ïîñëå ýòîãî äðàêó çàòåâàòü?!',
|
|
'Íó è êòî çà ýòîò ïîãðîì ïëàòèòü áóäåò?',
|
|
'Íó è îñêàë ó âàñ. Èç âàøåé óëûáêè êàñòåòû äåëàòü ìîæíî.',
|
|
'Íó, ÷òî æå òû..? Íå ïå÷àëüñÿ. Âûøå ãîëîâó, òàê ïî íåé óäîáíåé ïîïàñòü.',
|
|
'Íè÷åãî... Áëîê òîæå óäàð.',
|
|
'Îáåðíèñü!!!.... Ïîçäíî...',
|
|
'Îãî! Íàó÷èòå ìåíÿ òàê íå äåëàòü.',
|
|
'Îñòîðîæíî! Ñäåëàåøü äûðî÷êó, óæå íå çàïëîìáèðóåøü!',
|
|
'Îíî âàì íàäî???',
|
|
'Îáû÷íîå äåëî...òàì ÷òî-òî îòêëåèëîñü.',
|
|
'Îé, è çàáîëòàëñÿ ÿ ñ âàìè...',
|
|
'Îí æå íå ïðîìàõí¸òñÿ åñëè òû íå îòîéä¸øü!',
|
|
'Ïî-ìîåìó, êîìó-òî ñâåòèò èíâàëèäíîñòü.',
|
|
'Ïîäêèíü åìó ãðàáëè, íà êîòîðûå îí åùå íå íàñòóïàë.',
|
|
'Ïðàâ áûë êîò Ëåîïîëüä, äàâàéòå æèòü äðóæíî?',
|
|
'Ïðè óäàðå â æèâîò íàðóøàåòñÿ êèñëîòíî-ùåëî÷íîé áàëàíñ.',
|
|
'Ïðîâåðü, íå òîð÷èò ëè ó òåáÿ íîæ èç æèâîòà.',
|
|
'Ïåðåñòàíüòå ìíå îðàòü!',
|
|
'Ïîäêèíü åìó ãðàáëè, íà êîòîðûå îí åùå íå íàñòóïàë.',
|
|
'Ïðûãàþò òóò êàê áëîõè... Âñå, ÿ ïîøåë çà äèõëîôîñîì!',
|
|
'Ðàçáóäèòå ìåíÿ êîãäà ýòà ïîðíîãðàôèÿ çàêîí÷èòñÿ...',
|
|
'Ðåáåíîê ñèëüíåå óäàðèë áû!',
|
|
'Ñëàâíî âìàçàë!',
|
|
'Ñëàâíî îíè âåñåëÿòñÿ',
|
|
'Ñìîòðþ âîò íà âàñ, è ñëåçû íàâîðà÷èâàþòñÿ.',
|
|
'Ñíà÷àëà ó÷àòñÿ õîäèòü, à ïîòîì òîëüêî â äðàêó ëåçóò.',
|
|
'Òàê îíè äðóã äðóãó ÷òî-íèáóäü ñëîìàþò.',
|
|
'Òàê òû åìó âñå êîñòè ïåðåëîìàåøü!',
|
|
'Ó ìåíÿ â ïîäúåçäå òî÷íî òàê æå ñîñåäà îòìóäîõàëè',
|
|
'Óáîãèõ ðàçâåëîñü...',
|
|
'Óõ òû, êàêîé ïðûòêèé!',
|
|
'Ôàøèñò!! Íàäî æ, òàê ïî áîëüíîìó ìåñòó âðåçàòü...',
|
|
'Õâàòèò áèòü åãî îá óãîë ìîåé êàáèíêè! Ìíå æå ïîòîì åå ÷èíèòü.',
|
|
'Õóëèãàíû, ïðåêðàòèòå íåìåäëåííî!',
|
|
'Õî÷åøü, ïîäñêàæó, êóäà îí óäàðèò?',
|
|
'Õîðîøî, ÷òî ó ìåíÿ ëîâêîñòè áîëüøå ÷åì ó âàñ âñåõ, à òî á âû è ìåíÿ â èíâàëèäíóþ êîëÿñêó ïîñàäèëè áû.',
|
|
'Õîðîøèé áîé!',
|
|
'Õîðîøèé óäàð!',
|
|
'Õèëÿê-ðàçðÿäíèê!',
|
|
'×òî òû åãî çà âîëîñû ñõâàòèë?! Îòïóñòè íåìåäëåííî!',
|
|
'Ùàñ ÿ âàñ íàñòèãíó, âîò òîãäà ìû è ïîõîõî÷åì',
|
|
'Ýòî áûëà êàêàÿ-òî íåèçâåñòíàÿ ìíå òåõíèêà...',
|
|
'Ýòî æå ïðîòèâíèê, à íå ãëèíà! Õâàòèò ìÿòüñÿ!',
|
|
'Ýòî íå áîé, ýòî èçäåâàòåëüñêîå èçáèåíèå.',
|
|
'Ýòî ïîóáàâèò ñïåñè',
|
|
'Ýòî è áûë òâîé ïëàí `Á` ?',
|
|
'Ýòî áûëà êàêàÿ-òî íåèçâåñòíàÿ ìíå òåõíèêà...',
|
|
'ß æå ïðåäóïðåæäàë, - áóäåò áîëüíî.',
|
|
'ß íå ñòðàäàþ áåçóìèåì. ß íàñëàæäàþñü èì êàæäóþ ìèíóòó :)',
|
|
'ß êðàñèâûé, ÿ ñèëüíûé, ÿ óìíûé, ÿ äîáðûé. À âîò âû? Âû ñåáÿ-òî âèäåëè?!',
|
|
'ß òîæå óìåþ äðàòüñÿ, íî íå áóäó...',
|
|
'(òðåâîæíî îçèðàÿñü) ÿ âàì ïî ñåêðåòó ñêàæó... çà âàìè íàáëþäàþò!',
|
|
'<âûðåçàíî öåíçóðîé> ïîñëå áîÿ ÿ ýòèõ <âûðåçàíî öåíçóðîé> îáîèõ â <âûðåçàíî öåíçóðîé> è <âûðåçàíî öåíçóðîé>',
|
|
'<âûðåçàíî öåíçóðîé> êàðàòèñòû ôèãîâû',
|
|
];
|
|
if (rand(1, 12) === 1) {
|
|
$txt = '{tm1} <i>Êîììåíòàòîð: ' . $boycom[rand(0, count($boycom) - 1)] . '</i>';
|
|
|
|
$vLog = 'time1=' . time() . '';
|
|
$mas1 = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => '',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$mas1['text'] = $txt;
|
|
$this->add_log($mas1);
|
|
} else {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
//Ðàñ÷åò òèïà óäàðà îò îðóæèÿ
|
|
public function weaponTx($item)
|
|
{
|
|
global $u;
|
|
$tp = 0;
|
|
if (!isset($item['id'])) {
|
|
$i = 1;
|
|
while ($i <= 4) {
|
|
$itm['tya' . $i] = 1;
|
|
$i++;
|
|
}
|
|
}
|
|
$itm = $u->lookStats($item['data']);
|
|
$t[0]['z'] = 0;
|
|
$t[0]['t'] = 0;
|
|
//êîëÿùèé óðîí
|
|
$t[1]['z'] = round(0 + $itm['tya1']);
|
|
$t[1]['t'] = 1;
|
|
//ðóáÿùèé óðîí
|
|
$t[2]['z'] = round(0 + $itm['tya2']);
|
|
$t[2]['t'] = 2;
|
|
//äðîáÿùèé óðîí
|
|
$t[3]['z'] = round(0 + $itm['tya3']);
|
|
$t[3]['t'] = 3;
|
|
//ðåæóùèé óðîí
|
|
$t[4]['z'] = round(0 + $itm['tya4']);
|
|
$t[4]['t'] = 4;
|
|
//óðîí îãíÿ
|
|
$t[5]['z'] = round(0 + $itm['tym1']);
|
|
$t[5]['t'] = 5;
|
|
//óðîí âîçäóõà
|
|
$t[6]['z'] = round(0 + $itm['tym2']);
|
|
$t[6]['t'] = 6;
|
|
//óðîí âîäû
|
|
$t[7]['z'] = round(0 + $itm['tym3']);
|
|
$t[7]['t'] = 7;
|
|
//óðîí çåìëè
|
|
$t[8]['z'] = round(0 + $itm['tym4']);
|
|
$t[8]['t'] = 8;
|
|
//óðîí ñâåòà
|
|
$t[9]['z'] = round(0 + $itm['tym5']);
|
|
$t[9]['t'] = 9;
|
|
//óðîí òüìû
|
|
$t[10]['z'] = round(0 + $itm['tym6']);
|
|
$t[10]['t'] = 10;
|
|
//óðîí ñåðîé ìàãèåé
|
|
$t[11]['z'] = round(0 + $itm['tym7']);
|
|
$t[11]['t'] = 11;
|
|
|
|
$tpt = $t[0]['z'];
|
|
$tpmin = $t[0];
|
|
$tpmax = $t[0];
|
|
$i = 1;
|
|
|
|
while ($i <= 11) {
|
|
if ($t[$i]['z'] > $tpt) {
|
|
$tpt = $t[$i]['z'];
|
|
$tpmax = $t[$i];
|
|
$ii = $i;
|
|
}
|
|
$i++;
|
|
}
|
|
$t[$ii]['z'] = 0;
|
|
|
|
$tpt = $t[0]['z'];
|
|
$i = 1;
|
|
while ($i <= 11) {
|
|
if ($t[$i]['z'] > $tpt) {
|
|
$tpt = $t[$i]['z'];
|
|
$tpmin = $t[$i];
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$setclass = rand(1, 100);
|
|
|
|
if ($setclass > $tpmax['z']) {
|
|
$tp = $tpmin['t'];
|
|
} else {
|
|
$tp = $tpmax['t'];
|
|
}
|
|
|
|
return $tp;
|
|
}
|
|
|
|
|
|
//Ðàñ÷åò óðîíà îò îðóæèÿ
|
|
public function weaponAt($item, $st, $x): int
|
|
{
|
|
$tp = 0;
|
|
$tp20 = 0;
|
|
if (isset($item['id'])) {
|
|
$itm = $this->lookStats($item['data']);
|
|
//íà÷èíàåì ðàñ÷åò óðîíà
|
|
$min = $itm['sv_yron_min'] + $itm['yron_min'] + $st['minAtack'];
|
|
$max = $itm['sv_yron_max'] + $itm['yron_max'] + $st['maxAtack'];
|
|
if ($x != 0) {
|
|
/*
|
|
Êîëþùèé - 60% Ñèëû è 40% Ëîâêîñòè.
|
|
Ðóáÿùèé - 70% Ñèëû 20% Ëîâêîñòè è 20% Èíòóèöèè.
|
|
Äðîáÿùèé - 100% Ñèëû.
|
|
Ðåæóùèé - 60% Ñèëû è 40% Èíòóèöèè.
|
|
*/
|
|
//Òèï óðîíà: 0 - íåò óðîíà, 1 - êîëþùèé, 2 - ðóáÿùèé, 3 - äðîáÿùèé, 4 - ðåæóùèé, 5 - îãîíü, 6 - âîçäóõ, 7 - âîäà, 8 - çåìëÿ, 9 - ñâåò, 10 - òüìà, 11 - ñåðàÿ
|
|
if ($x == 1) {
|
|
//êîëþùèé
|
|
$wst = $st['s2'] * 1;
|
|
$min += 5 + (ceil($wst * 1.4) / 1.25) + $st['minAtack'];
|
|
$max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
|
|
$tp20 = 1;
|
|
} elseif ($x == 2) {
|
|
//ðóáÿùèé
|
|
$wst = $st['s1'] * 0.75;
|
|
$min += 5 + (ceil($wst * 1.4) / 1) + $st['minAtack'];
|
|
$max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
|
|
$tp20 = 2;
|
|
} elseif ($x == 3) {
|
|
//äðîáÿùèé
|
|
$wst = $st['s4'] * 1.5;
|
|
$min += 5 + (ceil($wst * 1.4) / 1.25) + $st['minAtack'];
|
|
$max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
|
|
$tp20 = 3;
|
|
} elseif ($x == 4) {
|
|
//ðåæóùèé
|
|
$wst = $st['s3'] * 1;
|
|
$min += 5 + (ceil($wst * 1.4) / 1.25) + $st['minAtack'];
|
|
$max += 7 + (ceil(0.4 + $min / 0.9) / 1.25) + $st['maxAtack'];
|
|
$tp20 = 4;
|
|
} elseif ($x >= 5 && $x <= 22) {
|
|
//óðîí ìàãèè è ìàãèè ñòèõèé
|
|
$wst = $st['s1'] * 0.01 + $st['s2'] * 0.01 + $st['s3'] * 0.01 + $st['s5'] * 0.06;
|
|
$min += 3 + (ceil($wst * 1.4) / 2.25) + $st['minAtack'];
|
|
$max += 5 + (ceil(0.4 + $min / 0.9) / 2.25) + $st['maxAtack'];
|
|
$tp20 = 5;
|
|
}
|
|
|
|
$wst = ($st['s1'] * 0.02 + $st['s2'] * 0.02 + $st['s3'] * 0.05);
|
|
$min1 = -2 + ceil($wst * 1.4) / 1.25;
|
|
$max1 = 4 + ceil(0.4 + $min1 / 0.9) / 1.25;
|
|
|
|
$min = round(($min + $min1));
|
|
}
|
|
$tp = rand(($min + $max) / 3.5, (($min + $max) / 3.5 + (($min + $max) / 3.5) / 100 * 7));
|
|
}
|
|
return $tp;
|
|
}
|
|
|
|
//Ðàñ÷åò óðîíà îò îðóæèÿ
|
|
public function weaponAt22($item, $st): array
|
|
{
|
|
$min = 0;
|
|
$max = 0;
|
|
if (isset($item['id'])) {
|
|
$itm = $this->lookStats($item['data']);
|
|
//íà÷èíàåì ðàñ÷åò óðîíà
|
|
$min = $itm['sv_yron_min'] + $itm['yron_min'] + $st['minAtack'];
|
|
$max = $itm['sv_yron_max'] + $itm['yron_max'] + $st['maxAtack'];
|
|
}
|
|
return [$min, $max];
|
|
}
|
|
|
|
|
|
//Ðàñ÷åò çàùèòû
|
|
public function zago($v): float
|
|
{
|
|
if ($v > 1700) {
|
|
$v = 1700;
|
|
}
|
|
return round((1 - (pow(0.5, ($v / 399.51)))) * 100, 2);
|
|
}
|
|
|
|
//Ðàñ÷åò çàùèòû (ìàãèÿ)
|
|
public function zmgo($v)
|
|
{
|
|
return (1 - (pow(0.5, ($v / 250)))) * 100;
|
|
}
|
|
|
|
|
|
public function yrn(
|
|
$st1,
|
|
$st2,
|
|
$u1,
|
|
$u2,
|
|
$level,
|
|
$level2 = null,
|
|
$type,
|
|
$min_yron,
|
|
$max_yron,
|
|
$min_bron = null,
|
|
$max_bron = null,
|
|
$vladenie,
|
|
$power_yron,
|
|
$power_krit,
|
|
$zashita,
|
|
$ozashita = null,
|
|
$proboi,
|
|
$weapom_damage,
|
|
$weapom_min,
|
|
$weapom_max,
|
|
$za_proc = null,
|
|
$zm_proc = null,
|
|
$zashitam = null, // pzm òóò!
|
|
$ozashitam = null,
|
|
$wp_type,
|
|
$witm
|
|
): array {
|
|
global $u;
|
|
|
|
//Ïîïðàâêà
|
|
if ($zashita < 1) {
|
|
$zashita = 1;
|
|
}
|
|
|
|
if ($min_yron < 1) {
|
|
$min_yron = 1;
|
|
}
|
|
|
|
if ($max_yron < 1) {
|
|
$max_yron = 1;
|
|
}
|
|
|
|
if (!isset($type) || $type == '') {
|
|
$type = 12;
|
|
}
|
|
|
|
//Ïàðàìåòðû äëÿ âîçâðâàòà
|
|
$r = ['min' => 0, 'max' => 0, 'type' => $type];
|
|
$p = [
|
|
'Y' => 0,
|
|
'B' => [0 => 0, 1 => 0, 'rnd' => false],
|
|
'L' => $level,
|
|
'W' => [$weapom_min, $weapom_max, 'rnd' => false], //ìèíèìàëüíûé óðîí //ìàêñèìàëüíûé óðîí äîáàâî÷íûé
|
|
'U' => $vladenie, //âëàäåíèå îðóæèåì
|
|
'M' => $power_yron, //ìîùíîñòü óðîíà
|
|
'K' => $power_krit, //ìîùíîñòü êðèòà
|
|
'S' => 0, //âëèÿíèå ñòàòîâ íà ïðîô.óðîí
|
|
'T' => 1, //Êô. îðóæèÿ
|
|
'iT' => 1, //Èòîãîâûé äîï. Êô. îðóæèÿ
|
|
/*
|
|
(S) - âëèÿíèå íàøèõ ñòàòîâ íà ïðîôèëüíûé óðîí
|
|
Êîëþùèé: S = Ñèëà * 0,3 + Ëîâêîñòü * 0,7
|
|
Ðóáÿùèé: S = Ñèëà * 0,5 + Ëîâêîñòü * 0,25 + Èíòóèöèÿ * 0,25
|
|
Äðîáÿùèé: S = Ñèëà * 1
|
|
Ðåæóùèé: S = Ñèëà * 0,3 + Èíòóèöèÿ * 0,7
|
|
*/
|
|
];
|
|
|
|
$witmdata = $this->lookStats($witm['data']);
|
|
|
|
//Ðàñ÷åò òèïà óðîíà
|
|
|
|
if ($wp_type == 18) {
|
|
$r['type'] = 1;
|
|
} elseif ($wp_type == 19) {
|
|
$r['type'] = 2;
|
|
} elseif ($wp_type == 20) {
|
|
$r['type'] = 3;
|
|
} elseif ($wp_type == 21) {
|
|
$r['type'] = 4;
|
|
} else {
|
|
$r['type'] = 0;
|
|
}
|
|
//ÒÓÒ Ïðîôèëüíûé óðîí
|
|
//êîëþùèé
|
|
if ($r['type'] == 1) {
|
|
$p['S'] = $st1['s1'] * 0.25 + $st1['s2'] * 0.75;
|
|
$p['U'] = $st1['a1'] * 1.00; //êèíæàëû
|
|
//ðóáÿùèé
|
|
} elseif ($r['type'] == 2) {
|
|
$p['S'] = $st1['s1'] * 1.20;
|
|
$p['U'] = $st1['a2'] * 1.00; //òîïîðû
|
|
//äðîáÿùèé
|
|
} elseif ($r['type'] == 3) {
|
|
$p['S'] = $st1['s1'] * 0.5 + $st1['s4'] * 1.00;
|
|
$p['U'] = $st1['a3'] * 1.00; //äóáèíû
|
|
//ðåæóùèé
|
|
} elseif ($r['type'] == 4) {
|
|
$p['S'] = $st1['s3'] * 1.00;
|
|
$p['U'] = $st1['a4'] * 1.00; //ìå÷è
|
|
//Ìàãèå÷åñêè
|
|
} else {
|
|
$p['S'] = 0;
|
|
$p['U'] = 0; // äëÿ êóëàêà(íóæíî ïåðåïèñûâàòü
|
|
}
|
|
|
|
$r['bron']['rnd'] = rand($r['bron'][0], $r['bron'][1]);
|
|
|
|
//Îñòàëüíûå ðàñ÷åòû (êîýôèöåíò)
|
|
$p['B'][0] = 2 + $level + $st1['s1'] - round($st1['s1'] / 5);
|
|
$p['B'][1] = $p['B'][0] + 3;
|
|
$p['B']['rnd'] = rand($p['B'][0], $p['B'][1]);
|
|
$p['W']['rnd'] = rand($p['W'][0], $p['W'][1]);
|
|
|
|
//Îáû÷íûé óðîí
|
|
if ($r['type'] == 12) {
|
|
$r['min'] = ($p['B'][0] + $weapom_min) * $p['T'] * (1 + $p['M'] / 100);
|
|
$r['max'] = ($p['B'][1] + $weapom_max) * $p['T'] * (1 + $p['M'] / 100);
|
|
} else {
|
|
$r['min'] = (($p['B'][0] + $p['S'] * 2 + $weapom_min * 2 + $p['U'] * 2) * $p['T']) * (1 + $p['M'] / 100);
|
|
$r['max'] = (($p['B'][1] + $p['S'] * 2 + $weapom_max * 2 + $p['U'] * 2) * $p['T']) * (1 + $p['M'] / 100);
|
|
}
|
|
|
|
$r['bRND'] = $p['B']['rnd'];
|
|
$r['Kmin'] = ceil((2 + (0 + $p['K'] / 100)) * $r['min']);
|
|
$r['Kmax'] = ceil((2 + (0 + $p['K'] / 100)) * $r['max']);
|
|
|
|
//Ðàñ÷åò áðîíè
|
|
//äëÿ îáû÷íîãî
|
|
if ($r['type'] < 5 || $r['type'] == 12) {
|
|
$r['min_abron'] = round($r['min'] * 0.05);
|
|
$r['max_abron'] = round($r['max'] * 0.05);
|
|
if ($proboi != 0) {
|
|
$r['bron']['rndold'] = $r['bron']['rnd'];
|
|
$r['bron']['rnd'] = 0;
|
|
}
|
|
$r['Kmin'] -= $r['bron']['rnd'] * 2; //áûëî óìíîæèòü íà 2
|
|
$r['Kmax'] -= $r['bron']['rnd'] * 2; //áûëî óìíîæèòü íà 2
|
|
$r['min'] -= $r['bron']['rnd']; //íå áûëî äåëåíèÿ íè íà ÷î.
|
|
$r['max'] -= $r['bron']['rnd']; //íå áûëî äåëåíèÿ íè íà ÷î.
|
|
}
|
|
|
|
//Ðàñ÷åò çàùèòû (íå áîëåå 80%)
|
|
if ($r['type'] < 5 || $r['type'] == 12) {
|
|
$r['min'] = round($r['min'] / 100 * (100 - $this->zago($st2['za'])));
|
|
$r['max'] = round($r['max'] / 100 * (100 - $this->zago($st2['za'])));
|
|
$r['Kmin'] = round($r['Kmin'] / 100 * (100 - $this->zago($st2['za'])));
|
|
$r['Kmax'] = round($r['Kmax'] / 100 * (100 - $this->zago($st2['za'])));
|
|
} else {
|
|
$r['min'] = round($r['min'] / 100 * (100 - $this->zmgo($st2['zm'])));
|
|
$r['max'] = round($r['max'] / 100 * (100 - $this->zmgo($st2['zm'])));
|
|
$r['Kmin'] = round($r['Kmin'] / 100 * (100 - $this->zmgo($st2['zm'])));
|
|
$r['Kmax'] = round($r['Kmax'] / 100 * (100 - $this->zmgo($st2['zm'])));
|
|
}
|
|
|
|
$r['min'] = round($r['min']);
|
|
$r['max'] = round($r['max']);
|
|
$r['Kmin'] = round($r['Kmin']);
|
|
$r['Kmax'] = round($r['Kmax']);
|
|
|
|
$min_yrn = 0; //%
|
|
|
|
if ($u1['clone'] > 0) {
|
|
$min_yrn = 75;
|
|
}
|
|
|
|
$r['min'] -= floor($r['min'] / 100 * $min_yrn);
|
|
$r['max'] -= floor($r['max'] / 100 * $min_yrn);
|
|
$r['Kmin'] -= floor($r['Kmin'] / 100 * ($min_yrn));
|
|
$r['Kmax'] -= floor($r['Kmax'] / 100 * ($min_yrn));
|
|
$r['min_'] -= floor($r['min_'] / 100 * $min_yrn);
|
|
$r['max_'] -= floor($r['max_'] / 100 * $min_yrn);
|
|
$r['Kmin_'] -= floor($r['Kmin_'] / 100 * ($min_yrn));
|
|
$r['Kmax_'] -= floor($r['Kmax_'] / 100 * ($min_yrn));
|
|
|
|
$defd = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT SUM(`vals`) FROM `battle_actions` WHERE `btl` = "' . $this->info['id'] . '" AND `vars` = "use_defteam' . $u2['team'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if ($defd[0] > 100) {
|
|
$defd[0] = 100;
|
|
}
|
|
$defd = 0 + $defd[0];
|
|
$powd = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT SUM(`vals`) FROM `battle_actions` WHERE `btl` = "' . $this->info['id'] . '" AND `vars` = "use_powteam' . $u1['team'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if ($powd[0] > 100) {
|
|
$powd[0] = 100;
|
|
}
|
|
$powd = 0 + $powd[0];
|
|
$defd = $defd - $powd;
|
|
|
|
$r['min'] -= floor($defd);
|
|
$r['max'] -= floor($defd);
|
|
$r['Kmin'] -= floor($defd * 2);
|
|
$r['Kmax'] -= floor($defd * 2);
|
|
$r['min_'] -= floor($defd);
|
|
$r['max_'] -= floor($defd);
|
|
$r['Kmin_'] -= floor($defd * 2);
|
|
$r['Kmax_'] -= floor($defd * 2);
|
|
$r['min'] += $st1['maxAtack'];
|
|
$r['max'] += $st1['maxAtack'];
|
|
$r['Kmin'] += $st1['maxAtack'] * 2;
|
|
$r['Kmin'] += $st1['maxAtack'] * 2;
|
|
|
|
if ($r['min'] < 1) {
|
|
$r['min'] = 1;
|
|
}
|
|
if ($r['max'] < 1) {
|
|
$r['max'] = 1;
|
|
}
|
|
if ($r['Kmin'] < 2) {
|
|
$r['Kmin'] = 2;
|
|
}
|
|
if ($r['Kmax'] < 2) {
|
|
$r['Kmax'] = 2;
|
|
}
|
|
if ($r['Kmin_'] < 2) {
|
|
$r['Kmin_'] = 2;
|
|
}
|
|
if ($r['Kmin_'] < 2) {
|
|
$r['Kmax_'] = 2;
|
|
}
|
|
|
|
$r['m_k'] = $r['Kmax'];
|
|
|
|
return $r;
|
|
}
|
|
|
|
public $pr_not_use = [], $pr_reset = [], $pr_yrn = false, $prnt = [];
|
|
public $del_val = [], $re_pd = [];
|
|
|
|
public function delPriem(
|
|
$pl,
|
|
$u1,
|
|
$t = 1,
|
|
$u2 = false,
|
|
$rznm = 'Î÷èñòèòüñÿ Êðîâüþ',
|
|
$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'] . '';
|
|
}
|
|
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'] . '';
|
|
if (isset($u2['id'])) {
|
|
$vLog .= '||s2=' . $u2['sex'] . '||t2=' . $u2['team'] . '||login2=' . $u2['login'] . '';
|
|
}
|
|
$mas1 = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => '',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
if ($t == 4) {
|
|
$mas1['id_hod']++;
|
|
$t = 2;
|
|
}
|
|
if ($t == 1) {
|
|
$mas1['id_hod']++;
|
|
if ($pl['priem']['file'] != '0') {
|
|
if (file_exists('../../_incl_data/class/priems/' . $pl['priem']['file'] . '.php')) {
|
|
require('priems/' . $pl['priem']['file'] . '.php');
|
|
}
|
|
} elseif ($pl['priem']['file3'] != '0') {
|
|
if (file_exists('../../_incl_data/class/priems/' . $pl['priem']['file3'] . '.php')) {
|
|
require('priems/' . $pl['priem']['file3'] . '.php');
|
|
}
|
|
} else {
|
|
$mas1['text'] = '{tm1} {u1} {1x16x0} ïðèåì "<strong>' . $pl['name'] . '</strong>".';
|
|
$this->del_val['eff'][$pl['priem']['id']] = true;
|
|
}
|
|
} elseif ($t == 2) {
|
|
$mas1['text'] = '{tm1} Ó ïåðñîíàæà {u1} çàêîí÷èëîñü äåéñòâèå ìàãèè "<strong>' . $pl['name'] . '</strong>".';
|
|
} elseif ($t == 99) {
|
|
$mas1['text'] = '{u1} Ñíÿë ýôåêò "<strong>' . $pl['name'] . '</strong>" ñ ïîìîùüþ <strong>' . $rznm . '</strong> .';
|
|
} else {
|
|
if ($t == 100) {
|
|
$mas1['id_hod']++;
|
|
}
|
|
$mas1['text'] = '{tm1} Çàêîí÷èëîñü äåéñòâèå ýôôåêòà "<strong>' . $pl['name'] . '</strong>" äëÿ {u1}.';
|
|
}
|
|
if ($pl['priem']['id'] != 24) {
|
|
$this->add_log($mas1);
|
|
}
|
|
$this->stats[$this->uids[$pl['uid']]] = $u->getStats($pl['uid'], 0, 0, false, false, true);
|
|
}
|
|
|
|
//Ðàçáèðàåì ìàññèâ ñî ñòàòàìè
|
|
public function lookStats($m): array
|
|
{
|
|
$ist = [];
|
|
$di = explode('|', $m);
|
|
$i = 0;
|
|
$de = false;
|
|
while ($i < count($di)) {
|
|
$de = explode('=', $di[$i]);
|
|
$ist[$de[0]] = $de[1];
|
|
$i++;
|
|
}
|
|
return $ist;
|
|
}
|
|
|
|
//Ðàñ÷åò ìô. (íîâàÿ)
|
|
public function form_mf($u, $au): float
|
|
{
|
|
$v = $u * 5.1 - $au * 5.1;
|
|
if ($v < 0) {
|
|
$v = 0;
|
|
}
|
|
$r = (1 - (pow(99 / 100, (($v) / 100)))) * 100;
|
|
return round($r);
|
|
}
|
|
|
|
//Ðàñ÷åò ÌÔ
|
|
public function mfs($type, $mf, $lvl1, $lvl2): int
|
|
{
|
|
$rval = 0;
|
|
switch ($type) {
|
|
case 1:
|
|
//Êðèò
|
|
if ($mf['amf'] < 0) {
|
|
$mf['amf'] = 0;
|
|
}
|
|
if ($mf['mf'] < 0) {
|
|
$mf['mf'] = 0;
|
|
}
|
|
if ($mf['mf'] > $mf['smf']) {
|
|
$rval = 100 - floor(((($mf['smf']) / ($mf['mf'] + 1)) * 100));
|
|
}
|
|
|
|
if ($rval < 1) {
|
|
$rval = 0;
|
|
}
|
|
if ($rval > 75) {
|
|
$rval = 75;
|
|
}
|
|
if ($mf['amf'] >= 1) {
|
|
if ($mf['amf'] > 100) {
|
|
$mf['amf'] = 100;
|
|
}
|
|
if (($mf['amf'] * 100) >= mt_rand(1, 10000)) {
|
|
$rval = 100;
|
|
}
|
|
}
|
|
break;
|
|
case 2:
|
|
if ($mf['mf'] < 0) {
|
|
$mf['mf'] = 0;
|
|
}
|
|
if ($mf['amf'] < 0) {
|
|
$mf['amf'] = 0;
|
|
}
|
|
if ($mf['smf'] < 0) {
|
|
$mf['smf'] = 0;
|
|
}
|
|
if ($mf['asmf'] < 0) {
|
|
$mf['asmf'] = 0;
|
|
}
|
|
if ($mf['mf'] > $mf['smf']) {
|
|
$rval = 100 - floor(((($mf['smf']) / ($mf['mf'] + 1)) * 100)); //2.5
|
|
}
|
|
if ($rval < 1) {
|
|
$rval = 0;
|
|
}
|
|
if ($rval > 75) {
|
|
$rval = 75;
|
|
}
|
|
if ($mf['asmf'] >= 0) {
|
|
if ($mf['asmf'] > 100) {
|
|
$mf['asmf'] = 100;
|
|
}
|
|
if ($mf['asmf'] >= rand(1, 100)) {
|
|
$rval = 0;
|
|
}
|
|
}
|
|
if ($mf['amf'] >= 0) {
|
|
if ($mf['amf'] > 100) {
|
|
$mf['amf'] = 100;
|
|
}
|
|
if ($mf['amf'] >= rand(1, 100)) {
|
|
$rval = 100;
|
|
}
|
|
}
|
|
break;
|
|
case 3:
|
|
if ($mf[1] < 1) {
|
|
$mf[1] = 1;
|
|
}
|
|
if ($mf[2] < 1) {
|
|
$mf[2] = 1;
|
|
}
|
|
$rval = $mf[1] - $mf[2] / 2;
|
|
if ($rval > 75) {
|
|
$rval = 75;
|
|
}
|
|
if ($rval < 1) {
|
|
$rval = 1;
|
|
}
|
|
break;
|
|
case 4:
|
|
$mf = round($mf * 0.6);
|
|
if ($mf < 1) {
|
|
$mf = 0;
|
|
}
|
|
if ($mf > 100) {
|
|
$mf = 100;
|
|
}
|
|
$rval = min($mf, 100); //ïðîáîé áðîíè
|
|
break;
|
|
case 5:
|
|
if ($mf < 1) {
|
|
$mf = 0;
|
|
}
|
|
$rval = min($mf, 85); //áëîê ùèòîì
|
|
break;
|
|
case 6:
|
|
//Êîíòðóäàð
|
|
if ($mf['a'] > 0) {
|
|
if ($mf['b'] > 0) {
|
|
$rval = round($mf['a'] - ($mf['b'] / 2));
|
|
} else {
|
|
$rval = $mf['a'];
|
|
}
|
|
}
|
|
if ($rval < 1) {
|
|
$rval = 0;
|
|
}
|
|
if ($rval > 75) {
|
|
$rval = 75;
|
|
}
|
|
break;
|
|
}
|
|
return $this->get_chanse($rval) ? 1 : 0;
|
|
}
|
|
|
|
public function dodge($a, $b): bool
|
|
{
|
|
$i = 0;
|
|
$arr = []; //ìàññèâ äëÿ çàïèñè óíèêàëüíûõ ñëó÷àéíûõ ÷èñåë
|
|
while ($i < ($b - $a)) {
|
|
while (in_array($rand, $arr)) {
|
|
$rand = mt_rand(1, 100);
|
|
}
|
|
$arr[] = $rand;
|
|
$i++;
|
|
}
|
|
$n = mt_rand(1, 100);
|
|
return (bool)array_search($n, $arr);
|
|
}
|
|
|
|
public function get_chanse($percent): bool
|
|
{
|
|
if ($percent >= 100) {
|
|
$percent = 100;
|
|
} elseif ($percent == 0) {
|
|
$percent = 0;
|
|
}
|
|
return $this->dodge(1, $percent);
|
|
}
|
|
|
|
//Ñìåíà ïðîòèâíèêà
|
|
public function smena($uid, $auto = false, $lastdie = false)
|
|
{
|
|
global $u;
|
|
if ((!$auto && $u->info['smena'] > 0) || $auto) {
|
|
if ($this->stats[$this->uids[$u->info['id']]]['hpNow'] >= 1) {
|
|
if (isset($this->uids[$uid]) && $uid != $u->info['id'] && $this->users[$this->uids[$uid]]['team'] != $this->users[$this->uids[$u->info['id']]]['team']) {
|
|
if (!isset($this->ga[$u->info['id']][$uid]) || $lastdie) {
|
|
if (ceil($this->stats[$this->uids[$uid]]['hpNow']) >= 1) {
|
|
//ìåíÿåì ïðîòèâíèêà
|
|
if (!$auto) {
|
|
$u->info['smena']--;
|
|
}
|
|
$upd = mysql_query(
|
|
'UPDATE `stats` SET `enemy` = "' . $uid . '",`smena` = "' . $u->info['smena'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1'
|
|
);
|
|
$u->info['enemy'] = $uid;
|
|
$this->users[$this->uids[$uid]]['smena'] = $u->info['smena'];
|
|
$this->users[$this->uids[$u->info['id']]]['enemy'] = $uid;
|
|
return 1;
|
|
} else {
|
|
return 'Íåëüçÿ ñìåíèòü, ïðîòèâíèê óæå ìåðòâ';
|
|
}
|
|
} else {
|
|
return 'Íåëüçÿ ñìåíèòü íà âûáðàííóþ öåëü!';
|
|
}
|
|
} else {
|
|
return 'Íåëüçÿ ñìåíèòü íà âûáðàííóþ öåëü []';
|
|
}
|
|
} else {
|
|
return 'Äëÿ âàñ ïîåäèíîê çàêîí÷åí, îæèäàéòå ïîêà çàâåðøàò äðóãèå...';
|
|
}
|
|
} else {
|
|
return 'Ó âàñ çàêîí÷èëèñü ñìåíû ïðîòèâíèêà';
|
|
}
|
|
}
|
|
|
|
//àâòî-ñìåíà ïðîòèâíèêà //ÒÓÒ áàã âûáîðà
|
|
public function autoSmena()
|
|
{
|
|
global $u;
|
|
$ms = [];
|
|
$ms_all = [];
|
|
$ms_ansf = [];
|
|
$i = 0;
|
|
$j = 0;
|
|
$z = 0;
|
|
while ($i < count($this->users)) {
|
|
if (isset($this->users[$i]) && $this->users[$i]['id'] != $u->info['id'] && $this->users[$i]['team'] != $u->info['team'] && $this->stats[$i]['hpNow'] > 0 && -($u->info['enemy']) != $this->users[$i]['id']) {
|
|
if (!isset($this->ga[$u->info['id']][$this->users[$i]['id']])) {
|
|
$ms[$j] = $this->users[$i]['id'];
|
|
$j++;
|
|
}
|
|
if (!isset($this->uids[(-($u->info['enemy']))])) {
|
|
$ms_all[] = $this->users[$i]['id'];
|
|
}
|
|
if (isset($this->ga[$this->users[$i]['id']][$u->info['id']])) {
|
|
$ms_ansf[$z] = $this->users[$i]['id'];
|
|
$z++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
$msh = [];
|
|
if ($j == 0 && $z == 0) {
|
|
$enemydie = 0;
|
|
if (isset($this->stats[$this->uids[$u->info['enemy']]])) {
|
|
$u->info['enemy'] = 0;
|
|
$enemydie = 1;
|
|
}
|
|
if ((!isset($this->uids[(-($u->info['enemy']))]) || $this->stats[$this->uids[(-($u->info['enemy']))]]['hpNow'] < 1) && ($u->info['enemy'] < 0 || $enemydie == 1)) {
|
|
$i = 0;
|
|
$j = 0;
|
|
while ($i < count($this->users)) {
|
|
if (isset($this->users[$i]) && $this->users[$i]['id'] != $u->info['id'] && $this->users[$i]['team'] != $u->info['team'] && $this->stats[$i]['hpNow'] >= 1 && -($u->info['enemy']) != $this->users[$i]['id']) {
|
|
$ms[$j] = $this->users[$i]['id'];
|
|
$msh[$ms[$j]] = true;
|
|
$j++;
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
$ms = $ms[rand(0, $j - 1)];
|
|
$ms_ansf = $ms_ansf[rand(0, $z - 1)];
|
|
if ($z > 0) {
|
|
$this->smena($ms_ansf, true);
|
|
} elseif ($j > 0) {
|
|
if (isset($msh[$ms])) {
|
|
$this->smena($ms, true, true);
|
|
} else {
|
|
$this->smena($ms, true);
|
|
}
|
|
} else {
|
|
if ($u->info['enemy'] < 0) {
|
|
$smnr5 = $this->smena(-($u->info['enemy']), true);
|
|
unset($smnr5);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Äåéñòâèÿ áîòà (àòàêà)
|
|
public function botAtack($uid, $pl, $tp)
|
|
{
|
|
$test_atack = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `battle_act` WHERE `battle` = "' . $this->info['id'] . '" AND ((
|
|
`uid1` = "' . $pl . '" AND `uid2` = "' . $uid . '"
|
|
) OR (
|
|
`uid2` = "' . $pl . '" AND `uid1` = "' . $uid . '"
|
|
)) LIMIT 1'
|
|
)
|
|
);
|
|
|
|
if ($tp == 1 && !isset($test_atack['id'])) {
|
|
$test_uid = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $uid . '" AND `hpNow` >= 1 LIMIT 1')
|
|
);
|
|
$test_pl = mysql_fetch_array(
|
|
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);
|
|
$b = rand(1, 5);
|
|
$d = mysql_query(
|
|
'INSERT INTO `battle_act` (`battle`,`time`,`uid1`,`uid2`,`a1`,`b1`) VALUES ("' . $this->info['id'] . '","' . time(
|
|
) . '","' . $pl . '","' . $uid . '","' . $a . '","' . $b . '")'
|
|
);
|
|
}
|
|
} elseif ($tp == 2) {
|
|
//áîò îòâå÷àåò íà óäàð
|
|
$test_uid = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $uid . '" AND `hpNow` >= 1 LIMIT 1')
|
|
);
|
|
$test_pl = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `stats` WHERE `id` = "' . $pl['uid2'] . '" AND `hpNow` >= 1 LIMIT 1')
|
|
);
|
|
if (isset($test_uid['id']) && isset($test_pl['id']) && $test_uid['id'] != $test_pl['id']) {
|
|
$bot = $this->users[$this->uids[$pl['uid2']]];
|
|
$na = ['id' => 0, 'a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0], 'b' => 0];
|
|
$a222 = rand(1, 5) . '_' . rand(1, 5) . '_' . rand(1, 5) . '_' . rand(1, 5) . '_' . rand(1, 5);
|
|
$a = explode('_', $a222);
|
|
$i = 1;
|
|
$na['id'] = time();
|
|
while ($i <= 5) {
|
|
if (isset($a[$i - 1])) {
|
|
$a[$i - 1] = intval(round($a[$i - 1]));
|
|
if ($a[$i - 1] >= 1 && $a[$i - 1] <= 5) {
|
|
$na['a'][$i] = $a[$i - 1];
|
|
} else {
|
|
$na['a'][$i] = 0;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
$na['b'] = rand(1, 5);
|
|
//Ïðîâîäèì óäàð
|
|
|
|
$this->atacks[$pl['id']]['a2'] = $a222;
|
|
$this->atacks[$pl['id']]['b2'] = $na['b'];
|
|
$this->startAtack($pl['id']);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Ïðîâåðÿåì óäàðû, ïðèåìû, ñâèòêè, çâåðåé
|
|
public function testActions()
|
|
{
|
|
//ïðîâåðÿåì óäàðû
|
|
$m = mysql_query('SELECT * FROM `battle_act` WHERE `battle` = "' . $this->info['id'] . '" ORDER BY `id` ASC');
|
|
$i = 0;
|
|
$botA = [];
|
|
$botR = [];
|
|
while ($pl = mysql_fetch_array($m)) {
|
|
$pluids = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `hpNow` FROM `stats` WHERE (`id` = "' . $pl['uid1'] . '" AND `hpNow` <= 0) OR (`id` = "' . $pl['uid2'] . '" AND `hpNow` <= 0) LIMIT 1'
|
|
)
|
|
);
|
|
$pltest = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `battle_act` WHERE `id` = "' . $pl['id'] . '" LIMIT 1')
|
|
);
|
|
if (isset($pltest['id'])) {
|
|
if (isset($pluids['hpNow'])) {
|
|
mysql_query('DELETE FROM `battle_act` WHERE `id` = "' . $pl['id'] . '" LIMIT 1');
|
|
} elseif ($pl['time'] + $this->info['timeout'] > time()) {
|
|
//óäàð íå ïðîïóùåí ïî òàéìó, ïðîñòî çàíîñèì äàííûå
|
|
$this->atacks[$pl['id']] = $pl;
|
|
$this->ga[$pl['uid1']][$pl['uid2']] = $pl['id'];
|
|
$this->ag[$pl['uid2']][$pl['uid1']] = $pl['id'];
|
|
if (isset($this->iBots[$pl['uid1']])) {
|
|
//óäàðèë áîò è íåò îòâåòà
|
|
$botA[$pl['uid1']] = $pl['id'];
|
|
} elseif (isset($this->iBots[$pl['uid2']])) {
|
|
//óäàðèëè áîòà è îí íå îòâåòèë
|
|
$botR[$pl['uid2']] = $pl['id'];
|
|
if ($this->users[$this->uids[$pl['uid2']]]['timeGo'] < time()) {
|
|
$this->botAtack($pl['uid1'], $pl, 2);
|
|
}
|
|
}
|
|
} else {
|
|
//ïðîïóñê ïî òàéìó
|
|
$pl['time'] = time();
|
|
if ($pl['a1'] == 0 && $pl['a2'] == 0) {
|
|
//èãðîê 1 ïðîïóñòèë ïî òàéìó
|
|
$pl['out1'] = time();
|
|
$pl['tout1'] = 1;
|
|
//èãðîê 2 ïðîïóñòèë ïî òàéìó
|
|
$pl['out2'] = time();
|
|
$pl['tout2'] = 1;
|
|
} elseif ($pl['a1'] == 0) {
|
|
//èãðîê 1 ïðîïóñòèë ïî òàéìó
|
|
$pl['out1'] = time();
|
|
$pl['tout1'] = 1;
|
|
} elseif ($pl['a2'] == 0) {
|
|
//èãðîê 2 ïðîïóñòèë ïî òàéìó
|
|
$pl['out2'] = time();
|
|
$pl['tout2'] = 1;
|
|
}
|
|
//íàíîñèì óäàð ïî ïðîïóñêó
|
|
$this->atacks[$pl['id']] = $pl;
|
|
$this->startAtack($pl['id']);
|
|
mysql_query('DELETE FROM `battle_act` WHERE `id` = "' . $pl['id'] . '"');
|
|
}
|
|
}
|
|
}
|
|
//òåñò óäàðà
|
|
if ($this->uAtc['id'] > 0 && $this->na == 1) {
|
|
if ($pl['out1'] == 0 && $pl['out2'] == 0) {
|
|
//Ìîæåò ðàçìåíÿòüñÿ òîëüêî òîò êòî áèë
|
|
if ($pl['uid1'] == $u->info['id'] || $pl['uid2'] == $u->info['id']) {
|
|
$this->addNewAtack();
|
|
}
|
|
} else {
|
|
$this->addNewAtack();
|
|
}
|
|
}
|
|
//òåñò, áîò äåëàåò óäàðû
|
|
while ($i < count($this->bots)) {
|
|
$bot = $this->bots[$i];
|
|
if (isset($bot) && $this->stats[$this->uids[$bot]]['hpNow'] >= 1 && $this->stats[$this->uids[$bot]]['pass'] != 'saintlucia') { //Òóò ïðîâåðêà íà áîòà saintlucia
|
|
$j = 0;
|
|
while ($j < count($this->users)) {
|
|
if ($this->info['razdel'] == 0) {
|
|
$tnbot = time() + rand(1, 1);
|
|
} else {
|
|
$tnbot = time() + rand(1, 2);
|
|
}
|
|
if ($this->users[$j]['timeGo'] < time() && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
|
|
if ($this->users[$j]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['hpNow'] >= 1 && $this->users[$this->uids[$bot]]['team'] != $this->users[$j]['team']) {
|
|
if (isset($this->users[$j]) && $this->stats[$j]['hpNow'] >= 1 && $this->stats[$this->uids[$bot]]['hpNow'] >= 1 && !isset($this->ga[$bot][$this->users[$j]['id']]) && !isset($this->ag[$bot][$this->users[$j]['id']]) && $this->users[$j]['id'] != $bot && $this->users[$j]['team'] != $this->users[$this->uids[$bot]]['team']) {
|
|
if ($this->users[$j]['timeGo'] < time(
|
|
) && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
|
|
$this->botAtack($this->users[$j]['id'], $bot, 1);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
} elseif (isset($this->users[$i]) && $this->users[$i]['bot'] > 0 && $this->stats[$i]['hpNow'] >= 1 && $this->stats[$this->uids[$bot]]['hpNow'] >= 1 && $this->users[$i]['id'] != $bot && $this->users[$i]['team'] != $this->users[$this->uids[$bot]]['team']) {
|
|
if ($this->users[$j]['timeGo'] < time(
|
|
) && $this->users[$this->uids[$bot]]['timeGo'] < time() && $this->botAct($bot)) {
|
|
if (!isset($this->ga[$bot][$this->users[$i]['id']]) && $this->users[$this->uids[$bot]]['timeGo'] < time(
|
|
) && !isset($this->ag[$bot][$this->users[$i]['id']])) {
|
|
$this->botAtack($this->users[$i]['id'], $bot, 1);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
|
|
);
|
|
} elseif (!isset($this->ag[$bot][$this->users[$i]['id']]) && isset($this->ga[$bot][$this->users[$i]['id']]) && $this->users[$this->uids[$bot]]['timeGo'] < time(
|
|
)) {
|
|
$this->botAtack($bot, $this->users[$i]['id'], 1);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
}
|
|
} 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) {
|
|
$this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['a1'] = rand(
|
|
1, 5
|
|
) . '' . rand(
|
|
1,
|
|
5
|
|
) . rand(1, 5) . rand(1, 5) . rand(1, 5);
|
|
$this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['b1'] = rand(1, 5);
|
|
$this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['a2'] = rand(
|
|
1, 5
|
|
) . '' . rand(
|
|
1,
|
|
5
|
|
) . rand(1, 5) . rand(1, 5) . rand(1, 5);
|
|
$this->atacks[$this->ga[$bot][$this->users[$j]['id']]]['b2'] = rand(1, 5);
|
|
$this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['a1'] = rand(
|
|
1, 5
|
|
) . '' . rand(
|
|
1,
|
|
5
|
|
) . rand(1, 5) . rand(1, 5) . rand(1, 5);
|
|
$this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['b1'] = rand(1, 5);
|
|
$this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['a2'] = rand(
|
|
1, 5
|
|
) . '' . rand(
|
|
1,
|
|
5
|
|
) . rand(1, 5) . rand(1, 5) . rand(1, 5);
|
|
$this->atacks[$this->ag[$bot][$this->users[$j]['id']]]['b2'] = rand(1, 5);
|
|
if (isset($this->ga[$bot][$this->users[$j]['id']]) && $this->users[$j]['bot'] > 0) {
|
|
if ($this->users[$j]['timeGo'] < time(
|
|
) && $this->users[$this->uids[$bot]]['timeGo'] < time()) {
|
|
$tnbot = time() + rand(3, 7);
|
|
if ($this->info['type'] == 329) { // òåñòîâûé áîé
|
|
$tnbot = time() - 1;
|
|
}
|
|
$this->startAtack($this->ga[$bot][$this->users[$j]['id']]);
|
|
$this->users[$this->uids[$bot]]['timeGo'] = $tnbot;
|
|
mysql_query(
|
|
'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
} elseif (isset($this->ag[$bot][$this->users[$j]['id']]) && $this->users[$j]['bot'] > 0) {
|
|
if ($this->users[$this->uids[$bot]]['timeGo'] < time(
|
|
) && $this->users[$j]['timeGo'] < time()) {
|
|
$this->startAtack($this->ag[$bot][$this->users[$j]['id']]);
|
|
$tnbot = time() + rand(3, 7);
|
|
if ($this->info['type'] == 329) { // òåñòîâûé áîé
|
|
$tnbot = time() - 1;
|
|
}
|
|
$this->users[$this->uids[$bot]]['timeGo'] = $tnbot;
|
|
mysql_query(
|
|
'UPDATE `stats` SET `timeGo` = "' . $tnbot . '" WHERE `id` = "' . $this->users[$this->uids[$bot]]['id'] . '" LIMIT 1'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
}
|
|
}
|
|
$j++;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
|
|
//Äåéñòâèÿ áîòà
|
|
public function botAct($uid): bool
|
|
{
|
|
$r = false;
|
|
if ($this->users[$this->uids[$uid]]['bot'] > 0) {
|
|
if ($this->users[$this->uids[$uid]]['online'] < time() - 3) {
|
|
$r = true;
|
|
$this->users[$this->uids[$uid]]['online'] = time();
|
|
User::setOnline((int)$uid);
|
|
} elseif (rand(0, 2) == 1) {
|
|
$r = true;
|
|
}
|
|
}
|
|
return $r;
|
|
}
|
|
|
|
//ïîëó÷àåì äàííûå î ïîåäèíêå
|
|
public function battleInfo($id)
|
|
{
|
|
$b = mysql_fetch_array(
|
|
mysql_query('SELECT * FROM `battle` WHERE `id` = "' . mysql_real_escape_string($id) . '" LIMIT 1')
|
|
);
|
|
if (isset($b['id'])) {
|
|
$this->hodID = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id_hod` FROM `battle_logs` WHERE `battle` = "' . $b['id'] . '" ORDER BY `id` DESC LIMIT 1'
|
|
)
|
|
);
|
|
$this->hodID = $this->hodID['id_hod'] ?? 0;
|
|
return $b;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//íàíîñèì óäàð ïðîòèâíèêó
|
|
public function addAtack()
|
|
{
|
|
global $js;
|
|
if (isset($_POST['atack'], $_POST['block'])) {
|
|
$na = ['a' => [1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0]];
|
|
$a = explode('_', $_POST['atack']);
|
|
$i = 1;
|
|
$na['id'] = time();
|
|
while ($i <= 5) {
|
|
if (isset($a[$i - 1])) {
|
|
$a[$i - 1] = intval(round($a[$i - 1]));
|
|
if ($a[$i - 1] >= 1 && $a[$i - 1] <= 5) {
|
|
$na['a'][$i] = $a[$i - 1];
|
|
} else {
|
|
$na['a'][$i] = 0;
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$na['b'] = intval(round($_POST['block']));
|
|
if ($na['b'] < 1 || $na['b'] > 5) {
|
|
$na['b'] = 0;
|
|
}
|
|
|
|
$this->uAtc = $na;
|
|
$js .= 'testClearZone();';
|
|
} else {
|
|
$this->e = 'Âûáåðèòå çîíû óäàðà è áëîêà';
|
|
}
|
|
}
|
|
|
|
//âûäåëÿåì ïîëüçîâàòåëåé
|
|
public function teamsTake()
|
|
{
|
|
global $u;
|
|
$rs = '';
|
|
$ts = [];
|
|
$tsi = 0;
|
|
if ($this->info['id'] > 0) {
|
|
//äàííûå î èãðîêàõ â áîþ
|
|
$nxtlg = [];
|
|
$t = mysql_query(
|
|
'SELECT `u`.`room`,`u`.`no_ip`,`u`.`twink`,`u`.`stopexp`,`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`.`battle` = "' . $this->info['id'] . '"'
|
|
);
|
|
$i = 0;
|
|
$bi = 0;
|
|
$up = '';
|
|
if ($this->info['start2'] == 0) {
|
|
$tststrt = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `start2` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($tststrt['id'])) {
|
|
$upd = mysql_query(
|
|
'UPDATE `battle` SET `start2` = "' . time(
|
|
) . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
} else {
|
|
$this->info['start2'] = time();
|
|
}
|
|
}
|
|
while ($pl = mysql_fetch_array($t)) {
|
|
//çàïèñûâàåì äàííûå
|
|
if ($pl['login2'] == '') {
|
|
$pl['login2'] = $pl['login'];
|
|
}
|
|
$this->users[$i] = $pl;
|
|
$this->uids[$pl['id']] = $i;
|
|
|
|
if ($this->info['start2'] == 0) {
|
|
mysql_query(
|
|
'UPDATE `users` SET `notrhod` = "-1" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
$this->users[$i]['notrhod'] = -1;
|
|
}
|
|
|
|
if ($pl['bot'] > 0) {
|
|
$this->bots[$bi] = $pl['id'];
|
|
$this->iBots[$pl['id']] = $bi;
|
|
$bi++;
|
|
}
|
|
//çàïèñûâàåì ñòàòû
|
|
$this->stats[$i] = $u->getStats($pl, 0, 0, false, $this->cached, true);
|
|
//Çàíîñèì ñòàðò
|
|
if ($this->info['start2'] == 0) {
|
|
if (!isset($ts[$this->users[$i]['team']])) {
|
|
$tsi++;
|
|
$ts[$this->users[$i]['team']] = $tsi;
|
|
}
|
|
|
|
if ($this->users[$i]['level'] <= 7) {
|
|
$this->users[$i]['tactic7'] = floor(10 / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']);
|
|
} elseif ($this->users[$i]['level'] == 8) {
|
|
$this->users[$i]['tactic7'] = floor(20 / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']);
|
|
} elseif ($this->users[$i]['level'] == 9) {
|
|
$this->users[$i]['tactic7'] = floor(30 / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']);
|
|
} elseif ($this->users[$i]['level'] >= 10) {
|
|
$this->users[$i]['tactic7'] = floor(
|
|
(40 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
|
|
);
|
|
}
|
|
|
|
if ($this->stats[$i]['s7'] > 49) {
|
|
mysql_query(
|
|
'UPDATE `eff_users` SET `delete`="' . time(
|
|
) . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `overType` = 101 AND `delete` = 0'
|
|
);
|
|
mysql_query(
|
|
"
|
|
INSERT INTO `eff_users` ( `id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
|
|
( 22, '" . $this->stats[$i]['id'] . "', 'Ñïàñåíèå', 'add_spasenie=1', 101, 77, 0, '" . $this->stats[$i]['id'] . "', 0, 'priem', 324, 'preservation.gif', 1, -1, 'ñïàñåíèå', 0, 0, '', 0, 0, 0, 1, 0);
|
|
"
|
|
);
|
|
}
|
|
|
|
// Áàôô Çâåðÿ animal_bonus
|
|
if ($this->users[$i]['animal'] > 0) {
|
|
$a = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `users_animal` WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `id` = "' . $this->users[$i]['animal'] . '" AND `pet_in_cage` = "0" AND `delete` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($a['id'])) {
|
|
if ($a['eda'] >= 1) {
|
|
$anl = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `bonus` FROM `levels_animal` WHERE `type` = "' . $a['type'] . '" AND `level` = "' . $a['level'] . '" LIMIT 1'
|
|
)
|
|
);
|
|
$anl = $anl['bonus'];
|
|
|
|
$tpa = [
|
|
1 => 'cat',
|
|
2 => 'owl',
|
|
3 => 'wisp',
|
|
4 => 'demon',
|
|
5 => 'dog',
|
|
6 => 'pig',
|
|
7 => 'dragon',
|
|
];
|
|
$tpa2 = [
|
|
1 => 'Êîòà',
|
|
2 => 'Ñîâû',
|
|
3 => 'Ñâåòëÿêà',
|
|
4 => '×åðòÿêè',
|
|
5 => 'Ïñà',
|
|
6 => 'Ñâèíà',
|
|
7 => 'Äðàêîíà',
|
|
];
|
|
$tpa3 = [
|
|
1 => 'Êîøà÷üÿ Ëîâêîñòü',
|
|
2 => 'Èíòóèöèÿ Ñîâû',
|
|
3 => 'Ñèëà Ñòèõèé',
|
|
4 => 'Äåìîíè÷åñêàÿ Ñèëà',
|
|
5 => 'Äðóã',
|
|
6 => 'Ïîëíàÿ Áðîíÿ',
|
|
7 => 'Èíôåðíî',
|
|
];
|
|
|
|
mysql_query(
|
|
'UPDATE `eff_users` SET `delete`="' . time(
|
|
) . '" WHERE `uid` = "' . $this->users[$i]['id'] . '" AND `overType` = 100 AND `delete` = 0'
|
|
);
|
|
mysql_query(
|
|
'INSERT INTO `eff_users` (`hod`,`v2`,`img2`,`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`v1`,`user_use`) VALUES ("-1","201","summon_pet_' . $tpa[$a['type']] . '.gif",22,"' . $this->users[$i]['id'] . '","' . $tpa3[$a['type']] . ' [' . $a['level'] . ']","' . $anl . '","100","77","priem","' . $this->users[$i]['id'] . '")'
|
|
);
|
|
|
|
//äîáàâëåíèå äóõà îò äðàêîíà
|
|
if ($a['type'] == 7) {
|
|
if ($a['level'] == 10) {
|
|
$this->users[$i]['tactic7'] = floor(
|
|
(50 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
|
|
);
|
|
} elseif ($a['level'] == 11) {
|
|
$this->users[$i]['tactic7'] = floor(
|
|
(65 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
|
|
);
|
|
} elseif ($a['level'] == 12) {
|
|
$this->users[$i]['tactic7'] = floor(
|
|
(90 + $this->stats[$i]['s7']) / $this->stats[$i]['hpAll'] * $this->stats[$i]['hpNow']
|
|
);
|
|
}
|
|
}
|
|
//
|
|
$anl = $u->lookStats($anl);
|
|
|
|
$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 = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => 1,
|
|
'text' => '',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
|
|
$ba = '';
|
|
$i6 = 0;
|
|
while ($i6 < count($u->items['add'])) {
|
|
if (isset($anl['add_' . $u->items['add'][$i6]])) {
|
|
if ($anl['add_' . $u->items['add'][$i6]] > 0) {
|
|
if ($u->items['add'][$i6] == 'mib1') {
|
|
$ba .= 'Áðîíÿ ãîëîâû: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
|
|
} elseif ($u->items['add'][$i6] == 'mib2') {
|
|
$ba .= 'Áðîíÿ êîðïóñà: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
|
|
} elseif ($u->items['add'][$i6] == 'mib3') {
|
|
$ba .= 'Áðîíÿ ïîÿñà: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
|
|
} elseif ($u->items['add'][$i6] == 'mib4') {
|
|
$ba .= 'Áðîíÿ íîã: +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
|
|
} elseif ($u->items['add'][$i6] == 'mab1' || $u->items['add'][$i6] == 'mab2' || $u->items['add'][$i6] == 'mab3' || $u->items['add'][$i6] == 'mab4') {
|
|
} else {
|
|
$ba .= $u->is[$u->items['add'][$i6]] . ': +' . $anl['add_' . $u->items['add'][$i6]] . ', ';
|
|
}
|
|
}
|
|
}
|
|
$i6++;
|
|
}
|
|
$ba = trim($ba, ', ');
|
|
if ($ba == '') {
|
|
$ba = 'Ýôôåêò îòñóòñâóåò';
|
|
}
|
|
|
|
$mas1['text'] = '{tm1} {u2} î÷íóëñÿ îò ìåäèòàöèè, è ïðèçâàë çàêëÿòüå "<strong>' . $tpa3[$a['type']] . ' [' . $a['level'] . ']</strong>" íà {u1}. (' . $ba . ')';
|
|
$nxtlg[count($nxtlg)] = $mas1;
|
|
mysql_query(
|
|
'UPDATE `users_animal` SET `eda` = `eda` - 1 WHERE `id` = "' . $a['id'] . '" LIMIT 1'
|
|
);
|
|
$this->get_comment();
|
|
}
|
|
}
|
|
}
|
|
|
|
mysql_query(
|
|
'UPDATE `stats` SET `last_hp` = "0",`tactic1`="0",`tactic2`="0",`tactic3`="0",`tactic4`="0",`tactic5`="0",`tactic6`="0",`tactic7` = "' . ($this->users[$i]['tactic7']) . '" WHERE `id` = "' . $this->users[$i]['id'] . '" LIMIT 1'
|
|
);
|
|
$rs[$this->users[$i]['team']] = $rs[$this->users[$i]['team']] . $u->microLogin(
|
|
$this->users[$i], 2
|
|
) . ', ';
|
|
}
|
|
$up .= '`uid` = "' . $pl['id'] . '" OR';
|
|
//battle-user (ñòàòèñòèêà, íà÷àëüíàÿ)
|
|
$mybu = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `battle_users` WHERE `battle` = "' . $this->info['id'] . '" AND `uid` = "' . mysql_real_escape_string(
|
|
$pl['id']
|
|
) . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (!isset($mybu['id'])) {
|
|
//Ïóñòîå çíà÷åíèå ñòàòèñòèêè äëÿ äàííîãî ïåðñîíàæà çà òåêóùèé áîé
|
|
$this->addstatuser($pl['id']);
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
$up = rtrim($up, ' OR');
|
|
|
|
//Çàíîñèì â ëîã íà÷àëî ïîåäèíêà
|
|
|
|
if ($this->info['start1'] == 0) {
|
|
$tststrt = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT `id` FROM `battle` WHERE `id` = "' . $this->info['id'] . '" AND `start1` = "0" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($tststrt['id'])) {
|
|
$upd = mysql_query(
|
|
'UPDATE `battle` SET `start1` = "' . time(
|
|
) . '" WHERE `id` = "' . $this->info['id'] . '" LIMIT 1'
|
|
);
|
|
if ($upd) {
|
|
$i = 0;
|
|
$r = '';
|
|
while ($i <= $tsi) {
|
|
if (isset($rs[$i]) && $rs[$i] != '') {
|
|
$r .= rtrim($rs[$i], ', ') . ' è ';
|
|
}
|
|
$i++;
|
|
}
|
|
$r = rtrim($r, ' è ');
|
|
$r = str_replace('"', '\\\\\"', $r);
|
|
$this->hodID++;
|
|
$vLog = 'time1=' . time() . '||';
|
|
$mass = [
|
|
'time' => time(),
|
|
'battle' => $this->info['id'],
|
|
'id_hod' => $this->hodID,
|
|
'text' => 'test',
|
|
'vars' => $vLog,
|
|
'zona1' => '',
|
|
'zonb1' => '',
|
|
'zona2' => '',
|
|
'zonb2' => '',
|
|
'type' => '1',
|
|
];
|
|
$r = '×àñû ïîêàçûâàëè <span class=\\\\\"date\\\\\">' . date(
|
|
'd.m.Y H:i',
|
|
$this->info['time_start']
|
|
) . '</span>, êîãäà ' . $r . ' áðîñèëè âûçîâ äðóã äðóãó.';
|
|
$ins = mysql_query(
|
|
'INSERT INTO `battle_logs` (`time`,`battle`,`id_hod`,`text`,`vars`,`zona1`,`zonb1`,`zona2`,`zonb2`,`type`) VALUES ("' . $mass['time'] . '","' . $mass['battle'] . '","' . $mass['id_hod'] . '","' . $r . '","' . $mass['vars'] . '","' . $mass['zona1'] . '","' . $mass['zonb1'] . '","' . $mass['zona2'] . '","' . $mass['zonb2'] . '","' . $mass['type'] . '")'
|
|
);
|
|
$this->info['start1'] = time();
|
|
}
|
|
}
|
|
|
|
//
|
|
|
|
if (count($nxtlg) > 0) {
|
|
$i = 0;
|
|
while ($i < count($nxtlg)) {
|
|
$this->add_log($nxtlg[$i]);
|
|
$i++;
|
|
}
|
|
}
|
|
//
|
|
}
|
|
}
|
|
}
|
|
|
|
//Âîçðàùàåì çîíû áëîêà ïî óìîë÷àíèþ
|
|
public function restZonb($uid1, $uid2)
|
|
{
|
|
if ($this->stnZbVs[$uid1] > 0) {
|
|
$this->stats[$this->uids[$uid1]]['zonb'] = $this->stnZbVs[$uid1];
|
|
}
|
|
if ($this->stnZbVs[$uid2] > 0) {
|
|
$this->stats[$this->uids[$uid1]]['zonb'] = $this->stnZbVs[$uid2];
|
|
}
|
|
}
|
|
|
|
//ïðîâåðêà áëîêà (Âèçóàëüíàÿ)
|
|
public function testZonbVis()
|
|
{
|
|
global $u;
|
|
if ($this->stnZbVs == 0) {
|
|
$zb = $this->stats[$this->uids[$u->info['id']]]['zonb'];
|
|
$this->stnZbVs = $zb;
|
|
} else {
|
|
$zb = $this->stnZb;
|
|
}
|
|
$eu = $this->users[$this->uids[$u->info['id']]]['enemy'];
|
|
if ($zb > 3) {
|
|
$zb = 3;
|
|
}
|
|
if (
|
|
$eu != 0 &&
|
|
(
|
|
$this->stats[$this->uids[$eu]]['weapon1'] == 1 ||
|
|
$this->stats[$this->uids[$eu]]['weapon2'] == 1
|
|
) &&
|
|
$this->stats[$this->uids[$u->info['id']]]['weapon1'] != 1 &&
|
|
$this->stats[$this->uids[$u->info['id']]]['weapon2'] != 1
|
|
) {
|
|
$zb -= 1;
|
|
}
|
|
if ($zb < 1) {
|
|
$zb = 1;
|
|
}
|
|
return $zb;
|
|
}
|
|
|
|
//ïðîâåðêà áëîêà
|
|
public function testZonb($uid, $uid2)
|
|
{
|
|
$zba = [];
|
|
|
|
$zba[1] = $this->stats[$this->uids[$uid]]['zonb'];
|
|
$zba[2] = $this->stats[$this->uids[$uid2]]['zonb'];
|
|
|
|
if ($this->stnZb[$uid] == 0) {
|
|
$zba[1] = $this->stats[$this->uids[$uid]]['zonb'];
|
|
$this->stnZb[$uid] = $zba[1];
|
|
} else {
|
|
$zba[1] = $this->stnZb[$uid];
|
|
}
|
|
|
|
if ($this->stnZb[$uid2] == 0) {
|
|
$zba[2] = $this->stats[$this->uids[$uid2]]['zonb'];
|
|
$this->stnZb[$uid] = $zba[2];
|
|
} else {
|
|
$zba[2] = $this->stnZb[$uid2];
|
|
}
|
|
|
|
if ($zba[1] > 3) {
|
|
$zba[1] = 3;
|
|
}
|
|
if ($zba[2] > 3) {
|
|
$zba[2] = 3;
|
|
}
|
|
|
|
//Áëîêè èãðîêà 1
|
|
if (
|
|
(
|
|
$this->stats[$this->uids[$uid2]]['weapon1'] == 1 ||
|
|
$this->stats[$this->uids[$uid2]]['weapon2'] == 1
|
|
) &&
|
|
$this->stats[$this->uids[$uid]]['weapon1'] != 1 &&
|
|
$this->stats[$this->uids[$uid]]['weapon2'] != 1
|
|
) {
|
|
$zba[1] -= 1;
|
|
}
|
|
|
|
//Áëîêè èãðîêà 2
|
|
if (
|
|
(
|
|
$this->stats[$this->uids[$uid]]['weapon1'] == 1 ||
|
|
$this->stats[$this->uids[$uid]]['weapon2'] == 1
|
|
) &&
|
|
$this->stats[$this->uids[$uid2]]['weapon1'] != 1 &&
|
|
$this->stats[$this->uids[$uid2]]['weapon2'] != 1
|
|
) {
|
|
$zba[2] -= 1;
|
|
}
|
|
|
|
if ($zba[1] < 1) {
|
|
$zba[1] = 1;
|
|
}
|
|
if ($zba[2] < 1) {
|
|
$zba[2] = 1;
|
|
}
|
|
|
|
$this->stats[$this->uids[$uid]]['zonb'] = $zba[1];
|
|
$this->stats[$this->uids[$uid2]]['zonb'] = $zba[2];
|
|
if (
|
|
$this->stats[$this->uids[$uid]]['min_zonb'] > 0 &&
|
|
$this->stats[$this->uids[$uid]]['zonb'] < $this->stats[$this->uids[$uid]]['min_zonb']
|
|
) {
|
|
$this->stats[$this->uids[$uid]]['zonb'] = $this->stats[$this->uids[$uid]]['min_zonb'];
|
|
}
|
|
if (
|
|
$this->stats[$this->uids[$uid2]]['min_zonb'] > 0 &&
|
|
$this->stats[$this->uids[$uid2]]['zonb'] < $this->stats[$this->uids[$uid2]]['min_zonb']
|
|
) {
|
|
$this->stats[$this->uids[$uid2]]['zonb'] = $this->stats[$this->uids[$uid2]]['min_zonb'];
|
|
}
|
|
}
|
|
|
|
//ãåíåðèðóåì êîìàíäû
|
|
public function genTeams($you): string
|
|
{
|
|
global $u;
|
|
$ret = '';
|
|
$teams = [];
|
|
//âûäåëÿåì ïîëüçîâàòåëåé
|
|
$i = 0;
|
|
$j = 1;
|
|
$tms = [];
|
|
$teams[$this->users[$this->uids[$you]]['team']] = '';
|
|
$tms[0] = $this->users[$this->uids[$you]]['team'];
|
|
while ($i < count($this->uids)) {
|
|
if ($this->stats[$i]['hpNow'] > 0) {
|
|
if (!isset($teams[$this->users[$i]['team']])) {
|
|
$tms[$j] = $this->users[$i]['team'];
|
|
$j++;
|
|
}
|
|
if ($this->stats[$i]['hpNow'] < 0) {
|
|
$this->stats[$i]['hpNow'] = 0;
|
|
}
|
|
if ($this->stats[$i]['hpAll'] < $this->stats[$i]['hpNow']) {
|
|
$this->stats[$i]['hpNow'] = $this->stats[$i]['hpAll'];
|
|
}
|
|
$a1ms = '';
|
|
if (isset($this->ga[$this->users[$i]['id']][$you]) && $this->ga[$this->users[$i]['id']][$you]) {
|
|
$a1mc = '';
|
|
$ac = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `battle_act` WHERE `id` = "' . $this->ga[$this->users[$i]['id']][$you] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($ac) && $ac['time'] + $this->info['timeout'] - 15 < time()) {
|
|
$a1mc = 'color:red;';
|
|
}
|
|
$a1ms = 'style=\"text-decoration: underline; ' . $a1mc . '\"';
|
|
} elseif (isset($this->ag[$this->users[$i]['id']][$you]) && $this->ag[$this->users[$i]['id']][$you]) {
|
|
$a1mc = '';
|
|
$ac = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT * FROM `battle_act` WHERE `id` = "' . $this->ag[$this->users[$i]['id']][$you] . '" LIMIT 1'
|
|
)
|
|
);
|
|
if (isset($ac) && $ac['time'] + $this->info['timeout'] - 15 < time()) {
|
|
$a1mc = 'color:green;';
|
|
}
|
|
$a1ms = 'style=\"text-decoration: overline; ' . $a1mc . '\"';
|
|
}
|
|
if ($this->users[$i]['login2'] == '') {
|
|
$this->users[$i]['login2'] = $this->users[$i]['login'];
|
|
}
|
|
if ($this->users[$i]['align'] == 9) {
|
|
$this->stats[$i]['hpNow'] = $this->stats[$i]['hpNow'] / ($this->stats[$i]['hpAll'] / 100);
|
|
$this->stats[$i]['hpAll'] = '100%';
|
|
}
|
|
$ldr = '';
|
|
if ($this->users[$i]['lider'] == $this->info['id']) {
|
|
$ldr = '<img width=24 height=15 title=Ëèäåð ãðóïïû src=https://img.new-combats.com/i/lead' . $this->users[$i]['team'] . '.gif \>';
|
|
}
|
|
$teams[$this->users[$i]['team']] .= ', ' . $ldr . '<span ' . $a1ms . ' class=\"CSSteam' . $this->users[$i]['team'] . '\" onClick=\"top.chat.addto(\'' . $this->users[$i]['login2'] . '\',\'to\'); return false;\" oncontextmenu=\"top.infoMenu(\'' . $this->users[$i]['login2'] . '\',event,\'main\'); return false;\">' . $this->users[$i]['login2'] . '</span><small> [' . floor(
|
|
$this->stats[$i]['hpNow']
|
|
) . '/' . $this->stats[$i]['hpAll'] . ']</small>';
|
|
}
|
|
$i++;
|
|
}
|
|
|
|
//ãåíåðèðóåì êîìàíäû
|
|
$i = 0;
|
|
while ($i < count($tms)) {
|
|
$teams[$tms[$i]] = ltrim($teams[$tms[$i]], ', ');
|
|
if ($teams[$tms[$i]] != '') {
|
|
$teams[$tms[$i]] = '<img src=\"https://img.new-combats.com/i/lock3.gif\" style=\"cursor:pointer\" width=\"20\" height=\"15\" onClick=\"top.chat.addto(\'team' . $tms[$i] . '\',\'private\'); return false;\"> ' . $teams[$tms[$i]];
|
|
$ret .= $teams[$tms[$i]];
|
|
if (count($tms) > $i + 1) {
|
|
$ret .= ' <span class=\"CSSvs\"> ïðîòèâ </span> ';
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
return 'genteam("' . $ret . '");';
|
|
}
|
|
|
|
|
|
public function addTravm($uid, $type, $lvl)
|
|
{
|
|
global $u;
|
|
$t = $type;
|
|
if ($t == 1) {
|
|
$name = 'Ëåãêàÿ òðàâìà';
|
|
$stat = rand(1, 3); // ïîêà áåç äóõîâíîñòè
|
|
$timeEnd = rand(1, 3);// âðåìÿ òðàâìû îò 1.30 äî 6 ÷àñîâ
|
|
$data = 'add_s' . $stat . '=-' . $lvl;
|
|
$img = 'eff_travma1.gif';
|
|
$v1 = 1;
|
|
} elseif ($t == 2) {
|
|
$name = 'Ñðåäíÿÿ òðàâìà';
|
|
$stat = rand(1, 3); // ïîêà áåç äóõîâíîñòè
|
|
$timeEnd = rand(3, 5);// âðåìÿ òðàâìû îò 6 äî 12 ÷àñîâ
|
|
$data = 'add_s' . $stat . '=-' . ($lvl * 2);
|
|
$v1 = 2;
|
|
$img = 'eff_travma2.gif';
|
|
} elseif ($t == 3) {
|
|
$name = 'Òÿæåëàÿ òðàâìà';
|
|
$stat = rand(1, 3); // ïîêà áåç äóõîâíîñòè
|
|
$timeEnd = rand(5, 7);// âðåìÿ òðàâìû îò 12 äî 6 ÷àñîâ
|
|
$data = 'add_s' . $stat . '=-' . ($lvl * 3);
|
|
$v1 = 3;
|
|
$img = 'eff_travma3.gif';
|
|
} elseif ($t == 4) {
|
|
$name = 'Íåèçëå÷èìàÿ òðàâìà';
|
|
$stat = rand(1, 3); // ïîêà áåç äóõîâíîñòè
|
|
$timeEnd = 24;// âðåìÿ òðàâìû îò 24 ÷àñà
|
|
$data = 'add_s' . $stat . '=-' . ($lvl * 50);
|
|
$v1 = 4;
|
|
$img = 'eff_travma4.gif';
|
|
}
|
|
$timeEnd *= 3600;
|
|
$ins = 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 . '")'
|
|
);
|
|
$ins = 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", "")'
|
|
);
|
|
}
|
|
|
|
public function testUserInfoBattle($uid)
|
|
{
|
|
global $u;
|
|
if (!isset($this->uids[$uid])) {
|
|
//Çàíîñèì äàííûå îá èãðîêå ñíîâà (âèäèìî îí ïîãèá è åãî ñòåðëî ñ èíôî)
|
|
if (!isset($this->uids[$uid])) {
|
|
$this->uids[$uid] = count($this->users);
|
|
}
|
|
$this->users[$this->uids[$uid]] = mysql_fetch_array(
|
|
mysql_query(
|
|
'SELECT
|
|
|
|
`u`.`id`,`u`.`login`,`u`.`login2`,`u`.`online`,`u`.`admin`,`u`.`city`,`u`.`cityreg`,`u`.`align`,`u`.`align_lvl`,`u`.`align_exp`,`u`.`clan`,
|
|
`u`.`level`,`u`.`money`,`u`.`money3`,`u`.`money2`,`u`.`money4`,`u`.`battle`,`u`.`sex`,`u`.`obraz`,`u`.`win`,`u`.`win_t`,
|
|
`u`.`lose`,`u`.`lose_t`,`u`.`nich`,`u`.`timeMain`,`u`.`invis`,`u`.`bot_id`,`u`.`animal`,`u`.`type_pers`,
|
|
`u`.`notrhod`,`u`.`bot_room`,`u`.`inUser`,`u`.`inTurnir`,`u`.`inTurnirnew`,`u`.`stopexp`,`u`.`real`,
|
|
|
|
`st`.*
|
|
|
|
FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE `u`.`id` = "' . $uid . '" LIMIT 1'
|
|
)
|
|
);
|
|
$this->stats[$this->uids[$uid]] = $u->getStats($this->users[$this->uids[$uid]], 0, 0, false, false, true);
|
|
}
|
|
}
|
|
|
|
///----Ñïàñåíèå ôóíêöèÿ
|
|
public function spaCheck($u1)
|
|
{
|
|
if ($this->stats[$this->uids[$u1]]['hpNow'] < 1) {
|
|
mysql_query('DELETE FROM `battle_act` WHERE `uid1` = "' . $u1 . '" OR `uid2` = "' . $u1 . '"');
|
|
if ($this->stats[$this->uids[$u1]]['spasenie'] > 0 && $this->users[$this->uids[$u1]]['tactic7'] >= 25) {
|
|
//Ñâèòîê ñïàñåíèÿ
|
|
if ($this->stats[$this->uids[$u1]]['s7'] > 49 && $this->stats[$this->uids[$u1]]['s7'] < 75) {
|
|
//Äàåì ïðèçðà÷êó
|
|
mysql_query(
|
|
"INSERT INTO `eff_users`
|
|
(`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
|
|
(22, '" . $u1 . "', 'Ïðèçðà÷íàÿ çàùèòà', 'add_zmproc=75|add_zaproc=75', 0, 77, 0, '" . $u1 . "', 0, 'priem', 141, 'spirit_block25.gif', 1, 1, '0', 0, 0, '', 0, 0, 0, 0, 0);"
|
|
);
|
|
$this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll'] * 0.5);
|
|
$this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll'] * 0.5);
|
|
} elseif ($this->stats[$this->uids[$u1]]['s7'] > 74 && $this->stats[$this->uids[$u1]]['s7'] < 100) {
|
|
//Àáñîëþòíàÿ çàùèòà
|
|
mysql_query(
|
|
"INSERT INTO `eff_users`
|
|
(`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
|
|
(22, '" . $u1 . "', 'Àáñîëþòíàÿ çàùèòà', 'add_zmproc=100|add_zaproc=100', 0, 77, 0, '" . $u1 . "', 0, 'priem', 358, 'block_absolute.gif', 1, 1, '0', 0, 0, '', 0, 0, 0, 0, 0);"
|
|
);
|
|
$this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll'] * 0.75);
|
|
$this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll'] * 0.75);
|
|
} elseif ($this->stats[$this->uids[$u1]]['s7'] > 99) {
|
|
//Àáñîëþòíàÿ çàùèòà x2
|
|
mysql_query(
|
|
"INSERT INTO `eff_users`
|
|
(`id_eff`, `uid`, `name`, `data`, `overType`, `timeUse`, `timeAce`, `user_use`, `delete`, `v1`, `v2`, `img2`, `x`, `hod`, `bj`, `sleeptime`, `no_Ace`, `file_finish`, `tr_life_user`, `deactiveTime`, `deactiveLast`, `mark`, `bs`) VALUES
|
|
(22, '" . $u1 . "', 'Çàùèòà Ìèðîçäàòåëÿ', 'add_zmproc=100|add_zaproc=100', 0, 77, 0, '" . $u1 . "', 0, 'priem', 358, 'wis_white_shield.gif', 1, 2, '0', 0, 0, '', 0, 0, 0, 0, 0);"
|
|
);
|
|
$this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll']);
|
|
$this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll']);
|
|
}
|
|
|
|
if ($this->stats[$this->uids[$u1]]['hpNow'] < 1) {
|
|
$this->stats[$this->uids[$u1]]['hpNow'] = 1;
|
|
}
|
|
if ($this->stats[$this->uids[$u1]]['mpNow'] < 1) {
|
|
$this->stats[$this->uids[$u1]]['mpNow'] = 1;
|
|
}
|
|
if ($this->stats[$this->uids[$u1]]['hpNow'] > $this->stats[$this->uids[$u1]]['hpAll']) {
|
|
$this->stats[$this->uids[$u1]]['hpNow'] = floor($this->stats[$this->uids[$u1]]['hpAll']);
|
|
}
|
|
if ($this->stats[$this->uids[$u1]]['mpNow'] > $this->stats[$this->uids[$u1]]['mpAll']) {
|
|
$this->stats[$this->uids[$u1]]['mpNow'] = floor($this->stats[$this->uids[$u1]]['mpAll']);
|
|
}
|
|
|
|
mysql_query(
|
|
'DELETE FROM `eff_users` WHERE `uid` = "' . $u1 . '" AND `id_eff` = 22 AND `v1` = "priem" AND `v2` = 324'
|
|
);
|
|
mysql_query(
|
|
'UPDATE `stats` SET `hpNow` = "' . $this->stats[$this->uids[$u1]]['hpNow'] . '",`mpNow` = "' . $this->stats[$this->uids[$u1]]['mpNow'] . '", `tactic7` = `tactic7` - 25 WHERE `id` = "' . $u1 . '" LIMIT 1'
|
|
);
|
|
$mas['text'] = '{tm1} <strong>' . $this->stats[$this->uids[$u1]]['login'] . '</strong> óáèò...<strong>' . $this->stats[$this->uids[$u1]]['login'] . '</strong> áûë ñïàñåí. ';
|
|
$this->priemAddLog(
|
|
$id, 1, 2, $u->info['id'], $u1,
|
|
' ',
|
|
$mas['text'],
|
|
($this->hodID + 0)
|
|
);
|
|
} else {
|
|
if (isset($this->stats[$this->uids[$u1]]['login'])) {
|
|
mysql_query('UPDATE `stats` SET `hpNow` = "0",`mpNow` = "0" WHERE `id` = "' . $u1 . '" LIMIT 1');
|
|
$this->stats[$this->uids[$u1]]['hpNow'] = 0;
|
|
$this->users[$this->uids[$u1]]['hpNow'] = 0;
|
|
$mas['text'] = '{tm1} <strong>' . $this->stats[$this->uids[$u1]]['login'] . '</strong> ïîãèá.';
|
|
$this->priemAddLog(
|
|
$id, 1, 2, $u->info['id'], $u1,
|
|
' ',
|
|
$mas['text'],
|
|
($this->hodID + 1)
|
|
//Óäàëÿåì ðàçìåí èç áàçû //ÒÓÒ âîçìîæåí ëàã óäàëåíèÿ
|
|
);
|
|
mysql_query(
|
|
'DELETE FROM `battle_act` WHERE `uid1` = "' . $this->stats[$this->uids[$u1]]['id'] . '" OR `uid2` = "' . $this->stats[$this->uids[$u1]]['id'] . '" OR `uid2` = "-' . $this->stats[$this->uids[$u1]]['id'] . '"'
|
|
);
|
|
mysql_query(
|
|
'DELETE FROM `eff_users` WHERE `uid` = "' . $this->stats[$this->uids[$u1]]['id'] . '" AND `v1` = "priem" AND `delete` =0'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|