行会捐献Npc脚本(成员得属性+进专属地图)

用于战神引擎的行会捐献Npc脚本,这个脚本帮主是第一次看到,之前看到的捐献脚本都是比较常见的个人捐献,这个增强了个人捐献的功能,必须要行会才能捐献,没有加入行会的个人不行,捐献以后,根据名次,可以进入专属捐献地图,还有对应的攻击、魔法、道术属性,这个脚本设计的不错。

config文件夹里面的元宝捐献.txt要覆盖到D:\mud2.0\Mir200\Share\config里面。

行会捐献Npc脚本(成员得属性+进专属地图)

行会捐献Npc脚本(成员得属性+进专属地图)

部分脚本

{┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
 ┃此脚本由【烈阳】编写,定制特色脚本				┃
 ┃请尊重每一个创作者,此条勿删,谢谢支持! 			┃
 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛}
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;
分享到:
赞(0)