% e/ n4 V0 `' G, O: t2 P
2 Z+ M$ h/ D6 i3 A# [) C/ t/ [2 ~! I
9 }* t" t; d9 e8 X
* X2 A3 w, [3 g' h6 |) \. L9 f+ e判断角色对面是一个什么对象8 @( a! R) I1 ]4 j5 W
; x( u& H. _2 F# E5 i9 z$ r: N" `# U% t2 j- j2 Y$ K
//检查对面站的是否是一个可结婚的对象9 q5 l( i, I- B1 Y
function CheckPoseCreateCanMarry(Player: TPlayObject): Boolean;
/ p9 p/ f/ s1 ~! Vvar
# y2 {/ f }3 R7 K2 f. G APoseCreate: TActor;
k3 j5 n0 @4 S1 C( `' W7 ybegin
/ v- g1 o4 t# y) f4 d APoseCreate := Player.PoseCreate; //取得站立在对面的对象, w! `& r, u0 y# t' D
Result := (APoseCreate <> nil) and //如果对象存在9 }' X$ e/ F5 i1 l9 Y0 U0 [
APoseCreate.ISPlayer and //并且是一个玩家
9 L6 ~4 {5 f5 z( Y; ~9 H (Player.Gender<>APoseCreate.Gender) and //并且是异性
7 s+ K+ U6 P% v9 b+ I not Player.Married and //并且是没有结婚的
1 H1 p5 F0 ]& v W, l not TPlayObject(APoseCreate).Married; //并且自己也没结婚
! Z# T2 }5 U5 y1 [: {5 Bend;% _1 ^2 @2 ~2 s! f: ?% u8 ?' _
% L) C/ b6 d9 x. @6 t" A' X$ Z( p$ W" V+ k7 ~9 [* t A
procedure RevMarry(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);; F5 x! S" d% [$ Z6 t+ L6 b# K0 W
const- H( J* g, W) C4 v9 w& H
S=/ c3 e2 H/ X/ ?
[[8 H& T# X1 y* o- s
{S=<$UserName$>;C=251}:\/ M1 `# Y0 Z0 t: e+ m! g5 t
{S=<$PoseName$>;C=251}已经向你求婚!你是否愿意嫁给他?\\
: F$ T7 m) Y; r* ]<我愿意/@agreeMarry> \\% V+ \" r0 Y2 S: K: P- _5 H
<我不愿意/@disagreeMarry>
5 M$ e; W. `' M* I! }& ^]];
) G! D8 T. T% B% ~7 fvar4 a9 Z# R9 t: v& E. x6 G
AMessage: String;* I) O* f. K" R: M4 d' K
begin0 Q" @ [* m0 V2 K3 q% m. R; N( ?
if CheckPoseCreateCanMarry(Player) then //检查结婚对象
% c e" i7 W/ T begin5 i1 |9 [# N# G# t+ y
AMessage := ReplaceStr(S, '<$UserName$>', Player.Name); //将消息中的标识位替换成当前玩家的名字
5 i6 r9 v$ r7 X1 a3 x+ i1 h t AMessage := ReplaceStr(AMessage, '<$PoseName$>', Player.PoseCreate.Name); //将消息中的标识位替换成当前玩家对面站立的角色的名字
- X1 ]* x5 h" u4 @ Npc.Say(Player, AMessage); //将消息发给玩家, ]- K5 f! P i. ]8 Z
end;6 b0 X8 |0 } J& l, J5 D# T
end;! l& h5 I8 B0 E3 F" Y ]
' ~0 H$ ]8 |4 t; X5 q; m; L
$ R9 s2 K( }* \ i% L
# c6 A$ M* n& R, V7 ^; |; C- L. T6 }- Y ?% @
摘选自“脚本控制中心\功能脚本组\特殊NPC\月老”
3 C" ]# _4 o2 r' U( t; S
+ h' @; q% |. {9 a% h% r6 { |