 |
|

17.12.2016, 12:48
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от Sire
AddFontResource('Путь') ;
Окей, а как тогда получить его название в системе(чтобы создать через CreateNewFont())? При установке он переименовывается в ""шрифтнейм" полужирный". Какие только названия не вводил, загружается какой-то стандартный шрифт(вроде Arial'а).
|
|
|

17.12.2016, 20:19
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Ненубы, помогайте с перехватом ScrClientMessage
Чё не так делаю?
C++:
Код:
D3DCOLOR MessageColor
;
// Цвет сообщения
byte textLen
;
// Длина сообщения
char
textMessage
[
144
]
;
// Сообщение
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
MessageColor
)
;
params
->
bitStream
->
Read
(
textLen
)
;
params
->
bitStream
->
Read
(
textMessage
)
;
textMessage
[
textLen
]
=
'\0'
;
params
->
bitStream
->
ResetReadPointer
(
)
;
|
|
|

17.12.2016, 20:49
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от Sire
Ненубы, помогайте с перехватом ScrClientMessage
Чё не так делаю?
C++:
Код:
D3DCOLOR MessageColor
;
// Цвет сообщения
byte textLen
;
// Длина сообщения
char
textMessage
[
144
]
;
// Сообщение
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
MessageColor
)
;
params
->
bitStream
->
Read
(
textLen
)
;
params
->
bitStream
->
Read
(
textMessage
)
;
textMessage
[
textLen
]
=
'\0'
;
params
->
bitStream
->
ResetReadPointer
(
)
;
TextLen дворд, а не байт.
https://docs.google.com/spreadsheets/d/1iIxEk7yR8r7ZLGiSAL4ndtz_N1k0p3Wt7TE5bei6ztU/edit#gid=1
|
|
|

17.12.2016, 20:54
|
|
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами:
6755146
Репутация:
78
|
|
params->bitStream->Read(textMessage, textLen);
|
|
|

17.12.2016, 21:10
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
от души пацаны
|
|
|

19.12.2016, 13:20
|
|
Новичок
Регистрация: 19.12.2016
Сообщений: 5
С нами:
4946711
Репутация:
0
|
|
Что лучше : загружать текстуру или рендрить ? Пример: текстура 500х500px синяя или же DrawBox ?
|
|
|

19.12.2016, 14:53
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от iAmerican
Надо было по быстрому сделать чекер 0 лвлов , сделал на быструю руку. Но проблема в том , что он выводит не до конца всех игроков. А просто обрезает половину.
сидел , пробовал и так и так , что-то не получилось вообщем доделать, подскажите кто нибудь, буду благодарен.
Сообщение от Спойлер
-McaK-ptmMs.jpgSR_team · 19 Дек 2016 в 13:53' data-fancybox="lb-post-131871" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="/proxy.php?image=https%3A%2F%2Fpp.vk.me%2Fc836538%2 Fv836538033%2F1237b%2F-McaK-ptmMs.jpg&hash=27a05876289dc4a783c3acc6e8d3be44" style="cursor: pointer;" title="-McaK-ptmMs.jpg">

Код :
UPD:
Прокоментил строки
C++:
Код:
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
int
Score
=
3
;
stFontInfo
*
pFont
;
char
oldnick
[
4096
]
=
{
0
}
;
char
nick
[
4096
]
=
{
0
}
;
bool
bAct
=
false
;
void
CALLBACK
cmd_show_info_player
(
std
::
string param
)
{
bAct
^=
true
;
}
bool
CALLBACK
Present
(
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
// если рендерер готов к рисованию
{
// рисуем
if
(
bAct
)
{
for
(
uint16_t
it
=
0
;
it
getSAMP
(
)
->
getInfo
(
)
->
UpdateScoreAndPing
(
)
;
// обновляем таб
if
(
!
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
iIsListed
[
it
]
)
continue
;
// проверяем подключен ли игрок
Score
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
it
]
->
iScore
;
// Записываем в переменную лвл игрока
if
(
Score
==
0
)
// Проверяем что игрок 0 лвл.
{
sprintf
(
oldnick
,
"%s [%i]"
,
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
GetPlayerName
(
it
)
,
it
)
;
sprintf
(
nick
,
"%s \n %s"
,
nick
,
oldnick
)
;
// и так всё понятно.
}
}
pFont
->
Print
(
nick
,
D3DCOLOR_ARGB
(
170
,
255
,
255
,
255
)
,
500
,
500
,
false
)
;
// Рисуем список
sprintf
(
oldnick
,
""
)
;
sprintf
(
nick
,
""
)
;
// Очищаем переменные , что бы не было краша.
}
SF
->
getRender
(
)
->
EndRender
(
)
;
// завершаем рисование
}
;
return
true
;
// возвращаем положительный результат
}
;
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
(
)
->
getInfo
(
)
->
UpdateScoreAndPing
(
)
;
SF
->
getRender
(
)
->
registerD3DCallback
(
eDirect3DDeviceMethods
::
D3DMETHOD_PRESENT
,
Present
)
;
pFont
=
SF
->
getRender
(
)
->
CreateNewFont
(
"Consolas"
,
10
,
FCR_BORDER
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"dauncheck"
,
cmd_show_info_player
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
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
;
}
массивы слишком маленькие скорее всего.
25 - максимальная длина Ника, 1000 максимальное число игроков.
З.Ы. А еще SF не умел рендерить больше 256 символов за раз, и вроде это не фиксилось
|
|
|

20.12.2016, 19:59
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от Potniy
Что лучше : загружать текстуру или рендрить ? Пример: текстура 500х500px синяя или же DrawBox ?
Для каких целей? DrawBox попроще будет.
|
|
|

20.12.2016, 20:09
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
Сообщение от SR_team
массивы слишком маленькие скорее всего.
25 - максимальная длина Ника, 1000 максимальное число игроков.
З.Ы. А еще SF не умел рендерить больше 256 символов за раз, и вроде это не фиксилось
скорее всего не рендрит больше 256 символов , но на сколько я помню были админчекеры , они тоже не рендрят больше 256 символов?
|
|
|

21.12.2016, 00:21
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от iAmerican
скорее всего не рендрит больше 256 символов , но на сколько я помню были админчекеры , они тоже не рендрят больше 256 символов?
Я не думаю, что они так по уебански сделаны, и не склевают все в 1 строку, а выводят каждую строку отдельно
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|