99 then DoAfterspecial(2,"gobuyyuer" ... 求教一个MUSH机器极简单的问题 ,北大侠客行MUD论坛" />

北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 3406|回复: 4

求教一个MUSH机器极简单的问题

[复制链接]
发表于 2012-2-25 16:48:05 | 显示全部楼层 |阅读模式
脚本文件内容如下:
function begindy()
  num=1
  DoAfterSpecial(2,"godiaoyu",10)
end

function diaoyu()
  num=num+1
  if num>99 then DoAfterspecial(2,"gobuyyuer",10)
    else
      Execute("gua yuer")
      Execute("diao yu")
    end
  end

机器触发如下:
^[> ]*你从杨永福那里买下了一百个鱼饵。
  执行:begindy()
^[> ]*你的经验增加了*点。
  执行:diaoyu()

如此设置后,每次经验增加就报错:
[string "Script file"]:7: attempt to perform arithmetic on global 'num' (a nil value)
stack traceback:
        [string "Script file"]:7: in function 'diaoyu'
        [string "触发器: "]:1: in main chunk

求解!谢谢大家!

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-2-25 16:48:50 | 显示全部楼层
本帖最后由 afu 于 2012-2-25 04:50 PM 编辑

附加说明,godiaoyu和gobuyyuer是两个alias,分别是去钓鱼和去买鱼饵
我特意先去买了一次100个鱼饵,触发了去钓鱼的alias,按我的想法num应该等于1的。。。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-2-25 17:51:29 | 显示全部楼层
错长老,怎么在MUSH里面显示变量值啊?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-2-25 19:17:31 | 显示全部楼层
在function begindy()的前一行加 num=1
问题的症结在于:没有定义全局变量num,你在function begindy()中定义的num只是一个局部变量。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-2-26 00:28:57 | 显示全部楼层
是的。函数里也可以声明全局变量。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-1 07:24 PM , Processed in 0.010695 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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