Tamia Änderungen:
Quote:
* Sehr kleine aber makabere Bugs wurden entdeckt und ausgelöscht
* Der Wechsel des aktuellen Objektes (z.B. das Verlassen von Fahrzeugen) sollte keinen Disconnect mehr auslösen
* Die Blickrichtung des Ziels wird bei einem Teleport mittels .target übernommen
* Ist das Teleport Ziel bei der Verwendung von .target außer Range, wird nun eine passendere Fehlermeldung angezeigt
* Teleport-Punkte können nun gelöscht (.del name) und überschrieben (.add name) werden, außerdem können nun doppelte Namen existieren, sofern sich die MapId unterscheidet
|
Änderungen und Erweiterung der Plugin Schnittstelle - Exports, die ein Plugin besitzen muss um vom Hack geladen zu werden
Beachtet das Name mangling deaktiviert sein muss.
Initialisierung, danke an Ende!
Code:
BOOL Initialize(char *szModuleVer, // Schreibt das Modul seine Versions-Nr als Sting rein
int nModuleVerLen, // Maximale Länge für szModuleVer
DWORD *pdwModuleBuild, // Schreibt das Module seine Build-Ver rein
char *szHackVer, // Wird vom Hack die Version als String übergeben
DWORD dwHackBuild) ; // Selbsterklärend ^^
Der Hack übergibt bei szHackVer "Revision" mit der anschließenden Nummer, z.B. "Revision 9". Bei dwHackBuild wird die Revision einzeln als Nummer also in diesem Fall "9" übergeben
void Uninitialize()
Nutzt diese Funktionen um euer Plugin sauber zu entfernen. Der Hack ruft diese Funktion nun sogar auf!
Kein return type, räumt also brav auf, der Hack wird euer Plugin nach dem Aufruf dieser Funktion komplett entladen.
Registrierte Befehle sind mittels UnregisterChatCommand (siehe unten) zu entfernen, ansonsten landet der Call ins Leere.
char* GetPluginName()
Gebt hier den Namen eures Plugins zurück
char* GetPluginDeveloper()
Gebt hier die Credits eures Plugins zurück
RenderCallback ist kein Pflicht-Export mehr!
Optionale Exports
HRESULT RenderCallback(void* pDevice)
Wird sofern vorhanden vom Hack jeden Frame aufgerufen. Erledigt eure Arbeiten am besten hier, ihr solltet davon absehen Hack Funktionen von neu erstellten Threads aus aufzurufen.
Der Hack übergibt beim Device momentan einen NULL Pointer
BOOL SCMCallback(char* szMessage)
Wird sofern vorhanden vom Hack bei der Eingabe eines . Befehls aufgerufen, ihr könnt den Befehl dann selbst verarbeiten. Wenn ihr den Befehl verarbeitet habt solltet ihr TRUE zurückgeben.
Aktuelle Hack Exports (einige wurden seit dem letzten Release verändert)
BOOL RegisterChatCommand(char* szCommand, void* pCallback, char* szHelp, BOOL bHiddenInHelp)
szCommand - Sollte klar sein. Enthält der Befehl Leerzeichen oder ist bereits vorhanden gibt die Funktion FALSE zurück
pCallback - Pointer zur Callback Funktion
szHelp - Hilfe welche unter .help szCommand angezeigt wird. Kann NULL sein
bHiddenInHelp - Ist der Befehl unsichtbar unter .help szCommand?
Ein Callback könnte so aussehen:
void MyCallback(char* szCommand, char* szParameter)
Der Hack übergibt nun neben dem Parameter zusätzlich noch einmal den verwendeten Befehl.
BOOl UnregisterChatCommand(char* szCommand)
Versucht den übergebenen Befehl zu löschen. Exisitiert der Befehl nicht gibt die Funktion FALSE zurück
unsigned byte GetTeleportJob()
Gibt einen Wert zurück, welcher für den kontanten Wert einer Struktur steht
TELEPORTING = 0
TELEPORTING_HOTKEY = 1
TELEPORT_DONE_HOTKEY = 2
TELEPORT_DONE = 3
TELEPORT_DONE_HOTKEY wird nur als internes Hilfsmitteln verwendet und sofort durch TELEPORT_DONE überschrieben und sollte daher nicht abgefragt werden.
BOOL CanTeleport(BOOL bHideError)
Prüft ob der Spieler sich teleportieren kann. Ist bHideError auf false gesetzt wird auch gleich die passende Fehlermeldung ausgegeben
void AddChatMessage(char* szMessage, char* szColor)
Fügt dem WoW Chat eine Nachricht hinzu welche nur für den lokalen Spieler sichtbar ist.
void AddConsoleLine(char* szMessage)
Fügt der WoW Konsole eine neue Zeile hinzu
void* GetPlayerPointer()
Gibt die Playerbase als void Pointer zurück. Ist der Pointer NULL befindet sich der Spieler nicht im Spiel
void MovePlayer(float x, float y, float z)
Bewegt den Spieler zu dem Ziel und lässt WoW die Pakete MSG_MOVE_START_FORWARD sowie MSG_MOVE_STOP senden. Die neue Position muss selbst berechnet werden. Diese Funktion ersetzt NICHT CreateTeleportJob und wird intern nur für den Hotkey Teleport verwendet. Bei einer falschen Berechnung der neuen Position ist das Resultat ein Disconnect
BOOL CreateTeleportJob(float x, float y, float z, BOOL bHideMessages)
Startet einen neuen automatisierten Teleport. Kann kein neuer Teleport gestartet werden wird FALSE zurückgegeben. bHideMessages bestimmt ob für diesen Job Status Nachrichten in den Chat ausgegeben werden, dies betrifft nun auch Fehlermeldungen. Die Option zusätzlich das Facing zu übergeben wurde entfernt
void DeleteTeleportJob()
Bricht den aktuellen Teleport sofort ab.
DWORD GetTeleportTimeAdvance()
Zeit Überfluss welcher bisher durch den Teleport verursacht wurde. Wenn ihr nichts 'spezielles' vorhabt kann diese Funktion ignoriert werden
DWORD GetTeleportDelay()
Das Teleport Delay, nun sogar in den Exports wohoooo...
void SetTeleportDelay(DWORD dwDelay)
Setzt das Teleport Delay. Diese Änderung wird nicht in der Konfiguration des Hacks übernommen und geht somit bei einem Neustart des Hacks verloren.