传奇脚本知识库
  • [GEE引擎] 打开摆摊界面命令openusershop

    命令: openusershop

    [@main]
    #ACT
    openusershop

  • [GEE引擎] 过滤全服信息FILTERGLOBALMSG/SendCenterMsg

    功能:
    过滤全服提示信息
    格式:FILTERGLOBALMSG 过滤类型 是否过滤(0不过滤,1过滤)
    ;过滤掉落提示信息(最后参数为1或者0,0或者空关闭过滤)
    FILTERGLOBALMSG 1 1
    ;过滤SendCenterMsg全局信息(信息模式1)(最后参数为1或者0,0或者空关闭过滤)
    FILTERGLOBALMSG 2 1
    ;过滤SENDMSG全局信息(信息代码0123)(最后参数为1或者0,0或者空关闭过滤)
    FILTERGLOBALMSG 3 1
    列: (信息代码0123)为以下格式公告 只过滤全局(所有人发送相同信息,SendCenterMsg也是一样只过滤模式 1的全局消息)
    SENDMSG 0 信息内容
    SENDMSG 1 信息内容
    SENDMSG 2 信息内容
    SENDMSG 3 信息内容

    [@main]
    #ACT
    FILTERGLOBALMSG 1 1
    SENDMSG 6 开启过滤全服掉落提示信息。

    [@main]
    #ACT
    FILTERGLOBALMSG 1 0
    SENDMSG 6 关闭过滤全服掉落提示信息。

    [@main]
    #ACT
    FILTERGLOBALMSG 2 1
    SENDMSG 6 开启过滤SendCenterMsg全局信息。

    [@main]
    #ACT
    FILTERGLOBALMSG 2 0
    SENDMSG 6 关闭过滤SendCenterMsg全局信息。

    [@main]
    #ACT
    FILTERGLOBALMSG 3 1
    SENDMSG 6 开启过滤全服SENDMSG0和SENDMSG1和SENDMSG2和SENDMSG3信息。

    [@main]
    #ACT
    FILTERGLOBALMSG 3 0
    SENDMSG 6 关闭过滤全服SENDMSG0和SENDMSG1和SENDMSG2和SENDMSG3信息。

  • [GEE引擎] 清空角色P变量ClearVarp

    命令: clearvarp

    示范:
    [@P]
    #act
    ClearVarp
    SENDMSG 6 你的P变量全部清空重置为0!!!!

    说明:比如自定义按钮用P变量关闭对话框无法清空,可以使用此命令触发清空
  • [GEE引擎] 变量传递SetHumVar/GetHumVar

    变量传递命令:
    设置指定人物的变量值:
    SetHumVar 对方的名字 对方的变量 值
    获取指定人物的变量 到 自己的变量中:
    GetHumVar 对方的名字 对方的变量 自己的变量
    变量传递脚本示例:
    [@main]
    你要把你的防御力数值传给别人,让他知道你的防御力是多少吗\
    请确保对方在线\
    <请输入对方名字/@@InPutString1> \
    对方名字:<$STR(S1)> \
    你想知道对方防御力是多少吗,并且不让他知道\
    请确保对方在线\
    <请输入对方名字/@@InPutString3> \
    对方名字:<$STR(S3)>
    对方防御力:<$STR(S4)>\

    ;传递
    [@InPutString1]
    #IF
    #ACT
    SetHumVar S1 S2 <$MAXAC>
    ;S1为对方名字
    SENDMSG 6 成功把你的防御力数值传递给对方的S2变量,对方已知道你的防御力多少

    ;获取
    [@InPutString3]
    #IF
    #ACT
    GetHumVar S3 <$MAXAC> S4
    ;S3 为对方名字 <$MAXAC>对方防御力
    ;S4 你的变量
    SENDMSG 6 你已成功取得对方防御力为<$STR(S4)>
  • [GEE引擎] 字符串分隔命令GetRandomText/EXTRACTSTRING/<$WEAPON>/<$HELMET>/<$DRESS>

    字符串分隔命令:
    ;======================================================
    ;下列为读取一套装备数据配合GetRandomText使用
    #IF
    gender man
    checkjob warrior
    #ACT
    GetRandomText ..\QuestDiary\装备列表.txt S0 0
    EXTRACTSTRING : <$STR(S0)> s1 s2 s3 s4 s5 s6 s7 s8
    GIVE <$STR(S1)> 1
    GIVE <$STR(S2)> 1
    GIVE <$STR(S3)> 1
    GIVE <$STR(S4)> 1
    GIVE <$STR(S5)> 1
    GIVE <$STR(S6)> 1
    GIVE <$STR(S7)> 1
    GIVE <$STR(S8)> 1
    TakeOn <$STR(S1)> 0
    TakeOn <$STR(S2)> 1
    TakeOn <$STR(S3)> 3
    TakeOn <$STR(S4)> 4
    TakeOn <$STR(S5)> 5
    TakeOn <$STR(S6)> 6
    TakeOn <$STR(S7)> 7
    TakeOn <$STR(S8)> 8
    BREAK
    ;======================================================
    ;装备列表.txt 内容
    ;战神盔甲(男):裁决之杖:绿色项链:黑铁头盔:骑士手镯:骑士手镯:力量戒指:力量戒指
    ;战神盔甲(女):裁决之杖:绿色项链:黑铁头盔:骑士手镯:骑士手镯:力量戒指:力量戒指
    ;魔法长袍(男):血饮:恶魔铃铛:道士头盔:龙之手镯:龙之手镯:紫碧螺:紫碧螺
    ;魔法长袍(女):血饮:恶魔铃铛:道士头盔:龙之手镯:龙之手镯:紫碧螺:紫碧螺
    ;灵魂战衣(男):无极棍:灵魂项链:道士头盔:三眼手镯:三眼手镯:泰坦戒指:泰坦戒指
    ;灵魂战衣(女):无极棍:灵魂项链:道士头盔:三眼手镯:三眼手镯:泰坦戒指:泰坦戒指
    ;======================================================
    ;写变量可配合inc实现写入数据
    #act
    inc S0 <$DRESS>
    inc S0 :
    inc S0 <$WEAPON>
    inc S0 :
    inc S0 <$HELMET>
    ;.........后面的自己写
    ;======================================================

    注:是字符串为空的时候才出现报错 引擎报错要延时两秒 应该是卡了一下,处理方式:就是字串空的时候 m2会报错 功能正常 字串空时中止执行就OK了
  • [GEE引擎] 绑定给予的装备boxitem0/linkpickupitem/linkgiveitem

    绑定给予的装备进行命令操作:
    ;======================================================
    绑定脚本给的物品进行命令操作,只绑定最后一个给的物品,比如GIVE 屠龙 10 ,一次给10把屠龙,只对最后一把生效!如果背包放不下掉在地上后该命令失效!
    #IF
    #ACT
    give 屠龙 1
    ;给屠龙1把
    LINKGIVEITEM
    ;绑定屠龙下面的操作只对绑定的装备生效
    ChangeItemNameColor -1 253
    ;调整武器颜色
    updateitem -1
    ;刷新到客户端
    clearLinkItem
    ;解除绑定,不然刷新包裹物品不刷新
    break

    位置:
    -1升级框
    0--29:装备栏和时装栏
    30-35:首饰盒
    40-51:神佑袋
    boxitem0-boxitem7:OK框
    说明:linkpickupitem和linkgiveitem都是绑定对象到升级框,调整属性后刷新-1位置即可!

    注意:clearLinkItem 因为绑定必须给物品一个位置,目前以下2个命令强行绑定到OK框,请加上解除绑定命令,不然不能及时刷新背包物品属性,需要小退生效,加上后及时生效!!!主要是解决绑定到-1后,alt+R刷新包裹和捡起触发改名不刷新的问题,,身上或自定义OK框或者OK框只要有装备位置的不需要增加clearLinkItem,因为背包是没位置的所以需要增加!!!  
  • [GEE引擎] 绑定给予的装备LINKGIVEITEM/ChangeItemNameColor/updateitem/clearLinkItem

    绑定给予的装备进行命令操作:
    ;======================================================
    绑定脚本给的物品进行命令操作,只绑定最后一个给的物品,比如GIVE 屠龙 10 ,一次给10把屠龙,只对最后一把生效!如果背包放不下掉在地上后该命令失效!
    #IF
    #ACT
    give 屠龙 1
    ;给屠龙1把
    LINKGIVEITEM
    ;绑定屠龙下面的操作只对绑定的装备生效
    ChangeItemNameColor -1 253
    ;调整武器颜色
    updateitem -1
    ;刷新到客户端
    clearLinkItem
    ;解除绑定,不然刷新包裹物品不刷新
    break

    位置:
    -1升级框
    0--29:装备栏和时装栏
    30-35:首饰盒
    40-51:神佑袋
    boxitem0-boxitem7:OK框
    说明:linkpickupitem和linkgiveitem都是绑定对象到升级框,调整属性后刷新-1位置即可!

    注意:clearLinkItem 因为绑定必须给物品一个位置,目前以下2个命令强行绑定到OK框,请加上解除绑定命令,不然不能及时刷新背包物品属性,需要小退生效,加上后及时生效!!!主要是解决绑定到-1后,alt+R刷新包裹和捡起触发改名不刷新的问题,,身上或自定义OK框或者OK框只要有装备位置的不需要增加clearLinkItem,因为背包是没位置的所以需要增加!!!
  • [GEE引擎] 刷新装备属性updateitem/LINKGIVEITEM/clearLinkItem

    绑定给予的装备进行命令操作:
    ;======================================================
    格式:updateitem 位置

    绑定脚本给的物品进行命令操作,只绑定最后一个给的物品,比如GIVE 屠龙 10 ,一次给10把屠龙,只对最后一把生效!
    #IF
    #ACT
    give 屠龙 1
    ;给屠龙1把
    LINKGIVEITEM
    ;绑定屠龙下面的操作只对绑定的装备生效
    ChangeItemNameColor -1 253
    ;调整武器颜色
    updateitem -1
    ;刷新到客户端
    clearLinkItem
    ;解除绑定,不然刷新包裹物品不刷新 break


    注:位置 -1是普通OK框,其他装备位置阅读说明书!
    注意:clearLinkItem 因为绑定必须给物品一个位置,目前以下2个命令强行绑定到OK框,请加上解除绑定命令,不然不能及时刷新背包物品属性,需要小退生效,加上后及时生效!!!主要是解决绑定到-1后,alt+R刷新包裹和捡起触发改名不刷新的问题,,身上或自定义OK框或者OK框只要有装备位置的不需要增加clearLinkItem,因为背包是没位置的所以需要增加!!!
  • [GEE引擎] 脚本循环次数Loopgoto/endloop

    说明:循环脚本运行次数设置
    格式:Loopgoto @脚本 脚本运行次数(为空或0时,运行1次)
    示范脚本:
    [@循环]
    #ACT
    mov N1 0
    mov N2 1
    Loopgoto @运算 100
    sendmsg 6 1加到100的结果为:<$STR(N1)>
    [@运算]
    #ACT
    Inc <$STR(N1)> <$STR(N2)>
    Inc N2 1

    增加NPC命令:endloop中止loopgoto
    [@随机取数]
    #act
    mov p1 0
    loopgoto @取数 100
    sendmsg 6 循环<$str(p1)>次,才取到>=50的数:<$str(p10)>
    [@取数]
    #act
    inc p1 1
    ;此例仅做说明,实际只用取一次,取50以内的取机数+49即可
    movr p10 100
    #if
    large p10 49
    #act
    endloop
  • [GEE引擎] 获取物品原始参数GetDBItemFieldValue/GetDBIdxItemFieldValue

    说明:获取物品原始各项数据库字段值参数
    格式:通过物品名字取数据库字段值 GetDBItemFieldValue 物品名称 字段名 变量
    格式:通过 IDX 字段取数据库字段值 GetDBIdxItemFieldValue idx 字段名 变量
    ---------------------------------------------------------------------------------------------
    示范脚本:
    [@循环]
    #ACT
    GetDBItemFieldValue 屠龙 idx <$STR(N1)>
    GetDBItemFieldValue 屠龙 stdmode <$STR(N2)>
    sendmsg 6 idx :<$STR(N1)> ,stdmode:<$STR(N2)>

    ===========================================================================================================================
    详细参考示范脚本:
    ;以下所有内容大家都可以自己选择任何设置方式和应用,不一定非是商铺,可以很多方式也可以很多应用
    ;只拿【商铺来购买金币物品】进行举例,如有不足还请见谅,毕竟脚本这个东西需要脑子去无数次的想!
    ;本脚本由群友提供有问题可以私密,QQ:815915131 大叔
    ;切记!!将下列脚本内容放入到MirServer\Mir200\Envir\Market_Def\QFunction-0.txt中去!
    ;——————————————————————————————商城购物触发字段
    [@BuyShopItem]
    #if
    ;——————————————————————————————检测当前购入的物品是否在你设置允许批量购买的路径名单中
    CHECKTEXTLIST ..\QuestDiary\商城批量购物\金币物品.txt <$STR(S0)>
    #act
    ;——————————————————————————————清理之前购买的物品名和价格(保完全,可以不用)
    MOV S$商城当前购入物品名
    MOV N$商城当前购入物品单 0
    ;——————————————————————————————将当前价格写入变量
    MOV S$商城当前购入物品名 <$STR(S0)>
    MOV N$商城当前购入物品单价 <$STR(M0)>
    ;——————————————————————————————如果你当前购入的物品是你允许批量购买的物品时,则提取IDX
    GetDBItemFieldValue <$STR(S$商城当前购入物品名)> idx N$商铺购买物品代码
    ;——————————————————————————————转向下段脚本
    goto @在线_商铺批量购买
    break
    ;————————————————————————————————————————————————————————金币类批量购买
    [@在线_商铺批量购买]
    #act
    ;——————————————————————————————设置自定义对话框
    OPENMERCHANTBIGDLG 176 19 1 0 10 70 1 190 8 1
    ;——————————————————————————————将单价乘以数量后写入总价格
    MUL N$批量商铺购买物品总金额 <$STR(N$商城当前购入物品单价)> <$STR(N$批量商铺购买物品数量)>
    #say
    ;——————————————————————————————触发对话,并且调用之前已经提取号的IDX变量
    <ItemShow:<$STR(N$商铺购买物品代码)>:0:16:53:1> \
     \
     \
          名称:<$STR(S$商城当前购入物品名)>\
          单价:<$STR(N$商城当前购入物品单价)>金币\
          说明:@关闭批量\
     \
     \
     \
    ;——————————————————————————————修改批量购买商铺物品的数量,输入后会自动计算!
           <$STR(N$批量商铺购买物品数量)>个<(修改数量)/@@InPutInteger300>\
     \
           <$STR(N$批量商铺购买物品总金额)>金币\
     \
      <批量购入/@批量购买>  <放弃购入/@放弃购入>

    ;——————————————————————————————修改批量物品数量后触发的字段
    [@InPutInteger300]
    #if
    EQUAL N300 0
    #act
    ;——————————————————————————————将单价乘以数量后写入总价格
    MUL N$批量商铺购买物品总金额 <$STR(N$商城当前购入物品单价)> <$STR(N$批量商铺购买物品数量)>
    ;——————————————————————————————设置自定义对话框
    OPENMERCHANTBIGDLG 176 19 1 0 10 70 1 190 8 1
    #say
    ;——————————————————————————————触发对话,并且调用之前已经提取号的IDX变量
    <ItemShow:<$STR(N$商铺购买物品代码)>:0:16:53:1> \
     \
     \
          名称:<$STR(S$商城当前购入物品名)>\
          单价:<$STR(N$商城当前购入物品单价)>金币\
          说明:@关闭批量\
     \
     \
     \
    ;——————————————————————————————修改批量购买商铺物品的数量,输入后会自动计算!
           <$STR(N$批量商铺购买物品数量)>个<(修改数量)/@@InPutInteger300>\
     \
           <$STR(N$批量商铺购买物品总金额)>金币\
     \
      <批量购入/@批量购买>  <放弃购入/@放弃购入>

    ;——————————————————————————————所有条件满足开始执行批量购买
    [@批量购买]
    #IF
    ;——————————————————————————————检测人物当前是否有足够的金币来购买,当然你也可以换成任何其他货币如元宝之类的
    checkgold <$STR(N$批量商铺购买物品总金额)>
    #ACT
    take 金币 <$STR(N$批量商铺购买物品总金额)>
    ;——————————————————————————————给予人物购买的物品名+数量
    give <$STR(S$商城当前购入物品名)> <$STR(N$批量商铺购买物品数量)>
    #ELSEACT
    ;——————————————————————————————不满足输入条件时候触发字段
    MessageBox 缺少“<$STR(N$批量商铺购买物品总金额)>”个金币无法购买!
    [@放弃购入]
    #act
    ;——————————————————————————————结束批量购入对话和其他对话,因为之前已经调用了自定义,
    ;——————————————————————————————为避免直接点击其他NPC出错我们则用引擎说明书中的关闭命令来关闭,
    ;——————————————————————————————最后指向正常的脚本结束语
    CloseBigDialogBox
    CLOSEMERCHANTBIGDLG
    ;——————————————————————————————指向普通脚本结束语
    close
 
 
在线客服
QQ613945605
工作时间:
10:00-24:00
客服热线:
15639769199
官方微信扫一扫
返回顶部