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