Проблема с SAMP 0.3.8
#1

Столкнулся с проблемой выбора скина в версии 0.3.8. На 0.3.7 всё как положено работает, но на 0.3.8 начинаются непонятные проблемы. Почему-то меню просто перестаёт работать, оно как бы есть, но если нажимать на кнопки нечего происходить не будет и вместо скинов которые я указал, появился скин CJ. НО, если полностью отключить загрузку моделей в server.cfg, то всё будет работать как и на 0.3.7.
Reply
#2

Хммм, я, конечно, не уверен, но вполне возможно, что, вероятно, проблема, скорее всего, в коде. Но это не точно.
Reply
#3

Код:
stock Menu()
{
    bomj_menu[0] = CreateMenu("Victim", 1, 50.0, 160.0, 100.0);
        SetMenuColumnHeader(bomj_menu[0], 0, "Choose Skin");
        AddMenuItem(bomj_menu[0], 0, "Next");
        AddMenuItem(bomj_menu[0], 0, "Previous");
        AddMenuItem(bomj_menu[0], 0, "Save");
        bomj_menu[1] = CreateMenu("Victim", 1, 50.0, 160.0, 100.0);
        SetMenuColumnHeader(bomj_menu[1], 0, "Choose Skin");
        AddMenuItem(bomj_menu[1], 0, "Next");
        AddMenuItem(bomj_menu[1], 0, "Previous");
        AddMenuItem(bomj_menu[1], 0, "Save");
}
Код:
public OnPlayerSelectedMenuRow(playerid, row)
{
        if(GetPlayerMenu(playerid) == bomj_menu[0])
        {
            switch(row)
            {
                case 0:
                {
                    switch(select_skin[playerid])
                    {
                        case 1: player[playerid][pskin] = 79;
                        case 2: player[playerid][pskin] = 134;
                        case 3: player[playerid][pskin] = 135;
                        case 4: player[playerid][pskin] = 137;
                        case 5: player[playerid][pskin] = 200;
                        case 6: player[playerid][pskin] = 230;
                        case 7: player[playerid][pskin] = 78;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] ++;
                                if(select_skin[playerid] == 8) select_skin[playerid] = 1;
                                ShowMenuForPlayer(bomj_menu[0], playerid);
                }
                case 1:
                {
                    switch(select_skin[playerid])
                    {
                        case 3: player[playerid][pskin] = 79;
                        case 4: player[playerid][pskin] = 134;
                        case 5: player[playerid][pskin] = 135;
                        case 6: player[playerid][pskin] = 137;
                        case 7: player[playerid][pskin] = 200;
                        case 1: player[playerid][pskin] = 230;
                        case 2: player[playerid][pskin] = 78;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] --;
                                if(select_skin[playerid] == 0) select_skin[playerid] = 7;
                                ShowMenuForPlayer(bomj_menu[0], playerid);
                }
                case 2: CreateAccount(playerid);
            }
        }
        else if(GetPlayerMenu(playerid) == bomj_menu[1])
        {
            switch(row)
            {
                case 0:
                {
                    switch(select_skin[playerid])
                    {
                        case 8: player[playerid][pskin] = 39;
                        case 9: player[playerid][pskin] = 54;
                        case 10: player[playerid][pskin] = 10;
                        case 11: player[playerid][pskin] = 77;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] ++;
                                if(select_skin[playerid] == 12) select_skin[playerid] = 8;
                                ShowMenuForPlayer(bomj_menu[1], playerid);
                }
                case 1:
                {
                    switch(select_skin[playerid])
                    {
                        case 10: player[playerid][pskin] = 39;
                        case 11: player[playerid][pskin] = 54;
                        case 8: player[playerid][pskin] = 10;
                        case 9: player[playerid][pskin] = 77;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] --;
                                if(select_skin[playerid] == 7) select_skin[playerid] = 11;
                                ShowMenuForPlayer(bomj_menu[1], playerid);
                }
                case 2: CreateAccount(playerid);
            }
        }
        return true;
}
Reply
#4

Скорее всего код, но 038 в RC ещё, советую подождать до релиза и пробовать.
Reply
#5

