/* By Rama */ #include "VictoryBPLibraryPrivatePCH.h" #include "VictoryPC.h" #include "Runtime/Engine/Classes/Kismet/GameplayStatics.h" DEFINE_LOG_CATEGORY(VictoryPCLog) ////////////////////////////////////////////////////////////////////////// // AVictoryPC AVictoryPC::AVictoryPC(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } UAudioComponent* AVictoryPC::VictoryPlaySpeechSound( USoundBase* Sound ,float VolumeMultiplier ,float PitchMultiplier , float StartTime) { UAudioComponent* Audio = UGameplayStatics::SpawnSound2D(this,Sound,VolumeMultiplier,PitchMultiplier,StartTime); if(Audio) { //Subtitle Delegate for You! // <3 Rama Audio->OnQueueSubtitles.BindDynamic(this, &AVictoryPC::Subtitles_CPPDelegate); } /* Note that the OnAudioFinished is BP assignable off of return of this node! //called when we finish playing audio, either because it played to completion or because a Stop() call turned it off early UPROPERTY(BlueprintAssignable) FOnAudioFinished OnAudioFinished; */ return Audio; } void AVictoryPC::Subtitles_CPPDelegate(const TArray& Subtitles, float CueDuration) { TArray VictorySubtitles; for(const FSubtitleCue& Each : Subtitles) { VictorySubtitles.Add(FVictorySubtitleCue(Each.Text,Each.Time)); } OnVictorySubtitlesQueued(VictorySubtitles,CueDuration); } //~~~ bool AVictoryPC::VictoryPC_GetMyIP_SendRequest() { FHttpModule* Http = &FHttpModule::Get(); if(!Http) { return false; } if(!Http->IsHttpEnabled()) { return false; } //~~~~~~~~~~~~~~~~~~~ FString TargetHost = "http://api.ipify.org"; TSharedRef < IHttpRequest > Request = Http->CreateRequest(); Request->SetVerb("GET"); Request->SetURL(TargetHost); Request->SetHeader("User-Agent", "VictoryBPLibrary/1.0"); Request->SetHeader("Content-Type" ,"text/html"); Request->OnProcessRequestComplete().BindUObject(this, &AVictoryPC::HTTPOnResponseReceived); if (!Request->ProcessRequest()) { return false; } return true; } void AVictoryPC::HTTPOnResponseReceived(FHttpRequestPtr Request, FHttpResponsePtr Response, bool bWasSuccessful) { FString ResponseStr = "AVictoryPC::HTTPOnResponseReceived>>> Connection Error"; if(bWasSuccessful) { ResponseStr = Response->GetContentAsString(); } this->VictoryPC_GetMyIP_DataReceived(ResponseStr); }