⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 localdb.~pas

📁 继续更新AFT源代码 现在解决了无法登陆游戏的问题 用0504的dbserver就可以登陆了 去掉了绿字广告 降低内存占用HOO 去掉了大量的验证问题
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
    QuestNPC.m_boIsQuest:=False;
    UserEngine.QuestNPCList.Add(QuestNPC);
    Result:=QuestNPC;
  end;
  procedure LoadSubMapInfo(LoadList:TStringList;sFileName:String);
  var
    I: Integer;
    sFilePatchName,sFileDir:String;
    LoadMapList:TStringList;
  begin
    sFileDir:=g_Config.sEnvirDir + 'MapInfo\';
    if not DirectoryExists(sFileDir) then begin
      CreateDir(sFileDir);
    end;
      
    sFilePatchName:=sFileDir + sFileName;
    if FileExists(sFilePatchName) then begin
      LoadMapList:=TStringList.Create;
      LoadMapList.LoadFromFile(sFilePatchName);
      for I := 0 to LoadMapList.Count - 1 do begin
        LoadList.Add(LoadMapList.Strings[I]);
      end;
      LoadMapList.Free;
    end;
  end;
var
  sFileName:String;

  LoadList:TStringList;
  i:Integer;
  s30,s34,s38,sMapName,s44,sMapDesc,s4C,sReConnectMap:String;
  n14,n18,n1C,n20:Integer;
  nServerIndex:Integer;
  mirrorname:string;
  MapFlag:TMapFlag;
  QuestNPC:TMerchant;
  sMapInfoFile:String;
  SweatherEffect:String;
  Smapfunction :string;
  stype,sgotolabel:string;
