wangque 发表于 2015-1-31 18:37:41

请教zmud4.62版本的if语句的问题

触发:任务诵经任务要求你*·(%x)~((%d)~)
句型:mulu=%1;
zhangye=%2;
#if @mulu=知北游 {#math page @zhangye+177-1};
#if @mulu=骈拇 {#math page @zhangye-1+1};
#if @mulu=刻意 {#math page @zhangye-1+190};
#if @mulu=马蹄 {#math page @zhangye-1+4};
#if @mulu=说剑 {#math page @zhangye-1+99};
#if @mulu=盗跖 {#math page @zhangye-1+47};
#if @mulu=胠箧 {#math page @zhangye-1+12};
#if @mulu=在宥 {#math page @zhangye-1+31};
#if @mulu=天地 {#math page @zhangye-1+66};
#if @mulu=天道 {#math page @zhangye-1+116};
#if @mulu=大宗师 {#math page @zhangye-1+77};
#if @mulu=天运 {#math page @zhangye-1+151};
#if @mulu=缮性 {#math page @zhangye-1+201};
#if @mulu=至乐 {#math page @zhangye-1+51};
#if @mulu=秋水 {#math page @zhangye-1+1};
#if @mulu=达生 {#math page @zhangye-1+69};
#if @mulu=山木 {#math page @zhangye-1+107};
#if @mulu=田子方 {#math page @zhangye-1+143};
#if @mulu=徐无鬼 {#math page @zhangye-1+42};
#if @mulu=则阳 {#math page @zhangye-1+98};
#if @mulu=外物 {#math page @zhangye-1+141};
#if @mulu=寓言 {#math page @zhangye-1+168};
#if @mulu=让王 {#math page @zhangye-1+1};
#if @mulu=渔父 {#math page @zhangye-1+114};
#if @mulu=天下 {#math page @zhangye-1+165};
#if @mulu=列御寇 {#math page @zhangye-1+139};
#if @mulu=逍遥游 {#math page @zhangye-1+1};
#if @mulu=齐物论 {#math page @zhangye-1+21};
#if @mulu=养生主 {#math page @zhangye-1+69};
#if @mulu=人间世 {#math page @zhangye-1+1};
#if @mulu=德充符 {#math page @zhangye-1+46};
#if @mulu=应帝王 {#math page @zhangye-1+124}
这个句型老是出错,我观察到mulu和zhangye变量的取样都是正确的,但是page老容易错,但是如果我删除了几个#if语句后page就取样正确了,莫非#if语句行数多了就有问题么?如果这样只有再增加别的条件了分类触发#if了么

北大侠客行MUD,中国最好的MUD

wangque 发表于 2015-1-31 19:09:43

搞定,百度了下,原因找到,原文这样说:等于(=)判断好多时候不好用, 比如说碰到 中文, 碰到 -
通常我是一律用 %ismember 函数来判断, 或者 %pos 函数
%pos(p,s)   return the position of pattern p in string s.Return 0/false if not found
%ismember(s,list)   return true if s is a member of the given string list
上面的可以改写为
#if (%pos(tianzi-jian,@ag)) {ap=sword};#if (%pos(liumai-shenjian,@ag)) {ap=unarmed}
或者
#if (%ismember(@ag,tianzi-jian|taiji-jian|wudang-jian)) {ap=sword};#if (%ismember(@agliumai-shenjian|taiji-quan)) {ap=unarmed}
list列表用 | 隔开
那么我的句型改成
#if %pos(马蹄,@mulu) {#math page @zhangye-1+4};
#if %pos(说剑,@mulu) {#math page @zhangye-1+99};
#if %pos(盗跖,@mulu) {#math page @zhangye-1+47};
#if %pos(胠箧,@mulu) {#math page @zhangye-1+12};
#if %pos(在宥,@mulu) {#math page @zhangye-1+31};
#if %pos(天地,@mulu) {#math page @zhangye-1+66};
#if %pos(天道,@mulu) {#math page @zhangye-1+116};
#if %pos(大宗师,@mulu) {#math page @zhangye-1+77};
#if %pos(天运,@mulu) {#math page @zhangye-1+151};
#if %pos(缮性,@mulu) {#math page @zhangye-1+201};
#if %pos(至乐,@mulu) {#math page @zhangye-1+51};
#if %pos(秋水,@mulu) {#math page @zhangye-1+1};
#if %pos(达生,@mulu) {#math page @zhangye-1+69};
#if %pos(山木,@mulu) {#math page @zhangye-1+107};
#if %pos(田子方,@mulu) {#math page @zhangye-1+143};
#if %pos(徐无鬼,@mulu) {#math page @zhangye-1+42};
#if %pos(则阳,@mulu) {#math page @zhangye-1+98};
#if %pos(外物,@mulu) {#math page @zhangye-1+141};
#if %pos(寓言,@mulu) {#math page @zhangye-1+168};
#if %pos(让王,@mulu) {#math page @zhangye-1+1};
#if %pos(渔父,@mulu) {#math page @zhangye-1+114};
#if %pos(天下,@mulu) {#math page @zhangye-1+165};
#if %pos(列御寇,@mulu) {#math page @zhangye-1+139};
#if %pos(逍遥游,@mulu) {#math page @zhangye-1+1};
#if %pos(齐物论,@mulu) {#math page @zhangye-1+21};
#if %pos(养生主,@mulu) {#math page @zhangye-1+69};
#if %pos(人间世,@mulu) {#math page @zhangye-1+1};
#if %pos(德充符,@mulu) {#math page @zhangye-1+46};
#if %pos(应帝王,@mulu) {#math page @zhangye-1+124}
就彻底解决问题,高手还是多

feehoo 发表于 2015-1-31 19:16:49

zmud真够折腾的

yunlan 发表于 2015-1-31 21:58:26

中文字符串对比我一般是用 %begins

suxxx 发表于 2015-2-2 11:42:05

721好像没这个问题
页: [1]
查看完整版本: 请教zmud4.62版本的if语句的问题