3.00 blockbot rework

master
sagirilover 5 years ago
parent 56f92c9422
commit 2707648b9e
  1. 50
      AnimeSoftware.sln
  2. 830
      AnimeSoftware/AlphaColorDialog.cs
  3. 398
      AnimeSoftware/AlphaColorPanel.cs
  4. 116
      AnimeSoftware/AnimeForm.Designer.cs
  5. 61
      AnimeSoftware/AnimeForm.cs
  6. 15
      AnimeSoftware/AnimeForm.resx
  7. 2
      AnimeSoftware/Checks.cs
  8. 5
      AnimeSoftware/Hacks/Aimbot.cs
  9. 80
      AnimeSoftware/Hacks/BlockBot.cs
  10. 34
      AnimeSoftware/Hotkey.cs
  11. 34
      AnimeSoftware/Math.cs
  12. 6
      AnimeSoftware/Objects/Entity.cs
  13. 40
      AnimeSoftware/Objects/LocalPlayer.cs
  14. 76
      AnimeSoftware/Offsets/Offsets.cs
  15. 36
      AnimeSoftware/Offsets/ScannedOffsets.cs
  16. 44
      AnimeSoftware/Program.cs
  17. 72
      AnimeSoftware/Properties/AssemblyInfo.cs
  18. 124
      AnimeSoftware/Properties/Hotkey.Designer.cs
  19. 28
      AnimeSoftware/Properties/Hotkey.settings
  20. 142
      AnimeSoftware/Properties/Resources.Designer.cs
  21. 232
      AnimeSoftware/Properties/Resources.resx

