清华西游记吧 关注:139贴子:1,462

回复:mushclient 学习贴

只看楼主收藏回复

我靠,干货来啦顶大神!


19楼2015-02-03 12:43
回复
    突然发现上一次回帖是在2015年2月,一转眼过去半年多了,这半年再也没摸过mushclient和lua。鉴于这半年手动炒股失败,考虑开始上机器人炒股,经过简单的比较,初步考虑采用python。为了学习新姿势,必要的做法是用玩游戏的方式来学。所以,后面有可能会更新一下mushclient+python。
    作为一个年近中年的连伪码农都算不上的非码农,是不是太拼了点呢。


    20楼2015-09-11 17:26
    回复
      经过几天内的摸索
      不建议使用mushclient+python
      mushclient只支持python2,而且对汉字的处理很讨厌,需要手动处理unicode/utf-8/gbk等格式的转换
      而且编写脚本不如lua友好方便
      我从原来的lua脚本搬到python,搬的不那么顺利


      21楼2015-09-20 10:55
      回复
        一晃一个月又过去了。最近比较忙,没什么时间写机器,有时候周末或者半夜抽空写写,居然也开始能24小时挂机了,可以跑跑袁天罡灭妖,白板学习,李靖灭妖,自动学习。没时间看盘,因此bug多多。发布了几次袁天罡白板机器之后,就没有再发布了。以后,看情况吧。mush对于不会的玩家来说,除非机器做到完全自动不出错,不然一旦出错,就只能干瞪眼,不知道怎么切换回手动模式。这点和zmud不太一样。


        22楼2015-10-31 19:57
        回复
          更新一点干活:mushclient 连接数据库。
          mushclient支持access,mysql,sqlite,等等众多数据库。考虑到sqlite不需要配置服务器装一堆软件,一个本地数据库文件就搞定,比较适合thu的挂机应用。
          mush原生支持sqlite,有两种访问方式,一种是mush自己写的sqlite3接口,以DataBase关键字作为入口,比如
          DatabaseOpen ("db", -- database ID
          GetInfo (66) .. "mytestdb.sqlite", -- file name
          6)
          DatabaseClose ("db") -- close it
          另外一种是采用lsqlite3接口,这是一种基于通用的lua访问sqlite3的数据接口,也是mush原生支持的。考虑到通用性,还是采用lsqlite3吧。哪天失业了,没准可以去帮人写lua sqlite代码糊口。&_@
          上代码:
          function lib.sql.init2()
          local tmp
          mydb = sqlite3.open (GetInfo (66) .. "./worlds/lua/thu.db")
          tmp = mydb:exec ([[
          CREATE TABLE IF NOT EXISTS yuan(
          myid TEXT,
          item INTEGER default 0,
          start_time INTEGER,
          level INTEGER,
          cplace TEXT,
          cname TEXT,
          ename TEXT,
          reward_wx INTEGER default 0,
          reward_dx INTEGER default 0,
          reward_qn INTEGER default 0,
          use_time INTEGER default 0,
          flag INTEGER default 0
          );
          ]])
          mydb:close()
          end
          用于创建一个表,内容下面看看就知道了
          id:灭妖数量:时间:时间_秒:难度:地点:怪名:怪id:奖励武学:道行:qn:灭妖用时:是否完成

          统计一堆id每天的灭妖情况,大数据分析地图盲点,不同id哪个灭妖容易一些,脚本改进之后是否能提高生产力等等。
          后面有条件,做一个quest的数据库,如来灭妖的数据库,可以分析不同任务的奖励情况,进行合理的选择。
          下面是填数据的脚本:
          function lib.sql.insert_lijing()
          local line,sql
          line = lib.sql.get_max_line(idinfo.myid,"lijing") + 1
          sql = "INSERT INTO lijing (myid,item,in_time,start_time,level,cplace,cname,ename) VALUES ('"..idinfo.myid.."',"..line..",'"..os.date().."',"..task.lijing.start_time..","..task.lijing.task_level..",'"..task.lijing.cplace.."','"..task.lijing.cname.."','"..task.lijing.ename.."');"
          mydb = sqlite3.open (GetInfo (66) .. "./worlds/lua/thu.db")
          print(mydb:exec (sql))
          mydb:close()
          end
          ---------zmud没有办法做这些东西。这也是我为什么放弃zmud的原因之一。


          23楼2015-10-31 20:19
          回复
            继续数据库,开封Quest系统,很多人都用zmud跑过,我用zmud721跑了好长时间的quest,里面绝大部分内容都是我重新整理验证过的,不想重复劳动,于是搬到mush上面来。这个工作不难做。
            zmud打开quest数据库,export成csv文件。
            运行sqlite3.exe,执行下面的操作:

            第一句.open quest_thu.db,打开/创建一个名字叫quest_thu.db的数据文件
            第二句.separator,采用,作为分隔符,csv文件是这样分割的。
            第三句.import 721.csv quest将zmud导出的数据库文件721.csv导入到表quest里面
            我们list一下看看:
            select * from quest;

            Done!
            剩下的就是把zmud的一堆alias搬到lua的表里面来执行


            24楼2015-10-31 20:29
            回复
              针对我种没有语言基础的,感觉云里,雾里,脑壳大。


              IP属地:四川25楼2015-11-26 11:55
              回复
                求西游记mush全自动机器人!


                IP属地:四川26楼2016-03-17 17:15
                回复
                  sqlite 命令行下的 中文乱码是怎么解决的?


                  IP属地:广东27楼2017-10-23 15:10
                  回复
                    MUSH初用了一下,感觉操作响应比zmud流畅很多 ,是个好东西


                    IP属地:陕西28楼2020-02-08 10:13
                    回复
                      学习了,楼主辛苦。


                      IP属地:上海29楼2022-04-14 21:54
                      回复