千年游戏新开门派大战脚本不同门派复活点不同详细方法

来源: 作者: 点击:
门派大战对于千年私发服游戏中的任何一个玩家都是非常重要的,因为在游戏中门派大战是超越一切战斗的玩法,这个战斗部分行会不分组合,是由所有游戏中的玩家按照不同门派进行分类的。对于这些玩家来说他们要做的就是攻打下其他职业的门派驻地即可获得会后胜利,在这场战斗中相同行会不同职业之间的我玩家会发生大量战斗。以前的门派大战脚本中玩家角色挂掉之后,会随机复活运气不好可能复活在对方阵营中。

本门战脚本的特色是保证门战的绝对公平。


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


需要的物品有:


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


需要的NPC有:


门战主持、门战接待员


需要的怪物有:


门派剑令红、门派剑令蓝


需要的地图有:


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

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


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;
wuduy.com

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>
对于这种随机复活的方式已经被广大玩家吐槽很久,上面就是一为原创给大家分享的千年游戏新开门派大战脚本不同门派复活点不同详细方法,希望各位千年私发服gm能够更具该方法修改自己服务器中的脚本,这样能够做到各门派死亡角色定点复活。