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

📄 m2share.~pas

📁 翎风世界..传奇服务端..DELPHI源代码 包括DBServer,LogDataServer,LoginGate,LoginSrv,M2Server等..内容齐全.
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
  sSCL_GUILDWAR    = '@@guildwar';
  sDONATE          = '@@donate';
  sREQUESTCASTLEWAR= '@requestcastlewarnow';

  sCASTLENAME      = '@@castlename';
  sWITHDRAWAL      = '@@withdrawal';
  sRECEIPTS        = '@@receipts';
  sOPENMAINDOOR    = '@openmaindoor';
  sCLOSEMAINDOOR   = '@closemaindoor';
  sREPAIRDOORNOW   = '@repairdoornow';
  sREPAIRWALLNOW1  = '@repairwallnow1';
  sREPAIRWALLNOW2  = '@repairwallnow2';
  sREPAIRWALLNOW3  = '@repairwallnow3';
  sHIREARCHERNOW   = '@hirearchernow';
  sHIREGUARDNOW    = '@hireguardnow';
  sHIREGUARDOK     = '@hireguardok';
  sMarket_Def      = 'Market_Def\';
  sNpc_def         = 'Npc_def\';
type

  TItemBind = record
    nMakeIdex:Integer;
    nItemIdx :Integer;
    sBindName:String[20];
  end;
  pTItemBind = ^TItemBind;
  TConsoleData = packed record
    nCrcExtInt   :Integer;
    nCrcDllInt   :Integer;
  end;
  pTConsoleData = ^TConsoleData;
{$IF OEMVER = OEM775}
  TLevelInfo = record
    wHP        :Word;
    wMP        :Word;
    dwExp      :LongWord;
    wAC        :Word;
    wMaxAC     :Word;
    wACLimit   :Word;
    wMAC       :Word;
    wMaxMAC    :Word;
    wMACLimit  :Word;
    wDC        :Word;
    wMaxDC     :Word;
    wDCLimit   :Word;
    dwDCExp    :LongWord;
    wMC        :Word;
    wMaxMC     :Word;
    wMCLimit   :Word;
    dwMCExp    :LongWord;
    wSC        :Word;
    wMaxSC     :Word;
    wSCLimit   :Word;
    dwSCExp    :LongWord;
  end;
{$IFEND}
  {
  TScriptACTMsg = record
    nCode      :Integer;  //0x00
    sParam1    :String;   //0x04
    nParam1    :Integer;  //0x08
    sParam2    :String;   //0x0C
    nParam2    :Integer;  //0x10
    sParam3    :String;   //0x14
    nParam3    :Integer;  //0x18
  end;
  }

procedure SetProcessName(sName:String);
procedure CopyStdItemToOStdItem(StdItem:pTStdItem;OStdItem:pTOStdItem);
function  GetExVersionNO(nVersionDate:Integer; var nOldVerstionDate:Integer):Integer;
function  GetNextDirection (sx, sy, dx, dy: Integer): byte;
function  LoadLineNotice(FileName:String):Boolean;
function  GetMultiServerAddrPort(btServerIndex:Byte;var sIPaddr:String;var nPort:Integer):Boolean;
procedure MainOutMessage(Msg:String);

function  AddDateTimeOfDay(DateTime:TDateTime;nDay:Integer):TDateTime;
function  GetGoldShape(nGold:Integer):Word;//金币在地上显示的外形ID
function  GetRandomLook(nBaseLook,nRage:Integer):Integer;
function  FilterShowName(sName:String):String;
function  CheckGuildName(sGuildName:String):Boolean;
function  CheckUserItems(nIdx:integer;StdItem:TItem):Boolean;
function  GetItemNumber():Integer;
function  GetItemNumberEx():Integer;
function  sub_4B2F80(nDir,nRage:Integer):Byte;
function  GetValNameNo(sText:String):Integer;
function  IsAccessory(nIndex:Integer):Boolean;
function  GetMakeItemInfo(sItemName:String):TStringList;
procedure AddLogonCostLog(sMsg:String);
procedure AddGameDataLog(sMsg:String);
procedure TrimStringList(sList:TStringList);
function CanMakeItem(sItemName:String):Boolean;
function CanMoveMap(sMapName:String):Boolean;
function CanSellItem(sItemName:String):Boolean;
function LoadMonSayMsg():Boolean;
function LoadItemBindIPaddr():Boolean;
function SaveItemBindIPaddr():Boolean;
function LoadItemBindAccount():Boolean;
function SaveItemBindAccount():Boolean;
function LoadItemBindCharName():Boolean;
function SaveItemBindCharName():Boolean;
function LoadDisableMakeItem():Boolean;
function SaveDisableMakeItem():Boolean;
function LoadUnMasterList():Boolean;
function SaveUnMasterList():Boolean;
function LoadUnForceMasterList():Boolean;
function SaveUnForceMasterList():Boolean;
function LoadEnableMakeItem():Boolean;
function SaveEnableMakeItem():Boolean;
function LoadDisableMoveMap():Boolean;
function SaveDisableMoveMap():Boolean;
function LoadAllowSellOffItem():Boolean;
function SaveAllowSellOffItem():Boolean;
function SaveChatLog():Boolean;

