Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Не запускаются диалоговые окна при регистрации/авторизации

Статус
В этой теме нельзя размещать новые ответы.

Jimy

Новичок
Всем привет. При компиляции ошибок не произошло. Мюсикл лог ошибок не выдал. Единственное что думаю может ошибка в мюсикл, а именно я писал пример с р8, а сам имею Р39-2. Вот данный код:
main(){}
PHP:
main(){}
//=======================[Инклуды]==========================
#include <a_samp>
#include <a_mysql>
//=======================[Дефайны]==========================
#define SPD             ShowPlayerDialog
#define DSI             DIALOG_STYLE_INPUT
#define DSM             DIALOG_STYLE_MSGBOX
#define DSL             DIALOG_STYLE_LIST
#define SCM             SendClientMessage
#define DSP             DIALOG_STYLE_PASSWORD
//=======================[Цвета]============================
#define COLOR_GREY      0xAFAFAFAA
#define COLOR_GREEN     0x33AA33AA
//=======================[MySQL]============================
#define mysql_host      "localhost"
#define mysql_user      "root"
#define mysql_bd        "стоял мой"
#define mysql_pass      ""
#define TABLE_ACCOUNT   "accounts"
//=======================[Переменные]=======================
new connectionHandl;
new query[2048];
new ClothesRound[MAX_PLAYERS];
new Text:ButtonLeft;
new Text:ButtonRight;
new Text:ButtonSelect;
new SelectCharRegID[MAX_PLAYERS];
new ChosenSkin[MAX_PLAYERS];
new totalstring[1024];
new PlayerLogged[MAX_PLAYERS];
//=======================[pInfo]============================
enum pInfo
{
    pID,
    pPassword[16],
    pMail[64],
    pIP[20],
    pRegData[16],
    pSex,
    pModel,
    pLevel,
    pReferal[MAX_PLAYER_NAME],
    pSendername[MAX_PLAYER_NAME]
};
new Player[MAX_PLAYERS][pInfo];
//=======================[Паблики]==========================
public OnGameModeInit()
{
    connectionHandl = mysql_connect(mysql_host, mysql_user, mysql_bd, mysql_pass);
    mysql_log();
    SetGameModeText("Role-Play");
    LoadTextDraws();
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid, Player[playerid][pSendername], MAX_PLAYER_NAME);
    mysql_format(connectionHandl,query,128,"SELECT `Name` FROM "TABLE_ACCOUNT" WHERE `Name` = '%e'", Player[playerid][pSendername]), mysql_function_query(connectionHandl, query, true, "OnPlayerRegCheck", "i", playerid);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(ClothesRound[playerid] == 1)
    {
        SetPlayerVirtualWorld(playerid, playerid);
        SetPlayerInterior(playerid, 0);
        SetPlayerPos(playerid, 1526.03,-1346.4008,330.0234);
        SetPlayerFacingAngle(playerid,63.8611);
        SetPlayerCameraPos(playerid,1520.0631,-1343.1326,330.6207);
        SetPlayerCameraLookAt(playerid,1526.0348,-1346.2710,330.0553);
        TogglePlayerControllable(playerid, 0);
        TextDrawShowForPlayer(playerid,ButtonLeft);
        TextDrawShowForPlayer(playerid,ButtonRight);
        TextDrawShowForPlayer(playerid,ButtonSelect);
        SelectTextDraw(playerid, 0xFF4040AA);
        if(Player[playerid][pSex] == 1) SetPlayerSkin(playerid, 78), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 78;
        else SetPlayerSkin(playerid, 12), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 12;
    }
    if(Player[playerid][pLevel] >= 1 && Player[playerid][pLevel] < 3)
    {
        SetPlayerPos(playerid,-1967.6738,115.7038,27.6875);
        SetPlayerFacingAngle(playerid, 101.2675);
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        return 1;
    }
    if(Player[playerid][pLevel] >=3 && Player[playerid][pLevel] < 7)
    {
        SetPlayerPos(playerid,-1967.6738,115.7038,27.6875);
        SetPlayerFacingAngle(playerid, 357.1);
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        return 1;
    }
    if(Player[playerid][pLevel] >=7 && Player[playerid][pLevel] < 100)
    {
        SetPlayerPos(playerid,2847.5063,1288.6849,11.3906);
        SetPlayerFacingAngle(playerid, 355.6);
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        return 1;
    }
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
    case 1:
        {
            if(!response) return KickD(playerid); SCM(playerid, 0xFF5454FF, "Вы вышли. Напишите (/q)");
            if(!strlen(inputtext) || strlen(inputtext) < 3 || strlen(inputtext) > 16 || IsTextRussian(inputtext))
            {
                return SPD(playerid, 1, DSI, "{6495ED}Регистрация", "Зарегистрируйтесь пожалуйста", "Далее", "Отклонить");
            }
            else
            {
                strmid(Player[playerid][pPassword], inputtext, 0, strlen(inputtext), 16);
                SPD(playerid, 3, 1, "{6495ED}Ввод Email адреса", "{FFFAFA}Введите адрес вашей электронной почты\nИспользуя его вы сможете восстановить свой аккаунт", "Далее", "Отклонить");
                return 1;
            }
        }
        case 2:
            {
                if(!response) return KickD(playerid); SCM(playerid, 0xFF5454FF, "Вы вышли. Напишите (/q)");
                {
                    for(new i = strlen(inputtext); i != 0; --i)
                    switch(inputtext[i])
                    {
                        case 'А'..'Я', 'а'..'я', ' ':
                        return SPD(playerid, 2, DSM, "Смените раскладку", "Смените раскладку клавиатуры с русского на английский", "Провторить", "");
                    }
                    if(!strlen(inputtext))
                    {
                        format(totalstring, 256, "Добро пожаловать на сервер Role-Play\nВы зарегистрированы\n\nЛогин: %s\nВведите пароль:", Player[playerid][pSendername]);
                        SPD(playerid, 2, DSP, "{6495ED}Авторизация", totalstring, "Принять", "Отмена");
                        return 1;
                    }
                    else
                    {
                        OnPlayerLogin(playerid, inputtext);
                        return 1;
                    }
                }
            }
            case 3:
                {
                    if(!response) return KickD(playerid); SCM(playerid, 0xFF5454FF, "Вы вышли. Напишите (/q)");
                    if(strlen(inputtext) < 1 || strlen(inputtext) > 36 || IsTextRussian(inputtext)) return SPD(playerid, 3, 1, "{6495ED}ВВод Email адреса", "{FFFAFA}Введите адрес вашей электроной почты\nИспользуя его, вы сможете восстановить доступ к аккаунту", "Далее", "Отмена");
                    if(strfind(inputtext, "@", true) == -1 || strfind(inputtext, ".", true) == -1 || strlen(inputtext) < 5)
                    {
                        SCM(playerid, COLOR_GREY, "[Ошибка] Попробуйте ещё раз");
                        return SPD(playerid, 3, 1, "{6495ED}Ввод Email адреса", "{FFFAFA}Введите адрес вашей электроной почты\nИспользуя его вы сможете восстановить доступ к аккаунту\nВ случае взлома или если будете забывать пароль", "Далее", "Отмена");
                    }
                    strmid(Player[playerid][pMail], inputtext, 0, strlen(inputtext), 64);
                    SPD(playerid, 4, 1, "{6495ED}Ник пригласившего игрока", "Если вы узнали о нашем сервере от своего друга\nКоторый тут играет, укажите его ник в поле ниже\n\n{ADFF2F}При достижении вами 4-го уровня он получит вознаграждение", "Далее", "Отмена");
                    return 1;
                }
            case 4:
                {
                    if(!response) return SPD(playerid, 6, DSM, "{FF9900}Правила сервера", "В процессе", "Далее", "Отмена");
                    if(!strlen(inputtext)) return SPD(playerid, 4, 1, "{6495ED}Ник пригласившего игрока", "Если вы узнали о нашем сервере от своего друга\nКоторый тут играет, укажите его ник в поле ниже\n\n{ADFF2F}При достижении вами 4-го уровня он получит вознаграждение", "Далее", "Отмена");
                    strmid(Player[playerid][pReferal], inputtext, 0, strlen(inputtext), MAX_PLAYER_NAME);
                    format(totalstring, 64, "Вас пригласил %s", inputtext);
                    SCM(playerid, COLOR_GREEN, totalstring);
                    SPD(playerid, 6, DSM, "{FF9900}Правила сервера", "В процессе", "Далее", "Отмена");
                    return 1;
                }
            case 5:
                {
                    new sex[20];
                    switch(response)
                    {
                        case 1: { sex = "Мужской"; Player[playerid][pSex] = 1; }
                        default: { sex = "Женский"; Player[playerid][pSex] = 2; }
                    }
                    ClothesRound[playerid] = 1;
                    PlayerLogged[playerid] = true;
                    SCM(playerid, -1, "Выберите скин");
                    SetSpawnInfo(playerid, 255, Player[playerid][pModel], 0, 0, 0, 1.0, -1, -1, -1, -1, -1, -1);
                    SpawnPlayer(playerid);
                    return 1;
                }
            case 6:
                {
                    if(!response) return KickD(playerid); SCM(playerid, 0xFF5454FF, "Вы вышли. Напишите (/q)");
                    SPD(playerid, 5, 0, "{6495ED}Пол", "{FFFFFF}Выберите пол вашего персонажа", "Мужской", "Женский");
                    SCM(playerid,-1, "Пожалуйста, выберите пол вашего персонажа");
                    return 1;
                }
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(ClothesRound[playerid] == 1)
    {
        if(clickedid == ButtonRight)
        {
            if(Player[playerid][pSex] == 1)
            {
                switch(SelectCharRegID[playerid])
                {
                case 1: SetPlayerSkin(playerid, 79), SelectCharRegID[playerid] = 2, ChosenSkin[playerid] = 79;
                case 2: SetPlayerSkin(playerid, 135), SelectCharRegID[playerid] = 3, ChosenSkin[playerid] = 135;
                case 3: SetPlayerSkin(playerid, 230), SelectCharRegID[playerid] = 4, ChosenSkin[playerid] = 230;
                case 4: SetPlayerSkin(playerid, 137), SelectCharRegID[playerid] = 5, ChosenSkin[playerid] = 137;
                case 5: SetPlayerSkin(playerid, 200), SelectCharRegID[playerid] = 6, ChosenSkin[playerid] = 200;
                case 6: SetPlayerSkin(playerid, 78), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 78;
                }
            }
            else
            {
                switch(SelectCharRegID[playerid])
                {
                case 1: SetPlayerSkin(playerid, 13), SelectCharRegID[playerid] = 2, ChosenSkin[playerid] = 13;
                case 2: SetPlayerSkin(playerid, 55), SelectCharRegID[playerid] = 3, ChosenSkin[playerid] = 55;
                case 3: SetPlayerSkin(playerid, 90), SelectCharRegID[playerid] = 4, ChosenSkin[playerid] = 90;
                case 4: SetPlayerSkin(playerid, 193), SelectCharRegID[playerid] = 5, ChosenSkin[playerid] = 193;
                case 5: SetPlayerSkin(playerid, 12), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 12;
                }
            }
        }
        else if(clickedid == ButtonLeft)
        {
            if(Player[playerid][pSex] == 1)
            {
                switch(SelectCharRegID[playerid])
                {
                case 1: SetPlayerSkin(playerid, 200), SelectCharRegID[playerid] = 6, ChosenSkin[playerid] = 200;
                case 6: SetPlayerSkin(playerid, 137), SelectCharRegID[playerid] = 5, ChosenSkin[playerid] = 137;
                case 5: SetPlayerSkin(playerid, 230), SelectCharRegID[playerid] = 4, ChosenSkin[playerid] = 230;
                case 4: SetPlayerSkin(playerid, 135), SelectCharRegID[playerid] = 3, ChosenSkin[playerid] = 135;
                case 3: SetPlayerSkin(playerid, 79), SelectCharRegID[playerid] = 2, ChosenSkin[playerid] = 79;
                case 2: SetPlayerSkin(playerid, 78), SelectCharRegID[playerid] = 2, ChosenSkin[playerid] = 78;
                }
            }
            else
            {
                switch(SelectCharRegID[playerid])
                {
                case 1: SetPlayerSkin(playerid, 193), SelectCharRegID[playerid] = 5, ChosenSkin[playerid] = 193;
                case 5: SetPlayerSkin(playerid, 90), SelectCharRegID[playerid] = 4, ChosenSkin[playerid] = 90;
                case 4: SetPlayerSkin(playerid, 55), SelectCharRegID[playerid] = 3, ChosenSkin[playerid] = 55;
                case 3: SetPlayerSkin(playerid, 13), SelectCharRegID[playerid] = 2, ChosenSkin[playerid] = 13;
                case 2: SetPlayerSkin(playerid, 12), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 12;
                }
            }
        }
        else if(clickedid == ButtonSelect)
        {
            Player[playerid][pModel] = ChosenSkin[playerid];
            SelectCharRegID[playerid] = 0;
            ClothesRound[playerid] = 0;
            TogglePlayerControllable(playerid, 1);
            OnPlayerRegister(playerid, Player[playerid][pPassword]);
            TextDrawHideForPlayer(playerid, ButtonLeft);
            TextDrawHideForPlayer(playerid, ButtonRight);
            TextDrawHideForPlayer(playerid, ButtonSelect);
            CancelSelectTextDraw(playerid);
            SetPlayerVirtualWorld(playerid, 0);
            SCM(playerid, -1, "Регистрация прошла успешно");
            SetSpawnInfo(playerid, 255, Player[playerid][pModel], 0, 0, 0, 1.0, -1, -1, -1, -1, -1, -1);
            SpawnPlayer(playerid);
            Player[playerid][pLevel] = 1;
            SetPlayerPos(playerid,-1967.6738,115.7038,27.6875);
            SetPlayerFacingAngle(playerid, 101.2675);
            SetPlayerInterior(playerid, 0);
            SetPlayerScore(playerid, 1);
        }
        if(clickedid == Text:INVALID_TEXT_DRAW)
        {
            if(ClothesRound[playerid] == 1)
            {
                TogglePlayerControllable(playerid, 0);
                TextDrawShowForPlayer(playerid, ButtonLeft);
                TextDrawShowForPlayer(playerid, ButtonRight);
                TextDrawHideForPlayer(playerid, ButtonSelect);
                SelectTextDraw(playerid, 0xFF4040AA);
                if(Player[playerid][pSex] == 1) SetPlayerSkin(playerid, 78), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 78;
                else SetPlayerSkin(playerid, 12), SelectCharRegID[playerid] = 1, ChosenSkin[playerid] = 12;
            }
        }
    }
     return 1;
}

forward KickPublic(playerid);
public KickPublic(playerid) { Kick(playerid); }
//======================[Стоки]==================
stock KickD(playerid)
{
    SetTimerEx("KickPublic", 1000, false, "d", playerid);
    return 1;
}
stock IsTextRussian(text[])
{
    if(strfind(text, "а", true) != -1 ||
            strfind(text, "б", true) != -1 ||
            strfind(text, "в", true) != -1 ||
            strfind(text, "г", true) != -1 ||
            strfind(text, "д", true) != -1 ||
            strfind(text, "е", true) != -1 ||
            strfind(text, "ё", true) != -1 ||
            strfind(text, "ж", true) != -1 ||
            strfind(text, "з", true) != -1 ||
            strfind(text, "и", true) != -1 ||
            strfind(text, "й", true) != -1 ||
            strfind(text, "к", true) != -1 ||
            strfind(text, "л", true) != -1 ||
            strfind(text, "м", true) != -1 ||
            strfind(text, "н", true) != -1 ||
            strfind(text, "о", true) != -1 ||
            strfind(text, "п", true) != -1 ||
            strfind(text, "р", true) != -1 ||
            strfind(text, "с", true) != -1 ||
            strfind(text, "т", true) != -1 ||
            strfind(text, "у", true) != -1 ||
            strfind(text, "ф", true) != -1 ||
            strfind(text, "х", true) != -1 ||
            strfind(text, "ц", true) != -1 ||
            strfind(text, "ч", true) != -1 ||
            strfind(text, "ш", true) != -1 ||
            strfind(text, "щ", true) != -1 ||
            strfind(text, "ъ", true) != -1 ||
            strfind(text, "ы", true) != -1 ||
            strfind(text, "ь", true) != -1 ||
            strfind(text, "э", true) != -1 ||
            strfind(text, "ю", true) != -1 ||
            strfind(text, "я", true) != -1) return 1;
    return 0;
}

stock OnPlayerLogin(playerid, password[])
{
    mysql_format(connectionHandl,query,128,"SELECT * FROM "TABLE_ACCOUNT" WHERE `Name` = '%e' AND `password` = '%e'", Player[playerid][pSendername], password);
    mysql_function_query(connectionHandl, query, true, "LoginCallback", "is", playerid, password);
    return 1;
}

forward LoginCallback(playerid, password[]);
public LoginCallback(playerid, password[])
{
    new rows,fields,maximum[128];
    cache_get_data(rows, fields);
    if(!rows)
    {
        if(GetPVarInt(playerid, "PasswordNot") == 2) return KickD(playerid); SCM(playerid, 0xFF5454FF, "Вы ввели 3 раза неверный пароль, поэтому вы были кикнуты сервером");
        SetPVarInt(playerid, "PasswordNot", GetPVarInt(playerid, "PasswordNot")+1);
        format(maximum,128, "Ваш ник зарегистрирован\n\nЛогин: %s\nВведите пароль:\n\n{FF0000}Неверный пароль. Осталось %d попытки");
        SPD(playerid, 2, DSP, "{6495ED}Авторизация", maximum, "Вход", "Отмена");
        return 1;
    }
    Player[playerid][pID] = cache_get_field_content_int(0,"id");
    cache_get_field_content(0, "password", Player[playerid][pPassword], connectionHandl,16);
    cache_get_field_content(0, "ip", Player[playerid][pIP], connectionHandl,16);
    cache_get_field_content(0, "mail", Player[playerid][pMail], connectionHandl,16);
    cache_get_field_content(0, "datareg", Player[playerid][pRegData], connectionHandl,16);
    Player[playerid][pSex] = cache_get_field_content_int(0,"sex");
    Player[playerid][pModel] = cache_get_field_content_int(0,"model");
    Player[playerid][pLevel] = cache_get_field_content_int(0,"level");
    SetSpawnInfo(playerid, 255, Player[playerid][pModel], 0, 0, 0, 1.0, -1, -1, -1, -1, -1, -1);
    PlayerLogged[playerid] = true;
    SetPlayerScore(playerid, Player[playerid][pLevel]);
    SpawnPlayer(playerid);
    return 1;
}

stock OnPlayerRegister(playerid, password[])
{
    new ip[32];
    new strdate[24];
    GetPlayerIp(playerid, ip, 32);
    new year,month,day;
    getdate(year, month, day);
    format(strdate, sizeof(strdate), "%d.%d.%d", day,month,year);
    mysql_format(connectionHandl,query,256, "INSERT INTO "TABLE_ACCOUNT" (Name, password, ip, datareg, sex, model, mail, referal) VALUES ('%e', '%e', '%e', '%e', '%i', '%i', '%e', '%e')"
    , Player[playerid][pSendername], password, ip, strdate,Player[playerid][pSex], Player[playerid][pModel], Player[playerid][pMail], Player[playerid][pMail], Player[playerid][pReferal]);
    return 1;
}

stock LoadTextDraws()
{
    ButtonLeft = TextDrawCreate(50.0, 200.0, "LD_BEAT:left");
    TextDrawFont(ButtonLeft, 4);
    TextDrawTextSize(ButtonLeft, 50, 25);
    TextDrawSetSelectable(ButtonLeft, 1);
    
    ButtonRight = TextDrawCreate(530.0, 200.0, "LD_BEAT:right");
    TextDrawFont(ButtonRight, 4);
    TextDrawTextSize(ButtonRight, 50, 25);
    TextDrawSetSelectable(ButtonRight, 1);
    
    ButtonSelect = TextDrawCreate(382.000000, 371.000000, "Select");
    TextDrawTextSize(ButtonSelect, 482.0, 22.0);
    TextDrawBackgroundColor(ButtonSelect, 255);
    TextDrawFont(ButtonSelect, 3);
    TextDrawLetterSize(ButtonSelect, 0.899999, 2.400000);
    TextDrawColor(ButtonSelect, 869072895);
    TextDrawSetOutline(ButtonSelect, 0);
    TextDrawSetProportional(ButtonSelect, 1);
    TextDrawSetShadow(ButtonSelect, 1);
    TextDrawSetSelectable(ButtonSelect, 1);
}

stock SaveAcc()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(!PlayerLogged[i]) continue;
        SavePlayer(i);
    }
    return 1;
}

stock SavePlayer(playerid)
{
    if(!PlayerLogged[playerid]) return 1;
    mysql_format(connectionHandl,query,512,"UPDATE `"TABLE_ACCOUNT"` SET `level` = '%i', `sex` = '%i', `model` = '%i'",Player[playerid][pLevel], Player[playerid][pSex], Player[playerid][pModel]);
    mysql_function_query(connectionHandl, query, false,"","");
    return 1;
}
Если увидели ошибки из-за которых не появляются вообще диалоговые окна. Напишите пожалуйста:3. И желательно указать в каком моменте ошибка(и). Верный ответ - "+".
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу