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

📄 plugofengine.pas

📁 飞尔传奇世界的引擎代码可直接编译M2Engine 请使用Delphi编译
💻 PAS
📖 第 1 页 / 共 5 页
字号:

end;
procedure TBaseObject_SendMsg(SelfObject, BaseObject: TBaseObject; wIdent, wParam: Word; nParam1, nParam2, nParam3: Integer; pszMsg: PChar);
begin
  SelfObject.SendMsg(BaseObject, wIdent, wParam, nParam1, nParam2, nParam3, StrPas(pszMsg));
end;
procedure TBaseObject_SendRefMsg(BaseObject: TBaseObject; wIdent, wParam: Word; nParam1, nParam2, nParam3: Integer; pszMsg: PChar);
begin
  BaseObject.SendRefMsg(wIdent, wParam, nParam1, nParam2, nParam3, StrPas(pszMsg));
end;
procedure TBaseObject_SendDelayMsg(SelfObject, BaseObject: TBaseObject; wIdent, wParam: Word; nParam1, nParam2, nParam3: Integer; pszMsg: PChar; dwDelayTime: LongWord);
begin
  SelfObject.SendDelayMsg(BaseObject, wIdent, wParam, nParam1, nParam2, nParam3, StrPas(pszMsg), dwDelayTime);
end;
procedure TBaseObject_SysMsg(BaseObject: TBaseObject; pszMsg: PChar; MsgColor: TMsgColor; MsgType: TMsgType);
begin
  BaseObject.SysMsg(StrPas(pszMsg), MsgColor, MsgType);
end;
function TBaseObject_GetFrontPosition(BaseObject: TBaseObject; var nX: Integer; var nY: Integer): Boolean;
begin
  Result := BaseObject.GetFrontPosition(nX, nY);
end;
function TBaseObject_GetRecallXY(BaseObject: TBaseObject; nX, nY: Integer; nRange: Integer; var nDX: Integer; var nDY: Integer): Boolean;
begin
  Result := BaseObject.sub_4C5370(nX, nY, nRange, nDX, nDY);
end;
procedure TBaseObject_SpaceMove(BaseObject: TBaseObject; pszMap: PChar; nX, nY: Integer; nInt: Integer);
begin
  BaseObject.SpaceMove(StrPas(pszMap), nX, nY, nInt);
end;
procedure TBaseObject_FeatureChanged(BaseObject: TBaseObject);
begin
  BaseObject.FeatureChanged;
end;
procedure TBaseObject_StatusChanged(BaseObject: TBaseObject);
begin
  BaseObject.StatusChanged;
end;
function TBaseObject_GetFeatureToLong(BaseObject: TBaseObject): Integer;
begin
  Result := BaseObject.GetFeatureToLong;
end;
function TBaseObject_GetFeature(SelfObject, BaseObject: TBaseObject): Integer;
begin
  Result := SelfObject.GetFeature(BaseObject);
end;
function TBaseObject_GetCharColor(SelfObject, BaseObject: TBaseObject): Byte;
begin
  Result := BaseObject.GetCharColor(BaseObject);
end;
function TBaseObject_GetNamecolor(BaseObject: TBaseObject): Byte;
begin
  Result := BaseObject.GetNamecolor;
end;
procedure TBaseObject_GoldChanged(BaseObject: TBaseObject);
begin
  BaseObject.GoldChanged;
end;
procedure TBaseObject_GameGoldChanged(BaseObject: TBaseObject);
begin
  BaseObject.GameGoldChanged;
end;
procedure TBaseObject_SetTargetCreat(AObject, BObject: TBaseObject);
begin
  AObject.SetTargetCreat(BObject);
end;
function TBaseObject_MagCanHitTarget(BaseObject: TBaseObject; nX, nY: Integer; TargeTBaseObject: TBaseObject): Boolean;
begin
  BaseObject.MagCanHitTarget(nX, nY, TargeTBaseObject);
end;
function TBaseObject_IsProtectTarget(AObject, BObject: TBaseObject): Boolean;
begin
  Result := AObject.IsProtectTarget(BObject);
end;
function TBaseObject_IsAttackTarget(AObject, BObject: TBaseObject): Boolean;
begin
  Result := AObject.IsAttackTarget(BObject);
