<?
// тут настраиваем
$sms = array(30, 60, 99, 130, 200, 300, 475); // стоимость смс в центах
$coins = array( 1, 1, 1, 1, 1, 1, 1); // количество монет за каждую смс
$secretkey = 'тут непонял'; // ключ smsexpress
$mysql_host = '127.0.0.1'; // хост базы
$mysql_user = 'root; // юзер
$mysql_pass = 'root'; // пасс
$mysql_base = 'l2jdb'; // название базы
// дальше не трогаем
$connected = false;
$mysql = null;
$reply = 'Ошибка безопасности. Обратитесь к администрации сервера.';
function connect()
{
global $mysql_host;
global $mysql_user;
global $mysql_pass;
global $mysql_base;
global $mysql;
global $connected;
global $reply;
if ($connected)
return;
$mysql = @mysql_connect($mysql_host, $mysql_user, $mysql_pass, true) or die($reply);
@mysql_select_db($mysql_base, $mysql) or die($reply);
$connected = true;
}
function query($query)
{
global $mysql;
if (is_null($mysql))
connect();
$result = @mysql_query($query, $mysql);
$return = array();
while ($result_line = mysql_fetch_array($result, MYSQL_ASSOC))
$return[] = $result_line;
@mysql_free_result($result);
return $return;
}
function character_exists($nick)
{
$nick = addslashes($nick);
$account = addslashes($account);
$count = query("SELECT COUNT(*) as 'count' FROM `characters` WHERE lower(`char_name`) = lower('$nick')");
return ((int)$count[0]['count'] > 0);
}
function getFreeObjId($srvId)
{
$freeId = query("SELECT MAX(`object_id`) + 1 as 'obid' FROM `temporaryObjectTable`");
return (int)$freeId[0]['obid'];
}
function payCoins($char, $count)
{
// char object id
$charId = query("SELECT `charId` FROM `characters` WHERE lower(`char_name`) = lower('$char') LIMIT 1");
$charId = $charId[0]['charId'];
if ($charId < 1) return -1;
// coins object id
$colId = query("SELECT `object_id` FROM `items` WHERE `owner_id` = '$charId' AND `item_id` = '4037' LIMIT 1");
$colId = $colId[0]['object_id'];
if ((int)$colId > 0)
{
query("UPDATE `items` SET `count`=`count`+$count WHERE `owner_id`='$charId' AND `object_id`='$colId' AND `item_id` = '4037'");
}
else
{
$colId = $this->getFreeObjId($srvId);
query("INSERT INTO `items` VALUES ('$charId', '$colId', '4037', '$count', '0', 'INVENTORY', '0', '0', '0', '-1', '')");
query("INSERT INTO `temporaryObjectTable` VALUES ('$colId')", $srvId);
}
}
$num = $_GET['num'];
$senderid = $_GET['senderid'];
$cost = $_GET['cost'];
$profit = $_GET['profit'];
$text = $_GET['text'];
$test = $_GET['test'];
$sign = $_GET['sign'];
$true_sign = md5($senderid.$cost.$profit.$text.$test.$secretkey);
if ($sign == $true_sign)
{
$char = addslashes(trim($text));
$cost = (int)$cost;
$count = 1;
if (in_array($cost, $sms))
{
for ($i = 0; $i < count($sms); $i++)
if ((int)$cost == (int)$sms[$i])
$count = (int)$coins[$i];
// персонаж существует?
if (character_exists($char))
{
// зачисляем монеты
payCoins($char, $count);
$reply = 'Персонажу зачислено '.$count.' монет удачи.';
}
else
$reply = 'Указанного персонажа не существует на сервере.';
}
else
$reply = 'Сообщение должно быть отправлено на один из номеров, указанных на сайте.';
}
echo $reply;
?>