用于战神引擎的离线升级Npc脚本,鼓励玩家长期在线,脚本回会根据玩家的在线时间,给与额外的经验奖励,脚本牵扯到了TaoZhuang文件,需要单独提取和添加,并非单文件的脚本。牵扯到的文件,已经打包到一起了,你们自己下载来看看,需要的话。
部分脚本
{ *******************************************************************} Program Mir2; {$I TaoZhuang.pas} var leiji: integer; Procedure _doexit; begin This_NPC.CloseDialog(This_Player); end; procedure _domain; begin This_NPC.NpcDialog(This_Player, '所有离线时间都可以在我这里兑换成经验哦!\ \' +'|您已累计离线:<'+inttostr(leiji)+'分钟/SCOLOR=254>\ \' +'|{cmd}<查看并领取经验/@chakan>\ \' ); end; procedure _Guize; begin This_NPC.NpcDialog(This_Player, '<普通玩家/SCOLOR=250>每累计1分钟可<获得5000经验!/SCOLOR=254>\ \' +'|<月卡玩家/SCOLOR=250>每累计1分钟可<获得10000经验!/SCOLOR=254>\ \' +'|<至尊玩家/SCOLOR=250>每累计1分钟可<获得30000经验!/SCOLOR=254>\ \' +'|{cmd}<返回/@domain>\ \' ); end; procedure _chakan; begin if leiji >=5 then begin This_NPC.NpcDialog(This_Player, '<免费领取/SCOLOR=250>方式可获得<'+inttostr(leiji*3000/10000)+'万经验!/SCOLOR=254>\ \' +'|<金币领取/SCOLOR=250>方式可获得<'+inttostr(leiji)+'万经验!/SCOLOR=254>\ \' +'|<元宝领取/SCOLOR=250>方式可获得<'+inttostr(leiji*3)+'万经验!/SCOLOR=254>\ \' +'|{cmd}<免费领取/@mflingqu>{cmd}<金币领取/@jblingqu>{cmd}<元宝领取/@yblingqu>\ \' ); end else begin This_NPC.NpcDialog(This_Player,'您的离线时间少于5分钟无法领取经验!\ \'); end; end; procedure _mflingqu; begin This_Player.Give('经验',leiji*3000); This_NPC.NpcDialog(This_Player,'恭喜您使用<免费领取/SCOLOR=250>方式身份获得了离线经验|<'+inttostr(leiji*3000/10000)+'万经验!/SCOLOR=254>\ \'); leiji := 0;This_Player.SetV(24,5,0); end; /////////////////////////////////////金币领取 procedure _jbputong; begin if This_Player.GoldNum >= leiji*500 then begin This_Player.Give('经验',leiji*10000); This_Player.DecGold(leiji*500); This_NPC.NpcDialog(This_Player,'恭喜您使用<普通金币领取/SCOLOR=250>方式获得了离线经验|<'+inttostr(leiji)+'万经验!/SCOLOR=254>\ \'); leiji := 0;This_Player.SetV(24,5,0); end else begin This_NPC.NpcDialog(This_Player, '金币不足,无法领取\ \'); end; end; procedure _jbshuang; begin if This_Player.GoldNum >= leiji*1000 then begin This_Player.Give('经验',leiji*20000); This_Player.DecGold(leiji*1000); This_NPC.NpcDialog(This_Player,'恭喜您使用<双倍金币领取/SCOLOR=250>方式获得了离线经验|<'+inttostr(leiji*2)+'万经验!/SCOLOR=254>\ \'); end else begin This_NPC.NpcDialog(This_Player, '金币不足,无法领取!\ \'); end; end else begin This_NPC.NpcDialog(This_Player, '不是月卡会员,无法使用此功能!\ \'); end; end; procedure _jblingqu; begin This_NPC.NpcDialog(This_Player, '<月卡玩家/c=red>可选择双倍领取哦!|\ \' +'|<普通领取/SCOLOR=250>方式可获得<'+inttostr(leiji)+'万经验!/SCOLOR=254>|需花费<'+inttostr(leiji*500/10000)+'万金币/SCOLOR=251>\ \' +'|-------------------------------------------------\ \' +'|<双倍领取/SCOLOR=250>方式可获得<'+inttostr(leiji*2)+'万经验!/SCOLOR=254>|需花费<'+inttostr(leiji*1000/10000)+'万金币/SCOLOR=251>\ \' +'|{cmd}<普通领取/@jbputong>{cmd}<双倍金币领取/@jbshuang>\ \' ); end; ////////////////////////////元宝领取 procedure _ybputong; begin if This_Player.YBNum >= leiji then begin This_Player.Give('经验',leiji*30000); This_Player.ScriptRequestSubYBNum(leiji); This_NPC.NpcDialog(This_Player,'恭喜您使用<普通元宝领取/SCOLOR=250>方式获得了离线经验|<'+inttostr(leiji*3)+'万经验!/SCOLOR=254>\ \'); end else begin This_NPC.NpcDialog(This_Player, '元宝不足,无法领取\ \'); end; end; procedure _ybshuang; begin if This_Player.GetS(12,9) = 888 then begin if This_Player.YBNum >= leiji*2 then begin This_Player.Give('经验',leiji*60000); This_Player.ScriptRequestSubYBNum(leiji*2); This_NPC.NpcDialog(This_Player,'恭喜您使用<双倍元宝领取/SCOLOR=250>方式获得了离线经验|<'+inttostr(leiji*6)+'万经验!/SCOLOR=254>\ \'); leiji := 0;This_Player.SetV(24,5,0); end else begin This_NPC.NpcDialog(This_Player, '元宝不足,无法领取!\ \'); end; end else begin '不是至尊会员,无法使用此功能!\ \'); end; end; procedure _yblingqu; begin if This_Player.GetV(55,6) = 1 then begin This_NPC.NpcDialog(This_Player, '<至尊玩家/c=red>可选择双倍领取哦!|\ \' +'|<普通领取/SCOLOR=250>方式可获得<'+inttostr(leiji*3)+'万经验!/SCOLOR=254>|需花费<'+inttostr(leiji)+'元宝/SCOLOR=251>\ \' +'|-------------------------------------------------\ \' +'|<双倍领取/SCOLOR=250>方式可获得<'+inttostr(leiji*6)+'万经验!/SCOLOR=254>|需花费<'+inttostr(leiji*2)+'元宝/SCOLOR=251>\ \' +'|{cmd}<普通领取/@ybputong>{cmd}<双倍领取/@ybshuang>\ \' ); end else begin This_NPC.NpcDialog(This_Player, '不是月卡会员,无法使用此功能!\ \'); end; end; /////////////////////////// procedure _lingqu; begin begin This_Player.Give('经验',leiji*3*10000); This_NPC.NpcDialog(This_Player,'恭喜您以<至尊玩家/SCOLOR=250>身份获得了<'+inttostr(leiji*3)+'万经验!/SCOLOR=254>\ \'); leiji := 0;This_Player.SetV(24,5,0); end else if This_Player.GetV(55,6) = 1 then begin This_Player.Give('经验',leiji*10000); This_NPC.NpcDialog(This_Player,'恭喜您以<月卡玩家/SCOLOR=250>身份获得了<'+inttostr(leiji)+'万经验!/SCOLOR=254>\ \'); end else begin This_Player.Give('经验',leiji*5000); This_NPC.NpcDialog(This_Player,'恭喜您以<普通玩家/SCOLOR=250>身份获得了<'+inttostr(leiji*5000/10000)+'万经验!/SCOLOR=254>\ \'); leiji := 0;This_Player.SetV(24,5,0); end; end; begin TZJH_NPC; if This_Player.GetV(24,4) = -1 then begin This_NPC.NpcDialog(This_Player, '你好像还没下过线,佩服佩服!'+inttostr(This_Player.GetV(24,4))+'\ \' ); end else begin if This_Player.GetV(24,4) = 1 then begin leiji := This_Player.GetV(24,5)/60; _domain; end else begin This_NPC.NpcDialog(This_Player, '统计离线时间中,请稍等!\ \' ); end; end; end.