Quote:
Originally Posted by nateand
Посмотреть сообщение
Код:
stock Menu()
{
    bomj_menu[0] = CreateMenu("Victim", 1, 50.0, 160.0, 100.0);
        SetMenuColumnHeader(bomj_menu[0], 0, "Choose Skin");
        AddMenuItem(bomj_menu[0], 0, "Next");
        AddMenuItem(bomj_menu[0], 0, "Previous");
        AddMenuItem(bomj_menu[0], 0, "Save");
        bomj_menu[1] = CreateMenu("Victim", 1, 50.0, 160.0, 100.0);
        SetMenuColumnHeader(bomj_menu[1], 0, "Choose Skin");
        AddMenuItem(bomj_menu[1], 0, "Next");
        AddMenuItem(bomj_menu[1], 0, "Previous");
        AddMenuItem(bomj_menu[1], 0, "Save");
}
Код:
public OnPlayerSelectedMenuRow(playerid, row)
{
        if(GetPlayerMenu(playerid) == bomj_menu[0])
        {
            switch(row)
            {
                case 0:
                {
                    switch(select_skin[playerid])
                    {
                        case 1: player[playerid][pskin] = 79;
                        case 2: player[playerid][pskin] = 134;
                        case 3: player[playerid][pskin] = 135;
                        case 4: player[playerid][pskin] = 137;
                        case 5: player[playerid][pskin] = 200;
                        case 6: player[playerid][pskin] = 230;
                        case 7: player[playerid][pskin] = 78;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] ++;
                                if(select_skin[playerid] == 8) select_skin[playerid] = 1;
                                ShowMenuForPlayer(bomj_menu[0], playerid);
                }
                case 1:
                {
                    switch(select_skin[playerid])
                    {
                        case 3: player[playerid][pskin] = 79;
                        case 4: player[playerid][pskin] = 134;
                        case 5: player[playerid][pskin] = 135;
                        case 6: player[playerid][pskin] = 137;
                        case 7: player[playerid][pskin] = 200;
                        case 1: player[playerid][pskin] = 230;
                        case 2: player[playerid][pskin] = 78;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] --;
                                if(select_skin[playerid] == 0) select_skin[playerid] = 7;
                                ShowMenuForPlayer(bomj_menu[0], playerid);
                }
                case 2: CreateAccount(playerid);
            }
        }
        else if(GetPlayerMenu(playerid) == bomj_menu[1])
        {
            switch(row)
            {
                case 0:
                {
                    switch(select_skin[playerid])
                    {
                        case 8: player[playerid][pskin] = 39;
                        case 9: player[playerid][pskin] = 54;
                        case 10: player[playerid][pskin] = 10;
                        case 11: player[playerid][pskin] = 77;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] ++;
                                if(select_skin[playerid] == 12) select_skin[playerid] = 8;
                                ShowMenuForPlayer(bomj_menu[1], playerid);
                }
                case 1:
                {
                    switch(select_skin[playerid])
                    {
                        case 10: player[playerid][pskin] = 39;
                        case 11: player[playerid][pskin] = 54;
                        case 8: player[playerid][pskin] = 10;
                        case 9: player[playerid][pskin] = 77;
                    }
                    SetPlayerSkin(playerid, player[playerid][pskin]);
                    select_skin[playerid] --;
                                if(select_skin[playerid] == 7) select_skin[playerid] = 11;
                                ShowMenuForPlayer(bomj_menu[1], playerid);
                }
                case 2: CreateAccount(playerid);
            }
        }
        return true;
}
Может тебе будет лучше сделать так

PHP код:
new SkinChoice[2][7] =
{
    {
7913413513720023078}, //- Мужики
    
{39541077//- Женщины 
};
public 
OnPlayerSelectedMenuRow(playeridrow)
{
        if(
GetPlayerMenu(playerid) == bomj_menu[0])
        {
            switch(
row)
            {
                case 
0:
                {
                    
select_skin[playerid] ++;
                    if(
select_skin[playerid] >= 8select_skin[playerid] = 0;
                    
SetPlayerSkin(playeridSkinChoice[0][player[playerid][pskin]]);
                    
ShowMenuForPlayer(bomj_menu[0], playerid);
                }
                case 
1:
                {
                    
select_skin[playerid] --;
                    if(
select_skin[playerid] < 0select_skin[playerid] = 6;
                    
SetPlayerSkin(playeridSkinChoice[0][player[playerid][pskin]]);
                    
ShowMenuForPlayer(bomj_menu[0], playerid);
                }
                case 
2CreateAccount(playerid);
            }
        }
        else if(
GetPlayerMenu(playerid) == bomj_menu[1])
        {
            switch(
row)
            {
                case 
0:
                {
                    
select_skin[playerid] ++;
                    if(
select_skin[playerid] >= 4select_skin[playerid] = 0;
                    
SetPlayerSkin(playeridSkinChoice[1][player[playerid][pskin]]);
                    
ShowMenuForPlayer(bomj_menu[1], playerid);
                }
                case 
1:
                {
                    
select_skin[playerid] --;
                    if(
select_skin[playerid] < 0select_skin[playerid] = 3;
                    
SetPlayerSkin(playeridSkinChoice[1][player[playerid][pskin]]);
                    
ShowMenuForPlayer(bomj_menu[1], playerid);
                }
                case 
2CreateAccount(playerid);
            }
        }
        return 
true;
}
Замени где используется 
SetPlayerSkin
(playeridplayer[playerid][pskin]);
на
SetPlayerSkin
(playeridSkinChoice[0/*Пол*/][player[playerid][pskin]]); 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)