@ -1,25 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimeSoftware", "AnimeSoftware\AnimeSoftware.csproj", "{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FA8C57BA-1145-4614-A34D-BD12E3B6A144}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnimeSoftware", "AnimeSoftware\AnimeSoftware.csproj", "{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{617F8F5F-8917-4843-AAB3-66DA09EB7DB7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FA8C57BA-1145-4614-A34D-BD12E3B6A144}
EndGlobalSection
EndGlobal

@ -1,416 +1,416 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using System.Text;
namespace Opulos.Core.UI {
public class AlphaColorDialog : ColorDialog {
///<summary>Event is fired after the color or alpha value are changed via any of the possible user-interface controls.</summary>
public event EventHandler ColorChanged;
private Color _color = Color.Black; // currently selected color
private AlphaDialog dialogAlpha = null;
private AlphaColorPanel panelAlpha = null;
private Button btnAlpha = new Button { Text = "Alpha" };
private IntPtr handle = IntPtr.Zero; // handle of this ColorDialog
private IntPtr hWndRed = IntPtr.Zero; // handles to TextBoxes
private IntPtr hWndGreen = IntPtr.Zero;
private IntPtr hWndBlue = IntPtr.Zero;
public AlphaColorDialog() {
btnAlpha.Click += btnAlpha_Click;
}
///<summary>The handle for the ColorDialog window.</summary>
public IntPtr Handle {
get {
return handle;
}
}
void btnAlpha_Click(object sender, EventArgs e) {
if (dialogAlpha == null) {
dialogAlpha = new AlphaDialog(this);
panelAlpha = new AlphaColorPanel();
panelAlpha.AlphaChanged += panelAlpha_AlphaChanged;
dialogAlpha.Controls.Add(panelAlpha);
dialogAlpha.Text = "Alpha";
//dialogAlpha.StartPosition = FormStartPosition.CenterParent; // doesn't work
dialogAlpha.StartPosition = FormStartPosition.Manual;
dialogAlpha.ClientSize = panelAlpha.PreferredSize;
Size sz = dialogAlpha.Size;
RECT r = new RECT();
GetWindowRect(handle, ref r);
dialogAlpha.Location = new Point(r.Left + ((r.Right - r.Left) - sz.Width) / 2, r.Top + ((r.Bottom - r.Top) - sz.Height) / 2);
}
panelAlpha.Color = _color;
if (!dialogAlpha.IsHandleCreated || !dialogAlpha.Visible) {
dialogAlpha.Visible = false; // sometimes IsHandleCreated is reset, so Visible must be reset
dialogAlpha.Show(new SimpleWindow { Handle = handle });
}
else {
if (dialogAlpha.WindowState == FormWindowState.Minimized)
dialogAlpha.WindowState = FormWindowState.Normal;
dialogAlpha.Activate();
dialogAlpha.BringToFront();
dialogAlpha.Focus();
}
}
void panelAlpha_AlphaChanged(object sender, EventArgs e) {
SetColorInternal(panelAlpha.Color);
}
private static String GetWindowText(IntPtr hWnd) {
StringBuilder sb = new StringBuilder(256);
GetWindowText(hWnd, sb, sb.Capacity);
return sb.ToString();
}
private class SimpleWindow : IWin32Window {
public IntPtr Handle { get; set; }
}
private static Bitmap ConvertToBitmap(IntPtr hWnd) {
RECT r = new RECT();
GetWindowRect(hWnd, ref r);
int w = r.Right - r.Left;
int h = r.Bottom - r.Top;
Graphics g = Graphics.FromHwnd(hWnd);
Bitmap bmp = new Bitmap(w, h);
Graphics g2 = Graphics.FromImage(bmp);
IntPtr g2_hdc = g2.GetHdc();
IntPtr g_hdc = g.GetHdc();
BitBlt(g2_hdc, 0, 0, w, h, g_hdc, 0, 0, SRC);
g.ReleaseHdc(g_hdc);
g2.ReleaseHdc(g2_hdc);
g.Dispose();
g2.Dispose();
return bmp;
}
private struct IJL {
public int i;
public int j;
public int len;
public override String ToString() {
return i + " " + j + " " + len;
}
}
private static Color? FindSelectedColor(IntPtr hWnd) {
// This method assumes there is a bounding rectangle around a color swatch.
// The rectangle can be any color, but must be a single color. Since
// the rectangle surrounds the swatch, it must have a run of pixels that
// is longer than the run of pixels inside the swatch. Since it is
// a rectangle, and we are scanning from top to bottom (left to right would also work),
// then there must be exactly two runs that tie for longest. If two runs cannot
// be found, then there is no bounding rectangle.
Bitmap bmp = ConvertToBitmap(hWnd);
int w = bmp.Width;
int h = bmp.Height;
Color bg = bmp.GetPixel(0, 0);
IJL ijl = new IJL();
IJL ijl0 = new IJL();
IJL ijl1 = new IJL();
int k = 0;
for (int i = 0; i < w; i++) {
Color lastColor = Color.Empty;
for (int j = 0; j <= h; j++) {
Color c = (j == h ? Color.Empty : bmp.GetPixel(i, j));
if (c == lastColor) {
ijl.len++;
}
else {
if (ijl.len < h) {
if (ijl.len > 1 && bg != lastColor) {
if (ijl.len > ijl0.len) {
ijl0 = ijl;
k = 0;
}
else if (ijl.len == ijl0.len) {
ijl1 = ijl;
k++;
}
}
}
ijl = new IJL();
ijl.i = i;
ijl.j = j;
ijl.len = 1;
lastColor = c;
}
}
}
if (k != 1) {
bmp.Dispose();
return null;
}
// k == 1 means there are exactly two runs of maximum length
int x = ijl0.i + (ijl1.i - ijl0.i) / 2;
int y = ijl0.j + ijl0.len / 2;
Color c1 = bmp.GetPixel(x, y);
bmp.Dispose();
return c1;
}
private Color GetColorInternal() {
int a = (panelAlpha != null ? panelAlpha.Alpha : 255);
String _r = GetWindowText(hWndRed);
if (_r.Length > 0) {
// Define Custom Colors UI is visible.
int r = int.Parse(_r);
int g = int.Parse(GetWindowText(hWndGreen));
int b = int.Parse(GetWindowText(hWndBlue));
return Color.FromArgb(a, r, g, b);
}
else {
// if the RGB text boxes aren't visible, then resort to trying to find
// the selected color by looking for the solid line rectangle that indicates the
// currently selected color.
Color? c = FindSelectedColor(GetDlgItem(handle, 0x02d0)); // Basic colors
if (!c.HasValue)
c = FindSelectedColor(GetDlgItem(handle, 0x02d1)); // Custom colors
return c.HasValue ? Color.FromArgb(a, c.Value) : Color.FromArgb(a, Color.Black);
}
}
private static bool AreEqual(Color c1, Color c2) {
// Color.Black != (255, 0, 0, 0)
return c1.A == c2.A && c1.R == c2.R && c1.G == c2.G && c1.B == c2.B;
}
private void SetColorInternal(Color c) {
if (AreEqual(c, _color))
return;
_color = c;
if (ColorChanged != null)
ColorChanged(this, EventArgs.Empty);
}
public new Color Color {
get {
return _color;
}
set {
SetColorInternal(value);
if (panelAlpha != null)
panelAlpha.Alpha = value.A;
base.Color = value;
}
}
protected override IntPtr HookProc(IntPtr hWnd, int msg, IntPtr wparam, IntPtr lparam) {
//System.Diagnostics.Debug.WriteLine((Opulos.Core.Win32.WM) msg);
if (msg == WM_INITDIALOG) {
IntPtr hWndOK = GetDlgItem(hWnd, 0x1); // 0x1 == OK button
RECT rOK = new RECT();
GetWindowRect(hWndOK, ref rOK);
IntPtr hWndDefineCustomColors = GetDlgItem(hWnd, 0x02cf);
RECT rDefineCustomColors = new RECT();
GetWindowRect(hWndDefineCustomColors, ref rDefineCustomColors);
IntPtr hWndCancel = GetDlgItem(hWnd, 0x2); // 0x2 == Cancel button
RECT rCancel = new RECT();
GetWindowRect(hWndCancel, ref rCancel);
// Convert the cancel button's screen coordinates to client coordinates
POINT pt = new POINT();
pt.X = rCancel.Right;
pt.Y = rCancel.Top;
ScreenToClient(hWnd, ref pt);
IntPtr hWndParent = GetParent(hWndCancel);
int w = rCancel.Right - rCancel.Left;
int h = rCancel.Bottom - rCancel.Top;
int gap = (rCancel.Left - rOK.Right);
// the "Define Custom Colors >>" button is slightly less wide than the total width of the
// OK, Cancel and Alpha buttons. Options:
// 1) Increase the width of the define button so it right aligns with the alpha button
// 2) Make the alpha button smaller in width
// 3) Decrease the widths of all three button and decrease the gap between them.
// Option 1 looks better than option 2. Didn't try option 3.
if (rCancel.Right + gap + w > rDefineCustomColors.Right) { // screen coordinates
int diff = (rCancel.Right + gap + w) - rDefineCustomColors.Right;
// Option 2: //w = w - diff;
// Option 1:
int w2 = rDefineCustomColors.Right - rDefineCustomColors.Left;
int h2 = rDefineCustomColors.Bottom - rDefineCustomColors.Top;
SetWindowPos(hWndDefineCustomColors, IntPtr.Zero, 0, 0, w2 + diff, h2, SWP_NOMOVE | SWP_NOZORDER);
}
var hWndAlpha = btnAlpha.Handle; // creates the handle
btnAlpha.Bounds = new Rectangle(pt.X + gap, pt.Y, w, h);
SetParent(hWndAlpha, hWndParent);
int hWndFont = SendMessage(hWndCancel, WM_GETFONT, 0, 0);
SendMessage(hWndAlpha, WM_SETFONT, hWndFont, 0);
// Alternative way to create the Alpha button, but would have to handle the WM_NOTIFY messages for the button click events.
//hWndAlpha = CreateWindowEx(0, "Button", "alphabutton", WS_VISIBLE | WS_CHILD | WS_TABSTOP, pt.X + gap, pt.Y, w, h, hWndParent, 0, 0, 0);
//SetWindowText(hWndAlpha, "Alpha");
//int hWndFont = SendMessage(hWndCancel, WM_GETFONT, 0, 0);
//SendMessage(hWndAlpha, WM_SETFONT, hWndFont, 0);
// calling ColorDialog.Color does not return the currently selected color until after the OK button
// is clicked. So the values from the textboxes are used. To find the controlIDs, use Spy++.
hWndRed = GetDlgItem(hWnd, 0x02c2); // red text box
hWndGreen = GetDlgItem(hWnd, 0x02c3);
hWndBlue = GetDlgItem(hWnd, 0x02c4);
}
else if (msg == WM_SHOWWINDOW) {
//center the dialog on the parent window:
RECT cr = new RECT();
RECT r0 = new RECT();
IntPtr parent = GetParent(hWnd);
GetWindowRect(hWnd, ref r0);
GetWindowRect(parent, ref cr);
handle = hWnd;
int x = cr.Left + ((cr.Right - cr.Left) - (r0.Right - r0.Left)) / 2;
int y = cr.Top + ((cr.Bottom - cr.Top) - (r0.Bottom - r0.Top)) / 2;
SetWindowPos(hWnd, IntPtr.Zero, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
}
else if (msg == ACD_COLORCHANGED) {
Color c = GetColorInternal();
SetColorInternal(c);
if (panelAlpha != null)
panelAlpha.Color = c;
}
else if (msg == WM_COMMAND || msg == WM_CHAR || msg == WM_LBUTTONDOWN) {
PostMessage(hWnd, ACD_COLORCHANGED, 0, 0);
}
return base.HookProc(hWnd, msg, wparam, lparam);
}
protected override void Dispose(bool disposing) {
base.Dispose(disposing);
if (disposing) {
if (btnAlpha != null)
btnAlpha.Dispose();
if (dialogAlpha != null)
dialogAlpha.Dispose();
btnAlpha = null;
dialogAlpha = null;
}
}
private class AlphaDialog : Form {
AlphaColorDialog AOwner;
public AlphaDialog(AlphaColorDialog owner) {
AOwner = owner;
ShowIcon = false;
}
protected override void OnFormClosing(FormClosingEventArgs e) {
if (e.CloseReason == CloseReason.None || e.CloseReason == CloseReason.UserClosing) {
e.Cancel = true;
Hide();
SetForegroundWindow(AOwner.handle);
}
base.OnFormClosing(e);
}
}
private struct RECT {
public int Left;
public int Top;
public int Right;
public int Bottom;
}
private struct POINT {
public int X;
public int Y;
}
[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
[DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[DllImport("user32.dll")]
private static extern IntPtr GetParent(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern int PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
[DllImport("user32.dll")]
private static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);
[DllImport("user32.dll")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("gdi32.dll", ExactSpelling=true, CharSet=CharSet.Auto, SetLastError=true)]
private static extern bool BitBlt(IntPtr pHdc, int iX, int iY, int iWidth, int iHeight, IntPtr pHdcSource, int iXSource, int iYSource, System.Int32 dw);
//[DllImport("user32.dll", CharSet = CharSet.Auto)]
//private static extern IntPtr CreateWindowEx(int dwExStyle, string lpClassName, string lpWindowName, uint dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, int hMenu, int hInstance, int lpParam);
//[DllImport("user32.dll", CharSet = CharSet.Auto)]
//private static extern bool SetWindowText(IntPtr hWnd, String lpString);
//[DllImport("user32.dll")]
//private static extern bool DestroyWindow(IntPtr hwnd);
private const int ACD_COLORCHANGED = 0x0400; // custom message
private const int SRC = 0xCC0020;
private const int SWP_NOSIZE = 0x0001;
private const int SWP_NOMOVE = 0x0002;
private const int SWP_NOZORDER = 0x0004;
private const int WM_INITDIALOG = 0x110;
private const int WM_SETFONT = 0x0030;
private const int WM_GETFONT = 0x0031;
private const int WM_SHOWWINDOW = 0x18;
//private const int WM_NOTIFY;
// messages that indicate a color change:
private const int WM_COMMAND = 0x111;
private const int WM_CHAR = 0x102;
private const int WM_LBUTTONDOWN = 0x201;
//private const uint WS_VISIBLE = 0x10000000;
//private const uint WS_CHILD = 0x40000000;
//private const uint WS_TABSTOP = 0x00010000;
}
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using System.Text;
namespace Opulos.Core.UI {
public class AlphaColorDialog : ColorDialog {
///<summary>Event is fired after the color or alpha value are changed via any of the possible user-interface controls.</summary>
public event EventHandler ColorChanged;
private Color _color = Color.Black; // currently selected color
private AlphaDialog dialogAlpha = null;
private AlphaColorPanel panelAlpha = null;
private Button btnAlpha = new Button { Text = "Alpha" };
private IntPtr handle = IntPtr.Zero; // handle of this ColorDialog
private IntPtr hWndRed = IntPtr.Zero; // handles to TextBoxes
private IntPtr hWndGreen = IntPtr.Zero;
private IntPtr hWndBlue = IntPtr.Zero;
public AlphaColorDialog() {
btnAlpha.Click += btnAlpha_Click;
}
///<summary>The handle for the ColorDialog window.</summary>
public IntPtr Handle {
get {
return handle;
}
}
void btnAlpha_Click(object sender, EventArgs e) {
if (dialogAlpha == null) {
dialogAlpha = new AlphaDialog(this);
panelAlpha = new AlphaColorPanel();
panelAlpha.AlphaChanged += panelAlpha_AlphaChanged;
dialogAlpha.Controls.Add(panelAlpha);
dialogAlpha.Text = "Alpha";
//dialogAlpha.StartPosition = FormStartPosition.CenterParent; // doesn't work
dialogAlpha.StartPosition = FormStartPosition.Manual;
dialogAlpha.ClientSize = panelAlpha.PreferredSize;
Size sz = dialogAlpha.Size;
RECT r = new RECT();
GetWindowRect(handle, ref r);
dialogAlpha.Location = new Point(r.Left + ((r.Right - r.Left) - sz.Width) / 2, r.Top + ((r.Bottom - r.Top) - sz.Height) / 2);
}
panelAlpha.Color = _color;
if (!dialogAlpha.IsHandleCreated || !dialogAlpha.Visible) {
dialogAlpha.Visible = false; // sometimes IsHandleCreated is reset, so Visible must be reset
dialogAlpha.Show(new SimpleWindow { Handle = handle });
}
else {
if (dialogAlpha.WindowState == FormWindowState.Minimized)
dialogAlpha.WindowState = FormWindowState.Normal;
dialogAlpha.Activate();
dialogAlpha.BringToFront();
dialogAlpha.Focus();
}
}
void panelAlpha_AlphaChanged(object sender, EventArgs e) {
SetColorInternal(panelAlpha.Color);
}
private static String GetWindowText(IntPtr hWnd) {
StringBuilder sb = new StringBuilder(256);
GetWindowText(hWnd, sb, sb.Capacity);
return sb.ToString();
}
private class SimpleWindow : IWin32Window {
public IntPtr Handle { get; set; }
}
private static Bitmap ConvertToBitmap(IntPtr hWnd) {
RECT r = new RECT();
GetWindowRect(hWnd, ref r);
int w = r.Right - r.Left;
int h = r.Bottom - r.Top;
Graphics g = Graphics.FromHwnd(hWnd);
Bitmap bmp = new Bitmap(w, h);
Graphics g2 = Graphics.FromImage(bmp);
IntPtr g2_hdc = g2.GetHdc();
IntPtr g_hdc = g.GetHdc();
BitBlt(g2_hdc, 0, 0, w, h, g_hdc, 0, 0, SRC);
g.ReleaseHdc(g_hdc);
g2.ReleaseHdc(g2_hdc);
g.Dispose();
g2.Dispose();
return bmp;
}
private struct IJL {
public int i;
public int j;
public int len;
public override String ToString() {
return i + " " + j + " " + len;
}
}
private static Color? FindSelectedColor(IntPtr hWnd) {
// This method assumes there is a bounding rectangle around a color swatch.
// The rectangle can be any color, but must be a single color. Since
// the rectangle surrounds the swatch, it must have a run of pixels that
// is longer than the run of pixels inside the swatch. Since it is
// a rectangle, and we are scanning from top to bottom (left to right would also work),
// then there must be exactly two runs that tie for longest. If two runs cannot
// be found, then there is no bounding rectangle.
Bitmap bmp = ConvertToBitmap(hWnd);
int w = bmp.Width;
int h = bmp.Height;
Color bg = bmp.GetPixel(0, 0);
IJL ijl = new IJL();
IJL ijl0 = new IJL();
IJL ijl1 = new IJL();
int k = 0;
for (int i = 0; i < w; i++) {
Color lastColor = Color.Empty;
for (int j = 0; j <= h; j++) {
Color c = (j == h ? Color.Empty : bmp.GetPixel(i, j));
if (c == lastColor) {
ijl.len++;
}
else {
if (ijl.len < h) {
if (ijl.len > 1 && bg != lastColor) {
if (ijl.len > ijl0.len) {
ijl0 = ijl;
k = 0;
}
else if (ijl.len == ijl0.len) {
ijl1 = ijl;
k++;
}
}
}
ijl = new IJL();
ijl.i = i;
ijl.j = j;
ijl.len = 1;
lastColor = c;
}
}
}
if (k != 1) {
bmp.Dispose();
return null;
}
// k == 1 means there are exactly two runs of maximum length
int x = ijl0.i + (ijl1.i - ijl0.i) / 2;
int y = ijl0.j + ijl0.len / 2;
Color c1 = bmp.GetPixel(x, y);
bmp.Dispose();
return c1;
}
private Color GetColorInternal() {
int a = (panelAlpha != null ? panelAlpha.Alpha : 255);
String _r = GetWindowText(hWndRed);
if (_r.Length > 0) {
// Define Custom Colors UI is visible.
int r = int.Parse(_r);
int g = int.Parse(GetWindowText(hWndGreen));
int b = int.Parse(GetWindowText(hWndBlue));
return Color.FromArgb(a, r, g, b);
}
else {
// if the RGB text boxes aren't visible, then resort to trying to find
// the selected color by looking for the solid line rectangle that indicates the
// currently selected color.
Color? c = FindSelectedColor(GetDlgItem(handle, 0x02d0)); // Basic colors
if (!c.HasValue)
c = FindSelectedColor(GetDlgItem(handle, 0x02d1)); // Custom colors
return c.HasValue ? Color.FromArgb(a, c.Value) : Color.FromArgb(a, Color.Black);
}
}
private static bool AreEqual(Color c1, Color c2) {
// Color.Black != (255, 0, 0, 0)
return c1.A == c2.A && c1.R == c2.R && c1.G == c2.G && c1.B == c2.B;
}
private void SetColorInternal(Color c) {
if (AreEqual(c, _color))
return;
_color = c;
if (ColorChanged != null)
ColorChanged(this, EventArgs.Empty);
}
public new Color Color {
get {
return _color;
}
set {
SetColorInternal(value);
if (panelAlpha != null)
panelAlpha.Alpha = value.A;
base.Color = value;
}
}
protected override IntPtr HookProc(IntPtr hWnd, int msg, IntPtr wparam, IntPtr lparam) {
//System.Diagnostics.Debug.WriteLine((Opulos.Core.Win32.WM) msg);
if (msg == WM_INITDIALOG) {
IntPtr hWndOK = GetDlgItem(hWnd, 0x1); // 0x1 == OK button
RECT rOK = new RECT();
GetWindowRect(hWndOK, ref rOK);
IntPtr hWndDefineCustomColors = GetDlgItem(hWnd, 0x02cf);
RECT rDefineCustomColors = new RECT();
GetWindowRect(hWndDefineCustomColors, ref rDefineCustomColors);
IntPtr hWndCancel = GetDlgItem(hWnd, 0x2); // 0x2 == Cancel button
RECT rCancel = new RECT();
GetWindowRect(hWndCancel, ref rCancel);
// Convert the cancel button's screen coordinates to client coordinates
POINT pt = new POINT();
pt.X = rCancel.Right;
pt.Y = rCancel.Top;
ScreenToClient(hWnd, ref pt);
IntPtr hWndParent = GetParent(hWndCancel);
int w = rCancel.Right - rCancel.Left;
int h = rCancel.Bottom - rCancel.Top;
int gap = (rCancel.Left - rOK.Right);
// the "Define Custom Colors >>" button is slightly less wide than the total width of the
// OK, Cancel and Alpha buttons. Options:
// 1) Increase the width of the define button so it right aligns with the alpha button
// 2) Make the alpha button smaller in width
// 3) Decrease the widths of all three button and decrease the gap between them.
// Option 1 looks better than option 2. Didn't try option 3.
if (rCancel.Right + gap + w > rDefineCustomColors.Right) { // screen coordinates
int diff = (rCancel.Right + gap + w) - rDefineCustomColors.Right;
// Option 2: //w = w - diff;
// Option 1:
int w2 = rDefineCustomColors.Right - rDefineCustomColors.Left;
int h2 = rDefineCustomColors.Bottom - rDefineCustomColors.Top;
SetWindowPos(hWndDefineCustomColors, IntPtr.Zero, 0, 0, w2 + diff, h2, SWP_NOMOVE | SWP_NOZORDER);
}
var hWndAlpha = btnAlpha.Handle; // creates the handle
btnAlpha.Bounds = new Rectangle(pt.X + gap, pt.Y, w, h);
SetParent(hWndAlpha, hWndParent);
int hWndFont = SendMessage(hWndCancel, WM_GETFONT, 0, 0);
SendMessage(hWndAlpha, WM_SETFONT, hWndFont, 0);
// Alternative way to create the Alpha button, but would have to handle the WM_NOTIFY messages for the button click events.
//hWndAlpha = CreateWindowEx(0, "Button", "alphabutton", WS_VISIBLE | WS_CHILD | WS_TABSTOP, pt.X + gap, pt.Y, w, h, hWndParent, 0, 0, 0);
//SetWindowText(hWndAlpha, "Alpha");
//int hWndFont = SendMessage(hWndCancel, WM_GETFONT, 0, 0);
//SendMessage(hWndAlpha, WM_SETFONT, hWndFont, 0);
// calling ColorDialog.Color does not return the currently selected color until after the OK button
// is clicked. So the values from the textboxes are used. To find the controlIDs, use Spy++.
hWndRed = GetDlgItem(hWnd, 0x02c2); // red text box
hWndGreen = GetDlgItem(hWnd, 0x02c3);
hWndBlue = GetDlgItem(hWnd, 0x02c4);
}
else if (msg == WM_SHOWWINDOW) {
//center the dialog on the parent window:
RECT cr = new RECT();
RECT r0 = new RECT();
IntPtr parent = GetParent(hWnd);
GetWindowRect(hWnd, ref r0);
GetWindowRect(parent, ref cr);
handle = hWnd;
int x = cr.Left + ((cr.Right - cr.Left) - (r0.Right - r0.Left)) / 2;
int y = cr.Top + ((cr.Bottom - cr.Top) - (r0.Bottom - r0.Top)) / 2;
SetWindowPos(hWnd, IntPtr.Zero, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
}
else if (msg == ACD_COLORCHANGED) {
Color c = GetColorInternal();
SetColorInternal(c);
if (panelAlpha != null)
panelAlpha.Color = c;
}
else if (msg == WM_COMMAND || msg == WM_CHAR || msg == WM_LBUTTONDOWN) {
PostMessage(hWnd, ACD_COLORCHANGED, 0, 0);
}
return base.HookProc(hWnd, msg, wparam, lparam);
}
protected override void Dispose(bool disposing) {
base.Dispose(disposing);
if (disposing) {
if (btnAlpha != null)
btnAlpha.Dispose();
if (dialogAlpha != null)
dialogAlpha.Dispose();
btnAlpha = null;
dialogAlpha = null;
}
}
private class AlphaDialog : Form {
AlphaColorDialog AOwner;
public AlphaDialog(AlphaColorDialog owner) {
AOwner = owner;
ShowIcon = false;
}
protected override void OnFormClosing(FormClosingEventArgs e) {
if (e.CloseReason == CloseReason.None || e.CloseReason == CloseReason.UserClosing) {
e.Cancel = true;
Hide();
SetForegroundWindow(AOwner.handle);
}
base.OnFormClosing(e);
}
}
private struct RECT {
public int Left;
public int Top;
public int Right;
public int Bottom;
}
private struct POINT {
public int X;
public int Y;
}
[DllImport("user32.dll")]
private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
[DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[DllImport("user32.dll")]
private static extern IntPtr GetParent(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern int PostMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImport("user32.dll")]
private static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem);
[DllImport("user32.dll")]
private static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);
[DllImport("user32.dll")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
[DllImport("gdi32.dll", ExactSpelling=true, CharSet=CharSet.Auto, SetLastError=true)]
private static extern bool BitBlt(IntPtr pHdc, int iX, int iY, int iWidth, int iHeight, IntPtr pHdcSource, int iXSource, int iYSource, System.Int32 dw);
//[DllImport("user32.dll", CharSet = CharSet.Auto)]
//private static extern IntPtr CreateWindowEx(int dwExStyle, string lpClassName, string lpWindowName, uint dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, int hMenu, int hInstance, int lpParam);
//[DllImport("user32.dll", CharSet = CharSet.Auto)]
//private static extern bool SetWindowText(IntPtr hWnd, String lpString);
//[DllImport("user32.dll")]
//private static extern bool DestroyWindow(IntPtr hwnd);
private const int ACD_COLORCHANGED = 0x0400; // custom message
private const int SRC = 0xCC0020;
private const int SWP_NOSIZE = 0x0001;
private const int SWP_NOMOVE = 0x0002;
private const int SWP_NOZORDER = 0x0004;
private const int WM_INITDIALOG = 0x110;
private const int WM_SETFONT = 0x0030;
private const int WM_GETFONT = 0x0031;
private const int WM_SHOWWINDOW = 0x18;
//private const int WM_NOTIFY;
// messages that indicate a color change:
private const int WM_COMMAND = 0x111;
private const int WM_CHAR = 0x102;
private const int WM_LBUTTONDOWN = 0x201;
//private const uint WS_VISIBLE = 0x10000000;
//private const uint WS_CHILD = 0x40000000;
//private const uint WS_TABSTOP = 0x00010000;
}
}

@ -1,200 +1,200 @@
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Opulos.Core.UI {
public class AlphaColorPanel : Panel {
public event EventHandler AlphaChanged;
NumericUpDown nudAlpha = new NumericUpDown { AutoSize = true, Minimum = 0, Maximum = 255, DecimalPlaces = 0, Increment = 1, Value = 255, Anchor = AnchorStyles.Top };
TrackBar trackBar = new TrackBar2 { Minimum = 0, Maximum = 255, TickFrequency = 5, TickStyle = TickStyle.None, Orientation = Orientation.Horizontal, Value = 255, Anchor = AnchorStyles.Left | AnchorStyles.Right };
Color[] colors = new Color[] { Color.White, Color.Black, Color.Green, Color.Blue, Color.Red, Color.Yellow };
public int Cols { get; set; }
public int SwatchSize { get; set; }
private Color color = Color.Empty;
public AlphaColorPanel() : base() {
Dock = DockStyle.Fill;
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
DoubleBuffered = true;
//TabStop = true;
//SetStyle(ControlStyles.Selectable, true);
ResizeRedraw = true;
Cols = 3;
SwatchSize = 100;
trackBar.ValueChanged += trackBar_ValueChanged;
nudAlpha.ValueChanged += nudAlpha_ValueChanged;
Alpha = 255;
TableLayoutPanel p = new TableLayoutPanel { Dock = DockStyle.Bottom };
p.AutoSize = true;
p.AutoSizeMode = AutoSizeMode.GrowAndShrink;
p.Controls.Add(nudAlpha, 0, 0);
p.Controls.Add(trackBar, 1, 0);
p.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
p.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 1));
Controls.Add(p);
nudAlpha.KeyDown += nudAlpha_KeyDown;
trackBar.KeyDown += trackBar_KeyDown;
}
void trackBar_KeyDown(object sender, KeyEventArgs e) {
HandleKeyEvent((Control) sender, e);
}
void nudAlpha_KeyDown(object sender, KeyEventArgs e) {
HandleKeyEvent((Control) sender, e);
}
private void HandleKeyEvent(Control sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
e.SuppressKeyPress = true; // stop beep
e.Handled = true;
}
else if (e.KeyCode == Keys.Escape) {
e.SuppressKeyPress = true;
e.Handled = true;
Form f = FindForm();
if (f != null)
f.Close();
}
else if (e.KeyCode == Keys.Tab) {
// seems like because the Form is displays with Show(Window) but
// it is not modal, that stops tabs from working correctly, so
// it is handled manually:
sender.Parent.SelectNextControl(sender, true, true, true, true);
e.SuppressKeyPress = true;
e.Handled = true;
}
}
void nudAlpha_ValueChanged(object sender, EventArgs e) {
trackBar.Value = Convert.ToInt32(nudAlpha.Value);
}
public override Size GetPreferredSize(Size proposedSize) {
int w = SwatchSize * Cols;
int h = SwatchSize * (((Colors.Length - 1) / Cols) + 1);
h += Math.Max(trackBar.Height, nudAlpha.Height);
return new Size(w, h);
}
public Color Color {
get {
return color;
}
set {
var c = value;
color = Color.FromArgb(Alpha, c.R, c.G, c.B);
Invalidate(); //Refresh();
}
}
public int Alpha {
get {
return trackBar.Value;
}
set {
trackBar.Value = value;
}
}
public Color[] Colors {
get {
return colors;
}
set {
colors = value;
}
}
void trackBar_ValueChanged(object sender, EventArgs e) {
nudAlpha.Value = trackBar.Value;
Color c = Color;
Color = Color.FromArgb(trackBar.Value, c.R, c.G, c.B);
Refresh();
if (AlphaChanged != null)
AlphaChanged(this, EventArgs.Empty);
}
protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e);
int rows = ((Colors.Length - 1) / Cols) + 1;
int r1 = Width / Cols;
int r2 = Height / Cols;
int r = Math.Min(r1, r2);
if (r < SwatchSize)
r = SwatchSize;
int offsetX = (Width - r * Cols) / 2;
int offsetY = ((Height - Math.Max(nudAlpha.Height, trackBar.Height)) - r * rows) / 2;
var g = e.Graphics;
int x = 0;
int y = 0;
for (int i = 0, j = 1; i < colors.Length; i++, j++) {
Color c = colors[i];
using (var b = new SolidBrush(c))
g.FillRectangle(b, x + offsetX, y + offsetY, r, r);
if (j == Cols) {
j = 0;
x = 0;
y += r;
}
else {
x += r;
}
}
using (var b = new SolidBrush(Color))
g.FillRectangle(b, r / 2 + offsetX, r / 2 + offsetY, 2 * r, r);
}
}
class TrackBar2 : TrackBar {
public TrackBar2() : base() {
AutoSize = false;
RECT r = GetThumbRect(this);
Height = r.Bottom - r.Top;
}
public override Size GetPreferredSize(Size proposedSize) {
Size sz = base.GetPreferredSize(proposedSize);
RECT r = GetThumbRect(this);
sz.Height = r.Bottom - r.Top;
return sz;
}
[StructLayout(LayoutKind.Sequential)]
private struct RECT {
public int Left;
public int Top;
public int Right;
public int Bottom;
}
[DllImport("user32.dll")]
private static extern void SendMessage(IntPtr hwnd, uint msg, IntPtr wp, ref RECT lp);
private const uint TBM_GETTHUMBRECT = 0x419;
private static RECT GetThumbRect(TrackBar trackBar) {
RECT rc = new RECT();
SendMessage(trackBar.Handle, TBM_GETTHUMBRECT, IntPtr.Zero, ref rc);
return rc;
}
}
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Opulos.Core.UI {
public class AlphaColorPanel : Panel {
public event EventHandler AlphaChanged;
NumericUpDown nudAlpha = new NumericUpDown { AutoSize = true, Minimum = 0, Maximum = 255, DecimalPlaces = 0, Increment = 1, Value = 255, Anchor = AnchorStyles.Top };
TrackBar trackBar = new TrackBar2 { Minimum = 0, Maximum = 255, TickFrequency = 5, TickStyle = TickStyle.None, Orientation = Orientation.Horizontal, Value = 255, Anchor = AnchorStyles.Left | AnchorStyles.Right };
Color[] colors = new Color[] { Color.White, Color.Black, Color.Green, Color.Blue, Color.Red, Color.Yellow };
public int Cols { get; set; }
public int SwatchSize { get; set; }
private Color color = Color.Empty;
public AlphaColorPanel() : base() {
Dock = DockStyle.Fill;
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
DoubleBuffered = true;
//TabStop = true;
//SetStyle(ControlStyles.Selectable, true);
ResizeRedraw = true;
Cols = 3;
SwatchSize = 100;
trackBar.ValueChanged += trackBar_ValueChanged;
nudAlpha.ValueChanged += nudAlpha_ValueChanged;
Alpha = 255;
TableLayoutPanel p = new TableLayoutPanel { Dock = DockStyle.Bottom };
p.AutoSize = true;
p.AutoSizeMode = AutoSizeMode.GrowAndShrink;
p.Controls.Add(nudAlpha, 0, 0);
p.Controls.Add(trackBar, 1, 0);
p.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
p.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 1));
Controls.Add(p);
nudAlpha.KeyDown += nudAlpha_KeyDown;
trackBar.KeyDown += trackBar_KeyDown;
}
void trackBar_KeyDown(object sender, KeyEventArgs e) {
HandleKeyEvent((Control) sender, e);
}
void nudAlpha_KeyDown(object sender, KeyEventArgs e) {
HandleKeyEvent((Control) sender, e);
}
private void HandleKeyEvent(Control sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
e.SuppressKeyPress = true; // stop beep
e.Handled = true;
}
else if (e.KeyCode == Keys.Escape) {
e.SuppressKeyPress = true;
e.Handled = true;
Form f = FindForm();
if (f != null)
f.Close();
}
else if (e.KeyCode == Keys.Tab) {
// seems like because the Form is displays with Show(Window) but
// it is not modal, that stops tabs from working correctly, so
// it is handled manually:
sender.Parent.SelectNextControl(sender, true, true, true, true);
e.SuppressKeyPress = true;
e.Handled = true;
}
}
void nudAlpha_ValueChanged(object sender, EventArgs e) {
trackBar.Value = Convert.ToInt32(nudAlpha.Value);
}
public override Size GetPreferredSize(Size proposedSize) {
int w = SwatchSize * Cols;
int h = SwatchSize * (((Colors.Length - 1) / Cols) + 1);
h += Math.Max(trackBar.Height, nudAlpha.Height);
return new Size(w, h);
}
public Color Color {
get {
return color;
}
set {
var c = value;
color = Color.FromArgb(Alpha, c.R, c.G, c.B);
Invalidate(); //Refresh();
}
}
public int Alpha {
get {
return trackBar.Value;
}
set {
trackBar.Value = value;
}
}
public Color[] Colors {
get {
return colors;
}
set {
colors = value;
}
}
void trackBar_ValueChanged(object sender, EventArgs e) {
nudAlpha.Value = trackBar.Value;
Color c = Color;
Color = Color.FromArgb(trackBar.Value, c.R, c.G, c.B);
Refresh();
if (AlphaChanged != null)
AlphaChanged(this, EventArgs.Empty);
}
protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e);
int rows = ((Colors.Length - 1) / Cols) + 1;
int r1 = Width / Cols;
int r2 = Height / Cols;
int r = Math.Min(r1, r2);
if (r < SwatchSize)
r = SwatchSize;
int offsetX = (Width - r * Cols) / 2;
int offsetY = ((Height - Math.Max(nudAlpha.Height, trackBar.Height)) - r * rows) / 2;
var g = e.Graphics;
int x = 0;
int y = 0;
for (int i = 0, j = 1; i < colors.Length; i++, j++) {
Color c = colors[i];
using (var b = new SolidBrush(c))
g.FillRectangle(b, x + offsetX, y + offsetY, r, r);
if (j == Cols) {
j = 0;
x = 0;
y += r;
}
else {
x += r;
}
}
using (var b = new SolidBrush(Color))
g.FillRectangle(b, r / 2 + offsetX, r / 2 + offsetY, 2 * r, r);
}
}
class TrackBar2 : TrackBar {
public TrackBar2() : base() {
AutoSize = false;
RECT r = GetThumbRect(this);
Height = r.Bottom - r.Top;
}
public override Size GetPreferredSize(Size proposedSize) {
Size sz = base.GetPreferredSize(proposedSize);
RECT r = GetThumbRect(this);
sz.Height = r.Bottom - r.Top;
return sz;
}
[StructLayout(LayoutKind.Sequential)]
private struct RECT {
public int Left;
public int Top;
public int Right;
public int Bottom;
}
[DllImport("user32.dll")]
private static extern void SendMessage(IntPtr hwnd, uint msg, IntPtr wp, ref RECT lp);
private const uint TBM_GETTHUMBRECT = 0x419;
private static RECT GetThumbRect(TrackBar trackBar) {
RECT rc = new RECT();
SendMessage(trackBar.Handle, TBM_GETTHUMBRECT, IntPtr.Zero, ref rc);
return rc;
}
}
}

