传奇1.85玲珑元素HERO专用装备调换师NPC职业互换元素重洗转移脚本完整教程

来源: 作者: 点击:
本脚本只按HERO引擎写,涉及新属性检测与设置用CheckNewItemValue、SetNewItemValue,涉及穿身位置按0服装、1武器、2勋章、3项链、4头盔、5左手镯、6右手镯、7左戒指、8右戒指、9护符、10腰带、11鞋子、12宝石处理。其他引擎命令名不同,不要直接套用。玲珑元素版本若把元素放在新属性里,按本教程做调换;若元素放在极品附加里,把检测段改成CheckItemAddValue、设置段改成UPGRADEITEMEX或引擎允许的属性写入命令。

NPC文件与注册

Market_Def新建玲珑调换师.txt,内容开头写NPC基础信息,地图、坐标、形象按所用HERO小版本Npc.txt规则填。脚本主体放Market_Def\玲珑调换师.txt,示例如下。

[@main]
IF

ACT

SAY

玲珑元素装备调换师\ \
1.同阶职业互换(战换法、法换道等)/@jobchange\ \
2.穿戴玲珑件元素重洗/@elementreset\ \
3.OK框玲珑件元素提取转移/@elementmove\ \
4.查看当前全身元素点/@showelement\ \

同阶职业互换

只做同名不同职业互换,不保留元素,直接回收原装发目标装。消耗用元宝,也可用金币、玲珑石,按数据库物品名改。

[@jobchange]
IF

ACT

SAY

放入背包要换的原装备,选择目标职业\ \
战→法 王者项链/@war2fa_neck\ \
战→道 王者项链/@war2tao_neck\ \
法→战 王者头盔/@fa2war_head\ \
道→战 王者戒指/@tao2war_ring\ \

[@war2fa_neck]
IF

CHECKITEM 王者项链(战) 1
CHECKGAMEGOLD > 30
ACT

TAKE 王者项链(战) 1
GAMEGOLD - 30
GIVE 王者项链(法) 1
SENDMSG 6 王者项链已调换为法系,扣除元宝30
ELSEACT

SENDMSG 6 需要背包有王者项链(战)1个且元宝大于30

[@war2tao_neck]
IF

CHECKITEM 王者项链(战) 1
CHECKGAMEGOLD > 30
ACT

TAKE 王者项链(战) 1
GAMEGOLD - 30
GIVE 王者项链(道) 1
SENDMSG 6 王者项链已调换为道系,扣除元宝30
ELSEACT

SENDMSG 6 需要背包有王者项链(战)1个且元宝大于30

[@fa2war_head]
IF

CHECKITEM 王者头盔(法) 1
CHECKGAMEGOLD > 30
ACT

TAKE 王者头盔(法) 1
GAMEGOLD - 30
GIVE 王者头盔(战) 1
SENDMSG 6 王者头盔已调换为战系,扣除元宝30
ELSEACT

SENDMSG 6 需要背包有王者头盔(法)1个且元宝大于30

[@tao2war_ring]
IF

CHECKITEM 王者戒指(道) 1
CHECKGAMEGOLD > 30
ACT

TAKE 王者戒指(道) 1
GAMEGOLD - 30
GIVE 王者戒指(战) 1
SENDMSG 6 王者戒指已调换为战系,扣除元宝30
ELSEACT

SENDMSG 6 需要背包有王者戒指(道)1个且元宝大于30

若玲珑套装不是王者前缀,把王者项链(战)、王者头盔(法)等全部替换成玲珑战链、玲珑法链、玲珑道链、玲珑战甲、玲珑法衣、玲珑道袍等真实StdItems名称。同名互换不改元素,因为原装收回、目标装重新发;若目标装本身数据库已带固定玲珑元素,发完即带元素。若目标装元素要靠脚本附加,发装后接SetNewItemValue段。

穿戴玲珑件元素重洗

玩家身上已穿玲珑武器、项链、衣服等,NPC按位置重洗新属性。HERO新属性命令格式按所用小版本核对,基础资料常见:

CheckNewItemValue 位置 属性 符号 值
SetNewItemValue 位置 属性 操作符 值

属性码按版本不同,基础示例采用:0致命一击、1攻击伤害增加、2物理伤害减少、3魔法伤害减少、4忽视或反弹按版本、5体质;扩展资料还有6体质、7附加经验、8怒气、9合计攻击、13人物魔力等。 写脚本前在M2命令列表搜CheckNewItemValue、SetNewItemValue,确认本服属性码,避免致命和增伤编号写反。

武器重洗攻击伤害与致命

[@elementreset]
IF

ACT

SAY

选择重洗部位\ \
武器重洗致命+增伤/@resetwp\ \
衣服重洗物减+魔减/@resetarmor\ \
项链重洗增伤+命中元素/@resetneck\ \
全玲珑五件套随机重洗/@resetall\ \

[@resetwp]
IF

CHECKUSEITEM 1
CHECKGAMEGOLD > 100
ACT

GAMEGOLD - 100
SetNewItemValue 1 0 = 0
SetNewItemValue 1 1 = 0
SetNewItemValue 1 0 + 5
SetNewItemValue 1 1 + 10
SENDMSG 6 武器元素已重洗:致命5、攻击伤害增加10,按本服属性码核对
ELSEACT

SENDMSG 6 需要手持武器且元宝大于100

上面先把武器0、1号新属性清0再赋值,避免多次重洗叠加。若本服0不是致命、1不是增伤,按实际码替换。只想随机,可配合RANDOM段生成1到10再SetNewItemValue;HERO随机写法按版本用Random、GetRandomVal或变量计算,不写死。

衣服重洗物减魔减

[@resetarmor]
IF

CHECKUSEITEM 0
CHECKGAMEGOLD > 100
ACT

GAMEGOLD - 100
SetNewItemValue 0 2 = 0
SetNewItemValue 0 3 = 0
SetNewItemValue 0 2 + 8
SetNewItemValue 0 3 + 8
SENDMSG 6 衣服元素已重洗:物减8、魔减8,按本服属性码核对
ELSEACT

SENDMSG 6 需要身穿衣服且元宝大于100

项链重洗增伤与辅助

[@resetneck]
IF

CHECKUSEITEM 3
CHECKGAMEGOLD > 80
ACT

GAMEGOLD - 80
SetNewItemValue 3 1 = 0
SetNewItemValue 3 0 = 0
SetNewItemValue 3 1 + 6
SetNewItemValue 3 0 + 3
SENDMSG 6 项链元素已重洗:增伤6、致命3,按本服属性码核对
ELSEACT

SENDMSG 6 需要佩戴项链且元宝大于80

全件随机重洗

[@resetall]
IF

CHECKUSEITEM 0
CHECKUSEITEM 1
CHECKUSEITEM 3
CHECKGAMEGOLD > 300
ACT

GAMEGOLD - 300
SetNewItemValue 0 2 = 0
SetNewItemValue 0 3 = 0
SetNewItemValue 0 2 + 6
SetNewItemValue 0 3 + 6
SetNewItemValue 1 0 = 0
SetNewItemValue 1 1 = 0
SetNewItemValue 1 0 + 4
SetNewItemValue 1 1 + 8
SetNewItemValue 3 1 = 0
SetNewItemValue 3 0 = 0
SetNewItemValue 3 1 + 5
SetNewItemValue 3 0 + 2
SENDMSG 6 全身玲珑三件已重洗,具体属性码以本服HERO命令表为准
ELSEACT

SENDMSG 6 需要身穿衣服武器项链且元宝大于300

OK框玲珑元素提取转移

把A件元素抽到乾坤石/元素石,再写到B件。HERO资料里有乾坤石空、满配合CheckNewItemValue多属性、SetNewItemValue清零的转移思路。 下面用OK框放原件、背包放空石,提取后原件清元素,给满石;后续把满石对目标件使用再写入。若所用HERO不支持OK框新属性检测,改要求原件穿身、用位置0-12检测。

提取武器三元素到空石

[@elementmove]
IF

ACT

SAY

OK框放原玲珑件,背包放空元素石\ \
提取武器元素/@movewp\ \
提取项链元素/@moveneck\ \
提取衣服元素/@movearmor\ \

[@movewp]
IF

CHECKITEM 空元素石 1
CheckNewItemValue -1 0 > 0
CheckNewItemValue -1 1 > 0
CheckNewItemValue -1 4 > 0
ACT

TAKE 空元素石 1
GIVE 满元素石 1
SetNewItemValue -1 0 = 0
SetNewItemValue -1 1 = 0
SetNewItemValue -1 4 = 0
SENDMSG 6 OK框武器元素已提取并清空,按本服属性码核对0/1/4
ELSEACT

SENDMSG 6 OK框需放有元素的武器,背包需有空元素石;若本服不支持-1新属性,改穿身检测

若OK框-1在所用HERO不返回新属性,改穿身写:

[@movewp_wear]
IF

