软件简介:( c# G; I% D/ N7 Y
争霸网络 中国GM门户站 为感谢各位GM门的支持
9 `, e$ H( i- X# p特此 站长:单身仔仔
+ O4 R# A" f$ d' r把魔域 的源代码 发布出来给所有喜欢魔域
5 d S& t3 ^% T. ^$ C8 y的各位GM研究使用.在研究使用过程中
$ C8 w$ ]' G$ }本站不会提供技术咨询自行研究% u1 _, e1 V: s" a
内部有相关说明文件.希望制作出的各家特色后8 S0 d4 E$ @3 S: S( H' w
发布www.20921.com/bbs中国GM门户 共享使用* F7 |* f" p5 T, W
更希望那些卖端的请不要那么自信的卖出高价格; X5 r7 W# r; R$ j) R' x- I$ p0 Y
给GM门经济上增加难度。祝GM们2008新春快乐. X9 S5 I$ V- i! C' G* i
中国GM门户站 是中国最具有权威性.的GM门户站4 B- L! n5 W) @. \
地址:www.20921.com
# g0 g, W& W! b' }* TGM门户 GM资源 以及游戏源代码的起源地!
: x8 X- B7 c% p' Z
. U; _5 H6 m( v4 w% ~8 f& I) l/ N// AI框架说明; T2 c" F9 p' y9 O6 u+ C
// ,2007.8.31 }, m' _; Y- C |9 u6 @
。暂不支持AGENT切屏# J# Z: U# B( ^/ w9 e' K
8 n( c6 F: @7 K) u! c4 `% F8 S* F
。模式规划:1 t# \) v" @7 G
。0_dead// 死亡模式
7 i, E9 V6 Z$ u* F. j。1_idle// 休闲模式
, P# X! v; q7 @2 Y。0_wait// 休闲模式中,又细分为等待组队模式' g- c6 x$ o& r. g4 f* [
。1_follow//和组队跟随模式
5 @) O. J/ p1 \5 c5 d3 L3 {。2_fight// 战斗模式:分析战况,选择目标,同时跟随队长
' N/ F0 j* i) k n。3_attack// 攻击模式:补血、发攻击命令、脱离危险% E# c5 N0 E& F' C8 i4 u+ `
/ M- k) x0 J; U$ J# u1 L。事件
W# q& _# `- Y. ?" m' a。死亡事件:接到死亡消息时,改变模式为Dead* W/ `9 y+ K8 V8 g
。组队事件:接收到组队成功消息,增加TeamOK,增加IsMyLeader& p' o- j. x% c0 n8 e- |% @7 l
。队伍解散事件:删除TeamOK
* Q4 q* l/ @9 b* o1 l, J。---
. S1 {6 J: M. N* t4 j。装满药品消息:增加ItemFull,增加HaveItem6 z3 Q9 e8 I2 A- z% Z! t
。物品删除消息:如果药品少于2个时,增加NeedBuyItem3 y; J: @( ~7 I. I: O: ?
。物品删除消息:如果药品没有了,删除HaveItem
+ R: j% ~# j% e4 S, ^ i. G。---+ v4 d3 S }) A, Y$ R, I4 z* m, p
。移动消息:和药店距离少于8时,增加NearShop,否则删除NearShop9 s. l1 @. X6 B* @8 r# Z! g
。CPlayer消息:有队长标志,增加IsLeader
: j7 ]# {, @9 Y。CPlayer消息:是怪物,增加IsEvil& n1 j. \5 Q. ~9 x2 o
。CPlayer消息:是玩家且装备好,增加IsCoolMan3 ?9 Y% e) @# v, K; A+ F
。---9 O, ?1 I& q; m: E
。CPlayer消息:是自己的队长,增加IsMyLeader* a$ d4 u. @1 Y8 W. E
。移动消息:清除并重新添加所有的IsLookTarget
4 d, S: h' l U. w7 e7 T8 R。移动消息:清除并重新添加所有的IsCloseTarget
- m1 @9 m; d3 `. K/ n。失血消息:如果血够少,增加NeedCure
4 d4 o8 B8 Y* t0 ^6 y: |* B4 I。被攻击消息:增加AttackMe(10),增加IsEvil(20),如果人数超过3人则增加Dangerous(10)5 s. p2 j7 l' R, g" ]) J* t
。收到队长坐标:如果太远,就增加MyLeaderAway
1 s% @; G0 a+ `. _( E9 P. y
s; w% z, X" Z4 W0 B。动作; h( U6 f3 A4 _4 @! ~
。RandomMove:随机选择可达点,设置移动目标点。
# I" k6 g' b! o7 ~& _; S。BuyAllItem:发MSG_ACTION消息,要求装满药。
( R* o, W6 V2 Q$ B2 e& D: m。AnalyseTalk:如果串中有药,增加TalkAboutItem( j" w! |3 r% O+ e% F& E
。TalkTo:发送MSG_TALK消息给对方。: u, x8 @" A* ^
。TeamAcceptInvite:发送组队申请。0 n0 _- _8 @5 _* L
。TeamAllyJoin:发送组队申请。8 G, S4 q' D4 d1 M) L
。CheckMyLeaderAway:检查队长是不是走开了,如走开了就发QUERY消息。
9 c, S! B0 y4 T5 f。ChangeMap:如果距离近,就跑过去,远了就CHGMAP。
$ S6 O# r4 [+ C$ @- ^3 A。FastToLookPos:连续跳向能看到指定坐标的地方。
% N! u X+ W3 V ~* [. \。LeavePos:和该坐标保持一定距离,否则会跳开或跑开。
( m4 M1 ]2 ~- P0 s) x4 n。备忘:: t I3 A/ |: Z- L: n3 H
。目前通过EVENT和ACTION来维护FACT_SET,允许同类FACT有多少个同时存在于库中。
% f9 O6 P) h! o/ t: V- C3 K。动作的调度按类似WIN的进程调度模式,高优先级先执行,低优先级的时间长了优先级会自动提高。
. }1 f% n, Y. ^3 c8 L1 {。匹配符号时,系统函数-游戏函数-fact库的顺序可优化CPU效率,但灵活性稍差。
5 Y9 v6 z1 Z' ` m' j$ Y& J! w8 Z4 L0 j! E% \* Y$ ]4 Z
。规则编写说明:) [8 Z8 Q( N4 I: H* x+ c$ G
。规则中的符号的风格为大写字母打头的单词的组合。例如 RuleStyle 。(风格:是指不强求,只是建议如此。下同)
- g# p* q7 r ?$ k% n' s: B8 h。符号后都可能有用圆括号包围的参数表。例如:RuleStyle(TYPE)。6 X, x& I1 P5 V* Z
。符号分为两类,一类是FACT,另一类是系统函数。(系统函数类相当于C的关键字,FACT的符号名不能和系统函数类的名相同。)
7 t1 r6 T3 W& Z1 h5 s。系统函数不能放在RESULT部分,只能在CONDITION部分。
6 k( ?& O6 _6 |* I& p。系统函数都是小写风格,以区别于符号。例如:less(SMALL,BIG)。! b' ^" j7 E# b3 u
。RESULT的参数表中的参数。用括起来的是KEY参数。KEY参数和圆括号中的参加合并为完整的参数表。例如:TalkToTargetROLE(你好。)4 h) p' }' H" k0 [0 J3 E
。通过RESULT添加FACT时,KEY值相同的FACT会被冲掉。+ c& o8 H8 B! V) |, R
。通过RESULT添加FACT时,如果没有KEY列表,符号相同的FACT只允许存在一个。+ Y D z+ a5 n0 n2 F
。参数表中的参数分为两大类。一类是直接量,如1234,或者string,类型分为INT类型和STRING类型。另一类是哑变量。
& f/ i0 ?# }5 ]: y* @2 F( |。INT类型的直接量,只接收数字串。数字串后面允许紧接符号,但符号会被忽略。(后接符号的目的是提供数字的可读性,有点象enum): f2 a( r5 \( J5 M
。STRING类型的直接量,必须用双引号()括起来。1 \/ \& b0 s" R: K; h9 B3 C/ H
。哑变量会在运行期被替换成相应的值。哑变量的风格是全部大写的符号串。例如:ROLE、DATA。8 @3 L3 o* X; M1 a6 J! m
。INT类型的哑变量和STRING类型的哑变量不能混合使用。也就是说,一个哑变量只能是一种类型,不能即是INT又是STRING。/ ?# W! q* m. H. w# n2 _
。变量(_)表示不需要匹配的变量。# L: \' f% k5 |9 x n+ g5 x
。条件列表中的FACT分为三类。一类是存放在FACT_SET中的FACT,另一类是可调用的游戏核心函数,还有就是系统自带的函数。" P. N& q8 L3 H) f" y, [: r6 P- L
。目前MODE部分不支持为空。
4 P) {# b1 [' f. Z0 Z# q。目前暂不支持游戏函数和系统函数的多重匹配。
8 Z' k, y6 t0 n3 E+ }- Z* a! I0 J# E。目前暂不支持游戏函数和系统函数是的(_)符号。
* B% K8 q8 y, h' O! u R8 T( }7 c。相关连的FACT的优先级最好和RULE的优先级相同,否则要么不能触发,要么会触发多次。: b5 I" O @0 d: o
。符号检查顺序是:先看是否系统函数,再看是否游戏函数,最后在fact库中查找。
1 |! o4 f7 i& D6 \! F F2 W! P。系统限制:( ^2 B$ Z7 D2 z$ n
。整数的范围是-20亿到+20亿。( n3 o& @" z6 i9 q& N' I- o+ S
。规则文本长度不超过1024。(可修改)7 C6 j* X8 ^6 d M$ g( j2 V" p
。规则设计方法:& Q5 r2 \# f; I& P8 T
。符号从设计逻辑上大体可分为两类,一类是由EVENT提交的,一类是规则运算时添加的。
" C2 i4 c2 [% N8 y, g$ _。建议EVENT提交的符号由EVENT维护,规则运算产生的符号由规则运算来维护。交叉维护容易出错。9 s7 B% n& B4 o& h% ^
。需要互斥的FACT,都做成同一个FACT,后面带KEY变量。$ \0 O9 H" {5 Z& a5 q/ Z7 b' Q
下载地址:
|