Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Для Юных Создателей Меню\Читов.

-

Разработка ПО для Point Blank

- Бюро разработчиков Zhyk.Ru: создание чит-программ и прочего ПО для Point Blank

Ответ
 
Опции темы
Старый 28.06.2013, 17:52   #1
 Разведчик
Аватар для Devil™
 
Devil™ скоро будет известенDevil™ скоро будет известенDevil™ скоро будет известен
Регистрация: 17.05.2013
Сообщений: 13
Популярность: 293
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Для Юных Создателей Меню\Читов.

Всем привет,с вами Devil :3
Сегодня я хочу выложить и объяснить код для вашего исходника.
На данный момент я разберу только код обычной кнопки.
Так же,вы можете данный материал использовать для чек кнопки.(Check Button)
И так,начёнм.

1.Ознакомление с кодом из паблик исходников.

В "паблик" исходниках,вам встретиться давольно ужасный\непонятный\хардкорный код,который вы не сразу-то и поймёте,да и разбираться в нём безполезно ,ибо ничего умного там нет.
Код который вам попадёться ,выглядит так :
Код:
Func_Button(int x ,int y , int w , int h ,int &Var ,char *Button_Text ,LPDIRECT3DDEVICE9 pDevice)
{
int y_ = (y) + (h/2)-7;
int x_ = x + 3+20;
int y__ = ((h) - (h/1));
int x__ = (x + w/1);
if(IsInBox(x,y,w,h))
{
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
if(Var == 1 && Var !=0)
{
Var = 0;
}
else if(Var == 0)
{
if(Var == 0)
{
Var = 1;
}
}
}
}
if(Var == 0)
{
DrawBox(x_-26,y_,268,18, GRE2,  pDevice);
//DrawBox(x_-27,y_+9,113,8.7,  ButtonOff2,  pDevice);
DrawBorder(x-3,y+2,268,h-2,BLACK, pDevice);
font->DrawText(x_+30,y_,TextOn,Button_Text,DT_CENTER|DT_SHADOW);
}
if(Var == 1)
{
DrawBox(x_-27,y_,113,9, ButtonOn,  pDevice);
DrawBox(x_-27,y_+9,113,8.7, ButtonOn2,  pDevice);
DrawBorder(x-5,y+2,113,h-2,RED2, pDevice);
font->DrawText(x_+30,y_,TextOn,Button_Text,DT_CENTER|DT_SHADOW);
}
}
Всё это очень грузит цп,и вообще нафиг никому не нужно.

Поэтому перейдём ко 2 части нашей темы.


2.Делаем "грамотный" код.


Сейчас мы будем делать "Грамотный код",который более-менее читается.
Для начала обьявим "Тело",для нашего кода.
Код:
void Кнопка(int x,int y,int w,int h,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{

}
Мы сделали "тело" , для кода,и теперь давайте запишем туда наводку муши на кнопку.
Код:
void Кнопка(int x,int y,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{
if(IsInBox(x,y,w,h))
{

}
}
Так,это мы сделали ,теперь перейдём к коду :" Нажатие левой кнопки мыши",для этого мы запишем внутри "IsInBox" вот это :

Код:
if(GetAsyncKeyState(VK_LBUTTON)&1)
{

}
Целиком всё будет выглядить так :
Код:
void Кнопка(int x,int y,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{
if(IsInBox(x,y,w,h))
{
if(GetAsyncKeyState(VK_LBUTTON)&1)
{

}
}
}
После мы в это место
Код:
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
ТУТ
}
Пишем вот это :
Код:
Var=!Var;
Дальше,мы объявляем ДаблВордом(DWORD),цвета которые будут использоваться ,да бы сократить код,и по 100 раз не писать новый бокс и т.д.
Перед
Код:
if(IsInBox(x,y,w,h))
Пишем это :
Код:
DWORD Col1;
DWORD Col2;
Код будет выглядить так :
Код:
void Кнопка(int x,int y,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{
DWORD Col1;
DWORD Col2;

if(IsInBox(x,y,w,h))
{
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
Var=!Var;
}
}
}
Дальше,мы рисуем бокс,и текст(Основу кнопки,и текст ,который будет в названии кнопки).
Код:
void Кнопка(int x,int y,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{
DWORD Col1;
DWORD Col2;

if(IsInBox(x,y,w,h))
{
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
Var=!Var;
}
}
Text(Text,,y,Col2,DT_CENTER|DT_NOCLIP);
DrawBox(x,y,w,h,Col1,pDevice);
}
И теперь используем DWORD'ы,для манипуляции над цветом того или иного состояния кнопки.
Код:
void Кнопка(int x,int y,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{
DWORD Col1 = RED;
DWORD Col2 = WHITE;
if(IsInBox(x,y,w,h))
{
Col1 = BLACK;
Col2 = DEEPSKYBLUE;
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
Var=!Var;
}
}
Text(Text,,y,Col2,DT_CENTER|DT_NOCLIP);
DrawBox(x,y,w,h,Col1,pDevice);
}
В этом коде,я присвоил значиние к DWORD ,цвета ,которым будет у нас кнопка выключенная.
И потом,просто изменял цвета,когда кнопка находиться в том или ином состоянии.

Ещё надо дописать что у нас будет,когда кнопка будет включена!
Код:
void Кнопка(int x,int y,bool &Var,char *Text,LPDIRECT3DDEVICE9 pDevice)
{
DWORD Col1 = RED;
DWORD Col2 = WHITE;
if(IsInBox(x,y,w,h))
{
Col1 = BLACK;
Col2 = DEEPSKYBLUE;
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
Var=!Var;
}
}
if (Var==1)
{
Col1=BLACK;
Col2= BLUE;
}
Text(Text,,y,Col2,DT_CENTER|DT_NOCLIP);
DrawBox(x,y,w,h,Col1,pDevice);
}
Вроде бы всё,теперь используем кнопку так :
Код:
Кнопка(10,10,Test,"Название", pDevice);
Не забываем объявить переменную :
Код:
bool Test;
Всё,с вами был Devil , прошу помидорами не кидаться,тему писал для новичков в сфере Создания меню\читов ......
За некоторые ошибки прошу так же не ругаться,писал быстро,и не проверял(текст много).
Всем пока

Если надо,то напишу пояснения к коду:с

Последний раз редактировалось Devil™; 28.06.2013 в 18:12. Причина: Добавлено сообщение
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
[Teest] (28.06.2013), Я-artemfcsh (28.06.2013)
Старый 28.06.2013, 19:25   #2
 Разведчик
Аватар для qwertyujhgb
 
qwertyujhgb на правильном пути
Регистрация: 21.04.2013
Сообщений: 9
Популярность: 82
Сказал(а) спасибо: 1
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Извини меня,опытный менюшкостроитель,но чем первый код грузит цп,в отличии от второго?
По моему они ни чем существенно не отличаются.
ну кроме того,что кто-то в первом коде написал
else if(var==0)
{
if(var==0)
{

Последний раз редактировалось qwertyujhgb; 28.06.2013 в 19:28.
  Ответить с цитированием
Старый 28.06.2013, 19:49   #3
 Разведчик
Аватар для Devil™
 
Devil™ скоро будет известенDevil™ скоро будет известенDevil™ скоро будет известен
Регистрация: 17.05.2013
Сообщений: 13
Популярность: 293
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от qwertyujhgbПосмотреть сообщение
Извини меня,опытный менюшкостроитель,но чем первый код грузит цп,в отличии от второго?
По моему они ни чем существенно не отличаются.
ну кроме того,что кто-то в первом коде написал
else if(var==0)
{
if(var==0)
{

Не это написал,а это
Код:
if(Var == 1 && Var !=0)
{
Var = 0;
}
else if(Var == 0)
{
if(Var == 0)
{
Var = 1;
}
}
}
}
И я не опытный,просто помочь хочу.
  Ответить с цитированием
Старый 28.06.2013, 22:15   #4
 Разведчик
Аватар для [Teest]
 
[Teest] на правильном пути[Teest] на правильном пути
Регистрация: 04.10.2012
Сообщений: 11
Популярность: 122
Сказал(а) спасибо: 4
Поблагодарили 13 раз(а) в 10 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Зачем писать
Цитата:
void Кнопка(.....)

Ведь на русском писать это не есть очень хорошо.
  Ответить с цитированием
Старый 28.06.2013, 22:21   #5
 Разведчик
Аватар для Devil™
 
Devil™ скоро будет известенDevil™ скоро будет известенDevil™ скоро будет известен
Регистрация: 17.05.2013
Сообщений: 13
Популярность: 293
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от [Teest]Посмотреть сообщение
Зачем писать

Ведь на русском писать это не есть очень хорошо.

Для примера написал


Добавлено через 5 минут
Ну вот,писал,старался,а в ответ толпы коментов с негативом:с

Последний раз редактировалось Devil™; 28.06.2013 в 22:26. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 29.06.2013, 00:56   #6
 Разведчик
Аватар для iamzero
 
iamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небеiamzero лучик света в грозовом небе
Регистрация: 04.05.2012
Сообщений: 18
Популярность: 805
Сказал(а) спасибо: 24
Поблагодарили 25 раз(а) в 18 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от Devil™Посмотреть сообщение
Код:
if(IsInBox(x,y,w,h))
{
if(GetAsyncKeyState(VK_LBUTTON)&1)
{
Var=!Var;
}
}
}

зачем двойной if? не ужеле в с++ нельзя использовать &&?

мб я не прав но
Код:
if(IsInBox(x,y,w,h) && (GetAsyncKeyState(VK_LBUTTON)&1))
{Var!=Var}

PS если не прав и в СПП так нельзя, звиняйте...
  Ответить с цитированием
Старый 29.06.2013, 07:45   #7
Super Moderator
 Маршал
Аватар для Тигрь
 
Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от iamzeroПосмотреть сообщение
зачем двойной if? не ужеле в с++ нельзя использовать &&?

мб я не прав но
Код:
if(IsInBox(x,y,w,h) && (GetAsyncKeyState(VK_LBUTTON)&1))
{Var!=Var}

PS если не прав и в СПП так нельзя, звиняйте...

Естественно можно, но он этого не знает. Книжек соответственно по с++ он не читал, а только дергает малопонятный ему код из чужих исходников, не зная принципов того же сплайсинга который используется в перехвате D3D, да что там сплайсинг, даже массивы для него проблема. И мало понимает о том про что он пытается объяснить, судя из первого поста. Ну и плюс оформление кода в одну линию без отступов это просто жесть.
________________
Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA
Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС.
Все мои читы/программы/статьи тут: http://zhyk.ru/forum/showpost.php?p=38501&postcount=21
  Ответить с цитированием
Старый 29.06.2013, 09:15   #8
 Пехотинец
Аватар для Annedroid
 
Annedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нации
Регистрация: 11.01.2012
Сообщений: 84
Популярность: 3472
Сказал(а) спасибо: 97
Поблагодарили 182 раз(а) в 97 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от iamzeroПосмотреть сообщение
if(IsInBox(x,y,w,h) && (GetAsyncKeyState(VK_LBUTTON)&1))

Вот как меня раздражает этот метод...
Неужели никто не хочет написать централизованный класс мыши, чтобы все было гораздо лучше?
Да и вот GetAsyncKeyState проверяет в таком условии только одно нажатие, а если накрутка или прокрутка, то как вам быть?
  Ответить с цитированием
Старый 29.06.2013, 10:21   #9
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от Devil™Посмотреть сообщение
if(IsInBox(x,y,w,h))

А это что такое?
У меня необъявленный индентификатор, как быть?
Если пишеш, пиши полностью.
  Ответить с цитированием
Старый 29.06.2013, 11:16   #10
 Разведчик
Аватар для Devil™
 
Devil™ скоро будет известенDevil™ скоро будет известенDevil™ скоро будет известен
Регистрация: 17.05.2013
Сообщений: 13
Популярность: 293
Сказал(а) спасибо: 5
Поблагодарили 8 раз(а) в 6 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Так братцы кролики,вы давайте потише с комментариями,и зачем надо лезть в любую затычку,чтобы сунуть свой код?Смысл?Думаете исправят?Нет.....
Комменты без смысла.
  Ответить с цитированием
Старый 29.06.2013, 11:50   #11
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от Devil™Посмотреть сообщение
Так братцы кролики,вы давайте потише с комментариями,и зачем надо лезть в любую затычку,чтобы сунуть свой код?Смысл?Думаете исправят?Нет.....
Комменты без смысла.

Что-то ты какойто не понятный.

Для того, у кого этого нету)
Код:
BOOL  IsInBox(int x,int y,int w,int h)
{
	POINT MousePosition; 
	GetCursorPos(&MousePosition); 
	ScreenToClient(GetForegroundWindow(),&MousePosition);
	return(MousePosition.x >= x && MousePosition.x <= x + w && MousePosition.y >= y && MousePosition.y <= y + h);
}
  Ответить с цитированием
Пользователь сказал cпасибо:
Я-artemfcsh (29.06.2013)
Старый 29.06.2013, 12:49   #12
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Devil™, У каждого, у кого есть комп, есть мышка.
Ты начал разъяснять функцию, так будь добр, довести дело до конца.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Тигрь (29.06.2013), Я-artemfcsh (29.06.2013)
Старый 02.07.2013, 23:48   #13
Заблокирован
 Старший сержант
Аватар для BLACK_DEAD
 
BLACK_DEAD излучает ауруBLACK_DEAD излучает ауруBLACK_DEAD излучает ауруBLACK_DEAD излучает ауруBLACK_DEAD излучает ауруBLACK_DEAD излучает ауру
Регистрация: 09.03.2012
Сообщений: 172
Популярность: 607
Сказал(а) спасибо: 368
Поблагодарили 112 раз(а) в 67 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от AnnedroidПосмотреть сообщение
Да и вот GetAsyncKeyState проверяет в таком условии только одно нажатие, а если накрутка или прокрутка, то как вам быть?

наверно так

Код:
//=============================================================================================================
void Button_PM(char *Button_Text,int &Var,char **typ,int max,int x,int y,LPDIRECT3DDEVICE9 pDevice)//Класс Кнопки
{
//======================================================
if(IsInBox(x,y,125,16)){//Координаты наведения и нажатия кнопки
//======================================================
DrawBox(x,y,125,16,BLACK2,pDevice);//Наведение
//======================================================
if(GetAsyncKeyState(VK_RBUTTON)){
if(Var!=0){Var--;Sleep(100);}}
if(GetAsyncKeyState(VK_LBUTTON)){
if(Var>=0 && Var<max){Var++;Sleep(100);}}}
DrawBox(x,y,125,16,DARK20,pDevice);
DrawBorder(x,y,125,16,DARK20,pDevice);
font->DrawText(x+63,y+1,WHITE,Button_Text,DT_CENTER|DT_SHADOW);
font->DrawText(x+99,y+1,WHITE,typ[Var],DT_SHADOW);
}
Цитата:
Сообщение от Devil™Посмотреть сообщение
bool Test;

почему булл?булл обычно равен true или false, а у тебя тут включению.Или я не догоняю с++

Последний раз редактировалось BLACK_DEAD; 03.07.2013 в 09:49.
  Ответить с цитированием
Старый 03.07.2013, 11:02   #14
 Пехотинец
Аватар для Annedroid
 
Annedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нацииAnnedroid гордость нации
Регистрация: 11.01.2012
Сообщений: 84
Популярность: 3472
Сказал(а) спасибо: 97
Поблагодарили 182 раз(а) в 97 сообщениях
 
По умолчанию Re: Для Юных Создателей Меню\Читов.

Цитата:
Сообщение от BLACK_DEADПосмотреть сообщение
Sleep(100)

А вот это не выход.
Лучше используй GetTickCount( ), будет подобие таймера.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
BLACK_DEAD (03.07.2013), Я-artemfcsh (03.07.2013)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] NetLimiter 3 Pro - урок для юных читеров Anderson931 R2 Online 66 21.07.2014 13:25
Ищу создателей читов. Kozanostrik Общение и обсуждение Warface Online 1 10.01.2013 07:12
[Статья] гайд для юных снайперов/кемперов Grogololo Общение и обсуждение, архив Point Blank 14 20.12.2011 16:38

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 06:10.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net