PDA

Просмотр полной версии : проблема с меню


marik768
31.03.2012, 12:01
поставил на вх (Trolololo2 by warl0ck) спрайты, а получилось так что картинка боди перекрыла весь текст от меню, вот так выглядет
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
если присмотрется то текст пробивается.
а как можно сделать чтоб текст нормально выглядел на картинке?

Pahafl
31.03.2012, 12:18
А в игре как рисуется текст? С низу? У меня также с низу, а в игре отображается нормально.

marik768
31.03.2012, 12:39
Pahafl, в игре также

Добавлено через 1 час 24 минуты
если не кто не знает мож низ и верх подработать на фотошопе?
к.с если боди перекрывает всё и картинку не поставиш, можно фон сделать для текста и как ?

Dimedrol1536
31.03.2012, 14:28
marik768, напиши как у тя выглядят такие строки
HRESULT WINAPI EndScene (LPDIRECT3DDEVICE9 MegoFrost)
{

if(!Create)
{
FontCreate(MegoFrost);
Create=true;
}
if(Font())
pFont1->OnLostDevice();
FPScheck(sFPS,"%d Fps");
sprintf(Resolution,"%d x %d",Viewport.Width,Viewport.Height);
Date(TimeAndDate,"");
if(Mmax==0)DimedrolMenu(MegoFrost);
//MenuShow(mx,my,MegoFrost);
//MenuNav();

if(Mvisible)
{

// DrawBox(mx-4, my-2, 160,Mmax * 15+6,BLACK,MegoFrost);
// DrawBorder(mx-4, my-2, 160,Mmax * 15+6,1,GOLD2,MegoFrost);
// DrawBorder(mx-4, Mpos2, 160,16,2,GOLD2,MegoFrost);//Курсор

}
MenuShow(mx,my,MegoFrost);
MenuNav( );

>DENIS<
31.03.2012, 14:44
Ты спрайты не правильно думаю вставил..когда только начинал..была такая же ерунда,но я от не знания вставлял спрайты без верха и низа....а сразу в середину спрайт вставлял и выходило так,что спрайт перекрывал основное меню.Просто надо вставлять здесь BYTE _cHeader[] = {000}; здесь BYTE _cBody[] = {000}; и здесь BYTE _cFooter[] = {000}; .А ты думаю вставил спрайт сразу здесь: BYTE _cBody[] = {000}; поэтому так и вышло у тебя.

marik768
31.03.2012, 14:49
незнаю то или нет но это более похоже
//========================menu====================
if( !Create )
{
warl0ck->FontCreate(pDevice);
CreateSprite(pDevice);
Create = true;
}

if( warl0ck->Font() )
warl0ck->OnLostDevice();
else
{
if(warl0ck == NULL)
{
warl0ck = new D3D9Menu("Menu Sprited");
}else{
if(warl0ck->Mmax==0) RebuildMenu(pDevice);

warl0ck->MenuShow(mx,my,pDevice); //init for pb
warl0ck->MenuNav();

if(warl0ck->Mvisible)
{
spHeader->Begin(D3DXSPRITE_ALPHABLEND);
spHeader->Draw(txHeader, NULL, NULL, &pHeader, 0xFFFFFFFF);
spHeader->End();

spFooter->Begin(D3DXSPRITE_ALPHABLEND);
spFooter->Draw(txFooter, NULL, NULL, &pFooter, 0xFFFFFFFF);
spFooter->End();

spBody->Begin(D3DXSPRITE_ALPHABLEND);
spBody->Draw(txBody, NULL, NULL, &pBody, 0xFFFFFFFF);
spBody->End();
}

//warl0ck->MenuShow(33,94,pDevice);
//warl0ck->MenuNav();

}
}

Добавлено через 3 минуты
Ты спрайты не правильно думаю вставил..когда только начинал..была такая же ерунда,но я от не знания вставлял спрайты без верха и низа....а сразу в середину спрайт вставлял и выходило так,что спрайт перекрывал основное меню.Просто надо вставлять здесь BYTE _cHeader[] = {000}; здесь BYTE _cBody[] = {000}; и здесь BYTE _cFooter[] = {000}; .А ты думаю вставил спрайт сразу здесь: BYTE _cBody[] = {000}; поэтому так и вышло у тебя.
да вроде так и делал...
щас попробую иначе спс, отпишусь еще

Dimedrol1536
31.03.2012, 15:14
Сделай так
//========================menu====================
if( !Create )
{
warl0ck->FontCreate(pDevice);
CreateSprite(pDevice);
Create = true;
}

if( warl0ck->Font() )
warl0ck->OnLostDevice();
else
{
if(warl0ck == NULL)
{
warl0ck = new D3D9Menu("Menu Sprited");
}else{
if(warl0ck->Mmax==0) RebuildMenu(pDevice);

warl0ck->MenuShow(mx,my,pDevice); //init for pb
warl0ck->MenuNav();

if(warl0ck->Mvisible)
{
spHeader->Begin(D3DXSPRITE_ALPHABLEND);
spHeader->Draw(txHeader, NULL, NULL, &pHeader, 0xFFFFFFFF);
spHeader->End();

spFooter->Begin(D3DXSPRITE_ALPHABLEND);
spFooter->Draw(txFooter, NULL, NULL, &pFooter, 0xFFFFFFFF);
spFooter->End();

spBody->Begin(D3DXSPRITE_ALPHABLEND);
spBody->Draw(txBody, NULL, NULL, &pBody, 0xFFFFFFFF);
spBody->End();
}

warl0ck->MenuShow(mx,my,pDevice);
warl0ck->MenuNav();

}
}

marik768
31.03.2012, 15:56
ставить картинки по очередности
1 шапка
2 тело
3 низ
не помогло(
но не спешу огорчатся т.к помог твой код)
короче спасибо получилось)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

marik768
28.04.2012, 15:01
чтоб не создовать новую тему, тут напишу)
еще одна проблема с меню (исходник PHC D3D Base).
верхний бокс отабаражается как-то странно то, он принимает цвет из игры (пример 2) или его вообще нету (пример 1) ток у теста все норм, помогите испраить).
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

крайслер
28.04.2012, 15:33
еще одна проблема с меню (исходник PHC D3D Base).
верхний бокс отабаражается как-то странно то, он принимает цвет из игры (пример 2) или его вообще нету (пример 1) ток у теста все норм, помогите испраить).
Может просто он прозрачный и и сливается с фоном? Попробуй поставить альфа-канал на 255 и посмотри что получится...

marik768
28.04.2012, 15:44
а как сюда его прописать
DrawBox(X,Y,WIDTH,T_SPC,C_BOX,pDevice);// Render Menu Header Backround
DrawBorder(X,Y,WIDTH,T_SPC,C_BORDER,pDevice);// set-up border
font->DrawText(MC_FCTR(X,MC_MAXX),Y+2,C_TITLE,"|Phantom Coding Menu|",DT_CENTER|DT_SHADOW);
Может просто он прозрачный и и сливается с фоном? Попробуй поставить альфа-канал на 255 и посмотри что получится...
да не вроде не прозрачный посмотри 3 пример в тесте меню все норм(эту длл я не менял, во все игры инжектил одно и тоже).

slava-zis
28.04.2012, 18:29
Сделай так
//========================menu====================
if( !Create )
{
warl0ck->FontCreate(pDevice);
CreateSprite(pDevice);
Create = true;
}

if( warl0ck->Font() )
warl0ck->OnLostDevice();
else
{
if(warl0ck == NULL)
{
warl0ck = new D3D9Menu("Menu Sprited");
}else{
if(warl0ck->Mmax==0) RebuildMenu(pDevice);

warl0ck->MenuShow(mx,my,pDevice); //init for pb
warl0ck->MenuNav();

if(warl0ck->Mvisible)
{
spHeader->Begin(D3DXSPRITE_ALPHABLEND);
spHeader->Draw(txHeader, NULL, NULL, &pHeader, 0xFFFFFFFF);
spHeader->End();

spFooter->Begin(D3DXSPRITE_ALPHABLEND);
spFooter->Draw(txFooter, NULL, NULL, &pFooter, 0xFFFFFFFF);
spFooter->End();

spBody->Begin(D3DXSPRITE_ALPHABLEND);
spBody->Draw(txBody, NULL, NULL, &pBody, 0xFFFFFFFF);
spBody->End();
}

warl0ck->MenuShow(mx,my,pDevice);
warl0ck->MenuNav();

}
}
што???
у тебя получается что один раз левая операция выполняется, что не имеет смысла только нагрузку делает

warl0ck->MenuShow(mx,my,pDevice);
warl0ck->MenuNav();

Dimedrol1536
28.04.2012, 19:17
што???
у тебя получается что один раз левая операция выполняется, что не имеет смысла только нагрузку делает

warl0ck->MenuShow(mx,my,pDevice);
warl0ck->MenuNav();
Да, это так для выяснения, почему не отображается.

BLACK_DEAD
28.04.2012, 21:20
плиз кинте д3д9 тест в который когда инжектишь он не закрываеться

Dimedrol1536
28.04.2012, 21:46
плиз кинте д3д9 тест в который когда инжектишь он не закрываеться

[Ссылки могут видеть только зарегистрированные и активированные пользователи]
ВТ ([Ссылки могут видеть только зарегистрированные и активированные пользователи] 200d7723f64da3/analysis/1335634659/)

marik768
29.04.2012, 22:42
а по теме есть что?

Добавлено через 16 часов 5 минут
а как этот бокс убрать чтоб его вообще не было, а был просто текст?