Страница 3 из 23 ПерваяПервая 1234513 ... ПоследняяПоследняя
Показано с 21 по 30 из 230

Тема: Простая регистрация в диалоговых окнах - mxINI

  1. #21
    Активный пользователь
    Регистрация
    10.01.2011
    Адрес
    РнД
    Сообщений
    155
    Репутация: 0

    Звание: пока не определено

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    Цитата Сообщение от GeraniS Посмотреть сообщение
    Регистрацию пихаем в мод.
    Ахах)) Жесткая тема))

  2. #22
    ?? ḇẙ Ḉṍṁṕaṅẙ Lik? ☺↔☻
    Регистрация
    23.10.2010
    Адрес
    Россия
    Сообщений
    2,476
    Репутация: 224

    Звание: - весьма и весьма положительная личность

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]



  3. #23
    Активный пользователь Аватар для GeraniS
    Регистрация
    13.02.2011
    Адрес
    НСК
    Сообщений
    360
    Репутация: 26

    Звание: на пути к лучшему

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    И?! Я на авторов уроков указал. Я же не скатал тупо идею и сказал, что это я сделал. Я сделал регистрацию в диалоговых окнах сам, при ПОМОЩИ этих уроков.
    И можно даже не пытаться говорить, что я скопипастил!!!
    Помог?! Ставь +(плюс кликабелен) скорее:opasnoste:

    Вернулся в павно, ну здравствуйте ребятки!

    Готовые решения:
    [SCR][ALL]Простая регистрация в диалоговых окнах - mxINI (реконструирована, теперь должна работать)

  4. #24
    Активный пользователь Аватар для FERAMON
    Регистрация
    01.05.2011
    Адрес
    Омск
    Сообщений
    470
    Репутация: 1

    Звание: пока не определено

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    при выходе не обновляет фаил. в фаиле денег столько сколько при реге

  5. #25
    ?? ḇẙ Ḉṍṁṕaṅẙ Lik? ☺↔☻
    Регистрация
    23.10.2010
    Адрес
    Россия
    Сообщений
    2,476
    Репутация: 224

    Звание: - весьма и весьма положительная личность

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    Цитата Сообщение от GeraniS Посмотреть сообщение
    И?! Я на авторов уроков указал. Я же не скатал тупо идею и сказал, что это я сделал. Я сделал регистрацию в диалоговых окнах сам, при ПОМОЩИ этих уроков.
    И можно даже не пытаться говорить, что я скопипастил!!!
    Буть адекватнее, я имел ввиду что такая тема уже есть и толк от второй темы тоже с 4 занчениями 0!


  6. #26
    Проверенный Аватар для frog163
    Регистрация
    12.04.2010
    Адрес
    Samara
    Возраст
    31
    Сообщений
    4,548
    Репутация: 365

    Звание: - очень-очень хороший человек

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    Вот вам мой вариант, автор, можешь добавить к первому посту..
    так вот, для удобства в начало мода добавим пару макросов:
    PHP код:
    #define RegisterMenu 109//это иды диалогов
    #define LoginMenu 1009 
    Ну вот, теперь в OnPlayerConnect вставляем:
    PHP код:
        new Name[40]; GetPlayerName(playeridName40);// узнаем ник игрока
        
    format(Name40"%s.account"Name);// узнаем имя файла
        
    if(fexist(Name))ShowPlayerDialog(playeridLoginMenuDIALOG_STYLE_INPUT"{ff0000}Авторизация""{ff00ff}Вы должны авторизоваться! \n{ff00ff}Введите ваш пароль:""Ок""");//если файл существует
        
    else ShowPlayerDialog(playeridRegisterMenuDIALOG_STYLE_INPUT"{ff0000}Регистрация""{ff00ff}Зарегистрируйся! \n{ff00ff}Введите пароль:""Ок""");//если нет его 
    диалоги созданы, перейдем к OnDialogResponse:
    PHP код:
        if(dialogid == RegisterMenu)
        {
            if(!
    strlen(inputtext)) return ShowPlayerDialog(playeridRegisterMenuDIALOG_STYLE_INPUT"{ff0000}Регистрация""{ff00ff}Зарегистрируйся! \n{ff0000}Ты забыл ввести пароль, идиот!""Ок""");
            if(
    strlen(inputtext) < || strlen(inputtext) > 20) return ShowPlayerDialog(playeridRegisterMenuDIALOG_STYLE_INPUT"{ff0000}Регистрация""{ff00ff}Зарегистрируйся! \n{ff0000}Пароль не должен быть меньше 4-ех и больше 20-ти символов!""Ок""");
            new 
    Name[40]; GetPlayerName(playeridName40);
            
    format(Name40"%s.account"Name);
            new 
    File ini_createFile(Name);//создаем файл
            
    ini_setInteger(File"Пароль"hash(inputtext));//записываем хэшированный пароль игрока и другие ключи
            
    ini_setInteger(File"Деньги"0);
            
    ini_setInteger(File"Убийства"0);
            
    ini_setInteger(File"Смерти"0);
            
    ini_setFloat(File"Здоровье"0.0);
            
    ini_closeFile(File);//Сохраняем и закрываем файл
            
    SendClientMessage(playerid, -1"{ff00ff}Вы успешно зарегистрировались и автоматически залогинились!");
            
    SetPVarInt(playerid"Logged"1);//залогиниваем игрока
        
    }else if(dialogid == LoginMenu)
        {
            if(!
    strlen(inputtext)) return ShowPlayerDialog(playeridLoginMenuDIALOG_STYLE_INPUT"{ff0000}Авторизация""{ff00ff}Вы должны авторизоваться! \n{ff0000}Ты забыл ввести пароль, идиот!""Ок""");
            if(
    strlen(inputtext) < || strlen(inputtext) > 20) return ShowPlayerDialog(playeridLoginMenuDIALOG_STYLE_INPUT"{ff0000}Авторизация""{ff00ff}Вы должны авторизоваться! \n{ff0000}Пароль не должен быть меньше 4-ех и больше 20-ти символов!""Ок""");
            new 
    Name[40], valueFloat:heal;
            
    GetPlayerName(playeridName40);
            
    format(Name40"%s.account"Name);
            new 
    File ini_openFile(Name);//открываем файл
            
    ini_getInteger(File"Пароль"value);//узнаем пароль
            
    if(value != hash(inputtext)) return ShowPlayerDialog(playeridLoginMenuDIALOG_STYLE_INPUT"{ff0000}Авторизация""{ff00ff}Вы должны авторизоваться! \n{ff0000}Пароль не правильный!""Ок""");
            
    ini_getInteger(File"Деньги"value);//читаем все ключи если пароль верный
            
    SetPVarInt(playerid"Money"value);//и записываем их в пвары
            
    ini_getInteger(File"Убийства"value);
            
    SetPVarInt(playerid"Kills"value);
            
    ini_getInteger(File"Смерти"value);
            
    SetPVarInt(playerid"Deaths"value);
            
    ini_getFloat(File"Здоровье"heal);
            
    SetPVarFloat(playerid"Health"heal);
            
    SendClientMessage(playerid, -1"{ff00ff}Вы успешно залогинились!");
            
    SetPVarInt(playerid"Logged"1);//залогиниваем игрока
        

    Чтобы востановить деньги/здоровье/etc ищем OnPlayerSpawn:
    PHP код:
        if(GetPVarInt(playerid"Connect") != 1)//если игрок только что зашел на сервер
        
    {
            
    SetPVarInt(playerid"Connect"1);
            
    SetPlayerHealth(playeridGetPVarFloat(playerid"Health"));
            
    ResetPlayerMoney(playerid);
            
    GivePlayerMoney(playeridGetPVarInt(playerid"Money"));
            
    SetPlayerScore(playeridGetPVarInt(playerid"Kills"));
        } 
    Добавим убийства и смерти к пварам в паблике OnPlayerDeath:
    PHP код:
        SetPVarInt(killerid"Kills"GetPVarInt(killerid"Kills")+1);
        
    SetPVarInt(playerid"Deaths"GetPVarInt(playerid"Deaths")+1);
        
    SetPlayerScore(killeridGetPVarInt(killerid"Kills")); 
    добавим функцию сохранения аккаунта:
    PHP код:
    stock SaveAccount(playerid)
    {
        new 
    Name[40], Float:heal;
        
    GetPlayerName(playeridName40); GetPlayerHealth(playerid,heal);
        
    format(Name40"%s.account"Name);
        new 
    File ini_openFile(Name);
        
    ini_setInteger(File"Деньги"GetPlayerMoney(playerid));
        
    ini_setInteger(File"Убийства"GetPVarInt(playerid"Kills"));
        
    ini_setInteger(File"Смерти"GetPVarInt(playerid"Deaths"));
        
    ini_setFloat(File"Здоровье"heal);

    теперь сохраняем данные при выходе в OnPlayerDisconnect:
    PHP код:
        SaveAccount(playerid);//;D 
    ну вот и все собсно.. ах да, я использовал еще одну функцию (хэширование файла), вот она:
    PHP код:
    stock hash(pas[])
    {
        new 
    len=strlen(pas);
        new 
    s1 1s2;
        for (new 
    nn<lenn++)
        {
           
    s1 = (s1 pas[n]) % 65521;
           
    s2 = (s2 s1)     % 65521;
        }
        return (
    s2 << 16) + s1;

    Примечание:
    Для того, чтобы игрок не мог заспавниться пока не авторизуется нужно в паблик OnPlayerRequestSpawn добавить:
    PHP код:
    if(GetPVarInt(playerid"Logged") != 1) return 0
    При краше сервера паблик OnPlayerDisconnect не вызывается, поэтому лучше сделать таймер минут на 5 и каждые эти 5 минут сохранять всех игроков, для этого в OnGameModeInit запускаем таймер:
    PHP код:
    SetTimer("SaveAccounts"1000*60*5true); 
    и в любое место:
    PHP код:
    forward SaveAccounts();
    public 
    SaveAccounts()
    {
        for(new 
    fGetMaxPlayers(); f++)
        {
            if(!
    IsPlayerConnected(f))continue;
            
    SaveAccount(f);
        }

    Жмем F6, have fun :mag:
    Ничто не ограничивает полет мысли программиста так, как компилятор, сцуко!
    Если в предложении собеседника различного рода смайлов больше чем слов - однозначно, что этот индивид страдает критической, неизлечимой и при этом прогрессирующей формой долбоебизма © лурка
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

  7. #27
    Активный пользователь Аватар для GeraniS
    Регистрация
    13.02.2011
    Адрес
    НСК
    Сообщений
    360
    Репутация: 26

    Звание: на пути к лучшему

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    Буть адекватнее, я имел ввиду что такая тема уже есть и толк от второй темы тоже с 4 занчениями 0!
    Ну прости, не понял. Ну все равно, тут и диалоговые окна и работает. По моему (или у меня руки кривые) там код надо редить. А у меня скопировал, умело поставил и работает.

    при выходе не обновляет фаил. в фаиле денег столько сколько при реге
    Незн, я проверял на нескольких акках, вроде все норм работает.

    Репутация: ***ню написал
    Я незн, если вам реально не нравится и вы модер, просто тупо удаляйте тему.

    Вот вам мой вариант, автор, можешь добавить к первому посту..
    Крут, я посмотрел, по лучше будет:ay:
    Помог?! Ставь +(плюс кликабелен) скорее:opasnoste:

    Вернулся в павно, ну здравствуйте ребятки!

    Готовые решения:
    [SCR][ALL]Простая регистрация в диалоговых окнах - mxINI (реконструирована, теперь должна работать)

  8. #28
    ?? ḇẙ Ḉṍṁṕaṅẙ Lik? ☺↔☻
    Регистрация
    23.10.2010
    Адрес
    Россия
    Сообщений
    2,476
    Репутация: 224

    Звание: - весьма и весьма положительная личность

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    у SetPVar вроде есть предел так что много народу не поиграет))


  9. #29
    Проверенный Аватар для frog163
    Регистрация
    12.04.2010
    Адрес
    Samara
    Возраст
    31
    Сообщений
    4,548
    Репутация: 365

    Звание: - очень-очень хороший человек

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    Цитата Сообщение от Lik Посмотреть сообщение
    у SetPVar вроде есть предел так что много народу не поиграет))
    угу, есть лимит, 400 000 пваров (800 на одного игрока)
    от моих 6-ти я думаю не сильно все изменится..
    Ничто не ограничивает полет мысли программиста так, как компилятор, сцуко!
    Если в предложении собеседника различного рода смайлов больше чем слов - однозначно, что этот индивид страдает критической, неизлечимой и при этом прогрессирующей формой долбоебизма © лурка
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

  10. #30
    ?? ḇẙ Ḉṍṁṕaṅẙ Lik? ☺↔☻
    Регистрация
    23.10.2010
    Адрес
    Россия
    Сообщений
    2,476
    Репутация: 224

    Звание: - весьма и весьма положительная личность

    Re: [ scr ][ all ][ Простая регистрация в диалоговых окнах - mxINI ]

    Цитата Сообщение от frog163 Посмотреть сообщение
    угу, есть лимит, 400 000 пваров (800 на одного игрока)
    от моих 6-ти я думаю не сильно все изменится..
    эх я думал их 800 всего :ddd боялся ими пользовться в больших количествах )))


Страница 3 из 23 ПерваяПервая 1234513 ... ПоследняяПоследняя

Похожие темы

  1. Регистрация в диалоговых окнах
    от Coper_Non в разделе Вопросы по скриптингу
    Ответов: 6
    Последнее сообщение: 22.09.2011, 20:46
  2. Регистрация в диалоговых окнах
    от hartmary в разделе Вопросы по скриптингу
    Ответов: 0
    Последнее сообщение: 28.05.2011, 16:44
  3. Приветствие в диалоговых окнах и потом регистрация
    от REBOK в разделе Вопросы по скриптингу
    Ответов: 1
    Последнее сообщение: 29.12.2010, 20:24

Ваши права

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