找回密码
 立即注册
查看: 17055|回复: 62

77M2引擎如何让他人执行指定的脚本讲解和命令范例

    [复制链接]
  • TA的每日心情
    慵懒
    2021-10-18 03:30
  • 签到天数: 89 天

    连续签到: 1 天

    [LV.6]元神初具

    695

    主题

    56

    回帖

    2369

    积分

    声名显赫

    积分
    2369
    发表于 2020-2-14 06:03:59 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

    ×
    如何让他人执行指定的脚本
    unit Q2;

    inte**ce
      uses  Classes, SysUtils, DateUtils;

    procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    procedure SayHello(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

    implementation

    procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    var
      APlayer: TPlayObject;
    begin
      Npc.Say(Player, 'Hello!!!'); //对当前玩家Player说话  
      APlayer := GameLib.FindPlayer('张三'); //在M2中找出一个名叫“张三”的人
      if APlayer <> nil then //如果"张三"在线
      begin                     
        //方法1(推荐):
        SayHello(Npc, APlayer, nil);   //直接调用函数执行,最后一个参数如果传递为nil,则在对应的函数处理要避免访问或者需要保护处理   

        //方法2:
        APlayer.CallMethod(Npc, '@Q2.SayHello'); //最终效果和方法1相同,这里多了一个回传到M2中的步骤,在调用SayHello函数时,存在Args对象

        //两者使用的区别在于,方法1简单直接且更高效,但是需要自行处理Args参数,如果直接传递当前的Args参数则可能是不对的,因为当前Args参数
        //针对的是当前函数调用者,而在让其他玩家触发函数的时候,可能当前的Args参数并不合适,同时方法1调用方式如果函数名改变的时候在编译期
        //是能被发现的;方法2则是将字符串“@Q2.SayHello”回传给M2,解析出对应的SayHello函数及参数,然后再调用SayHello,这种方式会自动产生
        //Args参数,但是当SayHello更名的时候如果不主动修改方法2这里的参数将会造成玩家不会执行对应的函数调用,所以使用方法2就必须自己同步
        //维护相关参数
      end;
    end;

    procedure SayHello(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    begin
      Npc.Say(Player, 'Hello!!!');
    end;

    楼主热帖
  • TA的每日心情

    2019-8-30 08:35
  • 签到天数: 471 天

    连续签到: 9 天

    [LV.9]妙领天机

    6

    主题

    3129

    回帖

    3136

    积分

    声名显赫

    积分
    3136
    发表于 2020-2-14 12:42:12 | 显示全部楼层
    呵呵,低调,低调!
    回复

    使用道具 举报

  • TA的每日心情

    2019-8-30 06:56
  • 签到天数: 475 天

    连续签到: 3 天

    [LV.9]妙领天机

    0

    主题

    3091

    回帖

    3089

    积分

    声名显赫

    积分
    3089
    发表于 2020-2-21 22:22:21 | 显示全部楼层
    我是个凑数的。。。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-8-30 06:25
  • 签到天数: 472 天

    连续签到: 1 天

    [LV.9]妙领天机

    10

    主题

    3068

    回帖

    3081

    积分

    声名显赫

    积分
    3081
    发表于 2020-3-3 12:35:24 | 显示全部楼层
    是爷们的娘们的都帮顶!大力支持
    回复

    使用道具 举报

  • TA的每日心情

    2019-8-30 18:57
  • 签到天数: 476 天

    连续签到: 1 天

    [LV.9]妙领天机

    5

    主题

    3163

    回帖

    3170

    积分

    声名显赫

    积分
    3170
    发表于 2020-4-1 11:22:14 | 显示全部楼层
    打酱油的人拉,回复下赚取积分
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2019-8-30 09:23
  • 签到天数: 471 天

    连续签到: 2 天

    [LV.9]妙领天机

    1

    主题

    3006

    回帖

    2998

    积分

    声名显赫

    积分
    2998
    发表于 2020-4-12 08:39:44 | 显示全部楼层
    众里寻他千百度,蓦然回首在这里!
    回复

    使用道具 举报

  • TA的每日心情

    2019-8-30 18:45
  • 签到天数: 460 天

    连续签到: 5 天

    [LV.9]妙领天机

    4

    主题

    3090

    回帖

    3094

    积分

    声名显赫

    积分
    3094
    发表于 2020-4-13 12:15:32 | 显示全部楼层
    楼下的接上。。。。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-8-30 18:51
  • 签到天数: 449 天

    连续签到: 8 天

    [LV.9]妙领天机

    7

    主题

    2971

    回帖

    2985

    积分

    声名显赫

    积分
    2985
    发表于 2020-4-14 04:03:12 | 显示全部楼层
    我只是路过,不发表意见
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2019-8-29 00:28
  • 签到天数: 481 天

    连续签到: 6 天

    [LV.9]妙领天机

    5

    主题

    3082

    回帖

    3089

    积分

    声名显赫

    积分
    3089
    发表于 2020-4-16 22:00:58 | 显示全部楼层
    是爷们的娘们的都帮顶!大力支持
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2019-8-30 12:58
  • 签到天数: 479 天

    连续签到: 14 天

    [LV.9]妙领天机

    1

    主题

    3064

    回帖

    3066

    积分

    声名显赫

    积分
    3066
    发表于 2020-5-6 04:51:42 | 显示全部楼层
    支持支持再支持
    回复

    使用道具 举报

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

    本版积分规则

    QQ|Archiver|手机版|小黑屋|任逍遥

    GMT+8, 2024-12-22 10:05 , Processed in 0.078107 second(s), 45 queries .

    Powered by 任逍遥 X3.5

    Copyright © 2001-2024, Rxiaoyao Cloud.

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