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

  #3811  
Старый 10.07.2019, 23:02
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

C++:





Код:
bool
window
=
false
;
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
{
ImGui_ImplDX9_NewFrame
(
)
;
ImGui_ImplWin32_NewFrame
(
)
;
ImGui
::
NewFrame
(
)
;
if
(
window
)
{
ImGui
::
Begin
(
u8
""
,
&
activew
,
ImVec2
(
305
,
160
)
,
0.8f
)
;
{
}
ImGui
::
End
(
)
;
}
ImGui
::
EndFrame
(
)
;
ImGui
::
Render
(
)
;
ImGui_ImplDX9_RenderDrawData
(
ImGui
::
GetDrawData
(
)
)
;
SF
->
getRender
(
)
->
EndRender
(
)
;
}


У меня вот так всё норм работает
Я чес хз что было не так, вставил твой код все заработало, спс
 
Ответить с цитированием

  #3812  
Старый 10.07.2019, 23:12
tlwsn
Постоянный
Регистрация: 24.11.2016
Сообщений: 537
С нами: 4982429

Репутация: 78


По умолчанию

как это из луа превратить в сф







Lua:





Код:
sampIsLocalPlayerSpawned
(
)
 
Ответить с цитированием

  #3813  
Старый 10.07.2019, 23:22
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

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

Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:





Код:
typedef
void
(
__stdcall
*
_PrintChatMsg
)
(
DWORD chat_info
,
wchar_t
*
message
)
;
void
mainThread
(
PVOID
)
{
MessageBoxW
(
NULL
,
L
"WAIT"
,
L
"WAIT"
,
MB_OK
)
;
DWORD dwSamp
=
(
DWORD
)
GetModuleHandle
(
L
"samp.dll"
)
;
_PrintChatMsg print_char_msg
=
(
_PrintChatMsg
)
(
dwSamp
+
0x64520
)
;
DWORD chat_info
=
(
DWORD
)
(
dwSamp
+
0x21A0E4
)
;
print_char_msg
(
chat_info
,
(
wchar_t
*
)
L
"Hello world!"
)
;
}
 
Ответить с цитированием

  #3814  
Старый 11.07.2019, 00:13
index
Новичок
Регистрация: 18.10.2015
Сообщений: 6
С нами: 5563739

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

Цитата:
Сообщение от Vadim.dll  

Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:





Код:
typedef
void
(
__stdcall
*
_PrintChatMsg
)
(
DWORD chat_info
,
wchar_t
*
message
)
;
void
mainThread
(
PVOID
)
{
MessageBoxW
(
NULL
,
L
"WAIT"
,
L
"WAIT"
,
MB_OK
)
;
DWORD dwSamp
=
(
DWORD
)
GetModuleHandle
(
L
"samp.dll"
)
;
_PrintChatMsg print_char_msg
=
(
_PrintChatMsg
)
(
dwSamp
+
0x64520
)
;
DWORD chat_info
=
(
DWORD
)
(
dwSamp
+
0x21A0E4
)
;
print_char_msg
(
chat_info
,
(
wchar_t
*
)
L
"Hello world!"
)
;
}

1. Второй аргумент функции имеет тип
Код:
char *
, а не
Код:
wchar_t *
.

2. В какой кодировке идет компиляция? Есть подозрение, что компилируешь с набором символов ANSI. В этом случае макрос GetModuleHandle заменяется на функцию GetModuleHandleA, принимает твою Юникод-строку, возвращает NULL и далее идет попытка вызова функции по адресу NULL + 0x64520 с ошибкой доступа.
 
Ответить с цитированием

  #3815  
Старый 11.07.2019, 00:48
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

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

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

1. Второй аргумент функции имеет тип
Код:
char *
, а не
Код:
wchar_t *
.
2. В какой кодировке идет компиляция? Есть подозрение, что компилируешь с набором символов ANSI. В этом случае макрос GetModuleHandle заменяется на функцию GetModuleHandleA, принимает твою Юникод-строку, возвращает NULL и далее идет попытка вызова функции по адресу NULL + 0x64520 с ошибкой доступа.
Пробовал с char - не помогает, Компилирую с набором символов Юникод, написал же выше, что адреса проверил, все правильно
 
Ответить с цитированием

  #3816  
Старый 11.07.2019, 01:53
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

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

Цитата:
Сообщение от Vadim.dll  

Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:





Код:
typedef
void
(
__stdcall
*
_PrintChatMsg
)
(
DWORD chat_info
,
wchar_t
*
message
)
;
void
mainThread
(
PVOID
)
{
MessageBoxW
(
NULL
,
L
"WAIT"
,
L
"WAIT"
,
MB_OK
)
;
DWORD dwSamp
=
(
DWORD
)
GetModuleHandle
(
L
"samp.dll"
)
;
_PrintChatMsg print_char_msg
=
(
_PrintChatMsg
)
(
dwSamp
+
0x64520
)
;
DWORD chat_info
=
(
DWORD
)
(
dwSamp
+
0x21A0E4
)
;
print_char_msg
(
chat_info
,
(
wchar_t
*
)
L
"Hello world!"
)
;
}

Эта функция имеет переменное количество аргументов

Сделай такой прототип функции

C++:





Код:
typedef
void
(
__stdcall
*
_PrintChatMsg
)
(
DWORD chat_info
,
const
char
*
message
,
.
.
.
)
;
 
Ответить с цитированием

  #3817  
Старый 11.07.2019, 06:00
memir
Постоянный
Регистрация: 21.08.2015
Сообщений: 343
С нами: 5646349

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

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

Эта функция имеет переменное количество аргументов
Сделай такой прототип функции

C++:





Код:
typedef
void
(
__stdcall
*
_PrintChatMsg
)
(
DWORD chat_info
,
const
char
*
message
,
.
.
.
)
;

Цитата:

stdcall
переменное количество аргументов
фигню говоришь

Цитата:
Сообщение от Vadim.dll  

Почему эта херня крашиииит? Адреса все правильные, проверял. Где-то ошибка в определении функции? Перепробовал уже все что можно

C++:





Код:
typedef
void
(
__stdcall
*
_PrintChatMsg
)
(
DWORD chat_info
,
wchar_t
*
message
)
;
void
mainThread
(
PVOID
)
{
MessageBoxW
(
NULL
,
L
"WAIT"
,
L
"WAIT"
,
MB_OK
)
;
DWORD dwSamp
=
(
DWORD
)
GetModuleHandle
(
L
"samp.dll"
)
;
_PrintChatMsg print_char_msg
=
(
_PrintChatMsg
)
(
dwSamp
+
0x64520
)
;
DWORD chat_info
=
(
DWORD
)
(
dwSamp
+
0x21A0E4
)
;
print_char_msg
(
chat_info
,
(
wchar_t
*
)
L
"Hello world!"
)
;
}

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

  #3818  
Старый 11.07.2019, 12:22
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

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

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

фигню говоришь

у тя прототип не правильный. а ещё ты берешь не указатель на структуру чата, а указатель на указатель на структуру чата. исправляй
Точно! Теперь заработало, спасибо!
 
Ответить с цитированием

  #3819  
Старый 11.07.2019, 15:15
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

  #3820  
Старый 11.07.2019, 22:35
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

А что это за элементы ? Дай код
Вот

C++:





Код:
#define RGBA_TO_FLOAT(r,g,b,a) (float)r/255.0f, (float)g/255.0f, (float)b/255.0f, (float)a/255.0f
void
PlayerItem
(
const
char
*
str_id
,
bool
*
online
=
nullptr
,
bool
*
spectate
=
nullptr
)
{
ImVec2 p
=
ImGui
::
GetCursorScreenPos
(
)
;
ImDrawList
*
draw_list
=
ImGui
::
GetWindowDrawList
(
)
;
float
height
=
ImGui
::
GetFrameHeight
(
)
+
0.001
;
float
width
=
ImGui
::
GetWindowContentRegionWidth
(
)
+
0.001
-
height
/
2
;
p
.
x
+=
height
/
2
;
ImGui
::
InvisibleButton
(
str_id
,
ImVec2
(
width
,
height
)
)
;
ImGuiContext
&
g
=
*
GImGui
;
float
t
=
ImGui
::
IsItemHovered
(
)
?
1.0f
:
0.0f
;
float
ANIM_SPEED
=
0.00001f
;
if
(
g
.
LastActiveId
==
g
.
CurrentWindow
->
GetID
(
str_id
)
)
{
float
t_anim
=
ImSaturate
(
g
.
LastActiveIdTimer
/
ANIM_SPEED
)
;
t
=
ImGui
::
IsItemHovered
(
)
?
(
t_anim
)
:
(
1.0f
-
t_anim
)
;
}
ImU32 col_bg
;
const
ImVec2 text_size
=
CalcTextSize
(
str_id
)
;
col_bg
=
ImGui
::
GetColorU32
(
ImLerp
(
ImVec4
(
RGBA_TO_FLOAT
(
19
,
26
,
19
,
255
)
)
,
ImVec4
(
RGBA_TO_FLOAT
(
15
,
40
,
15
,
255
)
)
,
t
)
)
;
draw_list
->
AddRectFilled
(
p
,
ImVec2
(
p
.
x
+
width
,
p
.
y
+
height
)
,
col_bg
,
height
*
0.2f
)
;
RenderTextClipped
(
ImVec2
(
p
.
x
+
height
/
2
,
p
.
y
+
(
height
-
text_size
.
y
)
/
2
)
,
ImVec2
(
p
.
x
+
width
-
height
-
height
/
4
,
p
.
y
+
height
/
2
+
height
/
4
)
,
str_id
,
(
const
char
*
)
0
,
&
text_size
)
;
if
(
online
!=
nullptr
)
{
draw_list
->
AddCircleFilled
(
ImVec2
(
p
.
x
+
width
-
height
/
2
,
p
.
y
+
height
/
2
)
,
height
/
4
,
ImGui
::
GetColorU32
(
*
online
?
ImVec4
(
RGBA_TO_FLOAT
(
2
,
114
,
6
,
255
)
)
:
ImVec4
(
RGBA_TO_FLOAT
(
184
,
19
,
19
,
255
)
)
)
)
;
}
if
(
spectate
!=
nullptr
&&
*
spectate
)
{
draw_list
->
AddTriangleFilled
(
ImVec2
(
p
.
x
+
width
-
height
-
height
/
4
,
p
.
y
+
height
/
2
+
height
/
4
)
,
ImVec2
(
p
.
x
+
width
-
height
,
p
.
y
+
height
/
2
-
height
/
4
)
,
ImVec2
(
p
.
x
+
width
-
height
+
height
/
4
,
p
.
y
+
height
/
2
+
height
/
4
)
,
ImGui
::
GetColorU32
(
ImVec4
(
RGBA_TO_FLOAT
(
224
,
217
,
15
,
255
)
)
)
)
;
}
}


Как можно проверить подключение к серверу?
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.