CHECKUSEITEM 1
CHECKITEM 空元素石 1
CheckNewItemValue 1 0 > 0
CheckNewItemValue 1 1 > 0
CheckNewItemValue 1 4 > 0
ACT

TAKE 空元素石 1
GIVE 满元素石 1
SetNewItemValue 1 0 = 0
SetNewItemValue 1 1 = 0
SetNewItemValue 1 4 = 0
SENDMSG 6 手持武器元素已提取到满元素石并清空
ELSEACT

SENDMSG 6 需要手持带元素武器且背包有空元素石

满石写入目标件

[@writewp]
IF

CHECKITEM 满元素石 1
CHECKUSEITEM 1
ACT

TAKE 满元素石 1
SetNewItemValue 1 0 + 5
SetNewItemValue 1 1 + 10
SetNewItemValue 1 4 + 5
SENDMSG 6 满元素石已写入手持武器,属性码按本服核对
ELSEACT

SENDMSG 6 需要背包有满元素石并手持目标武器

项链、衣服同理改位置3、0,属性码按版本。多属性批量转移可先CheckNewItemValue逐个判断原值,用变量记录再SetNewItemValue写到目标;HERO若不支持直接读值到变量,采用固定提取方案,例如原件必须预先洗成致命X、增伤Y、忽视Z,提取石只转固定方案,减少脚本变量处理。

查看全身元素点

给玩家自查,不修改只播报。按本服属性码扩展,示例只列常用。

[@showelement]
IF

ACT

SAY

全身玲珑新属性检测结果\ \
武器致命/增伤/忽视见下行消息\ \
衣服物减/魔减见下行消息\ \
项链增伤/致命见下行消息\ \
IF

CheckNewItemValue 1 0 > 0
ACT

SENDMSG 6 武器致命一击附加大于0,具体值按M2属性码核对
IF

CheckNewItemValue 1 1 > 0
ACT

SENDMSG 6 武器攻击伤害增加大于0
IF

CheckNewItemValue 0 2 > 0
ACT

SENDMSG 6 衣服物理伤害减少大于0
IF

CheckNewItemValue 0 3 > 0
ACT

SENDMSG 6 衣服魔法伤害减少大于0
IF

CheckNewItemValue 3 1 > 0
ACT

SENDMSG 6 项链攻击伤害增加大于0
IF

CheckNewItemValue 3 0 > 0
ACT

SENDMSG 6 项链致命一击大于0

若要把具体数值返回变量再播报,先确认所用HERO支持GetNewItemValue或类似回写命令;不支持就用区间判断,例如大于0、大于5、大于10分三档提示,避免假数值。

极品附加类玲珑调换补充

部分1.85玲珑版把攻击、防御、魔御、准确、攻速做成极品附加,不走新属性。检测用CheckItemAddValue,位置同0-12,属性码武器0攻击上限、1魔法上限、2道术上限、3幸运、5准确、6攻速;衣服0防御、1魔御;首饰按AC2/MAC2/DC2/MC2/SC2对应码处理。 设置用UPGRADEITEMEX或引擎允许命令。职业互换若保留极品点,不用TAKE/GIVE收回重发,改为脱原装、按原附加取值、发新装、再UPGRADEITEMEX写回。

示例保留武器极品互换:

[@wpkeepadd]
IF

CHECKUSEITEM 1
CheckItemAddValue 1 0 > 0
CHECKGAMEGOLD > 50
ACT

MOV N0 <$ITEMADDVALUE(1,0)>
TAKEWEAR 1
GIVE 玲珑法杖 1
UPGRADEITEMEX 1 0 0 <$STR(N0)> 0
GAMEGOLD - 50
SENDMSG 6 武器已按原攻击附加点换为玲珑法杖,属性码按本服核对
ELSEACT

SENDMSG 6 需要手持带攻击附加的武器且元宝大于50

<$ITEMADDVALUE(1,0)>不是所有HERO小版本都支持,先在测试服打印;不支持就改为分段区间,例如附加大于0小于3、大于等于3小于7、大于等于7分别给不同UPGRADEITEMEX数值。

穿脱自动补偿

若调换后需要脱下原玲珑件清元素、穿上新件自动补元素,放QFunction-0。HERO穿脱标签用[@TakeOnX]、[@TakeOffX],X为0-12;主体和英雄分开,英雄用[@H.TakeOnX]、[@H.TakeOffX]。

[@TakeOn1]
IF

CHECKITEMW 玲珑战剑 1
ACT