end;
function TBaseObject_IsProperTarget(AObject, BObject: TBaseObject): Boolean;
begin
  Result := AObject.IsProperTarget(BObject);
end;
function TBaseObject_IsProperFriend(AObject, BObject: TBaseObject): Boolean;
begin
  Result := AObject.IsProperFriend(BObject);
end;
procedure TBaseObject_TrainSkillPoint(BaseObject: TBaseObject; UserMagic: pTUserMagic; nTranPoint: Integer);
begin
  BaseObject.TrainSkill(UserMagic, nTranPoint);
end;
function TBaseObject_GetAttackPower(BaseObject: TBaseObject; nBasePower, nPower: Integer): Integer;
begin
  Result := BaseObject.GetAttackPower(nBasePower, nPower);
end;
function TBaseObject_MakeSlave(BaseObject: TBaseObject; pszMonName: PChar; nMakeLevel, nExpLevel, nMaxMob, nType: Integer; dwRoyaltySec: LongWord): TBaseObject;
begin
  Result := BaseObject.MakeSlave(StrPas(pszMonName), nMakeLevel, nExpLevel, nMaxMob, dwRoyaltySec);
end;
procedure TBaseObject_MakeGhost(BaseObject: TBaseObject);
begin
  BaseObject.MakeGhost;
end;
procedure TBaseObject_RefNameColor(BaseObject: TBaseObject);
begin
  BaseObject.RefNameColor;
end;
//AddItem 占用内存由自己处理,API内部会自动申请内存
function TBaseObject_AddItemToBag(BaseObject: TBaseObject; AddItem: pTUserItem): BOOL;
var
  UserItem: pTUserItem;
begin
  New(UserItem);
  UserItem.MakeIndex := AddItem.MakeIndex;
  UserItem.wIndex := AddItem.wIndex;
  UserItem.Dura := AddItem.Dura;
  UserItem.DuraMax := AddItem.DuraMax;
  UserItem.btValue := AddItem.btValue;
  Result := BaseObject.AddItemToBag(UserItem);
  if not Result then Dispose(UserItem);
end;
function TPlayObject_AddItemToStorage(PlayObject: TPlayObject; AddItem: pTUserItem): BOOL;
var
  UserItem: pTUserItem;
begin
  Result := False;
  if PlayObject.m_StorageItemList.Count < 46 then begin
    New(UserItem);
    UserItem.MakeIndex := AddItem.MakeIndex;
    UserItem.wIndex := AddItem.wIndex;
    UserItem.Dura := AddItem.Dura;
    UserItem.DuraMax := AddItem.DuraMax;
    UserItem.btValue := AddItem.btValue;
    PlayObject.m_StorageItemList.Add(UserItem);
    Result := True;
  end;
end;
procedure TBaseObject_ClearBagItem(BaseObject: TBaseObject);
begin
  //BaseObject.ClearBagItem;
end;
procedure TPlayObject_ClearStorageItem(PlayObject: TPlayObject);
begin

end;
procedure TBaseObject_SetHookGetFeature(ObjectActionFeature: TObjectActionFeature);
begin
  PlugInEngine.GetFeature := ObjectActionFeature;
end;

procedure TBaseObject_SetHookEnterAnotherMap(EnterAnotherMap: TObjectActionEnterMap);
begin
  PlugInEngine.ObjectEnterAnotherMap := EnterAnotherMap;
end;

procedure TBaseObject_SetHookObjectDie(ObjectDie: TObjectActionEx);
begin
  PlugInEngine.ObjectDie := ObjectDie;
end;
procedure TBaseObject_SetHookChangeCurrMap(ChangeCurrMap: TObjectActionEx);
begin
  PlugInEngine.ChangeCurrMap := ChangeCurrMap;
end;

function TBaseObject_MagMakeDefenceArea(BaseObject: TBaseObject; nX, nY, nRange, nSec: Integer; btState: Byte; boState: Boolean): Integer;
begin
  BaseObject.MagMakeDefenceArea(nX, nY, nRange, nSec, btState, boState);
end;

function TBaseObject_MagBubbleDefenceUp(BaseObject: TBaseObject; nLevel, nSec: Integer): Boolean;
begin
  BaseObject.MagBubbleDefenceUp(nLevel, nSec);
end;









