|
新手村擂台脚本和实现代码 风雷版的新手村擂台脚本
释放到同名文件夹下覆盖原有文件。
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,,,,,,,,,,,,,,,
******************************************
|