 |
|

07.09.2015, 18:10
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Как сделать обработчик данных диалога?
|
|
|

07.09.2015, 18:47
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Локального или серверного?
|
|
|

07.09.2015, 20:01
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Dark_Knight
Локального или серверного?
Локального
|
|
|

07.09.2015, 21:33
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от KYRLYK
Как при запуске игры нарисовать текст (render)? Я перед mainloop вставлял эту функцию рисования (Как на blasthack wiki в туториалах) и чёт не рисуется ничего.
Значит чёт не так делаешь. Сам по этим урокам начинал)
|
|
|

07.09.2015, 21:49
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от KYRLYK
C++:
Код:
bool
CALLBACK
Present
(
CONST RECT
*
pSourceRect
,
CONST RECT
*
pDestRect
,
HWND hDestWindowOverride
,
CONST RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
->
getRender
(
)
->
BeginRender
(
)
)
)
{
stFontInfo
*
pFont
;
SF
->
getRender
(
)
->
registerD3DCallback
(
eDirect3DDeviceMethods
::
D3DMETHOD_PRESENT
,
Present
)
;
pFont
=
SF
->
getRender
(
)
->
CreateNewFont
(
"Tahoma"
,
12
,
FCR_BORDER
)
;
pFont
->
Print
(
"10%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"20%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"30%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"40%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"50%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"60%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"70%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"80%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"90%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
"100%"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
pFont
->
Print
(
" Loaded!"
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
500
,
500
,
false
)
;
SF
->
getRender
(
)
->
EndRender
(
)
;
}
;
return
true
;
}
;
void
CALLBACK
mainloop
(
)
{
и
.
т
.
д
}
Чёт не так значит.
Код:
Код:
pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER);
Вот твоя ошибка. Этот callback является циклом, который выполняется несколько раз в секунду, а ты в нем регистрируешь новый шрифт. Поэтому и не запускается. Регистрируй в mainloop.
Сообщение от Спойлер
//================================================== ================================================== =========
Код:
это после инклюдов пихаешь,
Код:
Код:
bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)
{
if (SUCCEEDED(SF->getRender()->BeginRender()))
{
pFont->Print("10%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("20%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("30%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("40%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("50%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("60%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("70%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("80%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("90%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print("100%", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
pFont->Print(" Loaded!", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
SF->getRender()->EndRender();
};
return true;
};
Это куда тебе надо.
Код:
Код:
SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present);
pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER);
А это в мэйн. У меня работает.
|
|
|

07.09.2015, 22:03
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от KYRLYK
Да, спасибо, помогло. А как сделать что бы первый текст появился -> через секунду исчез -> появился второй текст -> исчез -> появился следующий текст -> исчез. И так что бы до последнего текста было. (Типа как загрузка плагина).
Сам не могу понять как сделать типо wait`a, если делаю циклом, скрипт стопит, если sleep, опять же стоп, вроде как с таймером надо попробовать, но я не разобрался как.
|
|
|

07.09.2015, 22:53
|
|
Новичок
Регистрация: 30.10.2014
Сообщений: 18
С нами:
6070899
Репутация:
3
|
|
Сообщение от Dynamite
Сам не могу понять как сделать типо wait`a, если делаю циклом, скрипт стопит, если sleep, опять же стоп, вроде как с таймером надо попробовать, но я не разобрался как.
Колхозный вариант.
Сообщение от Спойлер
Код:
Код:
char load_percent_text[11][] = { "0%", "10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%" };
char load_percen = 0;
bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)
{
if (SUCCEEDED(SF->getRender()->BeginRender()))
{
static stFontInfo *pFont = NULL;
if (pFont == NULL)
{
pFont = SF->getRender()->CreateNewFont("Tahoma", 12, FCR_BORDER);
if (pFont == NULL) //WTF? Exit if not created
{
SF->getRender()->EndRender();
return true;
}
}
static int load_time = GetTickCount();
if (load_percen Print(LoadPercentText[load_percen], D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
}
else if (load_percen == 11)
{
if (load_time Print(" Loaded!", D3DCOLOR_ARGB(255, 255, 255, 0), 500, 500, false);
}
SF->getRender()->EndRender();
};
return true;
};
|
|
|

08.09.2015, 12:57
|
|
Новичок
Регистрация: 04.08.2015
Сообщений: 5
С нами:
5670904
Репутация:
0
|
|
Сообщение от Dynamite
Сам не могу понять как сделать типо wait`a, если делаю циклом, скрипт стопит, если sleep, опять же стоп, вроде как с таймером надо попробовать, но я не разобрался как.
Можешь воспользоваться примером выше, либо создать поток и в нем в нужном месте юзать sleep, тогда фризить не будет
|
|
|

08.09.2015, 14:30
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от KYRLYK
Как можно подключить AntTweakBar к плагину?
Подключаешь инклуду и либу и работаешь. Обьявляешь.
Код:
Код:
TwBar *twBar_Main = nullptr;
В маинлуп
Код:
Код:
if (!TwInit(TW_DIRECT3D9, SF->getRender()->getD3DDevice()))
return;
twBar_Main = TwNewBar("Main");
Ну а дальше уже юзаешь документацию по нем.
|
|
|

08.09.2015, 17:58
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Dynamite
Как сделать обработчик данных диалога?
Сообщение от Dynamite
Локального
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|