屠魔榜Npc脚本(玩家打怪获得积分和奖励)

用于战神引擎的屠魔榜Npc脚本,脚本的功能是来记录玩家打怪获得积分和奖励。脚本牵扯到的文件,帮主都提取出来了,但是自定义NPC素材没有,因为素材储存的rs.zip做了二次加密。无法解压,脚本来自1.76狂战传奇。

没有自定义NPC对话框素材的问题,解决方法有2个

一:找类似的自定义NPC对话框素材,代替。

二:换成传统版,不要使用自定义对话框。

脚本牵扯到了很多变量,BOSS积分.ini、昨日BOSS积分.ini这2个文件放到D:\mud2.0\Mir200\Share\config这个文件夹下面,其他的方面自行深度研究。

屠魔榜Npc脚本(玩家打怪获得积分和奖励)

部分脚本

Program Mir2;
{$I PanguSuit.pas}
var
MbNum:integer;
MbWp:String;
procedure OnInitialize;
begin
	MbNum := 120000;	//需要的声望值
	MbWp := '精华x20  打怪暴率+20%';		//领取的物品,仅作展示用
end;
{
*=========================功能定制方式=========================
*                   马克思:QQ1603664923    
*=========================尊重原创=========================
}
procedure Execute;
var
btotal,mtotal,i,j,x,temp,undex,index:Integer;
showName,showPoint,temp_str,uname:String;
rankName : Array [1..500] of String; 
rankInt : Array [1..500] of integer; 
begin
	if (GetHour = 0) and (GetMin = 0) then
	begin
	SetG(133,22,0);//清空狂暴+成
		for i:=1 to 10 do
		begin
			uname:=ReadIniSectionStr('昨日BOSS积分.ini','排名',inttostr(i));
			if length(uname) > 0 then
			begin
				WriteIniSectionStr('昨日BOSS积分.ini','领取情况',uname,'');
				WriteIniSectionStr('昨日BOSS积分.ini','排名', inttostr(i), '');
			end;
		end;
		for i:=1 to 500 do
		begin		
			if ReadIniSectionStr('BOSS积分.ini','玩家列表',inttostr(i)) = '' then break;
			showName:=ReadIniSectionStr('BOSS积分.ini','玩家列表',inttostr(i));
			showPoint:=ReadIniSectionStr('BOSS积分.ini','积分情况',showName);
			rankName[i]:=showName;
			rankInt[i]:=strtointdef(showPoint,0);	
		end;
		if showName <> '' then
		begin
			for i:=1 to 500 do
			begin
				//if rankInt[i] <= 0 then break;
				if rankName[i] = '' then break;
				for j:=1 to 500 do
				begin
					x:=j+1;
					//if (rankInt[j] <= 0) or (rankInt[x] <= 0) then break;
					if (rankName[j] = '') or (rankName[x] = '') then break;
					if rankInt[j] < rankInt[x] then
					begin
						temp := rankInt[j];
						rankInt[j] := rankInt[x];
						rankInt[x] := temp;
						temp_str:=rankName[j];
						rankName[j] := rankName[x];
						rankName[x] := temp_str;
					end;
				end;
			end;
		end;
		for i:=1 to 10 Do
		begin
			if rankName[i] <> '' then
			begin
				WriteIniSectionStr('昨日BOSS积分.ini','排名',inttostr(i),rankName[i]);
				WriteIniSectionStr('昨日BOSS积分.ini','领取情况',rankName[i],'未领取');
			end;
		end;
		mtotal:=30000; //读取当日膜拜总声望;
		WriteIniSectionStr('昨日BOSS积分.ini','昨日膜拜总声望','Total',inttostr(mtotal));
		for i:=1 to 500 do
		begin
			uname:=ReadIniSectionStr('BOSS积分.ini','玩家列表',inttostr(i));
			if length(uname) > 0 then
			begin
				//WriteIniSectionStr('BOSS积分.ini','玩家列表', inttostr(i), '');
				WriteIniSectionStr('BOSS积分.ini','积分情况',uname,'');
				WriteIniSectionStr('BOSS积分.ini','排名', inttostr(i), '');
			end;
		end;
		WriteIniSectionStr('BOSS积分.ini','当日BOSS积分','Total','');
		WriteIniSectionStr('BOSS积分.ini','当日膜拜总声望','Total','');
	end;
end;
分享到:
赞(0)