手游传奇私服发布站

 找回密码
 注册账号
查看: 50|回复: 0

冲级奖励脚本

[复制链接]

113

主题

122

帖子

908

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
908
发表于 2019-9-4 19:01:25 | 显示全部楼层 |阅读模式
{冲级奖励
内容:升到一定级别领取一定的装备,个别装备全服领取数目有限
部分项目每天都可以领取,相当于签到功能
}


PROGRAM Mir2;
var
sum1:Integer;  
sum2:Integer;
sum3:Integer;
sum4:Integer;
sum5:Integer;
sum6:Integer;
sum7:Integer;
sum8:Integer;
sum9:Integer;
sumG7 :Integer;
sumG8 :Integer;
sumG9 :Integer;
sumG70 :String;
sumG80 :String;
sumG90 :String;  
Procedure _doexit;
begin
   This_Npc.CloseDialog(This_Player);
end;

procedure domain;

begin

sumG70 :=inttostr(5 - sumG7);
sumG80 :=inttostr(5 - sumG8);
sumG90 :=inttostr(3 - sumG9);
  { if  GetG(51,7) < 0 then//删除其面大括号即可以用此初始化代码
     begin
         SetG(51,7,0) ;  
         setG(51,8,0) ;
         SetG(51,9,0) ;    //该代码为初始化全服剩余装备的代码,可放在此脚本里,GM只需运行一次就行,
                 //运行之后需要再次注释,防止无限初始化无限领取装备}
                 
                 
{//以下代码为玩家私有变量,可领装备初始化,可以把这段代码放在mud2.0\Mir200\Envir\PsMapQuest
//LogonQuest.pas:登陆执行脚本里面,这样就可以不用在此脚本里面不用进行
// if  (This_Player.GetV() > 1) or  (This_Player.GetV() < 0) then 的这样的判断语句

if This_Player.GetV(50,2) < 0 then
This_Player.setV(50,1,0) ;       
This_Player.setV(50,2,0) ;       
This_Player.setV(50,3,0) ;       
This_Player.setV(50,4,0) ;       
This_Player.setV(50,5,0) ;       
This_Player.setV(50,6,0) ;       
This_Player.setV(50,7,0) ;       
This_Player.setV(50,8,0) ;
This_Player.setV(50,9,0) ;
end;//       以上任务标号如果与其他脚本重复,则极易出错!!! 编辑最好记下自己所有已用任务代码  }



         This_NPC.NpcDialog(This_Player,
           '31级可以每日领取100灵符'+'  '+'<不限名额/c=red>'+'  '+'<领取/@lq1>\|'
      +'32级可以领取200灵符礼包'+'  '+'<不限名额/c=red>'+'  '+'<领取/@lq2>\|'
          +'33级可以领取本职业首饰'+'    '+'<不限名额/c=red>'+'  '+'<领取/@lq3>\|'
          +'34级可以领取本职业衣服'+'    '+'<不限名额/c=red>'+'  '+'<领取/@lq4>\|'
      +'35级可以在取高级技能书'+'    '+'<不限名额/c=red>'+'  '+'<领取/@lq5>\|'
          +'36级可以领取本职业武器'+'    '+'<不限名额/c=red>'+'  '+'<领取/@lq6>\|'
          +'37级可以领取隐身戒指一个'+' '+'<还剩/C=red>'+sumG70+'<个/C=red>'+'  '+'<领取/@lq7>\|'
          +'38级可以领取传送戒指一个'+' '+'<还剩/C=red>'+sumG80+'<个/C=red>'+'  '+'<领取/@lq8>\|'
          +'39级可以领取麻复护三选一'+' '+'<还剩/C=red>'+sumG90+'<个/C=red>'+'  '+'<领取/@lq9>\|'
      );

       end;
procedure _lq1;
var

today:Integer;
begin
today := GetDateNum(GetNow);

    if This_Player.GetV(52,1) <> today then //此段为每天都能领一次的设置   
    begin
       This_Player.SetV(52,1,today);
         This_Player.setV(50,1,0) ;
    end;
    sum1 := This_Player.GetV(50,1)  ;
    if   sum1 < 1 then
    begin
         if  This_Player.Level >= 31 then//这里设定每档的领取等级,为方便测试可以改1级
            begin
            if  This_Player.FreeBagNum >= 2 then  
            begin
               This_Player.Give('100灵符礼包' , 1);
               This_NPC.NpcDialog(This_Player,
             '装备已放入您的包裹!');
             This_Player.setV(50,1,sum1 + 1) ;

              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!\'
                        );

               end else
              This_NPC.NpcDialog(This_Player,
              '你的等级不够!\'
                         );      
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了,请明天再来!\'
                         );
end;

procedure _lq2;

begin
    if  (This_Player.GetV(50,2) > 1) or  (This_Player.GetV(50,2) < 0)  then //此段中的 (This_Player.GetV(50,2) > 1)可以不用,一般默认都是-1,不会大于
    begin
         This_Player.setV(50,2,0) ;
    end;
        sum2 := This_Player.GetV(50,2)  ;
    if   sum2 < 1 then
    begin

         if  This_Player.Level >= 32 then
         begin
            if  This_Player.FreeBagNum >= 2 then
            begin  
               This_Player.Give('200灵符礼包' , 1);
               This_NPC.NpcDialog(This_Player,
             '装备已放入您的包裹!');
             This_Player.setV(50,2,sum2 + 1) ;

              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
              end else
              This_NPC.NpcDialog(This_Player,
              '你的等级不够!');         
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
    end;


procedure _lq3;

begin
    if  (This_Player.GetV(50,3) > 1) or  (This_Player.GetV(50,3) < 0) then
    begin
         This_Player.setV(50,3,0) ;
    end;
        sum3 := This_Player.GetV(50,3)  ;
    if   sum3 < 1 then
    begin

         if  This_Player.Level >= 33 then
            begin
            if  This_Player.FreeBagNum >= 7 then  

                case This_Player.Job of                //按职业给予装备  可以自行修改
                0 : begin
                This_Player.Give('圣战手镯' , 2);
                                  This_Player.Give('圣战戒指' , 2);
                                  This_Player.Give('圣战头盔' , 1);
                This_Player.Give('圣战项链' , 1);
                This_NPC.NpcDialog(This_Player,
                '装备已放入您的包裹!');
                This_Player.setV(50,3,sum3 + 1) ;  
                    end;
                1  :  begin
                      This_Player.Give('法神手镯' , 2);
                                        This_Player.Give('法神戒指' , 2);
                                        This_Player.Give('法神头盔' , 1);
                                        This_Player.Give('法神项链' , 1);
                                        This_NPC.NpcDialog(This_Player,
                      '装备已放入您的包裹!');
                       This_Player.setV(50,3,sum3 + 1) ;  
                                        end;
                 2 :  begin
                   This_Player.Give('天尊手镯' , 2);
                               This_Player.Give('天尊戒指' , 2);
                                     This_Player.Give('天尊头盔' , 1);
                               This_Player.Give('天尊项链' , 1);
                    This_NPC.NpcDialog(This_Player,
                   '装备已放入您的包裹!');
                   This_Player.setV(50,3,sum3 + 1) ;
                   end;
              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
              end else
              This_NPC.NpcDialog(This_Player,
              '你的等级不够!');         
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
    end;


procedure _lq4;

begin
    if  (This_Player.GetV(50,4) > 1) or  (This_Player.GetV(50,4) < 0) then
    begin
         This_Player.setV(50,4,0) ;
    end;
        sum4 := This_Player.GetV(50,4)  ;
    if   sum4 < 1 then
    begin
         if  This_Player.Level >= 34 then   
            begin
            if  This_Player.FreeBagNum >= 2 then    //按职业给装备
                 case   This_Player.Job   of
                0 : begin
                    if   This_Player.Gender = 0 then  //按性别给装备
                   This_Player.Give('天魔神甲',1)
                   else
                   This_Player.Give('圣战宝甲',1);
                   This_NPC.NpcDialog(This_Player,
                '装备已放入您的包裹!');
                This_Player.setV(50,4,sum4 + 1) ;  
                    end;
                1  :  begin
                      if   This_Player.Gender = 0 then
                       This_Player.Give('法神披风',1)
                   else
                   This_Player.Give('霓裳羽衣',1);
                                        This_NPC.NpcDialog(This_Player,
                      '装备已放入您的包裹!');
                       This_Player.setV(50,4,sum4 + 1) ;  
                                        end;
                 2 :  
                   begin
                      if   This_Player.Gender = 0 then
                       This_Player.Give('天尊道袍',1)
                   else
                   This_Player.Give('天师长袍',1);
                                        This_NPC.NpcDialog(This_Player,
                      '装备已放入您的包裹!');
                       This_Player.setV(50,4,sum4 + 1) ;  
                   end;
              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
              end else
              This_NPC.NpcDialog(This_Player,
              '你的等级不够!');      
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
    end;
procedure _lq5;

begin
    if  (This_Player.GetV(50,5) > 1) or  (This_Player.GetV(50,5) < 0) then
    begin
         This_Player.setV(50,5,0) ;
    end;
        sum5 := This_Player.GetV(50,5)  ;
    if   sum5 < 1 then
    begin

         if  This_Player.Level >= 35 then
            begin
            if  This_Player.FreeBagNum >= 2 then  //按职业给技能
               case   This_Player.Job   of
                0 : begin

                   This_Player.Give('狮子吼',1);
                   This_NPC.NpcDialog(This_Player,
                '技能书已经已放入您的包裹!');
                This_Player.setV(50,5,sum5 + 1) ;  
                    end;
                1  :  begin

                   This_Player.Give('流星火雨',1);
                                        This_NPC.NpcDialog(This_Player,
                      '技能书已放入您的包裹!');
                       This_Player.setV(50,5,sum5 + 1) ;  
                                        end;
                 2 :  
                   begin

                   This_Player.Give('飓风破',1);
                                        This_NPC.NpcDialog(This_Player,
                      '技能书已放入您的包裹!');
                       This_Player.setV(50,5,sum5 + 1) ;  
                   end;
              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
              end else
              This_NPC.NpcDialog(This_Player,
              '你的等级不够!');      
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
end;  

procedure _lq6;

begin
    if  (This_Player.GetV(50,6) > 1) or  (This_Player.GetV(50,6) < 0) then
    begin
         This_Player.setV(50,6,0) ;
    end;
        sum6 := This_Player.GetV(50,6)  ;
    if   sum6 < 1 then
    begin

         if  This_Player.Level >= 36 then
            begin
            if  This_Player.FreeBagNum >= 2 then  //按职业给装备
             case   This_Player.Job   of
                0 : begin

                   This_Player.Give('屠龙',1);
                   This_NPC.NpcDialog(This_Player,
                '武器已经已放入您的包裹!');
                This_Player.setV(50,6,sum6 + 1) ;  
                    end;
                1  :  begin

                   This_Player.Give('龙牙',1);
                                        This_NPC.NpcDialog(This_Player,
                      '武器已放入您的包裹!');
                       This_Player.setV(50,6,sum6 + 1) ;  
                                        end;
                 2 :  
                   begin

                   This_Player.Give('逍遥扇',1);
                                        This_NPC.NpcDialog(This_Player,
                      '武器已放入您的包裹!');
                       This_Player.setV(50,6,sum6 + 1) ;  
                   end;
              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');  
              end else
              This_NPC.NpcDialog(This_Player,
              '你的等级不够!');      
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
end;

procedure _lq7;

begin
    if  (This_Player.GetV(50,7) > 1) or  (This_Player.GetV(50,7) < 0)    then
    begin
         This_Player.setV(50,7,0);   
    end;
    if  (GetG(51,7) > 5)  or (GetG(51,7) < 0) then  // (GetG(51,7) > 5) 此判断可以不用 ,公有变量一般很少默认大于5,以防一万故加上
    begin
         SetG(51,7,0);   
    end;
       sum7 := This_Player.GetV(50,7);
       sumG7 :=  GetG(51,7);

    if  sumG7 < 5 then
         begin
         if   sum7 < 1 then
              begin
                if  This_Player.Level >= 1 then
                    begin
                      if  This_Player.FreeBagNum >= 2 then
                      begin
                      This_Player.Give('隐身戒指' , 1);
                      This_NPC.NpcDialog(This_Player,
                      '装备已放入您的包裹!');
                      This_Player.setV(50,7,sum7 + 1) ;
                       SetG(51,7,sumG7 + 1);
              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
                end else  
               This_NPC.NpcDialog(This_Player,
              '你的等级不够!');      
               end else               
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
               end else
               This_NPC.NpcDialog(This_Player,
               '服务器戒指已被领完!');
    end;

procedure _lq8;

begin
    if  (This_Player.GetV(50,8) > 1) or  (This_Player.GetV(50,8) < 0)  then
    begin
         This_Player.setV(50,8,0) ;   
    end;
     if  (GetG(51,8) > 5)  or (GetG(51,8) < 0)  then //) or (GetG(51,8) <> 4) or  (GetG(51,8) <> 3) or (GetG(51,8) <> 2) or (GetG(51,8) <> 1)
         begin
         SetG(51,8,0) ;   
    end;
       sum8 := This_Player.GetV(50,8);
       sumG8 :=  GetG(51,8)  ;
    if  sumG8 < 5 then
         begin
         if   sum8 < 1 then
              begin
                if  This_Player.Level >= 1 then
                    begin
                      if  This_Player.FreeBagNum >= 2 then
                      begin
               This_Player.Give('传送戒指' , 1);
               This_NPC.NpcDialog(This_Player,
             '装备已放入您的包裹!');
             This_Player.setV(50,8,sum8 + 1) ;
                SetG(51,8, sumG8 + 1);

              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
               end else  
               This_NPC.NpcDialog(This_Player,
              '你的等级不够!');      
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
               end else
               This_NPC.NpcDialog(This_Player,
               '服务器戒指已被领完!');
    end;
procedure _lq9;  //三选1  

begin
    if   (This_Player.GetV(50,9) > 1) or  (This_Player.GetV(50,9) < 0)  then
    begin
         This_Player.setV(50,9,0) ;   
    end;
    if (GetG(51,9) > 5)  or (GetG(51,9) < 0)  then
    begin    //) or (GetG(51,9) <> 2) or  (GetG(51,9) <> 1)  
         SetG(51,9,0) ;   
    end;
       sum9 := This_Player.GetV(50,9);
       sumG9 :=  GetG(51,9)  ;
    if  sumG9 < 3 then
         begin
         if   sum9 < 1 then
              begin
                if  This_Player.Level >= 1 then
                    begin
                      if  This_Player.FreeBagNum >= 2 then
                      begin
               This_NPC.NpcDialog(This_Player, '你要选择的戒指是\'
+ '{cmd}<麻痹/@mb>     ^<复活/@fh>   ^ <护身/@hs>   ^<返回/@main>');
              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');
               end else  
               This_NPC.NpcDialog(This_Player,
              '你的等级不够!');      
               end else
               This_NPC.NpcDialog(This_Player,
               '你已经领过一次了!');
               end else
               This_NPC.NpcDialog(This_Player,
               '服务器戒指已被领完!');
    end;

procedure _mb;
begin

   if  This_Player.FreeBagNum >= 2 then
                      begin
               This_Player.Give('麻痹戒指' , 1);
               This_NPC.NpcDialog(This_Player,
             '装备已放入您的包裹!');
             This_Player.setV(50,9,sum9 + 1) ;
                SetG(51,9, sumG9 + 1);

              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');

    end;
procedure _fh;
begin

   if  This_Player.FreeBagNum >= 2 then
                      begin
               This_Player.Give('复活戒指' , 1);
               This_NPC.NpcDialog(This_Player,
             '装备已放入您的包裹!');
             This_Player.setV(50,9,sum9 + 1) ;
                SetG(51,9, sumG9 + 1);

              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');

    end;
procedure _hs;
  begin

   if  This_Player.FreeBagNum >= 2 then
                      begin
               This_Player.Give('护身戒指' , 1);
               This_NPC.NpcDialog(This_Player,
             '装备已放入您的包裹!');
             This_Player.setV(50,9,sum9 + 1) ;
                SetG(51,9, sumG9 + 1);

              end else
              This_NPC.NpcDialog(This_Player,
              '没有足够的包裹空间!');

    end;
Begin
  domain;

end.

复制以上内容到你的手游传奇私服脚本里面即可

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

手游传奇私服发布站

GMT+8, 2025-4-11 09:17 , Processed in 0.054746 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表