SetNewItemValue 1 0 + 5
SetNewItemValue 1 1 + 10
SENDMSG 6 玲珑战剑佩戴即附致命5、增伤10,属性码按本服核对

[@TakeOff1]
IF

CHECKITEMW 玲珑战剑 1
ACT

SENDMSG 6 已取下玲珑战剑,新属性保留在装备上无需手动清

SetNewItemValue在TakeOn里直接加,若玩家反复穿脱会重复加,正式版应先CheckNewItemValue判断是否已附,或者TakeOff时SetNewItemValue清零再TakeOn重附。示例防重复:

[@TakeOn1]
IF

CHECKITEMW 玲珑战剑 1
CheckNewItemValue 1 1 < 10
ACT

SetNewItemValue 1 0 = 5
SetNewItemValue 1 1 = 10
SENDMSG 6 玲珑战剑元素已校准为致命5增伤10
ELSEACT

SENDMSG 6 玲珑战剑元素已满足,不重复附加

消耗与防刷

职业互换用TAKE原装+扣元宝,最不容易刷;元素重洗用CHECKUSEITEM+扣元宝,洗完直接SetNewItemValue覆盖,不读原值就不会把高属性洗低后回退刷。若允许保留最高值,先CheckNewItemValue原值,再比较,只在新值更高时写入。

防刷示例:

[@saferesetwp]
IF

CHECKUSEITEM 1
CHECKGAMEGOLD > 100
CheckNewItemValue 1 1 < 15
ACT

GAMEGOLD - 100
SetNewItemValue 1 0 = 5
SetNewItemValue 1 1 = 15
SENDMSG 6 武器已重洗到致命5增伤15上限
ELSEACT

SENDMSG 6 元宝不足或武器增伤已达到15不重洗

元素转移用空石、满石做消耗品,空石商铺/活动产出,满石绑定不可交易;提取后原件清元素,避免原件和满石同时带元素造成复制。OK框方案若引擎不支持,全部改穿身方案,减少兼容问题。

重载与测试

改Market_Def\玲珑调换师.txt后,M2重新加载NPC脚本;若改了QFunction-0穿脱段,重新加载QF;若新属性不生效,检查M2是否开启新属性、登录器是否配套HERO新属性,未开启时SetNewItemValue可能无显示。测试顺序:

新建小号,背包放王者/玲珑各职业装,点职业互换,确认TAKE原装、GIVE目标装、扣元宝数量正确。
小号穿玲珑武器,点重洗,用[@showelement]或M2角色属性面板看新属性变化;换属性码后重洗数值要同步。
OK框放带元素武器,点提取,确认空石变满石、原件CheckNewItemValue回到0;再把满石对空白武器写入,确认只写目标件。
穿脱自动附属性,反复戴摘同件武器,确认不叠加、不丢属性。
极品附加互换用CheckItemAddValue取原值,换装后用UPGRADEITEMEX回写,确认攻击、幸运、准确、攻速都按原方案转移。

常见不生效

点NPC无反应:Market_Def文件名与Npc.txt路径不一致,或M2未重载NPC;先在小服用最简单#SAY主菜单验证。

SetNewItemValue无效:所用HERO未开新属性,或登录器不是对应版本;M2功能里开新属性/元素属性,换配套登录器再测。属性码错会把致命写成增伤,先用CheckNewItemValue单属性打印确认本服编号。

CheckNewItemValue -1无效:部分HERO OK框只支持极品附加检测,不支持新属性;改CHECKUSEITEM按穿身位置0-12检测。

职业互换后元素丢失:TAKE/GIVE重发会丢原元素,若要求保留,别用同名互换,改脱装取原元素变量、发新装再SetNewItemValue;极品附加用CheckItemAddValue取点再UPGRADEITEMEX。

重洗越洗越高:脚本没先清0,多次SetNewItemValue +叠加;每次重洗先=0再+固定值,或用属性上限判断只允许在低值时不洗。

穿脱重复加属性:QFunction自动附属性没做已附判断;加CheckNewItemValue阈值,或TakeOff先清零再TakeOn写入。

乾坤石/元素石复制:提取不原件清零、转移不满石销毁,会出现原件和石都带元素;严格TAKE空石、GIVE满石、原件SetNewItemValue全清,写入目标后TAKE满石。

按上面分职业互换、穿身重洗、OK框提取、满石写入、极品保留、穿脱自动附六块做,1.85玲珑元素在HERO里能覆盖换职业、洗元素、转元素、保留极品全部调换需求;上线前只保留本服真实物品名和已核实属性码,删除测试用过高数值。