魔兽首页最新地图防守地图对抗地图角色剧情TD塔类图标准战役ORPG地图其它地图
魔兽论坛攻略秘籍补丁工具RPG 录像制图教学制图资源魔兽战队新图试玩通魔作坊

您的位置:魔兽争霸U9网 >> 制图教学

JASS实用技术]将字符串代码转为数值[代码+演示]

作者:鬼龙之舞    文章来源:U9论坛    点击数:    更新时间:2006-8-30 15:08:28
单位,技能,物品的代码实际上只是数值,只是它的表示方法有别于我们所认识的数制
比如说 剑圣的代码是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

责任编辑:瞳瞳
进入论坛参与针对本文章的讨论
文中部分附件请进入论坛下载
本文章地址:
  • 上一篇:[教程]新手做图入门指导教程〔第一章〕
  • 下一篇:
  • 相关文章

    进入论坛参与针对本文章的讨论用户评论

    地图 攻略
    热门搜索: 仙之侠道 真三国无双 Dota Allstar

    地图专区导航

    热门地图攻略

    热门地图周排行

    最新推荐地图

    地图下载总排行

    公司简介    -    商务合作    -    加入我们    -    联系我们    -    广告服务    -    友情链接
    建议意见:玩家点击留言  商务合作:客户点击留言
    西安优久数码科技有限公司 版权所有 陕ICP证08000654号