Показать сообщение отдельно

  #3254  
Старый 13.01.2019, 18:36
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

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

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

Функция бесконечно вызывается mainloop'ом, флудит сообщением в чат, как беру оружие в руку. Как решить, если помимо mainloop'а нет подходящих мест для ее вызова?

C++:





Код:
void
gun_func
(
void
)
{
int
current_weapon
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
;
if
(
current_weapon
==
31
)
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}M4A1."
)
;
}
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
init
=
true
;
}
gun_func
(
)
;
}



Попробуй вот так, не самый лудший вариант, можеш еще задержку(GetTickCount) поставить на gun_func().

C++:





Код:
void
gun_func
(
void
)
{
static
unsigned
char
current_weapon
=
-
1
;
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
!=
current_weapon
)
{
if
(
current_weapon
==
31
)
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"{FFFFFF}• {FFDA44}[SAMPFUNCS]: {FFFFFF}M4A1."
)
;
current_weapon
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
;
}
}
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
init
=
true
;
}
gun_func
(
)
;
}


Подскажите, для чего нужен #pragma region, и что он делает?
 
Ответить с цитированием