用于战神引擎的行会捐献Npc脚本,这个脚本帮主是第一次看到,之前看到的捐献脚本都是比较常见的个人捐献,这个增强了个人捐献的功能,必须要行会才能捐献,没有加入行会的个人不行,捐献以后,根据名次,可以进入专属捐献地图,还有对应的攻击、魔法、道术属性,这个脚本设计的不错。
config文件夹里面的元宝捐献.txt要覆盖到D:\mud2.0\Mir200\Share\config里面。


部分脚本
{┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃此脚本由【烈阳】编写,定制特色脚本 ┃
┃请尊重每一个创作者,此条勿删,谢谢支持! ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛}
program mir2;
Const FMNO1 = 30; //第一名防御魔防
GJNO1 = 15; //第一名攻魔道
FMNO2 = 20; //第二名防御魔防
GuildMap = 'R001~133'; //行会地图代码
procedure _exit;
begin
This_Npc.CloseDialog(This_Player);
end;
procedure _domain;
var i,j,x,temp:integer;
temp_str,show_p_name,show_yb_num,show_str,GM_str:string;
rankName : Array [1..100] of String;
rankYb:Array [1..100] of Integer;
begin
for i:=1 to 100 do
begin
if ReadIniSectionStr('元宝捐献.txt','捐献列表',inttostr(i)) <> '' then
begin
show_p_name:=ReadIniSectionStr('元宝捐献.txt','捐献列表',inttostr(i));
show_yb_num:=ReadIniSectionStr('元宝捐献.txt','元宝捐献',show_p_name);
rankYb[i]:=strtoint(show_yb_num);
rankName[i]:=show_p_name;
end
else
break;
end
if show_p_name <> '' then
begin
for i:=1 to 100 do
begin
if rankYb[i] <= 0 then
break;
for j:=1 to 100 do
begin
x:=j+1;
if (rankYb[j] <= 0) or (rankYb[x] <= 0) then
break;
if (rankYb[j] < rankYb[x]) and (rankYb[x] > 0) then
begin
temp := rankYb[j];
rankYb[j] := rankYb[x];
rankYb[x] := temp;
temp_str:=rankName[j];
rankName[j] := rankName[x];
rankName[x] := temp_str;
end
end
end
end
for i:=1 to 5 do
begin
if rankName[i] = '' then
begin
temp_str:='|第< '+inttostr(i)+' >名:<虚位已待/fcolor=7>';
end
else
temp_str:='|第< '+inttostr(i)+' >名:<' + rankName[i] + ' /fcolor=251>^<' + inttostr(rankYb[i])+'/fcolor=250>';
show_str:=show_str+temp_str;
end
if rankName[1] <> '' then WriteIniSectionStr('元宝捐献.txt','捐献排名','1',rankName[1]);
if rankName[2] <> '' then WriteIniSectionStr('元宝捐献.txt','捐献排名','2',rankName[2]);
if This_Player.GMLevel > 0 then GM_str:='<一键清理/@GMPage>';
This_Npc.NpcDialog(This_Player,
'|排 名 行会名字 捐献元宝数量'+
show_str+
'|<━━━━━━━━━━━━━━━━━━━━━/fcolor=168>'+
'|<第1名/fcolor=254>行会所有成员可领取<双防+'+inttostr(FMNO1)+'攻魔道+'+inttostr(GJNO1)+'/fcolor=253>'+
'|<第1名/fcolor=254>名行会将拥有<专属地图/fcolor=250>的使用权'+
'|<第2名/fcolor=254>名行会所有成员只可领取<双防+'+inttostr(FMNO2)+'/fcolor=242>|'+
'{cmd}<捐献元宝/@StarDona><领取属性/@DonaAbil><专属地图/@GoGuildMap>'+GM_str+'');
end;
procedure _GoGuildMap;
begin
if This_Player.GetMyPositionInGuild() = -1 then
begin
This_Npc.NpcDialog(This_Player,'你没有行会无法进入此地!| |'+'{cmd}<[返回主页]/@domain>^<[关闭界面]/@exit>');
exit;
end;
if ReadIniSectionStr('元宝捐献.txt','捐献排名','1') = This_Player.GuildName then
begin
This_Player.RandomFlyTo(GuildMap);
ServerSay('【'+This_Player.Name+'】进入了行会专属地图!',0);
This_Player.CallOut(This_Npc, 1, 'CheckAbil');
end else
This_Npc.NpcDialog(This_Player,'你们行会暂时无法进入此地!| |'+'{cmd}<[返回主页]/@domain>^<[关闭界面]/@exit>');
end;
procedure CheckAbil;








