Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Общение/помогите со скриптом
Поиск

помогите со скриптом

2 ответов23 просмотровСейчас просматривают: 1
_MiRoN_
_MiRoN_

Пользователь

Ветеран

Постов: 616

На форуме с: 28.08.2007

Репутация: +287

Рейтинг: 0

· 19.12.2008, 15:19

бонус за голосование , сборка l2f
запрос в базу под него не было , сделал сам запрос

Цитата
CREATE TABLE IF NOT EXISTS `l2top` (
`nick` varchar(30) NOT NULL,
`ip` varchar(20) NOT NULL,
`time` varchar(20) NOT NULL,
`id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

вот сам скрипт
Цитата
<?
if(!isset($_POST['name'])){


echo '<form action="golos.php" method="post">';


echo 'Ник персонажа<br/>
<input type="text" name="name" maxlength="15"/><br/><br/>
<input type="submit" value="Получить бонус"/>

</form>';


}else{

$bonus_id=6673; // ID вещи которую зачисляем игроку как бонус за голосование | По умолчанию 6673 - Festival Adena
$cols_for_vote=1; // Колличество зачисляемых вещей за одно голосование
$id_l2top=****; // Ваш ID в рейтинге L2Top

$host='*******'; // сервер на котором установлена база данных L2J
$user='*******'; // имя пользователя от базы данный
$pass='*******'; // пароль пользователя от базы данный
$db='*******'; // название базы данных

$mc = mysql_connect($host, $user, $pass);
if($mc){
$db = mysql_select_db ($db);
}

if(!$mc || !$db){

echo 'Нет соединения с базой данных.';

exit;

}


$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT obj_Id FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['obj_Id'];
$total=0;
$your_ip = $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 = $dip[0].'.'.$dip[1].'.'.$dip[2].'.'.$dip[3];

$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!$html || !preg_match_all('/<td>([^<]+)<\/td>/', $html, $matches))
$error .= 'Не удалось получить информацию с L2Top.ru!<br/>';
else
{
foreach ($matches[1] as $id => $nick)
{
if (strtolower(trim($nick))==strtolower(trim($name))){
$voters[] = $matches[1][$id-2];
}
}
if ($voters != array())
{
foreach ($voters as $time)
{
$result = mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT * FROM `items` WHERE `owner_id` = '".mysql_escape_string($char_id)."' AND `item_id` = 6673 AND `loc` = 'INVENTORY'");
$row = mysql_fetch_assoc($result);
if ($row == array())
{
$result = mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];

//mysql_query("INSERT INTO `items` (`object_id`, `owner_id`, `item_id`, `name`, `count`, `enchant_level`, `enchant_attr`, `enchant_attr_value`, `class`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `source`, `destination`, `create_type`, `create_time`, `shadow_life_time`, `flags`)
//VALUES(".$ins_id.", ".mysql_escape_string($char_id).", 6673, 'Festival Adena', ".$cols_for_vote.", 0, -2, 0, 'OTHER', 'INVENTORY', 40, 0, 0, , 0, 0, 0, 268480361, 'event[golos]', '".mysql_escape_string($time)."', -2, 0)");
mysql_query("INSERT INTO `items` (`object_id`, `owner_id`, `item_id`, `name`, `count`, `enchant_level`, `enchant_attr`, `enchant_attr_value`, `class`, `loc`, `loc_data`, `price_sell`, `price_buy`, `custom_type1`, `custom_type2`, `source`, `destination`, `create_type`, `shadow_life_time`, `flags`)
VALUES(".$ins_id.", ".mysql_escape_string($char_id).", 6673, 'Festival Adena', ".$cols_for_vote.", 0, -2, 0, 'OTHER', 'INVENTORY', 0, 0, 0, 0, 0, 0, 268480361, 'event[golos]', -2, 0)");

}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 6673 AND `loc` = 'INVENTORY'");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`, `owner_id`)
VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."', ".mysql_escape_string($char_id).")");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' зачислен.<br/>';
}
else
$error .= 'Голос за '. $time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}

echo $error.'<br><b>'.$total.'</b> Festival Adena зачислено вашему персонажу!<br/>';


echo "<br /><br /><br /><b>30 последних проголосовавших:</b>";
echo "<table width=250>";

$sql = mysql_query("SELECT * FROM `l2top` ORDER BY `date` DESC LIMIT 30");
//mysql_close($db);
if(mysql_num_rows($sql)>0)
while($result=mysql_fetch_array($sql))
if($result['nick']=="") echo "<tr><td>".$result['time']."</td><td>0</td></tr>";
else echo "<tr><td>".$result['nick']."</td><td>".$result['time']."</td></tr>";
else
echo "<tr><td colspan=2 align=center>Таблица голосования пуста</td></tr>";
echo "</table>";

}


?>

он дает бонус бесконечно russian_roulette.gif

структура item
Цитата
`object_id` int(10) unsigned NOT NULL default '0',
`owner_id` int(10) NOT NULL,
`item_id` smallint(5) unsigned NOT NULL default '0',
`name` VARCHAR(65) DEFAULT NULL,
`count` BIGINT UNSIGNED NOT NULL default '0',
`enchant_level` smallint(5) unsigned NOT NULL default '0',
`enchant_attr` smallint NOT NULL default '-2',
`enchant_attr_value` smallint NOT NULL default '0',
`class` ENUM('CONSUMABLE','MISC','EQUIPMENT','MATHERIALS','OTHER','PIECES','RECIPIES','SPELLBOOKS') NOT NULL DEFAULT 'OTHER',
`loc` enum('CLANWH','CWH_BACK','FREIGHT','INVENTORY','LEASE','PAPERDOLL','PET','PET_EQUIP','VOID','WAREHOUSE','MONSTER') NOT NULL,
`loc_data` int(11) default NULL,
`price_sell` mediumint(8) unsigned NOT NULL default '0',
`price_buy` mediumint(8) unsigned NOT NULL default '0',
`time_of_use` mediumint(8) default NULL,
`custom_type1` smallint(4) unsigned NOT NULL default '0',
`custom_type2` smallint(4) unsigned NOT NULL default '0',
`source` int(11) default NULL,
`destination` int(11) default NULL,
`create_type` varchar(255) default NULL,
`create_time` int(11) default NULL,
`shadow_life_time` smallint(5) NOT NULL default '0',
`flags` int(11) NOT NULL default '0',

мне кажется ошибка в запросе в бд , или может уже есть у кого нормально работающий скрипт?под l2f)

— Добрый ---|---

0
_MiRoN_
_MiRoN_

Пользователь

Ветеран

Постов: 616

На форуме с: 28.08.2007

Репутация: +287

Рейтинг: 0

· 20.12.2008, 06:57

все спасибо за внимание сделал)

— Добрый ---|---

0
Войдите или зарегистрируйтесь чтобы ответить