Dialog no response :s
#1

* sorry for my bad english ..

pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>

#define Red                 0xFF0000AA
#define Yellow              0xF6FF00AA
#define Aqua                0x00FFFFFF
#define red                 "{FF0000}"
#define blue                "{0059FF}"

#define DIALOG_TDM          (4856)
#define DIALOG_TDM1         (4846)

#define TeamBlue            (0)
#define TeamRed             (1)

// V Credit to snir_sofer V
new name1[MAX_PLAYERS][MAX_PLAYER_NAME];
#define GetName(%0) name1[%0]
#define UpdateName(%0) GetPlayerName(%0, name1[%0], sizeof name1[])
public OnPlayerConnect(playerid) return UpdateName(playerid);
// ^ Credit to snir_sofer ^

forward TDMClose();

enum Enum
{
    bool:Active,
    BluePlayers,
    RedPlayers,
    BlueKills,
    RedKills,
    Prize,
    Time
}
new TDM[Enum], bool:BlueTeam[MAX_PLAYERS char], bool:RedTeam[MAX_PLAYERS char], Guns[MAX_PLAYERS char];

new Float:BluePos[3][4] =
{
    {},
    {},
    {}
};

new Float:RedPos[3][4] =
{
    {},
    {},
    {}
};

public OnFilterScriptInit()
{
    // EnableVehicleFriendlyFire(); // if you use 0.3x ..
    return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(response)
    {
        switch(dialogid)
        {
            case DIALOG_TDM:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        ResetPlayerWeapons(playerid);
                        BlueTeam{playerid} = true;
                        TDM[BluePlayers]++;
                        SetPlayerTeam(playerid, TeamBlue);
                        new rand = random(sizeof BluePos);
                        SetPlayerPos(playerid, BluePos[rand][0], BluePos[rand][1], BluePos[rand][2]);
                        SetPlayerFacingAngle(playerid, BluePos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "blue"Blue Team", ""blue"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                    case 1:
                    {
                        ResetPlayerWeapons(playerid);
                        RedTeam{playerid} = true;
                        TDM[RedPlayers]++;
                        SetPlayerTeam(playerid, TeamRed);
                        new rand = random(sizeof RedPos);
                        SetPlayerPos(playerid, RedPos[rand][0], RedPos[rand][1], RedPos[rand][2]);
                        SetPlayerFacingAngle(playerid, RedPos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "red"Red Team", ""red"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                }
                return true;
            }
            case DIALOG_TDM1:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        Guns{playerid} = 0;
                        GivePlayerWeapon(playerid, 28, 900);
                        GivePlayerWeapon(playerid, 32, 900);
                        GivePlayerWeapon(playerid, 29, 900);
                        GivePlayerWeapon(playerid, 22, 900);
                    }
                    case 1:
                    {
                        Guns{playerid} = 1;
                        GivePlayerWeapon(playerid, 31, 900);
                        GivePlayerWeapon(playerid, 27, 900);
                        GivePlayerWeapon(playerid, 30, 900);
                        GivePlayerWeapon(playerid, 23, 900);
                    }
                    case 2:
                    {
                        Guns{playerid} = 2;
                        GivePlayerWeapon(playerid, 34, 900);
                        GivePlayerWeapon(playerid, 24, 900);
                        GivePlayerWeapon(playerid, 16, 900);
                    }
                }
                return true;
            }
        }
    }
    return true;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(BlueTeam{playerid}) TDM[BluePlayers]--;
    if(RedTeam{playerid}) TDM[RedPlayers]--;
    return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(BlueTeam{killerid}) TDM[BlueKills]++;
    if(RedTeam{killerid}) TDM[RedKills]++;
    return true;
}

public OnPlayerSpawn(playerid)
{
    if(BlueTeam{playerid})
    {
        ResetPlayerWeapons(playerid);
        SetPlayerTeam(playerid, TeamBlue);
        new rand = random(sizeof BluePos);
        SetPlayerPos(playerid, BluePos[rand][0], BluePos[rand][1], BluePos[rand][2]);
        SetPlayerFacingAngle(playerid, BluePos[rand][3]);
        switch(Guns{playerid})
        {
            case 0:
            {
                GivePlayerWeapon(playerid, 28, 900);
                GivePlayerWeapon(playerid, 32, 900);
                GivePlayerWeapon(playerid, 29, 900);
                GivePlayerWeapon(playerid, 22, 900);
            }
            case 1:
            {
                GivePlayerWeapon(playerid, 31, 900);
                GivePlayerWeapon(playerid, 27, 900);
                GivePlayerWeapon(playerid, 30, 900);
                GivePlayerWeapon(playerid, 23, 900);
            }
            case 2:
            {
                GivePlayerWeapon(playerid, 34, 900);
                GivePlayerWeapon(playerid, 24, 900);
                GivePlayerWeapon(playerid, 16, 900);
            }
        }
    }
    if(RedTeam{playerid})
    {
        ResetPlayerWeapons(playerid);
        SetPlayerTeam(playerid, TeamRed);
        new rand = random(sizeof RedPos);
        SetPlayerPos(playerid, RedPos[rand][0], RedPos[rand][1], RedPos[rand][2]);
        SetPlayerFacingAngle(playerid, RedPos[rand][3]);
        switch(Guns{playerid})
        {
            case 0:
            {
                GivePlayerWeapon(playerid, 28, 900);
                GivePlayerWeapon(playerid, 32, 900);
                GivePlayerWeapon(playerid, 29, 900);
                GivePlayerWeapon(playerid, 22, 900);
            }
            case 1:
            {
                GivePlayerWeapon(playerid, 31, 900);
                GivePlayerWeapon(playerid, 27, 900);
                GivePlayerWeapon(playerid, 30, 900);
                GivePlayerWeapon(playerid, 23, 900);
            }
            case 2:
            {
                GivePlayerWeapon(playerid, 34, 900);
                GivePlayerWeapon(playerid, 24, 900);
                GivePlayerWeapon(playerid, 16, 900);
            }
        }
    }
    return true;
}

public TDMClose()
{
    if(TDM[Active])
    {
        TDM[Active] = false;
        TDM[BluePlayers] = 0;
        TDM[RedPlayers] = 0;
        TDM[BlueKills] = 0;
        TDM[RedKills] = 0;
        TDM[Prize] = 0;
        TDM[Time] = 0;
        for(new i = 0; i < GetMaxPlayers(); i++) if(BlueTeam{i} || RedTeam{i})
        {
            BlueTeam{i} = false;
            RedTeam{i} = false;
            SpawnPlayer(i);
            SetPlayerTeam(i, NO_TEAM);
        }
        SendClientMessageToAll(Yellow, "The Team Death Match closed by the system.");
    }
    return true;
}

CMD:tdmopen(playerid, params[])
{
    new string[120];
    if(!IsPlayerAdmin(playerid)) return false;
    if(TDM[Active]) return SendClientMessage(playerid, Red, "The TDM is open, to close type: /TDMClose");
    if(sscanf(params, "ii", TDM[Prize], TDM[Time])) return SendClientMessage(playerid, Red, "/TDMOpen [Prize] [Time (Seconds)]");
    TDM[Active] = true;
    SetTimer("TDMClose", 1000*TDM[Time], false);
    format(string, sizeof string, "The admin %s opened the Team Death Match for %d seconds [prize for winners: %d$] !", GetName(playerid), TDM[Time], TDM[Prize]);
    SendClientMessageToAll(Aqua, string);
    return true;
}

CMD:tdmclose(playerid, params[])
{
    new string[MAX_PLAYER_NAME+41];
    if(!IsPlayerAdmin(playerid)) return false;
    if(!TDM[Active]) return SendClientMessage(playerid, Red, "The TDM is close, to open type: /TDMOpen");
    TDM[Active] = false;
    TDM[BluePlayers] = 0;
    TDM[RedPlayers] = 0;
    TDM[BlueKills] = 0;
    TDM[RedKills] = 0;
    TDM[Prize] = 0;
    TDM[Time] = 0;
    for(new i = 0; i < GetMaxPlayers(); i++) if(BlueTeam{i} || RedTeam{i})
    {
        BlueTeam{i} = false;
        RedTeam{i} = false;
        SpawnPlayer(i);
        SetPlayerTeam(i, NO_TEAM);
    }
    format(string, sizeof string, "The admin %s closed the Team Death Match.", GetName(playerid));
    SendClientMessageToAll(Yellow, string);
    return true;
}

//TDMOut
//ChangeGuns
//ChangeTeam

CMD:tdm(playerid, params[])
{
    if(!TDM[Active]) return SendClientMessage(playerid, Red, "The TDM is close.");
    if(BlueTeam[playerid] || RedTeam[playerid])
    {
        BlueTeam{playerid} = false;
        RedTeam{playerid} = false;
        SpawnPlayer(playerid);
        SetPlayerTeam(playerid, NO_TEAM);
        return 1;
    }
    ShowPlayerDialog(playerid, DIALOG_TDM, DIALOG_STYLE_LIST, "Team Death Match [TDM]", ""blue"Blue Team\n"red"Red Team", "Next", "Cancel");
    return true;
}
this is my fs ..
why the dialogs no response
Reply
#2

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
            case DIALOG_TDM:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        ResetPlayerWeapons(playerid);
                        BlueTeam{playerid} = true;
                        TDM[BluePlayers]++;
                        SetPlayerTeam(playerid, TeamBlue);
                        new rand = random(sizeof BluePos);
                        SetPlayerPos(playerid, BluePos[rand][0], BluePos[rand][1], BluePos[rand][2]);
                        SetPlayerFacingAngle(playerid, BluePos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "blue"Blue Team", ""blue"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                    case 1:
                    {
                        ResetPlayerWeapons(playerid);
                        RedTeam{playerid} = true;
                        TDM[RedPlayers]++;
                        SetPlayerTeam(playerid, TeamRed);
                        new rand = random(sizeof RedPos);
                        SetPlayerPos(playerid, RedPos[rand][0], RedPos[rand][1], RedPos[rand][2]);
                        SetPlayerFacingAngle(playerid, RedPos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "red"Red Team", ""red"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                }
                return true;
            }
            case DIALOG_TDM1:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        Guns{playerid} = 0;
                        GivePlayerWeapon(playerid, 28, 900);
                        GivePlayerWeapon(playerid, 32, 900);
                        GivePlayerWeapon(playerid, 29, 900);
                        GivePlayerWeapon(playerid, 22, 900);
                    }
                    case 1:
                    {
                        Guns{playerid} = 1;
                        GivePlayerWeapon(playerid, 31, 900);
                        GivePlayerWeapon(playerid, 27, 900);
                        GivePlayerWeapon(playerid, 30, 900);
                        GivePlayerWeapon(playerid, 23, 900);
                    }
                    case 2:
                    {
                        Guns{playerid} = 2;
                        GivePlayerWeapon(playerid, 34, 900);
                        GivePlayerWeapon(playerid, 24, 900);
                        GivePlayerWeapon(playerid, 16, 900);
                    }
                }
                return 1;
            }
        }
        return 1;
}
Reply
#3

Quote:
Originally Posted by Jarnu
Посмотреть сообщение
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
            case DIALOG_TDM:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        ResetPlayerWeapons(playerid);
                        BlueTeam{playerid} = true;
                        TDM[BluePlayers]++;
                        SetPlayerTeam(playerid, TeamBlue);
                        new rand = random(sizeof BluePos);
                        SetPlayerPos(playerid, BluePos[rand][0], BluePos[rand][1], BluePos[rand][2]);
                        SetPlayerFacingAngle(playerid, BluePos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "blue"Blue Team", ""blue"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                    case 1:
                    {
                        ResetPlayerWeapons(playerid);
                        RedTeam{playerid} = true;
                        TDM[RedPlayers]++;
                        SetPlayerTeam(playerid, TeamRed);
                        new rand = random(sizeof RedPos);
                        SetPlayerPos(playerid, RedPos[rand][0], RedPos[rand][1], RedPos[rand][2]);
                        SetPlayerFacingAngle(playerid, RedPos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "red"Red Team", ""red"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                }
                return true;
            }
            case DIALOG_TDM1:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        Guns{playerid} = 0;
                        GivePlayerWeapon(playerid, 28, 900);
                        GivePlayerWeapon(playerid, 32, 900);
                        GivePlayerWeapon(playerid, 29, 900);
                        GivePlayerWeapon(playerid, 22, 900);
                    }
                    case 1:
                    {
                        Guns{playerid} = 1;
                        GivePlayerWeapon(playerid, 31, 900);
                        GivePlayerWeapon(playerid, 27, 900);
                        GivePlayerWeapon(playerid, 30, 900);
                        GivePlayerWeapon(playerid, 23, 900);
                    }
                    case 2:
                    {
                        Guns{playerid} = 2;
                        GivePlayerWeapon(playerid, 34, 900);
                        GivePlayerWeapon(playerid, 24, 900);
                        GivePlayerWeapon(playerid, 16, 900);
                    }
                }
                return 1;
            }
        }
        return 1;
}
ok thanks but if I click on "Cancel" then the response will be similar to the "Ok" ..
Reply
#4

pawn Код:
if( !response ) //if the second button was pressed
{
    //here put the code when a player presses cancel.
}
Reply
#5

Quote:
Originally Posted by Jarnu
Посмотреть сообщение
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
            case DIALOG_TDM:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        ResetPlayerWeapons(playerid);
                        BlueTeam{playerid} = true;
                        TDM[BluePlayers]++;
                        SetPlayerTeam(playerid, TeamBlue);
                        new rand = random(sizeof BluePos);
                        SetPlayerPos(playerid, BluePos[rand][0], BluePos[rand][1], BluePos[rand][2]);
                        SetPlayerFacingAngle(playerid, BluePos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "blue"Blue Team", ""blue"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                    case 1:
                    {
                        ResetPlayerWeapons(playerid);
                        RedTeam{playerid} = true;
                        TDM[RedPlayers]++;
                        SetPlayerTeam(playerid, TeamRed);
                        new rand = random(sizeof RedPos);
                        SetPlayerPos(playerid, RedPos[rand][0], RedPos[rand][1], RedPos[rand][2]);
                        SetPlayerFacingAngle(playerid, RedPos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "red"Red Team", ""red"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                }
                return true;
            }
            case DIALOG_TDM1:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        Guns{playerid} = 0;
                        GivePlayerWeapon(playerid, 28, 900);
                        GivePlayerWeapon(playerid, 32, 900);
                        GivePlayerWeapon(playerid, 29, 900);
                        GivePlayerWeapon(playerid, 22, 900);
                    }
                    case 1:
                    {
                        Guns{playerid} = 1;
                        GivePlayerWeapon(playerid, 31, 900);
                        GivePlayerWeapon(playerid, 27, 900);
                        GivePlayerWeapon(playerid, 30, 900);
                        GivePlayerWeapon(playerid, 23, 900);
                    }
                    case 2:
                    {
                        Guns{playerid} = 2;
                        GivePlayerWeapon(playerid, 34, 900);
                        GivePlayerWeapon(playerid, 24, 900);
                        GivePlayerWeapon(playerid, 16, 900);
                    }
                }
                return 1;
            }
        }
        return 1;
}
Quote:
Originally Posted by LarzI
Посмотреть сообщение
pawn Код:
if( !response ) //if the second button was pressed
{
    //here put the code when a player presses cancel.
}
Now it works thanks but there is another problem ..
It only works if I put it as a mode and I do want to put it as a filter script ..
Reply
#6

I have no idea if this is true or not, but it may be caused by ID-conflicts between GM and FS if you have dialogs in both.

Try defining TDM and TDM1 as unique IDs which is probably never used. Highest possible ID is 32767, so you have lots of integers to choose from.

Example:

pawn Код:
#define TDM (22201) //222 is the prefix - (0)1 is the specifying ID.
#define TDM1 (22202) //222 still prefix - (0)2 is the specifying ID.
Tell me if this solves anything.
Reply
#7

Umm try using
pawn Код:
return 0; in place of return 1; in dialog response
In past i faced this problem and i got fixed by changing return 1; to return 0;

Maybe it can help you
Reply
#8

Quote:
Originally Posted by Gamer_007
Посмотреть сообщение
Umm try using
pawn Код:
return 0; in place of return 1; in dialog response
In past i faced this problem and i got fixed by changing return 1; to return 0;

Maybe it can help you
I can confirm this. The callback has to return 0 just like OnPlayerCommandText. Sorry for not thinking about this earlier.
Reply
#9

Quote:
Originally Posted by LarzI
Посмотреть сообщение
I have no idea if this is true or not, but it may be caused by ID-conflicts between GM and FS if you have dialogs in both.

Try defining TDM and TDM1 as unique IDs which is probably never used. Highest possible ID is 32767, so you have lots of integers to choose from.

Example:

pawn Код:
#define TDM (22201) //222 is the prefix - (0)1 is the specifying ID.
#define TDM1 (22202) //222 still prefix - (0)2 is the specifying ID.
Tell me if this solves anything.
Quote:
Originally Posted by Gamer_007
Посмотреть сообщение
Umm try using
pawn Код:
return 0; in place of return 1; in dialog response
In past i faced this problem and i got fixed by changing return 1; to return 0;

Maybe it can help you
Quote:
Originally Posted by LarzI
Посмотреть сообщение
I can confirm this. The callback has to return 0 just like OnPlayerCommandText. Sorry for not thinking about this earlier.
not working ..
Reply
#10

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        switch(dialogid)
        {
            case DIALOG_TDM:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        ResetPlayerWeapons(playerid);
                        BlueTeam{playerid} = true;
                        TDM[BluePlayers]++;
                        SetPlayerTeam(playerid, TeamBlue);
                        new rand = random(sizeof BluePos);
                        SetPlayerPos(playerid, BluePos[rand][0], BluePos[rand][1], BluePos[rand][2]);
                        SetPlayerFacingAngle(playerid, BluePos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "blue"Blue Team", ""blue"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                    case 1:
                    {
                        ResetPlayerWeapons(playerid);
                        RedTeam{playerid} = true;
                        TDM[RedPlayers]++;
                        SetPlayerTeam(playerid, TeamRed);
                        new rand = random(sizeof RedPos);
                        SetPlayerPos(playerid, RedPos[rand][0], RedPos[rand][1], RedPos[rand][2]);
                        SetPlayerFacingAngle(playerid, RedPos[rand][3]);
                        ShowPlayerDialog(playerid, DIALOG_TDM1, DIALOG_STYLE_LIST, "Team Death Match [TDM] - "red"Red Team", ""red"Uzi, Tec-9, MP5 and 9mm\nM4, Combat Shotgun, AK-47 and Silenced 9mm\nSniper, Desert Eagle and Grenade", "Ok", "Cancel");
                    }
                }
                return 0;
            }
            case DIALOG_TDM1:
            {
                switch(listitem)
                {
                    case 0:
                    {
                        Guns{playerid} = 0;
                        GivePlayerWeapon(playerid, 28, 900);
                        GivePlayerWeapon(playerid, 32, 900);
                        GivePlayerWeapon(playerid, 29, 900);
                        GivePlayerWeapon(playerid, 22, 900);
                    }
                    case 1:
                    {
                        Guns{playerid} = 1;
                        GivePlayerWeapon(playerid, 31, 900);
                        GivePlayerWeapon(playerid, 27, 900);
                        GivePlayerWeapon(playerid, 30, 900);
                        GivePlayerWeapon(playerid, 23, 900);
                    }
                    case 2:
                    {
                        Guns{playerid} = 2;
                        GivePlayerWeapon(playerid, 34, 900);
                        GivePlayerWeapon(playerid, 24, 900);
                        GivePlayerWeapon(playerid, 16, 900);
                    }
                }
                return 0;
            }
        }
        return 1;
}
Try now^^
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)