function GetUseItemName(nIndex:Integer):String;
function GetUseItemIdx(sName:String):Integer;
function LoadMonDropLimitList():Boolean;
function SaveMonDropLimitList():Boolean;
function LoadDisableTakeOffList():Boolean;
function SaveDisableTakeOffList():Boolean;
function InDisableTakeOffList(nItemIdx:Integer):Boolean;
function LoadDisableSendMsgList():Boolean;
function SaveDisableSendMsgList():Boolean;
function GetDisableSendMsgList(sHumanName:String):Boolean;
function LoadGameLogItemNameList():Boolean;
function GetGameLogItemNameList(sItemName:String):Byte;
function SaveGameLogItemNameList():Boolean;
function LoadDenyIPAddrList():Boolean;
function GetDenyIPAddrList(sIPaddr:String):Boolean;
function SaveDenyIPAddrList():Boolean;
function LoadDenyAccountList():Boolean;
function GetDenyAccountList(sAccount:String):Boolean;
function SaveDenyAccountList():Boolean;
function LoadDenyChrNameList():Boolean;
function GetDenyChrNameList(sChrName:String):Boolean;
function SaveDenyChrNameList():Boolean;
function LoadNoClearMonList():Boolean;
function GetNoClearMonList(sMonName:String):Boolean;
function SaveNoClearMonList():Boolean;
procedure LoadExp();
procedure LoadGameCommand();
procedure LoadString();
procedure LoadConfig();
function GetRGB(c256:Byte):TColor;stdcall;
procedure SendGameCenterMsg(wIdent:Word;sSendMsg:String);
function  GetIPLocal(sIPaddr:String):String;
function  IsCheapStuff(tByte:Byte):Boolean;
function  CompareIPaddr(sIPaddr,dIPaddr:String):Boolean;
var
  RemoteXORKey:Integer = -1;
  LocalXORKey:Integer = -2;
  M2ServerVersion:Single = 2;
  g_nGetLicenseInfo:Integer = -1;
  g_nM2Crc:integer;
  g_dwGameCenterHandle:THandle;
  IsDebuggerPresent:function():Boolean;stdcall;
  CheckVersion     :TCheckVersion = nil;
  nCheckVersion    :Integer = -1;
  //CertCheck         :TList; //用于检查角色创建释放
  //EventCheck         :TList; //用于检查事件创建释放
{$IF OEMVER = OEM775}
  Level775          :TIniFile;
{$IFEND}
  Config            :TIniFile;
  ExpConf           :TIniFile;
  CommandConf       :TIniFile;
  StringConf        :TIniFile;
  Memo              :TMemo;
  nServerIndex      :Integer = 0;      //0x004EBC04
  RunSocket         :TRunSocket;       //0x004EBB84
  MainLogMsgList    :TStringList;      //0x004EBC60
  LogStringList     :TStringList;      //0x004EBC64
  LogonCostLogList  :TStringList;      //0x004EBC68
  g_MapManager      :TMapManager;       //0x004EBB90
  ItemUnit          :TItemUnit;
  MagicManager      :TMagicManager;    //0x004EBB98
  NoticeManager     :TNoticeManager;   //0x004EBB9C
  g_GuildManager    :TGuildManager;    //0x004EBBA0
  g_EventManager    :TEventManager;    //0x004EBBA4
  g_CastleManager   :TCastleManager;
