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

📄 plugofengine.~pas

📁 飘飘的传奇服务端院代码 能编译的 要控件 老大就让我传上去吧
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
function TMagicManager_MagMakeFireball(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagTreatment(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; var nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeHellFire(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeQuickLighting(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; var nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeLighting(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeFireCharm(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeUnTreatment(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;

function TMagicManager_MagMakeLivePlayObject(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeArrestObject(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagChangePosition(MagicManager: TMagicManager;PlayObject: TPlayObject; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagMakeFireDay(MagicManager: TMagicManager;PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;

procedure TRunSocket_CloseUser(GateIdx, nSocket: Integer); stdcall;
procedure TRunSocket_SetHookExecGateMsgOpen(RunSocketExecGateMsg: TRunSocketObject_Open); stdcall;
procedure TRunSocket_SetHookExecGateMsgClose(RunSocketExecGateMsg: TRunSocketObject_Close); stdcall;
procedure TRunSocket_SetHookExecGateMsgEeceive_OK(RunSocketExecGateMsg: TRunSocketObject_Eeceive_OK); stdcall;
procedure TRunSocket_SetHookExecGateMsgData(RunSocketExecGateMsg: TRunSocketObject_Data); stdcall;

function TPlugOfEngine_GetProductVersion(): Integer; stdcall;
function TPlugOfEngine_GetUserVersion(): Integer; stdcall;
procedure TPlugOfEngine_SetUserLicense(nLimitNumber, nLimitUserCount: Integer); stdcall;
implementation
uses M2Share, HUtil32;
procedure TPlugOfEngine.InitPlugOfEngine;
var
  I: Integer;
begin
  GetFeature := nil;
  ObjectEnterAnotherMap := nil;
  ObjectDie := nil;
  ChangeCurrMap := nil;
  ClientQueryBagItems := nil;
  ClientQueryUserState := nil;
  SendActionGood := nil;
  SendActionFail := nil;
  SendWalkMsg := nil;
  SendHorseRunMsg := nil;
  SendRunMsg := nil;
  SendDeathMsg := nil;
  SendSkeletonMsg := nil;
  SendAliveMsg := nil;
  SendSpaceMoveMsg := nil;
  SendChangeFaceMsg := nil;
  SendUseitemsMsg := nil;
  SendUseMagicMsg := nil;
  SendUserLevelUpMsg := nil;
  SendUserAbilieyMsg := nil;
  SendUserStruckMsg := nil;
  SendSocket := nil;
  SendGoodsList := nil;
  SendUserStatusMsg := nil;
  CheckCanDropItem := nil;
  CheckCanDealItem := nil;
  CheckCanStorageItem := nil;
  CheckCanRepairItem := nil;
  CheckUserItems := nil;
  PlayObjectRun := nil;
  PlayObjectFilterMsg := nil;
  MerchantClientGetDetailGoodsList := nil;
  UserEngineRun := nil;
  ObjectClientMsg := nil;
  ObjectUserRunMsg := nil;
  SetHookDoSpell := nil;
  PlayObjectCreate := nil;
  PlayObjectDestroy := nil;
  PlayObjectUserCmd := nil;
  ObjectOperateMessage := nil;
  QuestActionScriptCmd := nil;
  QuestConditionScriptCmd := nil;
  ActionScriptProcess := nil;
  ConditionScriptProcess := nil;
  PlayObjectUserSelect := nil;
  PlayObjectUserLogin1 := nil;
  PlayObjectUserLogin2 := nil;
  PlayObjectUserLogin3 := nil;
  PlayObjectUserLogin4 := nil;
  RunSocketExecGateMsg_Open := nil;
  RunSocketExecGateMsg_Close := nil;
  RunSocketExecGateMsg_Eeceive_OK := nil;
  RunSocketExecGateMsg_Data := nil;

  for I := Low(PlayObjectCreateArray) to High(PlayObjectCreateArray) do begin
    PlayObjectCreateArray[I] := nil;
  end;
  for I := Low(PlayObjectDestroyArray) to High(PlayObjectDestroyArray) do begin
    PlayObjectDestroyArray[I] := nil;
  end;
  for I := Low(PlayObjectUserCmdArray) to High(PlayObjectUserCmdArray) do begin
    PlayObjectUserCmdArray[I] := nil;
  end;
  for I := Low(ObjectOperateMessageArray) to High(ObjectOperateMessageArray) do begin
    ObjectOperateMessageArray[I] := nil;
  end;
  for I := Low(QuestActionScriptCmdArray) to High(QuestActionScriptCmdArray) do begin
    QuestActionScriptCmdArray[I] := nil;
  end;
  for I := Low(QuestConditionScriptCmdArray) to High(QuestConditionScriptCmdArray) do begin
    QuestConditionScriptCmdArray[I] := nil;
  end;
  for I := Low(ActionScriptProcessArray) to High(ActionScriptProcessArray) do begin
    ActionScriptProcessArray[I] := nil;
  end;
  for I := Low(ConditionScriptProcessArray) to High(ConditionScriptProcessArray) do begin
    ConditionScriptProcessArray[I] := nil;
  end;
  for I := Low(PlayObjectUserSelectArray) to High(PlayObjectUserSelectArray) do begin
    PlayObjectUserSelectArray[I] := nil;
  end;
  for I := Low(UserEngineRunArray) to High(UserEngineRunArray) do begin
    UserEngineRunArray[I] := nil;
  end;
  nUserEngineRun := -1;
  nPlayObjectCreate := -1;
  nPlayObjectDestroy := -1;
  nPlayObjectUserCmd := -1;
  nObjectOperateMessage := -1;
  nQuestActionScriptCmd := -1;
  nQuestConditionScriptCmd := -1;
  nActionScriptProcess := -1;
  nConditionScriptProcess := -1;
  nPlayObjectUserSelect := -1;
end;
constructor TPlugOfEngine.Create();
begin
  inherited;
  PlugHandList := TStringList.Create;
  InitPlugOfEngine;
end;

destructor TPlugOfEngine.Destroy;
begin
  InitPlugOfEngine;
  PlugHandList.Free;
  inherited;
end;

function TPlugOfEngine.GetPlugByHandle(PlugHandle: THandle): Integer;
var
  I: Integer;
  Module: THandle;
begin
  Result := -1;
  for I := 0 to PlugHandList.Count - 1 do begin
    Module := THandle(PlugHandList.Objects[I]);
    if Module = PlugHandle then begin
      Result := I;
      break;
    end;
  end;
end;

procedure TPlugOfEngine.SetHookPlayObjectCreate(PlugHandle: THandle; ObjectAction: TObjectAction);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    PlayObjectCreateArray[nPlugNo] := ObjectAction;
    if nPlugNo > nPlayObjectCreate then begin
      PlayObjectCreate := ObjectAction;
      nPlayObjectCreate := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookPlayObjectDestroy(PlugHandle: THandle; ObjectAction: TObjectAction);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    PlayObjectDestroyArray[nPlugNo] := ObjectAction;
    if nPlugNo > nPlayObjectDestroy then begin
      PlayObjectDestroy := ObjectAction;
      nPlayObjectDestroy := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookPlayObjectUserCmd(PlugHandle: THandle; ObjectUserCmd: TObjectUserCmd);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    PlayObjectUserCmdArray[nPlugNo] := ObjectUserCmd;
    if nPlugNo > nPlayObjectUserCmd then begin
      PlayObjectUserCmd := ObjectUserCmd;
      nPlayObjectUserCmd := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookObjectOperateMessage(PlugHandle: THandle; PlayObjectOperateMessage: TObjectOperateMessage);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    ObjectOperateMessageArray[nPlugNo] := ObjectOperateMessage;
    if nPlugNo > nObjectOperateMessage then begin
      ObjectOperateMessage := PlayObjectOperateMessage;
      nObjectOperateMessage := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookQuestActionScriptCmd(PlugHandle: THandle; ScriptCmd: TScriptCmd);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    QuestActionScriptCmdArray[nPlugNo] := ScriptCmd;
    if nPlugNo > nQuestActionScriptCmd then begin
      QuestActionScriptCmd := ScriptCmd;
      nQuestActionScriptCmd := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookQuestConditionScriptCmd(PlugHandle: THandle; ScriptCmd: TScriptCmd);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    QuestConditionScriptCmdArray[nPlugNo] := ScriptCmd;
    if nPlugNo > nQuestConditionScriptCmd then begin
      QuestConditionScriptCmd := ScriptCmd;
      nQuestConditionScriptCmd := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookActionScriptProcess(PlugHandle: THandle; ScriptAction: TScriptAction);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    ActionScriptProcessArray[nPlugNo] := ScriptAction;
    if nPlugNo > nActionScriptProcess then begin
      ActionScriptProcess := ScriptAction;
      nActionScriptProcess := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookConditionScriptProcess(PlugHandle: THandle; ScriptCondition: TScriptCondition);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    ConditionScriptProcessArray[nPlugNo] := ScriptCondition;
    if nPlugNo > nConditionScriptProcess then begin
      ConditionScriptProcess := ScriptCondition;
      nConditionScriptProcess := nPlugNo;
    end;
  end;
end;
procedure TPlugOfEngine.SetHookUserEngineRun(PlugHandle: THandle; ObjectAction: TObjectAction);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    UserEngineRunArray[nPlugNo] := ObjectAction;
    if nPlugNo > nUserEngineRun then begin
      UserEngineRun := ObjectAction;
      nUserEngineRun := nPlugNo;
    end;
  end;
end;

procedure TPlugOfEngine.SetHookPlayObjectUserSelect(PlugHandle: THandle; ObjectActionUserSelect: TObjectActionUserSelect);
var
  nPlugNo: Integer;
begin
  nPlugNo := GetPlugByHandle(PlugHandle);
  if (nPlugNo >= 0) and (nPlugNo < MAXPULGCOUNT) then begin
    PlayObjectUserSelectArray[nPlugNo] := ObjectActionUserSelect;
    if nPlugNo > nPlayObjectUserSelect then begin
      PlayObjectUserSelect := ObjectActionUserSelect;
      nPlayObjectUserSelect := nPlugNo;

⌨️ 快捷键说明

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