比如说 剑圣的代码是Obla,而Obla的值实际上是1331850337
你可以这样得到
DisplayTextToForce(GetPlayerAll(),"Obla="+I2S('Obla'))
但是,怎样计算出来的呢,实际上,算法是这样的:
取每个字符的ASC值(用十六进制表示),Obla的每个字符的分别是0x4f,0x62,0x6c,0x61
把它们合成一起,成为0x4f626c61,而这个进制刚好就是1331850337
以下是代码和一个实际使用的演示
function S2C takes string s0 returns integer
local string s1="0123456789-------ABCDEFGHIJKLMNOPQRSTUVWXYZ------abcdefghijklmnopqrstuvwxyz"
local string s2
local real c=0
local integer n=StringLength(s0)-1
local integer r=0
local integer i=0
if ( n!=3 ) then
return 0
endif
loop
exitwhen n<0
set i=0
set s2=SubString(s0,n,n+1)
loop
exitwhen (SubString(s1,i,i+1)==s2) or i>75 //s1的长度是75
set i=i+1
endloop
if (s2=="-" or i>75) then
return 0
endif
//以下三行set是将十进制转换为十六进制
set i=i+0x30
set r=r+R2I(Pow(16,c))*ModuloInteger(i,16)
set r=r+R2I(Pow(16,c+1))*(i/16)
set n=n-1
set c=c+2
endloop
return r
endfunction
附件: example.rar (2006-4-4 10:10, 17.35 K)该附件被下载次数 6
责任编辑:瞳瞳
进入论坛参与针对本文章的讨论
