Einzelnen Beitrag anzeigen
  #22  
Alt 7. July 2002, 20:44
Benutzerbild von Wormbo
Wormbo Wormbo ist offline
Senior Member
Punkte: 2.945, Level: 35 Punkte: 2.945, Level: 35 Punkte: 2.945, Level: 35
Aktivität: 0% Aktivität: 0% Aktivität: 0%
 
Registriert seit: Dec 2001
Ort: Quedlinburg
Beiträge: 307
Renommee-Modifikator: 58
Wormbo is on a distinguished road
    Neutral 
Hmm, hättest ja gleich sagen können, dass das in der CheckReplacement-Funktion passieren soll. Da gibt's nämlich ein paar Sachen zu beachten:
CheckReplacement (und auch AlwaysKeep) wird (über Umwege) von der PreBeginPlay-Funktion des zu prüfenden Actors ausgeführt. Zu dem Zeitpunkt haben Items aber noch keinen Besitzer.
Bei Items, die von Anfang an in der Map vorhanden sind, hat allerdings die Eigenschaft "MyMarker" nicht den Wert None, so dass
Code:
if ( Inventory(Other) != None && Inventory(Other).MyMarker != None ) {
    ...
}
nur für diese Items ausgeführt wird. Die AlwaysKeep-Funktion ist in dem Fall eigendlich nicht nötig. (Diese Anzeige funktioniert übrigens mit [code]...[/code] und ist für Script-Code sehr zu empfehlen, da die Zeilen eingerückt bleiben. Beim Antwort schreiben geht auch die #-Schaltfläche.)


MyMarker verweist auf einen NavigationPoint, der automatisch vom UnrealEd beim Erstellen der Map für Items und Waffen erstellt wurde. Während ein neues Item gespawned wird (siehe Link oben) ist diese Eigenschaft auf None gesetzt, d.h. Items, die ein in der Map befindliches ersetzen (im Mutator mittels ReplaceWith-Funktion), haben während der CheckReplacement-Funktion keinen MyMarker. Nachdem das Ersetzen abgeschlossen ist verweist ihre MyMarker-Eigenschaft aber auf den korrekten "InventorySpot" (so heißt dieser spezielle NavigationPoint), der dann die Bots auf den rechten Weg führt.
__________________

Unreal Wiki: The Unreal Engine Documentation Site

<+SK|Burnie`sI> Kennt einer speziellen trick wie man Rosinen aus müsli rausbekommt (query me)