用于战神引擎手游版本的离线代练Npc脚本。玩家使用元宝开启以后,在时间达到了可以领取对应的经验,NPC上默认支持三种离线代练功能,玩需要的元宝也很少,脚本是明文版的,可以任意修改里面的元宝和经验值,默认是1天能开启一次。
部分脚本
program Mir2; procedure _DoExit; begin This_Npc.CloseDialog(This_Player); end; procedure _Exit; begin This_Npc.CloseDialog(This_Player); end; //*******************离线代练*********************** procedure _ForgeDiamond; begin This_Npc.NpcDialog(This_Player, '|< /c=red>\'+ '| \'+ '|<【离线代练】:/c=185>本服为方便大家,特开设代练!\'+ '|<【离线代练】:/c=220>每天可以代练一次!等级必须到达40级以上!\'+ '|<【离线代练】:/c=251>方便玩家更好地游戏乐趣!\'+ '|<【离线代练】:/c=70>不用担心没时间升级!\'+ '|<【离线代练】:/c=180>开启代练功能后,不论离线在线,\'+ '|<【离线代练】:/c=245>都将获得10W-50W不等经验\'+ '|{cmd}<开始代练/@ForgeDiamondStart>\'+ '|{cmd}<领取代练完成的经验/@ForgeDiamondGet>\' + '|{cmd}<查询代练规则/@ForgeDiamondRule>' ); end; procedure _ForgeDiamondRule; begin This_Npc.NpcDialog(This_Player, '|<【1】:/c=32>必须代练时长到达后,才能领取经验!\'+ '|<【2】:/c=147>当前代练未完成不能申请下次代练!\'+ '|<【3】:/c=159>每天只能选择1种方式进行1次代练!\'+ '|<【4】:/c=210>每次领取代练完成的经验时都有几率获得额外奖励!\'+ '|<【5】:/c=180>只有40级以上的勇士才可进行离线代练\'+ '|{cmd}<已了解离线代练规则,返回/@ForgeDiamond>' ); end; procedure _ForgeDiamondStart; begin if This_Player.Level < 40 then begin This_Npc.NpcDialog(This_Player, '你的等级不满40级,不可离线代练。' ); end else This_Npc.NpcDialog(This_Player, '|<【代练】:/c=180>开启代练功能后,不论离线在线,\'+ '|<【代练】:/c=245>都将获得10W-50W不等经验\'+ '|<【代练】:/c=245>每天只能选择一种代练方式!\'+ '|<【代练】:/c=245>代练同时,也能手动练级.\'+ '|<【友情提醒】:/c=245>代练只为辅助升级,手动练级速度才是最快!\'+ '|{cmd}<使用10元宝开启普通代练/@ForgeDiamondStart_YB1>\'+ '|{cmd}<使用30元宝开启高级代练/@ForgeDiamondStart_YB2>\'+ '|{cmd}<使用50元宝开启追赶代练/@ForgeDiamondStart_YB3>\' ); end; function ForgeDiaYB(price, num: Integer):boolean; begin This_Player.SetS(73,45,GetDateNum(GetNow)); This_Player.SetS(73,46,ConvertDateTimeToDB(GetNow)); This_Player.SetS(73,47,price); This_Npc.NpcDialog(This_Player, '你已经成功开始离线代练,请1小时后领取代练完成的经验。' ); result := true; end; procedure _ForgeDiamondStart_YB1; var temp:integer; begin if This_Player.Level < 40 then begin This_Npc.NpcDialog(This_Player, '你的等级不满40级,不可离线代练。' ); end else if This_Player.GetS(73,45) = GetDateNum(GetNow) then begin This_Npc.NpcDialog(This_Player, '你今天已经进行过离线代练了,请明天再来吧!' ); end else if This_Player.GetS(73,46) > 0 then begin temp:= (ConvertDateTimeToDB(GetNow) - This_Player.GetS(73,46)) div 60; if temp >= 60 then begin This_Npc.NpcDialog(This_Player, '你尚有未领取的经验,请先领取后再来代练!' ); end else This_Npc.NpcDialog(This_Player, '你上次的代练还未完成,不可再次进行代练。' ); end else begin This_Player.PsYBConsum(This_NPC,'ForgeDiaYB',20146,10,1); end; end; {procedure _ForgeDiamondStart_JD1; var temp:integer; begin if This_Player.Level < 40 then begin This_Npc.NpcDialog(This_Player, '你的等级不满40级,不可离线代练。' ); end else if This_Player.GetS(73,45) = GetDateNum(GetNow) then begin This_Npc.NpcDialog(This_Player, '你今天已经进行过离线代练了,请明天再来吧!' ); end else if This_Player.GetS(73,46) > 0 then begin temp:= (ConvertDateTimeToDB(GetNow) - This_Player.GetS(73,46)) div 60; if temp >= 60 then begin This_Npc.NpcDialog(This_Player, '你尚有未领取的经验,请先领取后再来代练!' ); end else This_Npc.NpcDialog(This_Player, '你上次的代练还未完成,不可再次进行代练。' ); end else begin if This_Player.GloryPoint >= 100 then begin if This_Player.DecGloryPoint(30078,100,1,false,'离线代练') then begin ForgeDiaYB(1,1); end; end else begin This_Npc.NpcDialog(This_Player, '你的金锭不足!\' ); end; end; end; } procedure _ForgeDiamondStart_YB2; var temp:integer; begin if This_Player.Level < 40 then begin This_Npc.NpcDialog(This_Player, '你的等级不满40级,不可离线代练。' ); end else if This_Player.GetS(73,45) = GetDateNum(GetNow) then begin This_Npc.NpcDialog(This_Player, '你今天已经进行过离线代练了,请明天再来吧!' ); end else if This_Player.GetS(73,46) > 0 then begin temp:= (ConvertDateTimeToDB(GetNow) - This_Player.GetS(73,46)) div 60; if temp >= 60 then begin This_Npc.NpcDialog(This_Player, '你尚有未领取的经验,请先领取后再来代练!' ); end else This_Npc.NpcDialog(This_Player, '你上次的代练还未完成,不可再次进行代练。' ); end else begin This_Player.PsYBConsum(This_NPC,'ForgeDiaYB',20147,30,1); end; end;