[Include] 3DMenu
#1

This include allows you to create new type of menu instead of standart menus or dialogs.
  • Creating of menu for each player.
  • Custom rotation for menu.
  • Setting params for every box like for object.
  • Auto-calculating of new lines and box positions.
Screenshots: imgur
URL: github.com
Reply
#2

That is really nice....
Reply
#3

Woah looks very nice, but you could try to improve the image.
Reply
#4

Its look great
Reply
#5

Coool good job!
Reply
#6

It looks great man really wonderful job.
Reply
#7

Nice work. Will surely use it or will make similar to this. Thanks. Rep +5 Added
Reply
#8

Pretty cool. But this was iPleomax's idea. , good job though and thanks for share

Edit:

You could do

pawn Код:
#if defined FILTERSCRIPT
hook OnFilterScriptInit()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        SelectedMenu[i] = -1;
        SelectedBox[i] = -1;
    }
    for(new i = 0; i < MAX_MENUS; i++)
    {
        for(new b = 0; b < 4; b++) MenuObjects[i][b] = INVALID_OBJECT_ID;
        MenuIsExist[i] = false;
        MenuBoxes[i] = 0;
    }
}
hook OnFilterScriptExit()
{
    for(new i = 0; i < MAX_MENUS; i++)
    {
        if(MenuIsExist[i]) Destroy3DMenu(i);
    }
}
#else
hook OnGameModeInit()
{
    for(new i = 0; i < MAX_MENUS; i++)
    {
        for(new b = 0; b < 4; b++) MenuObjects[i][b] = INVALID_OBJECT_ID;
        MenuBoxes[i] = 0;
        MenuIsExist[i] = false;
    }
}
hook OnGameModeExit()
{
    for(new i = 0; i < MAX_MENUS; i++)
    {
        if(MenuIsExist[i]) Destroy3DMenu(i);
    }
}
#endif
A better method to check before hooking.
Reply
#9

Yes, I saw the video of iPleomax...But it's not my fault that I released it early...
Reply
#10

Please, make a example code, like this image, sorry for my bad english :S
Reply
#11

Nice
Reply
#12

Quote:
Originally Posted by TheArcher
Посмотреть сообщение
Pretty cool. But this was iPleomax's idea. , good job though and thanks for share

Edit:

You could do

pawn Код:
#if defined FILTERSCRIPT
hook OnFilterScriptInit()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        SelectedMenu[i] = -1;
        SelectedBox[i] = -1;
    }
    for(new i = 0; i < MAX_MENUS; i++)
    {
        for(new b = 0; b < 4; b++) MenuObjects[i][b] = INVALID_OBJECT_ID;
        MenuIsExist[i] = false;
        MenuBoxes[i] = 0;
    }
}
hook OnFilterScriptExit()
{
    for(new i = 0; i < MAX_MENUS; i++)
    {
        if(MenuIsExist[i]) Destroy3DMenu(i);
    }
}
#else
hook OnGameModeInit()
{
    for(new i = 0; i < MAX_MENUS; i++)
    {
        for(new b = 0; b < 4; b++) MenuObjects[i][b] = INVALID_OBJECT_ID;
        MenuBoxes[i] = 0;
        MenuIsExist[i] = false;
    }
}
hook OnGameModeExit()
{
    for(new i = 0; i < MAX_MENUS; i++)
    {
        if(MenuIsExist[i]) Destroy3DMenu(i);
    }
}
#endif
A better method to check before hooking.
Yes, you are right, but when I try to do it on my PC, this doesn't work.....
Reply
#13

amazing work keep it up ^_^ i might us for my server update
Reply
#14

Nice
Reply
#15

Very creative.
Reply
#16

Cool, I guess. Box selection with arrows would be much more convenient.
And another thing, that I don't like - you are creating global objects, when creating boxes. That means, although nobody is using the menu, the objects will still be there.
Reply
#17

good fs.
Reply
#18

Wow, very nice.
Reply
#19

Quote:
Originally Posted by wups
Посмотреть сообщение
Cool, I guess. Box selection with arrows would be much more convenient.
And another thing, that I don't like - you are creating global objects, when creating boxes. That means, although nobody is using the menu, the objects will still be there.
Ok, I'll add params "playerid" and "worldid"
Reply
#20

Quote:
Originally Posted by SDraw
Посмотреть сообщение
Ok, I'll add params "playerid" and "worldid"
worldid is totaly useless when you have playerid param.
Anyway, you should only create the objects when the Show3DMenu function is used, and destroy them when Hide3DMenu function is called.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)