From d4ba58bc577a999d50975b71af89eac2d33edb86 Mon Sep 17 00:00:00 2001 From: Kasi Date: Sun, 29 Apr 2018 13:11:44 +0100 Subject: [PATCH] Release 0.36 --- Include/Core/Paint.hpp | 1 + Include/Core/Script.hpp | 39 ++++++++++++++++++------------ Include/Core/Types/Area.hpp | 2 +- Include/Core/Types/Box.hpp | 2 +- Include/Core/Types/Convex.hpp | 2 +- Include/Game/Tools/Profile.hpp | 43 +++++++++++++++++++++------------ Library/libAlpacaLibrary.a | Bin 2623192 -> 2615640 bytes 7 files changed, 56 insertions(+), 33 deletions(-) diff --git a/Include/Core/Paint.hpp b/Include/Core/Paint.hpp index d10afb8..dbbc0a5 100644 --- a/Include/Core/Paint.hpp +++ b/Include/Core/Paint.hpp @@ -10,6 +10,7 @@ class Paint { public: + static std::uint32_t* GetPixels(); static void Clear(); static void DrawPoint(const Point& P, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha); static void DrawPoints(const std::vector& Points, std::uint8_t Red, std::uint8_t Green, std::uint8_t Blue, std::uint8_t Alpha); diff --git a/Include/Core/Script.hpp b/Include/Core/Script.hpp index 2d032b1..8c43ea0 100644 --- a/Include/Core/Script.hpp +++ b/Include/Core/Script.hpp @@ -33,20 +33,24 @@ typedef struct std::string ProxyPort; std::string ProxyUsername; std::string ProxyPassword; - std::int32_t ActionDelayMean; - float ActionDelayDeviation; - std::int32_t MoveDelayMean; - float MoveDelayDeviation; - std::int32_t MouseDownDelayMean; - float MouseDownDelayDeviation; - std::int32_t MouseUpDelayMean; - float MouseUpDelayDeviation; - std::int32_t KeyDownDelayMean; - float KeyDownDelayDeviation; - std::int32_t KeyUpDelayMean; - float KeyUpDelayDeviation; - std::int32_t ScrollDelayMean; - float ScrollDelayDeviation; + std::int32_t InteractableMean; + float InteractableDeviation; + std::int32_t MoveMean; + float MoveDeviation; + std::int32_t MouseDownMean; + float MouseDownDeviation; + std::int32_t MouseUpMean; + float MouseUpDeviation; + std::int32_t KeyDownMean; + float KeyDownDeviation; + std::int32_t KeyUpMean; + float KeyUpDeviation; + std::int32_t ScrollAmount; + float ScrollAmountDeviation; + std::int32_t ScrollGapMean; + float ScrollGapDeviation; + std::int32_t ScrollMean; + float ScrollDeviation; float StandardDeviationX; float StandardDeviationY; float BoxProbabilityX; @@ -59,10 +63,15 @@ typedef struct float MenuProbabilityY; float WidgetProbabilityX; float WidgetProbabilityY; - float MissFollowUp; + float PointGenAccuracy; float FatigueGain; float FatigueLoss; float FatigueMax; + bool MiniBreakEnabled; + float MiniBreakEvery; + float MiniBreakEveryDeviation; + float MiniBreakFor; + float MiniBreakForDeviation; bool ShortBreakEnabled; float ShortBreakEvery; float ShortBreakEveryDeviation; diff --git a/Include/Core/Types/Area.hpp b/Include/Core/Types/Area.hpp index 8045d17..943cb7b 100644 --- a/Include/Core/Types/Area.hpp +++ b/Include/Core/Types/Area.hpp @@ -72,7 +72,7 @@ class Area : public Convex * @see @ref HybridRandomDocs * @see @ref MissChanceFollowupDocs */ - Tile GetHybridRandomTile(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckMissFollowupChance = true) const; + Tile GetHybridRandomTile(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckPointGenAccuracyChance = true) const; friend std::ostream& operator<<(std::ostream& OS, const Area& A); diff --git a/Include/Core/Types/Box.hpp b/Include/Core/Types/Box.hpp index 181bc6c..a24511b 100644 --- a/Include/Core/Types/Box.hpp +++ b/Include/Core/Types/Box.hpp @@ -84,7 +84,7 @@ class Box * @see @ref HybridRandomDocs * @see @ref MissChanceFollowupDocs */ - Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckMissFollowupChance = true) const; + Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckPointGenAccuracyChance = true) const; /** * @brief Returns True if the Box contains a Point diff --git a/Include/Core/Types/Convex.hpp b/Include/Core/Types/Convex.hpp index 52e011c..c4ceba7 100644 --- a/Include/Core/Types/Convex.hpp +++ b/Include/Core/Types/Convex.hpp @@ -51,7 +51,7 @@ class Convex * @see @ref HybridRandomDocs * @see @ref MissChanceFollowupDocs */ - Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckMissFollowupChance = true) const; + Point GetHybridRandomPoint(double ProbabilityX, double ProbabilityY, double StandardDeviationX, double StandardDeviationY, bool CheckPointGenAccuracyChance = true) const; Convex operator+(const Point& P) const; Convex operator-(const Point& P) const; diff --git a/Include/Game/Tools/Profile.hpp b/Include/Game/Tools/Profile.hpp index e13c738..d3edc31 100644 --- a/Include/Game/Tools/Profile.hpp +++ b/Include/Game/Tools/Profile.hpp @@ -10,6 +10,8 @@ class Profile { public: + + static std::string GetUsername(); static std::string GetPassword(); static std::string GetBankPin(); @@ -18,26 +20,30 @@ class Profile static bool GetIsMember(); static bool GetHasPin(); - static std::int32_t GetActionDelayMean(); - static double GetActionDelayDeviation(); + static std::int32_t GetInteractableMean(); + static double GetInteractableDeviation(); - static std::int32_t GetMoveDelayMean(); - static double GetMoveDelayDeviation(); + static std::int32_t GetMoveMean(); + static double GetMoveDeviation(); - static std::int32_t GetMouseDownDelayMean(); - static double GetMouseDownDelayDeviation(); + static std::int32_t GetMouseDownMean(); + static double GetMouseDownDeviation(); - static std::int32_t GetMouseUpDelayMean(); - static double GetMouseUpDelayDeviation(); + static std::int32_t GetMouseUpMean(); + static double GetMouseUpDeviation(); - static std::int32_t GetKeyDownDelayMean(); - static double GetKeyDownDelayDeviation(); + static std::int32_t GetKeyDownMean(); + static double GetKeyDownDeviation(); - static std::int32_t GetKeyUpDelayMean(); - static double GetKeyUpDelayDeviation(); + static std::int32_t GetKeyUpMean(); + static double GetKeyUpDeviation(); - static std::int32_t GetScrollDelayMean(); - static double GetScrollDelayDeviation(); + static std::int32_t GetScrollAmount(); + static double GetScrollAmountDeviation(); + static std::int32_t GetScrollGapMean(); + static double GetScrollGapDeviation(); + static std::int32_t GetScrollMean(); + static double GetScrollDeviation(); static double GetStandardDeviationX(); static double GetStandardDeviationY(); @@ -57,13 +63,19 @@ class Profile static double GetWidgetProbabilityX(); static double GetWidgetProbabilityY(); - static double GetMissFollowUp(); + static double GetPointGenAccuracy(); static double GetFatigue(); static double GetFatigueGain(); static double GetFatigueLoss(); static double GetFatigueMax(); + static bool GetMiniBreakEnabled(); + static double GetMiniBreakEvery(); + static double GetMiniBreakEveryDeviation(); + static double GetMiniBreakFor(); + static double GetMiniBreakForDeviation(); + static bool GetShortBreakEnabled(); static double GetShortBreakEvery(); static double GetShortBreakEveryDeviation(); @@ -81,6 +93,7 @@ class Profile static std::string GetProxyPort(); static std::string GetProxyUsername(); static std::string GetProxyPassword(); + }; /** @} */ diff --git a/Library/libAlpacaLibrary.a b/Library/libAlpacaLibrary.a index 4c910845731d509c736c16cae7f334b87d165901..c869143682c86da9e45e869bb6e43d4f45557270 100644 GIT binary patch delta 32092 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