@ -57,6 +57,7 @@
this.removeGlowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.voteKickToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.stealWhenYouFriendlyfireToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.getByteNameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.rightspamButton = new System.Windows.Forms.CheckBox();
this.trashControl = new System.Windows.Forms.TabControl();
this.aimTab = new System.Windows.Forms.TabPage();
@ -87,6 +88,10 @@
this.label2 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.trackBar3 = new System.Windows.Forms.TrackBar();
this.trackBar4 = new System.Windows.Forms.TrackBar();
this.trackBar5 = new System.Windows.Forms.TrackBar();
this.label9 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.nickBox)).BeginInit();
this.nickBoxContextMenuStrip.SuspendLayout();
this.trashControl.SuspendLayout();
@ -96,11 +101,14 @@
((System.ComponentModel.ISupportInitialize)(this.chokeTrackBar)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar4)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar5)).BeginInit();
this.SuspendLayout();
//
// refreshButton
//
this.refreshButton.Location = new System.Drawing.Point(173, 335);
this.refreshButton.Location = new System.Drawing.Point(173, 412);
this.refreshButton.Name = "refreshButton";
this.refreshButton.Size = new System.Drawing.Size(75, 26);
this.refreshButton.TabIndex = 2;
@ -111,7 +119,7 @@
// changeButton
//
this.changeButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.changeButton.Location = new System.Drawing.Point(12, 335);
this.changeButton.Location = new System.Drawing.Point(12, 412);
this.changeButton.Name = "changeButton";
this.changeButton.Size = new System.Drawing.Size(75, 26);
this.changeButton.TabIndex = 5;
@ -137,7 +145,7 @@
this.nickBox.ReadOnly = true;
this.nickBox.RowHeadersVisible = false;
this.nickBox.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.nickBox.Size = new System.Drawing.Size(317, 317);
this.nickBox.Size = new System.Drawing.Size(317, 390);
this.nickBox.TabIndex = 10;
this.nickBox.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.nickBox_CellClick);
this.nickBox.CellMouseUp += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.nickBox_CellMouseUp);
@ -173,7 +181,7 @@
//
// resetButton
//
this.resetButton.Location = new System.Drawing.Point(93, 335);
this.resetButton.Location = new System.Drawing.Point(93, 412);
this.resetButton.Name = "resetButton";
this.resetButton.Size = new System.Drawing.Size(75, 26);
this.resetButton.TabIndex = 11;
@ -195,7 +203,7 @@
// doorspammerCheckBox
//
this.doorspammerCheckBox.AutoSize = true;
this.doorspammerCheckBox.Location = new System.Drawing.Point(335, 326);
this.doorspammerCheckBox.Location = new System.Drawing.Point(481, 12);
this.doorspammerCheckBox.Name = "doorspammerCheckBox";
this.doorspammerCheckBox.Size = new System.Drawing.Size(93, 17);
this.doorspammerCheckBox.TabIndex = 14;
@ -206,7 +214,7 @@
// blockbotCheckBox
//
this.blockbotCheckBox.AutoSize = true;
this.blockbotCheckBox.Location = new System.Drawing.Point(335, 370);
this.blockbotCheckBox.Location = new System.Drawing.Point(481, 57);
this.blockbotCheckBox.Name = "blockbotCheckBox";
this.blockbotCheckBox.Size = new System.Drawing.Size(69, 17);
this.blockbotCheckBox.TabIndex = 15;
@ -216,7 +224,7 @@
//
// doorspammerButton
//
this.doorspammerButton.Location = new System.Drawing.Point(335, 342);
this.doorspammerButton.Location = new System.Drawing.Point(481, 28);
this.doorspammerButton.Name = "doorspammerButton";
this.doorspammerButton.Size = new System.Drawing.Size(84, 23);
this.doorspammerButton.TabIndex = 17;
@ -228,7 +236,7 @@
// blockbotButton
//
this.blockbotButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.blockbotButton.Location = new System.Drawing.Point(335, 386);
this.blockbotButton.Location = new System.Drawing.Point(481, 73);
this.blockbotButton.Name = "blockbotButton";
this.blockbotButton.Size = new System.Drawing.Size(84, 23);
this.blockbotButton.TabIndex = 18;
@ -239,7 +247,7 @@
//
// fullrefreshButton
//
this.fullrefreshButton.Location = new System.Drawing.Point(254, 335);
this.fullrefreshButton.Location = new System.Drawing.Point(254, 412);
this.fullrefreshButton.Name = "fullrefreshButton";
this.fullrefreshButton.Size = new System.Drawing.Size(75, 26);
this.fullrefreshButton.TabIndex = 19;
@ -260,7 +268,7 @@
//
// customnameTextBox
//
this.customnameTextBox.Location = new System.Drawing.Point(12, 367);
this.customnameTextBox.Location = new System.Drawing.Point(12, 444);
this.customnameTextBox.Name = "customnameTextBox";
this.customnameTextBox.Size = new System.Drawing.Size(259, 20);
this.customnameTextBox.TabIndex = 21;
@ -268,7 +276,7 @@
//
// setupButton
//
this.setupButton.Location = new System.Drawing.Point(277, 367);
this.setupButton.Location = new System.Drawing.Point(277, 444);
this.setupButton.Name = "setupButton";
this.setupButton.Size = new System.Drawing.Size(52, 20);
this.setupButton.TabIndex = 22;
@ -294,9 +302,11 @@
this.setGlowToolStripMenuItem,
this.removeGlowToolStripMenuItem,
this.voteKickToolStripMenuItem,
this.stealWhenYouFriendlyfireToolStripMenuItem});
this.stealWhenYouFriendlyfireToolStripMenuItem,
this.getByteNameToolStripMenuItem});
this.nickBoxContextMenuStrip.Name = "nickBoxContextMenuStrip";
this.nickBoxContextMenuStrip.Size = new System.Drawing.Size(215, 114);
this.nickBoxContextMenuStrip.Size = new System.Drawing.Size(215, 136);
this.nickBoxContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.nickBoxContextMenuStrip_Opening);
this.nickBoxContextMenuStrip.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.nickBoxContextMenuStrip_ItemClicked);
//
// stealNameToolStripMenuItem
@ -360,6 +370,13 @@
this.stealWhenYouFriendlyfireToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
this.stealWhenYouFriendlyfireToolStripMenuItem.Text = "Steal when you friendlyfire";
//
// getByteNameToolStripMenuItem
//
this.getByteNameToolStripMenuItem.Name = "getByteNameToolStripMenuItem";
this.getByteNameToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
this.getByteNameToolStripMenuItem.Text = "Get byte name";
this.getByteNameToolStripMenuItem.Click += new System.EventHandler(this.getByteNameToolStripMenuItem_Click);
//
// rightspamButton
//
this.rightspamButton.AutoSize = true;
@ -375,7 +392,7 @@
// trashControl
//
this.trashControl.Controls.Add(this.aimTab);
this.trashControl.Location = new System.Drawing.Point(476, 35);
this.trashControl.Location = new System.Drawing.Point(591, 12);
this.trashControl.Name = "trashControl";
this.trashControl.SelectedIndex = 0;
this.trashControl.Size = new System.Drawing.Size(145, 371);
@ -515,7 +532,7 @@
//
// unlockButton
//
this.unlockButton.Location = new System.Drawing.Point(464, 399);
this.unlockButton.Location = new System.Drawing.Point(575, 476);
this.unlockButton.Name = "unlockButton";
this.unlockButton.Size = new System.Drawing.Size(10, 10);
this.unlockButton.TabIndex = 31;
@ -599,7 +616,7 @@
//
// clanTextBox
//
this.clanTextBox.Location = new System.Drawing.Point(12, 389);
this.clanTextBox.Location = new System.Drawing.Point(12, 466);
this.clanTextBox.Name = "clanTextBox";
this.clanTextBox.Size = new System.Drawing.Size(259, 20);
this.clanTextBox.TabIndex = 42;
@ -607,7 +624,7 @@
//
// clanButton
//
this.clanButton.Location = new System.Drawing.Point(277, 389);
this.clanButton.Location = new System.Drawing.Point(277, 466);
this.clanButton.Name = "clanButton";
this.clanButton.Size = new System.Drawing.Size(52, 20);
this.clanButton.TabIndex = 43;
@ -617,7 +634,7 @@
//
// trackBar1
//
this.trackBar1.Location = new System.Drawing.Point(658, 74);
this.trackBar1.Location = new System.Drawing.Point(481, 120);
this.trackBar1.Maximum = 300;
this.trackBar1.Name = "trackBar1";
this.trackBar1.Size = new System.Drawing.Size(104, 45);
@ -627,7 +644,7 @@
//
// trackBar2
//
this.trackBar2.Location = new System.Drawing.Point(658, 144);
this.trackBar2.Location = new System.Drawing.Point(481, 190);
this.trackBar2.Maximum = 100;
this.trackBar2.Minimum = 1;
this.trackBar2.Name = "trackBar2";
@ -639,7 +656,7 @@
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(655, 125);
this.label1.Location = new System.Drawing.Point(478, 171);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(82, 13);
this.label1.TabIndex = 46;
@ -648,7 +665,7 @@
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(655, 55);
this.label2.Location = new System.Drawing.Point(478, 101);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(87, 13);
this.label2.TabIndex = 47;
@ -657,7 +674,7 @@
// label7
//
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(691, 171);
this.label7.Location = new System.Drawing.Point(514, 222);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(35, 13);
this.label7.TabIndex = 48;
@ -667,18 +684,61 @@
// label8
//
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(691, 101);
this.label8.Location = new System.Drawing.Point(514, 147);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(35, 13);
this.label8.TabIndex = 49;
this.label8.Text = "label8";
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// trackBar3
//
this.trackBar3.Location = new System.Drawing.Point(481, 281);
this.trackBar3.Maximum = 2000;
this.trackBar3.Minimum = -2000;
this.trackBar3.Name = "trackBar3";
this.trackBar3.Size = new System.Drawing.Size(104, 45);
this.trackBar3.TabIndex = 50;
this.trackBar3.Scroll += new System.EventHandler(this.trackBar3_Scroll);
//
// trackBar4
//
this.trackBar4.Location = new System.Drawing.Point(481, 332);
this.trackBar4.Maximum = 2000;
this.trackBar4.Minimum = -2000;
this.trackBar4.Name = "trackBar4";
this.trackBar4.Size = new System.Drawing.Size(104, 45);
this.trackBar4.TabIndex = 51;
this.trackBar4.Scroll += new System.EventHandler(this.trackBar4_Scroll);
//
// trackBar5
//
this.trackBar5.Location = new System.Drawing.Point(481, 378);
this.trackBar5.Maximum = 2000;
this.trackBar5.Minimum = -2000;
this.trackBar5.Name = "trackBar5";
this.trackBar5.Size = new System.Drawing.Size(104, 45);
this.trackBar5.TabIndex = 52;
this.trackBar5.Scroll += new System.EventHandler(this.trackBar5_Scroll);
//
// label9
//
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(478, 260);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(58, 13);
this.label9.TabIndex = 53;
this.label9.Text = "Viewmodel";
//
// AnimeForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(468, 414);
this.ClientSize = new System.Drawing.Size(592, 488);
this.Controls.Add(this.label9);
this.Controls.Add(this.trackBar5);
this.Controls.Add(this.trackBar4);
this.Controls.Add(this.trackBar3);
this.Controls.Add(this.label8);
this.Controls.Add(this.label7);
this.Controls.Add(this.label2);
@ -727,6 +787,9 @@
((System.ComponentModel.ISupportInitialize)(this.chokeTrackBar)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar4)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackBar5)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@ -791,6 +854,11 @@
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TrackBar trackBar3;
private System.Windows.Forms.TrackBar trackBar4;
private System.Windows.Forms.TrackBar trackBar5;
private System.Windows.Forms.ToolStripMenuItem getByteNameToolStripMenuItem;
private System.Windows.Forms.Label label9;
}
}

@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
@ -58,7 +59,7 @@ namespace AnimeSoftware
public static void Start()
{
Thread blockbotThread = new Thread(new ThreadStart(BlockBot.Start))
Thread blockbotThread = new Thread(new ThreadStart(BlockBot.Start2))
{
Priority = ThreadPriority.Highest,
IsBackground = true,
@ -100,13 +101,6 @@ namespace AnimeSoftware
};
perfectnadeThread.Start();
//Thread runboostThread = new Thread(new ThreadStart(RunboostBot.Start))
//{
// Priority = ThreadPriority.Highest, // disabled
// IsBackground = true,
//};
//runboostThread.Start();
Thread visualsThread = new Thread(new ThreadStart(Visuals.Start))
{
Priority = ThreadPriority.Highest,
@ -382,6 +376,10 @@ namespace AnimeSoftware
}
Visuals.ToGlow = ToGlow;
}
if(e.ClickedItem == getByteNameToolStripMenuItem)
{
Console.WriteLine( new Entity(Convert.ToInt32(nickBox.SelectedRows[0].Cells[0].Value)).Name2);
}
}
private void toGlowListChange(GlowColor glowColor)
{
@ -606,19 +604,60 @@ namespace AnimeSoftware
{
label8.Text = (trackBar1.Value / 100f).ToString();
BlockBot.trajFactor = trackBar1.Value / 100f;
Console.WriteLine(BlockBot.trajFactor);
}
private void trackBar2_Scroll(object sender, EventArgs e)
{
label7.Text = (trackBar2.Value / 10f).ToString();
BlockBot.distanceFactor = trackBar2.Value / 10f;
Console.WriteLine(BlockBot.distanceFactor);
}
private void trackBar3_Scroll(object sender, EventArgs e)
{
LocalPlayer.viewmodel_x = trackBar3.Value / 100f;
}
private void trackBar4_Scroll(object sender, EventArgs e)
{
LocalPlayer.viewmodel_y = trackBar4.Value / 100f;
}
private void trackBar5_Scroll(object sender, EventArgs e)
{
LocalPlayer.viewmodel_z = trackBar5.Value / 100f;
}
private void button1_Click(object sender, EventArgs e)
{
LocalPlayer.Use = 6;
Color c = Color.Red;
Console.WriteLine(new byte[] { 255,0,0,255 }.ToString());
//Console.WriteLine($"R: {c.R} G: {c.G} B: {c.B} A: {c.A}");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
Kek(Encoding.Default.GetBytes("\n\xAD\xAD\xAD"));
Kek(Encoding.UTF8.GetBytes("\n\xAD\xAD\xAD"));
Kek(Encoding.UTF8.GetBytes("\n\u00AD\u00AD\u00AD"));
}
public static void Kek(byte[] b)
{
string s = "";
foreach(byte bt in b)
{
s += bt.ToString("X") + " ";
}
Console.WriteLine(s);
}
private void nickBoxContextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e)
{
}
private void getByteNameToolStripMenuItem_Click(object sender, EventArgs e)
{
}
}
}

