- Joined
- May 3, 2008
- Messages
- 815
- Reaction score
- 164
Hello everybody, since we had problems with vault change command, I started to develop a better vault change system, well I developped this command by web, just pressing one button, let's see:
First:
- warehouse table: you must add column named: number(int)(4) default value (0)
- CharBaul table: you must create this table and columns like this: AccountID(VarChar)(19)(PrimaryKey) | Baul(Int)(4)(NULL) default value (0) | Items(VarBinary)(1920)(NULL) | Money(Int)(4)(NULL)
- ExtWarehouse table: obviusly you must have this table created.
About files:
baulextra.php file:
cambiobaul.php file:
About scripts:
1. Well this script add a trigger into memb_info table, then will be activated every time an account is INSERTED into this table. This trigger will add a new record into extwarehouse table using the new account ID created:
2. The complicated script:
Details:
This two lines will add "exist" column into warehouse table and set default value to cero.
This line searching created vaults into extwarehouse table and update exist value from warehouse to 1 (the 2nd vault is alredy create).
This line will add a record into extwarehouse table (make the 2nd vault) from all accounts with exist value = 0 (accounts don't have 2nd vault).
Code:
This line do the same as 2nd line, but update is necessary coz' you are created extra vaults.
The one detail is when you make the 2nd vault and you change it, and then you try edit with MuEdit, the vault look like this:
If you want edit you must reset warehouse first, that's the only details and the only time you have to do this (if you want use an editor), but in game the update is successfully.
Finally, sorry about my english I hope you understand me what I mean hahaha. See ya!
Note: The 2nd script must be used only one time, this only works if you have accounts created, if you start by 0, don't use it.
See ya! n' good luck!
First:
- warehouse table: you must add column named: number(int)(4) default value (0)
- CharBaul table: you must create this table and columns like this: AccountID(VarChar)(19)(PrimaryKey) | Baul(Int)(4)(NULL) default value (0) | Items(VarBinary)(1920)(NULL) | Money(Int)(4)(NULL)
- ExtWarehouse table: obviusly you must have this table created.
About files:
baulextra.php file:
Code:
<form id="form1" name="form1" method="post" action="cambiobaul.php">
<table width="100%" border="1" bordercolor="#000000">
<td colspan="2">
<div></div>
</td>
<tr>
<td width="10%">
<div>ID</div>
</td>
<td width="90%">
<div><input name="id" type="text" maxlength="10" /></div>
</td>
</tr>
<tr>
<td>
<div>Password</div>
</td><td>
<div><input name="clave" type="password" class="Estilo86" maxlength="10" />
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div>Anti-Duppers System</div>
</td>
</tr>
<tr>
<td>
<div><input name="Submit" type="submit" value="Change Vault" />
</div>
</td>
</tr>
</table>
</form>
Code:
<?
$conection = mssql_connect("ServerName","UserName","Password") or die("SQL connection fail, verify your connection config.");
mssql_select_db("MuOnline",$conection);
function anti_injection( $mensaje )
{
$banlist = array
("insert","select","drop","update","delete","distinct","having","truncate","replace",
"handler","like","procedure","limit","order by","group by","<",">","/","'"," ","=","*",",","-");
if ( eregi ( "[a-zA-Z0-9]+", $mensaje ) )
{
$mensaje = trim ( str_replace ( $banlist, '', strtolower ( $mensaje ) ) );
}
else
{
$mensaje = NULL;
}
return $mensaje;
}
if(trim($HTTP_POST_VARS["id"]) != "" && trim($HTTP_POST_VARS["clave"]) != "")
{
$sql = "SELECT memb___id FROM MEMB_INFO WHERE memb___id='".anti_injection($HTTP_POST_VARS["id"])."' and memb__pwd='".anti_injection($HTTP_POST_VARS["clave"])."'";
$result = mssql_query($sql);
if($row = mssql_fetch_array($result))
{
$sqlexiste = "SELECT AccountID FROM EXTWAREHOUSE WHERE AccountID='".anti_injection($HTTP_POST_VARS["id"])."'";
$resultexiste = mssql_query($sqlexiste);
if($rowexiste = mssql_fetch_array($resultexiste))
{
$sqlchar = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='".anti_injection($HTTP_POST_VARS["id"])."'");
$rschar = mssql_fetch_array($sqlchar);
if(($rschar['ConnectStat'])==0)
{
$sqlbaul = mssql_query("SELECT number FROM WAREHOUSE WHERE AccountID='".anti_injection($HTTP_POST_VARS["id"])."'");
$rsbaul = mssql_fetch_array($sqlbaul);
if(($rsbaul['number'])==1)
{
/* If I want my original vault */
/* Save 2nd vault in extwarehouse table */
$sql ="update extwarehouse set items=(select items from warehouse where accountid='".anti_injection($HTTP_POST_VARS["id"])."') where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
$sql ="update extwarehouse set money=(select money from warehouse where accountid='".anti_injection($HTTP_POST_VARS["id"])."') where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
/* Update main vault to original content */
$sql ="update warehouse set items=(select items from charbaul where accountid='".anti_injection($HTTP_POST_VARS["id"])."') where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
$sql ="update warehouse set money=(select money from charbaul where accountid='".anti_injection($HTTP_POST_VARS["id"])."') where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
/* Set vault number */
$sql ="update warehouse set number=0 where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
/* Clean main vault last data */
$sql ="delete charbaul where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
}
if(($rsbaul['number'])==0)
{
/* If I want 2nd vault */
/* Save main vault data into charbaul table */
$sql ="insert into charbaul(accountid, items, money)(select accountid, items, money from warehouse where accountid='".anti_injection($HTTP_POST_VARS["id"])."')";
mssql_query($sql);
/* Update main vault to 2nd vault data */
$sql ="update warehouse set items=(select items from extwarehouse where accountid='".anti_injection($HTTP_POST_VARS["id"])."') where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
$sql ="update warehouse set money=(select money from extwarehouse where accountid='".anti_injection($HTTP_POST_VARS["id"])."') where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
/* Set vault number */
$sql ="update warehouse set number=1 where accountid='".anti_injection($HTTP_POST_VARS["id"])."'";
mssql_query($sql);
}
echo "-".anti_injection($HTTP_POST_VARS["id"])." vault changed successfully !!!";
}
else
{
echo "You must be off line, vault change not proceed !!!";
}
}
else
{
echo "You don't have extravault, contact your administrator !!!";
}
}
else
{
echo "Login fail !!!";
}
mssql_free_result($result);
}
else
{
echo "You must to complete all field to login ok !!!";
}
mssql_close();
?>
1. Well this script add a trigger into memb_info table, then will be activated every time an account is INSERTED into this table. This trigger will add a new record into extwarehouse table using the new account ID created:
Code:
CREATE TRIGGER [extware] ON [dbo].[MEMB_INFO]
FOR INSERT
AS
declare @cuenta varchar(10)
SELECT @cuenta=memb___id FROM INSERTED
insert into extwarehouse values(@cuenta,0,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,0,0,0,'')
Code:
ALTER TABLE warehouse ADD exist INTEGER NULL CONSTRAINT [DF_warehouses] DEFAULT ((0))
UPDATE warehouse SET exist=0
UPDATE warehouse SET exist=1 WHERE EXISTS ( SELECT extwarehouse.AccountID FROM extwarehouse WHERE extwarehouse.AccountID = warehouse.AccountID)
INSERT INTO extwarehouse(AccountID,Number,Items,Money,EndUseDate,DbVersion,pw)(select accountid,0,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,0,0,0,'' from warehouse where exist=0)
UPDATE warehouse SET exist=1 WHERE EXISTS ( SELECT extwarehouse.AccountID FROM extwarehouse WHERE extwarehouse.AccountID = warehouse.AccountID)
Code:
ALTER TABLE warehouse ADD exist INTEGER NULL CONSTRAINT [DF_warehouses] DEFAULT ((0))
UPDATE warehouse SET exist=0
Code:
UPDATE warehouse SET exist=1 WHERE EXISTS ( SELECT extwarehouse.AccountID FROM extwarehouse WHERE extwarehouse.AccountID = warehouse.AccountID)
Code:
INSERT INTO extwarehouse(AccountID,Number,Items,Money,EndUseDate,DbVersion,pw)(select accountid,0,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,0,0,0,'' from warehouse where exist=0)
Code:
Code:
UPDATE warehouse SET exist=1 WHERE EXISTS ( SELECT extwarehouse.AccountID FROM extwarehouse WHERE extwarehouse.AccountID = warehouse.AccountID)
The one detail is when you make the 2nd vault and you change it, and then you try edit with MuEdit, the vault look like this:
If you want edit you must reset warehouse first, that's the only details and the only time you have to do this (if you want use an editor), but in game the update is successfully.
Finally, sorry about my english I hope you understand me what I mean hahaha. See ya!
Note: The 2nd script must be used only one time, this only works if you have accounts created, if you start by 0, don't use it.
See ya! n' good luck!