用于战神引擎手游版本的离线代练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;








