找回密码
 点一下
查看: 2144|回复: 5

字符串问题,想用T模仿ORPG~~

[复制链接]
发表于 2010-8-13 13:37:36 | 显示全部楼层 |阅读模式
[trigger]
NewTrigger 002
    事件
        玩家 - 玩家1(红色) 输入的聊天信息包含 -load ,匹配方式: 包含字符串
    条件
        (截取 (输入的聊天信息) 的 1 - 5 字节部分) 等于 -load
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (截取 (输入的聊天信息) 的 7 - 11 字节部分) 等于 ward
            Then - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (转换 (截取 (输入的聊天信息) 的 13 - 17 字节部分) 为整数) 小于或等于 9999
                    Then - 动作
                        英雄 - 创建 QESW[(转换 (截取 (输入的聊天信息) 的 13 - 17 字节部分) 为整数)] 给 乌瑟尔 0003 <预设>
                    Else - 动作
                        无动作
            Else - 动作
                无动作
[/trigger]
如上触发..-load是前提  然后加判断  7-11字节为ward(无意思,乱打的)   然后13-17为整数(一串数字,其实是为了创造物品时能影响变量的数组)  小于等于9999    然后上个触发  事件地图初始化  设置变量XX(物品类型变量,最大数组为9999)XX(1)为死亡面罩  变量XX(2)为攻击之爪
然后根据上面触发  输入-load ward 0002就可以给那个单位创造1个攻击之爪   但是结果什么都没....  出错了  自己分析了下  实在想不到,现在发上来给大家看看  指点下哪错了!! 谢谢!!!
发表于 2010-8-13 14:08:09 | 显示全部楼层
创建 QESW[(转换 (截取 (输入的聊天信息) 的 13 - 17 字节部分) 为整数)] 给 乌瑟尔 0003 <预设>
总感觉怪怪的

而且-load ward 0002的7-11字节是“ward(有个空格)”,13-15字节是“002”,能对么?就算字节不算空格,你也不想想7-11和13-17字节都是五个字......

本人PC盲,若是对字节的理解有误,请大家随意谩骂。
回复

使用道具 举报

发表于 2010-8-13 14:11:56 | 显示全部楼层
估计是ward的问题。。。。猜测没加空格
字符串"002"转整数转的是2没错
回复

使用道具 举报

发表于 2010-8-13 14:12:54 | 显示全部楼层
你的触发的问题在于:你的字符串截取的字节弄错了。
(7 - 11)截取了一共5个字符,包括“ward”和一个“ ”(空格)
(13 - 17)截取的不是“0002”而是“002”

教给你一个纠错的好方法:
在每一段动作里面加一句用来显示文字的动作,这样触发正确运行到了哪里就一目了然了。
哪里出错了一看就清楚了,要比慢慢找方便了许多。

[trigger]
Test
    事件
        玩家 - 玩家1(红色) 输入的聊天信息包含 -load ,匹配方式: 包含字符串
    条件
        (截取 (输入的聊天信息) 的 1 - 5 字节部分) 等于 -load
    动作
        设置 QESW[1] = 死亡面罩
        设置 QESW[2] = 攻击之爪 +15
        游戏 - 对 (所有玩家) 发送文本信息: (截取 (输入的聊天信息) 的 7 - 10 字节部分)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (截取 (输入的聊天信息) 的 7 - 10 字节部分) 等于 ward
            Then - 动作
                游戏 - 对 (所有玩家) 发送文本信息: (截取 (输入的聊天信息) 的 12 - 15 字节部分)
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (转换 (截取 (输入的聊天信息) 的 12 - 15 字节部分) 为整数) 小于或等于 9999
                    Then - 动作
                        游戏 - 对 (所有玩家) 发送文本信息: OK
                        英雄 - 创建 QESW[(转换 (截取 (输入的聊天信息) 的 12 - 15 字节部分) 为整数)] 给 乌瑟尔 0002 <预设>
                    Else - 动作
                        无动作
            Else - 动作
                无动作
[/trigger]

test.w3x

13 KB, 下载次数: 23

回复

使用道具 举报

 楼主| 发表于 2010-8-13 14:13:16 | 显示全部楼层
引用第1楼gjwgjwwwcwwc于2010-08-13 14:08发表的  :
创建 QESW[(转换 (截取 (输入的聊天信息) 的 13 - 17 字节部分) 为整数)] 给 乌瑟尔 0003 <预设>
总感觉怪怪的

而且-load ward 0002的7-11字节是“ward(有个空格)”,13-15字节是“002”,能对么?就算字节不算空格,你也不想想7-11和13-17字节都是五个字......
- -!  我怎么没看出来   3Q  我去试试
.......
回复

使用道具 举报

 楼主| 发表于 2010-8-13 14:18:57 | 显示全部楼层
感谢大家!!  原来是数数,数错了   哎....  麻烦大家了!   真不好意思...  我以为我触发的条件什么错了  但是分析了好久 都不对...  原来错误是这么简单....    谢谢大家
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 07:48 , Processed in 0.050327 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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