├── requirements.txt ├── Keno ├── Keno.pfx ├── keno.ico ├── Keno.csproj.user ├── packages.config ├── Program.cs ├── Properties │ ├── Settings.settings │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Settings.Designer.cs │ └── Resources.resx ├── App.config ├── Class1.cs ├── Forms │ ├── Form1.resx │ ├── Form1.Designer.cs │ └── Form1.cs └── Keno.csproj ├── README.md ├── Keno.sln ├── pyserver.py └── .gitignore /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask>=2.3.0 2 | curl-cffi>=0.5.0 -------------------------------------------------------------------------------- /Keno/Keno.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poky1084/Keno/HEAD/Keno/Keno.pfx -------------------------------------------------------------------------------- /Keno/keno.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poky1084/Keno/HEAD/Keno/keno.ico -------------------------------------------------------------------------------- /Keno/Keno.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | publish\ 5 | 6 | 7 | 8 | 9 | 10 | en-US 11 | false 12 | 13 | -------------------------------------------------------------------------------- /Keno/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Keno/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | 7 | namespace Keno 8 | { 9 | internal static class Program 10 | { 11 | /// 12 | /// The main entry point for the application. 13 | /// 14 | [STAThread] 15 | static void Main() 16 | { 17 | Application.EnableVisualStyles(); 18 | Application.SetCompatibleTextRenderingDefault(false); 19 | Application.Run(new Form1()); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Keno-3.0 ---- 2026 2 | Keno bot written for Stake original game. 3 | 4 | Discord: fisk_992
5 | Stake: poky1084
6 | Telegram:: @poky_1084 7 | 8 | Tutorial: https://www.youtube.com/watch?v=3NvXqEpnJ5c 9 | 10 | Install Python on your windows pc: 11 | https://www.python.org/downloads/ 12 | 13 | You would install python packages to run the Python proxy server 14 | bypass cloudflare. 15 | 16 | ``` 17 | pip install -r requirements.txt 18 | ``` 19 | 20 | To start the server, change the directory in Command Prompt to where the pyserver.py is located. 21 | Then type the following command and hit enter: 22 | 23 | ``` 24 | python pyserver.py 25 | ``` 26 | 27 | If the server is running you can check it with opening this URL in your browser: 28 | ``` 29 | http://localhost:5000/graphql?url= 30 | ``` 31 | -------------------------------------------------------------------------------- /Keno.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.1.32407.343 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Keno", "Keno\Keno.csproj", "{B5BD1444-A8C2-4D28-AA5C-2B41C2A0A094}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x86 = Debug|x86 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {B5BD1444-A8C2-4D28-AA5C-2B41C2A0A094}.Debug|x86.ActiveCfg = Debug|x86 15 | {B5BD1444-A8C2-4D28-AA5C-2B41C2A0A094}.Debug|x86.Build.0 = Debug|x86 16 | {B5BD1444-A8C2-4D28-AA5C-2B41C2A0A094}.Release|x86.ActiveCfg = Release|x86 17 | {B5BD1444-A8C2-4D28-AA5C-2B41C2A0A094}.Release|x86.Build.0 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {AE325E3C-1A98-4635-98DF-5D712D9B7945} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Keno/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | nextbet = 0.00000000 --sets your first bet. 16 | selected = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- set selected tiles 17 | risk = "low" -- set risk level 18 | 19 | function dobet() 20 | if (win) then 21 | print("hit counts: " .. lastBet.hits) 22 | print("multiplier: " .. lastBet.multiplier .. "x") 23 | end 24 | end 25 | 26 | 27 | stake.bet 28 | 29 | 30 | -------------------------------------------------------------------------------- /Keno/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Keno")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Keno")] 13 | [assembly: AssemblyCopyright("Copyright © 2022")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("b5bd1444-a8c2-4d28-aa5c-2b41c2a0a094")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Keno/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | nextbet = 0.00000000 --sets your first bet. 24 | selected = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- set selected tiles 25 | risk = "low" -- set risk level 26 | 27 | function dobet() 28 | if (win) then 29 | print("hit counts: " .. lastBet.hits) 30 | print("multiplier: " .. lastBet.multiplier .. "x") 31 | end 32 | end 33 | 34 | 35 | stake.bet 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Keno/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Keno.Properties 12 | { 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources 26 | { 27 | 28 | private static global::System.Resources.ResourceManager resourceMan; 29 | 30 | private static global::System.Globalization.CultureInfo resourceCulture; 31 | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 33 | internal Resources() 34 | { 35 | } 36 | 37 | /// 38 | /// Returns the cached ResourceManager instance used by this class. 39 | /// 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 41 | internal static global::System.Resources.ResourceManager ResourceManager 42 | { 43 | get 44 | { 45 | if ((resourceMan == null)) 46 | { 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Keno.Properties.Resources", typeof(Resources).Assembly); 48 | resourceMan = temp; 49 | } 50 | return resourceMan; 51 | } 52 | } 53 | 54 | /// 55 | /// Overrides the current thread's CurrentUICulture property for all 56 | /// resource lookups using this strongly typed resource class. 57 | /// 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 59 | internal static global::System.Globalization.CultureInfo Culture 60 | { 61 | get 62 | { 63 | return resourceCulture; 64 | } 65 | set 66 | { 67 | resourceCulture = value; 68 | } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /Keno/Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Keno 8 | { 9 | public class BetQuery 10 | { 11 | public string operationName { get; set; } 12 | public string query { get; set; } 13 | public BetClass variables { get; set; } 14 | public string token { get; set; } 15 | 16 | } 17 | public class BetClass 18 | { 19 | public string identifier { get; set; } 20 | public decimal amount { get; set; } 21 | public string currency { get; set; } 22 | public string game { get; set; } 23 | public string guess { get; set; } 24 | public int minesCount { get; set; } 25 | public List fields { get; set; } 26 | public string seed { get; set; } 27 | public string risk { get; set; } 28 | public List numbers { get; set; } 29 | } 30 | public class Card 31 | { 32 | public string rank { get; set; } 33 | public string suit { get; set; } 34 | } 35 | public class Data 36 | { 37 | public Betdata data { get; set; } 38 | public List errors { get; set; } 39 | } 40 | public class Errors 41 | { 42 | public List path { get; set; } 43 | public string message { get; set; } 44 | public string errorType { get; set; } 45 | public string data { get; set; } 46 | } 47 | 48 | public class ActiveData 49 | { 50 | public User data { get; set; } 51 | public List errors { get; set; } 52 | } 53 | public class User 54 | { 55 | public Active user { get; set; } 56 | } 57 | public class Active 58 | { 59 | public string id { get; set; } 60 | public string name { get; set; } 61 | public kenoBet activeCasinoBet { get; set; } 62 | public List balances { get; set; } 63 | } 64 | public class Balances 65 | { 66 | public Available available { get; set; } 67 | } 68 | public class Available 69 | { 70 | public decimal amount { get; set; } 71 | public string currency { get; set; } 72 | } 73 | public class Betdata 74 | { 75 | public kenoBet kenoBet { get; set; } 76 | public kenoBet minesNext { get; set; } 77 | public kenoBet minesCashout { get; set; } 78 | public object rotateSeedPair { get; set; } 79 | public object createVaultDeposit { get; set; } 80 | } 81 | public class kenoBet 82 | { 83 | public string id { get; set; } 84 | public string iid { get; set; } 85 | public double payoutMultiplier { get; set; } 86 | public decimal amount { get; set; } 87 | public decimal payout { get; set; } 88 | public string updatedAt { get; set; } 89 | public string currency { get; set; } 90 | public Active user { get; set; } 91 | public State state { get; set; } 92 | } 93 | public class State 94 | { 95 | public List drawnNumbers { get; set; } 96 | public List selectedNumbers { get; set; } 97 | public string risk { get; set; } 98 | 99 | } 100 | public class Rounds 101 | { 102 | public int field { get; set; } 103 | public double payoutMultiplier { get; set; } 104 | 105 | } 106 | public class BalancesData 107 | { 108 | public User data { get; set; } 109 | public List errors { get; set; } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /Keno/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Keno.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | 26 | [global::System.Configuration.UserScopedSettingAttribute()] 27 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 28 | [global::System.Configuration.DefaultSettingValueAttribute("")] 29 | public string token { 30 | get { 31 | return ((string)(this["token"])); 32 | } 33 | set { 34 | this["token"] = value; 35 | } 36 | } 37 | 38 | [global::System.Configuration.UserScopedSettingAttribute()] 39 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 40 | [global::System.Configuration.DefaultSettingValueAttribute("")] 41 | public string cookie { 42 | get { 43 | return ((string)(this["cookie"])); 44 | } 45 | set { 46 | this["cookie"] = value; 47 | } 48 | } 49 | 50 | [global::System.Configuration.UserScopedSettingAttribute()] 51 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 52 | [global::System.Configuration.DefaultSettingValueAttribute("")] 53 | public string agent { 54 | get { 55 | return ((string)(this["agent"])); 56 | } 57 | set { 58 | this["agent"] = value; 59 | } 60 | } 61 | 62 | [global::System.Configuration.UserScopedSettingAttribute()] 63 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 64 | [global::System.Configuration.DefaultSettingValueAttribute(@"nextbet = 0.00000000 --sets your first bet. 65 | selected = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- set selected tiles 66 | risk = ""low"" -- set risk level 67 | 68 | function dobet() 69 | if (win) then 70 | print(""hit counts: "" .. lastBet.hits) 71 | print(""multiplier: "" .. lastBet.multiplier .. ""x"") 72 | end 73 | end")] 74 | public string textCode { 75 | get { 76 | return ((string)(this["textCode"])); 77 | } 78 | set { 79 | this["textCode"] = value; 80 | } 81 | } 82 | 83 | [global::System.Configuration.UserScopedSettingAttribute()] 84 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 85 | [global::System.Configuration.DefaultSettingValueAttribute("stake.bet")] 86 | public string site { 87 | get { 88 | return ((string)(this["site"])); 89 | } 90 | set { 91 | this["site"] = value; 92 | } 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /pyserver.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, request, jsonify, Response 2 | from curl_cffi import requests 3 | import asyncio 4 | from curl_cffi.requests import AsyncSession 5 | import json 6 | import urllib.parse 7 | 8 | app = Flask(__name__) 9 | 10 | class CurlCffiProxy: 11 | def __init__(self): 12 | self.supported_browsers = ["chrome", "safari", "edge", "firefox"] 13 | 14 | def make_request(self, url, method="GET", headers=None, data=None, 15 | impersonate="chrome", proxies=None, timeout=30): 16 | """Make a request using curl_cffi with browser impersonation""" 17 | try: 18 | method = method.upper() 19 | request_args = { 20 | "url": url, 21 | "impersonate": impersonate, 22 | "timeout": timeout, 23 | "headers": headers or {} 24 | } 25 | 26 | if proxies: 27 | request_args["proxies"] = proxies 28 | 29 | if method == "GET": 30 | response = requests.get(**request_args) 31 | elif method == "POST": 32 | request_args["data"] = data 33 | response = requests.post(**request_args) 34 | elif method == "PUT": 35 | request_args["data"] = data 36 | response = requests.put(**request_args) 37 | elif method == "DELETE": 38 | response = requests.delete(**request_args) 39 | else: 40 | return {"error": f"Unsupported method: {method}"} 41 | 42 | # Return response data in a serializable format 43 | return { 44 | "status_code": response.status_code, 45 | "headers": dict(response.headers), 46 | "content": response.text, 47 | "url": str(response.url), 48 | "success": True 49 | } 50 | 51 | except Exception as e: 52 | return {"error": str(e), "success": False} 53 | 54 | proxy_handler = CurlCffiProxy() 55 | 56 | # Enhanced POST endpoint with better GraphQL handling 57 | @app.route('/graphql', methods=['POST']) 58 | def handle_graphql_proxy(): 59 | """Specialized endpoint for GraphQL requests""" 60 | try: 61 | # Get data from JSON body 62 | data = request.get_json() 63 | 64 | #if not data or 'url' not in data: 65 | #return jsonify({"error": "URL is required in JSON body", "success": False}) 66 | print(data) 67 | url = request.args.get('url') 68 | query = data.get('query', '') 69 | variables = data.get('variables', {}) 70 | operation_name = data.get('operationName') 71 | impersonate = data.get('impersonate', 'chrome') 72 | token = data.get('token') 73 | 74 | # Build proper GraphQL request 75 | graphql_payload = { 76 | "query": query, 77 | "variables": variables 78 | } 79 | 80 | if operation_name: 81 | graphql_payload["operationName"] = operation_name 82 | 83 | # Default headers for GraphQL 84 | headers = data.get('headers', {}) 85 | 86 | headers['x-access-token'] = token 87 | 88 | if 'Content-Type' not in headers: 89 | headers['Content-Type'] = 'application/json' 90 | if 'User-Agent' not in headers: 91 | headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' 92 | 93 | # Make the request 94 | result = proxy_handler.make_request( 95 | url=url, 96 | method="POST", 97 | headers=headers, 98 | data=json.dumps(graphql_payload), 99 | impersonate=impersonate, 100 | timeout=30 101 | ) 102 | print(result['content']) 103 | return result['content'] 104 | 105 | except Exception as e: 106 | return jsonify({"error": str(e), "success": False}) 107 | 108 | @app.route('/') 109 | def index(): 110 | """Home page with instructions""" 111 | return """ 112 | 113 | 114 | Python Proxy Server 115 | 119 | 120 | 121 |

Python Proxy Server with curl_cffi

122 | 123 |

Usage Examples:

124 | 125 |

1. Simple GET (Browser Address Bar):

126 | http://localhost:5000/get?url=https://httpbin.org/json 127 | 128 |

2. With Browser Impersonation:

129 | http://localhost:5000/get?url=https://httpbin.org/json&impersonate=safari 130 | 131 |

3. View Content Directly:

132 | http://localhost:5000/fetch?url=https://httpbin.org/html 133 | 134 |

4. POST Requests (use tools like curl or C#):

135 | POST http://localhost:5000/proxy 136 | Content-Type: application/json 137 | {"url": "https://httpbin.org/post", "method": "POST", "data": "test=data"} 138 | 139 |
140 |

Supported browsers: chrome, safari, edge, firefox

141 | 142 | 143 | """ 144 | 145 | if __name__ == '__main__': 146 | app.run(host='0.0.0.0', port=5000, debug=True) -------------------------------------------------------------------------------- /Keno/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /Keno/Forms/Form1.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /Keno/Keno.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {B5BD1444-A8C2-4D28-AA5C-2B41C2A0A094} 8 | WinExe 9 | Keno 10 | Keno 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | false 16 | 17 | 18 | publish\ 19 | true 20 | Disk 21 | false 22 | Foreground 23 | 7 24 | Days 25 | false 26 | false 27 | true 28 | 0 29 | 1.0.0.%2a 30 | false 31 | true 32 | 33 | 34 | true 35 | bin\x86\Debug\ 36 | DEBUG;TRACE 37 | full 38 | x86 39 | 7.3 40 | prompt 41 | true 42 | 43 | 44 | bin\x86\Release\ 45 | TRACE;DEBUG 46 | false 47 | pdbonly 48 | x86 49 | 7.3 50 | prompt 51 | true 52 | Off 53 | 54 | 55 | keno.ico 56 | 57 | 58 | false 59 | 60 | 61 | Keno.pfx 62 | 63 | 64 | false 65 | 66 | 67 | true 68 | 69 | 70 | 71 | ..\packages\FCTB.2.16.24\lib\FastColoredTextBox.dll 72 | 73 | 74 | ..\packages\LiveCharts.0.9.7\lib\net45\LiveCharts.dll 75 | 76 | 77 | ..\packages\LiveCharts.WinForms.0.9.7.1\lib\net45\LiveCharts.WinForms.dll 78 | 79 | 80 | ..\packages\LiveCharts.Wpf.0.9.7\lib\net45\LiveCharts.Wpf.dll 81 | 82 | 83 | ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll 84 | 85 | 86 | 87 | 88 | ..\packages\RestSharp.106.15.0\lib\net452\RestSharp.dll 89 | 90 | 91 | ..\packages\SharpLua.2.1.1.1\lib\net40\SharpLua.dll 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | Form 115 | 116 | 117 | Form1.cs 118 | 119 | 120 | 121 | 122 | Form1.cs 123 | Designer 124 | 125 | 126 | ResXFileCodeGenerator 127 | Resources.Designer.cs 128 | Designer 129 | 130 | 131 | True 132 | Resources.resx 133 | 134 | 135 | 136 | 137 | SettingsSingleFileGenerator 138 | Settings.Designer.cs 139 | 140 | 141 | True 142 | Settings.settings 143 | True 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | False 153 | Microsoft .NET Framework 4.7.2 %28x86 and x64%29 154 | true 155 | 156 | 157 | False 158 | .NET Framework 3.5 SP1 159 | false 160 | 161 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.rsuser 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # User-specific files (MonoDevelop/Xamarin Studio) 14 | *.userprefs 15 | 16 | # Mono auto generated files 17 | mono_crash.* 18 | 19 | # Build results 20 | [Dd]ebug/ 21 | [Dd]ebugPublic/ 22 | [Rr]elease/ 23 | [Rr]eleases/ 24 | x64/ 25 | x86/ 26 | [Ww][Ii][Nn]32/ 27 | [Aa][Rr][Mm]/ 28 | [Aa][Rr][Mm]64/ 29 | bld/ 30 | [Bb]in/ 31 | [Oo]bj/ 32 | [Ll]og/ 33 | [Ll]ogs/ 34 | 35 | # Visual Studio 2015/2017 cache/options directory 36 | .vs/ 37 | # Uncomment if you have tasks that create the project's static files in wwwroot 38 | #wwwroot/ 39 | 40 | # Visual Studio 2017 auto generated files 41 | Generated\ Files/ 42 | 43 | # MSTest test Results 44 | [Tt]est[Rr]esult*/ 45 | [Bb]uild[Ll]og.* 46 | 47 | # NUnit 48 | *.VisualState.xml 49 | TestResult.xml 50 | nunit-*.xml 51 | 52 | # Build Results of an ATL Project 53 | [Dd]ebugPS/ 54 | [Rr]eleasePS/ 55 | dlldata.c 56 | 57 | # Benchmark Results 58 | BenchmarkDotNet.Artifacts/ 59 | 60 | # .NET Core 61 | project.lock.json 62 | project.fragment.lock.json 63 | artifacts/ 64 | 65 | # ASP.NET Scaffolding 66 | ScaffoldingReadMe.txt 67 | 68 | # StyleCop 69 | StyleCopReport.xml 70 | 71 | # Files built by Visual Studio 72 | *_i.c 73 | *_p.c 74 | *_h.h 75 | *.ilk 76 | *.meta 77 | *.obj 78 | *.iobj 79 | *.pch 80 | *.pdb 81 | *.ipdb 82 | *.pgc 83 | *.pgd 84 | *.rsp 85 | *.sbr 86 | *.tlb 87 | *.tli 88 | *.tlh 89 | *.tmp 90 | *.tmp_proj 91 | *_wpftmp.csproj 92 | *.log 93 | *.tlog 94 | *.vspscc 95 | *.vssscc 96 | .builds 97 | *.pidb 98 | *.svclog 99 | *.scc 100 | 101 | # Chutzpah Test files 102 | _Chutzpah* 103 | 104 | # Visual C++ cache files 105 | ipch/ 106 | *.aps 107 | *.ncb 108 | *.opendb 109 | *.opensdf 110 | *.sdf 111 | *.cachefile 112 | *.VC.db 113 | *.VC.VC.opendb 114 | 115 | # Visual Studio profiler 116 | *.psess 117 | *.vsp 118 | *.vspx 119 | *.sap 120 | 121 | # Visual Studio Trace Files 122 | *.e2e 123 | 124 | # TFS 2012 Local Workspace 125 | $tf/ 126 | 127 | # Guidance Automation Toolkit 128 | *.gpState 129 | 130 | # ReSharper is a .NET coding add-in 131 | _ReSharper*/ 132 | *.[Rr]e[Ss]harper 133 | *.DotSettings.user 134 | 135 | # TeamCity is a build add-in 136 | _TeamCity* 137 | 138 | # DotCover is a Code Coverage Tool 139 | *.dotCover 140 | 141 | # AxoCover is a Code Coverage Tool 142 | .axoCover/* 143 | !.axoCover/settings.json 144 | 145 | # Coverlet is a free, cross platform Code Coverage Tool 146 | coverage*.json 147 | coverage*.xml 148 | coverage*.info 149 | 150 | # Visual Studio code coverage results 151 | *.coverage 152 | *.coveragexml 153 | 154 | # NCrunch 155 | _NCrunch_* 156 | .*crunch*.local.xml 157 | nCrunchTemp_* 158 | 159 | # MightyMoose 160 | *.mm.* 161 | AutoTest.Net/ 162 | 163 | # Web workbench (sass) 164 | .sass-cache/ 165 | 166 | # Installshield output folder 167 | [Ee]xpress/ 168 | 169 | # DocProject is a documentation generator add-in 170 | DocProject/buildhelp/ 171 | DocProject/Help/*.HxT 172 | DocProject/Help/*.HxC 173 | DocProject/Help/*.hhc 174 | DocProject/Help/*.hhk 175 | DocProject/Help/*.hhp 176 | DocProject/Help/Html2 177 | DocProject/Help/html 178 | 179 | # Click-Once directory 180 | publish/ 181 | 182 | # Publish Web Output 183 | *.[Pp]ublish.xml 184 | *.azurePubxml 185 | # Note: Comment the next line if you want to checkin your web deploy settings, 186 | # but database connection strings (with potential passwords) will be unencrypted 187 | *.pubxml 188 | *.publishproj 189 | 190 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 191 | # checkin your Azure Web App publish settings, but sensitive information contained 192 | # in these scripts will be unencrypted 193 | PublishScripts/ 194 | 195 | # NuGet Packages 196 | *.nupkg 197 | # NuGet Symbol Packages 198 | *.snupkg 199 | # The packages folder can be ignored because of Package Restore 200 | **/[Pp]ackages/* 201 | # except build/, which is used as an MSBuild target. 202 | !**/[Pp]ackages/build/ 203 | # Uncomment if necessary however generally it will be regenerated when needed 204 | #!**/[Pp]ackages/repositories.config 205 | # NuGet v3's project.json files produces more ignorable files 206 | *.nuget.props 207 | *.nuget.targets 208 | 209 | # Nuget personal access tokens and Credentials 210 | # nuget.config 211 | 212 | # Microsoft Azure Build Output 213 | csx/ 214 | *.build.csdef 215 | 216 | # Microsoft Azure Emulator 217 | ecf/ 218 | rcf/ 219 | 220 | # Windows Store app package directories and files 221 | AppPackages/ 222 | BundleArtifacts/ 223 | Package.StoreAssociation.xml 224 | _pkginfo.txt 225 | *.appx 226 | *.appxbundle 227 | *.appxupload 228 | 229 | # Visual Studio cache files 230 | # files ending in .cache can be ignored 231 | *.[Cc]ache 232 | # but keep track of directories ending in .cache 233 | !?*.[Cc]ache/ 234 | 235 | # Others 236 | ClientBin/ 237 | ~$* 238 | *~ 239 | *.dbmdl 240 | *.dbproj.schemaview 241 | *.jfm 242 | *.pfx 243 | *.publishsettings 244 | orleans.codegen.cs 245 | 246 | # Including strong name files can present a security risk 247 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 248 | #*.snk 249 | 250 | # Since there are multiple workflows, uncomment next line to ignore bower_components 251 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 252 | #bower_components/ 253 | 254 | # RIA/Silverlight projects 255 | Generated_Code/ 256 | 257 | # Backup & report files from converting an old project file 258 | # to a newer Visual Studio version. Backup files are not needed, 259 | # because we have git ;-) 260 | _UpgradeReport_Files/ 261 | Backup*/ 262 | UpgradeLog*.XML 263 | UpgradeLog*.htm 264 | ServiceFabricBackup/ 265 | *.rptproj.bak 266 | 267 | # SQL Server files 268 | *.mdf 269 | *.ldf 270 | *.ndf 271 | 272 | # Business Intelligence projects 273 | *.rdl.data 274 | *.bim.layout 275 | *.bim_*.settings 276 | *.rptproj.rsuser 277 | *- [Bb]ackup.rdl 278 | *- [Bb]ackup ([0-9]).rdl 279 | *- [Bb]ackup ([0-9][0-9]).rdl 280 | 281 | # Microsoft Fakes 282 | FakesAssemblies/ 283 | 284 | # GhostDoc plugin setting file 285 | *.GhostDoc.xml 286 | 287 | # Node.js Tools for Visual Studio 288 | .ntvs_analysis.dat 289 | node_modules/ 290 | 291 | # Visual Studio 6 build log 292 | *.plg 293 | 294 | # Visual Studio 6 workspace options file 295 | *.opt 296 | 297 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 298 | *.vbw 299 | 300 | # Visual Studio LightSwitch build output 301 | **/*.HTMLClient/GeneratedArtifacts 302 | **/*.DesktopClient/GeneratedArtifacts 303 | **/*.DesktopClient/ModelManifest.xml 304 | **/*.Server/GeneratedArtifacts 305 | **/*.Server/ModelManifest.xml 306 | _Pvt_Extensions 307 | 308 | # Paket dependency manager 309 | .paket/paket.exe 310 | paket-files/ 311 | 312 | # FAKE - F# Make 313 | .fake/ 314 | 315 | # CodeRush personal settings 316 | .cr/personal 317 | 318 | # Python Tools for Visual Studio (PTVS) 319 | __pycache__/ 320 | *.pyc 321 | 322 | # Cake - Uncomment if you are using it 323 | # tools/** 324 | # !tools/packages.config 325 | 326 | # Tabs Studio 327 | *.tss 328 | 329 | # Telerik's JustMock configuration file 330 | *.jmconfig 331 | 332 | # BizTalk build output 333 | *.btp.cs 334 | *.btm.cs 335 | *.odx.cs 336 | *.xsd.cs 337 | 338 | # OpenCover UI analysis results 339 | OpenCover/ 340 | 341 | # Azure Stream Analytics local run output 342 | ASALocalRun/ 343 | 344 | # MSBuild Binary and Structured Log 345 | *.binlog 346 | 347 | # NVidia Nsight GPU debugger configuration file 348 | *.nvuser 349 | 350 | # MFractors (Xamarin productivity tool) working folder 351 | .mfractor/ 352 | 353 | # Local History for Visual Studio 354 | .localhistory/ 355 | 356 | # BeatPulse healthcheck temp database 357 | healthchecksdb 358 | 359 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 360 | MigrationBackup/ 361 | 362 | # Ionide (cross platform F# VS Code tools) working folder 363 | .ionide/ 364 | 365 | # Fody - auto-generated XML schema 366 | FodyWeavers.xsd 367 | 368 | # VS Code files for those working on multiple tools 369 | .vscode/* 370 | !.vscode/settings.json 371 | !.vscode/tasks.json 372 | !.vscode/launch.json 373 | !.vscode/extensions.json 374 | *.code-workspace 375 | 376 | # Local History for Visual Studio Code 377 | .history/ 378 | 379 | # Windows Installer files from build outputs 380 | *.cab 381 | *.msi 382 | *.msix 383 | *.msm 384 | *.msp 385 | 386 | # JetBrains Rider 387 | .idea/ 388 | *.sln.iml -------------------------------------------------------------------------------- /Keno/Forms/Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Keno 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.button1 = new System.Windows.Forms.Button(); 32 | this.button2 = new System.Windows.Forms.Button(); 33 | this.clearTable = new System.Windows.Forms.Button(); 34 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 35 | this.listView1 = new System.Windows.Forms.ListView(); 36 | this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 37 | this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 38 | this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 39 | this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 40 | this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 41 | this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 42 | this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 43 | this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); 44 | this.statusStrip1 = new System.Windows.Forms.StatusStrip(); 45 | this.StatusLogIn = new System.Windows.Forms.ToolStripStatusLabel(); 46 | this.tabControl1 = new System.Windows.Forms.TabControl(); 47 | this.tabPage1 = new System.Windows.Forms.TabPage(); 48 | this.textBox4 = new System.Windows.Forms.TextBox(); 49 | this.button3 = new System.Windows.Forms.Button(); 50 | this.groupBox4 = new System.Windows.Forms.GroupBox(); 51 | this.ResetChartClicked = new System.Windows.Forms.LinkLabel(); 52 | this.currentStreakLabel = new System.Windows.Forms.Label(); 53 | this.label22 = new System.Windows.Forms.Label(); 54 | this.lowestStreakLabel = new System.Windows.Forms.Label(); 55 | this.label24 = new System.Windows.Forms.Label(); 56 | this.highestStreakLabel = new System.Windows.Forms.Label(); 57 | this.label26 = new System.Windows.Forms.Label(); 58 | this.highestBetLabel = new System.Windows.Forms.Label(); 59 | this.label16 = new System.Windows.Forms.Label(); 60 | this.lowestProfitLabel = new System.Windows.Forms.Label(); 61 | this.label18 = new System.Windows.Forms.Label(); 62 | this.highestProfitLabel = new System.Windows.Forms.Label(); 63 | this.label20 = new System.Windows.Forms.Label(); 64 | this.linkLabel1 = new System.Windows.Forms.LinkLabel(); 65 | this.elapsedTimeLabel = new System.Windows.Forms.Label(); 66 | this.label14 = new System.Windows.Forms.Label(); 67 | this.wincountLabel = new System.Windows.Forms.Label(); 68 | this.label8 = new System.Windows.Forms.Label(); 69 | this.totalbetsLabel = new System.Windows.Forms.Label(); 70 | this.label10 = new System.Windows.Forms.Label(); 71 | this.losecountLabel = new System.Windows.Forms.Label(); 72 | this.label12 = new System.Windows.Forms.Label(); 73 | this.balanceLabel = new System.Windows.Forms.Label(); 74 | this.label5 = new System.Windows.Forms.Label(); 75 | this.wagerLabel = new System.Windows.Forms.Label(); 76 | this.label4 = new System.Windows.Forms.Label(); 77 | this.profitLabel = new System.Windows.Forms.Label(); 78 | this.label3 = new System.Windows.Forms.Label(); 79 | this.panel1 = new System.Windows.Forms.Panel(); 80 | this.BetCost = new System.Windows.Forms.NumericUpDown(); 81 | this.label2 = new System.Windows.Forms.Label(); 82 | this.label1 = new System.Windows.Forms.Label(); 83 | this.textBox1 = new System.Windows.Forms.TextBox(); 84 | this.currencySelect = new System.Windows.Forms.ComboBox(); 85 | this.riskSelect = new System.Windows.Forms.ComboBox(); 86 | this.tabPage2 = new System.Windows.Forms.TabPage(); 87 | this.tabControl2 = new System.Windows.Forms.TabControl(); 88 | this.tabPage3 = new System.Windows.Forms.TabPage(); 89 | this.tabPage4 = new System.Windows.Forms.TabPage(); 90 | this.groupBox3 = new System.Windows.Forms.GroupBox(); 91 | this.listBox1 = new System.Windows.Forms.ListBox(); 92 | this.groupBox2 = new System.Windows.Forms.GroupBox(); 93 | this.listBox2 = new System.Windows.Forms.ListBox(); 94 | this.tabPage5 = new System.Windows.Forms.TabPage(); 95 | this.CmdBox = new System.Windows.Forms.TextBox(); 96 | this.CmdBtn = new System.Windows.Forms.Button(); 97 | this.consoleLog = new System.Windows.Forms.RichTextBox(); 98 | this.listView2 = new System.Windows.Forms.ListView(); 99 | this.autoPickBtn = new System.Windows.Forms.Button(); 100 | this.LiveBalLabel = new System.Windows.Forms.TextBox(); 101 | this.riskLabel = new System.Windows.Forms.Label(); 102 | this.groupBox1.SuspendLayout(); 103 | this.statusStrip1.SuspendLayout(); 104 | this.tabControl1.SuspendLayout(); 105 | this.tabPage1.SuspendLayout(); 106 | this.groupBox4.SuspendLayout(); 107 | ((System.ComponentModel.ISupportInitialize)(this.BetCost)).BeginInit(); 108 | this.tabPage2.SuspendLayout(); 109 | this.tabControl2.SuspendLayout(); 110 | this.tabPage4.SuspendLayout(); 111 | this.groupBox3.SuspendLayout(); 112 | this.groupBox2.SuspendLayout(); 113 | this.tabPage5.SuspendLayout(); 114 | this.SuspendLayout(); 115 | // 116 | // button1 117 | // 118 | this.button1.Enabled = false; 119 | this.button1.Location = new System.Drawing.Point(972, 332); 120 | this.button1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 121 | this.button1.Name = "button1"; 122 | this.button1.Size = new System.Drawing.Size(94, 27); 123 | this.button1.TabIndex = 1; 124 | this.button1.Text = "Manual Bet"; 125 | this.button1.UseVisualStyleBackColor = true; 126 | this.button1.Click += new System.EventHandler(this.button1_Click); 127 | // 128 | // button2 129 | // 130 | this.button2.Location = new System.Drawing.Point(621, 332); 131 | this.button2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 132 | this.button2.Name = "button2"; 133 | this.button2.Size = new System.Drawing.Size(115, 27); 134 | this.button2.TabIndex = 2; 135 | this.button2.Text = "Start Lua"; 136 | this.button2.UseVisualStyleBackColor = true; 137 | this.button2.Click += new System.EventHandler(this.button2_Click); 138 | // 139 | // clearTable 140 | // 141 | this.clearTable.Location = new System.Drawing.Point(869, 332); 142 | this.clearTable.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 143 | this.clearTable.Name = "clearTable"; 144 | this.clearTable.Size = new System.Drawing.Size(103, 27); 145 | this.clearTable.TabIndex = 4; 146 | this.clearTable.Text = "Clear Table"; 147 | this.clearTable.UseVisualStyleBackColor = true; 148 | this.clearTable.Click += new System.EventHandler(this.clearTable_Click); 149 | // 150 | // groupBox1 151 | // 152 | this.groupBox1.Controls.Add(this.listView1); 153 | this.groupBox1.Location = new System.Drawing.Point(0, 356); 154 | this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 155 | this.groupBox1.Name = "groupBox1"; 156 | this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 157 | this.groupBox1.Size = new System.Drawing.Size(1067, 156); 158 | this.groupBox1.TabIndex = 5; 159 | this.groupBox1.TabStop = false; 160 | // 161 | // listView1 162 | // 163 | this.listView1.Activation = System.Windows.Forms.ItemActivation.OneClick; 164 | this.listView1.BackColor = System.Drawing.SystemColors.Control; 165 | this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None; 166 | this.listView1.CheckBoxes = true; 167 | this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 168 | this.columnHeader1, 169 | this.columnHeader2, 170 | this.columnHeader3, 171 | this.columnHeader4, 172 | this.columnHeader5, 173 | this.columnHeader6, 174 | this.columnHeader7, 175 | this.columnHeader8}); 176 | this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; 177 | this.listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 178 | this.listView1.HideSelection = false; 179 | this.listView1.Location = new System.Drawing.Point(4, 19); 180 | this.listView1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 181 | this.listView1.Name = "listView1"; 182 | this.listView1.Size = new System.Drawing.Size(1059, 133); 183 | this.listView1.TabIndex = 0; 184 | this.listView1.UseCompatibleStateImageBehavior = false; 185 | this.listView1.View = System.Windows.Forms.View.Details; 186 | // 187 | // columnHeader1 188 | // 189 | this.columnHeader1.Text = "ID"; 190 | // 191 | // columnHeader2 192 | // 193 | this.columnHeader2.Text = "Hits"; 194 | this.columnHeader2.Width = 110; 195 | // 196 | // columnHeader3 197 | // 198 | this.columnHeader3.Text = "Picks"; 199 | this.columnHeader3.Width = 165; 200 | // 201 | // columnHeader4 202 | // 203 | this.columnHeader4.Text = "Result"; 204 | this.columnHeader4.Width = 160; 205 | // 206 | // columnHeader5 207 | // 208 | this.columnHeader5.Text = "Risk"; 209 | this.columnHeader5.Width = 50; 210 | // 211 | // columnHeader6 212 | // 213 | this.columnHeader6.Text = "Bet Cost"; 214 | this.columnHeader6.Width = 100; 215 | // 216 | // columnHeader7 217 | // 218 | this.columnHeader7.Text = "Multiplier"; 219 | this.columnHeader7.Width = 70; 220 | // 221 | // columnHeader8 222 | // 223 | this.columnHeader8.Text = "Payout"; 224 | this.columnHeader8.Width = 100; 225 | // 226 | // statusStrip1 227 | // 228 | this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24); 229 | this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 230 | this.StatusLogIn}); 231 | this.statusStrip1.Location = new System.Drawing.Point(0, 512); 232 | this.statusStrip1.Name = "statusStrip1"; 233 | this.statusStrip1.Padding = new System.Windows.Forms.Padding(16, 0, 2, 0); 234 | this.statusStrip1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; 235 | this.statusStrip1.Size = new System.Drawing.Size(1067, 26); 236 | this.statusStrip1.TabIndex = 7; 237 | this.statusStrip1.Text = "statusStrip1"; 238 | // 239 | // StatusLogIn 240 | // 241 | this.StatusLogIn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; 242 | this.StatusLogIn.Name = "StatusLogIn"; 243 | this.StatusLogIn.Size = new System.Drawing.Size(98, 20); 244 | this.StatusLogIn.Text = "Unauthorized"; 245 | this.StatusLogIn.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal; 246 | // 247 | // tabControl1 248 | // 249 | this.tabControl1.Controls.Add(this.tabPage1); 250 | this.tabControl1.Controls.Add(this.tabPage2); 251 | this.tabControl1.Controls.Add(this.tabPage5); 252 | this.tabControl1.Location = new System.Drawing.Point(4, 2); 253 | this.tabControl1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 254 | this.tabControl1.Name = "tabControl1"; 255 | this.tabControl1.SelectedIndex = 0; 256 | this.tabControl1.Size = new System.Drawing.Size(612, 356); 257 | this.tabControl1.TabIndex = 8; 258 | // 259 | // tabPage1 260 | // 261 | this.tabPage1.Controls.Add(this.textBox4); 262 | this.tabPage1.Controls.Add(this.button3); 263 | this.tabPage1.Controls.Add(this.groupBox4); 264 | this.tabPage1.Controls.Add(this.BetCost); 265 | this.tabPage1.Controls.Add(this.label2); 266 | this.tabPage1.Controls.Add(this.label1); 267 | this.tabPage1.Controls.Add(this.textBox1); 268 | this.tabPage1.Controls.Add(this.currencySelect); 269 | this.tabPage1.Controls.Add(this.riskSelect); 270 | this.tabPage1.Location = new System.Drawing.Point(4, 25); 271 | this.tabPage1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 272 | this.tabPage1.Name = "tabPage1"; 273 | this.tabPage1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 274 | this.tabPage1.Size = new System.Drawing.Size(604, 327); 275 | this.tabPage1.TabIndex = 0; 276 | this.tabPage1.Text = "Main"; 277 | this.tabPage1.UseVisualStyleBackColor = true; 278 | // 279 | // textBox4 280 | // 281 | this.textBox4.Location = new System.Drawing.Point(70, 34); 282 | this.textBox4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 283 | this.textBox4.Name = "textBox4"; 284 | this.textBox4.Size = new System.Drawing.Size(144, 22); 285 | this.textBox4.TabIndex = 18; 286 | this.textBox4.Text = "stake.bet"; 287 | this.textBox4.TextChanged += new System.EventHandler(this.textBox4_TextChanged); 288 | // 289 | // button3 290 | // 291 | this.button3.Location = new System.Drawing.Point(69, 62); 292 | this.button3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 293 | this.button3.Name = "button3"; 294 | this.button3.Size = new System.Drawing.Size(94, 23); 295 | this.button3.TabIndex = 11; 296 | this.button3.Text = "Check"; 297 | this.button3.UseVisualStyleBackColor = true; 298 | this.button3.Click += new System.EventHandler(this.button3_Click); 299 | // 300 | // groupBox4 301 | // 302 | this.groupBox4.Controls.Add(this.ResetChartClicked); 303 | this.groupBox4.Controls.Add(this.currentStreakLabel); 304 | this.groupBox4.Controls.Add(this.label22); 305 | this.groupBox4.Controls.Add(this.lowestStreakLabel); 306 | this.groupBox4.Controls.Add(this.label24); 307 | this.groupBox4.Controls.Add(this.highestStreakLabel); 308 | this.groupBox4.Controls.Add(this.label26); 309 | this.groupBox4.Controls.Add(this.highestBetLabel); 310 | this.groupBox4.Controls.Add(this.label16); 311 | this.groupBox4.Controls.Add(this.lowestProfitLabel); 312 | this.groupBox4.Controls.Add(this.label18); 313 | this.groupBox4.Controls.Add(this.highestProfitLabel); 314 | this.groupBox4.Controls.Add(this.label20); 315 | this.groupBox4.Controls.Add(this.linkLabel1); 316 | this.groupBox4.Controls.Add(this.elapsedTimeLabel); 317 | this.groupBox4.Controls.Add(this.label14); 318 | this.groupBox4.Controls.Add(this.wincountLabel); 319 | this.groupBox4.Controls.Add(this.label8); 320 | this.groupBox4.Controls.Add(this.totalbetsLabel); 321 | this.groupBox4.Controls.Add(this.label10); 322 | this.groupBox4.Controls.Add(this.losecountLabel); 323 | this.groupBox4.Controls.Add(this.label12); 324 | this.groupBox4.Controls.Add(this.balanceLabel); 325 | this.groupBox4.Controls.Add(this.label5); 326 | this.groupBox4.Controls.Add(this.wagerLabel); 327 | this.groupBox4.Controls.Add(this.label4); 328 | this.groupBox4.Controls.Add(this.profitLabel); 329 | this.groupBox4.Controls.Add(this.label3); 330 | this.groupBox4.Controls.Add(this.panel1); 331 | this.groupBox4.Location = new System.Drawing.Point(7, 90); 332 | this.groupBox4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 333 | this.groupBox4.Name = "groupBox4"; 334 | this.groupBox4.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 335 | this.groupBox4.Size = new System.Drawing.Size(590, 226); 336 | this.groupBox4.TabIndex = 13; 337 | this.groupBox4.TabStop = false; 338 | this.groupBox4.Text = "Statistics"; 339 | // 340 | // ResetChartClicked 341 | // 342 | this.ResetChartClicked.AutoSize = true; 343 | this.ResetChartClicked.Location = new System.Drawing.Point(163, 204); 344 | this.ResetChartClicked.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 345 | this.ResetChartClicked.Name = "ResetChartClicked"; 346 | this.ResetChartClicked.Size = new System.Drawing.Size(77, 16); 347 | this.ResetChartClicked.TabIndex = 38; 348 | this.ResetChartClicked.TabStop = true; 349 | this.ResetChartClicked.Text = "Reset Chart"; 350 | this.ResetChartClicked.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.ResetChartClicked_LinkClicked); 351 | // 352 | // currentStreakLabel 353 | // 354 | this.currentStreakLabel.AutoSize = true; 355 | this.currentStreakLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 356 | this.currentStreakLabel.Location = new System.Drawing.Point(544, 26); 357 | this.currentStreakLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 358 | this.currentStreakLabel.Name = "currentStreakLabel"; 359 | this.currentStreakLabel.Size = new System.Drawing.Size(19, 23); 360 | this.currentStreakLabel.TabIndex = 37; 361 | this.currentStreakLabel.Text = "0"; 362 | // 363 | // label22 364 | // 365 | this.label22.AutoSize = true; 366 | this.label22.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 367 | this.label22.Location = new System.Drawing.Point(420, 26); 368 | this.label22.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 369 | this.label22.Name = "label22"; 370 | this.label22.Size = new System.Drawing.Size(122, 23); 371 | this.label22.TabIndex = 36; 372 | this.label22.Text = "Current streak:"; 373 | // 374 | // lowestStreakLabel 375 | // 376 | this.lowestStreakLabel.AutoSize = true; 377 | this.lowestStreakLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 378 | this.lowestStreakLabel.Location = new System.Drawing.Point(544, 69); 379 | this.lowestStreakLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 380 | this.lowestStreakLabel.Name = "lowestStreakLabel"; 381 | this.lowestStreakLabel.Size = new System.Drawing.Size(19, 23); 382 | this.lowestStreakLabel.TabIndex = 35; 383 | this.lowestStreakLabel.Text = "0"; 384 | // 385 | // label24 386 | // 387 | this.label24.AutoSize = true; 388 | this.label24.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 389 | this.label24.Location = new System.Drawing.Point(420, 69); 390 | this.label24.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 391 | this.label24.Name = "label24"; 392 | this.label24.Size = new System.Drawing.Size(117, 23); 393 | this.label24.TabIndex = 34; 394 | this.label24.Text = "Lowest Streak:"; 395 | // 396 | // highestStreakLabel 397 | // 398 | this.highestStreakLabel.AutoSize = true; 399 | this.highestStreakLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 400 | this.highestStreakLabel.Location = new System.Drawing.Point(544, 46); 401 | this.highestStreakLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 402 | this.highestStreakLabel.Name = "highestStreakLabel"; 403 | this.highestStreakLabel.Size = new System.Drawing.Size(19, 23); 404 | this.highestStreakLabel.TabIndex = 33; 405 | this.highestStreakLabel.Text = "0"; 406 | // 407 | // label26 408 | // 409 | this.label26.AutoSize = true; 410 | this.label26.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 411 | this.label26.Location = new System.Drawing.Point(420, 46); 412 | this.label26.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 413 | this.label26.Name = "label26"; 414 | this.label26.Size = new System.Drawing.Size(123, 23); 415 | this.label26.TabIndex = 32; 416 | this.label26.Text = "Highest Streak:"; 417 | // 418 | // highestBetLabel 419 | // 420 | this.highestBetLabel.AutoSize = true; 421 | this.highestBetLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 422 | this.highestBetLabel.Location = new System.Drawing.Point(316, 26); 423 | this.highestBetLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 424 | this.highestBetLabel.Name = "highestBetLabel"; 425 | this.highestBetLabel.Size = new System.Drawing.Size(95, 23); 426 | this.highestBetLabel.TabIndex = 31; 427 | this.highestBetLabel.Text = "0.00000000"; 428 | // 429 | // label16 430 | // 431 | this.label16.AutoSize = true; 432 | this.label16.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 433 | this.label16.Location = new System.Drawing.Point(201, 26); 434 | this.label16.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 435 | this.label16.Name = "label16"; 436 | this.label16.Size = new System.Drawing.Size(102, 23); 437 | this.label16.TabIndex = 30; 438 | this.label16.Text = "Highest Bet:"; 439 | // 440 | // lowestProfitLabel 441 | // 442 | this.lowestProfitLabel.AutoSize = true; 443 | this.lowestProfitLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 444 | this.lowestProfitLabel.Location = new System.Drawing.Point(316, 69); 445 | this.lowestProfitLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 446 | this.lowestProfitLabel.Name = "lowestProfitLabel"; 447 | this.lowestProfitLabel.Size = new System.Drawing.Size(95, 23); 448 | this.lowestProfitLabel.TabIndex = 29; 449 | this.lowestProfitLabel.Text = "0.00000000"; 450 | // 451 | // label18 452 | // 453 | this.label18.AutoSize = true; 454 | this.label18.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 455 | this.label18.Location = new System.Drawing.Point(201, 69); 456 | this.label18.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 457 | this.label18.Name = "label18"; 458 | this.label18.Size = new System.Drawing.Size(112, 23); 459 | this.label18.TabIndex = 28; 460 | this.label18.Text = "Lowest Profit:"; 461 | // 462 | // highestProfitLabel 463 | // 464 | this.highestProfitLabel.AutoSize = true; 465 | this.highestProfitLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 466 | this.highestProfitLabel.Location = new System.Drawing.Point(316, 48); 467 | this.highestProfitLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 468 | this.highestProfitLabel.Name = "highestProfitLabel"; 469 | this.highestProfitLabel.Size = new System.Drawing.Size(95, 23); 470 | this.highestProfitLabel.TabIndex = 27; 471 | this.highestProfitLabel.Text = "0.00000000"; 472 | // 473 | // label20 474 | // 475 | this.label20.AutoSize = true; 476 | this.label20.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 477 | this.label20.Location = new System.Drawing.Point(201, 48); 478 | this.label20.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 479 | this.label20.Name = "label20"; 480 | this.label20.Size = new System.Drawing.Size(118, 23); 481 | this.label20.TabIndex = 26; 482 | this.label20.Text = "Highest Profit:"; 483 | // 484 | // linkLabel1 485 | // 486 | this.linkLabel1.AutoSize = true; 487 | this.linkLabel1.Location = new System.Drawing.Point(11, 204); 488 | this.linkLabel1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 489 | this.linkLabel1.Name = "linkLabel1"; 490 | this.linkLabel1.Size = new System.Drawing.Size(76, 16); 491 | this.linkLabel1.TabIndex = 25; 492 | this.linkLabel1.TabStop = true; 493 | this.linkLabel1.Text = "Reset Stats"; 494 | this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); 495 | // 496 | // elapsedTimeLabel 497 | // 498 | this.elapsedTimeLabel.AutoSize = true; 499 | this.elapsedTimeLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 500 | this.elapsedTimeLabel.Location = new System.Drawing.Point(151, 174); 501 | this.elapsedTimeLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 502 | this.elapsedTimeLabel.Name = "elapsedTimeLabel"; 503 | this.elapsedTimeLabel.Size = new System.Drawing.Size(65, 23); 504 | this.elapsedTimeLabel.TabIndex = 24; 505 | this.elapsedTimeLabel.Text = "0 : 0 : 0"; 506 | // 507 | // label14 508 | // 509 | this.label14.AutoSize = true; 510 | this.label14.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 511 | this.label14.Location = new System.Drawing.Point(9, 174); 512 | this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 513 | this.label14.Name = "label14"; 514 | this.label14.Size = new System.Drawing.Size(114, 23); 515 | this.label14.TabIndex = 23; 516 | this.label14.Text = "Elapsed Time:"; 517 | // 518 | // wincountLabel 519 | // 520 | this.wincountLabel.AutoSize = true; 521 | this.wincountLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 522 | this.wincountLabel.Location = new System.Drawing.Point(89, 98); 523 | this.wincountLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 524 | this.wincountLabel.Name = "wincountLabel"; 525 | this.wincountLabel.Size = new System.Drawing.Size(19, 23); 526 | this.wincountLabel.TabIndex = 22; 527 | this.wincountLabel.Text = "0"; 528 | // 529 | // label8 530 | // 531 | this.label8.AutoSize = true; 532 | this.label8.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 533 | this.label8.Location = new System.Drawing.Point(9, 98); 534 | this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 535 | this.label8.Name = "label8"; 536 | this.label8.Size = new System.Drawing.Size(51, 23); 537 | this.label8.TabIndex = 21; 538 | this.label8.Text = "Wins:"; 539 | // 540 | // totalbetsLabel 541 | // 542 | this.totalbetsLabel.AutoSize = true; 543 | this.totalbetsLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 544 | this.totalbetsLabel.Location = new System.Drawing.Point(89, 142); 545 | this.totalbetsLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 546 | this.totalbetsLabel.Name = "totalbetsLabel"; 547 | this.totalbetsLabel.Size = new System.Drawing.Size(19, 23); 548 | this.totalbetsLabel.TabIndex = 20; 549 | this.totalbetsLabel.Text = "0"; 550 | // 551 | // label10 552 | // 553 | this.label10.AutoSize = true; 554 | this.label10.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 555 | this.label10.Location = new System.Drawing.Point(8, 142); 556 | this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 557 | this.label10.Name = "label10"; 558 | this.label10.Size = new System.Drawing.Size(50, 23); 559 | this.label10.TabIndex = 19; 560 | this.label10.Text = "Total:"; 561 | // 562 | // losecountLabel 563 | // 564 | this.losecountLabel.AutoSize = true; 565 | this.losecountLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 566 | this.losecountLabel.Location = new System.Drawing.Point(89, 119); 567 | this.losecountLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 568 | this.losecountLabel.Name = "losecountLabel"; 569 | this.losecountLabel.Size = new System.Drawing.Size(19, 23); 570 | this.losecountLabel.TabIndex = 18; 571 | this.losecountLabel.Text = "0"; 572 | // 573 | // label12 574 | // 575 | this.label12.AutoSize = true; 576 | this.label12.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 577 | this.label12.Location = new System.Drawing.Point(9, 119); 578 | this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 579 | this.label12.Name = "label12"; 580 | this.label12.Size = new System.Drawing.Size(62, 23); 581 | this.label12.TabIndex = 17; 582 | this.label12.Text = "Losses:"; 583 | // 584 | // balanceLabel 585 | // 586 | this.balanceLabel.AutoSize = true; 587 | this.balanceLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 588 | this.balanceLabel.Location = new System.Drawing.Point(91, 26); 589 | this.balanceLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 590 | this.balanceLabel.Name = "balanceLabel"; 591 | this.balanceLabel.Size = new System.Drawing.Size(95, 23); 592 | this.balanceLabel.TabIndex = 16; 593 | this.balanceLabel.Text = "0.00000000"; 594 | // 595 | // label5 596 | // 597 | this.label5.AutoSize = true; 598 | this.label5.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 599 | this.label5.Location = new System.Drawing.Point(11, 26); 600 | this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 601 | this.label5.Name = "label5"; 602 | this.label5.Size = new System.Drawing.Size(73, 23); 603 | this.label5.TabIndex = 15; 604 | this.label5.Text = "Balance:"; 605 | // 606 | // wagerLabel 607 | // 608 | this.wagerLabel.AutoSize = true; 609 | this.wagerLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 610 | this.wagerLabel.Location = new System.Drawing.Point(91, 69); 611 | this.wagerLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 612 | this.wagerLabel.Name = "wagerLabel"; 613 | this.wagerLabel.Size = new System.Drawing.Size(95, 23); 614 | this.wagerLabel.TabIndex = 14; 615 | this.wagerLabel.Text = "0.00000000"; 616 | // 617 | // label4 618 | // 619 | this.label4.AutoSize = true; 620 | this.label4.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 621 | this.label4.Location = new System.Drawing.Point(9, 69); 622 | this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 623 | this.label4.Name = "label4"; 624 | this.label4.Size = new System.Drawing.Size(82, 23); 625 | this.label4.TabIndex = 13; 626 | this.label4.Text = "Wagered:"; 627 | // 628 | // profitLabel 629 | // 630 | this.profitLabel.AutoSize = true; 631 | this.profitLabel.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 632 | this.profitLabel.Location = new System.Drawing.Point(91, 48); 633 | this.profitLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 634 | this.profitLabel.Name = "profitLabel"; 635 | this.profitLabel.Size = new System.Drawing.Size(95, 23); 636 | this.profitLabel.TabIndex = 12; 637 | this.profitLabel.Text = "0.00000000"; 638 | // 639 | // label3 640 | // 641 | this.label3.AutoSize = true; 642 | this.label3.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); 643 | this.label3.Location = new System.Drawing.Point(11, 48); 644 | this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 645 | this.label3.Name = "label3"; 646 | this.label3.Size = new System.Drawing.Size(55, 23); 647 | this.label3.TabIndex = 11; 648 | this.label3.Text = "Profit:"; 649 | // 650 | // panel1 651 | // 652 | this.panel1.Location = new System.Drawing.Point(253, 100); 653 | this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 654 | this.panel1.Name = "panel1"; 655 | this.panel1.Size = new System.Drawing.Size(333, 126); 656 | this.panel1.TabIndex = 8; 657 | // 658 | // BetCost 659 | // 660 | this.BetCost.DecimalPlaces = 8; 661 | this.BetCost.Increment = new decimal(new int[] { 662 | 1, 663 | 0, 664 | 0, 665 | 393216}); 666 | this.BetCost.Location = new System.Drawing.Point(365, 62); 667 | this.BetCost.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 668 | this.BetCost.Maximum = new decimal(new int[] { 669 | 1410065408, 670 | 2, 671 | 0, 672 | 0}); 673 | this.BetCost.Name = "BetCost"; 674 | this.BetCost.Size = new System.Drawing.Size(228, 22); 675 | this.BetCost.TabIndex = 0; 676 | this.BetCost.ValueChanged += new System.EventHandler(this.BetCost_ValueChanged); 677 | // 678 | // label2 679 | // 680 | this.label2.AutoSize = true; 681 | this.label2.Location = new System.Drawing.Point(275, 66); 682 | this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 683 | this.label2.Name = "label2"; 684 | this.label2.Size = new System.Drawing.Size(76, 16); 685 | this.label2.TabIndex = 10; 686 | this.label2.Text = "manual bet:"; 687 | // 688 | // label1 689 | // 690 | this.label1.AutoSize = true; 691 | this.label1.Location = new System.Drawing.Point(12, 7); 692 | this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 693 | this.label1.Name = "label1"; 694 | this.label1.Size = new System.Drawing.Size(51, 16); 695 | this.label1.TabIndex = 9; 696 | this.label1.Text = "apikey:"; 697 | // 698 | // textBox1 699 | // 700 | this.textBox1.Location = new System.Drawing.Point(69, 5); 701 | this.textBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 702 | this.textBox1.Name = "textBox1"; 703 | this.textBox1.Size = new System.Drawing.Size(524, 22); 704 | this.textBox1.TabIndex = 6; 705 | this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); 706 | // 707 | // currencySelect 708 | // 709 | this.currencySelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 710 | this.currencySelect.FormattingEnabled = true; 711 | this.currencySelect.Location = new System.Drawing.Point(349, 34); 712 | this.currencySelect.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 713 | this.currencySelect.Name = "currencySelect"; 714 | this.currencySelect.Size = new System.Drawing.Size(248, 24); 715 | this.currencySelect.TabIndex = 4; 716 | this.currencySelect.SelectedIndexChanged += new System.EventHandler(this.currencySelect_SelectedIndexChanged); 717 | // 718 | // riskSelect 719 | // 720 | this.riskSelect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 721 | this.riskSelect.FormattingEnabled = true; 722 | this.riskSelect.Items.AddRange(new object[] { 723 | "Classic", 724 | "Low", 725 | "Medium", 726 | "High"}); 727 | this.riskSelect.Location = new System.Drawing.Point(221, 34); 728 | this.riskSelect.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 729 | this.riskSelect.Name = "riskSelect"; 730 | this.riskSelect.Size = new System.Drawing.Size(121, 24); 731 | this.riskSelect.TabIndex = 2; 732 | this.riskSelect.SelectedIndexChanged += new System.EventHandler(this.riskSelect_SelectedIndexChanged); 733 | // 734 | // tabPage2 735 | // 736 | this.tabPage2.Controls.Add(this.tabControl2); 737 | this.tabPage2.Location = new System.Drawing.Point(4, 25); 738 | this.tabPage2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 739 | this.tabPage2.Name = "tabPage2"; 740 | this.tabPage2.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 741 | this.tabPage2.Size = new System.Drawing.Size(604, 327); 742 | this.tabPage2.TabIndex = 1; 743 | this.tabPage2.Text = "Script"; 744 | this.tabPage2.UseVisualStyleBackColor = true; 745 | // 746 | // tabControl2 747 | // 748 | this.tabControl2.Controls.Add(this.tabPage3); 749 | this.tabControl2.Controls.Add(this.tabPage4); 750 | this.tabControl2.Location = new System.Drawing.Point(4, 4); 751 | this.tabControl2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 752 | this.tabControl2.Name = "tabControl2"; 753 | this.tabControl2.SelectedIndex = 0; 754 | this.tabControl2.Size = new System.Drawing.Size(594, 316); 755 | this.tabControl2.TabIndex = 0; 756 | // 757 | // tabPage3 758 | // 759 | this.tabPage3.Location = new System.Drawing.Point(4, 25); 760 | this.tabPage3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 761 | this.tabPage3.Name = "tabPage3"; 762 | this.tabPage3.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 763 | this.tabPage3.Size = new System.Drawing.Size(586, 287); 764 | this.tabPage3.TabIndex = 0; 765 | this.tabPage3.Text = "Lua"; 766 | this.tabPage3.UseVisualStyleBackColor = true; 767 | // 768 | // tabPage4 769 | // 770 | this.tabPage4.Controls.Add(this.groupBox3); 771 | this.tabPage4.Controls.Add(this.groupBox2); 772 | this.tabPage4.Location = new System.Drawing.Point(4, 25); 773 | this.tabPage4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 774 | this.tabPage4.Name = "tabPage4"; 775 | this.tabPage4.Size = new System.Drawing.Size(586, 287); 776 | this.tabPage4.TabIndex = 1; 777 | this.tabPage4.Text = "Commands"; 778 | this.tabPage4.UseVisualStyleBackColor = true; 779 | // 780 | // groupBox3 781 | // 782 | this.groupBox3.Controls.Add(this.listBox1); 783 | this.groupBox3.Location = new System.Drawing.Point(295, 9); 784 | this.groupBox3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 785 | this.groupBox3.Name = "groupBox3"; 786 | this.groupBox3.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 787 | this.groupBox3.Size = new System.Drawing.Size(267, 267); 788 | this.groupBox3.TabIndex = 3; 789 | this.groupBox3.TabStop = false; 790 | this.groupBox3.Text = "Variables"; 791 | // 792 | // listBox1 793 | // 794 | this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill; 795 | this.listBox1.FormattingEnabled = true; 796 | this.listBox1.ItemHeight = 16; 797 | this.listBox1.Items.AddRange(new object[] { 798 | "nextbet -- sets bet", 799 | "risk -- set risk", 800 | "currency -- set currency", 801 | "selected -- set tiles for keno (table)", 802 | "drawn -- get drawn numbers (table)", 803 | "win -- bet win (bool)", 804 | "losses --loss count", 805 | "wins -- win count", 806 | "lastBet.hits -- get hit count ", 807 | "lastBet.multiplier -- get last multiplier", 808 | "currentstreak -- get current win/lose streak", 809 | "bets --get total bets", 810 | "profit -- get total profit", 811 | "balance -- get current balance", 812 | "wagered -- get total wagered", 813 | "previousbet -- get prev. bet"}); 814 | this.listBox1.Location = new System.Drawing.Point(4, 19); 815 | this.listBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 816 | this.listBox1.Name = "listBox1"; 817 | this.listBox1.Size = new System.Drawing.Size(259, 244); 818 | this.listBox1.TabIndex = 0; 819 | // 820 | // groupBox2 821 | // 822 | this.groupBox2.Controls.Add(this.listBox2); 823 | this.groupBox2.Location = new System.Drawing.Point(20, 9); 824 | this.groupBox2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 825 | this.groupBox2.Name = "groupBox2"; 826 | this.groupBox2.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 827 | this.groupBox2.Size = new System.Drawing.Size(267, 267); 828 | this.groupBox2.TabIndex = 2; 829 | this.groupBox2.TabStop = false; 830 | this.groupBox2.Text = "Methods"; 831 | // 832 | // listBox2 833 | // 834 | this.listBox2.Dock = System.Windows.Forms.DockStyle.Fill; 835 | this.listBox2.FormattingEnabled = true; 836 | this.listBox2.ItemHeight = 16; 837 | this.listBox2.Items.AddRange(new object[] { 838 | "vault(amount) -- send amount to vault", 839 | "resetseed() --change seed", 840 | "resetstats() -- reset statistics", 841 | "print(text) -- print text to console", 842 | "stop() --stop betting", 843 | "", 844 | "Not available:", 845 | "tip(username, amount) --send tip to user"}); 846 | this.listBox2.Location = new System.Drawing.Point(4, 19); 847 | this.listBox2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 848 | this.listBox2.Name = "listBox2"; 849 | this.listBox2.Size = new System.Drawing.Size(259, 244); 850 | this.listBox2.TabIndex = 0; 851 | // 852 | // tabPage5 853 | // 854 | this.tabPage5.Controls.Add(this.CmdBox); 855 | this.tabPage5.Controls.Add(this.CmdBtn); 856 | this.tabPage5.Controls.Add(this.consoleLog); 857 | this.tabPage5.Location = new System.Drawing.Point(4, 25); 858 | this.tabPage5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 859 | this.tabPage5.Name = "tabPage5"; 860 | this.tabPage5.Size = new System.Drawing.Size(604, 327); 861 | this.tabPage5.TabIndex = 2; 862 | this.tabPage5.Text = "Console"; 863 | this.tabPage5.UseVisualStyleBackColor = true; 864 | // 865 | // CmdBox 866 | // 867 | this.CmdBox.Location = new System.Drawing.Point(135, 292); 868 | this.CmdBox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 869 | this.CmdBox.Name = "CmdBox"; 870 | this.CmdBox.Size = new System.Drawing.Size(461, 22); 871 | this.CmdBox.TabIndex = 5; 872 | // 873 | // CmdBtn 874 | // 875 | this.CmdBtn.Location = new System.Drawing.Point(4, 290); 876 | this.CmdBtn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 877 | this.CmdBtn.Name = "CmdBtn"; 878 | this.CmdBtn.Size = new System.Drawing.Size(130, 28); 879 | this.CmdBtn.TabIndex = 4; 880 | this.CmdBtn.Text = "Command"; 881 | this.CmdBtn.UseVisualStyleBackColor = true; 882 | // 883 | // consoleLog 884 | // 885 | this.consoleLog.Location = new System.Drawing.Point(4, 2); 886 | this.consoleLog.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 887 | this.consoleLog.Name = "consoleLog"; 888 | this.consoleLog.Size = new System.Drawing.Size(592, 290); 889 | this.consoleLog.TabIndex = 3; 890 | this.consoleLog.Text = ""; 891 | this.consoleLog.TextChanged += new System.EventHandler(this.consoleLog_TextChanged_1); 892 | // 893 | // listView2 894 | // 895 | this.listView2.BackColor = System.Drawing.SystemColors.Control; 896 | this.listView2.BorderStyle = System.Windows.Forms.BorderStyle.None; 897 | this.listView2.Font = new System.Drawing.Font("Segoe UI", 7F, System.Drawing.FontStyle.Bold); 898 | this.listView2.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; 899 | this.listView2.HideSelection = false; 900 | this.listView2.ImeMode = System.Windows.Forms.ImeMode.Disable; 901 | this.listView2.Location = new System.Drawing.Point(621, 283); 902 | this.listView2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 903 | this.listView2.Name = "listView2"; 904 | this.listView2.Scrollable = false; 905 | this.listView2.Size = new System.Drawing.Size(445, 50); 906 | this.listView2.TabIndex = 0; 907 | this.listView2.UseCompatibleStateImageBehavior = false; 908 | this.listView2.View = System.Windows.Forms.View.Details; 909 | // 910 | // autoPickBtn 911 | // 912 | this.autoPickBtn.Location = new System.Drawing.Point(784, 332); 913 | this.autoPickBtn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 914 | this.autoPickBtn.Name = "autoPickBtn"; 915 | this.autoPickBtn.Size = new System.Drawing.Size(85, 27); 916 | this.autoPickBtn.TabIndex = 0; 917 | this.autoPickBtn.Text = "Auto Pick"; 918 | this.autoPickBtn.UseVisualStyleBackColor = true; 919 | this.autoPickBtn.Click += new System.EventHandler(this.autoPickBtn_Click); 920 | // 921 | // LiveBalLabel 922 | // 923 | this.LiveBalLabel.BackColor = System.Drawing.SystemColors.Control; 924 | this.LiveBalLabel.BorderStyle = System.Windows.Forms.BorderStyle.None; 925 | this.LiveBalLabel.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold); 926 | this.LiveBalLabel.ForeColor = System.Drawing.SystemColors.ControlDarkDark; 927 | this.LiveBalLabel.Location = new System.Drawing.Point(627, 10); 928 | this.LiveBalLabel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 929 | this.LiveBalLabel.Name = "LiveBalLabel"; 930 | this.LiveBalLabel.ReadOnly = true; 931 | this.LiveBalLabel.Size = new System.Drawing.Size(115, 20); 932 | this.LiveBalLabel.TabIndex = 9; 933 | this.LiveBalLabel.Text = "Live Balance"; 934 | this.LiveBalLabel.TextChanged += new System.EventHandler(this.LiveBalLabel_TextChanged); 935 | // 936 | // riskLabel 937 | // 938 | this.riskLabel.AutoSize = true; 939 | this.riskLabel.Font = new System.Drawing.Font("Segoe UI Semibold", 9F, System.Drawing.FontStyle.Bold); 940 | this.riskLabel.Location = new System.Drawing.Point(962, 10); 941 | this.riskLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 942 | this.riskLabel.Name = "riskLabel"; 943 | this.riskLabel.Size = new System.Drawing.Size(41, 20); 944 | this.riskLabel.TabIndex = 10; 945 | this.riskLabel.Text = "Risk:"; 946 | // 947 | // Form1 948 | // 949 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); 950 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 951 | this.ClientSize = new System.Drawing.Size(1067, 538); 952 | this.Controls.Add(this.riskLabel); 953 | this.Controls.Add(this.LiveBalLabel); 954 | this.Controls.Add(this.autoPickBtn); 955 | this.Controls.Add(this.listView2); 956 | this.Controls.Add(this.statusStrip1); 957 | this.Controls.Add(this.button1); 958 | this.Controls.Add(this.clearTable); 959 | this.Controls.Add(this.button2); 960 | this.Controls.Add(this.tabControl1); 961 | this.Controls.Add(this.groupBox1); 962 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 963 | this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 964 | this.Name = "Form1"; 965 | this.Text = "Keno"; 966 | this.Load += new System.EventHandler(this.Form1_Load); 967 | this.groupBox1.ResumeLayout(false); 968 | this.statusStrip1.ResumeLayout(false); 969 | this.statusStrip1.PerformLayout(); 970 | this.tabControl1.ResumeLayout(false); 971 | this.tabPage1.ResumeLayout(false); 972 | this.tabPage1.PerformLayout(); 973 | this.groupBox4.ResumeLayout(false); 974 | this.groupBox4.PerformLayout(); 975 | ((System.ComponentModel.ISupportInitialize)(this.BetCost)).EndInit(); 976 | this.tabPage2.ResumeLayout(false); 977 | this.tabControl2.ResumeLayout(false); 978 | this.tabPage4.ResumeLayout(false); 979 | this.groupBox3.ResumeLayout(false); 980 | this.groupBox2.ResumeLayout(false); 981 | this.tabPage5.ResumeLayout(false); 982 | this.tabPage5.PerformLayout(); 983 | this.ResumeLayout(false); 984 | this.PerformLayout(); 985 | 986 | } 987 | 988 | #endregion 989 | 990 | private System.Windows.Forms.Button clearTable; 991 | private System.Windows.Forms.GroupBox groupBox1; 992 | private System.Windows.Forms.StatusStrip statusStrip1; 993 | private System.Windows.Forms.TabControl tabControl1; 994 | private System.Windows.Forms.TabPage tabPage1; 995 | private System.Windows.Forms.TabPage tabPage2; 996 | private System.Windows.Forms.ListView listView1; 997 | private System.Windows.Forms.ListView listView2; 998 | private System.Windows.Forms.Button autoPickBtn; 999 | private System.Windows.Forms.ComboBox riskSelect; 1000 | private System.Windows.Forms.NumericUpDown BetCost; 1001 | private System.Windows.Forms.ComboBox currencySelect; 1002 | public System.Windows.Forms.Button button1; 1003 | public System.Windows.Forms.Button button2; 1004 | private System.Windows.Forms.TextBox textBox1; 1005 | private System.Windows.Forms.TextBox LiveBalLabel; 1006 | private System.Windows.Forms.Label riskLabel; 1007 | private System.Windows.Forms.ToolStripStatusLabel StatusLogIn; 1008 | private System.Windows.Forms.ColumnHeader columnHeader1; 1009 | private System.Windows.Forms.ColumnHeader columnHeader2; 1010 | private System.Windows.Forms.ColumnHeader columnHeader3; 1011 | private System.Windows.Forms.ColumnHeader columnHeader4; 1012 | private System.Windows.Forms.ColumnHeader columnHeader5; 1013 | private System.Windows.Forms.ColumnHeader columnHeader6; 1014 | private System.Windows.Forms.ColumnHeader columnHeader7; 1015 | private System.Windows.Forms.ColumnHeader columnHeader8; 1016 | private System.Windows.Forms.Panel panel1; 1017 | private System.Windows.Forms.Label label2; 1018 | private System.Windows.Forms.Label label1; 1019 | private System.Windows.Forms.Label profitLabel; 1020 | private System.Windows.Forms.Label label3; 1021 | private System.Windows.Forms.TabControl tabControl2; 1022 | private System.Windows.Forms.TabPage tabPage3; 1023 | private System.Windows.Forms.TabPage tabPage5; 1024 | private System.Windows.Forms.TextBox CmdBox; 1025 | private System.Windows.Forms.Button CmdBtn; 1026 | private System.Windows.Forms.RichTextBox consoleLog; 1027 | private System.Windows.Forms.TabPage tabPage4; 1028 | private System.Windows.Forms.GroupBox groupBox3; 1029 | private System.Windows.Forms.ListBox listBox1; 1030 | private System.Windows.Forms.GroupBox groupBox2; 1031 | private System.Windows.Forms.ListBox listBox2; 1032 | private System.Windows.Forms.GroupBox groupBox4; 1033 | private System.Windows.Forms.Label currentStreakLabel; 1034 | private System.Windows.Forms.Label label22; 1035 | private System.Windows.Forms.Label lowestStreakLabel; 1036 | private System.Windows.Forms.Label label24; 1037 | private System.Windows.Forms.Label highestStreakLabel; 1038 | private System.Windows.Forms.Label label26; 1039 | private System.Windows.Forms.Label highestBetLabel; 1040 | private System.Windows.Forms.Label label16; 1041 | private System.Windows.Forms.Label lowestProfitLabel; 1042 | private System.Windows.Forms.Label label18; 1043 | private System.Windows.Forms.Label highestProfitLabel; 1044 | private System.Windows.Forms.Label label20; 1045 | private System.Windows.Forms.LinkLabel linkLabel1; 1046 | private System.Windows.Forms.Label elapsedTimeLabel; 1047 | private System.Windows.Forms.Label label14; 1048 | private System.Windows.Forms.Label wincountLabel; 1049 | private System.Windows.Forms.Label label8; 1050 | private System.Windows.Forms.Label totalbetsLabel; 1051 | private System.Windows.Forms.Label label10; 1052 | private System.Windows.Forms.Label losecountLabel; 1053 | private System.Windows.Forms.Label label12; 1054 | private System.Windows.Forms.Label balanceLabel; 1055 | private System.Windows.Forms.Label label5; 1056 | private System.Windows.Forms.Label wagerLabel; 1057 | private System.Windows.Forms.Label label4; 1058 | private System.Windows.Forms.LinkLabel ResetChartClicked; 1059 | public System.Windows.Forms.Button button3; 1060 | private System.Windows.Forms.TextBox textBox4; 1061 | } 1062 | } 1063 | 1064 | -------------------------------------------------------------------------------- /Keno/Forms/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using RestSharp; 11 | using Newtonsoft.Json; 12 | using System.Diagnostics; 13 | using LiveCharts; 14 | using LiveCharts.WinForms; 15 | using LiveCharts.Defaults; 16 | using FastColoredTextBoxNS; 17 | using SharpLua; 18 | using System.Collections; 19 | using System.Net; 20 | 21 | namespace Keno 22 | { 23 | public partial class Form1 : Form 24 | { 25 | CookieContainer cc = new CookieContainer(); 26 | private string UserAgent = ""; 27 | private string ClearanceCookie = ""; 28 | 29 | public List StratergyArray = new List(); 30 | 31 | 32 | private FastColoredTextBox richTextBox1; 33 | private stratGrid stratSelector; 34 | LuaInterface lua = LuaRuntime.GetLua(); 35 | 36 | delegate void LogConsole(string text); 37 | //delegate void dwithdraw(decimal Amount, string Address); 38 | delegate void dtip(string username, decimal amount); 39 | delegate void dvault(decimal sentamount); 40 | delegate void dStop(); 41 | delegate void dResetSeed(); 42 | delegate void dResetStat(); 43 | 44 | public string StakeSite = "stake.com"; 45 | public string token = ""; 46 | 47 | public bool running = false; 48 | public static Form1 initForm; 49 | public string riskSelected = "low"; 50 | public string currencySelected = "btc"; 51 | public decimal BaseBet = 0; 52 | public decimal amount = 0; 53 | public decimal currentBal = 0; 54 | public decimal currentProfit = 0; 55 | public decimal currentWager = 0; 56 | public bool isWin = false; 57 | public int counter = 0; 58 | public int wins = 0; 59 | public int losses = 0; 60 | public int winstreak = 0; 61 | public int losestreak = 0; 62 | public decimal Lastbet = 0; 63 | long beginMs = 0; 64 | 65 | 66 | 67 | List highestProfit = new List { 0 }; 68 | List lowestProfit = new List { 0 }; 69 | List highestBet = new List { 0 }; 70 | 71 | List highestStreak = new List { 0 }; 72 | List lowestStreak = new List { 0 }; 73 | 74 | public lastbet last = new lastbet(); 75 | 76 | public string[] curr = { 77 | "BTC", 78 | "ETH", 79 | "LTC", 80 | "DOGE", 81 | "BCH", 82 | "XRP", 83 | "TRX", 84 | "EOS", 85 | "BNB", 86 | "USDT", 87 | "APE", 88 | "BUSD", 89 | "CRO", 90 | "DAI", 91 | "LINK", 92 | "SAND", 93 | "SHIB", 94 | "UNI", 95 | "USDC", 96 | "VND", 97 | "TRY", 98 | "TRUMP", 99 | "SWEEPS", 100 | "POL", 101 | "BRL" 102 | 103 | }; 104 | 105 | CartesianChart ch = new CartesianChart(); 106 | ChartValues data = new ChartValues(); 107 | 108 | List xList = new List(); 109 | List yList = new List(); 110 | public Form1() 111 | { 112 | stratSelector = new Keno.stratGrid(); 113 | stratSelector.Location = new System.Drawing.Point(692, 41); 114 | stratSelector.Name = "stratSelector"; 115 | stratSelector.Size = new System.Drawing.Size(398, 398); 116 | stratSelector.squareData = new int[] { 117 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 118 | stratSelector.SquareSpacing = 3; 119 | stratSelector.TabIndex = 2; 120 | stratSelector.Text = "stratGrid1"; 121 | 122 | this.Controls.Add(stratSelector); 123 | 124 | InitializeComponent(); 125 | 126 | groupBox1.BringToFront(); 127 | listView2.BringToFront(); 128 | button1.BringToFront(); 129 | button2.BringToFront(); 130 | autoPickBtn.BringToFront(); 131 | clearTable.BringToFront(); 132 | 133 | Text += " - " + Application.ProductVersion; 134 | Icon = Icon.ExtractAssociatedIcon(System.Reflection.Assembly.GetExecutingAssembly().Location); 135 | Application.ApplicationExit += new EventHandler(Application_ApplicationExit); 136 | 137 | listView1.SetDoubleBuffered(true); 138 | initForm = this; 139 | //currencySelect.SelectedIndex = 0; 140 | riskSelect.SelectedIndex = 1; 141 | //siteStake.SelectedIndex = 0; 142 | this.listView1.ItemChecked += this.listView1_ItemChecked; 143 | this.CmdBox.KeyDown += this.CmdBox_KeyDown; 144 | //this.tabPage5.Click += this.tabPage5_Click; 145 | xList.Add(0); 146 | yList.Add(0); 147 | data.Add(new ObservablePoint 148 | { 149 | X = xList[counter], 150 | Y = yList[counter] 151 | }); 152 | ch.Series = new SeriesCollection 153 | { 154 | new LiveCharts.Wpf.LineSeries 155 | { 156 | Title = "Profit", 157 | Values = data, 158 | PointGeometrySize = 0, 159 | AreaLimit = 0 160 | } 161 | }; 162 | ch.AxisX.Add(new LiveCharts.Wpf.Axis 163 | { 164 | Separator = new LiveCharts.Wpf.Separator 165 | { 166 | Step = 5 167 | } 168 | }); 169 | Func formatFunc = (x) => string.Format("{0:0.000000}", x); 170 | ch.AxisY.Add(new LiveCharts.Wpf.Axis 171 | { 172 | LabelFormatter = formatFunc 173 | }); 174 | 175 | //ch.Series[0].ScalesYAt = 0; 176 | ch.Width = 250; 177 | panel1.Controls.Add(ch); 178 | 179 | LoadSettings(); 180 | RegisterLua(); 181 | 182 | richTextBox1 = new FastColoredTextBox(); 183 | richTextBox1.Dock = DockStyle.Fill; 184 | richTextBox1.Language = Language.Lua; 185 | richTextBox1.BorderStyle = BorderStyle.FixedSingle; 186 | tabPage3.Controls.Add(richTextBox1); 187 | 188 | richTextBox1.TextChanged += this.richTextBox1_TextChanged; 189 | richTextBox1.Text = Properties.Settings.Default.textCode; 190 | } 191 | private void Application_ApplicationExit(object sender, EventArgs e) 192 | { 193 | 194 | Properties.Settings.Default.Save(); 195 | 196 | } 197 | private void RegisterLua() 198 | { 199 | 200 | lua.RegisterFunction("vault", this, new dvault(luaVault).Method); 201 | lua.RegisterFunction("tip", this, new dtip(luatip).Method); 202 | lua.RegisterFunction("print", this, new LogConsole(luaPrint).Method); 203 | lua.RegisterFunction("stop", this, new dStop(luaStop).Method); 204 | lua.RegisterFunction("resetseed", this, new dResetSeed(luaResetSeed).Method); 205 | lua.RegisterFunction("resetstats", this, new dResetStat(luaResetStat).Method); 206 | } 207 | private void LoadSettings() 208 | { 209 | textBox1.Text = Properties.Settings.Default.token; 210 | // textBox3.Text = Properties.Settings.Default.agent; 211 | //textBox2.Text = Properties.Settings.Default.cookie; 212 | textBox4.Text = Properties.Settings.Default.site; 213 | 214 | } 215 | private void SetLuaVariables(List drawn) 216 | { 217 | lua["balance"] = currentBal; 218 | lua["profit"] = currentProfit; 219 | lua["currentstreak"] = (winstreak > 0) ? winstreak : -losestreak; 220 | lua["previousbet"] = Lastbet; 221 | lua["nextbet"] = Lastbet; 222 | lua["bets"] = wins + losses; 223 | lua["wins"] = wins; 224 | lua["losses"] = losses; 225 | lua["currency"] = currencySelected; 226 | lua["wagered"] = currentWager; 227 | lua["win"] = isWin; 228 | lua["risk"] = riskSelected; 229 | //lua["selected"] = StratergyArray; 230 | lua["drawn"] = drawn; 231 | lua["lastBet"] = last; 232 | } 233 | 234 | private void GetLuaVariables() 235 | { 236 | Lastbet = (decimal)(double)lua["nextbet"]; 237 | amount = Lastbet; 238 | currencySelected = (string)lua["currency"]; 239 | riskSelected = (string)lua["risk"]; 240 | StratergyArray.Clear(); 241 | LuaTable tbl = lua.GetTable("selected"); 242 | System.Collections.Specialized.ListDictionary dict = lua.GetTableDict(tbl); 243 | foreach (DictionaryEntry s in dict) 244 | { 245 | StratergyArray.Add(Convert.ToInt32(s.Value) - 1); 246 | } 247 | } 248 | 249 | void luaStop() 250 | { 251 | this.Invoke((MethodInvoker)delegate () 252 | { 253 | luaPrint("Called stop."); 254 | running = false; 255 | bSta(); 256 | }); 257 | 258 | } 259 | void luaVault(decimal sentamount) 260 | { 261 | this.Invoke((MethodInvoker)delegate () 262 | { 263 | VaultSend(sentamount); 264 | }); 265 | } 266 | void luatip(string user, decimal amount) 267 | { 268 | this.Invoke((MethodInvoker)delegate () 269 | { 270 | luaPrint("Tipping not available."); 271 | }); 272 | } 273 | void luaPrint(string text) 274 | { 275 | this.Invoke((MethodInvoker)delegate () 276 | { 277 | consoleLog.AppendText(text + "\r\n"); 278 | }); 279 | 280 | } 281 | void luaResetSeed() 282 | { 283 | this.Invoke((MethodInvoker)delegate () 284 | { 285 | ResetSeeds(); 286 | }); 287 | } 288 | 289 | void luaResetStat() 290 | { 291 | this.Invoke((MethodInvoker)delegate () 292 | { 293 | currentProfit = 0; 294 | currentWager = 0; 295 | wins = 0; 296 | losses = 0; 297 | winstreak = 0; 298 | losestreak = 0; 299 | lowestStreak = new List { 0 }; 300 | highestStreak = new List { 0 }; 301 | highestProfit = new List { 0 }; 302 | lowestProfit = new List { 0 }; 303 | highestBet = new List { 0 }; 304 | }); 305 | } 306 | 307 | private void GetNumbersTables() 308 | { 309 | 310 | } 311 | 312 | private void LuaSetSelectedVar() 313 | { 314 | LuaRuntime.Run(@"function listToTable(clrlist) 315 | local t = {} 316 | local it = clrlist:GetEnumerator() 317 | while it:MoveNext() do 318 | t[#t+1] = it.Current + 1 319 | end 320 | return t 321 | end 322 | drawn = listToTable(drawn)"); 323 | } 324 | 325 | 326 | 327 | private async void button1_Click(object sender, EventArgs e) 328 | { 329 | if (running == false) 330 | { 331 | if (StratergyArray.Count > 0) 332 | { 333 | stratSelector.Clear(StratergyArray); 334 | } 335 | List selectedSquares = new List(); 336 | for (int i = 0; i < stratSelector.squareData.Length; i++) 337 | { 338 | if (stratSelector.squareData[i] == 1) 339 | selectedSquares.Add(i); 340 | } 341 | currencySelect_SelectedIndexChanged(this, new EventArgs()); 342 | amount = BetCost.Value; 343 | riskSelected = riskSelect.Text.ToLower(); ; 344 | riskLabel.Text = string.Format("Risk: {0}", riskSelect.Text); 345 | StratergyArray = selectedSquares; 346 | button1.Enabled = false; 347 | stratSelector.selectAllowed = false; 348 | running = true; 349 | await KenoBet(true); 350 | running = false; 351 | button1.Enabled = true; 352 | } 353 | } 354 | 355 | private async void button2_Click(object sender, EventArgs e) 356 | { 357 | if (running == false) 358 | { 359 | await CheckBalance(false); 360 | 361 | try 362 | { 363 | SetLuaVariables(new List { }); 364 | LuaSetSelectedVar(); 365 | LuaRuntime.SetLua(lua); 366 | 367 | 368 | LuaRuntime.Run(richTextBox1.Text); 369 | 370 | GetNumbersTables(); 371 | 372 | } 373 | catch (Exception ex) 374 | { 375 | luaPrint("Lua ERROR!!"); 376 | luaPrint(ex.Message); 377 | } 378 | GetLuaVariables(); 379 | 380 | //currencySelect.SelectedIndex = Array.FindIndex(curr, row => row == currencySelected.ToUpper()); 381 | 382 | 383 | button1.Enabled = false; 384 | autoPickBtn.Enabled = false; 385 | clearTable.Enabled = false; 386 | riskSelect.Enabled = false; 387 | if (StratergyArray.Count > 0) 388 | { 389 | stratSelector.Clear(StratergyArray); 390 | } 391 | AppendMultipliers(stratSelector.squareData); 392 | //List selectedSquares = new List(); 393 | //for (int i = 0; i < stratSelector.squareData.Length; i++) 394 | //{ 395 | //if (stratSelector.squareData[i] == 1) 396 | //selectedSquares.Add(i); 397 | // } 398 | //StratergyArray = selectedSquares; 399 | running = true; 400 | button2.Text = "Stop"; 401 | //button2.Enabled = false; 402 | currencySelect.Enabled = false; 403 | //textBox1.Enabled = false; 404 | stratSelector.selectAllowed = false; 405 | 406 | StartBet(false); 407 | } 408 | else 409 | { 410 | running = false; 411 | bSta(); 412 | } 413 | } 414 | 415 | async Task StartBet(bool clear) 416 | { 417 | while (running == true) 418 | { 419 | if (beginMs == 0) 420 | { 421 | beginMs = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; 422 | } 423 | await KenoBet(false); 424 | TimerFunc(beginMs); 425 | if (clear) 426 | { 427 | await Task.Delay(40); 428 | if (StratergyArray.Count > 0) 429 | { 430 | stratSelector.Clear(StratergyArray); 431 | } 432 | } 433 | 434 | } 435 | } 436 | 437 | public void TimerFunc(long begin) 438 | { 439 | decimal diff = (decimal)((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond) - begin); 440 | decimal seconds = Math.Floor((diff / 1000) % 60); 441 | decimal minutes = Math.Floor((diff / (1000 * 60)) % 60); 442 | decimal hours = Math.Floor((diff / (1000 * 60 * 60))); 443 | 444 | elapsedTimeLabel.Text = String.Format("{0} : {1} : {2}", hours, minutes, seconds); 445 | } 446 | 447 | public void bSta() 448 | { 449 | running = false; 450 | button1.Enabled = true; 451 | autoPickBtn.Enabled = true; 452 | clearTable.Enabled = true; 453 | riskSelect.Enabled = true; 454 | stratSelector.selectAllowed = true; 455 | currencySelect.Enabled = true; 456 | //textBox1.Enabled = true; 457 | StratergyArray.Clear(); 458 | button2.Text = "Start Lua"; 459 | } 460 | 461 | public void Log(Data response) 462 | { 463 | List selected = response.data.kenoBet.state.selectedNumbers.Select(n => n + 1).ToList(); 464 | List result = response.data.kenoBet.state.drawnNumbers.Select(n => n + 1).ToList(); 465 | 466 | 467 | var matchList = result.Intersect(selected).ToList(); 468 | 469 | //var matchList = result.Intersect(selected).OrderBy(p => p).ToList(); 470 | string[] row = { response.data.kenoBet.id, string.Format("({1}x) {0}", string.Join(",", matchList), matchList.Count), string.Join(",", selected), string.Join(",", result), riskSelected, string.Format("{0} {1}", amount.ToString("0.00000000"), currencySelected), response.data.kenoBet.payoutMultiplier.ToString("0.00") + "x", response.data.kenoBet.payout.ToString("0.00000000") }; 471 | var log = new ListViewItem(row); 472 | //betitem.Font = new Font("Consolas", 10f); 473 | listView1.Items.Insert(0, log); 474 | if (listView1.Items.Count > 50) 475 | { 476 | listView1.Items[listView1.Items.Count - 1].Remove(); 477 | } 478 | 479 | 480 | } 481 | 482 | private async Task Authorize() 483 | { 484 | try 485 | { 486 | var mainurl = "http://localhost:5000/graphql?url=https://" + StakeSite + "/_api/graphql"; 487 | var request = new RestRequest(Method.POST); 488 | var client = new RestClient(mainurl); 489 | //client.CookieContainer = cc; 490 | //client.UserAgent = UserAgent; 491 | //client.CookieContainer.Add(new Cookie("cf_clearance", ClearanceCookie, "/", StakeSite)); 492 | BetQuery payload = new BetQuery(); 493 | payload.operationName = "UserBalances"; 494 | payload.query = "query UserBalances {\n user {\n id\n balances {\n available {\n amount\n currency\n __typename\n }\n vault {\n amount\n currency\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"; 495 | payload.token = token; 496 | request.AddHeader("Content-Type", "application/json"); 497 | request.AddHeader("x-access-token", token); 498 | 499 | request.AddParameter("application/json", JsonConvert.SerializeObject(payload), ParameterType.RequestBody); 500 | //request.AddJsonBody(payload); 501 | //IRestResponse response = client.Execute(request); 502 | 503 | var restResponse = 504 | await client.ExecuteAsync(request); 505 | 506 | // Will output the HTML contents of the requested page 507 | Debug.WriteLine(restResponse.Content); 508 | ActiveData response = JsonConvert.DeserializeObject(restResponse.Content); 509 | //System.Diagnostics.Debug.WriteLine(restResponse.Content); 510 | if (response.errors != null) 511 | { 512 | LiveBalLabel.Text = "Live Balance"; 513 | LiveBalLabel.ForeColor = SystemColors.ControlDarkDark; 514 | StatusLogIn.Text = "Disconnected"; 515 | } 516 | else 517 | { 518 | if (response.data != null) 519 | { 520 | StatusLogIn.Text = String.Format("({0}) Connected ", ""); 521 | textBox1.Enabled = false; 522 | 523 | currencySelect.Items.Clear(); 524 | for (var i = 0; i < response.data.user.balances.Count; i++) 525 | { 526 | if (response.data.user.balances[i].available.currency == currencySelected.ToLower()) 527 | { 528 | LiveBalLabel.ForeColor = Color.Black; 529 | LiveBalLabel.Text = String.Format("{0} | {1}", currencySelected.ToUpper(), response.data.user.balances[i].available.amount.ToString("0.00000000")); 530 | currentBal = response.data.user.balances[i].available.amount; 531 | balanceLabel.Text = currentBal.ToString("0.00000000"); 532 | 533 | 534 | } 535 | currencySelect.Items.Add(response.data.user.balances[i].available.currency); 536 | 537 | if (true) 538 | { 539 | 540 | for (int s = 0; s < curr.Length; s++) 541 | { 542 | if (response.data.user.balances[i].available.currency == curr[s].ToLower()) 543 | { 544 | //currencySelect.Items[s] = string.Format("{0} {1}", curr[s], response.data.user.balances[i].available.amount.ToString("0.00000000")); 545 | //currencySelect.Items.Add(string.Format("{0} {1}", s, response.data.user.balances[i].available.amount.ToString("0.00000000"))); 546 | break; 547 | } 548 | } 549 | } 550 | } 551 | 552 | } 553 | 554 | } 555 | } 556 | catch (Exception ex) 557 | { 558 | //luaPrint(ex.Message); 559 | } 560 | } 561 | 562 | private async Task ResetSeeds() 563 | { 564 | try 565 | { 566 | var mainurl = "http://localhost:5000/graphql?url=https://" + StakeSite + "/_api/graphql"; 567 | var request = new RestRequest(Method.POST); 568 | var client = new RestClient(mainurl); 569 | //client.CookieContainer = cc; 570 | ////client.UserAgent = UserAgent; 571 | //client.CookieContainer.Add(new Cookie("cf_clearance", ClearanceCookie, "/", StakeSite)); 572 | BetQuery payload = new BetQuery(); 573 | payload.operationName = "RotateSeedPair"; 574 | payload.variables = new BetClass() 575 | { 576 | seed = RandomString(10) 577 | }; 578 | payload.token = token; 579 | payload.query = "mutation RotateSeedPair($seed: String!) {\n rotateSeedPair(seed: $seed) {\n clientSeed {\n user {\n id\n activeClientSeed {\n id\n seed\n __typename\n }\n activeServerSeed {\n id\n nonce\n seedHash\n nextSeedHash\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"; 580 | request.AddHeader("Content-Type", "application/json"); 581 | request.AddHeader("x-access-token", token); 582 | 583 | request.AddParameter("application/json", JsonConvert.SerializeObject(payload), ParameterType.RequestBody); 584 | //request.AddJsonBody(payload); 585 | //IRestResponse response = client.Execute(request); 586 | 587 | var restResponse = 588 | await client.ExecuteAsync(request); 589 | 590 | // Will output the HTML contents of the requested page 591 | //Debug.WriteLine(restResponse.Content); 592 | Data response = JsonConvert.DeserializeObject(restResponse.Content); 593 | //System.Diagnostics.Debug.WriteLine(restResponse.Content); 594 | if (response.errors != null) 595 | { 596 | luaPrint(response.errors[0].message); 597 | } 598 | else 599 | { 600 | if (response.data != null) 601 | { 602 | luaPrint("Seed was reset."); 603 | 604 | } 605 | 606 | } 607 | } 608 | catch (Exception ex) 609 | { 610 | //luaPrint(ex.Message); 611 | } 612 | } 613 | private async Task VaultSend(decimal sentamount) 614 | { 615 | try 616 | { 617 | var mainurl = "http://localhost:5000/graphql?url=https://" + StakeSite + "/_api/graphql"; 618 | var request = new RestRequest(Method.POST); 619 | var client = new RestClient(mainurl); 620 | // client.CookieContainer = cc; 621 | //client.UserAgent = UserAgent; 622 | //client.CookieContainer.Add(new Cookie("cf_clearance", ClearanceCookie, "/", StakeSite)); 623 | BetQuery payload = new BetQuery(); 624 | payload.operationName = "CreateVaultDeposit"; 625 | payload.variables = new BetClass() 626 | { 627 | currency = currencySelected.ToLower(), 628 | amount = sentamount 629 | }; 630 | payload.token = token; 631 | payload.query = "mutation CreateVaultDeposit($currency: CurrencyEnum!, $amount: Float!) {\n createVaultDeposit(currency: $currency, amount: $amount) {\n id\n amount\n currency\n user {\n id\n balances {\n available {\n amount\n currency\n __typename\n }\n vault {\n amount\n currency\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"; 632 | request.AddHeader("Content-Type", "application/json"); 633 | request.AddHeader("x-access-token", token); 634 | 635 | request.AddParameter("application/json", JsonConvert.SerializeObject(payload), ParameterType.RequestBody); 636 | //request.AddJsonBody(payload); 637 | //IRestResponse response = client.Execute(request); 638 | 639 | var restResponse = 640 | await client.ExecuteAsync(request); 641 | 642 | // Will output the HTML contents of the requested page 643 | //Debug.WriteLine(restResponse.Content); 644 | Data response = JsonConvert.DeserializeObject(restResponse.Content); 645 | //System.Diagnostics.Debug.WriteLine(restResponse.Content); 646 | if (response.errors != null) 647 | { 648 | luaPrint(response.errors[0].message); 649 | } 650 | else 651 | { 652 | if (response.data != null) 653 | { 654 | luaPrint(string.Format("Deposited to vault: {0} {1}", sentamount.ToString("0.00000000"), currencySelected)); 655 | } 656 | 657 | } 658 | } 659 | catch (Exception ex) 660 | { 661 | //luaPrint(ex.Message); 662 | } 663 | } 664 | 665 | public async Task CheckBalance(bool isCurrency) 666 | { 667 | try 668 | { 669 | var mainurl = "http://localhost:5000/graphql?url=https://" + StakeSite + "/_api/graphql"; 670 | var request = new RestRequest(Method.POST); 671 | var client = new RestClient(mainurl); 672 | //client.CookieContainer = cc; 673 | //client.UserAgent = UserAgent; 674 | //client.CookieContainer.Add(new Cookie("cf_clearance", ClearanceCookie, "/", StakeSite)); 675 | BetQuery payload = new BetQuery(); 676 | payload.operationName = "UserBalances"; 677 | payload.query = "query UserBalances {\n user {\n id\n balances {\n available {\n amount\n currency\n __typename\n }\n vault {\n amount\n currency\n __typename\n }\n __typename\n }\n __typename\n }\n}\n"; 678 | payload.token = token; 679 | request.AddHeader("Content-Type", "application/json"); 680 | request.AddHeader("x-access-token", token); 681 | 682 | request.AddParameter("application/json", JsonConvert.SerializeObject(payload), ParameterType.RequestBody); 683 | 684 | 685 | 686 | var restResponse = 687 | await client.ExecuteAsync(request); 688 | 689 | 690 | //Debug.WriteLine(restResponse.Content); 691 | BalancesData response = JsonConvert.DeserializeObject(restResponse.Content); 692 | 693 | 694 | if (response.errors != null) 695 | { 696 | LiveBalLabel.Text = "Live Balance"; 697 | LiveBalLabel.ForeColor = SystemColors.ControlDarkDark; 698 | 699 | ///StatusLogIn.Text = "unauthorized"; 700 | } 701 | else 702 | { 703 | if (response.data != null) 704 | { 705 | if (isCurrency) 706 | { 707 | //currencySelect.Items.Clear(); 708 | } 709 | 710 | if (isCurrency) 711 | { 712 | //currencySelect.Items.Clear(); 713 | } 714 | for (var i = 0; i < response.data.user.balances.Count; i++) 715 | { 716 | if (response.data.user.balances[i].available.currency == currencySelected.ToLower()) 717 | { 718 | LiveBalLabel.ForeColor = Color.Black; 719 | LiveBalLabel.Text = String.Format("{0} | {1}", currencySelected.ToUpper(), response.data.user.balances[i].available.amount.ToString("0.00000000")); 720 | currentBal = response.data.user.balances[i].available.amount; 721 | balanceLabel.Text = currentBal.ToString("0.00000000"); 722 | } 723 | 724 | if (isCurrency) { 725 | // currencySelect.Items.Add(response.data.user.balances[i].available.currency); 726 | } 727 | 728 | } 729 | } 730 | //StatusLogIn.Text = "authorized"; 731 | } 732 | } 733 | catch (Exception ex) 734 | { 735 | //luaPrint(ex.Message); 736 | } 737 | 738 | } 739 | async Task KenoBet(bool showRes) 740 | { 741 | try 742 | { 743 | if (running) 744 | { 745 | var mainurl = "http://localhost:5000/graphql?url=https://" + StakeSite + "/_api/graphql"; 746 | var request = new RestRequest(Method.POST); 747 | var client = new RestClient(mainurl); 748 | //client.CookieContainer = cc; 749 | //client.UserAgent = UserAgent; 750 | //client.CookieContainer.Add(new Cookie("cf_clearance", ClearanceCookie, "/", StakeSite)); 751 | BetQuery payload = new BetQuery(); 752 | payload.variables = new BetClass() 753 | { 754 | currency = currencySelected, 755 | amount = amount, 756 | risk = riskSelected.ToLower(), 757 | numbers = StratergyArray, 758 | identifier = RandomString(21) 759 | 760 | }; 761 | 762 | payload.query = "mutation KenoBet($amount: Float!, $currency: CurrencyEnum!, $numbers: [Int!]!, $identifier: String!, $risk: CasinoGameKenoRiskEnum) {\n kenoBet(\n amount: $amount\n currency: $currency\n numbers: $numbers\n risk: $risk\n identifier: $identifier\n ) {\n ...CasinoBet\n state {\n ...CasinoGameKeno\n }\n }\n}\n\nfragment CasinoBet on CasinoBet {\n id\n active\n payoutMultiplier\n amountMultiplier\n amount\n payout\n updatedAt\n currency\n game\n user {\n id\n name\n }\n}\n\nfragment CasinoGameKeno on CasinoGameKeno {\n drawnNumbers\n selectedNumbers\n risk\n}\n"; 763 | payload.token = token; 764 | request.AddHeader("Content-Type", "application/json"); 765 | request.AddHeader("x-access-token", token); 766 | 767 | request.AddParameter("application/json", JsonConvert.SerializeObject(payload), ParameterType.RequestBody); 768 | 769 | 770 | var restResponse = 771 | await client.ExecuteAsync(request); 772 | 773 | //label4.Text = restResponse.Content; 774 | 775 | button2.Enabled = true; 776 | Data response = JsonConvert.DeserializeObject(restResponse.Content); 777 | 778 | if (response.errors != null) 779 | { 780 | //Log(); 781 | luaPrint(String.Format("{0}:{1}", response.errors[0].errorType, response.errors[0].message)); 782 | 783 | //if(response.errors[0].errorType == "graphQL") 784 | 785 | if (running == true) 786 | { 787 | await Task.Delay(2000); 788 | //running = false; 789 | //bSta(); 790 | //await Task.Delay(2000); 791 | //PrepRequest(); 792 | } 793 | else 794 | { 795 | running = false; 796 | //BSta(true); 797 | } 798 | } 799 | else 800 | { 801 | //clearSquares(); 802 | //stratSelector.Reset(); 803 | //await Task.Delay(50); 804 | currentWager += response.data.kenoBet.amount; 805 | if (response.data.kenoBet.payoutMultiplier > 0) 806 | { 807 | losestreak = 0; 808 | winstreak++; 809 | isWin = true; 810 | wins++; 811 | } 812 | else 813 | { 814 | losestreak++; 815 | winstreak = 0; 816 | isWin = false; 817 | losses++; 818 | 819 | } 820 | 821 | Log(response); 822 | await CheckBalance(false); 823 | 824 | currentProfit += response.data.kenoBet.payout - response.data.kenoBet.amount; 825 | profitLabel.Text = currentProfit.ToString("0.00000000"); 826 | var matchList = response.data.kenoBet.state.drawnNumbers.Intersect(response.data.kenoBet.state.selectedNumbers); 827 | last.hits = matchList.Count(); 828 | last.multiplier = response.data.kenoBet.payoutMultiplier; 829 | riskLabel.Text = string.Format("Risk: {0}", riskSelected); 830 | 831 | highestStreak.Add(winstreak); 832 | highestStreak = new List { highestStreak.Max() }; 833 | lowestStreak.Add(-losestreak); 834 | lowestStreak = new List { lowestStreak.Min() }; 835 | 836 | if (currentProfit < 0) 837 | { 838 | lowestProfit.Add(currentProfit); 839 | lowestProfit = new List { lowestProfit.Min() }; 840 | } 841 | else 842 | { 843 | highestProfit.Add(currentProfit); 844 | highestProfit = new List { highestProfit.Max() }; 845 | } 846 | 847 | highestBet.Add(amount); 848 | highestBet = new List { highestBet.Max() }; 849 | 850 | SetStatistics(); 851 | 852 | 853 | counter++; 854 | xList.Add(counter); 855 | yList.Add((double)currentProfit); 856 | 857 | 858 | 859 | data.Add(new ObservablePoint 860 | { 861 | X = xList[xList.Count - 1], 862 | Y = yList[yList.Count - 1] 863 | }); 864 | 865 | 866 | if (data.Count > 30) 867 | { 868 | data.RemoveAt(0); 869 | xList.RemoveAt(0); 870 | yList.RemoveAt(0); 871 | 872 | } 873 | if (showRes) 874 | { 875 | 876 | ShowResult(response.data.kenoBet.state.drawnNumbers, response.data.kenoBet.state.selectedNumbers); 877 | } 878 | else 879 | { 880 | try 881 | { 882 | SetLuaVariables(response.data.kenoBet.state.drawnNumbers); 883 | LuaSetSelectedVar(); 884 | LuaRuntime.SetLua(lua); 885 | 886 | 887 | LuaRuntime.Run("dobet()"); 888 | 889 | } 890 | catch (Exception ex) 891 | { 892 | luaPrint("Lua ERROR!!"); 893 | luaPrint(ex.Message); 894 | } 895 | GetLuaVariables(); 896 | } 897 | } 898 | } 899 | } 900 | catch (Exception ex) 901 | { 902 | //luaPrint(ex.Message); 903 | } 904 | } 905 | 906 | private void SetStatistics() 907 | { 908 | balanceLabel.Text = currentBal.ToString("0.00000000"); 909 | profitLabel.Text = currentProfit.ToString("0.00000000"); 910 | wagerLabel.Text = currentWager.ToString("0.00000000"); 911 | wincountLabel.Text = wins.ToString(); 912 | losecountLabel.Text = losses.ToString(); 913 | totalbetsLabel.Text = (wins + losses).ToString(); 914 | currentStreakLabel.Text = (winstreak > 0) ? winstreak.ToString() : (-losestreak).ToString() ; 915 | lowestProfitLabel.Text = lowestProfit.Min().ToString("0.00000000"); 916 | highestProfitLabel.Text = highestProfit.Max().ToString("0.00000000"); 917 | highestBetLabel.Text = highestBet.Max().ToString("0.00000000"); 918 | highestStreakLabel.Text = highestStreak.Max().ToString(); 919 | lowestStreakLabel.Text = lowestStreak.Min().ToString(); 920 | 921 | } 922 | 923 | private void CmdBox_KeyDown(object sender, KeyEventArgs e) 924 | { 925 | if (e.KeyCode == Keys.Enter) 926 | { 927 | CmdBtn_Click(this, new EventArgs()); 928 | } 929 | } 930 | 931 | private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e) 932 | { 933 | // 934 | ListViewItem item = e.Item as ListViewItem; 935 | if (e.Item.Checked == true) 936 | { 937 | //MessageBox.Show(e.Item.Text); 938 | Process.Start(new ProcessStartInfo(string.Format("https://{1}/casino/home?betId={0}&modal=bet", e.Item.Text, StakeSite)) { UseShellExecute = true }); 939 | } 940 | } 941 | void ShowResult(List result, List selected) 942 | { 943 | 944 | for (int i = 0; i < selected.Count; i++) 945 | { 946 | stratSelector.SetValue(selected[i], 1); 947 | } 948 | var matchList = result.Intersect(selected); 949 | foreach (var c in matchList) 950 | { 951 | stratSelector.SetValue(c, 3); 952 | } 953 | var nonMatch = result.Except(matchList); 954 | foreach (var c in nonMatch) 955 | { 956 | stratSelector.SetValue(c, 2); 957 | } 958 | 959 | } 960 | 961 | private void clearTable_Click(object sender, EventArgs e) 962 | { 963 | if (running == false) 964 | { 965 | button1.Enabled = false; 966 | //button2.Enabled = false; 967 | stratSelector.selectAllowed = true; 968 | StratergyArray.Clear(); 969 | listView2.Clear(); 970 | stratSelector.Reset(); 971 | } 972 | } 973 | 974 | public void AppendMultipliers(int[] squareData) 975 | { 976 | if (squareData.Count(x => x == 1) > 0) 977 | { 978 | listView2.Clear(); 979 | if (riskSelected.Contains("low")) 980 | { 981 | riskLow riskselect = new riskLow(); 982 | string[] tilesRange = Enumerable.Range(0, squareData.Count(x => x == 1) + 1).ToArray().Select(x => x.ToString() + "x").ToArray(); 983 | var tileCount = new ListViewItem(tilesRange); 984 | foreach (double s in riskselect.Tile[squareData.Count(x => x == 1) - 1]) 985 | { 986 | listView2.Columns.Add(s.ToString() + "x", TextRenderer.MeasureText(s.ToString() + "x", new Font("Segoe UI", 9, FontStyle.Regular, GraphicsUnit.Point)).Width + 3, HorizontalAlignment.Center); 987 | } 988 | listView2.Items.Add(tileCount); 989 | //listView2.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 990 | 991 | } 992 | if (riskSelected.Contains("classic")) 993 | { 994 | riskClassic riskselect = new riskClassic(); 995 | string[] tilesRange = Enumerable.Range(0, squareData.Count(x => x == 1) + 1).ToArray().Select(x => x.ToString() + "x").ToArray(); 996 | var tileCount = new ListViewItem(tilesRange); 997 | foreach (double s in riskselect.Tile[squareData.Count(x => x == 1) - 1]) 998 | { 999 | listView2.Columns.Add(s.ToString() + "x", TextRenderer.MeasureText(s.ToString() + "x", new Font("Segoe UI", 9, FontStyle.Regular, GraphicsUnit.Point)).Width + 3, HorizontalAlignment.Center); 1000 | } 1001 | listView2.Items.Add(tileCount); 1002 | //listView2.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 1003 | 1004 | } 1005 | if (riskSelected.Contains("medium")) 1006 | { 1007 | riskMedium riskselect = new riskMedium(); 1008 | string[] tilesRange = Enumerable.Range(0, squareData.Count(x => x == 1) + 1).ToArray().Select(x => x.ToString() + "x").ToArray(); 1009 | var tileCount = new ListViewItem(tilesRange); 1010 | foreach (double s in riskselect.Tile[squareData.Count(x => x == 1) - 1]) 1011 | { 1012 | listView2.Columns.Add(s.ToString() + "x", TextRenderer.MeasureText(s.ToString() + "x", new Font("Segoe UI", 9, FontStyle.Regular, GraphicsUnit.Point)).Width + 3, HorizontalAlignment.Center); 1013 | } 1014 | listView2.Items.Add(tileCount); 1015 | //listView2.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 1016 | 1017 | } 1018 | if (riskSelected.Contains("high")) 1019 | { 1020 | riskHigh riskselect = new riskHigh(); 1021 | string[] tilesRange = Enumerable.Range(0, squareData.Count(x => x == 1) + 1).ToArray().Select(x => x.ToString() + "x").ToArray(); 1022 | var tileCount = new ListViewItem(tilesRange); 1023 | foreach (double s in riskselect.Tile[squareData.Count(x => x == 1) - 1]) 1024 | { 1025 | listView2.Columns.Add(s.ToString() + "x", TextRenderer.MeasureText(s.ToString() + "x", new Font("Segoe UI", 9, FontStyle.Regular, GraphicsUnit.Point)).Width + 3, HorizontalAlignment.Center); 1026 | } 1027 | listView2.Items.Add(tileCount); 1028 | //listView2.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); 1029 | 1030 | } 1031 | } 1032 | else 1033 | { 1034 | button1.Enabled = false; 1035 | //button2.Enabled = false; 1036 | listView2.Clear(); 1037 | } 1038 | 1039 | } 1040 | 1041 | private async void autoPickBtn_Click(object sender, EventArgs e) 1042 | { 1043 | if (running == false) 1044 | { 1045 | button1.Enabled = false; 1046 | //button2.Enabled = false; 1047 | stratSelector.selectAllowed = true; 1048 | StratergyArray = new List(); 1049 | 1050 | int[] tilesRange = Enumerable.Range(0, 40).ToArray(); 1051 | tilesRange = Shuffle(tilesRange).ToList().Take(10).ToArray(); 1052 | stratSelector.Reset(); 1053 | foreach (int tile in tilesRange) 1054 | { 1055 | await Task.Delay(50); 1056 | stratSelector.SetValue(tile, 1); 1057 | AppendMultipliers(stratSelector.squareData); 1058 | } 1059 | button1.Enabled = true; 1060 | button2.Enabled = true; 1061 | } 1062 | } 1063 | public string RandomString(int length) 1064 | { 1065 | Random random = new Random(); 1066 | const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; 1067 | return new string(Enumerable.Repeat(chars, length) 1068 | .Select(s => s[random.Next(s.Length)]).ToArray()); 1069 | } 1070 | public static int[] Shuffle(int[] arr) 1071 | { 1072 | Random rand = new Random(); 1073 | for (int i = arr.Length - 1; i >= 1; i--) 1074 | { 1075 | int j = rand.Next(i + 1); 1076 | int tmp = arr[j]; 1077 | arr[j] = arr[i]; 1078 | arr[i] = tmp; 1079 | } 1080 | return arr; 1081 | } 1082 | 1083 | private void riskSelect_SelectedIndexChanged(object sender, EventArgs e) 1084 | { 1085 | riskSelected = riskSelect.Text.ToLower(); 1086 | riskLabel.Text = string.Format("Risk: {0}", riskSelect.Text); 1087 | AppendMultipliers(stratSelector.squareData); 1088 | } 1089 | 1090 | private async void currencySelect_SelectedIndexChanged(object sender, EventArgs e) 1091 | { 1092 | currencySelected = currencySelect.Text.ToLower(); 1093 | await CheckBalance(false); 1094 | 1095 | 1096 | LiveBalLabel.Text = String.Format("{0} | {1}", currencySelect.Text, currentBal.ToString("0.00000000")); 1097 | balanceLabel.Text = currentBal.ToString("0.00000000"); 1098 | 1099 | 1100 | 1101 | } 1102 | 1103 | private void BetCost_ValueChanged(object sender, EventArgs e) 1104 | { 1105 | //amount = BetCost.Value; 1106 | } 1107 | 1108 | private async void textBox1_TextChanged(object sender, EventArgs e) 1109 | { 1110 | token = textBox1.Text; 1111 | Properties.Settings.Default.token = token; 1112 | 1113 | } 1114 | 1115 | private void LiveBalLabel_TextChanged(object sender, EventArgs e) 1116 | { 1117 | Size size = TextRenderer.MeasureText(LiveBalLabel.Text, LiveBalLabel.Font); 1118 | LiveBalLabel.Width = size.Width; 1119 | LiveBalLabel.Height = size.Height; 1120 | } 1121 | 1122 | private void siteStake_SelectedIndexChanged(object sender, EventArgs e) 1123 | { 1124 | 1125 | 1126 | } 1127 | 1128 | private void Form1_Load(object sender, EventArgs e) 1129 | { 1130 | 1131 | } 1132 | 1133 | private void CmdBtn_Click(object sender, EventArgs e) 1134 | { 1135 | try 1136 | { 1137 | if (CmdBox.Text.Length > 0) 1138 | { 1139 | LuaRuntime.Run(CmdBox.Text); 1140 | //CmdBox.Text = String.Empty; 1141 | } 1142 | } 1143 | catch (Exception ex) 1144 | { 1145 | //CmdBox.Text = String.Empty; 1146 | luaPrint("Lua ERROR!!"); 1147 | luaPrint(ex.Message); 1148 | } 1149 | } 1150 | 1151 | private void consoleLog_TextChanged_1(object sender, EventArgs e) 1152 | { 1153 | if (consoleLog.Lines.Length > 1000) 1154 | { 1155 | List lines = consoleLog.Lines.ToList(); 1156 | lines.RemoveAt(0); 1157 | consoleLog.Lines = lines.ToArray(); 1158 | } 1159 | 1160 | consoleLog.SelectionStart = consoleLog.Text.Length; 1161 | consoleLog.ScrollToCaret(); 1162 | } 1163 | 1164 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 1165 | { 1166 | 1167 | currentProfit = 0; 1168 | currentWager = 0; 1169 | wins = 0; 1170 | losses = 0; 1171 | winstreak = 0; 1172 | losestreak = 0; 1173 | lowestStreak = new List { 0 }; 1174 | highestStreak = new List { 0 }; 1175 | highestProfit = new List { 0 }; 1176 | lowestProfit = new List { 0 }; 1177 | highestBet = new List { 0 }; 1178 | beginMs = 0; 1179 | elapsedTimeLabel.Text = "0 : 0 : 0"; 1180 | SetStatistics(); 1181 | } 1182 | 1183 | private void ResetChartClicked_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 1184 | { 1185 | counter = 0; 1186 | yList.Clear(); 1187 | xList.Clear(); 1188 | xList.Add(0); 1189 | yList.Add(0); 1190 | data.Clear(); 1191 | } 1192 | 1193 | private void textBox2_TextChanged(object sender, EventArgs e) 1194 | { 1195 | //ClearanceCookie = textBox2.Text; 1196 | Properties.Settings.Default.cookie = ClearanceCookie; 1197 | } 1198 | 1199 | private void textBox3_TextChanged(object sender, EventArgs e) 1200 | { 1201 | // UserAgent = textBox3.Text; 1202 | Properties.Settings.Default.agent = UserAgent; 1203 | } 1204 | 1205 | private void button3_Click(object sender, EventArgs e) 1206 | { 1207 | Authorize(); 1208 | } 1209 | 1210 | private void tabPage3_Click(object sender, EventArgs e) 1211 | { 1212 | 1213 | } 1214 | 1215 | private void richTextBox1_TextChanged(object sender, EventArgs e) 1216 | { 1217 | Properties.Settings.Default.textCode = richTextBox1.Text; 1218 | } 1219 | 1220 | private void textBox4_TextChanged(object sender, EventArgs e) 1221 | { 1222 | StakeSite = textBox4.Text.ToLower(); 1223 | Properties.Settings.Default.site = StakeSite; 1224 | } 1225 | } 1226 | 1227 | 1228 | 1229 | 1230 | public class stratGrid : Control 1231 | { 1232 | private Rectangle perimeterRect; 1233 | 1234 | private Rectangle[] squareRects; 1235 | public int[] squareData { get; set; } 1236 | 1237 | private Brush idleColor = Brushes.LightGray; 1238 | private Brush SetecledColor = Brushes.MediumPurple; 1239 | private Brush WinColor = Brushes.LimeGreen; 1240 | private Brush UnhitColor = Brushes.MistyRose; 1241 | private int _squareSpacing; 1242 | 1243 | public bool selectAllowed = true; 1244 | public int SquareSpacing 1245 | { 1246 | get { return _squareSpacing; } 1247 | set 1248 | { 1249 | _squareSpacing = Math.Abs(value); 1250 | Invalidate(); 1251 | } 1252 | } 1253 | 1254 | public stratGrid() 1255 | { 1256 | 1257 | SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.UserPaint, true); 1258 | 1259 | Size = new Size(100, 100); 1260 | SquareSpacing = 6; 1261 | 1262 | Reset(); 1263 | 1264 | } 1265 | 1266 | protected override void OnPaint(PaintEventArgs e) 1267 | { 1268 | 1269 | base.OnPaint(e); 1270 | 1271 | e.Graphics.Clear(Parent.BackColor); 1272 | 1273 | int index = 0; 1274 | 1275 | int squareWidth = (212 - (SquareSpacing * 6)) / 5; 1276 | int start = (212 - (squareWidth * 5) - (SquareSpacing * 4)) / 2; 1277 | 1278 | for (int col = 0; col < 5; col++) 1279 | { 1280 | int y = start + (squareWidth + SquareSpacing) * col; 1281 | for (int row = 0; row < 8; row++) 1282 | { 1283 | 1284 | int x = start + (squareWidth + SquareSpacing) * row; 1285 | squareRects[index] = new Rectangle(x, y, squareWidth, squareWidth); 1286 | 1287 | if (squareData[index] == 1) 1288 | { 1289 | e.Graphics.FillRectangle(SetecledColor, squareRects[index]); 1290 | e.Graphics.DrawString(" " + (index + 1).ToString(), new Font("Segoe UI", 11), Brushes.Black, squareRects[index]); 1291 | } 1292 | else if (squareData[index] == 0) 1293 | { 1294 | e.Graphics.FillRectangle(idleColor, squareRects[index]); 1295 | e.Graphics.DrawString(" " + (index + 1).ToString(), new Font("Segoe UI", 11), Brushes.Black, squareRects[index]); 1296 | } 1297 | else if (squareData[index] == 2) 1298 | { 1299 | e.Graphics.FillRectangle(UnhitColor, squareRects[index]); 1300 | e.Graphics.DrawString(" " + (index + 1).ToString(), new Font("Segoe UI", 11), Brushes.Red, squareRects[index]); 1301 | } 1302 | else if (squareData[index] == 3) 1303 | { 1304 | e.Graphics.FillRectangle(WinColor, squareRects[index]); 1305 | e.Graphics.DrawString(" " + (index + 1).ToString(), new Font("Segoe UI", 11), Brushes.Black, squareRects[index]); 1306 | } 1307 | 1308 | index++; 1309 | 1310 | } 1311 | } 1312 | 1313 | } 1314 | 1315 | protected override void OnSizeChanged(EventArgs e) 1316 | { 1317 | 1318 | base.OnSizeChanged(e); 1319 | 1320 | if (Width > Height) 1321 | { 1322 | Height = Width; 1323 | } 1324 | else if (Height > Width) 1325 | { 1326 | Width = Height; 1327 | } 1328 | 1329 | perimeterRect = new Rectangle(0, 0, Width - 1, Height - 1); 1330 | 1331 | } 1332 | 1333 | public void Reset() 1334 | { 1335 | 1336 | squareRects = new Rectangle[40]; 1337 | squareData = new int[40]; 1338 | 1339 | for (int i = 0; i < squareData.Length; i++) squareData[i] = 0; 1340 | 1341 | Invalidate(); 1342 | 1343 | } 1344 | 1345 | public void Clear(List StratergyArray) 1346 | { 1347 | 1348 | squareRects = new Rectangle[40]; 1349 | squareData = new int[40]; 1350 | 1351 | for (int i = 0; i < squareData.Length; i++) 1352 | { 1353 | squareData[i] = 0; 1354 | } 1355 | 1356 | foreach (var s in StratergyArray) 1357 | { 1358 | squareData[s] = 1; 1359 | } 1360 | 1361 | Invalidate(); 1362 | 1363 | } 1364 | 1365 | public void SetValue(int index, int c) 1366 | { 1367 | if (c == 1) 1368 | { 1369 | if (squareData.Count(x => x == 1) < 10) 1370 | { 1371 | squareData[index] = c; 1372 | Invalidate(); 1373 | } 1374 | } 1375 | else 1376 | { 1377 | squareData[index] = c; 1378 | Invalidate(); 1379 | } 1380 | 1381 | 1382 | } 1383 | 1384 | protected override void OnMouseDown(MouseEventArgs e) 1385 | { 1386 | for (int i = 0; i < squareRects.Length; i++) 1387 | { 1388 | if (squareRects[i].Contains(e.Location)) 1389 | { 1390 | if (selectAllowed == true) 1391 | { 1392 | if (squareData[i] == 0) 1393 | { 1394 | SetValue(i, 1); 1395 | Form1.initForm.button1.Enabled = true; 1396 | Form1.initForm.button2.Enabled = true; 1397 | } 1398 | else 1399 | { 1400 | SetValue(i, 0); 1401 | } 1402 | Form1.initForm.StratergyArray.Clear(); 1403 | Form1.initForm.AppendMultipliers(squareData); 1404 | } 1405 | } 1406 | } 1407 | } 1408 | } 1409 | 1410 | public class riskLow 1411 | { 1412 | public List Tile = new List 1413 | { 1414 | new double[] { 0.7, 1.85 }, 1415 | new double[] { 0, 2, 3.80 }, 1416 | new double[] { 0, 1.10, 1.38, 26 }, 1417 | new double[] { 0, 0, 2.20, 7.90, 90 }, 1418 | new double[] { 0, 0, 1.50, 4.20, 13, 300 }, 1419 | new double[] { 0, 0, 1.10, 2, 6.20, 100, 700 }, 1420 | new double[] { 0, 0, 1.10, 1.60, 3.50, 15, 225, 700 }, 1421 | new double[] { 0, 0, 1.10, 1.50, 2, 5.50, 39, 100, 800 }, 1422 | new double[] { 0, 0, 1.10, 1.30, 1.70, 2.50, 7.50, 50, 250, 1000 }, 1423 | new double[] { 0, 0, 1.10, 1.20, 1.30, 1.80, 3.50, 13, 50, 250, 1000 } 1424 | }; 1425 | 1426 | } 1427 | class riskClassic 1428 | { 1429 | public List Tile = new List 1430 | { 1431 | new double[] { 0, 3.96 }, 1432 | new double[] { 0, 1.90, 4.50 }, 1433 | new double[] { 0, 1.00, 3.10, 10.40 }, 1434 | new double[] { 0, 0.80, 1.80, 5.00, 22.5 }, 1435 | new double[] { 0, 0.25, 1.40, 4.10, 16.5, 36 }, 1436 | new double[] { 0, 0, 1.00, 3.68, 7, 16.5, 40 }, 1437 | new double[] { 0, 0, 0.47, 3.00, 4.50, 14, 31, 60 }, 1438 | new double[] { 0, 0, 0, 2.20, 4, 13, 22, 55, 70 }, 1439 | new double[] { 0, 0, 0, 1.55, 3, 8, 15, 44, 60, 85 }, 1440 | new double[] { 0, 0, 0, 1.40, 2.25, 4.5, 8, 17, 50, 80, 100 } 1441 | }; 1442 | } 1443 | class riskMedium 1444 | { 1445 | public List Tile = new List 1446 | { 1447 | new double[] { 0.4, 2.75 }, 1448 | new double[] { 0, 1.8, 5.10 }, 1449 | new double[] { 0, 0, 2.8, 50 }, 1450 | new double[] { 0, 0, 1.7, 10, 100 }, 1451 | new double[] { 0, 0, 1.40, 4, 14, 390 }, 1452 | new double[] { 0, 0, 0, 3, 9, 180, 710 }, 1453 | new double[] { 0, 0, 0, 2, 7, 30, 400, 800 }, 1454 | new double[] { 0, 0, 0, 2, 4, 11, 67, 400, 900 }, 1455 | new double[] { 0, 0, 0, 2, 2.5, 5, 15, 100, 500, 1000 }, 1456 | new double[] { 0, 0, 0, 1.60, 2, 4, 7, 26, 100, 500, 1000 } 1457 | }; 1458 | } 1459 | class riskHigh 1460 | { 1461 | public List Tile = new List 1462 | { 1463 | new double[] { 0, 3.96 }, 1464 | new double[] { 0, 0, 17.10 }, 1465 | new double[] { 0, 0, 0, 81.5 }, 1466 | new double[] { 0, 0, 0, 10, 259 }, 1467 | new double[] { 0, 0, 0, 4.5, 48, 450 }, 1468 | new double[] { 0, 0, 0, 0, 11, 350, 710 }, 1469 | new double[] { 0, 0, 0, 0, 7, 90, 400, 800 }, 1470 | new double[] { 0, 0, 0, 0, 5, 20, 270, 600, 900 }, 1471 | new double[] { 0, 0, 0, 0, 4, 11, 56, 500, 800, 1000 }, 1472 | new double[] { 0, 0, 0, 0, 3.5, 8, 13, 63, 500, 800, 1000 } 1473 | }; 1474 | } 1475 | public static class ListViewExtensions 1476 | { 1477 | /// 1478 | /// Sets the double buffered property of a list view to the specified value 1479 | /// 1480 | /// The List view 1481 | /// Double Buffered or not 1482 | public static void SetDoubleBuffered(this System.Windows.Forms.ListView listView, bool doubleBuffered = true) 1483 | { 1484 | listView 1485 | .GetType() 1486 | .GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic) 1487 | .SetValue(listView, doubleBuffered, null); 1488 | } 1489 | } 1490 | public class lastbet 1491 | { 1492 | public int hits { get; set; } 1493 | public double multiplier { get; set; } 1494 | } 1495 | 1496 | 1497 | } 1498 | --------------------------------------------------------------------------------