千年技术吧+ 关注 关注:3 帖子:257

  

新手村擂台脚本

  • 枫之精英

    释放到同名文件夹下覆盖原有文件。

    1.Script 里面是任务脚本,把对应NPC的代码复制覆盖掉。

    2.Item 里面是任务发放奖品的物品资料,把我发的加进去。

    (由11月23号发布的最新服务端修改)

    -----------------------------------------

    内容介绍:

    新手村比武获得奖励:

    同使用何种武器的NPC比武,将其打败就能获得同类的新手训练用武器(速度20,恢复20,准确20,破坏0


    最后一个NPC老侠客,打败他会获得新手剑之外,他还会公告天下你获得了 侠客弓服 一件!(个人比较


    喜欢黑龙,所以是黑龙的加强版!)


    [replyview]


    -------------------------------------


    unit 一级梅花夫人;


    interface


    function  GetToken (aStr, aToken, aSep : String) : String;

    function  CompareStr (aStr1, aStr2 : String) : Boolean;

    function  callfunc (aText: string): string;

    procedure print (aText: string);

    function  Random (aScope: integer): integer;

    function  Length (aText: string): integer;

    procedure Inc (aInt: integer);

    procedure Dec (aInt: integer);

    function  StrToInt (astr: string): integer;

    function  IntToStr (aInt: integer): string;

    procedure exit;


    procedure OnCreate (aStr : String);

    procedure OnDie (aStr : String);

    procedure OnChangeState (aStr : String);

    procedure OnGetResult (aStr : String);


    implementation


    procedure OnGetResult (aStr : String);

    var

       Str, Name : String;

       iCount : Integer;

    begin

       if aStr = 'start' then begin

          Str := callfunc ('getsenderserverid');

          if Str <> '51' then exit;


          Str := callfunc ('getsenderrace');

          if Str <> '1' then exit;


          Str := callfunc ('checksenderpowerwearitem');

          iCount := StrToInt (Str);

          if iCount > 0 then begin

             print ('say 先将带技能值装备脱掉!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 0');

          if Str = 'true' then begin

             print ('say 选错武功啦!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 1');

          if Str = 'true' then begin

             print ('say 选错武功啦!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;


          print ('directmovespace 一级梅花夫人 npc 51 20 18 0');


          print ('commandicebyname 一级梅花夫人 npc 1000');

          print ('setallowhitbytick true 1000');


          Name := callfunc ('getsendername');

          Str := 'commandicebyname ' + Name;

          Str := Str + ' user 1000';

          print (Str);


          print ('senderrefill');


          print ('say 别害怕 50');

          print ('say 我会收下留情的... 400');

          exit;

       end;

    end;


    procedure OnCreate (aStr : String);

    var

       Str : String;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then begin

          exit;

       end;

       

       Str := 'showwindow .\help\一级梅花夫人.txt 1';

       print (Str);

       exit;

    end;


    procedure OnDie (aStr : String);

    var

       Str, Name : String;

       FirstQuest : Integer;   

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       Str := callfunc ('getsenderfirstquest');

       FirstQuest := StrToInt (Str);


       if FirstQuest < 3 then begin

          Str := callfunc ('checkenoughspace');

          if Str = 'false' then begin

             print ('say 物品栏已满...');

             exit;

          end;

       

          print ('changesenderfirstquest 3');

          print ('putsendermagicitem 新手训练长矛 @一级梅花夫人 4');

       end;


       print ('say 我可只用了3层功力哟 100');


       print ('mapregen 52');


       Name := callfunc ('getsendername');   

       Str := 'movespace ' + Name;

       Str := Str + ' user 52 17 18 500';

       print (Str);

       exit;

    end;


    procedure OnChangeState (aStr : String);

    var

       Str, Name : String;

    begin

       if aStr <> 'die' then exit;


       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       print ('say 别无他法 50');

       print ('say 是不是修炼方法不妥呀? 400');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 49 106 55 600';

       print (Str);

    end;


    end.

    -------------------------------------------

    unit 一级捕盗大将;


    interface


    function  GetToken (aStr, aToken, aSep : String) : String;

    function  CompareStr (aStr1, aStr2 : String) : Boolean;

    function  callfunc (aText: string): string;

    procedure print (aText: string);

    function  Random (aScope: integer): integer;

    function  Length (aText: string): integer;

    procedure Inc (aInt: integer);

    procedure Dec (aInt: integer);

    function  StrToInt (astr: string): integer;

    function  IntToStr (aInt: integer): string;

    procedure exit;


    procedure OnCreate (aStr : String);

    procedure OnDie (aStr : String);

    procedure OnChangeState (aStr : String);

    procedure OnGetResult (aStr : String);


    implementation


    procedure OnGetResult (aStr : String);

    var

       Str, Name : String;

       iCount : Integer;   

    begin

       if aStr = 'start' then begin

          Str := callfunc ('getsenderserverid');

          if Str <> '50' then exit;


          Str := callfunc ('getsenderrace');

          if Str <> '1' then exit;


          Str := callfunc ('checksenderpowerwearitem');

          iCount := StrToInt (Str);

          if iCount > 0 then begin

             print ('say 请先脱掉带技能值的装备!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 0');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 1');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;


          print ('directmovespace 一级捕盗大将 npc 50 20 18 0');


          print ('commandicebyname 一级捕盗大将 npc 1000');

          print ('setallowhitbytick true 1000');


          Name := callfunc ('getsendername');

          Str := 'commandicebyname ' + Name;

          Str := Str + ' user 1000';

          print (Str);


          print ('senderrefill');


          print ('say 你还太嫩! 50');

          print ('say 留神啦_我可不会手下留情 400');

          exit;

       end;

    end;


    procedure OnCreate (aStr : String);

    var

       Str : String;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then begin

          exit;

       end;


       print ('setallowhitbyname 一级捕盗大将 monster true');


       Str := 'showwindow .\help\一级捕盗大将.txt 1';

       print (Str);

       exit;

    end;


    procedure OnDie (aStr : String);

    var

       Str, Name : String;

       FirstQuest : Integer;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       Str := callfunc ('getsenderfirstquest');

       FirstQuest := StrToInt (Str);


       if FirstQuest < 2 then begin

          Str := callfunc ('checkenoughspace');

          if Str = 'false' then begin

             print ('say 物品栏已满...');

             exit;

          end;


          print ('changesenderfirstquest 2');

          print ('putsendermagicitem 新手训练拳套 @一级捕盗大将 4');

       end;


       print ('say 不可能_我怎么可能输呢.. 100');


       print ('mapregen 51');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 51 17 18 500';

       print (Str);

    end;


    procedure OnChangeState (aStr : String);

    var

       Str, Name : String;

    begin

       if aStr <> 'die' then exit;


       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       print ('say 回去再修炼个10年吧50');

       print ('say 到那时我在用双手跟你打 400');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 49 106 55 600';

       print (Str);


       print ('boMapEnter 50 true');   

    end;


    end.


    ---------------------------------------


    unit 一级牛俊;


    interface


    function  GetToken (aStr, aToken, aSep : String) : String;

    function  CompareStr (aStr1, aStr2 : String) : Boolean;

    function  callfunc (aText: string): string;

    procedure print (aText: string);

    function  Random (aScope: integer): integer;

    function  Length (aText: string): integer;

    procedure Inc (aInt: integer);

    procedure Dec (aInt: integer);

    function  StrToInt (astr: string): integer;

    function  IntToStr (aInt: integer): string;

    procedure exit;


    procedure OnCreate (aStr : String);

    procedure OnDie (aStr : String);

    procedure OnChangeState (aStr : String);

    procedure OnGetResult (aStr : String);


    implementation


    procedure OnGetResult (aStr : String);

    var

       Str, Name : String;

       iCount : Integer;

    begin

       if aStr = 'start' then begin

          Str := callfunc ('getsenderserverid');

          if Str <> '52' then exit;


          Str := callfunc ('getsenderrace');

          if Str <> '1' then exit;


          Str := callfunc ('checksenderpowerwearitem');

          iCount := StrToInt (Str);

          if iCount > 0 then begin

             print ('say 请先脱掉带技能值的装备!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 0');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 1');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          

          print ('directmovespace 一级牛俊 npc 52 20 18 0');


          print ('commandicebyname 一级牛俊 npc 500');

          print ('setallowhitbytick true 500');      


          Name := callfunc ('getsendername');

          Str := 'commandicebyname ' + Name;

          Str := Str + ' user 500';

          print (Str);


          print ('senderrefill');


          print ('say 10如果10秒内不能将你搞定 50');

          print ('say 就算我输! 400');

          exit;

       end;

    end;


    procedure OnCreate (aStr : String);

    var

       Str : String;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then begin

          exit;

       end;


       Str := 'showwindow .\help\一级牛俊.txt 1';

       print (Str);

       exit;

    end;


    procedure OnDie (aStr : String);

    var

       Str, Name : String;

       FirstQuest : Integer;   

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       Str := callfunc ('getsenderfirstquest');

       FirstQuest := StrToInt (Str);


       if FirstQuest < 4 then begin

          Str := callfunc ('checkenoughspace');

          if Str = 'false' then begin

             print ('say 物品栏已满...');

             exit;

          end;

       

          print ('changesenderfirstquest 4');

          print ('putsendermagicitem 新手训练大斧 @一级牛俊 4');

       end;


       print ('say 什么_不敢相信!! 100');


       print ('mapregen 53');

       

       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 53 17 18 500';

       print (Str);

    end;


    procedure OnChangeState (aStr : String);

    var

       Str, Name : String;

    begin

       if aStr <> 'die' then exit;


       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       print ('say 领教了吧! 50');

       print ('say 差远了... 400');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 49 106 55 600';

       print (Str);

    end;


    end.

    ----------------------------------------

    unit 一级雨中客;


    interface


    function  GetToken (aStr, aToken, aSep : String) : String;

    function  CompareStr (aStr1, aStr2 : String) : Boolean;

    function  callfunc (aText: string): string;

    procedure print (aText: string);

    function  Random (aScope: integer): integer;

    function  Length (aText: string): integer;

    procedure Inc (aInt: integer);

    procedure Dec (aInt: integer);

    function  StrToInt (astr: string): integer;

    function  IntToStr (aInt: integer): string;

    procedure exit;


    procedure OnCreate (aStr : String);

    procedure OnDie (aStr : String);

    procedure OnChangeState (aStr : String);

    procedure OnGetResult (aStr : String);


    implementation


    procedure OnGetResult (aStr : String);

    var

       Str, Name : String;

       iCount : Integer;

    begin

       if aStr = 'start' then begin

          Str := callfunc ('getsenderserverid');

          if Str <> '53' then exit;


          Str := callfunc ('getsenderrace');

          if Str <> '1' then exit;


          Str := callfunc ('checksenderpowerwearitem');

          iCount := StrToInt (Str);

          if iCount > 0 then begin

             print ('say 请先脱掉带技能值的装备!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 0');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 1');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          

          print ('directmovespace 一级雨中客 npc 53 20 18 0');


          print ('commandicebyname 一级雨中客 npc 500');

          print ('setallowhitbytick true 500');      


          Name := callfunc ('getsendername');

          Str := 'commandicebyname ' + Name;

          Str := Str + ' user 500';

          print (Str);


          print ('senderrefill');


          print ('say 领教了 50');

          print ('say 开始吧 400');

          exit;

       end;

    end;


    procedure OnCreate (aStr : String);

    var

       Str : String;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then begin

          exit;

       end;

       

       Str := 'showwindow .\help\一级雨中客.txt 1';

       print (Str);

       exit;

    end;


    procedure OnDie (aStr : String);

    var

       Str, Name : String;

       FirstQuest : Integer;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       Str := callfunc ('getsenderfirstquest');

       FirstQuest := StrToInt (Str);


       if FirstQuest < 5 then begin

          Str := callfunc ('checkenoughspace');

          if Str = 'false' then begin

             print ('say 物品栏已满...');

             exit;

          end;

       

          print ('changesenderfirstquest 5');

          print ('putsendermagicitem 新手训练弯刀 @一级雨中客 4');

       end;


       print ('say 早料到了_佩服 100');


       print ('mapregen 54');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 54 17 18 500';

       print (Str);

    end;


    procedure OnChangeState (aStr : String);

    var

       Str, Name : String;

    begin

       if aStr <> 'die' then exit;


       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       print ('say 不错。只要能维持几秒钟');

       print ('say 到那时谁都不是你的对手 400');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 49 106 55 600';

       print (Str);

    end;


    end.


    --------------------------------------------------------------------------------------------------------------


    unit 一级老侠客;


    interface


    function  GetToken (aStr, aToken, aSep : String) : String;

    function  CompareStr (aStr1, aStr2 : String) : Boolean;

    function  callfunc (aText: string): string;

    procedure print (aText: string);

    function  Random (aScope: integer): integer;

    function  Length (aText: string): integer;

    procedure Inc (aInt: integer);

    procedure Dec (aInt: integer);

    function  StrToInt (astr: string): integer;

    function  IntToStr (aInt: integer): string;

    procedure exit;


    procedure OnCreate (aStr : String);

    procedure OnDie (aStr : String);

    procedure OnChangeState (aStr : String);

    procedure OnGetResult (aStr : String);


    implementation


    procedure OnGetResult (aStr : String);

    var

       Str, Name : String;

       iCount : Integer;   

    begin

       if aStr = 'start' then begin

          Str := callfunc ('getsenderserverid');

          if Str <> '54' then exit;


          Str := callfunc ('getsenderrace');

          if Str <> '1' then exit;


          Str := callfunc ('checksenderpowerwearitem');

          iCount := StrToInt (Str);

          if iCount > 0 then begin

             print ('say 请先脱掉带技能值的装备!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 0');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          Str := callfunc ('checksendercurusemagic 1');

          if Str = 'true' then begin

             print ('say 选错武功了!');

             Name := callfunc ('getsendername');

             Str := 'movespace ' + Name;

             Str := Str + ' user 49 106 55 100';

             print (Str);

             exit;

          end;

          

          print ('directmovespace 一级老侠客 npc 54 20 18 0');


          print ('commandicebyname 一级老侠客 npc 500');

          print ('setallowhitbytick true 500');      


          Name := callfunc ('getsendername');

          Str := 'commandicebyname ' + Name;

          Str := Str + ' user 500';

          print (Str);


          print ('senderrefill');


          print ('say 如果你实在想比 50');

          print ('say 我将奉陪到底 400');

          exit;

       end;

    end;


    procedure OnCreate (aStr : String);

    var

       Str : String;

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then begin

          exit;

       end;

       

       Str := 'showwindow .\help\一级老侠客.txt 1';

       print (Str);

       exit;

    end;


    procedure OnDie (aStr : String);

    var

       Str, Name : String;

       n, FirstQuest : Integer;   

    begin

       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       Str := callfunc ('getsenderfirstquest');

       FirstQuest := StrToInt (Str);


       Name := callfunc ('getsendername');


       if FirstQuest < 6 then begin

          Str := 'sendsendertopmsg ' + Name;

          Str := Str + '恭喜你,通过了所有的比试,获得【侠客弓服】';

          print (Str);


          Str := callfunc ('checkenoughspace');

          if Str = 'false' then begin

             print ('say 物品栏已满...');

             exit;

          end;

          

          print ('changesenderfirstquest 6');


          Str := callfunc ('getsendersex');

          n := StrToInt (Str);

          if n = 1 then begin

             print ('putsendermagicitem 男子侠客弓服 @一级老侠客 4');

          end;

          if n = 2 then begin

             print ('putsendermagicitem 女子侠客弓服 @一级老侠客 4');

          end;

             print ('putsendermagicitem 新手训练神剑 @一级老侠客 4');

       end;


       print ('say 佩服_佩服 100');


       Str := 'movespace ' + Name;

       Str := Str + ' user 49 25 35 500';

       print (Str);

    end;


    procedure OnChangeState (aStr : String);

    var

       Str, Name : String;

    begin

       if aStr <> 'die' then exit;


       Str := callfunc ('getsenderrace');

       if Str <> '1' then exit;


       print ('say 小小年纪_就有如此高深的武功 50');

       print ('say 日后要继续修炼... 400');


       Name := callfunc ('getsendername');

       Str := 'movespace ' + Name;

       Str := Str + ' user 49 106 55 600';

       print (Str);

    end;


    end.


    -------------------------------------


    *************************************


    奖励物品代码:


    *************************************


    男子侠客弓服,男子侠客弓服,24,新手村擂台战利


    品,2,,,,,FALSE,FALSE,181,6,7,,,,1,1,1,,50000,,,,,,4432,4831,TRUE,,10,20,,,,,,,200,100,100,10


    0,,,,,,3,TRUE,4,,FALSE,,,,,,,,,,,,,,,

    女子侠客弓服,女子侠客弓服,24,新手村擂台战利


    品,2,,,,,FALSE,FALSE,181,6,7,,,,1,2,1,,50000,,,,,,4432,4831,TRUE,,10,20,,,,,,,200,100,100,10


    0,,,,,,3,TRUE,4,,FALSE,,,,,,,,,,,,,,,

    新手训练拳套,新手训练拳套,6,新手村擂台战利


    品,1,,,,,FALSE,FALSE,361,9,52,,0,0,1,,1,,50000,50000,,,,,4404,4805,TRUE,20,20,20,,,,,,,,,,,,


    ,,,,4,TRUE,3,TRUE,FALSE,,,,,,,,,,,,,,,

    新手训练神剑,新手训练神剑,6,新手村擂台战利


    品,1,,,,,FALSE,FALSE,365,9,69,,2,1,1,,1,,50000,50000,,,,,4404,4805,TRUE,20,20,20,,,,,,,,,,,,


    ,,,,1,TRUE,3,TRUE,FALSE,,,,,,,,,,,,,,,

    新手训练弯刀,新手训练弯刀,6,新手村擂台战利


    品,7,,,,,FALSE,FALSE,113,9,2,,2,2,1,,1,,50000,50000,,,,,4412,4813,TRUE,20,20,20,,,,,,,,,,,,,


    ,,,1,TRUE,4,,FALSE,,,,,,,,,,,,,,,

    新手训练长矛,新手训练长矛,6,新手村擂台战利


    品,6,,,,,FALSE,FALSE,117,9,45,,3,4,1,,1,,50000,50000,,,,,4435,4834,TRUE,20,20,20,,,,,,,,,,,,


    ,,,,1,TRUE,4,,FALSE,,,,,,,,,,,,,,,

    新手训练大斧,新手训练大斧,6,新手村擂台战利


    品,6,,,,,FALSE,FALSE,95,9,12,,3,3,1,,1,,50000,50000,,,,,4415,4815,TRUE,20,20,20,,,,,,,,,,,,,


    ,,,1,TRUE,4,,FALSE,,,,,,,,,,,,,,,


    ******************************************


    1楼  2022/1/28 12:56:46  回复

  发表回复

    发帖