找回密码
 点一下
查看: 1676|回复: 11

怎么才能让条件的字符串不区分大小写

[复制链接]
发表于 2010-3-24 01:13:01 | 显示全部楼层 |阅读模式
[trigger]Command
    事件
        玩家 - 玩家1(红色) 输入的聊天信息包含 <空字符串> ,匹配方式: 包含字符串
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (输入的聊天信息) 等于 myjlzh
            Then - 动作
                单位 - 立即移动 Hero_WanJia[((触发玩家) 的玩家索引号)] 到 All_Point[1579] [/trigger]
例如上面的一个触发,如果输入MYJLZH就会失效
必须输入小写的myjlzh
本来在事件里的聊天信息是不分大小写的,但是弄成条件就会区分了,求助怎么样才能不分大小写?否则会很麻烦
发表于 2010-3-24 01:36:12 | 显示全部楼层
把输入的字符串预处理一下,把大写改小写就好了。
太晚了,要睡了,不然我可以帮你写个。
回复

使用道具 举报

发表于 2010-3-24 06:23:13 | 显示全部楼层
有个默认的功能可以把一个字符串的内容全部变成大/小写。
函数是这个:
[jass]
native StringCase takes string source, boolean upper returns string
[/jass]
回复

使用道具 举报

发表于 2010-3-24 13:40:02 | 显示全部楼层
写两个,一个大写一个小写,然后用OR~
回复

使用道具 举报

发表于 2010-3-24 16:27:42 | 显示全部楼层
引用第3楼a595859893于2010-03-24 13:40发表的  :
写两个,一个大写一个小写,然后用OR~

极为不靠谱的做法
举个例子,apple,如果你输个Apple进去你觉得应不应该通过?
回复

使用道具 举报

发表于 2010-3-24 17:20:00 | 显示全部楼层
apple
or
Apple
or
APPLE
or
aPPLE
or
ApPlE
or
aPpLe
or
苹果
or
蘋果
回复

使用道具 举报

发表于 2010-3-24 17:33:12 | 显示全部楼层
那这样行不?
[trigger]
A01
    事件
        地图初始化
    条件
    动作
        For循环整数A从 1 到 26, 做动作
            Loop - 动作
                设置 zifuchuan[(循环整数A)] = (截取 abcdefghijklmnopqrstuvwxyz 的 (循环整数A) - (循环整数A) 字节部分)
                设置 zifuchuan2[(循环整数A)] = (截取 ABCDEFGHIJKLMNOPQRSTUVWXYZ 的 (循环整数A) - (循环整数A) 字节部分)
[/trigger]
[trigger]
A02
    事件
        玩家 - 玩家1(红色) 输入的聊天信息包含 <空字符串> ,匹配方式: 包含字符串
    条件
    动作
        设置 panduan[3] = (输入的聊天信息)
        For循环整数B从 1 到 ((输入的聊天信息)的长度), 做动作
            Loop - 动作
                For循环整数A从 1 到 26, 做动作
                    Loop - 动作
                        如果所有条件成立则做动作1,否则做动作2
                            If - 条件
                                (截取 (输入的聊天信息) 的 (循环整数B) - (循环整数B) 字节部分) 等于 zifuchuan2[(循环整数A)]
                            Then - 动作
                                设置 panduan[1] = (截取 panduan[3] 的 1 - ((循环整数B) - 1) 字节部分)
                                设置 panduan[2] = (截取 panduan[3] 的 ((循环整数B) + 1) - ((输入的聊天信息)的长度) 字节部分)
                                设置 panduan[3] = (panduan[1] + (zifuchuan[(循环整数A)] + panduan[2]))
                            Else - 动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                panduan[3] 等于 abcde
            Then - 动作
                游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: asdasdasdasdasdasds...
            Else - 动作
[/trigger]
回复

使用道具 举报

 楼主| 发表于 2010-3-25 01:22:53 | 显示全部楼层
引用第2楼血戮魔动冰于2010-03-24 06:23发表的  :
有个默认的功能可以把一个字符串的内容全部变成大/小写。
函数是这个:
[jass]
native StringCase takes string source, boolean upper returns string
[/jass]

JASS看不懂,不是很明白,不过也谢谢了,先收藏以后研究研究

引用第6楼a595859893于2010-03-24 17:33发表的  :
那这样行不?

6楼好办法,简单易懂,谢谢了
回复

使用道具 举报

 楼主| 发表于 2010-3-25 02:24:21 | 显示全部楼层
对了刚才用了6楼的系统很好,顺便发现个令人震惊的BUG。。。。。
字母应该是26个,循环了24次,导致带XY的实效。刚开始没发现。
回复

使用道具 举报

发表于 2010-3-25 02:33:52 | 显示全部楼层
字符串中有一个操作时转换大小写,直接转成大(小)写然后再去判断
回复

使用道具 举报

发表于 2010-3-25 12:41:12 | 显示全部楼层
—。—我当时忘记英文字母有多少个了。。。。
回复

使用道具 举报

发表于 2010-3-25 19:09:10 | 显示全部楼层
引用第10楼a595859893于2010-03-25 12:41发表的  :
—。—我当时忘记英文字母有多少个了。。。。

我忍不住出来冒泡了,你太强大了~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-10-6 03:53 , Processed in 0.036807 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表