离线代练Npc脚本(用元宝开启后得经验)

用于战神引擎手游版本的离线代练Npc脚本。玩家使用元宝开启以后,在时间达到了可以领取对应的经验,NPC上默认支持三种离线代练功能,玩需要的元宝也很少,脚本是明文版的,可以任意修改里面的元宝和经验值,默认是1天能开启一次。

离线代练Npc脚本(用元宝开启后得经验)

离线代练Npc脚本(用元宝开启后得经验)

部分脚本

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;
分享到:
赞(0)