传奇部落

[端游教程] 91M2引擎版本判断角色对面是一个什么对象教程说明

[复制链接]
发表于 2023-5-27 21:11:20 | 显示全部楼层 |阅读模式
QQ截图20230527210521.jpg



判断角色对面是一个什么对象


//检查对面站的是否是一个可结婚的对象
function CheckPoseCreateCanMarry(Player: TPlayObject): Boolean;
var
    APoseCreate: TActor;
begin
    APoseCreate := Player.PoseCreate; //取得站立在对面的对象
    Result := (APoseCreate <> nil) and //如果对象存在
                  APoseCreate.ISPlayer and //并且是一个玩家
                  (Player.Gender<>APoseCreate.Gender) and //并且是异性
                  not Player.Married and //并且是没有结婚的
                  not TPlayObject(APoseCreate).Married; //并且自己也没结婚
end;


procedure RevMarry(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=
[[
{S=<$UserName$>;C=251}:\
  {S=<$PoseName$>;C=251}已经向你求婚!你是否愿意嫁给他?\\
<我愿意/@agreeMarry> \\
<我不愿意/@disagreeMarry>
]];
var
  AMessage: String;
begin
  if CheckPoseCreateCanMarry(Player) then //检查结婚对象
  begin
      AMessage := ReplaceStr(S, '<$UserName$>', Player.Name);  //将消息中的标识位替换成当前玩家的名字
      AMessage := ReplaceStr(AMessage, '<$PoseName$>', Player.PoseCreate.Name); //将消息中的标识位替换成当前玩家对面站立的角色的名字
      Npc.Say(Player, AMessage); //将消息发给玩家
  end;
end;




摘选自“脚本控制中心\功能脚本组\特殊NPC\月老”

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|网站地图|皖ICP备18020244号-7|传奇部落

GMT+8, 2024-11-22 20:49 , Processed in 皖公网安备:34112402000394号 0.089497 second(s), 27 queries , Gzip On.