传奇脚本知识库
  • 刷新装备属性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,因为背包是没位置的所以需要增加!!!
  • 脚本循环次数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
  • 获取物品原始参数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
  • 读写删除ini配置DelCacheConfigFileItem/DelCacheConfigFileSection

    说明:读写ini配置项
    ---------------------------------------------------------------------------------------------

    说明:
    WriteConfigFileItem写配置项
    功能说明:可以把一些数据进行配置保存 你也可以把它当成一种变量保存方式
    ReadConfigFileItem读配置项
    功能说明:获取出配置文件中的配置项内容
    此两个命令配合使用 就相当于变量保存操作

    示例:
    [@main]
    <写配置项> <请输入你要写入配置项的内容/@@InPutString3>\
    <读配置项内容/@读配置项> <$STR(S$配置项内容)>\
    [@InPutString3]
    #IF
    #ACT
    ;写配置项
    WriteConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
    SENDMSG 6 你已经把你输入的内容写到配置文件中KEY.txt
    [@读配置项]
    #IF
    #ACT
    ;读配置项
    ReadConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
    SENDMSG 6 你已经把配置文件KEY.txt中的内容获取出
    GOTO @main
    删除配置文件中的一行:
    DelConfigFileItem 文件名 设置 用户 (删除 用户 = aaaa 这一行)
    删除配置文件中的一个区:
    DelConfigFileSection 文件名 设置 (删除 [设置] 及设置以下的项)

    WriteConfigFileItem ReadConfigFileItem 增加支持绝对路径,注意使用绝对路径参数必须完整!

    ;================================================================以下命令属高效率=============================
    ReadCacheConfigFileItem
    WriteCacheConfigFileItem
    DelCacheConfigFileItem
    DelCacheConfigFileSection
    注:这4个是 Cache(缓存),操作速度会比不带cache的快很多,问题就是,在M2运行过程中,只能用脚本操作,手动操作的无效。如果ini文件不存在手动操作的情况下,就用Cache
    Cache的特点是,对ini的操作只打开一次,然后一直在内存缓存,所以只命令操作才有效,手动操作无效。关闭引擎时候才会保存到INI文件内,引擎运行期间一直内存中运行,所以启动引擎后手动修改INI文件信息是无效的
    在没有手动操作ini的情况下,推荐用带cache的。不带cache的比较耗时。
    比如提现:操作会删除提现记录属于手动操作,所以不能使用cache,但计算战斗力属于内部引擎操作无手动干预,可以使用带cache的!
  • 读写删除ini配置ReadCacheConfigFileItem/WriteCacheConfigFileItem

    说明:读写ini配置项
    ---------------------------------------------------------------------------------------------

    说明:
    WriteConfigFileItem写配置项
    功能说明:可以把一些数据进行配置保存 你也可以把它当成一种变量保存方式
    ReadConfigFileItem读配置项
    功能说明:获取出配置文件中的配置项内容
    此两个命令配合使用 就相当于变量保存操作

    示例:
    [@main]
    <写配置项> <请输入你要写入配置项的内容/@@InPutString3>\
    <读配置项内容/@读配置项> <$STR(S$配置项内容)>\
    [@InPutString3]
    #IF
    #ACT
    ;写配置项
    WriteConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
    SENDMSG 6 你已经把你输入的内容写到配置文件中KEY.txt
    [@读配置项]
    #IF
    #ACT
    ;读配置项
    ReadConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
    SENDMSG 6 你已经把配置文件KEY.txt中的内容获取出
    GOTO @main
    删除配置文件中的一行:
    DelConfigFileItem 文件名 设置 用户 (删除 用户 = aaaa 这一行)
    删除配置文件中的一个区:
    DelConfigFileSection 文件名 设置 (删除 [设置] 及设置以下的项)

    WriteConfigFileItem ReadConfigFileItem 增加支持绝对路径,注意使用绝对路径参数必须完整!

    ;================================================================以下命令属高效率=============================
    ReadCacheConfigFileItem
    WriteCacheConfigFileItem
    DelCacheConfigFileItem
    DelCacheConfigFileSection
    注:这4个是 Cache(缓存),操作速度会比不带cache的快很多,问题就是,在M2运行过程中,只能用脚本操作,手动操作的无效。如果ini文件不存在手动操作的情况下,就用Cache
    Cache的特点是,对ini的操作只打开一次,然后一直在内存缓存,所以只命令操作才有效,手动操作无效。关闭引擎时候才会保存到INI文件内,引擎运行期间一直内存中运行,所以启动引擎后手动修改INI文件信息是无效的
    在没有手动操作ini的情况下,推荐用带cache的。不带cache的比较耗时。
    比如提现:操作会删除提现记录属于手动操作,所以不能使用cache,但计算战斗力属于内部引擎操作无手动干预,可以使用带cache的!

  • 读写删除ini配置DelConfigFileItem/DelConfigFileSection

    说明:读写ini配置项
    ---------------------------------------------------------------------------------------------

    说明:
    WriteConfigFileItem写配置项
    功能说明:可以把一些数据进行配置保存 你也可以把它当成一种变量保存方式
    ReadConfigFileItem读配置项
    功能说明:获取出配置文件中的配置项内容
    此两个命令配合使用 就相当于变量保存操作

    示例:
    [@main]
    <写配置项> <请输入你要写入配置项的内容/@@InPutString3>\
    <读配置项内容/@读配置项> <$STR(S$配置项内容)>\
    [@InPutString3]
    #IF
    #ACT
    ;写配置项
    WriteConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
    SENDMSG 6 你已经把你输入的内容写到配置文件中KEY.txt
    [@读配置项]
    #IF
    #ACT
    ;读配置项
    ReadConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
    SENDMSG 6 你已经把配置文件KEY.txt中的内容获取出
    GOTO @main
    删除配置文件中的一行:
    DelConfigFileItem 文件名 设置 用户 (删除 用户 = aaaa 这一行)
    删除配置文件中的一个区:
    DelConfigFileSection 文件名 设置 (删除 [设置] 及设置以下的项)

    WriteConfigFileItem ReadConfigFileItem 增加支持绝对路径,注意使用绝对路径参数必须完整!
  • 读写ini配置WriteConfigFileItem/ReadConfigFileItem/

    说明:读写ini配置项
    ---------------------------------------------------------------------------------------------

    说明:
    WriteConfigFileItem写配置项
    功能说明:可以把一些数据进行配置保存 你也可以把它当成一种变量保存方式
    ReadConfigFileItem读配置项
    功能说明:获取出配置文件中的配置项内容
    此两个命令配合使用 就相当于变量保存操作

    示例:
    [@main]
    <写配置项> <请输入你要写入配置项的内容/@@InPutString3>\
    <读配置项内容/@读配置项> <$STR(S$配置项内容)>\
    [@InPutString3]
    #IF
    #ACT
    ;写配置项
    WriteConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S3)>
    SENDMSG 6 你已经把你输入的内容写到配置文件中KEY.txt
    [@读配置项]
    #IF
    #ACT
    ;读配置项
    ReadConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME> 内容 <$STR(S$配置项内容)>
    SENDMSG 6 你已经把配置文件KEY.txt中的内容获取出
    GOTO @main
    删除配置文件中的一行:
    DelConfigFileItem 文件名 设置 用户 (删除 用户 = aaaa 这一行)
    删除配置文件中的一个区:
    DelConfigFileSection 文件名 设置 (删除 [设置] 及设置以下的项)

    WriteConfigFileItem ReadConfigFileItem 增加支持绝对路径,注意使用绝对路径参数必须完整!
  • 调整血量HumanHP

    格式: HumanHP 操作符(+ - =) 数值 微秒延时时间(空或0表示无延时)

    [@main]
    #ACT
    HumanHP - 500 300
    ;人物HP减少500,延时300毫秒生效!(1000毫秒为1秒)

  • 脚本修改装备内观外观SetItemShape/SetItemLooks

    外观格式: SetItemShape 位置 操作符(+,-,=) 数值 ;只能改武器和衣服

    内观格式:SetItemLooks 位置 操作符(+,-,=) 数值

    命令一个分别修改装备的Shape,另外个是修改Looks,注意的是,只是改变视觉效果,不是改变实际!
  • 高等级杀怪经验不变HighLevelKillMonFixExp

    格式:HighLevelKillMonFixExp 时间 是否保存(1保存,空或0不保存)

    高等级杀怪经验不变HighLevelKillMonFixExp


    [@main]
    #ACT
    HighLevelKillMonFixExp 720 1

 
 
在线客服
QQ613945605
工作时间:
10:00-24:00
客服热线:
15639769199
官方微信扫一扫
返回顶部