|
脚本范例如下: 传奇脚本库教程-996LUE物品操作 物品规则计算方式 1.禁止扔 2.禁止交易 4.禁止存 8.禁止修 16.禁止出售 32.禁止爆出 64.丢弃消失 128.死亡必爆 256.禁止拍卖 512.禁止挑战 很多设置物品规则的地方,可以根据业务需要,优先定义好。 例如:(绑定属性为 禁止扔,禁止交易,禁止出售) 那么对应的物品规则为:1+2+16 = 19,在后面需要传物品规则地方,只要传19进去即可 给物品 giveitem 参数 类型 空 默认 注释 play object 否 玩家对象 itemname string 否 物品名称 qty integer 是 1 数量 bind integer 是 0 物品规则 result object 否 返回值(最后一个物品对象),不建议使用在叠加物品,一次性给多个物品的情况,此物品在添加背包触发后,注意可能被回收的情况 生成失败则返回nil 废弃!!! 参数 类型 空 默认 注释 play object 否 玩家对象 itemname string 否 物品名称 qty integer 是 1 数量 bind integer 是 0 物品规则 result1 bool 否 返回值(是否成功) result2 object 否 返回值(最后一个物品对象),不建议使用在叠加物品,一次性给多个物品的情况,此物品在添加背包触发后,注意可能被回收的情况 function main(self) local bo = giveitem(self,"木剑",1) if bo then say(self, "你获得一把木剑") else say(self, "包裹已满") end end 给物品直接装备 giveonitem 参数 类型 空 默认 注释 play object 否 玩家对象 where integer 否 装备位置 itemname string 否 物品名称 qty integer 是 1 数量 bind integer 是 0 物品规则 result bool 否 返回值(是否成功) 拿物品 takeitem 参数 类型 空 默认 注释 play object 否 玩家对象 itemname string 否 物品名称 qty integer 是 1 数量 IgnoreJP integer 是 忽略极品 0:所有都扣除 1:极品不扣除 result bool 是 true:成功 false:失败 takeitem(actor,"木剑",2) 根据唯一ID删除仓库物品 delstorageitem 参数 类型 空 默认 注释 play object 否 玩家对象 itemmakeid integer 否 删除唯一ID物品 根据idx删除仓库物品 delstorageitembyidx 参数 类型 空 默认 注释 play object 否 玩家对象 itemidx integer 否 删除所有Idx物品 物品关联 正在操作物品关联 linkpickupitem —废弃,以后会在触发参数里,传递过来 关联正在操作的物品,捡取,丢弃 关联装备物品 linkbodyitem 参数 类型 空 默认 注释 play object 否 玩家对象 where integer 否 装备位置 result object 否 返回物品对象 获取物品信息 getiteminfo 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 id integer 否 1:唯一ID 2:物品ID 3:剩余持久 4:最大持久 5:叠加数量 6:绑定状态 result integer 是 0 对应数值,不存在为0 获取物品基础信息 getstditeminfo 参数 类型 空 默认 注释 itemid/itemName integer/string 否 物品ID/物品名称 id integer 否 13:物品颜色 引擎64_23.0628新增 0:idx 1:名称 2:StdMode 3:Shape 4:重量 5:AniCount 6:最大持久 7:叠加数量 8:价格(price) 9:使用条件 10:使用等级 11:自定义常量(29列) 12:自定义常量(30列) 13:道具颜色 result integer 是 0 对应数值,不存在为0 获取物品基础属性 getstditematt 参数 类型 空 默认 注释 itemid integer 否 物品ID id integer 否 对应属性表的属性ID result integer 是 0 对应数值,不存在为0 function main(self) local item=linkbodyitem(self,0) if item then local itemid = getiteminfo(self,item,2) say(self, "关联物品0成功,唯一ID:" .. getiteminfo(self,item,1) .."\\物品名称:" ..getstditeminfo(itemid,1) .."\\基础防御下限:"..getstditematt(itemid,9) .."\\基础防御上限:"..getstditematt(itemid,10) ) else say(self, "关联物品0失败") end end 获取当前唯一ID物品的星星数量 getitemstars 只支持脱下装备获取,不支持穿戴获取星星 参数 类型 空 默认 注释 play object 否 玩家对象 itemmakeid integer 否 物品唯一ID 物品记录信息 获取-getitemaddvalue getitemaddvalue 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 type integer 否 [1,2,3] position integer 否 当type=1,取值范围[0..49] type=2,取值范围[0..19] result integer 是 0 返回位置对应值 type=1对应位置定义,其余可自定义使用(范围:0~49) 0.AC 1.MAC 2.DC 3.MC 4.SC 5.幸运 6.准确 7.敏捷 8.攻击速度 9.魔法躲避 10.毒物躲避 11.体力恢复 12.魔法恢复 13.中毒恢复 15.沙巴克武器升级标记 20.物理伤害减少 21.魔法伤害减少 22.忽视目标防御 23.所有伤害反弹 24.人物体力增加 25.人物魔力增加 26.增加目标爆率 27.神 圣 28.强 度 29.诅 咒 30.暴击率 31.暴击伤害 32.攻击伤害 33.神秘戒指 神秘手镯 神秘头盔 三个装备是否被穿戴过 ==> 在 祝福罐, 聚灵珠 这个位置表示是否重置 当前持久为 0 40~44. 脚本使用 45.投保次数 type=2对应位置定义,其余可自定义使用(范围:0~19) 0:用来记录剩余时间(秒),到期后,自动销毁,只针对穿着装备/称号 1:物品规则。1.禁止扔 2.禁止交易 4.禁止存 8.禁止修 16.禁止出售 32.禁止爆出 64.丢弃消失 2:物品名字颜色 3.装备升级次数或星星数量 4~6.装备初始时,附带特殊属性(Word+Word)共6个 18.装备自定义属性标记 1代表有自定义属性 19.装备标记,脚本使用,一共32个标记,位运算,注意使用转换成无符号的,当设定值=0,相当于清空所有标记。 type=3对应位置定义,其余可自定义使用(范围:0~31) 装备标记,脚本使用,一共32个标记。设置时,只有识别2进制最低位有效,即设定值=5时,相当于设定值=1。 例如:setitemaddvalue(self,item,3,1,5),设定值=5,支取5的二进制最低位1,相当于setitemaddvalue(self,item,3,1,1) 如果物品对象获取失败,返回-1 设置-setitemaddvalue setitemaddvalue 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 type integer 否 [1,2] position integer 否 当type=1,取值范围[0..49] type=2,取值范围[0..19] value integer 否 设置物品对应位置值 刷新物品信息到前端 refreshitem 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 function main(self) local item = linkbodyitem(self, 0) if item then local itemid = getiteminfo(self, item, 2) local str str = "" for i = 0, 49 do str = str .. "," .. getitemaddvalue(self, item, 1, i) end str = str .. "\\" for i = 0, 19 do str = str .. "," .. getitemaddvalue(self, item, 2, i) end say(self, str); setitemaddvalue(self, item, 1, 1, math.random(100)); refreshitem(self, item); recalcabilitys(self) else say(self, "关联物品0失败") end end 自定义属性 获取-getitemcustomabil getitemcustomabil 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 result string 是 0 Json字符串,自定义属性内容,如果获取物品对象失败,则返回空字符串 清理物品自定义属性-clearitemcustomabil clearitemcustomabil 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 group integer 否 0 组别,-1:所有组,0~5:对应组别 设置-setitemcustomabil setitemcustomabil 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 value string 是 0 Json字符串,自定义属性内容 Json内容参考 {"abil":[{"i":0,"t":"[锻造属性]","c":251,"v":[[0,3,1,0,1,0,1],[0,4,1,0,1,0,2],[0,5,1,0,9,2,3],[0,6,1,0,9,2,4],[0,7,1,0,10,3,5],[0,8,1,0,10,3,6],[0,25,0,1,2,4,7]]}],"name":""} 示例 local tbl = { ["abil"] = { { ["i"] = 0, ["t"] = "[星级测试]\\<IMG:3>\\星级:3", ["c"] = 251, ["v"] = { {0,3,1,0,1,0,1}, {0,4,1,0,1,0,2}, {0,5,1,0,9,2,3}, {0,6,1,0,9,2,4}, {0,6,1,0,9,2,4}, {0,7,1,0,10,3,5}, {0,8,1,0,10,3,6}, {0,25,0,1,2,4,7}, }, }, }, ["name"] = itemName .. "[锻造 + 1]", } setitemcustomabil(actor,itemobj,tbl2json(tbl)) refreshitem(actor,itemobj) 参数 类型 描述 - abil object 自定义属性(最多3组) i number 索引 t string 标题名 c number 颜色 - - v object 属性条目 1 number 颜色 2 number 属性ID 3 number 属性值 4 number 类型 0 数值 1 百分比 5 number 属性显示位置 6 number 所在行 7 number 索引 name string 自定义物品名 绑定自定义装备属性 changecustomitemabil 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 attrindex integer 是 0 属性位置(0~9)每个装备可以自定义10个属性 bindindex integer 是 0 绑定类型(0~4) bindvalue integer 是 0 绑定的值 group integer 是 0 显示分类位置(0~5 ;为空默认为0) 绑定类型(0~4): 0=标识该属性绑定的颜色值默认读取(属性表:cfg_custpro_caption.xls)里面的颜色 1=表示该绑定属性表(属性ID:cfg_att_score.xls的属性ID),必须绑定,否则该属性无效,游戏也不会显示 2=标示该属性绑定自定义属性表:cfg_custpro_caption.xls里面的属性ID 3=表示该属性是否是百分比属性(0,1) 0不是百分比 1是百分比 4=属性显示位置(0~9) 如果一行有多个属性,这里位置就写同一行 5=是否显示 绑定的值: 参数3=0时 绑定属性颜色(0~255) 默认读取(属性表:cfg_custpro_caption.xls)里面的颜色 参数3=1时 绑定属性表:cfg_att_score.xls里面的属性ID 参数3=2时 绑定自定义属性表:cfg_custpro_caption.xls里面的属性ID 参数3=3时 绑定的值(0~1) 参数3=4时 显示位置(0~9) 参数3=5时 0=隐藏,1=显示(默认为显示) 修改自定义属性值 changecustomitemvalue 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 attrindex integer 是 0 属性位置(0~9)每个装备可以自定义10个属性 operate string 是 操作符:+、-、= value integer 是 0 属性值 group integer 是 0 显示分类位置(0~2 ;为空默认为0) 增加和修改自定义属性分类名称 changecustomitemtext 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 typename string 是 0 分类名称(-1为清空) group integer 是 0 显示分类位置(0~2 ;为空默认为0) 增加和修改分类名称颜色 changecustomitemtextcolor 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 color integer 是 0 分类颜色(0~255) group integer 是 0 显示分类位置(0~2 ;为空默认为0) 将物品唯一ID转换成道具表里对应的IDX物品 changeitemidx 参数 类型 空 默认 注释 play object 否 玩家对象 itemmakeid integer 否 唯一ID itemidx integer 否 道具ID 增加限次使用物品的次数 addfunitemdura 参数 类型 空 默认 注释 play object 否 玩家对象 itemmakeid integer 否 唯一ID num integer 否 次数 获取物品持久度 getdura 参数 类型 空 默认 注释 play object 否 玩家对象 itemmakeid integer 否 唯一ID result integer 否 持久度 修改物品持久度 setdura 参数 类型 空 默认 注释 play object 否 玩家对象 itemmakeid integer 否 唯一ID char string 否 操作符(+ - =) dura integer 否 持久度 setdura(actor,itemmakeid,"=",1000) 修改装备内观Looks值 setitemlooks 参数 类型 空 默认 注释 play object 否 玩家对象 itemPos integer 否 装备位置(-2操作物品对象) char string 否 操作符(+ - =) pictrue integer 否 内观图片 item object 否 引擎64_23.08.30新增 物品对象 --根据装备位设置内观Looks值 setitemlooks(actor,1,"=",85) --根据装备对象设置内观Looks值 setitemlooks(actor,-2,"=",85,itemobj) 根据索引返回背包物品信息 用于遍历物品,结合人物背包物品数量 getiteminfobyindex 参数 类型 空 默认 注释 play object 否 玩家对象 index integer 否 索引号,0开始 result object 否 物品对象 function main(self) local ncount=getbaseinfo(self,34) local str = "" for i = 0 ,ncount-1 do item = getiteminfobyindex(self, i) str=str..","..getiteminfo(self,item,1).."|"..getiteminfo(self,item,2).."|"..getiteminfo(self,item,3) end say(self, str) end 通过物品唯一id拿走物品 delitembymakeindex 参数 类型 空 默认 注释 play object 否 玩家对象 ids string 否 物品唯一ID,逗号(,)串联 count integer 否 叠加物品扣除数量, 不填此参数,默认全部扣除 不可叠加物品全部扣除 result bool 否 是否扣除成功 使用物品(吃药、使用特殊物品等) eatitem 参数 类型 空 默认 注释 play object 否 玩家对象 itemname string 否 物品名称 count integer 是 1 数量 设置物品来源 setthrowitemly 参数 类型 空 默认 注释 source string 否 json字符串 source格式 { map: "0", //地图号 source: 5, //来源:1-GM生成,2-NPC,3-商城,4-NPC商店, 5-怪物掉落,6-系统给与,7-挖矿,8-批量生成,9-宝箱 mon:"白野猪", //掉落的怪物 player:"玩家人物名称", time:"2021-11-11 00:00:00" //掉落或生成的时间,为空时,设置为系统时间 } 设置来源接口调用后,会将生成的来源数据保存到后端,脚本中给与物品时,会自动绑定。 设置物品来源(使用物品对象) setthrowitemly2 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 source string 否 json字符串 source格式同setthrowitemly 获取物品来源(使用物品对象) getthrowitemly 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 result string 否 json字符串 source格式同setthrowitemly 设置自定义进度条参数 setcustomitemprogressbar 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 装备对象 index integer 否 装备精度条索引(0~2) json string 否 进度条内容,json字符串 json格式,json中各项参数均可以为空: { open:1, //0-关闭,1-打开 show:1, //0-不显示数值,1-百分比,2-数字 name:"锻造", //进度条文本 color:3, //进度条颜色,0~255 imgcount:0, //0-不循环绘制,1-图片循环绘制 cur:0, //当前值 max:100, //最大值 level:0 //级别(0~65535) } 获取自定义进度条参数 getcustomitemprogressbar 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 装备对象 index integer 否 装备精度条索引(0~2) result string 否 进度条内容,json字符串 装备开孔 drillhole 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 装备对象 holejson string 否 开孔相关,json字符串,支持0~9共10个孔 json字符串格式: { hole0: 1, //第0个孔位置,0-不开孔,1-开孔 hole1: 1, //第1个孔位置 hole2: 0, //第2个孔位置 hole3: 1, //第3个孔位置 hole4: 1, hole5: 1, hole6: 0, hole7: 1, hole8: 1, hole9: 1 //第9个孔位置 } 不要求所有空数据都传送,允许只传指定孔的字符串,例如: { hole3: 1, //第3个孔位置,1-开孔 } 获取装备开孔数据 getdrillhole 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 装备对象 result string 否 开孔相关,json字符串,支持0~9共10个孔 返回的json字符串参考装备开孔 装备镶嵌钻石 socketableitem 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 装备对象 hole integer 否 装备开孔序号,0~9 item integer 否 镶嵌钻石的index(装备表总的Index) 获取装备钻石镶嵌情况 getsocketableitem 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 装备对象 result string 否 开孔相关,json字符串,支持0~9共10个孔 socketableitem 镶嵌宝石,传入json getsocketableitem 返回镶嵌宝石的json { socket0: 20333, //第0个孔位置,20333-对应宝石的Index, socket1: 0, //第1个孔位置,0-未镶嵌宝石 socket2: 0, socket3: -1, //第3个孔位置,-1-未打孔 socket4: -1, socket5: -1, socket6: 0, socket7: -1, socket8: -1, socket9: -1 } 设置物品特效 setitemeffect 参数 类型 空 默认 注释 play object 否 玩家对象 itemPos integer 否 装备位置(-2操作物品对象) bageffectid integer 否 背包特效编号 ineffectid integer 否 内观特效编号 item object 否 引擎64_23.08.30新增 物品对象 --根据装备位设置特效 setitemeffect(actor,1,5111,6063,1,1) --根据物品对象设置特效 setitemeffect(actor,-2,6307,6063,nil,nil,itemobj) 根据物品获取Json getitemjson 参数 类型 空 默认 注释 item object 否 物品对象 json string 否 json字符串 { "MakeIndex":xxxx, "Idx":xxxx, "Name":xxxx, "Dura":xxxx, "DuraMax":xxxx, "Overlap":xxxx, "AddValue0":xxxx, "AddValue1":xxxx, "ExAbil":xxxx } 根据json字符串给物品 giveitembyjson 参数 类型 空 默认 注释 actor object 否 玩家对象 json string 否 json字符串 result object 否 生成的物品对象 { "MakeIndex":xxxx, "Idx":xxxx, "Name":xxxx, "Dura":xxxx, "DuraMax":xxxx, "Overlap":xxxx, "AddValue0":xxxx, "AddValue1":xxxx, "ExAbil":xxxx } *注 : 根据json字符串给的物品,将会生成新的MakeIndex 关闭指定装备对比提示 nothintitem 参数 类型 空 默认 注释 actor object 否 玩家对象 order integer 否 1=物品唯一ID 2=物品IDX 3=物品名称 str string 否 参数1的值 nothintitem(actor,3,"木剑") 设置物品绑定状态 setitemstate 参数 类型 空 默认 注释 item object 否 物品对象 bind integer 否 绑定类型(0-8) 0禁止扔 1禁止交易 2禁止存 3禁止修 4禁止出售 5禁止爆出 6丢弃消失 7死亡必爆(死亡爆出来后,该属性就会删除,在捡起来戴上,就没有死亡必爆了) 8禁止摆摊或上架拍卖行 state integer 否 绑定状态(0为正常,1为绑定) --装备绑定了禁止扔 setitemstate(itemobj,8,1) refreshitem(actor,itemobj) 判断绑定状态 checkitemstate 参数 类型 空 默认 注释 item object 否 物品对象 bind integer 否 绑定类型(0-7) state integer 否 绑定状态(0为正常,1为绑定) 判定物品是否极品 isitemjp 参数 类型 空 默认 注释 item object 否 物品对象 result bool 否 true = 是极品 false = 不是极品 判断角色是否有该物品 hasitem 参数 类型 空 默认 注释 actor object 否 玩家对象 item object 否 物品对象 result integer 否 返回值 0-装备,1-背包 2-仓库, -1-不存在 获取背包物品数量 getbagitemcount 参数 类型 空 默认 注释 play object 否 玩家对象 itemname string 否 物品名称 result integer 否 返回值,对应物品的数量 local itemNum = getbagitemcount(actor,"木剑") release_print("itemNum",itemNum) 设置装备的元素属性 setnewitemvalue 参数 类型 空 默认 注释 play object 否 玩家对象 itemPos integer 否 装备位置(-2操作物品对象) iAttr integer 否 属性 sFlag string 否 比较符(=+-) iValue integer 否 数值(1-100),百分比 item object 否 引擎64_23.08.30新增 物品对象 --根据装备位设置元素属性 setnewitemvalue(actor,1,1,"+",1) --根据物品对象设置元素属性 setnewitemvalue(actor,-2,1,"+",100,itemobj) 获取物品的附加属性 getnewitemaddvalue 参数 类型 空 默认 注释 itemobj object 否 物品对象 value integer 否 元素属性 0:暴击几率 1攻击伤害 2:物理伤害减少 3:魔法伤害减少 4:忽视目标防御 5:所有伤害反弹 6:目标爆率 7:人物体力增加 8:人物魔力增加 11:暴击伤害 修复所有装备 repairall 参数 类型 空 默认 注释 play object 否 玩家对象 [[ 需要在npc脚本中使用,且文件头需设置itemstype表储存需要修复的装备位置 Mir200\Envir\Market_Def\第一大陆\装备修复-3.lua ]] itemstype = {1,2,3,4,5,6,7,8,9,10} function main(actor) local msg =[[<设置持久/@chijiu>\<一键修复/@xiufu>]] say(actor,msg) end function chijiu(actor) local itemobj = linkbodyitem(actor,1) local itemMakeId = getiteminfo(actor,itemobj,1) setdura(actor,itemMakeId,"=",2000) end function xiufu(actor) repairall(actor) end 调整人物身上物品装备名字颜色 changeitemnamecolor 参数 类型 空 默认 注释 play object 否 玩家对象 item object 否 物品对象 color integer 否 颜色(0-255)颜色=0时恢复默认颜色 检测装备名字的颜色 getitemnamecolor 参数 类型 空 默认 注释 item object 否 物品对象 result integer 是 0 返回颜色值 设置人物身上物品装备名字 changeitemname 参数 类型 空 默认 注释 play object 否 玩家对象 itemPos integer 否 装备位置(-2操作物品对象) itemName string 否 装备名字 item object 否 引擎64_23.08.30新增 物品对象 --根据装备位改名 changeitemname(actor,1,"装备改名1") --根据物品对象改名 changeitemname(actor,-2,"装备改名2",itemobj) 获取物品原始各项数据库字段值参数 getdbitemfieldvalue 参数 类型 空 默认 注释 itemIdx/itemName integer/string 否 物品ID/物品名称 fieldName string 否 字段名 local stdmode = getdbitemfieldvalue("木剑", "stdmode") 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 【天天脚本库】--专业传奇脚本库,全网最全脚本库! 官方网站 :www.ttjbk.com 备用站点:www.gmjbk.com 备用站点:www.gmjbw.com 官方交流群:680930409 承接各种脚本版本制作 修改 等业务!有任何疑问可联系底部QQ联系方式! 所有收费脚本若不会安装可找客服收费安装!不提供免费安装服务! 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 |





/1 