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

📄 plugofengine.pas

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

function TUserEngine_FindMagic(nMagIdx: Integer): pTMagic; stdcall;
function TUserEngine_AddMagic(Magic: pTMagic): Boolean; stdcall;
function TUserEngine_DelMagic(wMagicId: Word): Boolean; stdcall;


function TMapManager_FindMap(pszMapName: PChar): TEnvirnoment; stdcall;
function TEnvirnoment_GetRangeBaseObject(Envir: TEnvirnoment; nX, nY, nRage: Integer; boFlag: Boolean; BaseObjectList: TList): Integer; stdcall;
function TEnvirnoment_boCANRIDE(Envir: TEnvirnoment): PBoolean; stdcall;
function TEnvirnoment_boCANBAT(Envir: TEnvirnoment): PBoolean; stdcall;

procedure TUserEngine_SetHookRun(UserEngineRun: TObjectAction); stdcall;
function TUserEngine_GetHookRun(): TObjectAction; stdcall;
procedure TUserEngine_SetHookClientUserMessage(ClientMsg: TObjectClientMsg); stdcall;

function TGuild_RankList(Guild: TGUild): TList; stdcall;

procedure TItemUnit_GetItemAddValue(UserItem: pTUserItem; var StdItem: TStdItem); stdcall;

