⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ai框架说明.txt

📁 魔域源代码需要的可以学习一下真么这么麻烦啊
💻 TXT
字号:
// AI框架说明
// 仙剑修,2003.8.3



。暂不支持AGENT切屏


。模式规划:
	。0_dead					// 死亡模式
	。1_idle					// 休闲模式
		。0_wait					// 休闲模式中,又细分为等待组队模式
		。1_follow					//						和组队跟随模式
	。2_fight					// 战斗模式:分析战况,选择目标,同时跟随队长
	。3_attack					// 攻击模式:补血、发攻击命令、脱离危险


。事件
	。死亡事件:接到死亡消息时,改变模式为Dead
	。组队事件:接收到组队成功消息,增加TeamOK,增加IsMyLeader
	。队伍解散事件:删除TeamOK
	。---
	。装满药品消息:增加ItemFull,增加HaveItem
	。物品删除消息:如果药品少于2个时,增加NeedBuyItem
	。物品删除消息:如果药品没有了,删除HaveItem
	。---
	。移动消息:和药店距离少于8时,增加NearShop,否则删除NearShop
	。CPlayer消息:有队长标志,增加IsLeader
	。CPlayer消息:是怪物,增加IsEvil
	。CPlayer消息:是玩家且装备好,增加IsCoolMan
	。---
	。CPlayer消息:是自己的队长,增加IsMyLeader
	。移动消息:清除并重新添加所有的IsLookTarget
	。移动消息:清除并重新添加所有的IsCloseTarget
	。失血消息:如果血够少,增加NeedCure
	。被攻击消息:增加AttackMe(10),增加IsEvil(20),如果人数超过3人则增加Dangerous(10)
	。收到队长坐标:如果太远,就增加MyLeaderAway


。动作
	。RandomMove:随机选择可达点,设置移动目标点。
	。BuyAllItem:发MSG_ACTION消息,要求装满药。
	。AnalyseTalk:如果串中有“药”,增加TalkAboutItem
	。TalkTo:发送MSG_TALK消息给对方。
	。TeamAcceptInvite:发送组队申请。
	。TeamAllyJoin:发送组队申请。
	。CheckMyLeaderAway:检查队长是不是走开了,如走开了就发QUERY消息。
	。ChangeMap:如果距离近,就跑过去,远了就CHGMAP。
	。FastToLookPos:连续跳向能看到指定坐标的地方。
	。LeavePos:和该坐标保持一定距离,否则会跳开或跑开。

。备忘:
	。目前通过EVENT和ACTION来维护FACT_SET,允许同类FACT有多少个同时存在于库中。
	。动作的调度按类似WIN的进程调度模式,高优先级先执行,低优先级的时间长了优先级会自动提高。
	。匹配符号时,系统函数->游戏函数->fact库的顺序可优化CPU效率,但灵活性稍差。


。规则编写说明:
	。规则中的符号的风格为大写字母打头的单词的组合。例如 RuleStyle 。(风格:是指不强求,只是建议如此。下同)
	。符号后都可能有用圆括号包围的参数表。例如:RuleStyle(TYPE)。
	。符号分为两类,一类是FACT,另一类是系统函数。(系统函数类相当于C的关键字,FACT的符号名不能和系统函数类的名相同。)
	。系统函数不能放在RESULT部分,只能在CONDITION部分。
	。系统函数都是小写风格,以区别于符号。例如:less(SMALL,BIG)。
	。RESULT的参数表中的参数。用<>括起来的是KEY参数。KEY参数和圆括号中的参加合并为完整的参数表。例如:TalkToTarget<ROLE>("你好。")
	。通过RESULT添加FACT时,KEY值相同的FACT会被冲掉。
	。通过RESULT添加FACT时,如果没有KEY列表,符号相同的FACT只允许存在一个。
	。参数表中的参数分为两大类。一类是直接量,如1234,或者"string",类型分为INT类型和STRING类型。另一类是哑变量。
	。INT类型的直接量,只接收数字串。数字串后面允许紧接符号,但符号会被忽略。(后接符号的目的是提供数字的可读性,有点象enum)
	。STRING类型的直接量,必须用双引号(")括起来。
	。哑变量会在运行期被替换成相应的值。哑变量的风格是全部大写的符号串。例如:ROLE、DATA。
	。INT类型的哑变量和STRING类型的哑变量不能混合使用。也就是说,一个哑变量只能是一种类型,不能即是INT又是STRING。
	。变量(_)表示不需要匹配的变量。
	。条件列表中的FACT分为三类。一类是存放在FACT_SET中的FACT,另一类是可调用的游戏核心函数,还有就是系统自带的函数。
	。目前MODE部分不支持为空。
	。目前暂不支持游戏函数和系统函数的多重匹配。
	。目前暂不支持游戏函数和系统函数是的(_)符号。
	。相关连的FACT的优先级最好和RULE的优先级相同,否则要么不能触发,要么会触发多次。
	。符号检查顺序是:先看是否系统函数,再看是否游戏函数,最后在fact库中查找。

。系统限制:
	。整数的范围是-20亿到+20亿。
	。规则文本长度不超过1024。(可修改)

。规则设计方法:
	。符号从设计逻辑上大体可分为两类,一类是由EVENT提交的,一类是规则运算时添加的。
	。建议EVENT提交的符号由EVENT维护,规则运算产生的符号由规则运算来维护。交叉维护容易出错。
	。需要互斥的FACT,都做成同一个FACT,后面带KEY变量。



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -