Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 4 von 4
  1. Beiträge anzeigen #1 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.484
     
    Cryp18Struct ist offline

    Vergleiche mit Hlp_getInstanceID

    Hallo!

    Variante 1:
    Code:
    // ------- Mag-Golem-Lares-Hack ------------
    var C_NPC MGO; MGO = Hlp_GetNpc(MagicGolem);
    var C_NPC LAR; LAR = Hlp_GetNpc(VLK_449_Lares);
    	
    if  (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(LAR))
    &&  (Hlp_GetInstanceID(other) == Hlp_GetInstanceID(MGO))
    {
    	return FALSE;
    }
    Variante 2:
    Code:
    // ------- Mag-Golem-Lares-Hack ------------
    if  (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(MagicGolem))
    &&  (Hlp_GetInstanceID(other) == Hlp_GetInstanceID(VLK_449_Lares))
    {
    	return FALSE;
    }
    Variante 3:
    Code:
    // ------- Mag-Golem-Lares-Hack ------------
    if  (Hlp_GetInstanceID(self) == MagicGolem)
    &&  (Hlp_GetInstanceID(other) == VLK_449_Lares)
    {
    	return FALSE;
    }
    Gibt es hier einen guten Grund Varianten 1 oder 2 zu verwenden?
    Etwas wie VLK_449_Lares ist ja die InstanzID, daher müsste Variante 3 doch eigentlich reichen.

  2. Beiträge anzeigen #2 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Variante 3 sollte stimmen, ja.

    Ich vermute, dass einige der PBs selber nicht ganz verstanden haben, wie das mit den Instanzen und InstanceIDs zusammenhängt - das System ist etwas unübersichtlich und nicht sehr intuitiv.

    Mit Variante 2 ist man aber auf der sicheren Seite, auch wenn man die Instanzen später durch C_NPC Variablen ersetzt, das hat da vielleicht ebenfalls mit reingepielt.

  3. Beiträge anzeigen #3 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.484
     
    Cryp18Struct ist offline
    Danke für die Antwort.

    Aufgefallen war mir das weil ein Vergleich wie
    Code:
    if(Hlp_getInstanceID(other) == Hlp_getInstanceID(NONE_501_Skellettkrieger)){
    
    }
    Auch 1 ergibt falls other nicht valid ist und NONE_501_Skellettkrieger ein NPC ist welcher nie in der Welt gespawnt wurde. (-1 == -1)
    Bei Variante 3 habe ich dieses Problem nicht. (Wobei es da wahrscheinlich auch sauberer wäre mit Hlp_isValidNpc() zu arbeiten...)

  4. Beiträge anzeigen #4 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.446
     
    Lehona ist offline
    Hlp_GetInstanceID "dereferenziert" die Instanz vermutlich (d.h. greift auf das Objekt zu, das der Instanz gerade zugewiesen ist). Wenn du direkt mit der Instanz vergleichst, wird die in ihren Symbolindex konvertiert, daher tritt das Problem da nicht auf.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide