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

  #1801  
Старый 02.09.2017, 14:24
kuleer
Познающий
Регистрация: 06.12.2014
Сообщений: 86
С нами: 6018257

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

Когда пытаюсь копмилировать проект, творится какая то хрень, открывается Msbuild, и начинает флудить каждые 3 минуты открывается новый вот скрин: Как исправить?

Версия visual studio 2013
 
Ответить с цитированием

  #1802  
Старый 08.09.2017, 18:59
Vandal™
Познающий
Регистрация: 06.01.2016
Сообщений: 55
С нами: 5447426

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

C++:





Код:
case
ScriptRPCEnumeration
::
RPC_ScrClientMessage
:
{
DWORD dwColor
;
int
iLen
;
char
Msg
[
256
]
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
dwColor
)
;
params
->
bitStream
->
Read
(
iLen
)
;
params
->
bitStream
->
Read
(
Msg
,
iLen
)
;
char
test
[
10
]
;
sprintf
(
test
,
"0x%X"
,
dwColor
)
;
D3DCOLOR d3dColor
=
reinterpret_cast

(
test
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
d3dColor
,
"%s | 0x%X"
,
Msg
,
dwColor
)
;
}


Строки всегда зеленые. В чем проблема?

Или как лучше перезаписать тип DWORD в D3DCOLOR? Ибо с форматированием код цвета указывается верно (К примеру, "text | 0xFFCCFF00").
 
Ответить с цитированием

  #1803  
Старый 08.09.2017, 19:07
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

@Vandal™ для использования цвета из ScrClientMessage в AddChatMessage необходимо привести его к типу 0xRRGGBB, вместо 0xAARRGGBB. Можешь использовать логическую операцию AND.
 
Ответить с цитированием

  #1804  
Старый 08.09.2017, 21:20
Karbun
Участник форума
Регистрация: 11.06.2017
Сообщений: 112
С нами: 4695764

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

Парни, только начал учиться С++, помогите пожалуйста с кодом и укажите на ошибки. Плагин должен выводить в чат ники всех игроков на сервере:

C++:





Код:
#include 
#include 
#include 
#include 
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
vivod2
(
void
)
{
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"%d"
)
,
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetPlayerName
(
i
)
;
}
}
;
void
CALLBACK
vivod1
(
std
::
string str
)
{
vivod2
(
)
;
}
;
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
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"vivod1"
,
vivod1
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}


Не ругайтесь слишком громко на меня, я только учусь:unknw:
 
Ответить с цитированием

  #1805  
Старый 10.09.2017, 13:03
sаnеk
Флудер
Регистрация: 22.11.2015
Сообщений: 2,128
С нами: 5512984

Репутация: 183


По умолчанию

как сделать, чтобы показывало только тех, кто в стриме? вариант с удалением этого

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


Код:





Код:
if ( g_Players->pRemotePlayer[i]->pPlayerData == NULL
         ||     g_Players->pRemotePlayer[i]->pPlayerData->pSAMP_Actor == NULL )
        {
            _snprintf_s( buf, sizeof(buf)-1, "Name: %s (ID: %d), not streamed in", getPlayerName(i), i );
            pD3DFont_sampStuff->PrintShadow( width, height, color, buf );
            height += 1.0f + pD3DFont_sampStuff->DrawHeight();
            continue;
        }


не поможет

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


C++:





Код:
int
i
;
for
(
i
=
current_player_id
;
i

iIsListed
[
i
]
!=
1
)
continue
;
rendered_players
++
;
if
(
rendered_players
>=
max_amount_players
)
return
;
if
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
==
NULL
||
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Actor
==
NULL
)
{
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), not streamed in"
,
getPlayerName
(
i
)
,
i
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
height
+=
1.0f
+
pD3DFont_sampStuff
->
DrawHeight
(
)
;
continue
;
}
if
(
!
getPlayerPos
(
i
,
pos
)
)
continue
;
color
=
samp_color_get
(
i
)
;
const
char
*
szPlayerName
=
getPlayerName
(
i
)
;
int
iPlayerHealth
=
(
int
)
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fActorHealth
;
int
iPlayerArmor
=
(
int
)
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
fActorArmor
;
int
iVehicleID
=
(
int
)
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
sVehicleID
;
int
iVehicleHealth
;
if
(
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
!=
NULL
&&
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Vehicle
!=
NULL
)
{
uint16_t
playerVehicleID
=
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
sVehicleID
;
vehicle
=
gta_vehicle_get_by_id
(
g_Vehicles
->
pSAMP_Vehicle
[
playerVehicleID
]
->
pGTA_Vehicle
->
base
.
model_alt_id
)
;
iVehicleHealth
=
(
int
)
g_Players
->
pRemotePlayer
[
i
]
->
pPlayerData
->
pSAMP_Vehicle
->
pGTA_Vehicle
->
hitpoints
;
}
switch
(
getPlayerState
(
i
)
)
{
case
PLAYER_STATE_NONE
:
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), State: None"
,
szPlayerName
,
i
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
break
;
case
PLAYER_STATE_ONFOOT
:
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), State: On foot, Health: %d, Armor: %d, Distance: %0.2f"
,
szPlayerName
,
i
,
iPlayerHealth
,
iPlayerArmor
,
vect3_dist
(
(
float
*
)
pos
,
&
self
->
base
.
matrix
[
4
*
3
]
)
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
break
;
case
PLAYER_STATE_DRIVER
:
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), State: Driver (%s (%d)), VHealth: %d, Distance: %0.2f"
,
szPlayerName
,
i
,
vehicle
->
name
,
iVehicleID
,
iVehicleHealth
,
vect3_dist
(
(
float
*
)
pos
,
&
self
->
base
.
matrix
[
4
*
3
]
)
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
break
;
case
PLAYER_STATE_PASSENGER
:
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), State: Passenger (%s (%d)), Distance: %0.2f"
,
szPlayerName
,
i
,
vehicle
->
name
,
iVehicleID
,
vect3_dist
(
(
float
*
)
pos
,
&
self
->
base
.
matrix
[
4
*
3
]
)
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
break
;
case
PLAYER_STATE_WASTED
:
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), State: Wasted"
,
szPlayerName
,
i
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
break
;
case
PLAYER_STATE_SPAWNED
:
_snprintf_s
(
buf
,
sizeof
(
buf
)
-
1
,
"Name: %s (ID: %d), State: Spawned"
,
szPlayerName
,
i
)
;
pD3DFont_sampStuff
->
PrintShadow
(
width
,
height
,
color
,
buf
)
;
break
;
}
height
+=
1.0f
+
pD3DFont_sampStuff
->
DrawHeight
(
)
;
}


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

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

Репутация: 183


По умолчанию

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

Парни, только начал учиться С++, помогите пожалуйста с кодом и укажите на ошибки. Плагин должен выводить в чат ники всех игроков на сервере:

C++:





Код:
#include 
#include 
#include 
#include 
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
vivod2
(
void
)
{
for
(
int
i
=
0
;
i

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
"%d"
)
,
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetPlayerName
(
i
)
;
}
}
;
void
CALLBACK
vivod1
(
std
::
string str
)
{
vivod2
(
)
;
}
;
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
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"vivod1"
,
vivod1
)
;
init
=
true
;
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
->
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}


Не ругайтесь слишком громко на меня, я только учусь:unknw:
Добавь проверку на существование игрока с id i на сервере.

Цитата:
Сообщение от sanek a.k.a Maks_Fender  

g_Players->pRemotePlayer->pPlayerData->pSAMP_Actor
g_Players->pRemotePlayer->pPlayerData->pSAMP_Actor->pGTA_ped или что-то типа того должно быть
 
Ответить с цитированием

  #1807  
Старый 10.09.2017, 13:56
sаnеk
Флудер
Регистрация: 22.11.2015
Сообщений: 2,128
С нами: 5512984

Репутация: 183


По умолчанию

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

g_Players->pRemotePlayer->pPlayerData->pSAMP_Actor->pGTA_ped или что-то типа того должно быть
крашит
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Цитата:
Сообщение от sanek a.k.a Maks_Fender  

крашит
тогда не заменяй, а дополняй
 
Ответить с цитированием

  #1809  
Старый 10.09.2017, 14:12
sаnеk
Флудер
Регистрация: 22.11.2015
Сообщений: 2,128
С нами: 5512984

Репутация: 183


По умолчанию

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

тогда не заменяй, а дополняй
так я дополнил и крашит)
 
Ответить с цитированием

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

Репутация: 183


По умолчанию

Цитата:
Сообщение от sanek a.k.a Maks_Fender  

так я дополнил и крашит)
ты заменил, и на скрине пруф замены
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.