搜索
 找回密码
 加入

装备信息加密,解密代码

ctgwglzc 2008-12-26 14:14:29 2044
  1. --Electro Shock Private Server Gaming--
  2. --Procedure Create Time 10.05.2008--
  3. --Please Do Not Change Procedures--
  4. --Lütfen Procedure Üstünde Değişiklik Yapmayınız--

  5. CREATE PROCEDURE item_decode
  6. @strUserId varchar(30)
  7. AS
  8. DECLARE
  9. @length int, -- stritem uzunluğu
  10. @i int, -- item'in stritem deki yeri
  11. @dwid int,
  12. @dur int,
  13. @duar int,
  14. @StackSize1 int,
  15. @Slot int,
  16. @Row int,
  17. @name varchar(100),
  18. @extname varchar(100),
  19. @ext int


  20.     SET @i = 14*0+1
  21.     SET @length = 337

  22. SELECT @row=count(*) FROM USERDATA WHERE strUserId=@strUserId

  23. DELETE FROM INVENTORY_EDIT WHERE strUserId=@strUserId

  24. IF @row>0
  25.   BEGIN

  26. WHILE @i < @length
  27.   BEGIN

  28. 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)),
  29. @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),
  30. @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),
  31.         @strUserId = strUserId
  32.         FROM USERDATA
  33.         WHERE strUserId = @strUserId

  34. IF @dwid=0
  35.   BEGIN

  36.     SET @extname='Item Not Have'
  37.     SET @name='Item Not Have'

  38. END

  39. ELSE

  40.   BEGIN

  41.     SET @extname='Not Found'

  42. SELECT @extname=strName FROM ITEM WHERE Num=@dwid

  43. END

  44. INSERT INTO INVENTORY_EDIT (dwid,stacksize,durability,strUserId,Slot,ItemName,extname) values(@dwid,@stacksize1,@dur,@strUserId,(@i-1) / 8,@extname,@name )

  45.     SET @i=@i+8

  46. END

  47. SELECT * FROM INVENTORY_EDIT WHERE strUserId=@strUserId ORDER BY Slot

  48. END
  49. GO
复制代码

21 回复

ctgwglzc
2008-12-25 19:10:43
楼主
点击查看详情
以上为解密代码
以下为加密代码
  1. --Electro Shock Private Server Gaming--
  2. --Procedure Create Time 10.05.2008--
  3. --Please Do Not Change Procedures--
  4. --Lütfen Procedure &Uuml;stünde De&#287;i&#351;iklik Yapmay&#305;n&#305;z--

  5. CREATE PROCEDURE item_encode
  6. @strUserId varchar(30)
  7. AS
  8. DECLARE
  9. @length int, -- stritem uzunlu&#287;u
  10. @row int, -- yerine g&ouml;re dei&#351;ior.
  11. @i int, -- item'in stritem deki yeri
  12. @dwid int, -- dwid
  13. @pos int,
  14. @dur int,
  15. @dur1 int,
  16. @ext int,
  17. @StackSize1 int,
  18. @strName varchar(30),
  19. @strExtName varchar(30),
  20. @Cdwid varbinary(4),
  21. @cdur varchar(2),
  22. @Source tinyint,
  23. @NEWdwid int,
  24. @StackSize int,
  25. @cstack varchar(2),
  26. @Slot int

  27.     SET @Slot=0
  28.     SET @i = 14*0
  29.     SET @length = 337

  30. SELECT @row=count( * ) FROM USERDATA WHERE strUserId=@strUserId

  31. IF @row>0
  32.   BEGIN


  33. SELECT @dwid=dwid,
  34. @dur = durability,
  35. @StackSize1 = stacksize,
  36.         @strUserId = strUserId
  37.         FROM INVENTORY_EDIT
  38.         WHERE strUserId = @strUserId and Slot=@Slot

  39.     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)
  40.     SET @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
  41.     SET @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))


  42.     UPDATE USERDATA SET strItem = cast(cast(cast(@Cdwid as varchar(4)) + @Cdur + @Cstack as varchar(8))   as binary(400)) WHERE strUserId = @strUserId


  43.     SET @i=@i+8
  44.     SET @Slot=@Slot+1



  45. WHILE @Slot < 42
  46.   BEGIN

  47. SELECT @dwid=dwid,
  48. @dur = durability,
  49. @StackSize1 = stacksize,
  50.         @strUserId = strUserId
  51.         FROM INVENTORY_EDIT
  52.         WHERE strUserId = @strUserId and Slot=@Slot

  53.     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)
  54.     SET @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))
  55.     SET @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2, 1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))


  56.     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


  57.     SET @i=@i+8
  58.     SET @Slot=@Slot+1

  59. END

  60. END

  61. DELETE FROM INVENTORY_EDIT
  62. GO
复制代码
njsun
2008-12-25 19:49:33
好帖,做板凳先!!哈哈
yangwx
2008-12-25 20:47:29
o ,好贴!
njsun
2008-12-25 22:51:11
仓库编辑器?
lz2006
2008-12-26 03:38:02
加解密
有什么用呢?
vvforgs
2008-12-26 10:25:01
本帖最后由 vvforgs 于 2008-12-26 10:31 编辑

解密

加密
ctgwglzc
2008-12-26 10:35:45
楼主
加解密
有什么用呢?
lz2006 发表于 2008-12-26 03:38

USERDATA和WAREHOUSE里的ITEM项为加密后的数据,你无法直接编辑的
28085279
2008-12-26 14:06:44
这个适合什么版本的数据库
ryan6755
2008-12-26 14:14:29
好强大得东西,拜领了!谢谢CT分享!
123下一页
高级模式
游客