445 lines
17 KiB
PHP
445 lines
17 KiB
PHP
<?php
|
||
echo "
|
||
<script language='JavaScript'>
|
||
var elem = document.getElementById('se-pre-con');
|
||
elem.parentNode.removeChild(elem);
|
||
</script>
|
||
";
|
||
if(!defined('GAME')) {
|
||
die();
|
||
}
|
||
|
||
$slot = mysql_fetch_array(mysql_query('SELECT * FROM `users_animal_slot` WHERE `uid` = "'.$u->info['id'].'" LIMIT 1'));
|
||
if(!isset($slot['id'])) {
|
||
if( mysql_query('INSERT INTO `users_animal_slot` ( `uid`,`slots`,`ekr` ) VALUES ( "'.$u->info['id'].'","2","0" )') ) {
|
||
$slot = mysql_fetch_array(mysql_query('SELECT * FROM `users_animal_slot` WHERE `uid` = "'.$u->info['id'].'" LIMIT 1'));
|
||
}else{
|
||
$u->error = 'Ошибка в работе базы данных...';
|
||
}
|
||
}
|
||
|
||
$slot['price_next'] = 5;
|
||
|
||
$petox = mysql_fetch_array(mysql_query('SELECT * FROM `obraz_pet` WHERE `uid` = "'.$u->info['id'].'" LIMIT 1'));
|
||
$petox = $petox[0];
|
||
|
||
$an_eda = array(
|
||
0.05,
|
||
0.07,
|
||
0.10,
|
||
0.15,
|
||
0.20,
|
||
0.30,
|
||
0.40,
|
||
0.50,
|
||
0.60,
|
||
0.70,
|
||
0.80,
|
||
1.00,
|
||
1.50,
|
||
2.00,
|
||
2.50,
|
||
3.00,
|
||
3.50,
|
||
4.00,
|
||
4.50,
|
||
5.00,
|
||
5.50,
|
||
7.00
|
||
);
|
||
|
||
function en_ru($txt) {
|
||
$g = false;
|
||
$en = preg_match("/^(([0-9a-zA-Z _-])+)$/i", $txt);
|
||
$ru = preg_match("/^(([0-9а-яА-Я _-])+)$/i", $txt);
|
||
if(($ru && $en) || (!$ru && !$en)) {
|
||
$g = true;
|
||
}
|
||
return $g;
|
||
}
|
||
//
|
||
function testBad($txt) {
|
||
$white = '-_ 0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNMЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю';
|
||
$r = false;
|
||
$i = 0;
|
||
while( $i != -1 ) {
|
||
if( isset($txt[$i]) ) {
|
||
$g = false;
|
||
$j = 0;
|
||
while( $j != -1 ) {
|
||
if(isset($white[$j])) {
|
||
if( $white[$j] == $txt[$i] ) {
|
||
$g = true;
|
||
}
|
||
}else{
|
||
$j = -2;
|
||
}
|
||
$j++;
|
||
}
|
||
if( $g == false ) {
|
||
$r = true;
|
||
}
|
||
}else{
|
||
$i = -2;
|
||
}
|
||
$i++;
|
||
}
|
||
return $r;
|
||
}
|
||
|
||
function is_login_an($login) {
|
||
$r = true;
|
||
//
|
||
$login = htmlspecialchars($login,NULL);
|
||
//
|
||
$bad = array(
|
||
'Мусорщик' => 1,
|
||
'Мироздатель' => 1
|
||
);
|
||
//
|
||
//$login_db = mysql_fetch_array(mysql_query('SELECT `id` FROM `users` WHERE `login` = "'.mysql_real_escape_string($login).'" LIMIT 1'));
|
||
//$login_an_db = mysql_fetch_array(mysql_query('SELECT `id` FROM `users_animal` WHERE `name` = "'.mysql_real_escape_string($login).'" LIMIT 1'));
|
||
if( isset($login_db['id']) || isset($login_an_db['id']) || isset($bad[$login]) ) {
|
||
$r = false;
|
||
}else{
|
||
$true = true;
|
||
//
|
||
/*
|
||
Логин может содержать от 2 до 16 символов, и состоять только из букв русского ИЛИ английского алфавита, цифр, символов '_', '-' и пробела.
|
||
Логин не может начинаться или заканчиваться символами '_', '-' или пробелом.
|
||
*/
|
||
//
|
||
$login = str_replace(' ',' ',$login);
|
||
$login = str_replace('%',' ',$login);
|
||
$login = str_replace(' ',' ',$login);
|
||
//
|
||
if( strlen($login) > 16 ) {
|
||
$true = false;
|
||
}elseif( strlen($login) < 2 ) {
|
||
$true = false;
|
||
}elseif( strripos($login,' ') == true ) {
|
||
$true = false;
|
||
}elseif( substr($login,1) == ' ' || substr($login,-1) == ' ' ) {
|
||
$true = false;
|
||
}elseif( substr($login,1) == '-' || substr($login,-1) == '-' ) {
|
||
$true = false;
|
||
}elseif( substr($login,1) == '_' || substr($login,-1) == '_' ) {
|
||
$true = false;
|
||
}elseif( testBad($login) == true ) {
|
||
$true = false;
|
||
}elseif( en_ru(str_replace('ё','е',str_replace('Ё','Е',$login))) == true ) {
|
||
$true = false;
|
||
}
|
||
//
|
||
if( $true == false ) {
|
||
$r = false;
|
||
}else{
|
||
$r = true;
|
||
}
|
||
}
|
||
return $r;
|
||
}
|
||
|
||
if(isset($_GET['buy_slot'])) {
|
||
if($u->info['money2'] < $slot['price_nex']) {
|
||
$u->error = 'Недостаточно денег';
|
||
}elseif($u->info['money2'] < 5 ) {
|
||
$u->error = 'Недостаточно екр!';
|
||
}elseif( isset($slot['id']) && $slot['slots'] < 7 ) {
|
||
$slot['slots']++;
|
||
$u->info['money2'] -= 5;
|
||
mysql_query('UPDATE `users_animal_slot` SET `slots` = "'.$slot['slots'].'" WHERE `id` = "'.$slot['id'].'" LIMIT 1');
|
||
mysql_query('UPDATE `users` SET `money2` = "'.$u->info['money2'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||
$u->error = 'Куплен слот для зверя.';
|
||
}else{
|
||
$u->error = 'Нельзя купить больше слотов';
|
||
}
|
||
}elseif(isset($_GET['pet'])) {
|
||
$_GET['pet'] = round((int)$_GET['pet']);
|
||
$_GET['petname'] = htmlspecialchars($_GET['petname'],NULL);
|
||
$ax = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `users_animal` WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 LIMIT 1'));
|
||
$ax = $ax[0];
|
||
if( $_GET['pet'] < 1 || $_GET['pet'] > 7 ) {
|
||
$u->error = 'Нельзя привзвать такого зверя';
|
||
}elseif( $ax >= $slot['slots'] ) {
|
||
$u->error = 'Нет свободных слотов для зверя';
|
||
}elseif( $u->info['money'] < 50 ) {
|
||
$u->error = 'Недостаточно денег';
|
||
}elseif(is_login_an($_GET['petname']) == false) {
|
||
$u->error = 'Неверная кличка зверя, выберите другую';
|
||
}else{
|
||
$u->error = 'Зверь пришел к Вам!';
|
||
$u->info['money'] -= 50;
|
||
mysql_query('UPDATE `users` SET `money` = "'.$u->info['money'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||
//
|
||
$anm['type'] = $_GET['pet'];
|
||
//
|
||
if($anm['type']==1)
|
||
{
|
||
$anm['name'] = 'Кот';
|
||
$anm['sex'] = 0;
|
||
$anm['obraz'] = array(1=>'20864.gif',2=>'21301.gif',3=>'21139.gif',4=>'20427.gif');
|
||
$anm['stats'] = 's1=2|s2=5|s3=2|s4=5|rinv=40|m9=5|m6=10';
|
||
}elseif($anm['type']==2)
|
||
{
|
||
$anm['name'] = 'Сова';
|
||
$anm['sex'] = 1;
|
||
$anm['obraz'] = array(1=>'21415.gif',2=>'21722.gif',3=>'21550.gif');
|
||
$anm['stats'] = 's1=2|s2=2|s3=5|s4=5|rinv=40|m9=5|m6=10';
|
||
}elseif($anm['type']==3)
|
||
{
|
||
$anm['name'] = 'Светляк';
|
||
$anm['sex'] = 0;
|
||
$anm['obraz'] = array(1=>'22277.gif',2=>'22265.gif',3=>'22333.gif',4=>'22298.gif');
|
||
$anm['stats'] = 's1=3|s2=10|s3=3|s4=4|rinv=40|m9=5|m6=10';
|
||
}elseif($anm['type']==4)
|
||
{
|
||
$anm['name'] = 'Чертяка';
|
||
$anm['sex'] = 0;
|
||
$anm['obraz'] = array(1=>'22177.gif',2=>'21976.gif',3=>'21877.gif');
|
||
$anm['stats'] = 's1=25|s2=3|s3=3|s4=25|rinv=40|m9=5|m6=10';
|
||
}elseif($anm['type']==5)
|
||
{
|
||
$anm['name'] = 'Пес';
|
||
$anm['sex'] = 0;
|
||
$anm['obraz'] = array(1=>'22352.gif',2=>'23024.gif',3=>'22900.gif',4=>'22501.gif',5=>'22700.gif');
|
||
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
|
||
}elseif($anm['type']==6)
|
||
{
|
||
$anm['name'] = 'Свин';
|
||
$anm['sex'] = 0;
|
||
$anm['obraz'] = array(1=>'24000.gif',2=>'25000.gif',3=>'27000.gif',4=>'28000.gif');
|
||
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
|
||
}elseif($anm['type']==7)
|
||
{
|
||
$anm['name'] = 'Дракон';
|
||
$anm['sex'] = 0;
|
||
$anm['obraz'] = array(1=>'21338_pgtpdbx.gif');
|
||
$anm['stats'] = 's1=5|s2=3|s3=3|s4=5|rinv=40|m9=5|m6=10';
|
||
}
|
||
//
|
||
$anm['name'] = htmlspecialchars($_GET['petname'],NULL);
|
||
$anm['name'] = preg_replace("/&#?[a-z0-9]+;/i","", $anm['name']);
|
||
//
|
||
$anm['obraz'] = $anm['obraz'][rand(1,count($anm['obraz']))];
|
||
$anm['obraz'] = str_replace('.gif','',$anm['obraz']);
|
||
$anm['obraz'] = str_replace('.jpg','',$anm['obraz']);
|
||
$anm['obraz'] = str_replace('.png','',$anm['obraz']);
|
||
$ins = mysql_query('INSERT INTO `users_animal` (`type`,`name`,`uid`,`obraz`,`stats`,`sex`,`eda`) VALUES ("'.$anm['type'].'","'.$anm['name'].'","'.$u->info['id'].'","'.$anm['obraz'].'","'.$anm['stats'].'","'.$anm['sex'].'","0")');
|
||
if($ins)
|
||
{
|
||
$u->addDelo(1,$u->info['id'],'"<font color="maroon">System.inventory</font>": Персонаж призвал зверя "'.$_GET['petname'].'" ('.$_GET['pet'].') - 50 кр.',time(),$u->info['city'],'System.inventory',0,0);
|
||
}else{
|
||
$u->error = 'Не удалось призвать зверя, что-то здесь не так ...';
|
||
}
|
||
//
|
||
}
|
||
//
|
||
}elseif(isset($_GET['eda'])) {
|
||
$anm = mysql_fetch_array(mysql_query('SELECT * FROM `users_animal` WHERE `id` = "'.mysql_real_escape_string($_GET['eda']).'" AND `uid` = "'.$u->info['id'].'" AND `delete` = 0 LIMIT 1'));
|
||
$x = round((int)$_GET['vvv']);
|
||
if($x > 100 - $anm['eda']) { $x = 100 - $anm['eda']; }
|
||
if($x < 1) { $x = 1; }
|
||
if($x > 100) { $x = 100; }
|
||
if(!isset($anm['id'])) {
|
||
$u->error = 'Зверь не найден.';
|
||
}elseif( $anm['eda'] >= 100 ) {
|
||
$u->error = 'Зверь сыт и не нуждается в еде.';
|
||
}elseif($an_eda[$anm['level']]*$_GET['vvv'] > $u->info['money']) {
|
||
$u->error = 'Недостаточно денег.';
|
||
}else{
|
||
$u->error = 'Покормили зверя "'.$anm['name'].'" на '.$x.' ед. за '.($x*$an_eda[$anm['level']]).' кр.';
|
||
$u->info['money'] -= ($x*$an_eda[$anm['level']]);
|
||
$anm['eda'] += $x;
|
||
mysql_query('UPDATE `users` SET `money` = "'.$u->info['money'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||
mysql_query('UPDATE `users_animal` SET `eda` = "'.$anm['eda'].'" WHERE `id` = "'.$anm['id'].'" LIMIT 1');
|
||
}
|
||
}elseif(isset($_GET['pet_del'])) {
|
||
if(mysql_query('UPDATE `users_animal` SET `delete` = "'.time().'" WHERE `id` = "'.mysql_real_escape_string($_GET['pet_del']).'" AND `delete` = 0 AND `uid` = "'.$u->info['id'].'" LIMIT 1')) {
|
||
$u->error = 'Зверь был выгнан.';
|
||
}else{
|
||
$u->error = 'Зверь не найден.';
|
||
}
|
||
}elseif(isset($_GET['rename'])) {
|
||
$anm = mysql_fetch_array(mysql_query('SELECT * FROM `users_animal` WHERE `id` = "'.mysql_real_escape_string($_GET['rename']).'" AND `uid` = "'.$u->info['id'].'" AND `delete` = 0 LIMIT 1'));
|
||
$_GET['vvv'] = htmlspecialchars($_GET['vvv'],NULL);
|
||
if(!isset($anm['id'])) {
|
||
$u->error = 'Зверь не найден.';
|
||
}elseif(30 > $u->info['money']) {
|
||
$u->error = 'Недостаточно денег.';
|
||
}else{
|
||
$u->info['money'] -= 30;
|
||
$anm['name'] = preg_replace('/\W/', '', $_GET['vvv']); //$_GET['vvv'];
|
||
$u->error = 'Кличка зверя изменена на "'.$anm['name'].'" за 30 кр.';
|
||
mysql_query('UPDATE `users` SET `money` = "'.$u->info['money'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||
mysql_query('UPDATE `users_animal` SET `name` = "'.mysql_real_escape_string($anm['name']).'" WHERE `id` = "'.mysql_real_escape_string($anm['id']).'" LIMIT 1');
|
||
}
|
||
}elseif(isset($_GET['shadow']) && $petox > 0) {
|
||
if(isset($_GET['rechange'])) {
|
||
$u->error = 'Образ питомца снят.';
|
||
mysql_query('UPDATE `obraz_pet` SET `use` = 0 WHERE `uid` = "'.$u->info['id'].'"');
|
||
}elseif(isset($_GET['change'])) {
|
||
$u->error = 'Образ питомца установлен.';
|
||
mysql_query('UPDATE `obraz_pet` SET `use` = 0 WHERE `uid` = "'.$u->info['id'].'"');
|
||
mysql_query('UPDATE `obraz_pet` SET `use` = 1 WHERE `uid` = "'.$u->info['id'].'" AND `id` = "'.mysql_real_escape_string($_GET['change']).'" LIMIT 1');
|
||
}
|
||
}
|
||
?>
|
||
<style>
|
||
.an_border {
|
||
border:1px solid #aaaaaa;
|
||
padding:2px;
|
||
width:120px;
|
||
height:220px;
|
||
}
|
||
.an_btn {
|
||
cursor:pointer;
|
||
}
|
||
.an_btn:hover {
|
||
cursor:pointer;
|
||
background-color:#cccccc;
|
||
}
|
||
.an_img64x64 {
|
||
padding-top:75px;
|
||
height:145px;
|
||
}
|
||
.an_line {
|
||
text-align:center;
|
||
padding:5px;
|
||
}
|
||
.an_line2 {
|
||
text-align:left;
|
||
padding:5px;
|
||
width:124px;
|
||
}
|
||
.an_w120 {
|
||
width:120px;
|
||
}
|
||
.cp {
|
||
cursor:pointer;
|
||
}
|
||
.obrsl1 {
|
||
border:1px solid #888;
|
||
padding:1px;
|
||
margin-bottom:5px;
|
||
}
|
||
.obrsl1d {
|
||
display:inline-block;
|
||
widows:120px;
|
||
}
|
||
</style>
|
||
<center><b>Ваши деньги:<font color=darkgreen> <?=$u->info['money']?> кр.</center></b></font>
|
||
<div align="right">
|
||
<?php
|
||
if(!isset($_GET['shadow']) || $petox == 0 ) {
|
||
if( $petox > 0 ) {
|
||
echo '<button onClick="location.href=\'/main.php?newanimal&shadow\';" class="btn btn-success">Образ</button> ';
|
||
}else{
|
||
echo '<button disabled="disabled" onClick="alert(\'Установка образов возможно после покупки хотя бы одного образа для питомца.\');" class="btn btn-success">Образ</button> ';
|
||
}
|
||
?>
|
||
<button onClick="location.href='/main.php?newanimal';" class="btn">Обновить</button>
|
||
<button onClick="location.href='/main.php?inv';" class="btn">Вернуться</button>
|
||
<?php }else{ ?>
|
||
<button onClick="location.href='/main.php?newanimal&shadow';" class="btn">Обновить</button>
|
||
<button onClick="location.href='/main.php?newanimal';" class="btn">Вернуться</button>
|
||
<?php } ?>
|
||
</div>
|
||
<?php
|
||
if( $u->error != '' ) {
|
||
echo '<div><b><font color="red">'.$u->error.'</font></b></div>';
|
||
}
|
||
?>
|
||
<hr>
|
||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||
<tr>
|
||
<?php
|
||
if(isset($_GET['shadow']) && $petox > 0) {
|
||
//
|
||
echo '<td align="left">';
|
||
$sp = mysql_query('SELECT * FROM `obraz_pet` WHERE `uid` = "'.$u->info['id'].'"');
|
||
while( $pl = mysql_fetch_array($sp) ) {
|
||
echo '<div class="obrsl1d">';
|
||
//
|
||
echo '<img class="obrsl1" src="//img.new-combats.tech/pet/'.$pl['img'].'" width="120" height="40"><br><div align="center">';
|
||
if( $pl['use'] == 0 ) {
|
||
echo '<input onclick="location.href=\'/main.php?newanimal&shadow&change='.$pl['id'].'\';" style="width:120px;" type="button" value="Выбрать" class="btn">';
|
||
}else{
|
||
echo '<input onclick="location.href=\'/main.php?newanimal&shadow&rechange\';" style="width:120px;" type="button" value="Используется" class="btn btn-success">';
|
||
}
|
||
echo '</div>';
|
||
//
|
||
echo '</div>';
|
||
}
|
||
echo '</td>';
|
||
}else{
|
||
$sp = mysql_query('SELECT * FROM `users_animal` WHERE `uid` = "'.$u->info['id'].'" AND `delete` = 0 LIMIT 6');
|
||
$i = 1;
|
||
while( $pl = mysql_fetch_array($sp) ) {
|
||
//
|
||
if( isset($_GET['selected']) && $pl['id'] == $_GET['selected'] ) {
|
||
if( $u->info['animal'] != $pl['id'] ) {
|
||
$u->info['animal'] = $pl['id'];
|
||
}else{
|
||
$u->info['animal'] = 0;
|
||
}
|
||
mysql_query('UPDATE `users` SET `animal` = "'.$u->info['animal'].'" WHERE `id` = "'.$u->info['id'].'" LIMIT 1');
|
||
}
|
||
//
|
||
//$kp = 0.05; //цена корма
|
||
$kp = $an_eda[$pl['level']];
|
||
//$kp = $an_eda[1];
|
||
//
|
||
echo '<td width="16%" align="center" valign="top">';
|
||
//
|
||
echo '<div class="an_line"><b><img onclick="top.anrename('.$pl['id'].',\''.$pl['name'].'\');" class="cp" src="//img.new-combats.tech/pencil.png" width="16" height="16" title="Изменить кличку"> <small>'.$pl['name'].'</small> <img onclick="if(confirm(\'Вы действительно хотите ВЫГНАТЬ зверя "'.$pl['name'].'"?\')) location.href=\'main.php?newanimal&pet_del='.$pl['id'].'\';" class="cp" src="//img.new-combats.tech/i/clear.gif" title="Выгнать" width="13" height="13"></b></div>';
|
||
//
|
||
echo '<div title="'.$pl['name'].'" class="an_border"><img src="//img.new-combats.tech/i/obraz/'.$pl['sex'].'/'.$pl['obraz'].'.gif" width="120" height="220"></div>';
|
||
//
|
||
echo '<div class="an_line2"><small>';
|
||
echo 'Уровень: '.$pl['level'].'<br>Опыт: <b>'.$pl['exp'].'</b><br>Сытность: '.$pl['eda'].'/100<br>';
|
||
//
|
||
echo '<input ';
|
||
if( $pl['eda'] >= 100 ) {
|
||
echo ' disabled="disabled" ';
|
||
}else{
|
||
echo ' onclick="top.eda('.$pl['id'].',\''.$pl['name'].'\','.(0+$kp).','.(0+100-$pl['eda']).');" ';
|
||
}
|
||
echo 'type="button" value="Покормить" class="btn an_w120';
|
||
if( $pl['eda'] < 1 ) {
|
||
echo ' btn-danger';
|
||
}
|
||
echo '">';
|
||
//
|
||
if( $pl['id'] != $u->info['animal'] || ( isset($_GET['selected']) && $pl['id'] != $_GET['selected'] ) ) {
|
||
echo '<input onClick="location.href=\'main.php?newanimal&selected='.$pl['id'].'\';" type="button" value="Выбрать" class="btn an_w120">';
|
||
}else{
|
||
echo '<input onClick="location.href=\'main.php?newanimal&selected='.$pl['id'].'\';" type="button" value="Используется" class="btn btn-success an_w120">';
|
||
}
|
||
//
|
||
echo '</small></div>';
|
||
//
|
||
echo '</td>';
|
||
$i++;
|
||
}
|
||
if( $i <= 6 ) {
|
||
$j = 0;
|
||
while( $i <= 6 ) {
|
||
if( $i <= $slot['slots'] ) {
|
||
echo '<td width="16%" align="center" valign="top"><div class="an_line"> </div><div onclick="top.petbuy();" onMouseOver="top.hi(this,\'Завести питомца (50 КР)\',event,0,1,1,1,\'\');" onMouseOut="top.hic(event);" onMouseDown="top.hic(event);" class="an_border an_btn an_img64x64"><img src="//img.new-combats.tech/pet_free_slot.png" width="64" height="64"></div></td>';
|
||
}else{
|
||
if( $j == 0 ) {
|
||
echo '<td width="16%" align="center" valign="top"><div class="an_line"> </div><div onclick="if(confirm(\'Вы действительно хотите купить слот за '.$slot['price_next'].' ЕКР?\')) location.href=\'main.php?newanimal&buy_slot\';" onMouseOver="top.hi(this,\'Купить слот ('.$slot['price_next'].' ЕКР)\',event,0,1,1,1,\'\');" onMouseOut="top.hic(event);" onMouseDown="top.hic(event);" class="an_border an_btn an_img64x64"><img src="//img.new-combats.tech/pet_add.png" width="64" height="64"></div></td>';
|
||
$j++;
|
||
}else{
|
||
echo '<td width="16%" align="center" valign="top"><div class="an_line"> </div><div title="Недоступно" class="an_border an_img64x64"><img src="//img.new-combats.tech/pet_lock.png" width="64" height="64"></div></td>';
|
||
}
|
||
}
|
||
$i++;
|
||
}
|
||
}
|
||
}
|
||
?>
|
||
</tr>
|
||
</table>
|