Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для aHristovsky
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2013
    Сообщений
    5
    Репутация:
    0 ±

    Проблема со скином

    Меня друг попросил сделать ему сервер с регистрацией. Так то я pawn знаю, но не понимаю в чём проблема. Вообще не работает SetSpawnInfo, вернее не весь, а скин или не меняется вообще при запуске игры, или это происходит крайне редко. Помоги, пожалуйста. И ещё, если пытаюсь в чат вывести например id скина с файла, то оно выводит имя игрока без 2-4 первых символов, что это за бред?
    PHP код:
    #include <a_samp>
    #include <mxINI>

    #define COLOR_RED 0xF60000AA
    #define COLOR_WHITE 0xFFFFFFAA
    #define COLOR_GREY 0xAFAFAFAA

    forward SaveAccounts(playerid);

    enum pInfo {
        
    pName,
        
    pSkin,
        
    pLvl,
        
    pMoney,
        
    Float:pHeal,
        
    Float:pArmour,
        
    Kills,
        
    Deaths
    };

    new 
    PlayerInfo[MAX_PLAYERS][pInfo];
    new 
    logged[MAX_PLAYERS];
    new 
    saveacctimer;

    main(){}

    public 
    OnGameModeInit()
    {
        
    //saveacctimer = SetTimer("SaveAccounts", 200000, 1);
        
    return 1;
    }

    public 
    OnGameModeExit()
    {
        
    KillTimer(saveacctimer);
        return 
    1;
    }

    public 
    OnPlayerRequestClass(playeridclassid)
    {
     return 
    1;
    }

    public 
    OnPlayerConnect(playerid)
    {
        
    logged[playerid]=0;

        
    GetPlayerName(playerid,PlayerInfo[playerid][pName],30);
        new 
    account[30+9+4];
        
    format(account,sizeof(account),"accounts/%s.ini",PlayerInfo[playerid][pName]);

        if(
    fexist(account))
         {
            new 
    s[256];
            
    format(s,sizeof(s),"{cccccc}________________________________________\n\n  Добро пожаловать на сервер \n         Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
            
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT"Авторизация",s"Войти""Отмена");
        }
        else
        {
            
    /*new s[256];
            format(s,sizeof(s),"{cccccc}________________________________________\n\n  Добро пожаловать на сервер Aurum-RP\n          Регистрация нового персонажа\n\nВаш логин: {ffffff}Anton_Hristovsky\n{cccccc}Придумайте пароль:\n________________________________________",PlayerName);
            ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "Регистрация",s, "Войти", "Отмена");*/
        
    }
        return 
    1;
    }

    public 
    OnPlayerDisconnect(playeridreason)
    {
        
    logged[playerid]=0;
        return 
    1;
    }

    public 
    OnPlayerSpawn(playerid)
    {
        
    logged[playerid] = 1;
        return 
    1;
    }

    public 
    OnPlayerDeath(playeridkilleridreason)
    {
        
    PlayerInfo[killerid][Kills]++;
        
    PlayerInfo[playerid][Deaths]++;
        return 
    1;
    }

    public 
    OnVehicleSpawn(vehicleid)
    {
         return 
    1;
    }

    public 
    OnVehicleDeath(vehicleidkillerid)
    {
        return 
    1;
    }

    public 
    OnPlayerText(playeridtext[])
    {
        if(
    logged[playerid] == 0)
        {
        
    SendClientMessage(playeridCOLOR_RED"Ошибка: Вам не доступен чат.");
        return 
    0;
        }
        return 
    1;
    }

    public 
    OnPlayerCommandText(playeridcmdtext[])
    {
        if (
    strcmp("/m"cmdtexttrue10) == 0)
        {
            
    AddStaticVehicle(500,0,0,382.287301);
            return 
    1;
        }
        return 
    0;
    }

    public 
    OnPlayerEnterVehicle(playeridvehicleidispassenger)
    {
        return 
    1;
    }

    public 
    OnPlayerExitVehicle(playeridvehicleid)
    {
        return 
    1;
    }

    public 
    OnPlayerStateChange(playeridnewstateoldstate)
    {
        return 
    1;
    }

    public 
    OnPlayerEnterCheckpoint(playerid)
    {
        return 
    1;
    }

    public 
    OnPlayerLeaveCheckpoint(playerid)
    {
        return 
    1;
    }

    public 
    OnPlayerEnterRaceCheckpoint(playerid)
    {
        return 
    1;
    }

    public 
    OnPlayerLeaveRaceCheckpoint(playerid)
    {
        return 
    1;
    }

    public 
    OnRconCommand(cmd[])
    {
        return 
    1;
    }

    public 
    OnPlayerRequestSpawn(playerid)
    {
        return 
    1;
    }

    public 
    OnObjectMoved(objectid)
    {
        return 
    1;
    }

    public 
    OnPlayerObjectMoved(playeridobjectid)
    {
        return 
    1;
    }

    public 
    OnPlayerPickUpPickup(playeridpickupid)
    {
        return 
    1;
    }

    public 
    OnVehicleMod(playeridvehicleidcomponentid)
    {
        return 
    1;
    }

    public 
    OnVehiclePaintjob(playeridvehicleidpaintjobid)
    {
        return 
    1;
    }

    public 
    OnVehicleRespray(playeridvehicleidcolor1color2)
    {
        return 
    1;
    }

    public 
    OnPlayerSelectedMenuRow(playeridrow)
    {
        return 
    1;
    }

    public 
    OnPlayerExitedMenu(playerid)
    {
        return 
    1;
    }

    public 
    OnPlayerInteriorChange(playeridnewinterioridoldinteriorid)
    {
        return 
    1;
    }

    public 
    OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        return 
    1;
    }

    public 
    OnRconLoginAttempt(ip[], password[], success)
    {
        return 
    1;
    }

    public 
    OnPlayerUpdate(playerid)
    {
        return 
    1;
    }

    public 
    OnPlayerStreamIn(playeridforplayerid)
    {
        return 
    1;
    }

    public 
    OnPlayerStreamOut(playeridforplayerid)
    {
        return 
    1;
    }

    public 
    OnVehicleStreamIn(vehicleidforplayerid)
    {
        return 
    1;
    }

    public 
    OnVehicleStreamOut(vehicleidforplayerid)
    {
        return 
    1;
    }

    public 
    OnDialogResponse(playeriddialogidresponselistiteminputtext[])
    {
        if(
    dialogid == 1)
        {
            if(
    response)
            {
                if(!
    strlen(inputtext))
                {
                    new 
    s[256];
                    
    format(s,sizeof(s),"{cccccc}________________________________________\n\n  Добро пожаловать на сервер \n         Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
                    
    SendClientMessage(playeridCOLOR_GREY"Ошибка {#111}: Поле не может быть пустым.");
                    return 
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT"Авторизация",s"Войти""Отмена");
                }

                new 
    password[64],account[128];
                
    format(account,sizeof(account),"accounts/%s.ini",PlayerInfo[playerid][pName]);
                
    //if(IsPlayerNPC(playerid))return 1;
                
    new iniFile ini_openFile(account);
                
    ini_getString(iniFile"Password",password);
                if(!
    strcmp(inputtextpasswordtrue))
                {
                    
    ini_getInteger(iniFile"Skin"PlayerInfo[playerid][pSkin]);
                    
    ini_getInteger(iniFile"Lvl"PlayerInfo[playerid][pLvl]);
                    
    ini_getInteger(iniFile"Money"PlayerInfo[playerid][pMoney]);
                    
    SendClientMessage(playeridCOLOR_REDPlayerInfo[playerid][pMoney]);
                    
    ini_getFloat(iniFile"Heal"PlayerInfo[playerid][pHeal]);
                    
    ini_getFloat(iniFile"Armour"PlayerInfo[playerid][pArmour]);
                    
    ini_getInteger(iniFile,"Kills"PlayerInfo[playerid][Kills]);
                    
    ini_getInteger(iniFile,"Deaths"PlayerInfo[playerid][Deaths]);
                    
    SetPlayerScore(playeridPlayerInfo[playerid][pLvl]);
                    
    GivePlayerMoney(playeridPlayerInfo[playerid][pMoney]);
                    
    SetPlayerHealth(playeridPlayerInfo[playerid][pHeal]);
                    
    SetPlayerArmour(playeridPlayerInfo[playerid][pArmour]);
                    
    SetSpawnInfo(playerid,0,PlayerInfo[playerid][pSkin],10.0000,-100.0000,5.0000,10.0000,0,0,0,0,0,0);
                    
    ini_closeFile(iniFile);
                    
    TogglePlayerSpectating(playeridfalse);
                    
    SpawnPlayer(playerid);
                    return 
    1;
                }
                else
                {
                    new 
    s[256];
                    
    format(s,sizeof(s),"{cccccc}________________________________________\n\n  Добро пожаловать на сервер \n         Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
                    
    SendClientMessage(playeridCOLOR_GREY"Ошибка {#112}: Вы ввели неверный пароль.");
                    return 
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT"Авторизация",s"Войти""Отмена");
                }
            }
            else
            {
                new 
    s[256];
                
    format(s,sizeof(s),"{cccccc}________________________________________\n\n  Добро пожаловать на сервер \n         Этот аккаунт зарегистрирован\n\nВаш логин: {ffffff}%s\n{cccccc}Введите пароль:\n________________________________________",PlayerInfo[playerid][pName]);
                return 
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT"Авторизация",s"Войти""Отмена");
            }
        }
        
    /*if(dialogid == 2) //???????????
        {
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "???????????", "?? ??????????????? ?? ???! \n?????? ????:", "??", "");
            if(response)
            {
                new PlayerName[MAX_PLAYER_NAME];
                GetPlayerName(playerid,PlayerName,sizeof(PlayerName)); //?????? ??? ??????
                new account[128];
                format(account,sizeof(account),"users/%s.ini",PlayerName);//?????????. ???? ?? ???? ??? ? ????? users
                if(fexist(account)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "???????????", "???????????! \n ?????? ????:", "?????", ""); //?????????? ???, ???? ???? ???
                new iniFile = ini_createFile(account); //??????? ???
                if(iniFile < 0) ini_openFile (account); //???? ???? ??????, ??
                {
                    ini_setString(iniFile,"Password",inputtext); //??????
                    ini_setInteger(iniFile, "Skin", 206);
                    ini_setInteger(iniFile, "Money", 5000); // ??????? ???? ???????? ? ???-??? ????? 5000
                    ini_setFloat(iniFile, "Heal", 100.0); // ??????? ???? ???????? ? ???-??? ????????
                    ini_setFloat(iniFile, "Armour", 100.0); // ??????? ???? ???????? ? ???-??? ?????
                    ini_setInteger(iniFile, "Kills", 0); // ?? ??? ????????
                    ini_setInteger(iniFile, "Deaths", 0); // ??????
                    ini_closeFile(iniFile); //??????? ????
                    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT, "???????????", "???????????:", "?????", "");
                }
            }
            else //???? ???? ???? ??????? ?????? ???? ? ?????? ?? Esc, ?? ???? ??? ????? ??????
            {
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "???????????", "?????????????, ?????:", "??", "");
            }
        }*/
        
    return 1;
    }

    public 
    OnPlayerClickPlayer(playeridclickedplayeridsource)
    {
        return 
    1;
    }

    /*public SaveAccounts(playerid)
    {
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            new PlayerName[MAX_PLAYER_NAME], account[128];
            GetPlayerName(i,PlayerName,sizeof(PlayerName));
            format(account,sizeof(account), "users/%s.ini", PlayerName);
            new iniFile = ini_openFile(account);
            ini_setInteger(iniFile, "Money", GetPlayerMoney(i));
            ini_setInteger(iniFile,"Kills", PlayerInfo[i][Kills]);
            ini_setInteger(iniFile,"Deaths", PlayerInfo[i][Deaths]);
            GetPlayerHealth(i,PlayerInfo[i][pHeal]);
            ini_setFloat(iniFile, "Heal", PlayerInfo[i][pHeal]);
            GetPlayerArmour(i,PlayerInfo[i][pArmour]);
            ini_setFloat(iniFile, "Armour", PlayerInfo[i][pArmour]);
            ini_closeFile(iniFile);
            SendClientMessage(i, COLOR_WHITE, "Аккаунт сохранён");// ??? ????? ???????
        }
        return 1;
    }*/ 

  2. #2
    Аватар для FanHamMer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.01.2014
    Сообщений
    4
    Репутация:
    0 ±
    Регистрация ужасна. Рано тебе знать PAWN.

  3. #3
    Аватар для MR_BEN
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    110
    Репутация:
    29 ±
    Цитата Сообщение от FanHamMer Посмотреть сообщение
    Регистрация ужасна. Рано тебе знать PAWN.
    А ты за час весь Pawn выучил, прям про стал?

  4. Пользователь сказал cпасибо:
    Nurick (13.09.2014)
  5. #4
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    375
    Репутация:
    144 ±
    PHP код:
    enum pInfo {
        
    pName,
        
    pSkin,
        
    pLvl,
        
    pMoney,
        
    Float:pHeal,
        
    Float:pArmour,
        
    Kills,
        
    Deaths
    }; 
    Удели под ник-нейм игрока хотя-бы 24 ячейки..

    PHP код:
    enum pInfo {
        
    pName[MAX_PLAYER_NAME],
        
    pSkin,
        
    pLvl,
        
    pMoney,
        
    Float:pHeal,
        
    Float:pArmour,
        
    Kills,
        
    Deaths
    }; 

  6. #5
    Аватар для aHristovsky
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2013
    Сообщений
    5
    Репутация:
    0 ±
    Это безумно ценный совет, но я лучше подожду ещё вариантов.

    - - - Добавлено - - -

    Цитата Сообщение от FanHamMer Посмотреть сообщение
    Регистрация ужасна. Рано тебе знать PAWN.
    А что не так с регистрацией? Я взял её в интернете. И при чём тут ник? Я сделал как Вы сказали, но при чём тут?

  7. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от aHristovsky Посмотреть сообщение
    А что не так с регистрацией?
    Например то, что вы ник (строку) пытались записать в переменную целочисленного типа. Или что в GetPlayerName, извлекать ник, вы ожидаете получить строку в 30 символов. Так же для сообщения в 200 символов вы выделяете 256 ячеек. Дальше продолжать?
    Я лишь могу вам посоветовать свою регистрацию, код которой проверен и лично мной, и десятком других пользователей. Да и описание, что давал я в той теме, вам стоит почитать, судя по коду
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #7
    Аватар для aHristovsky
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2013
    Сообщений
    5
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Например то, что вы ник (строку) пытались записать в переменную целочисленного типа. Или что в GetPlayerName, извлекать ник, вы ожидаете получить строку в 30 символов. Так же для сообщения в 200 символов вы выделяете 256 ячеек. Дальше продолжать?
    Я лишь могу вам посоветовать свою регистрацию, код которой проверен и лично мной, и десятком других пользователей. Да и описание, что давал я в той теме, вам стоит почитать, судя по коду
    Спасибо большое, я сейчас ознакомлюсь.

  9. #8
    Аватар для aHristovsky
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2013
    Сообщений
    5
    Репутация:
    0 ±
    Я скачал сервер с темы, но почему после авторизации/регистрации оно не спавнит а эти стрелочки и кнопка Spawn появляются?

  10. #9
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от aHristovsky Посмотреть сообщение
    Я скачал сервер с темы, но почему после авторизации/регистрации оно не спавнит а эти стрелочки и кнопка Spawn появляются?
    Потому что тема посвящена созданию системы регистрации, а не тому, как обходить стандартную систему спавна. Там лишь работа с файлом игрока и не более. Всё остальное - ваша забота, ибо это ВЫ пишете мод, а не я.
    Могу посоветовать такой вариант
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  11. #10
    Аватар для aHristovsky
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.12.2013
    Сообщений
    5
    Репутация:
    0 ±
    Спасибо большое, Вы мне очень помогли, только последний вопрос. Я не могу разобраться в team в SetPlayerSpawn. Это обязательно указывать, или можно всегда использовать 0?

 

 
Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •