用户登录  | 
首 页技术文章软件发布广告价格
当前位置:传奇游戏服务端下载站传奇站长论坛资源网站程序技术文章文章资讯游戏架设教程千年技术

全新的门派大战脚本,不同门派复生点不同

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2014-10-04 10:29:04
本门战脚本的特色是保证门战的绝对公平。

 

1、队员需要获得门主提供的标志:“红方队员”和“蓝方队员”的牌子。
2、队员从中央的门战接待员处进入门战聚义厅(红方和蓝方两个地图,统一团队)
3、接待员判断聚义厅人数,当到达人数后停止传送,保证双方人数相同。
4、GM移动到门派对战场,单击“门战主持”,启动门派大战。
这个时候全屏公告门战开始,地图关闭。中央的人就不能再传送到聚义厅了
聚义厅的人单击“门战主持”,直接传送到门战相应地图备战。
5、当玩家被打死以后会根据不同的门派而选择不同的复活点。(在门战中央左右)
6、一方门派剑令被打碎,全屏立刻公告获胜方以及打碎剑令的英雄的名字。
然后会刷新地图,所有参战队员全部踢出地图,到达中央市场。

 

需要的物品有:

 

GM腰牌、红方队员、蓝方队员

 

需要的NPC有:

 

门战主持、门战接待员

 

需要的怪物有:

 

门派剑令红、门派剑令蓝

 

需要的地图有:

 

红方聚义厅、蓝方聚义厅、门派对战场

 

//----=====门派大战主脚本,和门战主持对应=====--------

 

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 OnLeftClick (aStr : String);

 


implementation

 

procedure OnLeftClick (aStr : String);
var
   Str, Name : String;
   zhuangtai : Integer;
   iCount : Integer;
begin

 

        Str := callfunc ('getsenderserverid');
        if Str = '10' then begin
           if zhuangtai <> 1 then begin
              print ('say 门派大战还未开始,请耐心等待。');
              exit;
           end;
           Name := callfunc ('getsendername');
           Str := 'movespace ' + Name;
           Str := Str + ' user 6 98 96';
           print (Str);
           exit;
        end;

 

        if Str = '13' then begin
           if zhuangtai <> 1 then begin
              print ('say 门派大战还未开始,请耐心等待。');
              exit;
           end;
           Name := callfunc ('getsendername');
           Str := 'movespace ' + Name;
           Str := Str + ' user 6 61 59';
           print (Str);
           exit;
        end;

 

        if Str = '6' then begin
           Str := callfunc ('getsenderitemexistence GM腰牌:1');
           if Str = 'false' then begin
              print ('say 不是GM不能执行命令');
              exit;
           end;  

 

      Str := callfunc ('getusercount 10');
      iCount := StrToInt (Str);
      if iCount > 30 then begin
         print ('say 红方人员还没到齐,请稍后...');
         exit;
      end;
      Str := callfunc ('getusercount 13');
      iCount := StrToInt (Str);
      if iCount < 30 then begin
         print ('say 蓝方人员还没到齐,请稍后...');
         exit;
      end;

           Str := callfunc ('checkentermap 6');
           if Str = 'true' then begin
           print('sendsendertopmsg 门派大战现在开始,请双方战士进入各自战场');
           zhuangtai := 1;
              print ('boMapEnter 6 false');
              exit;
           end;  
           print ('say 门派大战已经开始,你不能进入.');
           exit;
        end;
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 OnDie (aStr : String);
procedure OnChangeState (aStr : String);

 


implementation

 


procedure OnChangeState (aStr : String);
var
   Str, Name : String;
begin
   if aStr <> 'die' then exit;

 

   Str := callfunc ('getsenderrace');
   if Str <> '1' then exit;
  
   Str := callfunc ('getsenderitemexistence 红方队员:1');
   if Str = 'true' then begin
      Name := callfunc ('getsendername');
      Str := 'movespacebyname ' + Name;
      Str := Str + ' user 6 84 81 门战主持 npc 300';
      print (Str);
      exit;
   end;
   Name := callfunc ('getsendername');
   Str := 'movespacebyname ' + Name;
   Str := Str + ' user 6 74 71 门战主持 npc 300';
   print (Str);

 

end;

 

procedure OnDie (aStr : String);
var
   Str, Name : String;
begin
  
      Name := callfunc ('getsendername');
      Str := 'sendsendertopmsg ' + '红方勇士【';      
      Str := Str + Name;
      Str := Str + '】最终打破蓝方剑令!';
      print (Str);
      print ('sendsendertopmsg 热烈祝贺红方获得胜利!');
      print ('mapregen 6');
      exit;
   end;
  

 

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 OnDie (aStr : String);
procedure OnChangeState (aStr : String);

 


implementation

 


procedure OnChangeState (aStr : String);
var
   Str, Name : String;
begin
   if aStr <> 'die' then exit;

 

   Str := callfunc ('getsenderrace');
   if Str <> '1' then exit;
  
   Str := callfunc ('getsenderitemexistence 红方队员:1');
   if Str = 'true' then begin
      Name := callfunc ('getsendername');
      Str := 'movespacebyname ' + Name;
      Str := Str + ' user 6 82 81 门战主持 npc 300';
      print (Str);
      exit;
   end;
   Name := callfunc ('getsendername');
   Str := 'movespacebyname ' + Name;
   Str := Str + ' user 6 74 71 门战主持 npc 300';
   print (Str);

 

end;

 

procedure OnDie (aStr : String);
var
   Str, Name : String;
begin
  
      Name := callfunc ('getsendername');
      Str := 'sendsendertopmsg ' + '蓝方勇士【';      
      Str := Str + Name;
      Str := Str + '】最终打破红方剑令!';
      print (Str);
      print ('sendsendertopmsg 热烈祝贺蓝方获得胜利!');
      print ('mapregen 6');
      exit;
   end;
  

 

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 OnGetResult (aStr : String);
procedure OnLeftClick (aStr : String);

 

implementation

 

procedure OnLeftClick (aStr : String);
var
   Str : String;
   Race : Integer;
begin
     Str := callfunc ('getsenderrace');
     Race := StrToInt (Str);
     if Race = 1 then begin
        Str := 'showwindow .\help\门战接待员.txt 1';
        print (Str);
        exit;
     end;

 

end;

 

procedure OnGetResult (aStr : String);
var
   Str, Name : String;
   iCount : Integer;

 

begin
   if aStr = 'close' then begin
      exit;
   end;
   if aStr = 'hfjinru' then begin
      Str := callfunc ('getsenderitemexistence 红方队员:1');
      if Str = 'false' then begin
         print ('say 不是红方队员,请不要捣乱');
         exit;
      end;      
      Str := callfunc ('checkentermap 6');
      if Str = 'false' then begin
         print ('say 门派大战已经开始,你不能进入.');
         exit;
      end;  
      Str := callfunc ('getusercount 10');
      iCount := StrToInt (Str);
      if iCount > 30 then begin
         print ('say 红方人员已经到齐!请下次早来...');
         exit;
      end;
      Name := callfunc ('getsendername');
      Str := 'movespace ' + Name;
      Str := Str + ' user 10 20 20';
      print (Str);
      exit;
   end;
  
   if aStr = 'lfjinru' then begin
      Str := callfunc ('getsenderitemexistence 蓝方队员:1');
      if Str = 'false' then begin
         print ('say 不是蓝方队员,请不要捣乱');
         exit;
      end;      


      Str := callfunc ('checkentermap 6');
      if Str = 'false' then begin
         print ('say 门派大战已经开始?');
         exit;
      end;
      Str := callfunc ('getusercount 13');
      iCount := StrToInt (Str);
      if iCount > 30 then begin
         print ('say 蓝方人员已经到齐!请下次早来...');
         exit;
      end;
      Name := callfunc ('getsendername');
      Str := 'movespace ' + Name;
      Str := Str + ' user 13 20 20';
      print (Str);
      exit;
   end;

 

end;

 

end.

 

//======下面是help文件夹下的“门战接待员.txt”====--------

 

<trade>
<title>门战接待员</title>
<image name=z81 value=235>
<text>
公平公正一直是我们追求的目标!
</text>
<command send='close'>关闭</command>
<command send='hfjinru'>红方队员进入</command>
<command send='lfjinru'>蓝方队员进入</command>
</trade> 商业版发布站程序下载:发布站程序下载:

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
传奇资源网提供最新传奇开区一条龙版本下载,本站声明:只更新最新最好的传奇服务端分享给大家。