北大侠客行MUD论坛

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

[模块]人物信息

[复制链接]
发表于 2009-5-3 02:52:46 | 显示全部楼层 |阅读模式
初始化模块,初始化当前人物信息,require 后调用 Init()即可完成全部初始化工作
初始化信息为 char table
结构:
char.id   人物id
char.name  人物名称
char.title 包括门派,头衔,昵称
char.skill 以技能id为key的列表,表中每一元素为{name,level,exp}结构
char.jifa  以激发基本技能id为key的列表,元素为对应于key的特殊功夫id
Init()结束后会删除所用临时Trigger,不使机器人逐渐冗余或产生副作用
使用,如
a) if (char.skill["dodge"].level > 100) then *StopJump* end
b) if char.skill[char.jifa["sword"]].level > 100 then *StopPractice* end
c) Trigger  "你的(*)进步了"
call
 for k, v in pairs(char.skill) do
   if v.name == %1 then
     v.level = v.level + 1
     break
   end
 end

[ 本帖最后由 duno 于 2009-5-5 04:06 AM 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-3 02:55:11 | 显示全部楼层
初始化过程log举例
sk
jifa
sc
init
你目前所学过的技能:(共四项技能)
┌        一项知识    ──────────────────────┐
│  读书写字 (literate)                      - 新学乍用   1/     0│
└────────────────────────────────┘
┌    二项基本功夫    ──────────────────────┐
│  基本内功 (force)                         - 不堪一击   2/     0│
│  基本招架 (parry)                         - 不堪一击   6/     0│
└────────────────────────────────┘
┌    一项特殊功夫    ──────────────────────┐
│□马屁神功 (flatter)                       - 不堪一击   1/     1│
└────────────────────────────────┘
> 以下是你目前使用中的特殊技能。
  轻功 (dodge)                : 无                    有效等级:  8
  内功 (force)                : 无                    有效等级:  1
  招架 (parry)                : 马屁神功              有效等级:  4
> ≡━◎个人档案◎━━━━━━━━━━━━━━━━━━━━━━━━≡
【青年男子】普通百姓「拾荒者」娃哈哈(Testgogogo)
say init name 娃哈哈 testgogogo
say title = 普通百姓「拾荒者」
say list char info
say clear init
你是一位二十岁的未婚男性人类,戊子年十二月八日戌时四刻生。
膂力:[ 19]  悟性:[ 21]  根骨:[ 18]  身法:[ 22]
福缘:[ 19]  容貌:[ 11]  灵性:[ 30]  
<精>  ■■■■■■■■■■■■■■■■■■■■■■■■■
<气>  ■■■■■■■■■■■■■■■■■■■■■■■■■
攻击 不堪一击 (+0)     躲闪 不堪一击   招架 不堪一击 (+1)
食物:□□□□□□□□□□□□□□□□□□□□□□□□□
饮水:□□□□□□□□□□□□□□□□□□□□□□□□□
你曾经结束过零个生命,其中有零个是其他玩家,零个是宠物。
你共经历过六次死亡的痛苦,其中有一次是命丧其他玩家之手。
你上一次于己丑年四月二十八日亥时四刻在花园别墅区死亡,死因为:被白骆驼(camel)杀死。
杀    气:  正常
银行存款:  二十七两白银八十三文铜板
道    德:  0
潜    能:  100
实战经验:  120
等    级:  零
师门忠诚:  0
江湖声望:  0
≡━━━━━━━━━━━━━━━━━━━━━━◎北大侠客行◎━━≡
> 你说道:「init name 娃哈哈 testgogogo」
> 你说道:「title = 普通百姓「拾荒者」」
> 你说道:「list char info」

*** char info ***
  char.id = testgogogo
  char.name = 娃哈哈
  char.title = 普通百姓「拾荒者」
*** list char skills ***
  char.skill[literate] -> name=读书写字 level=1 exp=0
  char.skill[force] -> name=基本内功 level=2 exp=0
  char.skill[flatter] -> name=马屁神功 level=1 exp=1
  char.skill[parry] -> name=基本招架 level=6 exp=0
*** list char jifa ***
  char.jifa[parry] = flatter

[ 本帖最后由 duno 于 2009-5-3 11:20 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-5-3 04:41:21 | 显示全部楼层
不明白,有什么具体的功用?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-5-3 08:08:12 | 显示全部楼层
练技能的时候有用,不过俺不会用
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-3 16:50:36 | 显示全部楼层
只在一定程度上提高自动化比率,进入游戏后,不需要预先设定任务名称,id,比如慕容追叛徒需要用到名称,引入此模块可以不用再手动设定 char_name
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-3 16:54:39 | 显示全部楼层
领悟时,自动遍历skill,寻找 可领悟 或 可练习 的skill
下为目前使用的领悟机器人选择技能函数,task为领悟任务列表,每一元素有lingwu,lianxi两个域
function DoLingWu ()
        local lingwu = nil
        local lianxi = nil
        for i = 1, #task do
                local v = task
                if not lingwu and v.lingwu ~= "dodge" and skill[v.lingwu].level < skill[v.lianxi].level + 1 and skill[v.lingwu].level < limit then
                        lingwu = v.lingwu
                end
                if not lianxi and skill[v.lianxi].level < skill[v.lingwu].level and skill[v.lianxi].level < limit then
                        lianxi = v.lingwu
                end
        end
        if lingwu and (not task_type or task_type == "lingwu") then
                for i = 1, 3 do
                        Send ("yun regenerate")
                        Send ("lingwu " .. lingwu .. " 50")
                end
        elseif lianxi and (not task_type or task_type == "lianxi") then
                Send ("yun recover")
                Send ("lian " .. lianxi .. " 50")
        else
                Send ("say lingwu end")
                EnableTimer ("ticker_main", false)
        end
end
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-5-3 17:11:18 | 显示全部楼层
太高深了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-3 21:05:54 | 显示全部楼层
就是领悟的时候,每次领悟前遍历char.skill,选择当前可以领悟的技能
判断条件为,领悟技能 小于 对应激发技能+1 (由char.jifa确定激发技能)
大致就是这个意思啦
上面的task是一个设定的任务列表,比如sword,blade,claw,之后就直从里面寻找需要领悟的技能

看别人的代码确实是很痛苦的,即使自己看自己几年前的写的东西也会痛苦,suffering 囧

[ 本帖最后由 duno 于 2009-5-3 09:08 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-18 10:29:31 | 显示全部楼层
也是个好东西!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-18 10:47:15 | 显示全部楼层
完全看不懂啊,papaya
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 05:32 PM , Processed in 0.012837 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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