Файл: _gladiators2_/gladiators2/gladiators/gladiators/system/modules/mod_market.php
Строк: 178
<?
if($_GET["frame"]=="my_lotok" && $_GET["act"]=="arenda" && $_POST["arenda"]=="buy")
{
sleep(3);
$money = $_POST["days"]*2.5+($_POST["limit"]*2.5/10);
if($myself->align=="3")
$money = ToFloat((($money*70)/100),2);
else
$money = ToFloat($money,2);
$db->query("select count(*) from market_lotki where name='".$_POST["name"]."'");
$db->fetch_array();
if(!preg_match("/^[1-9][0-9]*$/",$_POST["days"]))
$error_msg = "Не верно указанно количество суток, это должно быть целое число.";
elseif(!preg_match("/^(10|20|50|100|1000)$/",$_POST["limit"]))
$error_msg = "Не верно указанно количество ячеек, это должно быть одно из значений - 10,20,50,100,1000.";
elseif(!preg_match("/^[-a-zA-Zа-яА-Я_s]{3,20}$/",$_POST["name"]))
$error_msg = "Не верно указанно название лотка, возможно использовать только английские или русские буквы, символы _ и -, а также пробел. Длина названия может быть от 3-х до 20-и символов.";
elseif($myself->money < $money)
$error_msg = "У вас нет ".$money." золота наличными!";
elseif($db->row[0])
$error_msg = "Лоток с таким именем уже существует!";
else
{
$finish = time()+($_POST["days"]*86400);
$finish_date = getdate($finish);
$lotok_id = time();
$myself->money -= $money;
$db->query("insert into market_lotki(id,start,finish,name,owner,lim) values('".$lotok_id."',".time().",".$finish.",'".$_POST["name"]."','".$_SESSION["id"]."#".$_SESSION["login"]."#".$myself->level."#".$myself->klan."#".$myself->align."','".$_POST["limit"]."')");
$db->query("select id from market_lotki where name='".$_POST["name"]."'");
$db->fetch_array();
private_add($_SESSION["id"],"market bot","Арендовал лоток MR".$db->row["id"]." до ".$finish_date["mday"].".".$finish_date["mon"].".".$finish_date["year"]." ".$finish_date["hours"].":".$finish_date["minutes"].":".$finish_date["seconds"]);
$scs_msg = "Все прошло успешно, вам выделили лоток MR".$db->row["id"]."!";
}
$_GET["act"] = "arenda";
$_POST["days"] = "";
}
if($_GET["frame"]=="view")
{
if(!$_GET["id"])
{
$_GET["frame"] = "main";
$_GET["act"] = "";
}
elseif(!@preg_match("/^[0-9]+$/",$_GET["id"]))
{
$error_msg = "Введен не верный номер лотка!";
$_GET["frame"] = "main";
$_GET["act"] = "";
$_GET["id"] = "";
}
else
{
$db->query("select count(*) from market_lotki where id='".$_GET["id"]."' and blocked='0'");
$db->fetch_array();
if(!$db->row[0])
{
$_GET["frame"] = "main";
$_GET["act"] = "";
$error_msg = "Лоток с указанным номером не существует либо он заблокирован!";
}
}
}
if(@preg_match("/^[0-9]+$/",$_GET["buy"]) && preg_match("/^[0-9]+$/",$_GET["id"]))
{
$db->query("select * from market_lotki where id='".$_GET["id"]."' and blocked='0'");
$db->num_rows();
$db->fetch_array();
@preg_match_all("/(^|;)[0-9]+(,".$_GET["buy"].",)[0-9]+(,)[0-9]+(.)[0-9]*(;)/",$db->row["items"],$items);
$row = explode(",",$items[0][0]);
$row[0] = str_replace(";","",$row[0]);
$row[3] = str_replace(";","",$row[3]);
$row_user = explode("#",$db->row["owner"]);
$db2->query("select count(*) from bag where pid='".$_GET["buy"]."' and owner='1000000'");
$db2->fetch_array();
if(!$db->num)
{
$error_msg = "Лоток не существует либо он заблокирован!";
$_GET["frame"] = "main";
$_GET["act"] = "";
}
elseif(!$items[0][0])
$error_msg = "Данный предмет не обнаружен в продаже на этом лотке!";
elseif(!$db2->row[0])
$error_msg = "Не возможно купить этот предмет!";
elseif($myself->money < $row[3])
$error_msg = "Не достаточно наличных для покупки товара!";
elseif($row_user[0]==$_SESSION["id"])
$error_msg = "Зачем вам покупать свои предметы? пусть их купят другие...";
else
{
$myself->money -= $row[3];
$db2->query("update users set money=money+".$row[3]." where id='".$row_user[0]."'");
$db2->query("select name from items where id='".$row[0]."'");
$db2->fetch_array();
@insys($row_user[1],"<b><span style=cursor:hand>".$_SESSION["login"]."</span></b> купил в вашем лотке «".$db->row["name"]."» предмет «".$db2->row["name"]."» за <b>".ToFloat($row[3],2)."</b> золота.");
@private_add($_SESSION["id"],"market bot","купил «".$db2->row["name"]."» на лотке «".$db->row["name"]."»(#".$db->row["id"].") за ".ToFloat($row[3],2)." золота");
@private_add($row_user[0],"market bot","У персонажа был продан предмет «".$db2->row["name"]."» с лотка «".$db->row["name"]."»(#".$db->row["id"].") за ".ToFloat($row[3],2)." золота персонажу ".$_SESSION["login"]);
$db2->query("update bag set owner='".$_SESSION["id"]."' where pid='".$row[1]."' and owner='1000000' LIMIT 1");
$db->row["items"] = str_replace($row[0].",".$row[1].",".$row[2].",".$row[3],";",$db->row["items"]);
$db2->query("update market_lotki set items='".$db->row["items"]."',sold=sold+1 where id='".$db->row["id"]."'");
$scs_msg = "Предмет «".$db2->row["name"]."» успешно куплен!";
}
}
if($_GET["act"]=="search" && ($_POST["owner"] | $_POST["name"]))
{
if($_POST["owner"] && !preg_match("/^[-a-zA-Zа-яА-Я0-9_s]{3,20}$/",$_POST["owner"]))
$error_msg = "Не верный ник владельца!";
elseif($_POST["name"] && !preg_match("/^[-a-zA-Zа-яА-Я_s]{3,20}$/",$_POST["name"]))
$error_msg = "Не верно указанно название лотка, возможно использовать только английские или русские буквы, символы _ и -, а также пробел. Длина названия может быть от 3-х до 20-и символов.";
if($error_msg)
{
$_POST["owner"] = "";
$_POST["name"] = "";
}
}
if($_GET["act"]=="manage")
{
$db->query("select blocked from market_lotki where id='".$_GET["id"]."' and owner LIKE '".$_SESSION["id"]."#%'");
$db->fetch_array();
$db->num_rows();
if(!@preg_match("/^[0-9]+$/",$_GET["id"]))
{
$error_msg = "Не верный номер лотка!";
$_GET["frame"] = "main";
$_GET["act"] = "";
}
elseif(!$db->num)
{
$error_msg = "Указанный лоток не существует либо не пренадлежит";
$_GET["frame"] = "main";
$_GET["act"] = "";
}
elseif( $db->row["blocked"]=="1" ) {
$error_msg = "Лоток заблокирован!";
$_GET["frame"] = "main";
$_GET["act"] = "";
}
}
if($_GET["act"]=="manage" && $_POST["do"]=="continue")
{
$db->query("select lim,finish from market_lotki where id='".$_GET["id"]."'");
$db->fetch_array();
$money = $_POST["days"]*2.5+($db->row["lim"]*2.5/10);
if($myself->align=="3")
$money = ToFloat((($money*70)/100),2);
else
$money = ToFloat($money,2);
$finish = $db->row["finish"]+($_POST["days"]*86400);
if(!@preg_match("/^[1-9][0-9]*$/",$_POST["days"]))
$error_msg = "Не верно указано количество дней!".$_POST["days"];
elseif($myself->money < $money)
$error_msg = "У вас не достаточно наличных для оплаты аренды!";
elseif( $finish-time() > 31622400 )
$error_msg = "Максимальный срок аренды 1 год, вы не его превышать.";
else
{
$myself->money -= $money;
$db->query("update market_lotki set finish=".$finish." where id='".$_GET["id"]."'");
@private_add($_SESSION["id"],"market bot","Продлил аренду лотка MR".$_GET["id"]." до ".UDate("mday.mon.year hours:minutes",getdate($finish)));
$scs_msg = "Аренда успешно продлена до ".UDate("mday.mon.year hours:minutes",getdate($finish));
}
}
if($_GET["act"]=="manage" && $_GET["act2"]=="change_name" && $_POST["name"])
{
$db->query("select count(*) from market_lotki where name='".$_POST["name"]."'");
$db->fetch_array();
if(!preg_match("/^[-a-zA-Zа-яА-Я_s]{3,20}$/",$_POST["name"]))
$error_msg = "Не верно указанно название лотка, возможно использовать только английские или русские буквы, символы _ и -, а также пробел. Длина названия может быть от 3-х до 20-и символов.";
elseif($db->row[0])
$error_msg = "Лоток с таким именем уже существует!";
elseif($myself->money < 10)
$error_msg = "Не достаточно наличных для оплаты изменения названия!";
else
{
$myself->money -= 10;
$db->query("update market_lotki set name='".$_POST["name"]."' where id='".$_GET["id"]."'");
@private_add($_SESSION["id"],"market bot","Переименовал лоток MR".$_GET["id"]." в "".$_POST["name"].""");
$scs_msg = "Лоток успешно переименован в "".$_POST["name"].""!";
}
}
if($_GET["frame"]=="my_lotok" && $_GET["act"]=="manage" && $_GET["act2"]=="items" && preg_match("/^[0-9]+$/",$_GET["return"]) && preg_match("/^[0-9]+$/",$_GET["id"]))
{
$db->query("select * from market_lotki where id='".$_GET["id"]."'");
$db->num_rows();
$db->fetch_array();
@preg_match_all("/([0-9]+,".$_GET["return"].",[0-9]+,[0-9]+.[0-9]+;)/",$db->row["items"],$items);
$row = explode(",",$items[0][0]);
$row_user = explode("#",$db->row["owner"]);
$db2->query("select count(*) from bag where pid='".$_GET["return"]."' and owner='1000000'");
$db2->fetch_array();
if(!$items[0][0])
$error_msg = "Не возможно забрать этот предмет с продажи!";
elseif(!$db2->row[0])
$error_msg = "Не возможно забрать этот предмет с продажи!";
else
{
$db2->query("select name from items where id='".$row[0]."'");
$db2->fetch_array();
@private_add($_SESSION["id"],"market bot","забрал предмет «".$db2->row["name"]."» со своего лотка «".$db->row["name"]."»(#".$db->row["id"].")");
$db2->query("update bag set owner='".$_SESSION["id"]."' where pid='".$row[1]."' and owner='1000000' LIMIT 1");
$db->row["items"] = str_replace($row[0].",".$row[1].",".$row[2].",".$row[3],"",$db->row["items"]);
$db2->query("update market_lotki set items='".$db->row["items"]."' where id='".$db->row["id"]."'");
$scs_msg = "Вы успешно забрали предмет «".$db2->row["name"]."» со своего лотка!";
}
}
if($_GET["frame"]=="my_lotok" && $_GET["act"]=="manage" && $_GET["act2"]=="bag" && preg_match("/^[0-9]+$/",$_GET["return"]) && preg_match("/^[0-9]+$/",$_GET["id"]) && $_POST["set_gold"])
{
$db->query("select items.id,items.name,items.otdel,items.price from items,bag where bag.pid='".$_GET["return"]."' and bag.owner='".$_SESSION["id"]."' and bag.id=items.id and dressed='n' and present='n'");
$db->fetch_array();
$db->num_rows();
$item_name = $db->row["name"];
if(!preg_match("/^[0-9]+(.){0,1}[0-9]*$/",$_POST["set_gold"]))
$error_msg = "Не верно указана стоимость предмета!";
elseif($_POST["set_gold"] < ($db2->row["price"]*30/100))
$error_msg = "Вы не можете установить столь низкую цену на предмет!";
elseif(!$db->num)
$error_msg = "Не возможно положить данный предмет на лавку!";
else
{
$db2->query("select id,name,items from market_lotki where id='".$_GET["id"]."'");
$db2->fetch_array();
$_POST["set_gold"] = ToFloat($_POST["set_gold"],2);
$items = $db2->row["items"].$db->row["id"].",".$_GET["return"].",".$db->row["otdel"].",".$_POST["set_gold"].";";
private_add($_SESSION["id"],"market bot","положил на лавку «".$db2->row["name"]."»(MR".$db2->row["id"].") предмет «".$db->row["name"]."» и установил стоимость ".$_POST["set_gold"]." золота.");
$db2->query("update bag set owner='1000000' where pid='".$_GET["return"]."' and owner='".$_SESSION["id"]."' and dressed='n' and present='n' LIMIT 1");
$db2->query("update market_lotki set items='".$items."' where id='".$_GET["id"]."'");
$scs_msg = "Вы успешно положили на лавку предмет «".$db->row["name"]."» и установили стоимость ".$_POST["set_gold"]." золота!";
}
}
?>