begin
    Result:= -1;
    sFileName:=g_Config.sEnvirDir + 'MapInfo.txt';
    if FileExists(sFileName) then begin
      LoadList:=TStringList.Create;
      LoadList.LoadFromFile(sFileName);
      if LoadList.Count < 0 then begin
        LoadList.Free;
        exit;
      end;
      I:=0;
      while (True) do begin
        if I >= LoadList.Count then break;
        if CompareLStr('loadmapinfo',LoadList.Strings[I],Length('loadmapinfo')) then begin
          sMapInfoFile:=GetValidStr3(LoadList.Strings[I], s30, [' ', #9]);
          LoadList.Delete(I);
          if sMapInfoFile <> '' then begin
            LoadSubMapInfo(LoadList,sMapInfoFile);
          end;
        end;
        Inc(I);
      end;
      Result:=1;
      //加载地图设置
      for i:=0 to LoadList.Count -1 do begin
        s30:=LoadList.Strings[i];
        if (s30 <> '') and (s30[1] = '[') then begin
          sMapName:='';
          MapFlag.boSAFE:=False;
          s30:=ArrestStringEx(s30,'[',']',sMapName);
          sMapDesc:=GetValidStrCap(sMapName,sMapName,[' ', ',', #9]);
          if (sMapDesc <> '') and (sMapDesc[1] = '"') then
              ArrestStringEx(sMapDesc,'"','"',sMapDesc);
          s4C:=Trim(GetValidStr3(sMapDesc,sMapDesc,[' ', ',', #9]));
          nServerIndex:=Str_ToInt(s4C,0);
          if sMapName = '' then Continue;
       ///////////////////

         //地图 和景象地图名称
          mirrorname:='';
          if pos('>',sMapName) >0 then
          sMapName:= ArrestStringEx(sMapName,'<','>',mirrorname);

         /////////////////

          FillChar(MapFlag,SizeOf(TMapFlag),#0);

          MapFlag.nL:=1;
          QuestNPC:=nil;
          MapFlag.nNEEDSETONFlag:= -1;
          MapFlag.nNeedONOFF:= -1;
          MapFlag.mirrorname:= mirrorname ;

          while (True) do begin
            if s30 = '' then break;
            s30:=GetValidStr3(s30,s34,[' ', ',', #9]);
          //  s30:=UpperCase(s30);
            if s34 = '' then break;
            MapFlag.nMUSICID:=-1;

            s34:=UpperCase(s34);

            if CompareText(s34,'SAFE') = 0 then begin
              MapFlag.boSAFE:=True;
              Continue;
            end;
            if CompareText(s34,'CANHORSE') = 0 then begin
              MapFlag.boCANHORSE:=True;
              Continue;
            end;
            if CompareText(s34,'CANUSELF') = 0 then begin
              MapFlag.boCanUseLF:=True;
              Continue;
            end;

            if CompareText(s34,'NOYS') = 0 then begin
              MapFlag.boNOYS:=True;
              Continue;
            end;
            if CompareText(s34,'NOQB') = 0 then begin
              MapFlag.boNOQB:=True;
              Continue;
            end;

            if CompareText(s34,'NOBATFLY') = 0 then begin
              MapFlag.boNOBATFLY:=True;
              Continue;
            end;


            if POS('WEATHER',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',SweatherEffect);
              MapFlag.m_weatherEffect:=STR_toint(SweatherEffect,0);
              Continue;
            end;
            // m_nQfunction

             if POS('MAPFUNC',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',Smapfunction);
              MapFlag.m_nQfunction:=STR_toint(Smapfunction,0);
              Continue;
            end;
//    m_skillbyhumlabel:string[20];
//    m_skillbymonlabel:string[20];

//    m_skillhumlabel:string[20];
//    m_skillmonlabel:string[20];
//    m_slevelupgotolabel:string[20];

           if POS('KILLBYHUM',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',sgotolabel);
              MapFlag.m_skillbyhumlabel:=sgotolabel;
              Continue;
            end;
           if POS('KILLBYMON',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',sgotolabel);
              MapFlag.m_skillbymonlabel:=sgotolabel;
              Continue;
           end;
           if POS('KILLHUM',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',sgotolabel);
              MapFlag.m_skillhumlabel:=sgotolabel;
              Continue;
            end;
           if POS('KILLMON',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',sgotolabel);
              MapFlag.m_skillmonlabel:=sgotolabel;
              Continue;
           end;


           if POS('LEVELUP',s34) > 0 then begin
              s34:= ArrestStringEx(s34,'(',')',sgotolabel);
              MapFlag.m_slevelupgotolabel:=sgotolabel;
              Continue;
            end;



            if CompareText(s34,'DARK') = 0 then begin
              MapFlag.boDARK:=True;
              Continue;
            end;
            if CompareText(s34,'FIGHT') = 0 then begin
              MapFlag.boFIGHT:=True;
              Continue;
            end;
            if CompareText(s34,'FIGHT3') = 0 then begin
              MapFlag.boFIGHT3:=True;
              Continue;
            end;
            if CompareText(s34,'DAY') = 0 then begin
              MapFlag.boDAY:=True;
              Continue;
            end;
            if CompareText(s34,'QUIZ') = 0 then begin
              MapFlag.boQUIZ:=True;
              Continue;
            end;
            if CompareLStr(s34,'NORECONNECT',length('NORECONNECT')) then begin
               MapFlag.boNORECONNECT:=True;
               ArrestStringEx(s34,'(',')',sReConnectMap);
               MapFlag.sReConnectMap:=sReConnectMap;
               if MapFlag.sReConnectMap = '' then Result:= -11;
               Continue;
            end;
            if CompareLStr(s34,'CHECKQUEST',length('CHECKQUEST')) then begin
              ArrestStringEx(s34,'(',')',s38);
              QuestNPC:=LoadMapQuest(s38);
              Continue;
            end;
            if CompareLStr(s34,'NEEDSET_ON',length('NEEDSET_ON')) then begin
              MapFlag.nNeedONOFF:=1;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nNEEDSETONFlag:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'NEEDSET_OFF',length('NEEDSET_OFF')) then begin
              MapFlag.nNeedONOFF:=0;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nNEEDSETONFlag:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'MUSIC',length('MUSIC')) then begin
              MapFlag.boMUSIC:=True;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nMUSICID:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'EXPRATE',length('EXPRATE')) then begin
              MapFlag.boEXPRATE:=True;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nEXPRATE:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'PKWINLEVEL',length('PKWINLEVEL')) then begin
              MapFlag.boPKWINLEVEL:=True;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nPKWINLEVEL:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'PKWINEXP',length('PKWINEXP')) then begin
              MapFlag.boPKWINEXP:=True;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nPKWINEXP:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'PKLOSTLEVEL',length('PKLOSTLEVEL')) then begin
              MapFlag.boPKLOSTLEVEL:=True;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nPKLOSTLEVEL:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'PKLOSTEXP',length('PKLOSTEXP')) then begin
              MapFlag.boPKLOSTEXP:=True;
              ArrestStringEx(s34,'(',')',s38);
              MapFlag.nPKLOSTEXP:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'DECHP',length('DECHP')) then begin
              MapFlag.boDECHP:=True;
              ArrestStringEx(s34,'(',')',s38);

              MapFlag.nDECHPPOINT:=Str_ToInt(GetValidStr3(s38,s38,['/']),-1);
              MapFlag.nDECHPTIME:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'INCHP',length('INCHP')) then begin
              MapFlag.boINCHP:=True;
              ArrestStringEx(s34,'(',')',s38);

              MapFlag.nINCHPPOINT:=Str_ToInt(GetValidStr3(s38,s38,['/']),-1);
              MapFlag.nINCHPTIME:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'DECGAMEGOLD',length('DECGAMEGOLD')) then begin
              MapFlag.boDECGAMEGOLD:=True;
              ArrestStringEx(s34,'(',')',s38);

              MapFlag.nDECGAMEGOLD:=Str_ToInt(GetValidStr3(s38,s38,['/']),-1);
              MapFlag.nDECGAMEGOLDTIME:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'DECGAMEPOINT',length('DECGAMEPOINT')) then begin
              MapFlag.boDECGAMEPOINT:=True;
              ArrestStringEx(s34,'(',')',s38);

              MapFlag.nDECGAMEPOINT:=Str_ToInt(GetValidStr3(s38,s38,['/']),-1);
              MapFlag.nDECGAMEPOINTTIME:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'INCGAMEGOLD',length('INCGAMEGOLD')) then begin
              MapFlag.boINCGAMEGOLD:=True;
              ArrestStringEx(s34,'(',')',s38);

              MapFlag.nINCGAMEGOLD:=Str_ToInt(GetValidStr3(s38,s38,['/']),-1);
              MapFlag.nINCGAMEGOLDTIME:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'INCGAMEPOINT',length('INCGAMEPOINT')) then begin
              MapFlag.boINCGAMEPOINT:=True;
              ArrestStringEx(s34,'(',')',s38);

              MapFlag.nINCGAMEPOINT:=Str_ToInt(GetValidStr3(s38,s38,['/']),-1);
              MapFlag.nINCGAMEPOINTTIME:=Str_ToInt(s38,-1);
              Continue;
            end;
            if CompareLStr(s34,'RUNHUMAN',length('RUNHUMAN')) then begin
              MapFlag.boRUNHUMAN:= True;
              Continue;
            end;
            if CompareLStr(s34,'RUNMON',length('RUNMON')) then begin
              MapFlag.boRUNMON:= True;
              Continue;
            end;
            if CompareLStr(s34,'NEEDHOLE',length('NEEDHOLE')) then begin
              MapFlag.boNEEDHOLE := True;
              Continue;
            end;
            if CompareLStr(s34,'NORECALL',length('NORECALL')) then begin
              MapFlag.boNORECALL := True;
              Continue;
            end;
            if CompareLStr(s34,'NOGUILDRECALL',length('NOGUILDRECALL')) then begin
              MapFlag.boNOGUILDRECALL := True;
              Continue;
            end;
            if CompareLStr(s34,'NODEARRECALL',length('NODEARRECALL')) then begin
              MapFlag.boNODEARRECALL := True;
              Continue;
            end;
            if CompareLStr(s34,'NOMASTERRECALL',length('NOMASTERRECALL')) then begin
              MapFlag.boNOMASTERRECALL := True;
              Continue;
            end;
            if CompareLStr(s34,'NORANDOMMOVE',length('NORANDOMMOVE')) then begin
              MapFlag.boNORANDOMMOVE := True;
              Continue;
            end;
            if CompareLStr(s34,'NODRUG',length('NODRUG')) then begin
              MapFlag.boNODRUG := True;
              Continue;
            end;
            if CompareLStr(s34,'MINE',length('MINE')) then begin
              MapFlag.boMINE := True;
              Continue;
            end;
            if CompareLStr(s34,'NOPOSITIONMOVE',length('NOPOSITIONMOVE')) then begin
              MapFlag.boNOPOSITIONMOVE := True;
              Continue;
            end;
           if CompareLStr(s34, 'FIGHTPK', Length('FIGHTPK')) then begin //PK可以爆装备不红名
            MapFlag.boFIGHTPK := True;
            Continue;
          end;
           if CompareLStr(s34, 'NOTALLOWUSEMAGIC', Length('NOTALLOWUSEMAGIC')) then begin //增加不允许使用魔法
            MapFlag.boNOTALLOWUSEMAGIC := True;
            ArrestStringEx(s34, '(', ')', s38);
            MapFlag.sUnAllowMagicText := Trim(s38);
            Continue;
          end;
          if CompareLStr(s34, 'NOALLOWUSEITEMS', Length('NOALLOWUSEITEMS')) then begin //增加不允许使用物品

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -