EpicSkookumScript / EpicSkookumScript/SkookumScript-Plugin
BlueprintImplementableEvent's can be called with wrong scope
- Langage dominant
- C++
- Étoiles
- 138
- Forks
- 22
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
**UE4 Version**
4.23
**SkookumScript Version**
4.23
**Describe the bug**
Calling mulltiple `BlueprintImplementableEvent`'s in the same script can result in them being called with the wrong scope.
**To Reproduce**
```javascript
// Classes A and B derive from the same subclass
// The subclass defines some_event as a BlueprintImplementableEvent
!class_a : SomeClassA.instances_first
!class_b : SomeClassB.instances_first
a.simulate_physics_set(true)
a.some_event(0, true)
b.simulate_physics_set(true)
b.some_event(0, true) // <--- Crash here
```
Crashes with assert:
```
Assertion failed: ((UObject*)ContainerPtr)->IsA((UClass*)GetOuter()) [File:C:\Epic Games\4.23\Engine\Source\Runtime\CoreUObject\Public\UObject/UnrealType.h] [Line: 367]
'SomeClassA_2' is of class 'SomeClassA_C' however property 'UberGraphFrame' belongs to class 'SomeClassB_C'
```
If I call the `BlueprintImplementableEvent` via a `UFUNCTION` marked method that is not `BlueprintImplementableEvent` then it works fine.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par reproduire l’exemple UE4 4.23 fourni avec deux classes dérivées et plusieurs appels à BlueprintImplementableEvent. Comparez l’appel direct de l’événement avec le wrapper UFUNCTION qui fonctionnerait, puis suivez le traitement de BlueprintImplementableEvent du plugin. Le travail est terminé lorsque les appels conservent la portée correcte de l’objet sans l’assertion UberGraphFrame signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp, unreal-engine
- Domaine
- game-dev
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100