全新的门派大战脚本,不同门派复生点不同
本门战脚本的特色是保证门战的绝对公平。
2、队员从中央的门战接待员处进入门战聚义厅(红方和蓝方两个地图,统一团队)
3、接待员判断聚义厅人数,当到达人数后停止传送,保证双方人数相同。
4、GM移动到门派对战场,单击“门战主持”,启动门派大战。
这个时候全屏公告门战开始,地图关闭。中央的人就不能再传送到聚义厅了
聚义厅的人单击“门战主持”,直接传送到门战相应地图备战。
5、当玩家被打死以后会根据不同的门派而选择不同的复活点。(在门战中央左右)
6、一方门派剑令被打碎,全屏立刻公告获胜方以及打碎剑令的英雄的名字。
然后会刷新地图,所有参战队员全部踢出地图,到达中央市场。
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;
implementation
var
Str, Name : String;
zhuangtai : Integer;
iCount : Integer;
begin
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 zhuangtai <> 1 then begin
print ('say 门派大战还未开始,请耐心等待。');
exit;
end;
Name := callfunc ('getsendername');
Str := 'movespace ' + Name;
Str := Str + ' user 6 61 59';
print (Str);
exit;
end;
Str := callfunc ('getsenderitemexistence GM腰牌:1');
if Str = 'false' then begin
print ('say 不是GM不能执行命令');
exit;
end;
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;
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 OnChangeState (aStr : String);
implementation
procedure OnChangeState (aStr : String);
var
Str, Name : String;
begin
if aStr <> 'die' then exit;
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);
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.
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 OnChangeState (aStr : String);
implementation
procedure OnChangeState (aStr : String);
var
Str, Name : String;
begin
if aStr <> 'die' then exit;
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);
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.
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);
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;
var
Str, Name : String;
iCount : Integer;
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;
<title>门战接待员</title>
<image name=z81 value=235>
<text>
公平公正一直是我们追求的目标!
</text>
<command send='close'>关闭</command>
<command send='hfjinru'>红方队员进入</command>
<command send='lfjinru'>蓝方队员进入</command>
</trade> 商业版发布站程序下载:发布站程序下载:
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 分)
查看完整评论