//  g_UserCastle        :TUserCastle;      //0x004EBBA8
  FrontEngine       :TFrontEngine;     //0x004EBB88
  UserEngine        :TUserEngine;      //0x004EBB8C
  RobotManage       :TRobotManage;
  g_MakeItemList    :TStringList;      //0x004EBBAC
  g_StartPoint      :TGList;
  g_RedStartPoint   :TStartPoint;
  ServerTableList   :TList;            //0x004EBBB4
  g_DenySayMsgList  :TQuickList;       //0x004EBBB8
  MiniMapList       :TStringList;      //0x004EBBBC
  g_UnbindList      :TStringList;      //0x004EBBC0
  LineNoticeList    :TStringList;      //0x004EBBC4
  QuestDiaryList    :TList;            //0x004EBBC8
  ItemEventList     :TStringList;      //0x004EBBCC
  AbuseTextList     :TStringList;      //0x004EBBD0
  g_MonSayMsgList   :TStringList;        //怪物说明信息列表
  g_DisableMakeItemList :TGStringList;   //禁止制造物品列表
  g_EnableMakeItemList  :TGStringList;   //禁止制造物品列表
  g_DisableSellOffList  :TGStringList;
  g_DisableMoveMapList  :TGStringList;   //禁止移动地图列表
  g_ItemNameList        :TGList;   //物品别名列表
  g_DisableSendMsgList  :TGStringList;   //禁止发信息名称列表
  g_MonDropLimitLIst    :TGStringList;   //怪物爆物品限制
  g_DisableTakeOffList  :TGStringList;   //禁止取下物品列表
  g_ChatLoggingList :TGStringList;

  g_ItemBindIPaddr      :TGList;
  g_ItemBindAccount     :TGList;
  g_ItemBindCharName    :TGList;
  g_UnMasterList        :TGStringList;  //出师记录表
  g_UnForceMasterList   :TGStringList;  //强行出师记录表
  g_GameLogItemNameList :TGStringList;  //游戏日志物品名
  g_boGameLogGold       :Boolean;
  g_boGameLogGameGold   :Boolean;
  g_boGameLogGamePoint  :Boolean;
  g_boGameLogHumanDie   :Boolean;
  g_DenyIPAddrList      :TGStringList;  //IP过滤列表
  g_DenyChrNameList     :TGStringList;  //角色过滤列表
  g_DenyAccountList     :TGStringList;  //登录帐号过滤列表
  g_NoClearMonLIst      :TGStringList;  //不清除怪物列表
  n4EBBD0               :Integer;


  LogMsgCriticalSection             :TRTLCriticalSection;  //0x4EBC40
  ProcessMsgCriticalSection         :TRTLCriticalSection;  //0x4EBC44
  UserDBSection                     :TRTLCriticalSection;
  ProcessHumanCriticalSection       :TRTLCriticalSection;

  

  CS_6              :TCriticalSection;  //0x4EBC58
  //MD5               :TMD5;
//  sDBSocStr         :String;            //0x4EBC84
//  boGetHumDataBusy  :Boolean;           //0x4EBC88
  g_nTotalHumCount    :integer;           //0x004EB3C3
