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

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

ruen
Форум/Web обвязка/[help]Пару вопросов.
Поиск

[help]Пару вопросов.

9 ответов246 просмотровСейчас просматривают: 1
wwwMATRIXwww
wwwMATRIXwww

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

Бывалый

Постов: 417

На форуме с: 26.04.2008

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

Рейтинг: 0

· 03.12.2008, 20:52

Народ , у меня два вопроса:


1) Как добавить % игроков в статистики онлайна на сервере?т.е. в игре 300 человек , добавляем 10% в скрипте и у нас будет 330.

2) скрипт - выдача приза за голосование у меня работает на добавление итема в инвентарь ( при условии , что 1 итем есть в инвентаре ) Как переделать запрос на выдачу без итема?





Спасибками не обделю)

— ы

0
B
billsmith

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

Новичок

Постов: 11

На форуме с: 11.11.2007

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

Рейтинг: 0

· 04.12.2008, 22:13

1)Выложи скрипт который отображает онлайн. Исправить строку нада например так

Код
$online=$online/10 + $online

2) Сделать проверку на присутствие итема и если его нет то использовать не UPDATE а INSERT вот пример:
Код
$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`, `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/>';


Кстати в этой части скрипта убран баг с накруткой, когда монеты есть и в складе и в инвентаре.

0
Gambit90
Gambit90

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

Бывалый

Постов: 426

На форуме с: 17.09.2008

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

Рейтинг: 0

· 04.12.2008, 23:02

billsmith: 1)Выложи скрипт который отображает онлайн. Исправить строку нада например так
Код
$online=$online/10 + $online

Неработает

0
Саня
Саня

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

Бывалый

Постов: 256

На форуме с: 02.04.2008

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

Рейтинг: 0

· 04.12.2008, 23:45

Код
echo intval($online[0]*1.4);      = +40%

Скрипт выдачи призов, мой рулит... Остальное бред) Но ты его не можешь настроить...

— 39

0
wwwMATRIXwww
wwwMATRIXwww

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

Бывалый

Постов: 417

На форуме с: 26.04.2008

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

Рейтинг: 0

· 05.12.2008, 12:42

Groza:
Код
echo intval($online[0]*1.4);      = +40%

Скрипт выдачи призов, мой рулит... Остальное бред) Но ты его не можешь настроить...



не умничай лучше , это хорошо не кончается.Сорри за флуд...тем более крона нету на хосте.

Вот скрипт онлайна:
Код
////Колличество он-лайн сервера 1 //////

$msc=MYSQL_CONNECT($dbhost,$dbuser,$dbpass) or die ("Ошибка БД");
MYSQL_SELECT_DB($dbname) or die ("Ошибка БД");

$get_config_data="SELECT online FROM characters WHERE online>0";
$config_data=MYSQL_QUERY($get_config_data);
$config['num_online']=mysql_num_rows($config_data);
echo " <left><font color='yellow'>Игроков:</left> ";
echo ("<font color='green'>".$config['num_online']."</font>");

echo "<p>";
?>



