设为首页收藏本站★元宝充值★★购买会员★★传奇QQ群★

一休论坛

网络广告风险自担
 找回密码
 立即注册
查看: 22|回复: 0

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

[复制链接]
  • TA的每日心情
    慵懒
    2018-8-5 17:14
  • 签到天数: 49 天

    [LV.5]常住居民I

    发表于 2019-5-5 17:36:40 | 显示全部楼层 |阅读模式
    网络广告风险自担 网络广告风险自担 网络广告风险自担
    网络广告风险自担
    91M2引擎传奇版本中实现自定义的客户端命令集


    实现自定义的客户端命令集

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

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

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

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


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



    上一篇:1.80天剑星王复古合击传奇服务端-赞助大使-LEG
    下一篇:91M2引擎的传奇如何加入一个指定的行会脚本分享
    回复

    举报

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

    本版积分规则

    一休论坛在线客服
    收 起 客 服

    小黑屋|传奇一条龙|GM基地|GM版本库|一休论坛

    GMT+8, 2019-5-26 07:57 , Processed in 0.468001 second(s), 85 queries , Gzip On.

    传奇一条龙 GM基地 版本库 传奇论坛 传奇漏洞论坛 传奇服务端下载 传奇版本

    一休论坛资料来自网络仅供学习交流之用,用于商业后果自负

    快速回复 返回顶部 返回列表