一、传奇PK魔戒概述
在无度传奇中,PK魔戒是一种极具特色的装备,它不仅能够大幅提升玩家的属性,还附带了一系列独特的游戏机制。以下是PK魔戒的主要特点:
佩戴后属性显著提升,但无法取下。
佩戴者每小时需杀死一名35级以上的玩家,且不能重复击杀同一人。
成功完成击杀任务后,生命值将恢复至满一小时。
若未按时完成任务,魔戒将消失,并导致玩家死亡。
当游戏区开启下线辅助功能时,魔戒的计时器将自动关闭。
二、PK魔戒的功能与使用说明
PK魔戒隐藏属性强大,能提升玩家的攻击力、魔法和道术,并增加全身属性总和的10%。然而,其邪恶的一面在于佩戴者必须每小时进行一次PK,否则将面临死亡和魔戒消失的风险。玩家需在土城的戒灵处合成魔戒,或使用元宝取下已佩戴的魔戒。合成材料可在中土地图中获取。
三、脚本技术实现
计时问题:利用jsM2的个人时钟功能,通过设置human个人参数进行计时。每分钟参数加1,达到60时即表示一小时,之后参数清零重新计时。小退后上线,启动个人时钟即可继续计时。
判断击杀对象:利用M2的特殊功能,通过脚本[@PlayDie]在被杀者执行时,将击杀者的信息传递给PK者,进而判断是否为魔戒佩戴者、被杀者等级及是否重复击杀。
四、关键脚本示例
以下是实现PK魔戒计时和判断击杀对象的关键脚本片段:
; 魔戒计时
[@OnTimer6]
#IF
checkitemw 魔戒
#ACT
break
#CALL [活动魔戒记时.txt] @魔戒记时
…
; 死亡触发
[@PlayDie]
#IF
#ACT
set [111] 0
set [112] 0
set [113] 0
MOV S0 <$KILLER>
MOV S1 <$USERNAME>
MOV S2 <$LEVEL>
#CALL [活动/被PK检测.txt] @被杀
…
传奇PK魔戒特点:
1.带上传奇PK魔戒后属性大增,但是拿不下来。
2.从带上那一刻,每一小时你就要杀一个人,杀35级以下小人无效,PK同一个人无效。
3.如果你按魔戒的指示,杀死了一个后,重新让你的生命增加一小时。
4.如果你没有完成PK任务,魔戒会消失,并把你杀死,无论你是小退,还是下线。
5.区开通下线辅机功能时,自动关闭计时器。
传奇PK魔戒的功能和使用说明:
魔戒属性隐藏,可以大幅度提高自身攻击力,魔法和道术,并会被恶魔附体,提高全身属性总和的10%,但是魔戒也有邪恶的一面:戴上后无法取下,所带魔戒之人须每隔一个小时杀一个人来用鲜血祭奠恶魔之魂。若一个小时内不PK,那么你将会被魔戒杀死,并且魔戒自动消失,真正的被杀哦,还会掉装备。还有一个相当严格的要求,你所杀死的人须高于35级,而且不能连续杀死同一个人,否则无效,你不要以为下线或者小退等就可以延长时间,无用的,下线自动保存时间,再次上线后自动计算你的剩余时间,杀死一个人以后就可以把你的生命重新延长至一个小时。
在土城的戒灵处可以合成魔戒,也可以使用元宝将已戴上的魔戒取下来。合成魔戒的材料在中土地图中取得。
关于增加全身属性10%,这一点你可以设置一个套装,你面只要一件物品就行了
其他的功能用脚本可以实现,大的难度是.
1 计时问题.
2 如何判断你杀的人是否已经杀过.你杀的人的级别是多少?
解决:
1.计时问题,可以用上jsM2 的个人时钟,但个人时钟只适合短时间计时,以秒计算,且下线在上线后计时停止.
实现长时间的计时,这里我发现了一个计巧.就是用一个 human 的个人参数.计时设成60 就是60秒.第计时一分钟,参数+1 ,但这个参数到60时,便是一小时.参数清0重新计时.小退在上时,只要在启动个人时钟就可以继续计时.
2.第二个问题的解决.是我发现了新的的M2的一个特殊功能,就是让他人执行脚本
[@PlayDie]
#IF
#ACT
Mov S10 <$Killer>
HCall <$STR(S10)> @TTT
你可以利用被杀者的这一脚本把,把资料传送给PK者-<$Killer>
原理:就是把传过来的PK者的姓名,判断是不是带魔戒的(之前我把带魔戒的玩家写入一个文本中)
如果是,在判断自已的级别是不是大于35级.自已是不是在PK者杀过人的名单里.如果都不是.那么触发PK者脚本.来改变他的参数.
===================================
部分关键脚本:
Qmanage.txt
;魔戒记时
[@OnTimer6]
#IF
checkitemw 魔戒
#ACT
break
#CALL [活动魔戒记时.txt] @魔戒记时
#if
#act
SetOffTimer 6
set [108] 0
CALCVAR HUMAN MJJS = 0
CALCVAR HUMAN MJTIME = 0
SAVEVAR HUMAN MJJS ..QuestDiary记录魔戒记时.txt
SAVEVAR HUMAN MJTIME ..QuestDiary记录魔戒记时.txt
CHANGEMODE 3 0
………………….
[@魔戒记时]
{
#if
checkcastlewar 0
CHECKVAR HUMAN MJTIME = 2
#act
break
CHANGEMODE 3 0
sendmsg 7 [地狱之声]攻城期间,魔戒暂时失效.
#if
checkcastlewar 0
CHECKVAR HUMAN MJTIME = 1
#act
break
CHANGEMODE 3 0
sendmsg 7 [地狱之声]攻城期间,魔戒暂时失效.
#if
CHECKVAR HUMAN MJTIME = 0
CHECKVAR HUMAN MJJS = 0
#ACT
break
CALCVAR HUMAN MJJS + 1
SAVEVAR HUMAN MJJS ..QuestDiary记录魔戒记时.txt
CHANGEMODE 3 0
sendmsg 0 [地狱之声]被地狱”魔戒”附身的【%s】走到了生命的终结,现在等待它的只有死亡.
……………….
Qfunction-0.txt
;死亡触发
[@PlayDie]
#IF
#act
set [111] 0
set [112] 0
set [113] 0
MOV S0 <$KILLER>
MOV S1 <$USERNAME>
MOV S2 <$LEVEL>
#CALL [活动/被PK检测.txt] @被杀
[@被杀]
{
#if
CheckTextList QuestDiary记录拥有魔戒者.txt <$str(S0)>
#act
break
goto @被魔戒杀
[@被魔戒杀]
#if
CHECKLEVELEX < 35
#act
break
sendmsg 5 [地狱之声]你被戴邪恶魔戒的【<$str(S0)>】所杀,。
HCall <$STR(S0)> @魔戒复活1
#if
;CHECKNAMELIST ..QuestDiary记录魔戒PK记录<$str(s0)>.txt
CheckTextList QuestDiary记录魔戒PK记录<$str(s0)>.txt <$USERNAME>
#act
break
sendmsg 5 [地狱之声]你被戴邪恶魔戒的【<$str(S0)>】所杀,这里记录你已经让他杀过,下回小心了。
HCall <$STR(S0)> @魔戒复活2
#if
#act
sendmsg 5 [地狱之声]你被戴邪恶魔戒的【<$str(S0)>】所杀,魔戒具有隐身能力,所以你看不到PK者。
AddTextList QuestDiary记录魔戒PK记录<$str(s0)>.txt <$USERNAME>
HCall <$STR(S0)> @魔戒复活3
}
OK 大功告成,PK魔戒,成功。