//  g_nLoadHumanDBErrorCount :Integer; //0x4EBC8C           :Integer;
//  g_nLoadHumanDBCount      :Integer;  //0x4EBC90
//  g_nSaveHumanDBCount      :Integer;//0x4EBC94           :Integer;
//  g_nHumanDBQueryID        :SmallInt;//0x4EBC7C           :SmallInt;
  g_boMission       :Boolean;
  g_sMissionMap     :String;
  g_nMissionX       :Integer;
  g_nMissionY       :Integer;

  boStartReady      :Boolean;           //0x4EBC78
  g_boExitServer    :Boolean;           //004EBC79
  boFilterWord      :Boolean;

  sLogFileName      :String;  //004EBBFC
  nRunTimeMin       :Integer;
  nRunTimeMax       :Integer;
  {
  dwSockCountMin    :LongWord;
  dwSockCountMax    :LongWord;
  dwUsrTimeMin      :LongWord;
  dwUsrTimeMax      :LongWord;
  dwHumCountMin     :LongWord;
  dwHumCountMax     :LongWord;
  dwMonTimeMin      :LongWord;
  dwMonTimeMax      :LongWord;
  dwUsrRotCountMin  :LongWord;
  dwUsrRotCountMax  :LongWord;
  }
  g_nBaseObjTimeMin  :Integer;
  g_nBaseObjTimeMax  :Integer;
  g_nSockCountMin    :Integer;
  g_nSockCountMax    :Integer;
  g_nUsrTimeMin      :Integer;
  g_nUsrTimeMax      :Integer;
  g_nHumCountMin     :Integer;
  g_nHumCountMax     :Integer;
  g_nMonTimeMin      :Integer;
  g_nMonTimeMax      :Integer;
  g_nMonGenTime     :Integer;
  g_nMonGenTimeMin  :Integer;
  g_nMonGenTimeMax  :Integer;
  g_nMonProcTime    :Integer;
  g_nMonProcTimeMin :Integer;
  g_nMonProcTimeMax :Integer;
  dwUsrRotCountMin  :Integer;
  dwUsrRotCountMax  :Integer;

  g_dwUsrRotCountTick :LongWord; //0x4EBD48          :LongWord;
  g_nProcessHumanLoopTime  :Integer; //0x004EBD54    //处理人物列表循环次数
  g_dwHumLimit        :LongWord = 30;   //0x4EBD98
  g_dwMonLimit        :LongWord = 30;   //0x4EBD9C
  g_dwZenLimit        :LongWord = 5;    //0x4EBDA0
  g_dwNpcLimit        :LongWord = 5;    //0x4EBDA4
  g_dwSocLimit        :LongWord = 10;   //0x4EBDA8
  g_dwSocCheckTimeOut :LongWord = 50;//2 * 1000;
  nDecLimit           :Integer  = 20;   //0x4EBDAC

  nShiftUsrDataNameNo :Integer;
{$IF OEMVER = OEM775}
  sConfig775FileName:String = '.\775.txt';
{$IFEND}
  sConfigFileName   :String = '.\!Setup.txt';
  sExpConfigFileName:String = '.\Exps.ini';
  sCommandFileName  :String = '.\Command.ini';
  sStringFileName   :String = '.\String.ini';

  dwRunDBTimeMax      :LongWord; //0x004EBC98
  g_dwStartTick       :LongWord; //0x004EBD14

  g_dwRunTick          :LongWord; //0x4EBD18;
  n4EBD1C           :Integer;

  g_nGameTime       :Integer;

  g_sMonGenInfo1    :String;  //0x4EBD58
  g_sMonGenInfo2    :String;  //0x4EBD78
  g_sProcessName    :String;
  g_sOldProcessName :String;


  g_ManageNPC         :TNormNpc;
  g_RobotNPC          :TNormNpc;
  g_FunctionNPC       :TMerchant;
  g_DynamicVarList    :TList;
  nCurrentMonthly   :Integer;    //0x004EBD00
  nTotalTimeUsage   :Integer;    //0x004EBD04
  nLastMonthlyTotalUsage :Integer;  //0x004EBD08
  nGrossTotalCnt    :Integer;    //0x004EBD0C
  nGrossResetCnt    :Integer;    //0x004EBD10
  n4EBB68           :Integer;    //0x004EBB68
  n4EBB6C           :Integer;    //0x004EBB6C


  ColorTable:array[0..255] of TRGBQuad;
  ColorArray:array[0..1023] of Byte =(
        $00, $00, $00, $00, $00, $00, $80, $00, $00, $80, $00, $00, $00, $80, $80, $00,
	$80, $00, $00, $00, $80, $00, $80, $00, $80, $80, $00, $00, $C0, $C0, $C0, $00,
	$97, $80, $55, $00, $C8, $B9, $9D, $00, $73, $73, $7B, $00, $29, $29, $2D, $00,
	$52, $52, $5A, $00, $5A, $5A, $63, $00, $39, $39, $42, $00, $18, $18, $1D, $00,
	$10, $10, $18, $00, $18, $18, $29, $00, $08, $08, $10, $00, $71, $79, $F2, $00,
	$5F, $67, $E1, $00, $5A, $5A, $FF, $00, $31, $31, $FF, $00, $52, $5A, $D6, $00,
	$00, $10, $94, $00, $18, $29, $94, $00, $00, $08, $39, $00, $00, $10, $73, $00,
	$00, $18, $B5, $00, $52, $63, $BD, $00, $10, $18, $42, $00, $99, $AA, $FF, $00,
	$00, $10, $5A, $00, $29, $39, $73, $00, $31, $4A, $A5, $00, $73, $7B, $94, $00,
	$31, $52, $BD, $00, $10, $21, $52, $00, $18, $31, $7B, $00, $10, $18, $2D, $00,
	$31, $4A, $8C, $00, $00, $29, $94, $00, $00, $31, $BD, $00, $52, $73, $C6, $00,
	$18, $31, $6B, $00, $42, $6B, $C6, $00, $00, $4A, $CE, $00, $39, $63, $A5, $00,
	$18, $31, $5A, $00, $00, $10, $2A, $00, $00, $08, $15, $00, $00, $18, $3A, $00,
	$00, $00, $08, $00, $00, $00, $29, $00, $00, $00, $4A, $00, $00, $00, $9D, $00,

⌨️ 快捷键说明

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