Расчёт самых богатых людей сервера.

Теги:
 
+
-
edit
 

Balancer

администратор
★★★★★
Проще всего делать через создание таблиц.
code mysql
  1. create table prices select item_id, price from armor;
  2. insert into prices select item_id, price from weapon;
  3. insert into prices select item_id, price from etcitem;
  4. ALTER TABLE `prices` ADD PRIMARY KEY ( `item_id` );
  5.  
  6. create table total select sum(price_sell*count) as `sum`, owner_id from items group by owner_id;
  7. ALTER TABLE `total` ADD PRIMARY KEY ( `owner_id` );

Этот mysql-код сперва создаёт таблицу с игровыми ценами, потом строит таблицу пользователей, у которых просуммирована стоимость всех вещей.

Дальше с этой таблицей можно делать что угодно. Например, просматривать с целью выявления читеров. Или выводить на страницу сайта. Например, как это сделано на Текущий онлайн /Бесплатный Lineage II Interlude (C6) сервер Balancer'а/

code php
  1. <?
  2.     function modules_top_money_main()
  3.     {
  4.         include_once('funcs/DataBase.php');
  5.         $hts = new DataBase('l2jdb','la2', '****');
  6.         $max = $hts->get("SELECT MAX(t.sum) FROM `total` t LEFT JOIN `characters` p ON (t.owner_id = p.obj_Id) WHERE p.access        $list = $hts->get_array("SELECT t.*, p.* FROM `total` t LEFT JOIN `characters` p ON (t.owner_id = p.obj_Id) WHERE p.a
  7.         echo "<table cellSpacing="0" class="btab" width="100%">n";
  8.         echo "<tr><th>№</th><th>Имя пользователя</th></th><th>Богатство</tr>n";
  9.  
  10.         $n = 1;
  11.         foreach($list as $i)
  12.         {
  13.             $cs = $hts->get("SELECT * FROM `characters` WHERE `obj_Id` = ".$i['owner_id']);
  14.  
  15.             echo "<tr>";
  16.             echo "<td>$n</td>";
  17.             echo "<td><b>{$cs['char_name']}</b></td>";
  18.             echo "<td><span style="background-color: #0066cc;">".str_repeat(' ', $i['sum']*50/$max)."</span></td>n";
  19.  
  20.             echo "</tr>n";
  21.             $n++;
  22.         }
  23.  
  24.         echo "</table>n";
  25.  
  26.     }
  27.  
  28.     modules_top_money_main();
  29. ?>
 
+
-
edit
 
+
-
edit
 

Balancer

администратор
★★★★★
Forbec:
А можно полностью скриптик сайтика твоего ? :D Текущий онлайн /Бесплатный Lineage II Interlude (C6) сервер Balancer'а/
 


Это не скриптик, а весьма наворочанная CMS :)

Которая писалась долгое время только под себя, так что в "релизном" виде её просто нет :)
 
+
-
edit
 

Forbec

новичок
Очень жаль :( А так бы неплохо было.... Может её подкрутить как нить, и дать обшетсву ? ;)
 
+
-
edit
 

Forbec

новичок
И ешё
include_once('funcs/DataBase.php');
где ентот database.php взять-то ?
 
+
-
edit
 

Balancer

администратор
★★★★★
Вот это и есть один из модулей моей системы.

Но в данном контексте он очень легко пишется на обычных mysql_* функциях. Просто мне в лом заниматься такой адаптацией пока. Базовый код скрипта есть - дальше уже только руки приложить :)
 
+
-
edit
 

Balancer

администратор
★★★★★
Если грубо, то меняем:
$hts = new DataBase('l2jdb','la2', '**');
на
mysql_connect ....

$max = $hts-&gt;get(...)
на
mysql_query()

foreach($list as $i)
на
while($i=mysq_fetch_assoc(...))

и дополнительных модулей не понадобится.
 
+
-
edit
 

_BoBkA_

втянувшийся
Дайте пожалуйста php страничку которая только показывет колличество игроков On-Line
Она будет размешена на другом сервере у будет конектится к моей ДБ удалённо
Прошу предоставить в готовом виде только чтобы свои данные вписать а то я php смотрю и не понимаю
Заранее благодарен...
и вопрос а мона написать просто скриптик JavaSript и вживить в тело страницы ?
Всего лишь надо колличество On-Line ( кто играет и тому подобное не требе )
Если что-то не так, то ищи проблему в себе... http://SkySoft.nm.ru http://la2bobka.nm.ru  

Paxa

новичок
Расчет по принципу простого суммирования цен из таблиц вобще некорректно :)

Т.к. все вещи имеют рыночную цену (на каждом сервере свои) , например 1кк аден у 1 плеера всегда будет 1кк аден, а если у второго какой-нить Elven Sword, он немного дороже выходит по табличке, но рыночная цена его ниже, с ресурсами аналогично - пока они у тебя в бекпаке, позиция в рейтинге одна, как сдаешь в магаз - другая :))
С выбиваемыми вещами все наоборот: Brigandine Helmet/Shield - по цене в базах эти вещи дешевые, а на деле - дороже некоторых C вещей :)

Имхо, для магазинного оружия/брони нада вводить понижающие коэффициенты, для только выбиваемого шмота повышающие
 
+
-
edit
 

ActioN

новичок
_BoBkA_:
Дайте пожалуйста php страничку которая только показывет колличество игроков On-Line
Она будет размешена на другом сервере у будет конектится к моей ДБ удалённо
Прошу предоставить в готовом виде только чтобы свои данные вписать а то я php смотрю и не понимаю
Заранее благодарен...
и вопрос а мона написать просто скриптик JavaSript и вживить в тело страницы ?
Всего лишь надо колличество On-Line ( кто играет и тому подобное не требе )
 

code text
  1. $sql=mysql_query("SELECT * FROM characters WHERE online='1'");
  2. $online= = mysql_num_rows($sql);
  3. echo "$online";
 
+
-
edit
 

ActioN

новичок
_BoBkA_:
Дайте пожалуйста php страничку которая только показывет колличество игроков On-Line
Она будет размешена на другом сервере у будет конектится к моей ДБ удалённо
Прошу предоставить в готовом виде только чтобы свои данные вписать а то я php смотрю и не понимаю
Заранее благодарен...
и вопрос а мона написать просто скриптик JavaSript и вживить в тело страницы ?
Всего лишь надо колличество On-Line ( кто играет и тому подобное не требе )
 

code text
  1. $sql=mysql_query("SELECT * FROM characters WHERE online='1'");
  2. $online = mysql_num_rows($sql);
  3. echo "$online";
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru