SA-MP Forums Archive
mSelection not working: - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: mSelection not working: (/showthread.php?tid=522999)



mSelection not working: - Twizted - 30.06.2014

The following code doesn't work. It's set to show if the player is a newly registered players, and it does. But when you click on a skin or on a button, nothing happens: it just stays there, frozen. What should I do?

pawn Код:
public OnPlayerModelSelection(playerid, response, listid, modelid)
{
    new string[35];

    if(listid == skinlist)
    {
        if(response)
        {
            format(string, 30, "{3685BA}SERVER: {FFFFFF}You have set your skin to ID %d!", modelid);
            SendClientMessage(playerid, -1, string);
            SetPlayerSkin(playerid, modelid);
            return 1;
        }

        else SendClientMessage(playerid, -1, "{3685BA}SERVER: {FFFFFF}You must select a skin.");
        ShowModelSelectionMenu(playerid, skinlist, "Skin Selection");
        return 1;
    }
   
    return 1;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
    if(pNewlyRegged[playerid])
    {
        ShowModelSelectionMenu(playerid, skinlist, "Skin Selection");
        RandomSpawnLoc(playerid);
    }

    if(IsPlayerConnected(playerid))
    {
        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
        SetPlayerToTeamColor(playerid);
        Logged[playerid] = 1;
    }
   
    if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0)
    {
        SetPlayerPos(playerid, 1271.3654,181.0756,19.4705);
        Logged[playerid] = 1;
    }
    else
    {
        SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
        Logged[playerid] = 1;
    }
   
    return 1;
}



Re: mSelection not working: - SupaVZ - 30.06.2014

Do you have the skin notepad in the scriptfiles or mselection defines?


Re: mSelection not working: - LivingLikeYouDo - 30.06.2014

Make sure you have defined the files first.

Try this:
pawn Код:
#include <a_samp>
#include <mSelection>

new skinlist = mS_INVALID_LISTID;
public OnFilterScriptInit()
{
    skinlist = LoadModelSelectionMenu("skins.txt");
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(pNewlyRegged[playerid])
    {
        ShowModelSelectionMenu(playerid, skinlist, "Skin Selection");
        RandomSpawnLoc(playerid);
    }

    if(IsPlayerConnected(playerid))
    {
        SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
        SetPlayerToTeamColor(playerid);
        Logged[playerid] = 1;
    }

    if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0)
    {
        SetPlayerPos(playerid, 1271.3654,181.0756,19.4705);
        Logged[playerid] = 1;
    }
    else
    {
        SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
        Logged[playerid] = 1;
    }

    return 1;
}

public OnPlayerModelSelection(playerid, response, listid, modelid)
{
   
    if(listid == skinlist)
    {
        if(response)
        {
            new string[35];
            format(string, 30, "{3685BA}SERVER: {FFFFFF}You have set your skin to ID %d!", modelid);
            SendClientMessage(playerid, -1, string);
        }
        else SendClientMessage(playerid, -1, "{3685BA}SERVER: {FFFFFF}You must select a skin.");
        ShowModelSelectionMenu(playerid, skinlist, "Skin Selection");
        return 1;
    }
    return 1;
}
Also, make sure you have skins.txt in your scriptfiles folder.


Re: mSelection not working: - Twizted - 30.06.2014

The include was there, so was "skinlist". So that's definitely not the problem. And yes, there was the skins.txt file in the Scriptfiles folder.

pawn Код:
#include <mSelection>

new skinlist = mS_INVALID_LISTID;

public OnGameModeInit()
{
    AddPlayerClass(21,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
    AddPlayerClass(59,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
    /* <-------------------------------------------> */
    ShowPlayerMarkers(0);
    ShowNameTags(1);
    DisableInteriorEnterExits();
    EnableStuntBonusForAll(0);
    SetNameTagDrawDistance(10.0);
    skinlist = LoadModelSelectionMenu("skins.txt");
    // =========== TIMERS ===========
    SetTimer("MoneyUpdate",1000,1);
    SetTimer("SaveAccounts", SECONDS(13), 1);
    return 1;
}



Re: mSelection not working: - LivingLikeYouDo - 30.06.2014

Hmmm....Are you skipping OnPlayerRequestClass?


Re: mSelection not working: - Twizted - 30.06.2014

I'm not using the "OnPlayerRequestClass" callback because the skin selection is done after the player spawns. When the player connects to the server, we use a function that hides the spawn buttons.

pawn Код:
TogglePlayerSpectating(playerid, true); // hiding spawn button



Re: mSelection not working: - R0 - 30.06.2014

Well,you set player's spectating to true,you must set it to false when showing him the model selection


Re: mSelection not working: - LivingLikeYouDo - 30.06.2014

You should set the TogglePlayerSpectating to false when you are going to show him the model selection textdraw.

If that doesn't works, then I can't find a way through it, maybe you should debug the script by putting a print function after the OnPlayerModelSelection callback to check weather the callback even works or not.
Also, are you using the latest mSelection version?


Re: mSelection not working: - Twizted - 30.06.2014

Alright. I added a line to OnPlayerModelSelection callback, a print line, in order to debug. The result? It didn't print.

pawn Код:
public OnPlayerModelSelection(playerid, response, listid, modelid)
{
    new string[35];
    print("OnPlayerModelSelection works"); //doesn't print

    if(listid == skinlist)
    {
        if(response)
        {
            format(string, 30, "{3685BA}SERVER: {FFFFFF}You have set your skin to ID %d!", modelid);
            SendClientMessage(playerid, -1, string);
            SetPlayerSkin(playerid, modelid);
            return 1;
        }

        else SendClientMessage(playerid, -1, "{3685BA}SERVER: {FFFFFF}You must select a skin.");
        ShowModelSelectionMenu(playerid, skinlist, "Skin Selection");
        return 1;
    }
   
    return 1;
}



Re: mSelection not working: - LivingLikeYouDo - 30.06.2014

That means the callback isn't being called...
Do you have the latest version of mSelection?