Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Помогите с топ100 игроков(php+Mssql)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Помогите с топ100 игроков(php+Mssql)
Имя
Сообщение << Старые топики   Новые топики >>
Помогите с топ100 игроков(php+Mssql) - 2010-12-31 06:46:38.650000   
katsap

Сообщений: 6
Оценки: 0
Присоединился: 2010-12-31 06:34:53.056666
Добрый день ибо вечер ув.. Хакерпро форумчанЭ
мне нужна ваша помощь у меня Mssql , я вот когда cоздал топ игроков для игрового сервера у меня вот что дает:
http://violencepw.no-ip.biz/Top_Players_by_TeJIePuziK.php
вот тут у меня просто главное написаны, ф-ии, а список игроков нету
вот скрипты эти:
chardb_by_TeJIePuziK.jsp
<%@page contentType="text/HТМL; charset=GBK"%>
<%@page import="jаvа.lang.*"%>
<%@page import="jаvа.util.*"%>
<%@page import="jаvа.text.*"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
<%@page import="protocol.*"%>
<%@page import="com.goldhuman.auth.*"%>
<%@page import="org.apache.commons.logging.Log"%>
<%@page import="org.apache.commons.logging.LogFactory"%>
<%@ page import="jаvа.sql.*" %>
<%
//
// ORIGINALLY CODED BY MARHAZK (MARHAZK@YAHOO.COM)
// ОТРЕДАКТИРОВАЛ TeJIePuziK
//
// ПРИМЕЧАНИЕ: ДЛЯ РАБОТЫ СКРИПТА ИЗМЕНИТЕ <ВАШ IP-АДРЕСС> <ИМЯ БД MSSQL> <ПОЛЬЗОВАТЕЛЬ БД MSSQL> <ПАРОЛЬ БД MSSQL> НА ВАШИ
//
Connection connection = null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.2:1433;databasename=dbo", "sa", "****");

Statement statement = connection.createStatement();

//
//CLEAR UWEBPLAYERS DATABASE
//
String deleteall = "DELETE FROM Players";
statement.executeupdаtе(deleteall);

//
//GET USER DB FIRST
//
ResultSet rst=null;
rst = statement.executeQuery("select ID from users ORDER BY ID DESC");

RoleBean role = null;
String tempplayername = null;
String command = null;
int index = 0;
int maxid = 0;
int roleid = 31;
int uid = 0;
int eachacc = 0;
while (rst.next())
{
maxid = Integer.parseInt(rst.getString("ID"));
break;
}

while (roleid <= maxid)
{
roleid++;
eachacc++;
try
{
if (eachacc < 16)
{
role = GameDB.get( roleid );
session.setAttribute( "gamedb_rolebean", role );
if (null == role){
continue;
}
else
{
tempplayername = null;
tempplayername = StringEscapeUtils.escapeHТМL(role.base.name.getString());

index = 0;
index = tempplayername.indexOf("'");
StringBuffer playername = new StringBuffer(tempplayername);
if(index > 0){
playername.replace(index, index + 1, "?");
}

command = "INSERT INTO Players (roleid, rolename, rolelevel, rolestatus, rolegender, rolecultivation, rolemoney, rolerace, roleprof, rolerep, redname, rednametime, pinknametime, roletimeused, rolehp, rolemp, rolebankmoney) VALUES ("+roleid+", '"+playername+"', " + role.status.level + ", '" + role.base.status + "', '" + role.base.gender + "', '" + role.status.level2 + "', '" + role.pocket.money + "', '" + role.base.race + "', '" + role.base.cls + "', '" + role.status.reputation + "', '" + role.status.invader_state + "', '" + role.status.invader_time + "', '" + role.status.pariah_time + "', '" + role.status.time_used + "', '" + role.status.hp + "', '" + role.status.mp + "', '" + role.storehouse.money + "')";
statement.executeupdаtе(command);
out.println("<br>–100% stored RoleDB: Name:" + tempplayername + " Roleid:" + roleid + " Level:" + role.status.level);
//out.println(command);
}
}
else if (eachacc == 16)
eachacc = 0;
else
continue;
}
catch (Exception e)
{
continue;
}
}

%>

config_top_by_TeJIePuziK.php
<?
$lim = 100; //Количество игроков, выводимых в Топ

//Настройки базы данных
$SERVER = "violencepw.no-ip.biz:1433"; //Сервер базы данных
$ADMIN_NAME = "sa"; //Пользователь базы данных
$ADMIN_PASS = "****"; //Пароль базы данных
$DATABASE = "dbo"; //Имя базы данных
?>

Players_table_v1_by_TeJIePuziK.sql
CREATE TABLE [Players] (
[roleid] [int] NOT NULL ,
[rolename] [varchar] (50) COLLATE Latin1_General_CI_AS NULL ,
[rolelevel] [int] NULL ,
[rolestatus] [int] NULL ,
[rolegender] [int] NULL ,
[rolecultivation] [int] NULL ,
[rolemoney] [bigint] NULL ,
[rolerace] [int] NULL ,
[roleprof] [int] NULL ,
[rolerep] [bigint] NULL ,
[redname] [bigint] NULL ,
[rednametime] [bigint] NULL ,
[pinknametime] [bigint] NULL ,
[roletimeused] [bigint] NULL ,
[rolehp] [bigint] NULL ,
[rolemp] [bigint] NULL ,
[rolebankmoney] [bigint] NULL ,
CONSTRAINT [PK_Players] PRIMARY KEY CLUSTERED
(
[roleid] DESC
) ON [PRIMARY]
) ON [PRIMARY]
GO
Top_Players_by_TeJIePuziK.php
<?php
include('config_top_by_TeJIePuziK.php');

$conn=mssql_connect($SERVER,$ADMIN_NAME,$ADMIN_PASS);
$xadb = mssql_select_db($DATABASE,$conn) or die("$uwebmsg_cerr");

if(isset($_GET['all'])){$all = $_GET['all'];} else {$all = 0;}

if ($all == 0){
$uweb_toplvlq = "SELECT * FROM players ORDER BY rolelevel DESC";
$uweb_toplvlr = mssql_query($uweb_toplvlq);
$uweb_toplvl_num = 10;
echo "<p align='center'><b><span class='style6'>ТОП 100</span><span class='s'>*</span><span class='style6'> | </span><a href='Top_Players_by_TeJIePuziK.php?all=1' class='style6'>СТАТИСТИКА ПО ЧАРАМ</a><span class='s'>*</span><b></p><p>";
echo "<Table width=100% border=1><TR><TD align='center'><span class='styletable'>МЕСТО</span></td><TD align='center'><span class='styletable'>ИМЯ ИГРОКА</span></td><TD align='center'><span class='styletable'>УРОВЕНЬ ИГРОКА</span></td><TD align='center'><span class='styletable'>КОЛИЧЕСТВО ДЕНЕГ</span></td></tr>";
while ($uweb_toplvlrow = mssql_fetch_array($uweb_toplvlr))
{
$uweb_toplvl_num++;
echo "<TR><TD width='70' align='center'>".$uweb_toplvl_num."</td><TD align='center'><a href='Veiw_Player_by_TeJIePuziK.php?charid=".$uweb_toplvlrow[roleid]."'><b>".$uweb_toplvlrow[rolename]."</a></td><TD align='center'>".$uweb_toplvlrow[rolelevel]."</td><TD align='center'>".$uweb_toplvlrow[rolemoney]."</td>";
if ($uweb_toplvl_num >= $lim) break;
}
echo "</table></p>";}

if ($all == 1){
if(isset($_GET['order'])){$order = $_GET['order'];} else {$order = 'rolelevel DESC';}
$uweb_toplvlq = "SELECT * FROM Players ORDER BY $order";
$uweb_toplvlr = mssql_query($uweb_toplvlq);
$uweb_toplvl_num = 0;
echo "<p align='center'><b><a href='Top_Players_by_TeJIePuziK.php?all=0' class='style6'>ТОП 100</a><span class='s'>*</span> | <span class='style6'>СТАТИСТИКА ПО ЧАРАМ</span><span class='s'>*</span><b></p><p>";
echo "<Table width=100% border=1><TR><TD align='center'><span class='styletable'>МЕСТО</span></td><TD align='center'><a href='Top_Players_by_TeJIePuziK.php?all=1&order=rolename' class='styletable'>ИМЯ ИГРОКА</a></td><TD align='center'><a href='Top_Players_by_TeJIePuziK.php?all=1' class='styletable'>УРОВЕНЬ ИГРОКА</a></td><TD align='center'><a href='Top_Players_by_TeJIePuziK.php?all=1&order=rolemoney DESC' class='styletable'>КОЛИЧЕСТВО ДЕНЕГ</td></tr>";
while ($uweb_toplvlrow = mssql_fetch_array($uweb_toplvlr))
{
$uweb_toplvl_num++;
echo "<TR><TD width='70' align='center'>".$uweb_toplvl_num."</td><TD align='center'><a href='Veiw_Player_by_TeJIePuziK.php?charid=".$uweb_toplvlrow[roleid]."'><b>".$uweb_toplvlrow[rolename]."</a></td><TD align='center'>".$uweb_toplvlrow[rolelevel]."</td><TD align='center'>".$uweb_toplvlrow[rolemoney]."</td>";
}
echo "</table></p>";}
?>

Veiw_Player_by_TeJIePuziK.php
<?
include('config_top_by_TeJIePuziK.php');

//Проверяем получен ли id чара, в лсучае ошибки выводим сообщение и завершаем работу скрипта//

if (isset ($_GET['charid'])){$charid = $_GET['charid'];}
if (!isset($charid)){ exit("Не выбрано ни одного чара! Продолжение не возможно"); }

//Конектимся к базе MSSQL//

$conn=mssql_connect($SERVER,$ADMIN_NAME,$ADMIN_PASS);
$xadb = mssql_select_db($DATABASE,$conn) or die("$uwebmsg_cerr");

$mssqlq = "SELECT * FROM Players WHERE roleid='$charid'";
$mssqlr = mssql_query($mssqlq);
$mssqlrow = mssql_fetch_array($mssqlr);

//Переводим значение культивации, рассы и проффесии из циферного обозначения в нормальный текст//
if ($mssqlrow[rolecultivation] == '0'){$cult='Стойкий';}else{
if ($mssqlrow[rolecultivation] == '1'){$cult='Любопытный';}else{
if ($mssqlrow[rolecultivation] == '2'){$cult='Опытный';}else{
if ($mssqlrow[rolecultivation] == '3'){$cult='Рассудительный';}else{
if ($mssqlrow[rolecultivation] == '4'){$cult='Загадочный';}else{
if ($mssqlrow[rolecultivation] == '5'){$cult='Жестокий';}else{
if ($mssqlrow[rolecultivation] == '6'){$cult='Злой';}else{
if ($mssqlrow[rolecultivation] == '7'){$cult='Отрешенный';}else{
if ($mssqlrow[rolecultivation] == '8'){$cult='Благочестивый';}else{
if ($mssqlrow[rolecultivation] == '20'){$cult='Безупречный';}else{
if ($mssqlrow[rolecultivation] == '21'){$cult='Просвященный';}else{
if ($mssqlrow[rolecultivation] == '22'){$cult='Бессмертный';}else{
if ($mssqlrow[rolecultivation] == '30'){$cult='Демон';}else{
if ($mssqlrow[rolecultivation] == '31'){$cult='Дух зла';}else{
if ($mssqlrow[rolecultivation] == '32'){$cult='Сын ада';}else{$cult='Неизвестно';}}}}}}}}}}}}}}}

if ($mssqlrow[rolerace] == '0'){$race='Человек';}else{
if ($mssqlrow[rolerace] == '1'){$race='Зооморф';}else{
if ($mssqlrow[rolerace] == '2'){$race='Зооморф';}else{
if ($mssqlrow[rolerace] == '4'){$race='Сид';}else{
if ($mssqlrow[rolerace] == '5'){$race='Сид';}else{$race='Неизвестно';}}}}}

if ($mssqlrow[roleprof] == '0'){$prof='Воин';}else{
if ($mssqlrow[roleprof] == '1'){$prof='Маг';}else{
if ($mssqlrow[roleprof] == '2'){$prof='Друид';}else{
if ($mssqlrow[roleprof] == '4'){$prof='Оборотень';}else{
if ($mssqlrow[roleprof] == '6'){$prof='Лучник';}else{
if ($mssqlrow[roleprof] == '7'){$prof='Жрец';}else{$prof='Жрец';}}}}}}


//Вычисляем наиграное время//
$seconds = $mssqlrow[roletimeused];
$minuts = 0;
$hours = 0;
$days = 0;

$minuts = $seconds/60;
$time = (int)$minuts." минут";

if ($minuts >= 60){
$hours = $minuts/60;
$minuts = ($hours-(int)$hours)*60;
$minuts = (int)$minuts;
$time = (int)$hours." часов ".$minuts." минут";
}
if ($hours >= 24){
$days = $hours/24;
$hours = ($days-(int)$days)*24;
$hours = (int)$hours;
$time = (int)$days." дней ".$hours." часов ".$minuts." минут";
}

//Далее выводим данные о чаре в таблице//

echo "<p align='center'>".$mssqlrow[rolename]."<p>"; ?>

<table align="center" width="70%" border="1">
<tr>
<td width="200"><b>Имя персонажа</b></td>
<td><? echo $mssqlrow[rolename]; ?></td>
</tr>
<tr>
<td><b>Расса</b></td>
<td><? echo $race; ?></td>
</tr>
<tr>
<td><b>Проффесия</b></td>
<td><? echo $prof; ?></td>
</tr>
<tr>
<td><b>Уровень игрока</b></td>
<td><? echo $mssqlrow[rolelevel]; ?></td>
</tr>
<tr>
<td><b>Количество жизней</b></td>
<td><? echo $mssqlrow[rolehp]; ?></td>
</tr>
<tr>
<td><b>Количество маны</b></td>
<td><? echo $mssqlrow[rolemp]; ?></td>
</tr>
<?
printf ("<tr>
<td><b>Репутация</b></td>
<td>%s</td>
</tr>",$mssqlrow[rolerep]);
?>
<tr>
<td><b>Статус</b></td>
<td><? echo $cult; ?></td>
</tr>
<tr>
<td><b>Количество денег</b></td>
<td><? echo $mssqlrow[rolemoney]; ?></td>
</tr>
<tr>
<td><b>Количество денег в банке</b></td>
<td><? echo $mssqlrow[rolebankmoney]; ?></td>
</tr>
<tr>
<td><b>Наиграно</b></td>
<td><? echo $time; ?></td>
</tr>
</table>
Кто поможет исправить или подсказать в чем ошибка буду очень признателен
Post #: 1
RE: Помогите с топ100 игроков(php+Mssql) - 2010-12-31 11:22:40.360000   
MotoKiller

Сообщений: 1732
Оценки: 56
Присоединился: 2008-03-02 20:08:53.810000
Для начала исправь сам пост. Код засунь в теги
quote:

, так будет более читабельно.
Post #: 2
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Помогите с топ100 игроков(php+Mssql)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.