Kod:
USE [MuOnline];
GO
ALTER TABLE [Character] ADD [Reset] [smallint] DEFAULT(0) NOT NULL;
USE [MuOnline];
GO
ALTER TABLE [Character] ADD [isAdmin] [smallint] DEFAULT(0) NOT NULL;
Dodanie wymiany ren :
Kod:
CREATE TABLE ST_WYMIANA (
Id int,
RenCount int,
Ren2Count int,
NewItem nvarchar(10),
ItemLevel nvarchar(5),
ItemOpt nvarchar(5),
ItemSL nvarchar(5),
ItemEopt1 nvarchar(5),
ItemEopt2 nvarchar(5),
ItemEopt3 nvarchar(5),
ItemEopt4 nvarchar(5),
ItemEopt5 nvarchar(5),
ItemEopt6 nvarchar(5),
ItemEoptMAX smallint,
Autoserial smallint,
Dur smallint,
PRIMARY KEY (Id)
)
Dodanie ostrzezen :
Kod:
CREATE TABLE ST_WARNING (
Name nvarchar(10),
W_Level smallint,
W_1_kom nvarchar(50),
W_2_kom nvarchar(50),
W_3_kom nvarchar(50),
Banned_to int,
PRIMARY KEY (Name)
)
Dodanie tabeli valut :
Kod:
CREATE TABLE [dbo].[vault] (
[AccountID] [nvarchar] (10) COLLATE Chinese_PRC_CS_AS NOT NULL ,
[vault] [varbinary] (5000) NULL ,
[money] [bigint] DEFAULT (0) NOT NULL ,
[vault_size] [int] DEFAULT (0) NOT NULL
)
Dodanie aukcji na stronie :
Kod:
CREATE TABLE AucMain (
AucID int,
Name nvarchar(10),
AccountId nvarchar(10),
AucItem varbinary(20),
StartDate int,
EndDate int,
MinPrice bigint,
CurPrice bigint
)
CREATE TABLE [dbo].[AucCURINFO] (
[AcID] [int] NOT NULL ,
[AccountID] [nvarchar] (10) COLLATE Chinese_PRC_CS_AS NOT NULL ,
[Name] [nvarchar] (10) COLLATE Chinese_PRC_CS_AS NOT NULL ,
[Price] [bigint] NOT NULL ,
[ADate] [bigint] NOT NULL ,
[isdef] [smallint] NOT NULL
)
CREATE TABLE [dbo].[AucMain] (
[AucID] [int] NOT NULL ,
[Name] [nvarchar] (10) COLLATE Chinese_PRC_CS_AS NOT NULL ,
[AccountId] [nvarchar] (10) COLLATE Chinese_PRC_CS_AS NOT NULL ,
[AucItem] [varbinary] (20) NOT NULL ,
[StartDate] [int] NOT NULL ,
[EndDate] [int] NOT NULL ,
[MinPrice] [bigint] NOT NULL ,
[CurPrice] [bigint] NULL
)
Naliczanie resetow na stronie STMP2
Kod:
UPDATE Character SET clevel=('1') , experience=('0'), Reset=Reset+1 WHERE clevel>399
Jeśli gwałtownie wyłączymy serwer :
Kod:
UPDATE MEMB_STAT SET ConnectStat = 0
Dodanie tabeli MAILSYSTEM :
Kod:
CREATE TABLE [dbo].[MAILSYSTEM] (
[ID] [int] NOT NULL ,
[od] [nvarchar] (11) COLLATE Chinese_PRC_CS_AS NULL ,
[do] [nvarchar] (50) COLLATE Chinese_PRC_CS_AS NULL ,
[kiedy] [bigint] NULL ,
[Temat] [text] COLLATE Chinese_PRC_CS_AS NULL ,
[Tekst] [text] COLLATE Chinese_PRC_CS_AS NULL ,
[Odczytana] [smallint] NULL
)
Dodanie tabeli ST_GATE :
Kod:
CREATE TABLE [dbo].[ST_GATE] (
[GateId] [int] NOT NULL ,
[GateItem] [nvarchar] (5) COLLATE Chinese_PRC_CI_AS NULL ,
[GateItemLevel] [int] NULL ,
[MapNumber] [smallint] NULL ,
[MapX] [int] NULL ,
[MapY] [int] NULL ,
[WarpMoney] [int] NULL ,
[InvitName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[MapName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[GateImage] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[MaxUsers] [int] NULL ,
[MinLevel] [int] NULL
) ON [PRIMARY]
GO
Dodanie tabeli MAILSYSTEM :
Kod:
CREATE TABLE [dbo].[MAILSYSTEM] (
[ID] [int] NOT NULL ,
[od] [nvarchar] (11) COLLATE Chinese_PRC_CS_AS NULL ,
[do] [nvarchar] (50) COLLATE Chinese_PRC_CS_AS NULL ,
[kiedy] [bigint] NULL ,
[Temat] [text] COLLATE Chinese_PRC_CS_AS NULL ,
[Tekst] [text] COLLATE Chinese_PRC_CS_AS NULL ,
[Odczytana] [smallint] NULL
)
Dodanie tabeli ST_CHAOS :
Kod:
CREATE TABLE [dbo].[ST_CHAOS] (
[Id] [int] NOT NULL ,
[Request] [nvarchar] (255) COLLATE Chinese_PRC_CS_AS NULL ,
[Success_rate] [smallint] NULL ,
[Effect] [nvarchar] (255) COLLATE Chinese_PRC_CS_AS NULL ,
[Fail_Effect] [nvarchar] (255) COLLATE Chinese_PRC_CS_AS NULL ,
[Money] [int] NULL ,
[Deny_for] [nvarchar] (255) COLLATE Chinese_PRC_CS_AS NULL
)
Dodanie tabeli ST_ADMIN :
Kod:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ST_ADMIN]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ST_ADMIN]
GO
CREATE TABLE [dbo].[ST_ADMIN] (
[AccountID] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[AuthLevel] [int] NOT NULL
) ON [PRIMARY]
GO
Dodanie tabeli ST_SHOP
Kod:
CREATE TABLE [dbo].[ST_SHOP] (
[Id] [smallint] NOT NULL ,
[Item] [nvarchar] (10) COLLATE Chinese_PRC_CS_AS NULL ,
[Lvl] [smallint] NULL ,
[Dur] [smallint] NULL ,
[Skill] [tinyint] NULL ,
[Luck] [tinyint] NULL ,
[Opt] [tinyint] NULL ,
[Exc] [nvarchar] (2) COLLATE Chinese_PRC_CS_AS NULL ,
[Request] [nvarchar] (50) COLLATE Chinese_PRC_CS_AS NULL ,
[Money] [bigint] NULL ,
[Autoserial] [tinyint] NULL
)
Jeśli masz cannot operaction w Ranking'u to :
usuń wszystko z Ranking.php i wklej to :
Kod:
<?
/*-----------------------------------------------------*\
| SkyTeam MuPage file |
| this file is connected with module $page["ranking"] |
| File version 1.0 |
| by Amelek (szklarzewicz@wp.pl) |
| http://lorencia.com |
\*-----------------------------------------------------*/
if(!defined('SkyTeamPageRUNNING'))
{
die("Include error..");
}
?>
<div style="text-align:center">
<form name=sortowanie method=post action="?strona=ranking">
<br>
<input type=hidden name=strona value=ranking>
<table>
<tr><td colspan=6><?= $lang_ranking_order_by ?></td></tr>
<tr>
<td><? echo $lang_Strength; ?></td><td><input type=radio value=str name=prim checked></td>
<td><? echo $lang_Strength; ?></td><td><input type=radio value=str name=sec checked></td>
<td><? echo $classes[0]; ?></td><td><input type=checkbox name=wizard value=1 checked></td>
</tr>
<tr>
<td><? echo $lang_Dexterity; ?></td><td><input type=radio value=agl name=prim></td>
<td><? echo $lang_Dexterity; ?></td><td><input type=radio value=agl name=sec></td>
<td><? echo $classes[16]; ?></td><td><input type=checkbox name=knight value=1 checked></td>
</tr>
<tr>
<td><? echo $lang_Vitality; ?></td><td><input type=radio value=vit name=prim></td>
<td><? echo $lang_Vitality; ?></td><td><input type=radio value=vit name=sec></td>
<td><? echo $classes[32]; ?></td><td><input type=checkbox name=elf value=1 checked></td>
</tr>
<tr>
<td><? echo $lang_Energy; ?></td><td><input type=radio value=enr name=prim></td>
<td><? echo $lang_Energy; ?></td><td><input type=radio value=enr name=sec></td>
<td><? echo $classes[48]; ?></td><td><input type=checkbox name=gladiator value=1 checked></td>
</tr>
<tr>
<td><? echo $lang_level; ?></td><td><input type=radio value=lvl name=prim></td>
<td><? echo $lang_level; ?></td><td><input type=radio value=lvl name=sec></td>
<td><? echo $classes[64]; ?></td><td><input type=checkbox name=lord value=1 checked></td>
</tr>
<tr>
<td><? echo $lang_Reset; ?></td><td><input type=radio value=res name=prim></td>
<td><? echo $lang_Reset; ?></td><td><input type=radio value=res name=sec></td>
<td> </td><td> </td>
</tr>
<tr>
<td>
<select name=sortdir_prim>
<option value=asc>Asc</option>
<option value=desc>Desc</option>
</select>
</td><td> </td><td>
<select name=sortdir_sec>
<option value=asc>Asc</option>
<option value=desc>Desc</option>
</select>
</td><td> </td>
<td><input type=text name=start_from title='From witch field show results?' value=0 size=3> - <input type=text name=count_result title='How many result should be shown?' value=100 size=3></td><td> </td>
</tr>
</table>
<br>
<input type="submit" value="<? if(!$use_button_images) echo $lang_sort; ?>" class=rank_sort>
</form>
</div>
<table width=100% align=center>
<td align=left width=10%> Lp </td>
<td align=left width=15%> <? echo $lang_Name; ?> </td>
<td align=left width=15%> <? echo $lang_race; ?> </td>
<td align=left width=10%> <? echo $lang_level; ?> </td>
<td align=left width=10%> <? echo $lang_Strength; ?> </td>
<td align=left width=10%> <? echo $lang_Dexterity; ?> </td>
<td align=left width=10%> <? echo $lang_Vitality; ?> </td>
<td align=left width=10%> <? echo $lang_Energy; ?> </td>
<td align=left width=10%> <? echo $lang_Reset; ?> </td>
<br><tr></tr>
<?php
if(isset($_POST['prim']))
{
settype($_POST['start_from'],'int');
settype($_POST['count_result'],'int');
if($_POST['count_result'] > 300)
echo 'Too many requests';
else
{
$sql = array ('str' => 'Strength',
'agl' => 'Dexterity',
'vit' => 'Vitality',
'enr' => 'Energy',
'lvl' => 'cLevel',
'res' => $res_column_name);
$first = $sql[$_POST['prim']];
$second = $sql[$_POST['sec']];
if(empty($first)) echo 'sort error';
else
{
$first = 'Order By '.$first;
if($_POST['sortdir_prim'] == 'desc') $first .= ' Desc';
elseif($_POST['sortdir_prim'] == 'asc') $first .= ' Asc';
if(!empty($second) AND $second != $sql[$_POST['prim']])
{
$first .= ', '.$second;
if($_POST['sortdir_sec'] == 'desc') $first .= ' Desc';
elseif($_POST['sortdir_sec'] == 'desc') $first .= ' Asc';
}
$klasy = array (
'wizard' => ' Class = 0 OR Class = 1 ',
'knight' => ' Class = 16 OR Class = 17 ',
'elf' => ' Class = 32 OR Class = 33 ',
'gladiator' => ' Class = 48 ',
'lord' => ' Class = 64'
);
$class_add = null;
if(!empty($_POST['wizard']))
$class_add .= $klasy['wizard'];
if(!empty($_POST['knight']))
$class_add .= $klasy['knight'];
if(!empty($_POST['elf']))
$class_add .= $klasy['elf'];
if(!empty($_POST['gladiator']))
$class_add .= $klasy['gladiator'];
if(!empty($_POST['lord']))
$class_add .= $klasy['lord'];
$class_add = str_replace(' ',' OR ',$class_add);
if(empty($class_add))
echo 'Nie wybrano Â?adnej profesji!';
else
{
//echo "SELECT TOP ".($_POST['start_from']+$_POST['count_result'])." Name, Class, cLevel, Strength, Dexterity, Vitality, Energy, $res_column_name, $isadmin_column_name FROM Character WHERE (".$class_add.") AND $isadmin_column_name != 1 $first;";
$result = mssql_query("SELECT TOP ".($_POST['start_from']+$_POST['count_result'])." Name, Class, cLevel, Strength, Dexterity, Vitality, Energy, $res_column_name, $isadmin_column_name FROM Character WHERE (".$class_add.") AND $isadmin_column_name != 1 $first;") OR die('Query FAILED');
}
}
}
}
else
$result = mssql_query("SELECT TOP 100 Name, Class, cLevel, Strength, Dexterity, Vitality, Energy, $res_column_name, $isadmin_column_name FROM Character WHERE $isadmin_column_name != 1 Order By $res_column_name desc, CLevel desc") OR die('Query FAILED');
if(!empty($result))
{
$a = $_POST['start_from'];
for($i=0;$i<mssql_num_rows($result);++$i)
{
//$row = mssql_result($result,$i);
$row = mssql_fetch_row($result);
if($i >= $_POST['start_from'])
{
$row[0] = htmlspecialchars ($row[0]);
if ($row[8] != 1)
{
$a = $a+1;
echo "<tr>";
echo "<td align=left width=10%>".$a;
echo "<td align=left width=15%> <b>".$row[0]."</b></td>";
echo "<td align=left width=15%>" .$classes[$row[1]]."<b></td>";
echo "<td align=left width=10%> ".$row[2]."</td>";
echo "<td align=left width=10%> ".$row[3]."</td>";
echo "<td align=left width=10%> ".$row[4]."</td>";
echo "<td align=left width=10%> ".$row[5]."</td>";
echo "<td align=left width=10%> ".$row[6]."</td>";
echo "<td align=left width=10%> ".$row[7]."</td>";
echo "</tr>";
}
}
}
}
?>
</table>
Jeżeli masz błąd po zalogowaniu na konto z wiadomościami to :
zamień w pliku ./mupagecore/mopageaccount/messages/menu.php:
Kod:
$wiadomosci = mssql_query('SELECT Name,
(SELECT count(do) FROM MAILSYSTEM where do = Character.Name AND Odczytana = 1) as Odczytane,
(SELECT count(do) FROM MAILSYSTEM where do = Character.Name AND Odczytana = 0) as NieOdczytane,
CtlCode
FROM Character WHERE AccountId = \''.$login.'\';');
na
Kod:
$wiadomosci = mssql_query('SELECT [Name],
(SELECT COUNT(do) FROM [MAILSYSTEM] WHERE ([do] COLLATE Chinese_PRC_CI_AI = [Character].[Name] COLLATE Chinese_PRC_CI_AI) AND ([Odczytana] = 1)) AS [Odczytane],
(SELECT COUNT(do) FROM [MAILSYSTEM] WHERE( [do] COLLATE Chinese_PRC_CI_AI = [Character].[Name] COLLATE Chinese_PRC_CI_AI) AND ([Odczytana] = 0)) AS [NieOdczytane],
[CtlCode]
FROM [Character]
WHERE ([AccountId] = \''.$login.'\');');
Jeśli to nie podziałało to :
wchodzimy mupagecore --> mupageaccount --> messages
i edytujemy plik menu.php i wrzucamy to:
Kod:
<?
if(!defined('SkyTeamPageRUNNING'))
{
die("Include error..");
}
?>
<?php
if($page["prvmsg"])
{
if(strpos($login, "'") !== false)
die('Hacking Attempt!');
$wiadomosci = mssql_query('SELECT [Name],
(SELECT COUNT(do) FROM [MAILSYSTEM] WHERE ([do] COLLATE Chinese_PRC_CI_AI = [Character].[Name] COLLATE Chinese_PRC_CI_AI) AND ([Odczytana] = 1)) AS [Odczytane],
(SELECT COUNT(do) FROM [MAILSYSTEM] WHERE( [do] COLLATE Chinese_PRC_CI_AI = [Character].[Name] COLLATE Chinese_PRC_CI_AI) AND ([Odczytana] = 0)) AS [NieOdczytane],
[CtlCode]
FROM [Character]
WHERE ([AccountId] = \''.$login.'\');');
$wiadomosci_nowe = 0;
$wiadomosci_odczytane = 0;
for($x=0;$x<mssql_num_rows($wiadomosci);++$x)
{
$row = mssql_fetch_row($wiadomosci);
$wiadomosci_nowe += $row[2];
$wiadomosci_odczytane += $row[1];
}
add_menu_module('?strona=mupageaccount/messages/main',$lang_prvmsg['menu'].' '.$wiadomosci_odczytane.'/'.$wiadomosci_nowe);
}
?>
zapisujemy .
Następnie edytujemy plik main.php i wrzucamy to:
<?
if(!defined('SkyTeamPageRUNNING'))
{
die("Include error..");
}
?>
<div style="text-align:center">
<?php
if($page["prvmsg"])
{
if(!empty($login) AND strlen($login) < 12)
{
if(strpos($login, "'") !== false)
die('Hacking Attempt!');
echo '<h2 class=highlight>'.$lang_prvmsg['menu'].'</h2>';
$sql_char_check = mssql_query("SELECT TOP 6 Name, CLevel, Reset, CtlCode FROM Character WHERE AccountID = '$login'");
$char_check = mssql_num_rows($sql_char_check);
if ($char_check <= 0)
{
echo $lang_a_no_characters;
}
else
{
echo '<b>'.$lang_prvmsg['your_characters_and_messages_to_them'].'</b><br>';
$mail_list = mssql_query('SELECT [Name],
(SELECT COUNT(do) FROM [MAILSYSTEM] WHERE ([do] COLLATE Chinese_PRC_CI_AI = [Character].[Name] COLLATE Chinese_PRC_CI_AI) AND ([Odczytana] = 1)) AS [Odczytane],
(SELECT COUNT(do) FROM [MAILSYSTEM] WHERE( [do] COLLATE Chinese_PRC_CI_AI = [Character].[Name] COLLATE Chinese_PRC_CI_AI) AND ([Odczytana] = 0)) AS [NieOdczytane],
[CtlCode]
FROM [Character]
WHERE ([AccountId] = \''.$login.'\');');
$wszystkich = 0;
$przeczytanych = 0;
for($x=0;$x<$char_check;++$x)
{
$row = mssql_fetch_row($mail_list);
if($row[4] == $login)
{
if($row[3] == 8)
{
echo '<span class=game_master_highlight>';
}
elseif($row[3] == 1)
{
echo '<span class=banned_highlight>';
}
else echo '<span>';
echo '<a href="?strona=mupageaccount/messages/mail&char='.$row[0].'">'.htmlspecialchars($row[0]).' ('.$row[1].'/'.$row[2].')</a></span><br>';
$wszystkich += $row[1]+$row[2];
$przeczytanych += $row[2];
}
}
printf($lang_prvmsg['all_new'],$wszystkich,$przeczytanych);
echo '<br>';
}
echo '<br><a href=?strona=mupageaccount/messages/napisz><img border=0 src=grafika/mail_new.png><br>'.$lang_prvmsg['write_new'].'</a><br><br>';
}
else echo $lang_login_error;
echo '<br><a href=?strona=mupageaccount/main>'.$lang_prvmsg['back_to_main_admin'].'</b></a>';
}
?>
</div>
UPDATE . 03.08.2008r.
Zakładki