📄 svmain.pas
字号:
unit svMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, JSocket, ExtCtrls, Buttons, StdCtrls, IniFiles, M2Share,
Grobal2, SDK, HUtil32, RunSock, Envir, ItmUnit, Magic, NoticeM, Guild, Event,
Castle, FrnEngn, UsrEngn, MudUtil, SyncObjs, Menus, ComCtrls, Grids, ObjBase,
IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, RzCommon, Common,
RzEdit, RzPanel, RzSplit, RzGrids, ImgList;
type
TFrmMain = class(TForm)
Timer1: TTimer;
RunTimer: TTimer;
DBSocket: TClientSocket;
ConnectTimer: TTimer;
StartTimer: TTimer;
SaveVariableTimer: TTimer;
CloseTimer: TTimer;
MainMenu: TMainMenu;
MENU_CONTROL: TMenuItem;
MENU_CONTROL_EXIT: TMenuItem;
MENU_CONTROL_RELOAD_CONF: TMenuItem;
MENU_CONTROL_CLEARLOGMSG: TMenuItem;
MENU_HELP: TMenuItem;
MENU_HELP_ABOUT: TMenuItem;
MENU_MANAGE: TMenuItem;
MENU_CONTROL_RELOAD: TMenuItem;
MENU_CONTROL_RELOAD_ITEMDB: TMenuItem;
MENU_CONTROL_RELOAD_MAGICDB: TMenuItem;
MENU_CONTROL_RELOAD_MONSTERDB: TMenuItem;
MENU_MANAGE_PLUG: TMenuItem;
MENU_OPTION: TMenuItem;
MENU_OPTION_GENERAL: TMenuItem;
MENU_OPTION_SERVERCONFIG: TMenuItem;
MENU_OPTION_GAME: TMenuItem;
MENU_OPTION_FUNCTION: TMenuItem;
MENU_CONTROL_RELOAD_MONSTERSAY: TMenuItem;
MENU_CONTROL_RELOAD_DISABLEMAKE: TMenuItem;
MENU_CONTROL_GATE: TMenuItem;
MENU_CONTROL_GATE_OPEN: TMenuItem;
MENU_CONTROL_GATE_CLOSE: TMenuItem;
MENU_VIEW: TMenuItem;
MENU_VIEW_SESSION: TMenuItem;
MENU_VIEW_ONLINEHUMAN: TMenuItem;
MENU_VIEW_LEVEL: TMenuItem;
MENU_VIEW_LIST: TMenuItem;
MENU_MANAGE_ONLINEMSG: TMenuItem;
MENU_VIEW_KERNELINFO: TMenuItem;
MENU_TOOLS: TMenuItem;
MENU_TOOLS_MERCHANT: TMenuItem;
MENU_TOOLS_NPC: TMenuItem;
MENU_OPTION_ITEMFUNC: TMenuItem;
MENU_TOOLS_MONGEN: TMenuItem;
MENU_CONTROL_RELOAD_STARTPOINT: TMenuItem;
G1: TMenuItem;
MENU_OPTION_MONSTER: TMenuItem;
MENU_TOOLS_IPSEARCH: TMenuItem;
MENU_MANAGE_CASTLE: TMenuItem;
MENU_HELP_REGKEY: TMenuItem;
IdUDPClientLog: TIdUDPClient;
RzSplitter: TRzSplitter;
MemoLog: TRzMemo;
RzSplitter1: TRzSplitter;
Panel: TRzPanel;
Label1: TLabel;
Label2: TLabel;
Label20: TLabel;
Label5: TLabel;
Lbcheck: TLabel;
LbRunSocketTime: TLabel;
LbRunTime: TLabel;
LbTimeCount: TLabel;
LbUserCount: TLabel;
MemStatus: TLabel;
GridGate: TRzStringGrid;
QFunction1: TMenuItem;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure MemoLogChange(Sender: TObject);
procedure MemoLogDblClick(Sender: TObject);
procedure MENU_CONTROL_EXITClick(Sender: TObject);
procedure MENU_CONTROL_RELOAD_CONFClick(Sender: TObject);
procedure MENU_CONTROL_CLEARLOGMSGClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure MENU_CONTROL_RELOAD_ITEMDBClick(Sender: TObject);
procedure MENU_CONTROL_RELOAD_MAGICDBClick(Sender: TObject);
procedure MENU_CONTROL_RELOAD_MONSTERDBClick(Sender: TObject);
procedure MENU_HELP_ABOUTClick(Sender: TObject);
procedure MENU_OPTION_SERVERCONFIGClick(Sender: TObject);
procedure MENU_OPTION_GENERALClick(Sender: TObject);
procedure MENU_OPTION_GAMEClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MENU_OPTION_FUNCTIONClick(Sender: TObject);
procedure MENU_CONTROL_RELOAD_MONSTERSAYClick(Sender: TObject);
procedure MENU_CONTROL_RELOAD_DISABLEMAKEClick(Sender: TObject);
procedure MENU_CONTROL_GATE_OPENClick(Sender: TObject);
procedure MENU_CONTROL_GATE_CLOSEClick(Sender: TObject);
procedure MENU_CONTROLClick(Sender: TObject);
procedure MENU_VIEW_GATEClick(Sender: TObject);
procedure MENU_VIEW_SESSIONClick(Sender: TObject);
procedure MENU_VIEW_ONLINEHUMANClick(Sender: TObject);
procedure MENU_VIEW_LEVELClick(Sender: TObject);
procedure MENU_VIEW_LISTClick(Sender: TObject);
procedure MENU_MANAGE_ONLINEMSGClick(Sender: TObject);
procedure MENU_VIEW_KERNELINFOClick(Sender: TObject);
procedure MENU_TOOLS_MERCHANTClick(Sender: TObject);
procedure MENU_OPTION_ITEMFUNCClick(Sender: TObject);
procedure MENU_TOOLS_MONGENClick(Sender: TObject);
procedure MENU_CONTROL_RELOAD_STARTPOINTClick(Sender: TObject);
procedure MENU_MANAGE_PLUGClick(Sender: TObject);
procedure G1Click(Sender: TObject);
procedure MENU_OPTION_MONSTERClick(Sender: TObject);
procedure MENU_TOOLS_IPSEARCHClick(Sender: TObject);
procedure MENU_MANAGE_CASTLEClick(Sender: TObject);
procedure MENU_HELP_REGKEYClick(Sender: TObject);
procedure QFunction1Click(Sender: TObject);
private
boServiceStarted: Boolean;
procedure GateSocketClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure GateSocketClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
procedure GateSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure GateSocketClientRead(Sender: TObject; Socket: TCustomWinSocket);
procedure DBSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure DBSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure DBSocketRead(Sender: TObject; Socket: TCustomWinSocket);
procedure Timer1Timer(Sender: TObject);
procedure StartTimerTimer(Sender: TObject);
procedure CloseTimerTimer(Sender: TObject);
procedure SaveVariableTimerTimer(Sender: TObject);
procedure RunTimerTimer(Sender: TObject);
procedure ConnectTimerTimer(Sender: TObject);
procedure StartService();
procedure StopService();
procedure SaveItemNumber;
function LoadClientFile(): Boolean;
procedure StartEngine;
procedure MakeStoneMines;
procedure ReloadConfig(Sender: TObject);
procedure ClearMemoLog();
procedure CloseGateSocket();
{ Private declarations }
public
GateSocket: TServerSocket;
procedure AppOnIdle(Sender: TObject; var Done: Boolean);
procedure OnProgramException(Sender: TObject; E: Exception);
procedure SetMenu(); virtual;
procedure MyMessage(var MsgData: TWmCopyData); message WM_COPYDATA;
{ Public declarations }
end;
function LoadAbuseInformation(FileName: string): Boolean;
procedure LoadServerTable();
procedure WriteConLog(MsgList: TStringList);
procedure ChangeCaptionText(Msg: PChar; nLen: Integer); stdcall;
procedure UserEngineThread(ThreadInfo: pTThreadInfo); stdcall;
procedure ProcessGameRun();
procedure TFrmMain_ChangeGateSocket(boOpenGateSocket: Boolean; nCRCA: Integer); stdcall;
var
FrmMain: TFrmMain;
g_GateSocket: TServerSocket;
implementation
uses
LocalDB, InterServerMsg, InterMsgClient, IdSrvClient, FSrvValue, PlugIn,
GeneralConfig, GameConfig, FunctionConfig, ObjRobot, ViewSession,
ViewOnlineHuman, ViewLevel, ViewList, OnlineMsg, ViewKernelInfo,
ConfigMerchant, ItemSet, ConfigMonGen, PlugInManage, EDcode, EncryptUnit,
GameCommand, MonsterConfig, RunDB, CastleManage, PlugOfEngine, EngineRegister, AboutUnit;
//------------------------------------------------------------------------------
{PlugOfEngine}//引擎输出函数
exports
TList_Create Name 'TList_Create',
TList_Free Name 'TList_Free',
TList_Count Name 'TList_Count',
TList_Add Name 'TList_Add',
TList_Insert Name 'TList_Insert',
TList_Get Name 'TList_Get',
TList_Put Name 'TList_Put',
TList_Delete Name 'TList_Delete',
TList_Clear Name 'TList_Clear',
TList_Exchange Name 'TList_Exchange',
TStringList_Create Name 'TStringList_Create',
TStringList_Free Name 'TStringList_Free',
TStringList_Count Name 'TStringList_Count',
TStringList_Add Name 'TStringList_Add',
TStringList_AddObject Name 'TStringList_AddObject',
TStringList_Insert Name 'TStringList_Insert',
TStringList_Get Name 'TStringList_Get',
TStringList_GetObject Name 'TStringList_GetObject',
TStringList_Put Name 'TStringList_Put',
TStringList_PutObject Name 'TStringList_PutObject',
TStringList_Delete Name 'TStringList_Delete',
TStringList_Clear Name 'TStringList_Clear',
TStringList_Exchange Name 'TStringList_Exchange',
TStringList_LoadFormFile Name 'TStringList_LoadFormFile',
TStringList_SaveToFile Name 'TStringList_SaveToFile',
MainOutMessageAPI Name 'MainOutMessageAPI',
AddGameDataLogAPI Name 'AddGameDataLogAPI',
GetGameGoldName Name 'GetGameGoldName',
EDcode_Decode6BitBuf Name 'EDcode_Decode6BitBuf',
EDcode_Encode6BitBuf Name 'EDcode_Encode6BitBuf',
EDcode_SetDecode Name 'EDcode_SetDecode',
EDcode_SetEncode Name 'EDcode_SetEncode',
EDcode_DeCodeString Name 'EDcode_DeCodeString',
EDcode_EncodeString Name 'EDcode_EncodeString',
EDcode_EncodeBuffer Name 'EDcode_EncodeBuffer',
EDcode_DecodeBuffer Name 'EDcode_DecodeBuffer',
TConfig_AmyOunsulPoint Name 'TConfig_AmyOunsulPoint',
TConfig_sEnvirDir Name 'TConfig_sEnvirDir',
TBaseObject_Create Name 'TBaseObject_Create',
TBaseObject_Free Name 'TBaseObject_Free',
TBaseObject_sMapFileName Name 'TBaseObject_sMapFileName',
TBaseObject_sMapName Name 'TBaseObject_sMapName',
TBaseObject_sMapNameA Name 'TBaseObject_sMapNameA',
TBaseObject_sCharName Name 'TBaseObject_sCharName',
TBaseObject_sCharNameA Name 'TBaseObject_sCharNameA',
TBaseObject_nCurrX Name 'TBaseObject_nCurrX',
TBaseObject_nCurrY Name 'TBaseObject_nCurrY',
TBaseObject_btDirection Name 'TBaseObject_btDirection',
TBaseObject_btGender Name 'TBaseObject_btGender',
TBaseObject_btHair Name 'TBaseObject_btHair',
TBaseObject_btJob Name 'TBaseObject_btJob',
TBaseObject_nGold Name 'TBaseObject_nGold',
TBaseObject_Ability Name 'TBaseObject_Ability',
TBaseObject_WAbility Name 'TBaseObject_WAbility',
TBaseObject_nCharStatus Name 'TBaseObject_nCharStatus',
TBaseObject_sHomeMap Name 'TBaseObject_sHomeMap',
TBaseObject_nHomeX Name 'TBaseObject_nHomeX',
TBaseObject_nHomeY Name 'TBaseObject_nHomeY',
TBaseObject_boOnHorse Name 'TBaseObject_boOnHorse',
TBaseObject_btHorseType Name 'TBaseObject_btHorseType',
TBaseObject_btDressEffType Name 'TBaseObject_btDressEffType',
TBaseObject_nPkPoint Name 'TBaseObject_nPkPoint',
TBaseObject_boAllowGroup Name 'TBaseObject_boAllowGroup',
TBaseObject_boAllowGuild Name 'TBaseObject_boAllowGuild',
TBaseObject_nFightZoneDieCount Name 'TBaseObject_nFightZoneDieCount',
TBaseObject_nBonusPoint Name 'TBaseObject_nBonusPoint',
TBaseObject_nHungerStatus Name 'TBaseObject_nHungerStatus',
TBaseObject_boAllowGuildReCall Name 'TBaseObject_boAllowGuildReCall',
TBaseObject_duBodyLuck Name 'TBaseObject_duBodyLuck',
TBaseObject_nBodyLuckLevel Name 'TBaseObject_nBodyLuckLevel',
TBaseObject_wGroupRcallTime Name 'TBaseObject_wGroupRcallTime',
TBaseObject_boAllowGroupReCall Name 'TBaseObject_boAllowGroupReCall',
TBaseObject_nCharStatusEx Name 'TBaseObject_nCharStatusEx',
TBaseObject_dwFightExp Name 'TBaseObject_dwFightExp',
TBaseObject_nViewRange Name 'TBaseObject_nViewRange',
TBaseObject_wAppr Name 'TBaseObject_wAppr',
TBaseObject_btRaceServer Name 'TBaseObject_btRaceServer',
TBaseObject_btRaceImg Name 'TBaseObject_btRaceImg',
TBaseObject_btHitPoint Name 'TBaseObject_btHitPoint',
TBaseObject_nHitPlus Name 'TBaseObject_nHitPlus',
TBaseObject_nHitDouble Name 'TBaseObject_nHitDouble',
TBaseObject_boRecallSuite Name 'TBaseObject_boRecallSuite',
TBaseObject_nHealthRecover Name 'TBaseObject_nHealthRecover',
TBaseObject_nSpellRecover Name 'TBaseObject_nSpellRecover',
TBaseObject_btAntiPoison Name 'TBaseObject_btAntiPoison',
TBaseObject_nPoisonRecover Name 'TBaseObject_nPoisonRecover',
TBaseObject_nAntiMagic Name 'TBaseObject_nAntiMagic',
TBaseObject_nLuck Name 'TBaseObject_nLuck',
TBaseObject_nPerHealth Name 'TBaseObject_nPerHealth',
TBaseObject_nPerHealing Name 'TBaseObject_nPerHealing',
TBaseObject_nPerSpell Name 'TBaseObject_nPerSpell',
TBaseObject_btGreenPoisoningPoint Name 'TBaseObject_btGreenPoisoningPoint',
TBaseObject_nGoldMax Name 'TBaseObject_nGoldMax',
TBaseObject_btSpeedPoint Name 'TBaseObject_btSpeedPoint',
TBaseObject_btPermission Name 'TBaseObject_btPermission',
TBaseObject_nHitSpeed Name 'TBaseObject_nHitSpeed',
TBaseObject_TargetCret Name 'TBaseObject_TargetCret',
TBaseObject_LastHiter Name 'TBaseObject_LastHiter',
TBaseObject_ExpHiter Name 'TBaseObject_ExpHitter',
TBaseObject_btLifeAttrib Name 'TBaseObject_btLifeAttrib',
TBaseObject_GroupOwner Name 'TBaseObject_GroupOwner',
TBaseObject_GroupMembersList Name 'TBaseObject_GroupMembersList',
TBaseObject_boHearWhisper Name 'TBaseObject_boHearWhisper',
TBaseObject_boBanShout Name 'TBaseObject_boBanShout',
TBaseObject_boBanGuildChat Name 'TBaseObject_boBanGuildChat',
TBaseObject_boAllowDeal Name 'TBaseObject_boAllowDeal',
TBaseObject_nSlaveType Name 'TBaseObject_nSlaveType',
TBaseObject_Master Name 'TBaseObject_Master',
TBaseObject_btAttatckMode Name 'TBaseObject_btAttatckMode',
TBaseObject_btNameColor Name 'TBaseObject_btNameColor',
TBaseObject_nLight Name 'TBaseObject_nLight',
TBaseObject_ItemList Name 'TBaseObject_ItemList',
TBaseObject_MagicList Name 'TBaseObject_MagicList',
TBaseObject_MyGuild Name 'TBaseObject_MyGuild',
TBaseObject_UseItems Name 'TBaseObject_UseItems',
TBaseObject_btMonsterWeapon Name 'TBaseObject_btMonsterWeapon',
TBaseObject_PEnvir Name 'TBaseObject_PEnvir',
TBaseObject_boGhost Name 'TBaseObject_boGhost',
TBaseObject_boDeath Name 'TBaseObject_boDeath',
TBaseObject_DeleteBagItem Name 'TBaseObject_DeleteBagItem',
TBaseObject_AddCustomData Name 'TBaseObject_AddCustomData',
TBaseObject_GetCustomData Name 'TBaseObject_GetCustomData',
TBaseObject_SendMsg Name 'TBaseObject_SendMsg',
TBaseObject_SendRefMsg Name 'TBaseObject_SendRefMsg',
TBaseObject_SendDelayMsg Name 'TBaseObject_SendDelayMsg',
TBaseObject_SysMsg Name 'TBaseObject_SysMsg',
TBaseObject_GetFrontPosition Name 'TBaseObject_GetFrontPosition',
TBaseObject_GetRecallXY Name 'TBaseObject_GetRecallXY',
TBaseObject_SpaceMove Name 'TBaseObject_SpaceMove',
TBaseObject_FeatureChanged Name 'TBaseObject_FeatureChanged',
TBaseObject_StatusChanged Name 'TBaseObject_StatusChanged',
TBaseObject_GetFeatureToLong Name 'TBaseObject_GetFeatureToLong',
TBaseObject_GetFeature Name 'TBaseObject_GetFeature',
TBaseObject_GetCharColor Name 'TBaseObject_GetCharColor',
TBaseObject_GetNamecolor Name 'TBaseObject_GetNamecolor',
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -