用于战神引擎的行会捐献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;