function TMagicManager_GetMagicManager(): TMagicManager; stdcall;
function TMagicManager_DoSpell(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;

function TMagicManager_MPow(UserMagic: pTUserMagic): Integer; stdcall;
function TMagicManager_GetPower(nPower: Integer; UserMagic: pTUserMagic): Integer; stdcall;
function TMagicManager_GetPower13(nInt: Integer; UserMagic: pTUserMagic): Integer; stdcall;
function TMagicManager_GetRPow(wInt: Integer): Word; stdcall;
function TMagicManager_IsWarrSkill(MagicManager: TMagicManager; wMagIdx: Integer): Boolean; stdcall;

function TMagicManager_MagBigHealing(MagicManager: TMagicManager; PlayObject: TBaseObject; nPower, nX, nY: Integer): Boolean; stdcall;
function TMagicManager_MagPushArround(MagicManager: TMagicManager; PlayObject: TBaseObject; nPushLevel: Integer): Integer; stdcall;
function TMagicManager_MagPushArroundTaos(MagicManager: TMagicManager; PlayObject: TBaseObject; nPushLevel: Integer): Integer; stdcall;
function TMagicManager_MagTurnUndead(MagicManager: TMagicManager; BaseObject, TargeTBaseObject: TBaseObject; nTargetX, nTargetY: Integer; nLevel: Integer): Boolean; stdcall;
function TMagicManager_MagMakeHolyCurtain(MagicManager: TMagicManager; BaseObject: TBaseObject; nPower: Integer; nX, nY: Integer): Integer; stdcall;
function TMagicManager_MagMakeGroupTransparent(MagicManager: TMagicManager; BaseObject: TBaseObject; nX, nY: Integer; nHTime: Integer): Boolean; stdcall;
function TMagicManager_MagTamming(MagicManager: TMagicManager; BaseObject, TargeTBaseObject: TBaseObject; nTargetX, nTargetY: Integer; nMagicLevel: Integer): Boolean; stdcall;
function TMagicManager_MagSaceMove(MagicManager: TMagicManager; BaseObject: TBaseObject; nLevel: Integer): Boolean; stdcall;
function TMagicManager_MagMakeFireCross(MagicManager: TMagicManager; PlayObject: TPlayObject; nDamage, nHTime, nX, nY: Integer): Integer; stdcall;
function TMagicManager_MagBigExplosion(MagicManager: TMagicManager; BaseObject: TBaseObject; nPower, nX, nY: Integer; nRage: Integer): Boolean; stdcall;
function TMagicManager_MagElecBlizzard(MagicManager: TMagicManager; BaseObject: TBaseObject; nPower: Integer): Boolean; stdcall;
function TMagicManager_MabMabe(MagicManager: TMagicManager; BaseObject, TargeTBaseObject: TBaseObject; nPower, nLevel, nTargetX, nTargetY: Integer): Boolean; stdcall;
function TMagicManager_MagMakeSlave(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic): Boolean; stdcall;
function TMagicManager_MagMakeSinSuSlave(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic): Boolean; stdcall;
function TMagicManager_MagWindTebo(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic): Boolean; stdcall;
function TMagicManager_MagGroupLightening(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject; var boSpellFire: Boolean): Boolean; stdcall;
function TMagicManager_MagGroupAmyounsul(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagGroupDeDing(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagGroupMb(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagHbFireBall(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; var TargeTBaseObject: TBaseObject): Boolean; stdcall;
function TMagicManager_MagLightening(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; nTargetX, nTargetY: Integer; TargeTBaseObject: TBaseObject; var boSpellFire: Boolean): Boolean; stdcall;
procedure TMagicManager_SetHookDoSpell(DoSpell: TDoSpell); stdcall;
function TMagicManager_MagMakeSlave_(MagicManager: TMagicManager; PlayObject: TPlayObject; UserMagic: pTUserMagic; sMonName: PChar; nCount, nHumLevel, nMonLevel: Integer): Boolean; stdcall;
function TMagicManager_CheckAmulet(PlayObject: TPlayObject; nCount: Integer; nType: Integer; var Idx: Integer): Boolean; stdcall;
procedure TMagicManager_UseAmulet(PlayObject: TPlayObject; nCount: Integer; nType: Integer; var Idx: Integer); stdcall;
function TMagicManager_MagMakeSuperFireCross(MagicManager: TMagicManager; PlayObject: TPlayObject; nDamage, nHTime, nX, nY: Integer; nCount: Integer): Integer; stdcall;
function TMagicManager_MagMakePrivateTransparent(MagicManager: TMagicManager; PlayObject: TPlayObject; nDamage: Integer): Boolean; stdcall;

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;

function TPlugOfEngine_GetProcedureVersion(): Integer; stdcall;
function TPlugOfEngine_GetUserVersion(): Integer; stdcall;
procedure TPlugOfEngine_SetUserLicense(nLimitNumber, nLimitUserCount: Integer); stdcall;

implementation
uses M2Share, HUtil32;
{===============================引擎插件共享函数===============================}
function TList_Create(): TList;
begin
  Result := TList.Create;
end;
procedure TList_Free(List: TList);
begin
  List.Free;
end;
function TList_Count(List: TList): Integer;
begin
  Result := List.Count;
end;
function TList_Add(List: TList; Item: Pointer): Integer;
begin
  Result := List.Add(Item);
end;
procedure TList_Insert(List: TList; nIndex: Integer; Item: Pointer);
begin
  List.Insert(nIndex, Item);
end;
function TList_Get(List: TList; nIndex: Integer): Pointer;
begin
  Result := List.Items[nIndex];
end;
procedure TList_Put(List: TList; nIndex: Integer; Item: Pointer);
begin
  //
end;
procedure TList_Delete(List: TList; nIndex: Integer);
begin
  List.Delete(nIndex);
end;
procedure TList_Clear(List: TList);
begin
  List.Clear;
end;
procedure TList_Exchange(List: TList; nIndex1, nIndex2: Integer);
begin
  List.Exchange(nIndex1, nIndex2);
end;
function TStringList_Create(): TStringList;
begin
  Result := TStringList.Create;
end;
procedure TStringList_Free(List: TStringList);
begin
  List.Free;
end;
function TStringList_Count(List: TStringList): Integer;
begin
  Result := List.Count;
end;
function TStringList_Add(List: TStringList; s: PChar): Integer;
begin
  List.Add(s);
end;
function TStringList_AddObject(List: TStringList; s: PChar; AObject: TObject): Integer;
begin
  List.AddObject(s, AObject);
end;
procedure TStringList_Insert(List: TStringList; nIndex: Integer; s: PChar);
begin
  List.Insert(nIndex, s);
end;
function TStringList_Get(List: TStringList; nIndex: Integer): PChar;
begin
  Result := PChar(List.Strings[nIndex]);
end;
function TStringList_GetObject(List: TStringList; nIndex: Integer): TObject;
begin
  Result := List.Objects[nIndex];
end;
procedure TStringList_Put(List: TStringList; nIndex: Integer; s: PChar);
begin

end;
procedure TStringList_PutObject(List: TStringList; nIndex: Integer; AObject: TObject);
begin

end;
procedure TStringList_Delete(List: TStringList; nIndex: Integer);
begin
  List.Delete(nIndex);
end;
procedure TStringList_Clear(List: TStringList);
begin
  List.Clear;
end;
procedure TStringList_Exchange(List: TStringList; nIndex1, nIndex2: Integer);
begin
  List.Exchange(nIndex1, nIndex2);
end;
procedure TStringList_LoadFormFile(List: TStringList; pszFileName: PChar);
begin
  List.LoadFromFile(StrPas(pszFileName));
end;
procedure TStringList_SaveToFile(List: TStringList; pszFileName: PChar);
begin
  List.SaveToFile(StrPas(pszFileName));
end;
procedure MainOutMessageAPI(pszMsg: PChar);
begin
  MainOutMessage(StrPas(pszMsg));
end;
procedure AddGameDataLogAPI(pszMsg: PChar);
begin
  AddGameDataLog(StrPas(pszMsg));
end;
function GetGameGoldName(): PTShortString;
var
  ShortString: TShortString;
begin
  ShortString.btLen := Length(g_Config.sGameGoldName);
  Move(g_Config.sGameGoldName[1], ShortString.Strings, ShortString.btLen);
  Result := @ShortString;
end;
procedure EDcode_Decode6BitBuf(pszSource: PChar; pszDest: PChar; nSrcLen, nDestLen: Integer);
begin
  Decode6BitBuf(pszSource, pszDest, nSrcLen, nDestLen);
end;
procedure EDcode_Encode6BitBuf(pszSource: PChar; pszDest: PChar; nSrcLen, nDestLen: Integer);
begin
  Encode6BitBuf(pszSource, pszDest, nSrcLen, nDestLen);
end;

procedure EDcode_DecodeBuffer(pszSource: PChar; pszDest: PChar; bufsize: Integer);
begin
  DecodeBuffer(StrPas(pszSource), pszDest, bufsize);
end;

procedure EDcode_EncodeBuffer(Buf: PChar; bufsize: Integer; pszDest: PChar);
var
  sDest: string;
begin
  sDest := EncodeBuffer(Buf, bufsize);
  Move(sDest[1], pszDest^, Length(sDest));
end;

procedure EDcode_EncodeString(pszSource: PChar; pszDest: PChar);
var
  sDest: string;
begin
  sDest := EncodeString(StrPas(pszSource));
  Move(sDest[1], pszDest, Length(sDest));
end;

procedure EDcode_DeCodeString(pszSource: PChar; pszDest: PChar);
var
  sDest: string;
begin
  sDest := DeCodeString(StrPas(pszSource));
  Move(sDest[1], pszDest^, Length(sDest));
end;

procedure EDcode_SetDecode(Decode: TEDCode);
begin

end;
procedure EDcode_SetEncode(Encode: TEDCode);
begin

end;
function TConfig_AmyOunsulPoint: PInteger;
begin
  Result := @g_Config.nAmyOunsulPoint;
end;

function TConfig_sEnvirDir(): _LPTDIRNAME;
var
  sEnvirDir: _TDIRNAME;
begin
  sEnvirDir := g_Config.sEnvirDir;
  Result := @sEnvirDir;
end;
function TBaseObject_Create(): TBaseObject;
begin
  Result := TBaseObject.Create;
end;
procedure TBaseObject_Free(BaseObject: TBaseObject);
begin
  BaseObject.Free;
end;
function TBaseObject_sMapFileName(BaseObject: TBaseObject): PTShortString;
var
  ShortString: TShortString;
begin
  ShortString.btLen := Length(BaseObject.m_sMapName);
  Move(BaseObject.m_sMapName[1], ShortString.Strings, ShortString.btLen);
  Result := @ShortString;
end;
function TBaseObject_sMapName(BaseObject: TBaseObject): PTShortString;
var
  ShortString: TShortString;
begin
  ShortString.btLen := Length(BaseObject.m_sMapName);
  Move(BaseObject.m_sMapName[1], ShortString.Strings, ShortString.btLen);
  Result := @ShortString;
end;
function TBaseObject_sMapNameA(BaseObject: TBaseObject): _LPTMAPNAME;
var
  sMapName: _TMAPNAME;
begin
  sMapName := BaseObject.m_sMapName;
  Result := @sMapName;
end;
function TBaseObject_sCharName(BaseObject: TBaseObject): PTShortString;
var
  ShortString: TShortString;
begin
  ShortString.btLen := Length(BaseObject.m_sCharName);
  Move(BaseObject.m_sCharName[1], ShortString.Strings, ShortString.btLen);
  Result := @ShortString;
end;
function TBaseObject_sCharNameA(BaseObject: TBaseObject): _LPTACTORNAME;
var
  sCharName: _TACTORNAME;
begin
  sCharName := BaseObject.m_sCharName;
  Result := @sCharName;
end;

function TBaseObject_nCurrX(BaseObject: TBaseObject): PInteger;
begin
  Result := @BaseObject.m_nCurrX;
end;
function TBaseObject_nCurrY(BaseObject: TBaseObject): PInteger;
begin

⌨️ 快捷键说明

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