当前位置 : 745v传奇网 | 传奇教程 | 

91M2引擎传奇版本中实现自定义的客户端命令集

来源: 作者: 点击:
实现自定义的客户端命令集

客户端输入命令后,将触发ManagerNPC中的ProcessCommand函数,ProcessCommand函数定义为:

procedureProcessCommand(Npc:TNormNpc;Player:TPlayObject;constCommand:String;Args:TArgs;varHandled:Boolean);
NPC指向ManagerNPC对象,Player为当前输入命令的玩家Command为命令名Args为参数,Handled表示是否处理

以千里传音功能为例:
procedureProcessCommand(Npc:TNormNpc;Player:TPlayObject;constCommand:String;Args:TArgs;varHandled:Boolean);
begin
ifCommand='千里传音'then//如果玩家输入的是@千里传音这个字符串
begin
if(Player.Charm<>nil)andSameText(Player.Charm.Name'千里传音')then//如果玩家的宝石位装备有物品并且这个物品的名字叫“千里传音”
begin
Gamelib.BroadcastSay(Message00);//世界喊话
//减掉物品1次使用次数
Player.Charm.Dura:=Player.Charm.Dura-1000;//将宝石位物品的持久减1000点(客户端显示持久减少1点)
Player.UpdateItem(Player.Charm);//发送消息到客户端,让客户端实时的更新宝石位物品
end;
Handled:=True;//表示此次操作完成,M2引擎将不继续处理此命令如果不设置为TrueM2可能会继续处理该命令
end;

ifPlayer.ISAdminthen
begin
//如果玩家是管理员身份,则处理这里实现的命令部分
end
end;


注:因ManagerNPC、QFunctionNPC及MapEventNPC等系统特殊NPC处理的内容较多,因此如果一个函数里面处理的内容过多,则考虑将相关内容写到一个新的单元中。如示范版中将客户端命令集处理放到一个“客户端命令集”脚本中
[顶部]