72家族网-手游源码论坛

查看:【830】 回复:【1】 发表于 2020-5-20 11:20 存档时间:2022-06-30
本主题由 族长 于 2021-11-6 02:20 反删除
头条
5天前
头条
13天前
头条
24天前
头条
2022-05-30
头条
2022-05-30
头条
2022-05-30
头条
2022-05-19
头条
2022-05-02
头条
2022-04-22
头条
2022-04-18
头条
2022-04-13
头条
2022-04-02
头条
2022-04-01
头条
2022-03-28
头条
2022-03-24
头条
2022-03-23
头条
2022-03-23
头条
2022-03-23
头条
2022-03-23
头条
2022-03-23

战神引擎手游源码

战神引擎冲级奖励脚本-已修复BUG

战神引擎冲级奖励脚本-已修复BUG
  1. {冲级奖励
  2. 作者:开心就好
  3. 内容:升到一定级别领取一定的装备,个别装备全服领取数目有限
  4. 部分项目每天都可以领取,相当于签到功能
  5. }


  6. PROGRAM Mir2;
  7. var
  8. sum1:Integer;  
  9. sum2:Integer;
  10. sum3:Integer;
  11. sum4:Integer;
  12. sum5:Integer;
  13. sum6:Integer;
  14. sum7:Integer;
  15. sum8:Integer;
  16. sum9:Integer;
  17. sumG7 :Integer;
  18. sumG8 :Integer;
  19. sumG9 :Integer;
  20. sumG70 :String;
  21. sumG80 :String;
  22. sumG90 :String;  
  23. Procedure _doexit;
  24. begin
  25.    This_Npc.CloseDialog(This_Player);
  26. end;

  27. procedure domain;

  28. begin

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

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



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

  65.        end;
  66. procedure _lq1;
  67. var

  68. today:Integer;
  69. begin
  70. today := GetDateNum(GetNow);

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

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

  91.                end else
  92.               This_NPC.NpcDialog(This_Player,
  93.               '你的等级不够!\'
  94.                          );      
  95.                end else
  96.                This_NPC.NpcDialog(This_Player,
  97.                '你已经领过一次了,请明天再来!\'
  98.                          );
  99. end;

  100. procedure _lq2;

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

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

  117.               end else
  118.               This_NPC.NpcDialog(This_Player,
  119.               '没有足够的包裹空间!');
  120.               end else
  121.               This_NPC.NpcDialog(This_Player,
  122.               '你的等级不够!');         
  123.                end else
  124.                This_NPC.NpcDialog(This_Player,
  125.                '你已经领过一次了!');
  126.     end;


  127. procedure _lq3;

  128. begin
  129.     if  (This_Player.GetV(50,3) > 1) or  (This_Player.GetV(50,3) < 0) then
  130.     begin
  131.          This_Player.setV(50,3,0) ;
  132.     end;
  133.         sum3 := This_Player.GetV(50,3)  ;
  134.     if   sum3 < 1 then
  135.     begin

  136.          if  This_Player.Level >= 33 then
  137.             begin
  138.             if  This_Player.FreeBagNum >= 7 then  

  139.                 case This_Player.Job of                //按职业给予装备  可以自行修改
  140.                 0 : begin
  141.                 This_Player.Give('圣战手镯' , 2);
  142.                                   This_Player.Give('圣战戒指' , 2);
  143.                                   This_Player.Give('圣战头盔' , 1);
  144.                 This_Player.Give('圣战项链' , 1);
  145.                 This_NPC.NpcDialog(This_Player,
  146.                 '装备已放入您的包裹!');
  147.                 This_Player.setV(50,3,sum3 + 1) ;  
  148.                     end;
  149.                 1  :  begin
  150.                       This_Player.Give('法神手镯' , 2);
  151.                                         This_Player.Give('法神戒指' , 2);
  152.                                         This_Player.Give('法神头盔' , 1);
  153.                                         This_Player.Give('法神项链' , 1);
  154.                                         This_NPC.NpcDialog(This_Player,
  155.                       '装备已放入您的包裹!');
  156.                        This_Player.setV(50,3,sum3 + 1) ;  
  157.                                         end;
  158.                  2 :  begin
  159.                    This_Player.Give('天尊手镯' , 2);
  160.                                This_Player.Give('天尊戒指' , 2);
  161.                                      This_Player.Give('天尊头盔' , 1);
  162.                                This_Player.Give('天尊项链' , 1);
  163.                     This_NPC.NpcDialog(This_Player,
  164.                    '装备已放入您的包裹!');
  165.                    This_Player.setV(50,3,sum3 + 1) ;
  166.                    end;
  167.               end else
  168.               This_NPC.NpcDialog(This_Player,
  169.               '没有足够的包裹空间!');
  170.               end else
  171.               This_NPC.NpcDialog(This_Player,
  172.               '你的等级不够!');         
  173.                end else
  174.                This_NPC.NpcDialog(This_Player,
  175.                '你已经领过一次了!');
  176.     end;


  177. procedure _lq4;

  178. begin
  179.     if  (This_Player.GetV(50,4) > 1) or  (This_Player.GetV(50,4) < 0) then
  180.     begin
  181.          This_Player.setV(50,4,0) ;
  182.     end;
  183.         sum4 := This_Player.GetV(50,4)  ;
  184.     if   sum4 < 1 then
  185.     begin
  186.          if  This_Player.Level >= 34 then   
  187.             begin
  188.             if  This_Player.FreeBagNum >= 2 then    //按职业给装备
  189.                  case   This_Player.Job   of
  190.                 0 : begin
  191.                     if   This_Player.Gender = 0 then  //按性别给装备
  192.                    This_Player.Give('天魔神甲',1)
  193.                    else
  194.                    This_Player.Give('圣战宝甲',1);
  195.                    This_NPC.NpcDialog(This_Player,
  196.                 '装备已放入您的包裹!');
  197.                 This_Player.setV(50,4,sum4 + 1) ;  
  198.                     end;
  199.                 1  :  begin
  200.                       if   This_Player.Gender = 0 then
  201.                        This_Player.Give('法神披风',1)
  202.                    else
  203.                    This_Player.Give('霓裳羽衣',1);
  204.                                         This_NPC.NpcDialog(This_Player,
  205.                       '装备已放入您的包裹!');
  206.                        This_Player.setV(50,4,sum4 + 1) ;  
  207.                                         end;
  208.                  2 :  
  209.                    begin
  210.                       if   This_Player.Gender = 0 then
  211.                        This_Player.Give('天尊道袍',1)
  212.                    else
  213.                    This_Player.Give('天师长袍',1);
  214.                                         This_NPC.NpcDialog(This_Player,
  215.                       '装备已放入您的包裹!');
  216.                        This_Player.setV(50,4,sum4 + 1) ;  
  217.                    end;
  218.               end else
  219.               This_NPC.NpcDialog(This_Player,
  220.               '没有足够的包裹空间!');
  221.               end else
  222.               This_NPC.NpcDialog(This_Player,
  223.               '你的等级不够!');      
  224.                end else
  225.                This_NPC.NpcDialog(This_Player,
  226.                '你已经领过一次了!');
  227.     end;
  228. procedure _lq5;

  229. begin
  230.     if  (This_Player.GetV(50,5) > 1) or  (This_Player.GetV(50,5) < 0) then
  231.     begin
  232.          This_Player.setV(50,5,0) ;
  233.     end;
  234.         sum5 := This_Player.GetV(50,5)  ;
  235.     if   sum5 < 1 then
  236.     begin

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

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

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

  255.                    This_Player.Give('飓风破',1);
  256.                                         This_NPC.NpcDialog(This_Player,
  257.                       '技能书已放入您的包裹!');
  258.                        This_Player.setV(50,5,sum5 + 1) ;  
  259.                    end;
  260.               end else
  261.               This_NPC.NpcDialog(This_Player,
  262.               '没有足够的包裹空间!');
  263.               end else
  264.               This_NPC.NpcDialog(This_Player,
  265.               '你的等级不够!');      
  266.                end else
  267.                This_NPC.NpcDialog(This_Player,
  268.                '你已经领过一次了!');
  269. end;  

  270. procedure _lq6;

  271. begin
  272.     if  (This_Player.GetV(50,6) > 1) or  (This_Player.GetV(50,6) < 0) then
  273.     begin
  274.          This_Player.setV(50,6,0) ;
  275.     end;
  276.         sum6 := This_Player.GetV(50,6)  ;
  277.     if   sum6 < 1 then
  278.     begin

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

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

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

  297.                    This_Player.Give('逍遥扇',1);
  298.                                         This_NPC.NpcDialog(This_Player,
  299.                       '武器已放入您的包裹!');
  300.                        This_Player.setV(50,6,sum6 + 1) ;  
  301.                    end;
  302.               end else
  303.               This_NPC.NpcDialog(This_Player,
  304.               '没有足够的包裹空间!');  
  305.               end else
  306.               This_NPC.NpcDialog(This_Player,
  307.               '你的等级不够!');      
  308.                end else
  309.                This_NPC.NpcDialog(This_Player,
  310.                '你已经领过一次了!');
  311. end;

  312. procedure _lq7;

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

  324.     if  sumG7 < 5 then
  325.          begin
  326.          if   sum7 < 1 then
  327.               begin
  328.                 if  This_Player.Level >= 1 then
  329.                     begin
  330.                       if  This_Player.FreeBagNum >= 2 then
  331.                       begin
  332.                       This_Player.Give('隐身戒指' , 1);
  333.                       This_NPC.NpcDialog(This_Player,
  334.                       '装备已放入您的包裹!');
  335.                       This_Player.setV(50,7,sum7 + 1) ;
  336.                        SetG(51,7,sumG7 + 1);
  337.               end else
  338.               This_NPC.NpcDialog(This_Player,
  339.               '没有足够的包裹空间!');
  340.                 end else  
  341.                This_NPC.NpcDialog(This_Player,
  342.               '你的等级不够!');      
  343.                end else               
  344.                This_NPC.NpcDialog(This_Player,
  345.                '你已经领过一次了!');
  346.                end else
  347.                This_NPC.NpcDialog(This_Player,
  348.                '服务器戒指已被领完!');
  349.     end;

  350. procedure _lq8;

  351. begin
  352.     if  (This_Player.GetV(50,8) > 1) or  (This_Player.GetV(50,8) < 0)  then
  353.     begin
  354.          This_Player.setV(50,8,0) ;   
  355.     end;
  356.      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)
  357.          begin
  358.          SetG(51,8,0) ;   
  359.     end;
  360.        sum8 := This_Player.GetV(50,8);
  361.        sumG8 :=  GetG(51,8)  ;
  362.     if  sumG8 < 5 then
  363.          begin
  364.          if   sum8 < 1 then
  365.               begin
  366.                 if  This_Player.Level >= 1 then
  367.                     begin
  368.                       if  This_Player.FreeBagNum >= 2 then
  369.                       begin
  370.                This_Player.Give('传送戒指' , 1);
  371.                This_NPC.NpcDialog(This_Player,
  372.              '装备已放入您的包裹!');
  373.              This_Player.setV(50,8,sum8 + 1) ;
  374.                 SetG(51,8, sumG8 + 1);

  375.               end else
  376.               This_NPC.NpcDialog(This_Player,
  377.               '没有足够的包裹空间!');
  378.                end else  
  379.                This_NPC.NpcDialog(This_Player,
  380.               '你的等级不够!');      
  381.                end else
  382.                This_NPC.NpcDialog(This_Player,
  383.                '你已经领过一次了!');
  384.                end else
  385.                This_NPC.NpcDialog(This_Player,
  386.                '服务器戒指已被领完!');
  387.     end;
  388. procedure _lq9;  //三选1  

  389. begin
  390.     if   (This_Player.GetV(50,9) > 1) or  (This_Player.GetV(50,9) < 0)  then
  391.     begin
  392.          This_Player.setV(50,9,0) ;   
  393.     end;
  394.     if (GetG(51,9) > 5)  or (GetG(51,9) < 0)  then
  395.     begin    //) or (GetG(51,9) <> 2) or  (GetG(51,9) <> 1)  
  396.          SetG(51,9,0) ;   
  397.     end;
  398.        sum9 := This_Player.GetV(50,9);
  399.        sumG9 :=  GetG(51,9)  ;
  400.     if  sumG9 < 3 then
  401.          begin
  402.          if   sum9 < 1 then
  403.               begin
  404.                 if  This_Player.Level >= 1 then
  405.                     begin
  406.                       if  This_Player.FreeBagNum >= 2 then
  407.                       begin
  408.                This_NPC.NpcDialog(This_Player, '你要选择的戒指是\'
  409. + '{cmd}<麻痹/@mb>     ^<复活/@fh>   ^ <护身/@hs>   ^<返回/@main>');
  410.               end else
  411.               This_NPC.NpcDialog(This_Player,
  412.               '没有足够的包裹空间!');
  413.                end else  
  414.                This_NPC.NpcDialog(This_Player,
  415.               '你的等级不够!');      
  416.                end else
  417.                This_NPC.NpcDialog(This_Player,
  418.                '你已经领过一次了!');
  419.                end else
  420.                This_NPC.NpcDialog(This_Player,
  421.                '服务器戒指已被领完!');
  422.     end;

  423. procedure _mb;
  424. begin

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

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

  435.     end;
  436. procedure _fh;
  437. begin

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

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

  448.     end;
  449. procedure _hs;
  450.   begin

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

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

  461.     end;
  462. Begin
  463.   domain;

  464. end.
复制代码


使用道具

关闭

72家族网 - 游戏开发者学习平台上一条 /1 下一条

本站资源来自互联网搜集,仅供本地电脑单机学习和交流,请勿用于商业用途,请自觉在24小时内删除。
本站仅提供信息存储空间服务,软件的复制品持有人不知道也没有合理的理由应当知道展示的作品侵权!
本站所有资源仅限用于研究产品软件内含、设计思想和原理为目的用途,禁止任何商用行为,违者后果自负!
若有侵权与文章中不妥之处,请联系邮箱:zhende5555@qq.com(手机随时接收邮件)并出示相关证明以便删除。敬请谅解!

2011-2022 私服论坛 www.sifubbs.com 手游源码技术讨论平台 Powered by Discuz!