Вот кусок L2top:
Код
}
}
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");
$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` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
данный запрос необходимо переделывать взависимости от того, какая структура таблицы items у вас на сборке сервера. Данный запрос отвечает за добавление бонусной вещи за голосование в инвентарь, если у вас её еще нет.
*/
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 4037");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' Зачислен!.<br/>';
}
else
$error .= 'Голос за '. $time.' Уже был засчитан!<br>Ты уже получил приз!<br>мошенник!<br> Что бы больше такого не было!<br/>';
}
}
else
$error .= 'Ваш голос не был найден!.<br>';
}

echo $error.'<br><b>'.$total.'</b> Coin of Luck зачислено твоему персонажу!<br>С уважением Matrix<br/>';

}



?>


up

— ы

0
Руслан
Руслан

Модератор

Ветеран

Постов: 1201

На форуме с: 14.12.2007

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

Рейтинг: 0

· 05.12.2008, 14:48

Вот скрипт накрутки

Код
<?php
$mysql_host="localhost";
$port='3306';
$mysql_user="USER";
$mysql_password="PASS";
$my_database="BASE";
echo "";
$fp = fsockopen($mysql_host, $port,$rr,$rrr,1);
if (!$fp)
{

}
else
{
$link = mysql_connect($mysql_host,$mysql_user,$mysql_password)
or die("Could not connect : " . mysql_error());
mysql_select_db($my_database) or die("Could not select database");
//$cline=count($line);
echo ' ';
$countonline = mysql_query('SELECT count(*) FROM `characters` WHERE `online`>\'0\'');
$online = mysql_fetch_array($countonline);
echo intval($online[0]+20);
}
$file = fopen("w:/www/online.txt", "w"); fwrite($file, $online[0]+20); fclose($file);

?>


Этот скрипт плюсует число!

Код
...
echo intval($online[0]*1.4);
...


А именно это плюсует 40% к онлайну!

Просто отдельно выведи этим скриптом онлайн в нужном месте...

На Форуме я тоже Radar!
Я везде Radar!

0
zlob
zlob

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

Бывалый

Постов: 103

На форуме с: 04.11.2008

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

Рейтинг: 0

· 05.12.2008, 15:02

<td width="205" height="48" colspan="3" background="la2strike.ru/555.jpg">&nbsp;</td>
<?


if(!isset($_POST['name'])){

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


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

</form>';


}else{

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

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

$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].'.xxx';

$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` = 9142 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` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
данный запрос необходимо переделывать взависимости от того, какая структура таблицы items у вас на сборке сервера. Данный запрос отвечает за добавление бонусной вещи за голосование в инвентарь, если у вас её еще нет.
*/
mysql_query("INSERT INTO `items` (`owner_id`, `object_id`, `item_id`, `count`, `enchant_level`, `loc`, `loc_data`, `price_sell`, `price_buy`, `time_of_use`, `custom_type1`, `custom_type2`, `mana_left`)
VALUES(".mysql_escape_string($char_id).", ".$ins_id.", $bonus_id, ".$cols_for_vote.", 0, 'INVENTORY', 0, 0, 0, NULL, 0, 0, -1)");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 9142");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= 'Голос за '. $time.' зачислен.<br/>';
}
else
$error .= 'Голос за '. $time.' уже был зачислен.<br/>';
}
}
else
$error .= 'Ваш голос на сайте L2Top.ru не найден.<br>';
}

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

}

?>





Вот те скрипт л2 топа , выдается сразу в инвентарь без вещи, + фикс с вх есть под ла2базу, с тя спасибка))

— 10

0
wwwMATRIXwww
wwwMATRIXwww

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

Бывалый

Постов: 417

На форуме с: 26.04.2008

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

Рейтинг: 0

· 05.12.2008, 16:10

Radar: Вот скрипт накрутки

Код
<?php
$mysql_host="localhost";
$port='3306';
$mysql_user="USER";
$mysql_password="PASS";
$my_database="BASE";
echo "";
$fp = fsockopen($mysql_host, $port,$rr,$rrr,1);
if (!$fp)
{

}
else
{
$link = mysql_connect($mysql_host,$mysql_user,$mysql_password)
or die("Could not connect : " . mysql_error());
mysql_select_db($my_database) or die("Could not select database");
//$cline=count($line);
echo ' ';
$countonline = mysql_query('SELECT count(*) FROM `characters` WHERE `online`>\'0\'');
$online = mysql_fetch_array($countonline);
echo intval($online[0]+20);
}
$file = fopen("w:/www/online.txt", "w"); fwrite($file, $online[0]+20); fclose($file);

?>


Этот скрипт плюсует число!

Код
...
echo intval($online[0]*1.4);
...


А именно это плюсует 40% к онлайну!

Просто отдельно выведи этим скриптом онлайн в нужном месте...



Уже сделал.К своему дописал кое- что и все заробило :)

— ы

0
R
Rivera

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

Новичок

Постов: 10

На форуме с: 21.11.2008

Рейтинг: 0

· 06.12.2008, 15:14

Тоже проверил,работает!

0
Тема закрыта для ответов