@ -129,7 +129,22 @@
<metadata name="glowColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="idColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="nameColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="aliveColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="glowColumn.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="nickBoxContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>39</value>
</metadata>
</root>

@ -54,7 +54,7 @@ namespace AnimeSoftware
}
}
public static string version = "v2.91";
public static string version = "v3.00";
}
}

@ -42,7 +42,7 @@ namespace AnimeSoftware.Hacks
{
Vector3 angles = new Vector3 { x = 0, y = 0, z = 0 };
double[] delta = { (src.x - dst.x), (src.y - dst.y), (src.z - dst.z) };
float hyp = (float)Math.Sqrt(delta[0] * delta[0] + delta[1] * delta[1] + delta[2] * delta[2]);
float hyp = (float)Math.Sqrt(delta[0] * delta[0] + delta[1] * delta[1]);
angles.x = (float)(Math.Atan(delta[2] / hyp) * 180.0f / Math.PI);
angles.y = (float)(Math.Atan(delta[1] / delta[0]) * 180.0f / Math.PI);
if (delta[0] >= 0.0f)
@ -79,7 +79,8 @@ namespace AnimeSoftware.Hacks
Index = x.Index;
}
}
return new Entity(Index);
return new Entity(Index);
}
public static Entity BestFOV(float FOV, int boneID = 6)

@ -17,7 +17,85 @@ namespace AnimeSoftware.Hacks
public static bool hb = false;
public static float distanceFactor = 1.5f;
public static float trajFactor = 0.3f;
public static void Start2()
{
while (true)
{
Thread.Sleep(1);
if (!Properties.Settings.Default.blockbot)
continue;
if (!LocalPlayer.InGame)
continue;
if (LocalPlayer.Health <= 0)
continue;
Entity target = null;
bool blocked = false;
while ((DllImport.GetAsyncKeyState(Properties.Hotkey.Default.blockbotKey) & 0x8000) != 0)
{
if (target == null)
{
target = Aimbot.BestDistance();
Memory.Write<int>(Memory.Client + signatures.dwForceRight, 5);
Memory.Write<int>(Memory.Client + signatures.dwForceForward, 5);
blocked = true;
}
if ((LocalPlayer.Position - target.BonePosition(8)).Length < 43)
{
Vector3 targetOrigin = target.Position + target.Velocity * trajFactor;
targetOrigin.z = 0;
Vector3 localOrigin = LocalPlayer.Position;
localOrigin.z = 0;
float distance = (targetOrigin - localOrigin).Length;
distance *= distanceFactor;
if (distance > 10)
distance = 10;
float pokekat = LocalPlayer.ViewAngle.y - Aimbot.CalcAngle(LocalPlayer.Position, target.Position).y + 360.0f;
LocalPlayer.SideSpeed = (float)Math.Sin(pokekat * 0.0174533) * 45 * distance;
LocalPlayer.ForwardSpeed = (float)Math.Cos(pokekat * 0.0174533) * 45 * distance;
}
else
{
if ((DllImport.GetAsyncKeyState(0x57) & 0x8000) != 0)
LocalPlayer.ForwardSpeed = 450;
else
LocalPlayer.ForwardSpeed = 0;
Vector3 angle = Aimbot.CalcAngle(LocalPlayer.ViewPosition, target.Position);
angle.y -= LocalPlayer.ViewAngle.y;
angle = Aimbot.NormalizedAngle(angle);
float sidemove = -angle.y * 25;
LocalPlayer.SideSpeed = sidemove > 450 ? 450 : sidemove < -450 ? -450 : sidemove;
}
}
if (blocked)
{
Memory.Write<int>(Memory.Client + signatures.dwForceRight, 6);
Memory.Write<int>(Memory.Client + signatures.dwForceForward, 6);
LocalPlayer.SideSpeed = 450;
LocalPlayer.ForwardSpeed = 450;
}
}
}
public static void Start()
{

@ -1,17 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace AnimeSoftware
{
class Hotkey
{
public static void Start()
{
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace AnimeSoftware
{
class Hotkey
{
public static void Start()
{
}
}
}

@ -1,17 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AnimeSoftware
{
class VectorMath
{
public static float Distance(Vector3 src, Vector3 dst)
{
float result = (float)Math.Sqrt((dst.x-src.x) * (dst.x-src.x) + (dst.y-src.y) * (dst.y-src.y) + (dst.z-src.z) * (dst.z-src.z));
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AnimeSoftware
{
class VectorMath
{
public static float Distance(Vector3 src, Vector3 dst)
{
float result = (float)Math.Sqrt((dst.x-src.x) * (dst.x-src.x) + (dst.y-src.y) * (dst.y-src.y) + (dst.z-src.z) * (dst.z-src.z));
return result;
}
}
}

@ -49,6 +49,12 @@ namespace AnimeSoftware.Objects
{
get
{
string s = "";
foreach(byte b in pInfo.m_szPlayerName)
{
s += b.ToString("X") + " ";
}
Console.WriteLine(s);
return Encoding.UTF8.GetString(pInfo.m_szPlayerName);
}
}

@ -176,7 +176,45 @@ namespace AnimeSoftware.Objects
}
}
public static float SideSpeed
{
set
{
Memory.WriteBytes(Memory.Read<int>(Memory.Client + ScannedOffsets.cl_sidespeed), BitConverter.GetBytes(BitConverter.ToInt32(BitConverter.GetBytes(value), 0) ^ ScannedOffsets.xor_cl_sidespeed));
}
}
public static float ForwardSpeed
{
set
{
Memory.WriteBytes(Memory.Read<int>(Memory.Client + ScannedOffsets.cl_forwardspeed), BitConverter.GetBytes(BitConverter.ToInt32(BitConverter.GetBytes(value), 0) ^ ScannedOffsets.xor_cl_forwardspeed));
}
}
public static float viewmodel_x
{
set
{
Memory.WriteBytes(Memory.Read<int>(Memory.Client + ScannedOffsets.viewmodel_x), BitConverter.GetBytes(BitConverter.ToInt32(BitConverter.GetBytes(value), 0) ^ ScannedOffsets.xor_viewmodel_x));
}
}
public static float viewmodel_y
{
set
{
Memory.WriteBytes(Memory.Read<int>(Memory.Client + ScannedOffsets.viewmodel_y), BitConverter.GetBytes(BitConverter.ToInt32(BitConverter.GetBytes(value), 0) ^ ScannedOffsets.xor_viewmodel_y));
}
}
public static float viewmodel_z
{
set
{
Memory.WriteBytes(Memory.Read<int>(Memory.Client + ScannedOffsets.viewmodel_z), BitConverter.GetBytes(BitConverter.ToInt32(BitConverter.GetBytes(value), 0) ^ ScannedOffsets.xor_viewmodel_z));
}
}
public static int CrossHair
{
get

@ -1,6 +1,6 @@
using System;
// 2020-05-12 01:35:30.947642700 UTC
// 2020-05-29 19:02:31.995972100 UTC
namespace hazedumper
{
@ -100,7 +100,7 @@ namespace hazedumper
public const Int32 clientstate_last_outgoing_command = 0x4D24;
public const Int32 clientstate_net_channel = 0x9C;
public const Int32 convar_name_hash_table = 0x2F0F8;
public const Int32 dwClientState = 0x589DCC;
public const Int32 dwClientState = 0x589DD4;
public const Int32 dwClientState_GetLocalPlayer = 0x180;
public const Int32 dwClientState_IsHLTV = 0x4D40;
public const Int32 dwClientState_Map = 0x28C;
@ -109,47 +109,47 @@ namespace hazedumper
public const Int32 dwClientState_PlayerInfo = 0x52B8;
public const Int32 dwClientState_State = 0x108;
public const Int32 dwClientState_ViewAngles = 0x4D88;
public const Int32 dwEntityList = 0x4D43AC4;
public const Int32 dwForceAttack = 0x3175068;
public const Int32 dwForceAttack2 = 0x3175074;
public const Int32 dwForceBackward = 0x31750A4;
public const Int32 dwForceForward = 0x3175080;
public const Int32 dwForceJump = 0x51ED760;
public const Int32 dwForceLeft = 0x3175098;
public const Int32 dwForceRight = 0x31750BC;
public const Int32 dwEntityList = 0x4D4B134;
public const Int32 dwForceAttack = 0x317C71C;
public const Int32 dwForceAttack2 = 0x317C728;
public const Int32 dwForceBackward = 0x317C6D4;
public const Int32 dwForceForward = 0x317C740;
public const Int32 dwForceJump = 0x51F4DB0;
public const Int32 dwForceLeft = 0x317C6C8;
public const Int32 dwForceRight = 0x317C6EC;
public const Int32 dwGameDir = 0x6286F8;
public const Int32 dwGameRulesProxy = 0x5260A3C;
public const Int32 dwGetAllClasses = 0xD55F2C;
public const Int32 dwGlobalVars = 0x589AD0;
public const Int32 dwGlowObjectManager = 0x528B8A0;
public const Int32 dwInput = 0x5195070;
public const Int32 dwInterfaceLinkList = 0x8FA4A4;
public const Int32 dwLocalPlayer = 0xD2FB94;
public const Int32 dwMouseEnable = 0xD35738;
public const Int32 dwMouseEnablePtr = 0xD35708;
public const Int32 dwPlayerResource = 0x317340C;
public const Int32 dwRadarBase = 0x5178834;
public const Int32 dwSensitivity = 0xD355D4;
public const Int32 dwSensitivityPtr = 0xD355A8;
public const Int32 dwSetClanTag = 0x89ED0;
public const Int32 dwViewMatrix = 0x4D35404;
public const Int32 dwWeaponTable = 0x5195B34;
public const Int32 dwGameRulesProxy = 0x526809C;
public const Int32 dwGetAllClasses = 0xD5CF8C;
public const Int32 dwGlobalVars = 0x589AD8;
public const Int32 dwGlowObjectManager = 0x5292F18;
public const Int32 dwInput = 0x519C6C8;
public const Int32 dwInterfaceLinkList = 0x8FFB74;
public const Int32 dwLocalPlayer = 0xD36B94;
public const Int32 dwMouseEnable = 0xD3C738;
public const Int32 dwMouseEnablePtr = 0xD3C708;
public const Int32 dwPlayerResource = 0x317AA6C;
public const Int32 dwRadarBase = 0x517FE8C;
public const Int32 dwSensitivity = 0xD3C5D4;
public const Int32 dwSensitivityPtr = 0xD3C5A8;
public const Int32 dwSetClanTag = 0x89F00;
public const Int32 dwViewMatrix = 0x4D3CA64;
public const Int32 dwWeaponTable = 0x519D18C;
public const Int32 dwWeaponTableIndex = 0x325C;
public const Int32 dwYawPtr = 0xD35398;
public const Int32 dwZoomSensitivityRatioPtr = 0xD3A5E0;
public const Int32 dwbSendPackets = 0xD3ECA;
public const Int32 dwYawPtr = 0xD3C398;
public const Int32 dwZoomSensitivityRatioPtr = 0xD415E0;
public const Int32 dwbSendPackets = 0xD3EFA;
public const Int32 dwppDirect3DDevice9 = 0xA7030;
public const Int32 find_hud_element = 0x3059C3F0;
public const Int32 force_update_spectator_glow = 0x3991F2;
public const Int32 find_hud_element = 0x29CCFD40;
public const Int32 force_update_spectator_glow = 0x39CB92;
public const Int32 interface_engine_cvar = 0x3E9EC;
public const Int32 is_c4_owner = 0x3A59C0;
public const Int32 is_c4_owner = 0x3A93A0;
public const Int32 m_bDormant = 0xED;
public const Int32 m_flSpawnTime = 0xA360;
public const Int32 m_pStudioHdr = 0x294C;
public const Int32 m_pitchClassPtr = 0x5178AD8;
public const Int32 m_yawClassPtr = 0xD35398;
public const Int32 model_ambient_min = 0x58CE44;
public const Int32 set_abs_angles = 0x1CF1D0;
public const Int32 set_abs_origin = 0x1CF010;
public const Int32 m_pitchClassPtr = 0x5180130;
public const Int32 m_yawClassPtr = 0xD3C398;
public const Int32 model_ambient_min = 0x58CE4C;
public const Int32 set_abs_angles = 0x1D2B60;
public const Int32 set_abs_origin = 0x1D29A0;
}
} // namespace hazedumper
} // namespace hazedumper

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
@ -18,17 +19,44 @@ namespace AnimeSoftware
public static int cl_sidespeed;
public static int cl_forwardspeed;
public static int viewmodel_x;
public static int viewmodel_y;
public static int viewmodel_z;
public static void Init()
{
ClientCMD = Memory.FindPattern(new byte[] { 0x55, 0x8B, 0xEC, 0x8B, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x81, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x75, 0x0C, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x05, 0x8B, 0x01, 0xFF, 0x50, 0x34, 0x50, 0xA1 }, "xxxxx????xx????xxx????x????xxxxxxxxx", Memory.Engine, Memory.EngineSize);
cl_sidespeed = Memory.FindPattern(new byte[] { 0xF3, 0x0F, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x11, 0x44, 0x24, 0x00, 0x81, 0x74, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD9, 0x44, 0x24, 0x14, 0xEB, 0x07 }, "xxxx????xxxxx?xxx?????xxxxxx", Memory.Client, Memory.ClientSize) + 0x4;
cl_forwardspeed = Memory.FindPattern(new byte[] { 0xF3, 0x0F, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x11, 0x44, 0x24, 0x00, 0x81, 0x74, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x37 }, "xxxx????xxxxx?xxx?????xx", Memory.Client, Memory.ClientSize) + 0x4;
viewmodel_x = Memory.FindPattern(new byte[] { 0xF3, 0x0F, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x11, 0x45, 0x00, 0x81, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x0A, 0x8B, 0x01, 0x8B, 0x40, 0x30, 0xFF, 0xD0, 0xD9, 0x5D, 0x08, 0xF3, 0x0F, 0x10, 0x45, 0x00, 0xB9 }, "xxxx????xxxx?xx?????xxxxxxxxxxxxxxxx?x", Memory.Client, Memory.ClientSize) + 0x4;
viewmodel_y = Memory.FindPattern(new byte[] { 0xF3, 0x0F, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x11, 0x45, 0x00, 0x8B, 0x45, 0x08, 0x35, 0x00, 0x00, 0x00, 0x00, 0x89, 0x45, 0x0C, 0xEB, 0x0A }, "xxxx????xxxx?xxxx????xxxxx", Memory.Client, Memory.ClientSize) + 0x4;
viewmodel_z = Memory.FindPattern(new byte[] { 0xF3, 0x0F, 0x10, 0x05, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x0F, 0x11, 0x45, 0x00, 0x8B, 0x45, 0x08, 0x35, 0x00, 0x00, 0x00, 0x00, 0x89, 0x45, 0xFC, 0xEB, 0x0A }, "xxxx????xxxx?xxxx????xxxxx", Memory.Client, Memory.ClientSize) + 0x4;
dwUse = Memory.FindPattern(new byte[] { 0x8B, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x8B, 0xF2, 0x8B, 0xC1, 0x83, 0xCE, 0x20 }, "xx????xxxxxxx", Memory.Client, Memory.ClientSize) + 2;
InitXorWithValue();
}
public static uint xor_cl_sidespeed;
public static uint xor_cl_forwardspeed;
public static uint xor_viewmodel_x;
public static uint xor_viewmodel_y;
public static uint xor_viewmodel_z;
private static void InitXorWithValue()
{
xor_cl_sidespeed = CalcXorWithValue(cl_sidespeed);
xor_cl_forwardspeed = CalcXorWithValue(cl_forwardspeed);
xor_viewmodel_x = CalcXorWithValue(viewmodel_x);
xor_viewmodel_y = CalcXorWithValue(viewmodel_y);
xor_viewmodel_z = CalcXorWithValue(viewmodel_z);
}
private static uint CalcXorWithValue(int cvarOffset)
{
return BitConverter.ToUInt32(BitConverter.GetBytes(Memory.Read<int>(Memory.Client + cvarOffset) - 0x2C), 0);
}
}
}

@ -1,22 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AnimeSoftware
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new AnimeForm());
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AnimeSoftware
{
static class Program
{
/// <summary>
/// Главная точка входа для приложения.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new AnimeForm());
}
}
}

@ -1,36 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Общие сведения об этой сборке предоставляются следующим набором
// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
// связанных со сборкой.
[assembly: AssemblyTitle("AnimeSoftware")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AnimeSoftware")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// COM, следует установить атрибут ComVisible в TRUE для этого типа.
[assembly: ComVisible(false)]
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("617f8f5f-8917-4843-aab3-66da09eb7db7")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Редакция
//
// Можно задать все значения или принять номера сборки и редакции по умолчанию
// используя "*", как показано ниже:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Общие сведения об этой сборке предоставляются следующим набором
// набора атрибутов. Измените значения этих атрибутов для изменения сведений,
// связанных со сборкой.
[assembly: AssemblyTitle("AnimeSoftware")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AnimeSoftware")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
// COM, следует установить атрибут ComVisible в TRUE для этого типа.
[assembly: ComVisible(false)]
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
[assembly: Guid("617f8f5f-8917-4843-aab3-66da09eb7db7")]
// Сведения о версии сборки состоят из указанных ниже четырех значений:
//
// Основной номер версии
// Дополнительный номер версии
// Номер сборки
// Редакция
//
// Можно задать все значения или принять номера сборки и редакции по умолчанию
// используя "*", как показано ниже:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

@ -1,62 +1,62 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AnimeSoftware.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
internal sealed partial class Hotkey : global::System.Configuration.ApplicationSettingsBase {
private static Hotkey defaultInstance = ((Hotkey)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Hotkey())));
public static Hotkey Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("18")]
public int blockbotKey {
get {
return ((int)(this["blockbotKey"]));
}
set {
this["blockbotKey"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("20")]
public int doorspammerKey {
get {
return ((int)(this["doorspammerKey"]));
}
set {
this["doorspammerKey"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("90")]
public int runboostbotKey {
get {
return ((int)(this["runboostbotKey"]));
}
set {
this["runboostbotKey"] = value;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AnimeSoftware.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
internal sealed partial class Hotkey : global::System.Configuration.ApplicationSettingsBase {
private static Hotkey defaultInstance = ((Hotkey)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Hotkey())));
public static Hotkey Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("18")]
public int blockbotKey {
get {
return ((int)(this["blockbotKey"]));
}
set {
this["blockbotKey"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("20")]
public int doorspammerKey {
get {
return ((int)(this["doorspammerKey"]));
}
set {
this["doorspammerKey"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("90")]
public int runboostbotKey {
get {
return ((int)(this["runboostbotKey"]));
}
set {
this["runboostbotKey"] = value;
}
}
}
}

@ -1,15 +1,15 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AnimeSoftware.Properties" GeneratedClassName="Hotkey">
<Profiles />
<Settings>
<Setting Name="blockbotKey" Type="System.Int32" Scope="User">
<Value Profile="(Default)">18</Value>
</Setting>
<Setting Name="doorspammerKey" Type="System.Int32" Scope="User">
<Value Profile="(Default)">20</Value>
</Setting>
<Setting Name="runboostbotKey" Type="System.Int32" Scope="User">
<Value Profile="(Default)">90</Value>
</Setting>
</Settings>
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AnimeSoftware.Properties" GeneratedClassName="Hotkey">
<Profiles />
<Settings>
<Setting Name="blockbotKey" Type="System.Int32" Scope="User">
<Value Profile="(Default)">18</Value>
</Setting>
<Setting Name="doorspammerKey" Type="System.Int32" Scope="User">
<Value Profile="(Default)">20</Value>
</Setting>
<Setting Name="runboostbotKey" Type="System.Int32" Scope="User">
<Value Profile="(Default)">90</Value>
</Setting>
</Settings>
</SettingsFile>

@ -1,71 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программным средством.
// Версия среды выполнения: 4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
// код создан повторно.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AnimeSoftware.Properties
{
/// <summary>
/// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
/// </summary>
// Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
// класс с помощью таких средств, как ResGen или Visual Studio.
// Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
// с параметром /str или заново постройте свой VS-проект.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AnimeSoftware.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Переопределяет свойство CurrentUICulture текущего потока для всех
/// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программным средством.
// Версия среды выполнения: 4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если
// код создан повторно.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AnimeSoftware.Properties
{
/// <summary>
/// Класс ресурсов со строгим типом для поиска локализованных строк и пр.
/// </summary>
// Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder
// класс с помощью таких средств, как ResGen или Visual Studio.
// Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen
// с параметром /str или заново постройте свой VS-проект.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Возврат кэшированного экземпляра ResourceManager, используемого этим классом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AnimeSoftware.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Переопределяет свойство CurrentUICulture текущего потока для всех
/// подстановки ресурсов с помощью этого класса ресурсов со строгим типом.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

@ -1,117 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
Loading…
Cancel
Save