Hallo M-Core'ler/in,
in diesem kleinen Source Tut, möchte ich euch zeigen, wie man es hinbekommt, dass NPC, in der World nicht geladen werden, obwohl sie vom Beast gesetzt worden sind. Dies ist genauso wie die GuildWar NPC's, die man bsp. im 2ten Channel "aussperrt".
Fangen wir dann mal an:
_______________________________________________
Wir gehen im WorldServer und fügen in die VersionCommon.h folgendes hinzu:
Damit, definieren wir die Funktion, damit wir später den Sourcepart auch direkt im Source wieder weg lassen kann.
Als nächstes dann öffnen wir den WorldServer.cpp und gehen ganz nach unten und fügen vor dem s.GetToken(); dies hier ein:
Mit dem #ifdef __NO_POSTBOX setzen wir fest, dass dieser nur dann eine Wirkung hat, wenn wir in der VersionCommon.h die __NO_POSTBOX definiert haben.
Bei NO_POSTBOX setzen wir den Text ein, den wir dann später in
die WorldServer.ini einsetzen, dieser muss dann auch genauso geschrieben sein, wie es im Source festgesetzt wird.
Und unten bei g_eLocal.SetState( EVE_NO_POSTBOX, 1 );
setzen wir, wenn der Text NO_POSTBOXin der WorldServer.ini gesetzt ist die EVE_NO_POSTBOX auf 1, damit diese einen TRUE sogesehen erhällt.
Anschließend gehen wir in die flyffevent.h und fügen im enum bereich irgendwo diesen Abschnitt hinzu:
dabei nutzen wir wieder #ifdef __NO_POSTBOX, damit dieser nur solange eine Wirkung hat, wie es definiert ist.
Nun kommen wir auch schon fast zum Ende des Tut's, dazu gehen wir dann nun noch in die worldfile.cpp und suchen nach der Funktion BOOL CWorld::IsUsableDYO( CObj* pObj ) , haben wir diese, können wir dann unter
folgendes hinzufügen:
Im MaFl_Postboxwird der Name des NPC's eingetragen, welchen man in der Character.inc hat.
if( g_eLocal.GetState( EVE_NO_POSTBOX ) == TRUE )
dieser abschnitt überprüft den Status von EVE_NO_POSTBOX auf den Wert, welcher hinter dem == ist, in diesem Fall TRUE.
_______________________________________________
Damit war es dann auch mit dem Tutorial, wie man NPC's in der World ausgrentz.
Credits: Sedrika
in diesem kleinen Source Tut, möchte ich euch zeigen, wie man es hinbekommt, dass NPC, in der World nicht geladen werden, obwohl sie vom Beast gesetzt worden sind. Dies ist genauso wie die GuildWar NPC's, die man bsp. im 2ten Channel "aussperrt".
Fangen wir dann mal an:
_______________________________________________
Wir gehen im WorldServer und fügen in die VersionCommon.h folgendes hinzu:
Damit, definieren wir die Funktion, damit wir später den Sourcepart auch direkt im Source wieder weg lassen kann.
Als nächstes dann öffnen wir den WorldServer.cpp und gehen ganz nach unten und fügen vor dem s.GetToken(); dies hier ein:
Bei NO_POSTBOX setzen wir den Text ein, den wir dann später in
die WorldServer.ini einsetzen, dieser muss dann auch genauso geschrieben sein, wie es im Source festgesetzt wird.
Und unten bei g_eLocal.SetState( EVE_NO_POSTBOX, 1 );
setzen wir, wenn der Text NO_POSTBOXin der WorldServer.ini gesetzt ist die EVE_NO_POSTBOX auf 1, damit diese einen TRUE sogesehen erhällt.
Anschließend gehen wir in die flyffevent.h und fügen im enum bereich irgendwo diesen Abschnitt hinzu:
dabei nutzen wir wieder #ifdef __NO_POSTBOX, damit dieser nur solange eine Wirkung hat, wie es definiert ist.
Nun kommen wir auch schon fast zum Ende des Tut's, dazu gehen wir dann nun noch in die worldfile.cpp und suchen nach der Funktion BOOL CWorld::IsUsableDYO( CObj* pObj ) , haben wir diese, können wir dann unter
folgendes hinzufügen:
if( g_eLocal.GetState( EVE_NO_POSTBOX ) == TRUE )
dieser abschnitt überprüft den Status von EVE_NO_POSTBOX auf den Wert, welcher hinter dem == ist, in diesem Fall TRUE.
_______________________________________________
Damit war es dann auch mit dem Tutorial, wie man NPC's in der World ausgrentz.
Credits: Sedrika
DON'T COPY & PASTE