名人堂Npc脚本(带专属地图)

用于战神引擎的名人堂Npc脚本,带了自定义对话框和专属地图传送功能,脚本是我明文版的,可以修改脚本里面的传送地图的名字和坐标。配套的素材有些多,全部压缩在一起了,你们添加的时候需要单独提取需要的添加进去,不能直接把原先的覆盖掉,名人堂.ini文件放到D:\mud2.0\Mir200\Share\config文件夹下面。

名人堂Npc脚本(带专属地图)

部分脚本

program Mir2;
procedure _DoExit;
begin
  This_Npc.CloseDialog(This_Player);
end;
procedure _Exit;
begin
  This_Npc.CloseDialog(This_Player);
end;
var jx_map,jx_hc:string;
jx_limit,hc_x,hc_y:integer;
procedure OnInitialize();
begin
jx_map:='yxd'; //第一地图;
jx_hc:='3';   //回城地图
hc_x:=330; //回城坐标
hc_y:=330;
jx_limit:=20; //每日充值20以上才排名  修改此处需要同时修改runquest中名人堂调用的对应数值
end;
procedure domain;
var 
i,j,x,temp,old,total ,time: integer; 
showName, showPoint, temp_str,state,ztstr,jlkg,gmstr,timestr,cmdstr : string;
rankName : Array [1..100] of String; rankInt : Array [1..100] of integer; 
begin
	total:=StrToIntDef(ReadIniSectionStr('名人堂.ini','系统记录','Total'),0); //读取总捐献记录;
	if (total=0) then
	begin
		SetG(128,11,0);
		SetG(128,12,0);
	end
	old:=StrToIntDef(ReadIniSectionStr('名人堂.ini','PayName',This_Player.Name),0); //读取旧今日充值据
	if (old > This_Player.GetV(99,99)) then //过滤不合理数据
	begin
		WriteIniSectionStr('名人堂.ini','PayName',This_Player.Name,'0');
		old:=0;
	end;
	
	for i:=1 to 100 do
	begin		
		if ReadIniSectionStr('名人堂.ini','PayList',inttostr(i)) = '' then
		break;
	
		showName:=ReadIniSectionStr('名人堂.ini','PayList',inttostr(i));
		showPoint:=ReadIniSectionStr('名人堂.ini','PayName',showName);
		
		rankName[i]:=showName;
		rankInt[i]:=strtoint(showPoint);	
	end
	
	if showName <> '' then
	begin
		for i:=1 to 100 do
		begin			
			if rankInt[i] <= 0 then
			break;
			
			for j:=1 to 100 do
			begin	
			x:=j+1;
			
			if (rankInt[j] <= 0) or (rankInt[x] <= 0) then
			break;
				if (rankInt[j] < rankInt[x]) and (rankInt[x] >= jx_limit) then	//大于20以上的捐献才参与排名!
				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
	temp_str:='';
	for i:=1 to 5 Do
分享到:
赞(0)