HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 22.05.2016, 00:09
Vasiliy77
Новичок
Регистрация: 21.06.2015
Сообщений: 22
С нами: 5733802

Репутация: 53
По умолчанию

Какие оффсеты нужны для создания диалога на 0.3.7? Юзаю код ниже, в результате диалог не отображается.

Цитата:
Сообщение от Спойлер  


C++:





Код:
#define SAMP_DIALOG_SHOW 0x80320
//
#define SAMP_DIALOG_INFO_OFFSET 0x2129F8
//
showSampDialog
(
int
send
,
int
dialogID
,
int
typedialog
,
char
*
caption
,
char
*
text
,
char
*
button1
,
char
*
button2
)
{
uint32_t
samp_dll
=
(
uint32_t
)
GetModuleHandle
(
"samp.dll"
)
;
g_dwSAMP_Addr
=
(
uint32_t
)
samp_dll
;
uint32_t
func
=
g_dwSAMP_Addr
+
SAMP_DIALOG_SHOW
;
uint32_t
data
=
g_dwSAMP_Addr
+
SAMP_DIALOG_INFO_OFFSET
;
__asm mov eax
,
dword ptr
[
data
]
__asm mov ecx
,
dword ptr
[
eax
]
//mov to offset
__asm push send
//0 - No send response, 1 - Send response
__asm push button2
    __asm push button1
    __asm push text
    __asm push caption
    __asm push typedialog
    __asm push dialogID
    __asm call func
return
;
}


Думаю нужны другие адреса в #define, может знаете какие?

И 2 вопрос, как редактировать пункты в главном меню на Esc? Убрать какой-то например.
 
Ответить с цитированием

  #2  
Старый 22.05.2016, 14:14
Skadi
Познающий
Регистрация: 03.11.2014
Сообщений: 43
С нами: 6065807

Репутация: 0
По умолчанию

SAMP_DIALOG_SHOW 0x6B9C0

SAMP_DIALOG_INFO_OFFSET 0x21A0B8
 
Ответить с цитированием

  #3  
Старый 24.05.2016, 17:06
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Как проверить что нужная клавиша была нажата, а не зажата.
 
Ответить с цитированием

  #4  
Старый 24.05.2016, 17:25
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от AWRage  

Как проверить что нужная клавиша была нажата, а не зажата.
WM_KEYDOWN
 
Ответить с цитированием

  #5  
Старый 24.05.2016, 22:33
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Как я понял, вместо _beginthreadex можно засунуть вызов своей функции в case: DLL_THREAD_ATTACH? На сколько это будет правильно и когда вообще вызывается функция DllMain и параметром DLL_THREAD_ATTACH?
 
Ответить с цитированием

  #6  
Старый 24.05.2016, 22:58
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от AWRage  

Как я понял, вместо _beginthreadex можно засунуть вызов своей функции в case: DLL_THREAD_ATTACH? На сколько это будет правильно и когда вообще вызывается функция DllMain и параметром DLL_THREAD_ATTACH?
DLL_PROCESS_ATTACH вызывается при подключение библиотеки к процессу

DLL_THREAD_ATTACH вызывается когда программа опрашивает подключенные библиотеки. Опрашивает не сама, а система, по этому вызываются даже приинжекченые библиотеки

DLL_THREAD_DETACH аналогично предыдущему, только вызывается позже. Может быть полезно для каких-либо специфичных задач, в которых надо что-то изменить на выходе из библиотеки

DLL_PROCESS_DETACH вызывается при выгрузке библиотеки из памяти процесса

Есть еще WinAPI функция, которая отключает опрос библиотеки, я ее не помню, но можно найти в говно-примерах читов, где сам чит работает в отдельном потоке
 
Ответить с цитированием

  #7  
Старый 25.05.2016, 21:43
AWRage
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами: 5706781

Репутация: 43


По умолчанию

Как на счет delete this? Это плохой тон? Одни пишут что это плохо, другие что это вполне нормально.

C++:





Код:
class
myclass
{
public
:
void
Initialize
(
)
;
void
Release
(
)
{
delete
this
;
}
}
// ...
myclass
*
class
=
new
myclass
(
)
;
// ...
class
->
Initialize
(
)
;
// ...
class
->
Release
(
)
;
 
Ответить с цитированием

  #8  
Старый 25.05.2016, 22:12
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от AWRage  

Как на счет delete this? Это плохой тон? Одни пишут что это плохо, другие что это вполне нормально.

C++:





Код:
class
myclass
{
public
:
void
Initialize
(
)
;
void
Release
(
)
{
delete
this
;
}
}
// ...
myclass
*
class
=
new
myclass
(
)
;
// ...
class
->
Initialize
(
)
;
// ...
class
->
Release
(
)
;

а нахуя? Есть же деструктор class->~myclass()
 
Ответить с цитированием

  #9  
Старый 25.05.2016, 22:14
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Цитата:
Сообщение от SR_team  

а нахуя? Есть же деструктор class->~myclass()
Который вызывается при делете. А так же можно вместо инициализации юзать конструктор
 
Ответить с цитированием

  #10  
Старый 27.05.2016, 15:09
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

Не получается получить адрес функции. Вместо неё получается адрес call'a который её вызывает.

C++:





[CODE]
std
::
cout

 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.