玩传奇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9458|回复: 23

[教程] 91M2引擎的传奇如何克隆玩家为人形怪?

  [复制链接]
发表于 2019-5-16 05:13:37 | 显示全部楼层 |阅读模式

马上注册,以游结友!

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

x
如何克隆玩家为人形怪

方法1 直接从现有玩家克隆:

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
AObj: TActor;
begin
//直接克隆当前玩家
AObj := Gamelib.AddClonePlayer(Player{克隆对象}, '鸭梨山大'{克隆后角色的名称}, Player.Map{指定克隆对象的目标地图}, 100, 100{目标地图的坐标});
if AObj <> nil then //克隆可能会失败,所以需要判断是否为nil
begin
   AObj.Master := Player; //将克隆的对象设置为当前玩家的下属   
   AObj.MasterRoyaltyTick := 60 * 60 * 1000; //设置下属的有效期为60分钟
end;
end;

方法2 从文件中加载玩家数据克隆:

1. 首先需要在特殊情况下保存玩家数据
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
//将当前玩家的数据保存到本地文件(Envir目录下面)
Gamelib.SavePlayerToFile(Player, 'Store\第一战士.dat');
end;

2. 然后根据需要执行克隆
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
AObj: TActor;
begin
//直接克隆当前玩家
AObj := Gamelib.AddClonePlayerFromFile('Store\第一战士.dat'{要克隆的玩家数据文件}, '鸭梨山大'{克隆后角色的名称}, Player.Map{指定克隆对象的目标地图}, 100, 100{目标地图的坐标});
if AObj <> nil then //克隆可能会失败,所以需要判断是否为nil
begin
   AObj.Master := Player; //将克隆的对象设置为当前玩家的下属   
   AObj.MasterRoyaltyTick := 10 * 60 * 1000; //设置下属的有效期为10分钟
end;   

//如果不设置为下属,则克隆对象将是一个普通怪物
end;

注意:通过克隆出来的人形怪不会爆出任何装备
发表于 2019-5-16 07:00:20 | 显示全部楼层

发发呆,回回帖,工作结束~
发表于 2019-6-6 08:38:32 | 显示全部楼层

呵呵,低调,低调!
发表于 2019-6-14 09:30:21 | 显示全部楼层

这贴内容不错
发表于 2019-6-19 09:03:28 | 显示全部楼层

呵呵。。。不错啊
发表于 2019-6-19 09:41:53 | 显示全部楼层

这个帖一般般,还可以哦!
发表于 2019-7-4 09:08:02 | 显示全部楼层

呵呵,低调,低调!
发表于 2019-7-30 08:13:21 | 显示全部楼层

纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
发表于 2019-8-5 09:04:41 | 显示全部楼层

确实是难得好帖啊,顶先!
发表于 2019-8-18 09:24:07 | 显示全部楼层

又抢到前排了。哈,不用怀疑,不用惊讶,你也没有看错!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|小黑屋|玩传奇 ( 吉ICP备18002996号-1|网站地图 

GMT+8, 2019-12-15 06:08 , Processed in 0.060701 second(s), 27 queries , Gzip On.   

 Powered by Discuz! X3.2

 © 2001-2013 Comsenz Inc.