📄 m2share.pas
字号:
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);
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;
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 LoadGameCommand();
procedure LoadString();
{$IF IniSystem = 1}
procedure LoadSettings;
procedure SaveSettings;
{$ELSE}
procedure LoadExp();
procedure LoadConfig();
{$IFEND}
function GetRGB(c256:Byte):TColor;stdcall;
procedure SendGameCenterMsg(wIdent:Word;sSendMsg:String);
function GetIPLocal(sIPaddr:String):String;
function IsCheapStuff(StdMode:Byte):Boolean;
function CompareIPaddr(sIPaddr,dIPaddr:String):Boolean;
var
g_dwGameCenterHandle:THandle;
IsDebuggerPresent:function():Boolean;stdcall;
//CertCheck :TList;
//EventCheck :TList;
{$IF OEMVER = OEM775}
Level775 :TIniFile;
{$IFEND}
Config :TIniFile;
SqlConf :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_GuildTerritory :TGTManager;
// 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
BigMapList :TStringList;
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;
g_DenyChrNameList :TGStringList;
g_DenyAccountList :TGStringList;
g_NoClearMonLIst :TGStringList;
n4EBBD0 :Integer;
g_DecorationList :TList;
g_GameShopItemList :TList;
g_MapEventListOfDropItem: TGList;
g_MapEventListOfPickUpItem: TGList;
g_MapEventListOfMine: TGList;
g_MapEventListOfWalk: TGList;
g_MapEventListOfRun: TGList;
LogMsgCriticalSection :TRTLCriticalSection; //0x4EBC40
ProcessMsgCriticalSection :TRTLCriticalSection; //0x4EBC44
UserDBSection :TRTLCriticalSection;
ProcessHumanCriticalSection :TRTLCriticalSection;
// 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
sUsrLogFileName :String = '.\UsrLog.txt';
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';
sSqlConfigFileName:String = '.\SqlConnect.ini';
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
//(火龙代码)
nEMDrops :Integer;//holds how often em part has dropped this round
nEMKills :Integer;//total times em been killed since reboot
nEMHitCount :Integer;//counter to keep track of how often empart been hit
dwEMSpellTick :LongWord;//to avoid all the fake parts using the spell use one common timer
dwEMDied :LongWord;//keep track of em's alive/dead and when
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,
$00, $00, $DC, $00, $00, $00, $DE, $00, $00, $00, $FB, $00, $52, $73, $9C, $00,
$4A, $6B, $94, $00, $29, $4A, $73, $00, $18, $31, $52, $00, $18, $4A, $8C, $00,
$11, $44, $88, $00, $00, $21, $4A, $00, $10, $18, $21, $00, $5A, $94, $D6, $00,
$21, $6B, $C6, $00, $00, $6B, $EF, $00, $00, $77, $FF, $00, $84, $94, $A5, $00,
$21, $31, $42, $00, $08, $10, $18, $00, $08, $18, $29, $00, $00, $10, $21, $00,
$18, $29, $39, $00, $39, $63, $8C, $00, $10, $29, $42, $00, $18, $42, $6B, $00,
$18, $4A, $7B, $00, $00, $4A, $94, $00, $7B, $84, $8C, $00, $5A, $63, $6B, $00,
$39, $42, $4A, $00, $18, $21, $29, $00, $29, $39, $46, $00, $94, $A5, $B5, $00,
$5A, $6B, $7B, $00, $94, $B1, $CE, $00, $73, $8C, $A5, $00, $5A, $73, $8C, $00,
$73, $94, $B5, $00, $73, $A5, $D6, $00, $4A, $A5, $EF, $00, $8C, $C6, $EF, $00,
$42, $63, $7B, $00, $39, $56, $6B, $00, $5A, $94, $BD, $00, $00, $39, $63, $00,
$AD, $C6, $D6, $00, $29, $42, $52, $00, $18, $63, $94, $00, $AD, $D6, $EF, $00,
$63, $8C, $A5, $00, $4A, $5A, $63, $00, $7B, $A5, $BD, $00, $18, $42, $5A, $00,
$31, $8C, $BD, $00, $29, $31, $35, $00, $63, $84, $94, $00, $4A, $6B, $7B, $00,
$5A, $8C, $A5, $00, $29, $4A, $5A, $00, $39, $7B, $9C, $00, $10, $31, $42, $00,
$21, $AD, $EF, $00, $00, $10, $18, $00, $00, $21, $29, $00, $00, $6B, $9C, $00,
$5A, $84, $94, $00, $18, $42, $52, $00, $29, $5A, $6B, $00, $21, $63, $7B, $00,
$21, $7B, $9C, $00, $00, $A5, $DE, $00, $39, $52, $5A, $00, $10, $29, $31, $00,
$7B, $BD, $CE, $00, $39, $5A, $63, $00, $4A, $84, $94, $00, $29, $A5, $C6, $00,
$18, $9C, $10, $00, $4A, $8C, $42, $00, $42, $8C, $31, $00, $29, $94, $10, $00,
$10, $18, $08, $00, $18, $18, $08, $00, $10, $29, $08, $00, $29, $42, $18, $00,
$AD, $B5, $A5, $00, $73, $73, $6B, $00, $29, $29, $18, $00, $4A, $42, $18, $00,
$4A, $42, $31, $00, $DE, $C6, $63, $00, $FF, $DD, $44, $00, $EF, $D6, $8C, $00,
$39, $6B, $73, $00, $39, $DE, $F7, $00, $8C, $EF, $F7, $00, $00, $E7, $F7, $00,
$5A, $6B, $6B, $00, $A5, $8C, $5A, $00, $EF, $B5, $39, $00, $CE, $9C, $4A, $00,
$B5, $84, $31, $00, $6B, $52, $31, $00, $D6, $DE, $DE, $00, $B5, $BD, $BD, $00,
$84, $8C, $8C, $00, $DE, $F7, $F7, $00, $18, $08, $00, $00, $39, $18, $08, $00,
$29, $10, $08, $00, $00, $18, $08, $00, $00, $29, $08, $00, $A5, $52, $00, $00,
$DE, $7B, $00, $00, $4A, $29, $10, $00, $6B, $39, $10, $00, $8C, $52, $10, $00,
$A5, $5A, $21, $00, $5A, $31, $10, $00, $84, $42, $10, $00, $84, $52, $31, $00,
$31, $21, $18, $00, $7B, $5A, $4A, $00, $A5, $6B, $52, $00, $63, $39, $29, $00,
$DE, $4A, $10, $00, $21, $29, $29, $00, $39, $4A, $4A, $00, $18, $29, $29, $00,
$29, $4A, $4A, $00, $42, $7B, $7B, $00, $4A, $9C, $9C, $00, $29, $5A, $5A, $00,
$14, $42, $42, $00, $00, $39, $39, $00, $00, $59, $59, $00, $2C, $35, $CA, $00,
$21, $73, $6B, $00, $00, $31, $29, $00, $10, $39, $31, $00, $18, $39, $31, $00,
$00, $4A, $42, $00, $18, $63, $52, $00, $29, $73, $5A, $00, $18, $4A, $31, $00,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -