装备信息加密,解密代码
--Electro Shock Private Server Gaming----Procedure Create Time 10.05.2008--
--Please Do Not Change Procedures--
--Lütfen Procedure Üstünde Değişiklik Yapmayınız--
CREATE PROCEDURE item_decode
@strUserId varchar(30)
AS
DECLARE
@length int, -- stritem uzunluğu
@i int, -- item'in stritem deki yeri
@dwid int,
@dur int,
@duar int,
@StackSize1 int,
@Slot int,
@Row int,
@name varchar(100),
@extname varchar(100),
@ext int
SET @i = 14*0+1
SET @length = 337
SELECT @row=count(*) FROM USERDATA WHERE strUserId=@strUserId
DELETE FROM INVENTORY_EDIT WHERE strUserId=@strUserId
IF @row>0
BEGIN
WHILE @i < @length
BEGIN
SELECT @dwid=cast(cast(substring(cast(substring(strItem, @i,4) as varbinary(4)), 4, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 3, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 2, 1)+substring(cast(substring(strItem, @i,4) as varbinary(4)), 1, 1) as varbinary(4)) as int(4)),
@dur = cast(cast(cast( substring(strItem, @i+5, 1) as varbinary(1))+cast(substring(strItem, @i+4, 1) as varbinary(1)) as varbinary(2)) as smallint),
@StackSize1 = cast(cast(cast( substring(strItem, @i+7, 1) as varbinary(1))+cast(substring(strItem, @i+6, 1) as varbinary(1)) as varbinary(2)) as smallint),
@strUserId = strUserId
FROM USERDATA
WHERE strUserId = @strUserId
IF @dwid=0
BEGIN
SET @extname='Item Not Have'
SET @name='Item Not Have'
END
ELSE
BEGIN
SET @extname='Not Found'
SELECT @extname=strName FROM ITEM WHERE Num=@dwid
END
INSERT INTO INVENTORY_EDIT (dwid,stacksize,durability,strUserId,Slot,ItemName,extname) values(@dwid,@stacksize1,@dur,@strUserId,(@i-1) / 8,@extname,@name )
SET @i=@i+8
END
SELECT * FROM INVENTORY_EDIT WHERE strUserId=@strUserId ORDER BY Slot
END
GO
以上为解密代码
以下为加密代码
--Electro Shock Private Server Gaming--
--Procedure Create Time 10.05.2008--
--Please Do Not Change Procedures--
--Lütfen Procedure Üstünde Değişiklik Yapmayınız--
CREATE PROCEDURE item_encode
@strUserId varchar(30)
AS
DECLARE
@length int, -- stritem uzunluğu
@row int, -- yerine göre deişior.
@i int, -- item'in stritem deki yeri
@dwid int, -- dwid
@pos int,
@dur int,
@dur1 int,
@ext int,
@StackSize1 int,
@strName varchar(30),
@strExtName varchar(30),
@Cdwid varbinary(4),
@cdur varchar(2),
@Source tinyint,
@NEWdwid int,
@StackSize int,
@cstack varchar(2),
@Slot int
SET @Slot=0
SET @i = 14*0
SET @length = 337
SELECT @row=count( * ) FROM USERDATA WHERE strUserId=@strUserId
IF @row>0
BEGIN
SELECT @dwid=dwid,
@dur = durability,
@StackSize1 = stacksize,
@strUserId = strUserId
FROM INVENTORY_EDIT
WHERE strUserId = @strUserId and Slot=@Slot
SET @Cdwid = Substring(cast(@dwid as varbinary(4)), 4, 1) + Substring(cast(@dwid as varbinary(4)), 3, 1) + Substring(cast(@dwid as varbinary(4)), 2, 1) + Substring(cast(@dwid as varbinary(4)), 1, 1)
SET @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
SET @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))
UPDATE USERDATA SET strItem = cast(cast(cast(@Cdwid as varchar(4)) + @Cdur + @Cstack as varchar(8)) as binary(400)) WHERE strUserId = @strUserId
SET @i=@i+8
SET @Slot=@Slot+1
WHILE @Slot < 42
BEGIN
SELECT @dwid=dwid,
@dur = durability,
@StackSize1 = stacksize,
@strUserId = strUserId
FROM INVENTORY_EDIT
WHERE strUserId = @strUserId and Slot=@Slot
SET @Cdwid = Substring(cast(@dwid as varbinary(4)), 4, 1) + Substring(cast(@dwid as varbinary(4)), 3, 1) + Substring(cast(@dwid as varbinary(4)), 2, 1) + Substring(cast(@dwid as varbinary(4)), 1, 1)
SET @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
SET @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))
UPDATE USERDATA SET strItem = cast( substring(strItem, 1, @i) + cast(cast(@Cdwid as varchar(4)) + @Cdur + @Cstack as varchar(8)) + substring(strItem, @i+8, 401-@i) as binary(400)) WHERE strUserId = @strUserId
SET @i=@i+8
SET @Slot=@Slot+1
END
END
DELETE FROM INVENTORY_EDIT
GO
好帖,做板凳先!!哈哈 o ,好贴! 仓库编辑器? 加解密
有什么用呢? 本帖最后由 vvforgs 于 2008-12-26 10:31 编辑
解密
http://i273.photobucket.com/albums/jj229/vvforgs/1-4.jpg
加密
http://i273.photobucket.com/albums/jj229/vvforgs/2-3.jpg 加解密
有什么用呢?
lz2006 发表于 2008-12-26 03:38 http://www.kofans.cn/bbs/static/image/common/back.gif
USERDATA和WAREHOUSE里的ITEM项为加密后的数据,你无法直接编辑的 这个适合什么版本的数据库 好强大得东西,拜领了!谢谢CT分享!