function TPlayObject_IsEnoughBag(PlayObject: TPlayObject): Boolean;
begin
  Result := PlayObject.IsEnoughBag;
end;

function TPlayObject_nSoftVersionDate(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nSoftVersionDate;
end;
function TPlayObject_nSoftVersionDateEx(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nSoftVersionDateEx;
end;
function TPlayObject_dLogonTime(PlayObject: TPlayObject): PDateTime;
begin
  Result := @PlayObject.m_dLogonTime;
end;
function TPlayObject_dwLogonTick(PlayObject: TPlayObject): PLongWord;
begin
  Result := @PlayObject.m_dwLogonTick;
end;
function TPlayObject_nMemberType(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nMemberType;
end;
function TPlayObject_nMemberLevel(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nMemberLevel;
end;
function TPlayObject_nGameGold(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nGameGold;
end;
function TPlayObject_nGamePoint(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nGamePoint;
end;
function TPlayObject_nPayMentPoint(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nPayMentPoint;
end;
function TPlayObject_nClientFlag(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nClientFlagMode;
end;
function TPlayObject_nSelectID(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nSessionID;
end;
function TPlayObject_nClientFlagMode(PlayObject: TPlayObject): PInteger;
begin
  Result := @PlayObject.m_nClientFlagMode;
end;
function TPlayObject_dwClientTick(PlayObject: TPlayObject): PLongWord;
begin
  Result := @PlayObject.m_dwClientTick;
end;
function TPlayObject_wClientType(PlayObject: TPlayObject): PWord;
begin

end;
function TPlayObject_sBankPassword(PlayObject: TPlayObject): _LPTBANKPWD;
var
  sStoragePwd: _TBANKPWD;
begin
  sStoragePwd := PlayObject.m_sStoragePwd;
  Result := @sStoragePwd;
end;
function TPlayObject_nBankGold(PlayObject: TPlayObject): PInteger;
begin

end;
function TPlayObject_Create(): TPlayObject;
begin
  Result := TPlayObject.Create;
end;
procedure TPlayObject_Free(PlayObject: TPlayObject);
begin
  PlayObject.Free;
end;
procedure TPlayObject_SendSocket(PlayObject: TPlayObject; DefMsg: pTDefaultMessage; pszMsg: PChar);
begin
  PlayObject.SendSocket(DefMsg, StrPas(pszMsg));
end;
procedure TPlayObject_SendDefMessage(PlayObject: TPlayObject; wIdent: Word; nRecog: Integer; nParam, nTag, nSeries: Word; pszMsg: PChar);
begin
  PlayObject.SendDefMessage(wIdent, nRecog, nParam, nTag, nSeries, StrPas(pszMsg));
end;
procedure TPlayObject_SendAddItem(PlayObject: TPlayObject; AddItem: pTUserItem);
begin
  PlayObject.SendAddItem(AddItem);
end;
procedure TPlayObject_SendDelItem(PlayObject: TPlayObject; AddItem: pTUserItem);
begin
  PlayObject.SendDelItems(AddItem);
end;
function TPlayObject_TargetInNearXY(PlayObject: TPlayObject; Target: TBaseObject; nX, nY: Integer): Boolean;
begin
  Result := PlayObject.CretInNearXY(Target, nX, nY);
end;
procedure TPlayObject_SetBankPassword(PlayObject: TPlayObject; pszPassword: PChar);
begin
  PlayObject.m_sStoragePwd := StrPas(pszPassword);
end;
procedure TPlayObject_SetHookCreate(PlayObjectCreate: TObjectAction);
begin
  PlugInEngine.PlayObjectCreate := PlayObjectCreate;
end;

function TBaseObject_GetBaseObjectTick(BaseObject: TBaseObject; nCount: Integer): PLongWord;
begin
  if (nCount >= Low(BaseObject.m_dwUserTick)) and (nCount < High(BaseObject.m_dwUserTick)) then begin
    Result := @BaseObject.m_dwUserTick[nCount];
  end else Result := 0;
end;

function TPlayObject_GetHookCreate(): TObjectAction;
begin
  Result := PlugInEngine.PlayObjectCreate;
end;

procedure TPlayObject_SetHookDestroy(PlayObjectDestroy: TObjectAction);
begin
  PlugInEngine.PlayObjectDestroy := PlayObjectDestroy;

⌨️ 快捷键说明

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