(Feat) Add mulitplayer
This commit is contained in:
@@ -34,6 +34,8 @@ public:
|
||||
virtual void BeginPlay() override;
|
||||
virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
|
||||
|
||||
virtual void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;
|
||||
|
||||
/** Rend de la vie, de la faim et de la soif. Les valeurs sont bornees au max. */
|
||||
UFUNCTION(BlueprintCallable, Category = "Survie")
|
||||
void ApplyRestore(float HealthAmount, float HungerAmount, float ThirstAmount);
|
||||
@@ -106,11 +108,38 @@ private:
|
||||
/** Appelee par le timer : fait descendre les jauges et applique les degats. */
|
||||
void UpdateStats();
|
||||
|
||||
/**
|
||||
* Les jauges viennent d'arriver du serveur : on rediffuse le delegue
|
||||
* habituel, et WBP_SurvivalStats se met a jour sans une ligne de changement.
|
||||
*/
|
||||
UFUNCTION()
|
||||
void OnRep_Stats();
|
||||
|
||||
FTimerHandle UpdateTimerHandle;
|
||||
|
||||
// La simulation tourne UNIQUEMENT sur le serveur : quatre clients qui
|
||||
// feraient descendre leur faim chacun de leur cote divergeraient en
|
||||
// quelques minutes, et le premier a mourir ne serait pas le meme partout.
|
||||
// Les clients ne font que recevoir.
|
||||
|
||||
UPROPERTY(ReplicatedUsing = OnRep_Stats)
|
||||
float Health = 0.f;
|
||||
|
||||
UPROPERTY(ReplicatedUsing = OnRep_Stats)
|
||||
float Hunger = 0.f;
|
||||
|
||||
UPROPERTY(ReplicatedUsing = OnRep_Stats)
|
||||
float Thirst = 0.f;
|
||||
|
||||
/**
|
||||
* ReplicatedUsing et non simplement Replicated : OnDied n'est diffuse que
|
||||
* sur le serveur, or c'est ce delegue qui declenche l'ecran de mort et le
|
||||
* respawn cote joueur. Sans OnRep, un client mourrait sans jamais le savoir
|
||||
* et continuerait a jouer un personnage que le serveur considere mort.
|
||||
*/
|
||||
UPROPERTY(ReplicatedUsing = OnRep_Dead)
|
||||
bool bDead = false;
|
||||
|
||||
UFUNCTION()
|
||||
void OnRep_Dead();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user