Мануал как сделать "Призы за голосования в л2топ" - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Движки сайтов (CMS)

Движки сайтов (CMS)
Обсуждения, решения проблем веб обвязок для ява сервера.

Ответ
Опции темы
Непрочитано 10.07.2009, 08:25   #1
Аватар для FlooderaS
Пользователь

Автор темы (Топик Стартер) Мануал как сделать "Призы за голосования в л2топ"

Здесь описано, как настраивать в модуле функцию получения бонуса за голосование в системе l2top.ru
Для начала, необходимо зарегистрироваться в системе l2top на сайте http://l2top.ru
После этого вам необходимо настроить сам модуль.
Все настройки совершаются в конфигурационном файле engine/data/config_l2dle.php
Вам необходимо указать идентификатор для каждого из своих гейм-серверов.


Code
Код:
$la2config['l2top']['ServerId'][0] = 4148; 
$la2config['l2top']['ServerId'][1] = 0;
Если вы хотите отключить систему бонусов для какого то из своих гейм-серверов, выставите ему id=0.


Code
Код:
$la2config['l2top']['timeout'] = 5; 
$la2config['l2top']['search_str'] = 'Последние 50 IP-адресов';     
$la2config['l2top']['voted_timeout'] = 10; 
$la2config['l2top']['get_timeout'] = 60; 
$la2config['l2top']['sms_bonus_count'] = 3; 
$la2config['l2top']['l2top_time_correction'] = 0; 
$la2config['l2top']['block_all_acc'] = true;
timeout - таймаут запроса для получения данных с сервера l2top.ru в секундах. Ни в коем случае не стоит ставить таймаут равным 0! Оптимальным будет значение 5-10 секунд
search_str - строка, после которой скрипт ищет таблицу с последними проголосовавшими
voted_timeout - время в минутах, до истечениия которого можно получить бонус
get_timeout - время в минатах, через которое можно повторно нажать кнопку "получить бонус"
sms_bonus_count - сколько предметов давать, если голосование прооизведено смской 1$ (3 голоса)
l2top_time_correction - поправка времени l2top.ru в минутах. Поддерживаются положительные и отрицательные значения
block_all_acc - после запроса бонуса блокирются все чары на аккаунте (true|false)

Настройка списка бонусов.

При успешном голосовании, персонажу игрока выдаётся 1 предмет из списка предметов.
Этот предмет выпадает с определённой долей вероятности, которая определяется в конфиге.

Пример конфигурации списка из 4х бонсов:


Code
// список бонусов
Код:
$la2config['l2top']['bonus'][1]['item_id'] = 17; 
$la2config['l2top']['bonus'][1]['item_type'] = 'etc'; 
$la2config['l2top']['bonus'][1]['item_count'] = 1; 
$la2config['l2top']['bonus'][1]['probability'] = 3; 

$la2config['l2top']['bonus'][2]['item_id'] = 686; 
$la2config['l2top']['bonus'][2]['item_type'] = 'etc'; 
$la2config['l2top']['bonus'][2]['item_count'] = 2; 
$la2config['l2top']['bonus'][2]['probability'] = 4; 

$la2config['l2top']['bonus'][3]['item_id'] = 1; 
$la2config['l2top']['bonus'][3]['item_type'] = 'weapon'; 
$la2config['l2top']['bonus'][3]['item_count'] = 1; 
$la2config['l2top']['bonus'][3]['probability'] = 2; 

$la2config['l2top']['bonus'][4]['item_id'] = 21; 
$la2config['l2top']['bonus'][4]['item_type'] = 'armor'; 
$la2config['l2top']['bonus'][4]['item_count'] = 100; 
$la2config['l2top']['bonus'][4]['probability'] = 1;
Число бонусов может быть произвольным. Не забывайте правильно указывать индекс предмета в списке.
item_id - id предмета
item_type - тип предмета (armor|weapon|etc)
item_count - число предметов
probability - индекс вероятности выпадания этого предмета

Итоговая верятность выпадания предмета рассчитывается так:
Вероятность = (индекс)/(Сумма всех индексов);

Если Вы всё правильно настроили, то в списке песонажей у вас должна появится такая кнопка:
http://s54.radikal.ru/i143/0906/54/285ae1d1879d.jpg

При нажатии на которую, должно появиться примерно следующее:
http://i040.radikal.ru/0906/4b/ef8fde65b57e.jpg
FlooderaS вне форума Отправить сообщение для FlooderaS с помощью ICQ Ответить с цитированием
Непрочитано 08.08.2009, 22:15   #2
Аватар для arivano
Пользователь

По умолчанию Ответ: Мануал как сделать "Призы за голосования в л2топ"

Все класс, только не сказано, к какой это обвязке и скрипту по раздаче бонусов.
Кроме того, на L2Top изменилась ссылка на список проголосовавших и показывают последних 50.
arivano вне форума Отправить сообщение для arivano с помощью ICQ Отправить сообщение для arivano с помощью Skype™ Ответить с цитированием
Непрочитано 14.08.2009, 11:31   #3
Новичок

По умолчанию Ответ: Мануал как сделать "Призы за голосования в л2топ"

Отлично давно искал и ток на вашем форуме нашел, спасибо большое Зона гейм!
kamazox вне форума Ответить с цитированием
Непрочитано 14.08.2009, 11:36   #4
Аватар для PROGRAMMATOR
Администратор

По умолчанию Ответ: Мануал как сделать "Призы за голосования в л2топ"

Вот еще один вариант модуля получения наград за голосование на l2top
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 06.01.2010, 01:51   #5
Аватар для energy
Пользователь

По умолчанию Re: Мануал как сделать "Призы за голосования в л2топ"

Помогите разобраться.
Скачал этот мод для жумлы _http://Зацензурило/web_for_java/3760-modul-l2top.html
Установил на сайт, выставил конфиги. Но после голосования, пишет, что такой НИК не найден. Я подумал, что оно не там ищет, глянул ссылку и увидел, что ищет на главной _http://l2top.ru/servID, а надо бы тут _http://l2top.ru/info/servID
Код:
$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
Нада бы поставить так
Код:
$html = @file_get_contents('http://l2top.ru/INFO/?servID='.$id_l2top.'&act=info');
, но тогда оно выдает чистую страницу со словом
Код:
FUCK
Вот сам PHP файл
Код:
<?php
    /**
    * @version
    1.0
    * @package
    ICQ_online ?
    *
    @copyright © 200 LightDeath
    *
    @license
    http://www.gnu.org/copyleft/gpl.html GNU/GPL
    */
    defined(
    '_VALID_MOS' ) or die( 'Restricted access' );

$l2top_id = $params->get( 'l2top_id');
$id_l2top = $params->get( 'l2top_id');
$bonus_id = $params->get( 'bonus_id');
$cols_for_vote = $params->get( 'cols_for_vote');
$host = $params->get( 'host');
$user = $params->get( 'user');
$pass = $params->get( 'pass');
$db = $params->get( 'db');
$text = $params->get( 'text');
$rand = $params->get( 'rand');
$randnac = $params->get( 'randnac');
$randcon = $params->get( 'randcon');
if ($rand=="1"){
$cols_for_vote = mt_rand ($randnac, $randcon);
$naz1 = "«".$text."» случайное количество от ".$randnac." до ".$randcon." штук<br>";}
else
{
$naz1 = "«".$text."» вам будет выданно".$cols_for_vote." штук<br>";
};

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

?>
<style type="text/css">
<!--
.стиль1 {color: #FF0000}
-->
</style>

<div align="center">
<table width="100%" border="0">
  <tr>
    <td align="center"><b>«Бонус за голосование».<br>
Для этого необходимо:</b><br>
1. <a href="http://l2top.ru/?voteme=<?php echo"$l2top_id";?>">Проголосовать</a> <br>
2. Получить бонус.<br>
Вписать в форму ниже<br>
ник вашего чара<br>
После этого вашему <br>
чару в инвентарь выдано <br>
 <br>
<?php echo $naz1; ?>
Чтобы получить бонус <br>
ваш ник должен быть в<br>
<a href="http://l2top.ru/?servID=<?php echo"$l2top_id"; ?>&act=info"><b>этом списке</b></a></td>
  </tr>
  <tr>
    <td align="center"><?
echo '<form action="" method="post">';


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

</form></div>';


}else{


$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 charId FROM characters WHERE char_name = '$name';");
$chd=mysql_fetch_assoc($ch);

$char_id=$chd['charId'];
$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 .= '<div align=center>Не удалось получить информацию с L2Top.ru!<br/></div>';
else
{
foreach ($matches[1] as $id => $nick)
{
$nick = str_replace ("{raiting}", "", $nick);
if (strtolower(trim($nick, 10))==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");
$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'];
$kk=mysql_query("INSERT INTO items (owner_id, object_id, item_id, count, enchant_level, loc, loc_data, time_of_use, custom_type1, custom_type2, mana_left, attributes) VALUES('".mysql_escape_string($char_id)."', '$ins_id', '$bonus_id', '$cols_for_vote', '0', 'INVENTORY', '0', NULL, '0', '0', '-1', 'none')") or die("FUCK");
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = 6673");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= '<div align=center>Голос за '. $time.' зачислен.<br/></div>';
}
else
$error .= '<div align=center>Голос за '. $time.' уже был зачислен.<br/></div>';
}
}
else
$error .= '<div align=center>Ваш голос на сайте L2Top.ru не найден.<br></div>';
echo $nick;
}


echo $error.'<div align=center><br><b>'.$total.'</b> <?php echo"$text"; ?> a зачислено вашему

персонажу!<br/></div>';

}
$html ="";
?>
</td>
  </tr>
</table>
<p><br>
</p>
energy вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:49. Часовой пояс GMT +3.

Вверх