
11.12.2022, 15:43
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
pfree название.asi перед помпиляцией
|
|
|

11.12.2022, 16:54
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от AdCKuY_DpO4uLa
pfree название.asi перед помпиляцией
как можно сделать так, шоб не крашилась игра после выгрузики асишника (мб из-за виндовс прока)?
|
|
|

11.12.2022, 17:04
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от egaa
как можно сделать так, шоб не крашилась игра после выгрузики асишника (мб из-за виндовс прока)?
чистить всё за собой нужно и тогда крашить не будет
|
|
|

11.12.2022, 17:37
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от AdCKuY_DpO4uLa
чистить всё за собой нужно и тогда крашить не будет
де и как правильно почистить тут за собой?
C++:
Код:
#include "main.hpp"
LRESULT CALLBACK
WindowProc
(
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
switch
(
uMsg
)
{
case
WM_KEYUP
:
{
switch
(
wParam
)
{
case
0x31
:
{
*
reinterpret_cast
(
0xC81320
)
+=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
case
0x32
:
{
*
reinterpret_cast
(
0xC81320
)
-=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
}
}
}
return
CallWindowProcA
(
WNDPROC
(
wHandle
)
,
hwnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD fdwReason
,
LPVOID lpReserved
)
{
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
{
DisableThreadLibraryCalls
(
hModule
)
;
wHandle
=
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA:SA:MP"
)
,
GWL_WNDPROC
,
LONG
(
WindowProc
)
)
;
break
;
}
case
DLL_PROCESS_DETACH
:
{
break
;
}
}
return
TRUE
;
}
|
|
|

11.12.2022, 17:51
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
Сообщение от egaa
де и как правильно почистить тут за собой?
C++:
Код:
#include "main.hpp"
LRESULT CALLBACK
WindowProc
(
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
switch
(
uMsg
)
{
case
WM_KEYUP
:
{
switch
(
wParam
)
{
case
0x31
:
{
*
reinterpret_cast
(
0xC81320
)
+=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
case
0x32
:
{
*
reinterpret_cast
(
0xC81320
)
-=
1
;
/*
sprintf(buffer, "weatherID: %d", *(unsigned __int16*)0xC81320);
printStringNow(buffer, 1000, NULL, false);
*/
break
;
}
}
}
}
return
CallWindowProcA
(
WNDPROC
(
wHandle
)
,
hwnd
,
uMsg
,
wParam
,
lParam
)
;
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD fdwReason
,
LPVOID lpReserved
)
{
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
{
DisableThreadLibraryCalls
(
hModule
)
;
wHandle
=
SetWindowLongA
(
FindWindowA
(
NULL
,
"GTA:SA:MP"
)
,
GWL_WNDPROC
,
LONG
(
WindowProc
)
)
;
break
;
}
case
DLL_PROCESS_DETACH
:
{
break
;
}
}
return
TRUE
;
}
юзай хукер, а не эту шляпу, для перехвата wnd proc
|
|
|

11.12.2022, 20:25
|
|
Новичок
Регистрация: 05.08.2018
Сообщений: 1
С нами:
4091290
Репутация:
213
|
|
Как изменить код под
E10b OLED-дисплей 0,96" 128х64 белый Uпит=3,3...5В i2c/iic на SSD1306 27х27х4мми сделать управление не 2-мя джостиками а одним
F05 джойстик 2х-осевой для Arduino {=KY-023}на Arduino.
C++:
Код:
////////////////////////////////////
// -OLED RF Controller- //
////////////////////////////////////
//Libraries
#include
#include
#include
#include
#include
#include
//Initialize NRF24L01
RF24
radio
(
9
,
10
)
;
//(CE, CSN)
//Initialize OLED
Adafruit_SH1106G display
=
Adafruit_SH1106G
(
128
,
64
,
&
Wire
,
-
1
)
;
///////////////////////////
// -VARIABLES- //
///////////////////////////
const
byte address
[
6
]
=
"00001"
;
struct
Data_Package
{
byte X1
;
byte Y1
;
byte X2
;
byte Y2
;
byte b1
;
byte B2
;
byte B3
;
byte B4
;
byte B5
;
byte T1
;
byte T2
;
byte T3
;
byte T4
;
byte T5
;
byte S1
;
byte S2
;
byte S3
;
byte S4
;
byte S5
;
}
;
Data_Package data
;
//buzzer pin
const
int
buzzer_Pin
=
5
;
//runNRF24L01
const
int
X1_Pin
=
A0
,
Y1_Pin
=
A1
,
X2_Pin
=
A2
,
Y2_Pin
=
A3
;
const
int
B1_Pin
=
3
,
B2_Pin
=
2
;
int
B1_Val
=
0
,
B2_Val
=
0
,
B3_Val
=
0
,
B4_Val
=
0
,
B5_Val
=
0
;
int
T1_Val
=
0
,
T2_Val
=
0
,
T3_Val
=
0
,
T4_Val
=
0
,
T5_Val
=
0
;
int
S1_Val
=
0
,
S2_Val
=
0
,
S3_Val
=
0
,
S4_Val
=
0
,
S5_Val
=
0
;
//timeDelay
int
cursorDelay
=
0
;
int
actionDelay
=
0
;
//drawCursor
int
cursorPot
=
0
;
int
cursorY
=
11
,
yOffset
=
0
;
int
num
=
0
,
num2
=
0
,
num3
=
0
;
//drawMenu
bool
B1_Flag
=
false
,
B1_Flag2
=
false
,
B2_Flag
=
false
;
bool
menu
=
false
,
action
=
false
,
buzzer
=
false
;
bool
toggle1
=
false
,
toggle2
=
false
,
toggle3
=
false
,
toggle4
=
false
,
toggle5
=
false
;
int
sliderPot
=
0
,
slider1
=
0
,
slider2
=
0
,
slider3
=
0
,
slider4
=
0
,
slider5
=
0
;
bool
multiply
=
true
;
///////////////////////
// -SETUP- //
///////////////////////
void
setup
(
)
{
//Begin Serial Communication
//Serial.begin(9600);
//Pin Setup
pinMode
(
B1_Pin
,
INPUT_PULLUP
)
;
pinMode
(
B2_Pin
,
INPUT_PULLUP
)
;
pinMode
(
buzzer_Pin
,
OUTPUT
)
;
//NRF24L01 Setup
radio
.
begin
(
)
;
radio
.
openWritingPipe
(
address
)
;
radio
.
setPALevel
(
RF24_PA_MIN
)
;
radio
.
stopListening
(
)
;
//OLED Setup
display
.
begin
(
0x3C
,
true
)
;
display
.
display
(
)
;
delay
(
500
)
;
display
.
clearDisplay
(
)
;
display
.
setTextColor
(
SH110X_WHITE
)
;
//Initial Values
data
.
X1
=
0
;
data
.
Y1
=
0
;
data
.
X2
=
0
;
data
.
Y2
=
0
;
data
.
b1
=
0
;
data
.
B2
=
0
;
data
.
B3
=
0
;
data
.
T1
=
0
;
data
.
T2
=
0
;
data
.
T3
=
0
;
data
.
S1
=
0
;
data
.
S2
=
0
;
data
.
S3
=
0
;
}
//setup
//////////////////////
// -LOOP- //
//////////////////////
void
loop
(
)
{
runNRF24L01
(
)
;
runOLED
(
)
;
timeDelay
(
)
;
runBuzzer
(
)
;
}
//loop
///////////////////////////
// -FUNCTIONS- //
///////////////////////////
void
runNRF24L01
(
)
{
if
(
menu
==
false
)
{
data
.
X1
=
map
(
analogRead
(
X1_Pin
)
,
0
,
1023
,
0
,
255
)
;
data
.
Y1
=
map
(
analogRead
(
Y1_Pin
)
,
0
,
1023
,
0
,
255
)
;
data
.
X2
=
map
(
analogRead
(
X2_Pin
)
,
0
,
1023
,
0
,
255
)
;
data
.
Y2
=
map
(
analogRead
(
Y2_Pin
)
,
0
,
1023
,
0
,
255
)
;
}
data
.
b1
=
B1_Val
;
data
.
B2
=
B2_Val
;
data
.
B3
=
B3_Val
;
data
.
B4
=
B4_Val
;
data
.
B5
=
B5_Val
;
data
.
T1
=
T1_Val
;
data
.
T2
=
T2_Val
;
data
.
T3
=
T3_Val
;
data
.
T4
=
T4_Val
;
data
.
T5
=
T5_Val
;
data
.
S1
=
S1_Val
;
data
.
S2
=
S2_Val
;
data
.
S3
=
S3_Val
;
data
.
S4
=
S4_Val
;
data
.
S5
=
S5_Val
;
radio
.
write
(
&
data
,
sizeof
(
Data_Package
)
)
;
}
//runNRF24L01
void
runOLED
(
)
{
display
.
clearDisplay
(
)
;
drawCursor
(
)
;
drawMenu
(
)
;
display
.
display
(
)
;
}
//runOLED
void
timeDelay
(
)
{
if
(
cursorDelay
11
||
ignore
==
true
)
{
display
.
setTextSize
(
Size
)
;
display
.
setCursor
(
xPos
,
yPos
)
;
display
.
println
(
Name
)
;
}
}
//drawText
void
drawCursor
(
)
{
if
(
menu
==
true
)
{
cursorPot
=
map
(
analogRead
(
X1_Pin
)
,
0
,
1023
,
0
,
100
)
;
if
(
cursorPot
=
2
)
{
cursorY
+=
17
;
if
(
action
==
false
)
{
num
++
;
}
num3
++
;
cursorDelay
=
0
;
}
if
(
cursorPot
>=
70
&&
cursorDelay
>=
2
)
{
cursorY
-=
17
;
if
(
action
==
false
)
{
num
--
;
}
num3
--
;
cursorDelay
=
0
;
}
//limits movement
if
(
cursorY
>
45
)
{
cursorY
=
45
;
yOffset
-=
17
;
}
if
(
cursorY
=
0
)
{
yOffset
=
0
;
}
if
(
num
=
28
&&
num2
==
3
)
{
cursorY
=
28
;
num3
=
1
;
}
if
(
yOffset
=
10
)
{
if
(
toggle1
==
false
)
{
toggle1
=
true
;
}
else
{
toggle1
=
false
;
}
actionDelay
=
0
;
}
break
;
case
1
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
&&
actionDelay
>=
10
)
{
if
(
toggle2
==
false
)
{
toggle2
=
true
;
}
else
{
toggle2
=
false
;
}
actionDelay
=
0
;
}
break
;
case
2
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
&&
actionDelay
>=
10
)
{
if
(
toggle3
==
false
)
{
toggle3
=
true
;
}
else
{
toggle3
=
false
;
}
actionDelay
=
0
;
}
break
;
case
3
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
&&
actionDelay
>=
10
)
{
if
(
toggle4
==
false
)
{
toggle4
=
true
;
}
else
{
toggle4
=
false
;
}
actionDelay
=
0
;
}
break
;
case
4
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
&&
actionDelay
>=
10
)
{
if
(
toggle5
==
false
)
{
toggle5
=
true
;
}
else
{
toggle5
=
false
;
}
actionDelay
=
0
;
}
break
;
case
5
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
)
{
B1_Flag
=
true
;
}
if
(
B1_Flag
==
true
)
{
if
(
digitalRead
(
B1_Pin
)
==
HIGH
)
{
B1_Flag
=
false
;
num
=
0
;
num2
=
-
1
;
num3
=
0
;
yOffset
=
0
;
cursorY
=
11
;
action
=
false
;
}
}
break
;
}
break
;
case
2
:
drawText
(
"SLIDERS"
,
1
,
42
,
0
,
true
)
;
drawText
(
"S1"
,
2
,
3
,
13
+
yOffset
,
false
)
;
drawText
(
"S2"
,
2
,
3
,
30
+
yOffset
,
false
)
;
drawText
(
"S3"
,
2
,
3
,
47
+
yOffset
,
false
)
;
drawText
(
"S4"
,
2
,
3
,
64
+
yOffset
,
false
)
;
drawText
(
"S5"
,
2
,
3
,
81
+
yOffset
,
false
)
;
drawText
(
"Back"
,
2
,
3
,
98
+
yOffset
,
false
)
;
sliderPot
=
map
(
analogRead
(
Y2_Pin
)
,
0
,
1023
,
0
,
100
)
;
drawText
(
String
(
slider1
)
,
2
,
92
,
13
+
yOffset
,
false
)
;
drawText
(
String
(
slider2
)
,
2
,
92
,
30
+
yOffset
,
false
)
;
drawText
(
String
(
slider3
)
,
2
,
92
,
47
+
yOffset
,
false
)
;
drawText
(
String
(
slider4
)
,
2
,
92
,
64
+
yOffset
,
false
)
;
drawText
(
String
(
slider5
)
,
2
,
92
,
81
+
yOffset
,
false
)
;
S1_Val
=
slider1
;
S2_Val
=
slider2
;
S3_Val
=
slider3
;
S4_Val
=
slider4
;
S5_Val
=
slider5
;
if
(
digitalRead
(
B1_Pin
)
==
LOW
)
{
B1_Flag2
=
true
;
}
if
(
B1_Flag2
==
true
)
{
if
(
digitalRead
(
B1_Pin
)
==
HIGH
)
{
B1_Flag2
=
false
;
if
(
multiply
==
false
&&
num3
!=
3
)
{
multiply
=
true
;
}
else
if
(
num3
!=
3
)
{
multiply
=
false
;
}
}
}
switch
(
num3
)
{
case
0
:
if
(
sliderPot
=
70
)
{
if
(
multiply
==
true
)
{
slider1
+=
10
;
}
else
{
slider1
++
;
}
}
if
(
slider1
=
255
)
{
slider1
=
255
;
}
break
;
case
1
:
if
(
sliderPot
=
70
)
{
if
(
multiply
==
true
)
{
slider2
+=
10
;
}
else
{
slider2
++
;
}
}
if
(
slider2
=
255
)
{
slider2
=
255
;
}
break
;
case
2
:
if
(
sliderPot
=
70
)
{
if
(
multiply
==
true
)
{
slider3
+=
10
;
}
else
{
slider3
++
;
}
}
if
(
slider3
=
255
)
{
slider3
=
255
;
}
break
;
case
3
:
if
(
sliderPot
=
70
)
{
if
(
multiply
==
true
)
{
slider4
+=
10
;
}
else
{
slider4
++
;
}
}
if
(
slider4
=
255
)
{
slider4
=
255
;
}
break
;
case
4
:
if
(
sliderPot
=
70
)
{
if
(
multiply
==
true
)
{
slider5
+=
10
;
}
else
{
slider5
++
;
}
}
if
(
slider5
=
255
)
{
slider5
=
255
;
}
break
;
case
5
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
)
{
B1_Flag
=
true
;
}
if
(
B1_Flag
==
true
)
{
if
(
digitalRead
(
B1_Pin
)
==
HIGH
)
{
B1_Flag
=
false
;
num
=
0
;
num2
=
-
1
;
num3
=
0
;
yOffset
=
0
;
cursorY
=
11
;
action
=
false
;
}
}
break
;
}
break
;
case
3
:
drawText
(
"BUZZER"
,
1
,
48
,
0
,
true
)
;
drawText
(
"On"
,
2
,
3
,
13
+
yOffset
,
false
)
;
drawText
(
"Off"
,
2
,
3
,
30
+
yOffset
,
false
)
;
switch
(
num3
)
{
case
0
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
)
{
B1_Flag
=
true
;
}
if
(
B1_Flag
==
true
)
{
if
(
digitalRead
(
B1_Pin
)
==
HIGH
)
{
B1_Flag
=
false
;
num
=
0
;
num2
=
-
1
;
num3
=
0
;
yOffset
=
0
;
cursorY
=
11
;
action
=
false
;
buzzer
=
true
;
}
}
break
;
case
1
:
if
(
digitalRead
(
B1_Pin
)
==
LOW
)
{
B1_Flag
=
true
;
}
if
(
B1_Flag
==
true
)
{
if
(
digitalRead
(
B1_Pin
)
==
HIGH
)
{
B1_Flag
=
false
;
num
=
0
;
num2
=
-
1
;
num3
=
0
;
yOffset
=
0
;
cursorY
=
11
;
action
=
false
;
buzzer
=
false
;
digitalWrite
(
buzzer_Pin
,
LOW
)
;
}
}
break
;
}
break
;
}
}
}
//drawMenu
void
runBuzzer
(
)
{
if
(
menu
==
true
&&
buzzer
==
true
)
{
if
(
B1_Flag
==
true
)
{
digitalWrite
(
buzzer_Pin
,
HIGH
)
;
analogWrite
(
buzzer_Pin
,
20
)
;
}
else
{
digitalWrite
(
buzzer_Pin
,
LOW
)
;
}
}
}
//runBuzzer
|
|
|

11.12.2022, 21:45
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Попробовал закинуть в проект самп апи. Но после того, как настроил компановщик как в гайде от кинча, проект как бы компилируется, но за 15 минут так и не скомпилировался (даже в консоль ничего не написало, кроме сообщения о начале сборки).

|
|
|

12.12.2022, 13:39
|
|
Флудер
Регистрация: 16.09.2019
Сообщений: 2,013
С нами:
3505395
Репутация:
183
|
|
Сообщение от egaa
Попробовал закинуть в проект самп апи. Но после того, как настроил компановщик как в гайде от кинча, проект как бы компилируется, но за 15 минут так и не скомпилировался (даже в консоль ничего не написало, кроме сообщения о начале сборки).
он у тебя скомпилен уже
|
|
|

16.12.2022, 02:03
|
|
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами:
4091290
Репутация:
213
|
|
при записи json объекта в файл в бусте, не создается табуляция в файле, есть какое-нибудь решение этому?
C++:
[CODE]
int
main
(
)
{
setlocale
(
LC_ALL
,
"ru"
)
;
std
::
ofstream oFileStream
{
"settings.json"
}
;
boost
::
json
::
object js_obj
;
js_obj
[
u8
"test zero string"
]
.
emplace_string
(
)
=
u8
"the null позиция"
;
js_obj
[
u8
"test zero"
]
.
emplace_array
(
)
=
{
u8
"арра 0"
,
u8
"арра 1"
,
u8
"арра 2"
}
;
oFileStream
решение
|
|
|

17.12.2022, 22:33
|
|
Новичок
Регистрация: 21.03.2006
Сообщений: 17
С нами:
10600540
Репутация:
7
|
|
Как-то можно перехватить Read у BitStream для разбора пакета? R3
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|