Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Реклама






 
SAMP АДМИНКИ 15 ЛВЛ ПРИ ВХОДЕ КОМАНДА /MAKEADMIN2017 Адрес сервера:176.32.36.34:7777

500р
Маленький баннер400р/мес(Статический показ)
,400рТекстовая реклама300р/мес(Статический показ)
Большой баннер статический
1200р 1000/мес

Внимание ЦЕНЫ СНИЖЕНЫ!!!
Писать по поводу рекламы VK: vk.com/sergey68

** Как получить V.I.P --> КЛИК **
Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 41

Тема: mxINI (уроки)

  1. #1
    Пользователь
    Аватар для Andrey_Kiryuhin
    Статус
    Оффлайн
    Регистрация
    11.11.2010
    Адрес
    г.Пенза
    Сообщений
    516
    Репутация
    153 [+/-] 

    Восклицание mxINI (уроки)

    Сначало качаем инклуд mxINI http://depositfiles.com/files/4zj1dhp98
    Теперь Закидываем в папку pawno/include !P.S Если нету его у вас
    Теперь вписываем в enum pInfo:
    PHP код:
      Kills,
      
    Deaths,
      
    Money 
    Примерно это будет выглядить так :
    PHP код:
    enum pInfo
    {
      
    Kills,
      
    Deaths,
      
    Money

    Если он уже у вас есть то просто добавьте в enum строчки Kills,Deaths,Money
    Под enum pInfo
    пишем
    PHP код:
    new pStats[MAX_PLAYERS][pInfo]; 
    Чтобы показывал статистику командой /stats
    Если у вас регистрация сделана по уроку Stunt-a тогда в public OnPlayerConnect2 добовляем
    PHP код:
     new pConfigpName[MAX_PLAYER_NAME], str[64];
         
    GetPlayerName(playeridpNamesizeof(pName));
         
    format(strsizeof(str), "%s.ini",pName);
        
    pConfig ini_openFile (str);

      if(
    pConfig == INI_OK)
        {
           
    ini_getInteger(pConfig,"Kills"pStats[playerid][Kills]);
           
    ini_getInteger(pConfig,"Deaths"pStats[playerid][Deaths]);
           
    ini_getInteger(pConfig,"Money"pStats[playerid][Money]);

            
    ini_closeFile(pConfig);

             
    SendClientMessage(playerid0xFFFFFF"[Сервер]: Файл найден.");
        }
        else
        {
            
    pConfig ini_createFile(str);
            
    SendClientMessage(playerid0xFFFFFF"[Сервер]: Файл отсуствует.");
            if (
    pConfig == INI_OK)
            {
            
    ini_setInteger(pConfig,"Kills"0);
            
    ini_setInteger(pConfig,"Deaths"0);
            
    ini_setInteger(pConfig,"Money"0);

                
    ini_getInteger(pConfig,"Kills"pStats[playerid][Kills]);
               
    ini_getInteger(pConfig,"Deaths"pStats[playerid][Deaths]);
               
    ini_getInteger(pConfig,"Money"pStats[playerid][Money]);
          
    ini_closeFile(pConfig);
          
    SendClientMessage(playerid0xFFFFFF"[Сервер]:Файл создан.");
            }
            else 
    SendClientMessage(playerid0xFFFFFF"[Сервер]: неудаёться создать файл");
        } 
    Ну а если своя тогдав public OnPlayerConnect!
    Теперь нам надо сделать чтоб при выходи все сохранялось в public OnPlayerDisconnect пихаем в самый низ перед return 1;
    PHP код:
     new pConfigpName[MAX_PLAYER_NAME], str[64];
         
    GetPlayerName(playeridpNamesizeof(pName));
         
    format(strsizeof(str), "%s.ini",pName);
        
    pConfig ini_openFile (str);
        if(
    pConfig == INI_OK)
        {
          
    ini_setInteger(pConfig,"Kills"pStats[playerid][Kills]);
            
    ini_setInteger(pConfig,"Deaths"pStats[playerid][Deaths]);
            
    ini_setInteger(pConfig,"Money"GetPlayerMoney(playerid));
            
    ini_closeFile(pConfig);
        }
        else print(
    "Ошибка при сохранений данных'");
        return 
    1;

    Теперь в public OnPlayerDeath добовляем чтоб довалось убийства и смерти ! ВОт это !Ну и конешно же чтоб в /stats показывало сколько убийств и смертей:
    PHP код:
    pStats[killerid][Kills]++;
      
    pStats[playerid][Deaths]++; 
    Ну и последнее добовляем в pubic OnPlayerCommandText команду /stats ВОт код :
    PHP код:
    if (strcmp("/stats"cmdtexttrue7) == 0)
        {
            new 
    str[256];
            
    format(strsizeof(str), "[Сервер]: Убийств: %d, Смертей: %d, Денег: %d"pStats[playerid][Kills], pStats[playerid][Deaths], GetPlayerMoney(playerid));
            
    SendClientMessage(playerid0xFFFFFFstr);
            return 
    1;
        } 
    ВОт и всё кому помог непожалейте для меня +!
    Учился по урокам Stunt спасибо ему!
    Урок окончен всем удачи!
    У кого какие ошибки пишите тут помогу!

  2. 10 пользователей сказали cпасибо Andrey_Kiryuhin за это полезное сообщение:

    legenda (21.11.2010), ReDDy ㋛ (25.11.2011), Ru[D]o (30.07.2011), shebelme (20.06.2011), sKeLeT (07.12.2011), Steve (27.09.2011), tankist (29.09.2011), Victor_Ananyev (19.06.2011), Vlad777 (24.01.2011), [H]ooligan[S] (19.11.2012)

  3. #2
    Пользователь
    Аватар для Andrey_Kiryuhin
    Статус
    Оффлайн
    Регистрация
    11.11.2010
    Адрес
    г.Пенза
    Сообщений
    516
    Репутация
    153 [+/-] 
    И так продолжем урок связанный с инклудом mxINI!
    Меня просто один человек попросил выложить для ознакомления с инклудом!
    Сейчас мы сделаем регистрацию в диалоге для сервера!
    Поговорим немножко о инклуде mxINI!
    Инклуд mxINI чем то хорош от инклуда Dini а чем то плох даже на старых ресурсах сравнивали их!
    Ну мы сейчас говорим не об DINI а о mxINI.
    Так вот этот инклуд позволяет быстро читай,сохранять,записывать данные с файла!
    Ну так вот маленькое описание дали дальше я вам расскажу функции mxINI
    1. Работа с файлами.
    PHP код:
    ini_createFile("Путь/к/файлу.ini"); // Данная функция создаёт файл.
    ini_openFile("Путь/к/файлу.ini"); // Эта функция открывает существующий файл.
    ini_closeFile(ИД_открытого_файла); // Эта функция закрывает уже открытый файл. 
    2. Запись данных в файл.
    PHP код:
    ini_setString(ИД_открытого_файла"имя ключа""текст"); // Эта функция записывает текст в ключ.
    ini_setInteger(ИД_открытого_файла"имя ключа"123456 ); // Эта функция записывает целое число в ключ.
    ini_setFloat(ИД_открытого_файла"имя ключа"3.1416 ); // Эта функция записывает десятичное число в ключ. 
    3. Чтение ключей из файла.
    PHP код:
    ini_getString(ИД_открытого_файла"имя ключа"Нужная_вам_переменная); // Эта функция записывает текст в переменную из файла.
    ini_getInteger(ИД_открытого_файла"имя ключа"Нужная_вам_переменная); // Эта функция записывает целое число в переменную из файла.
    ini_getFloat(ИД_открытого_файла"имя ключа"Нужная_вам_переменная); // Эта функция записывает десятичное число в переменную из файла. 
    4. Остальные функции.
    PHP код:
    ini_removeKey(ИД_открытого_файла"имя ключа"); // Эта функция удаляет ключ из файла
    ini_getErrorInfo(Код_ошибки); // Эта функция возвращает ошибку, не как число, а как текст. 
    Вот вам я моленько дал информации о как открыть как сохранять файлы!
    Теперь делаем саму регистрацию!
    Так вот создаём enum pInfo как например в моём уроке по сохранению киллов и денег !
    Потом закидываем ко всем forward
    PHP код:
    forward OnPlayerRegistered(playeridpassword[]); /* Этот паблик нужен для создания аккаунта */
    forward OnPlayerLogged(playeridpassword[]); /* Этот паблик нужен для авторизации */
    forward OnPlayerSave(playerid); /* Этот паблик нужен для сохранения данных при выходе игрока */
    forward OnPlayerConnect2(playerid); /* Этот паблик нужен, чтобы показать диалоговое окно при подключении. */ 
    Теперь создаём public-и
    PHP код:
    public OnPlayerLogged(playeridpassword[])
    {
        new 
    string[255], PlayerName[40];
            
    GetPlayerName(playeridPlayerName40);
            
    format(string256"%s.ini"PlayerName);
        new 
    iniFile ini_openFile (string); /* Открываем файл */
        
    ini_getString(iniFile"Password"string);  /* Узнаём пароль аккаунта */
        
    if(strcmp(stringpasswordtrue10) == 0)
            {  
    /* Проверяем совпадает пароль или нет */
            
    ini_getInteger(iniFile"Admin"Player[playerid][pAdmin]);  /* Если пароль совпадает узнаём переменную админ  */
            
    ini_getInteger(iniFile"Money"Player[playerid][pMoney]);  /* Узнаём кол-во денег */
            
    GivePlayerMoney(playeridPlayer[playerid][pMoney]);  /* Выдаём деньги */
            
    ini_closeFile(iniFile);  /* Закрываем файл */
        
    } else {  /* Если пароль не верный выдаём опять диалоговое меню */
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация.""Введите Пароль в окошко чтобы войти""Ок""Отмена");
            
    ini_closeFile(iniFile);  /* Закрываем файл */
        
    }
        return 
    1;

    public для регистрации
    PHP код:
    public OnPlayerRegistered(playeridpassword[])
    {
        new 
    string[255], PlayerName[40];
        
    GetPlayerName(playeridPlayerName40);
        
    format(string256"%s.ini"PlayerName);
        new 
    iniFile ini_createFile(string);  /* Создаём файл */
        
    if(iniFile 0)
        
    iniFile ini_openFile(string); /* Открываем файл */
        
    ini_setString(iniFile"Password"password); /* Записываем пароль в файл */
        
    ini_setInteger(iniFile"Admin"0);  /* Создаём переменную админа */
        
    ini_setInteger(iniFile"Money"100);  /*  Создаём переменную денег */
        
    ini_closeFile(iniFile);  /* Закрываем файл */
            
    OnPlayerLogged(playeridpassword);
        return 
    1;

    public для сохранения
    PHP код:
    public OnPlayerSave(playerid){
        
    Player[playerid][pMoney] = GetPlayerMoney(playerid); /* Узнаём кол-во денег */
        
    new string[255], PlayerNames[40];
         
    GetPlayerName(playeridPlayerNames40);
         
    format(string256"%s.ini"PlayerNames);
        new 
    iniFile ini_openFile (string); /* Открываем файл */
        
    ini_setInteger(iniFile"Money"Player[playerid][pMoney]); /* Сохраняем кол-во денег в файл */
        
    ini_closeFile(iniFile); /* Закрываем файл */
        
    return 1;

    Потом в public OnDialogResponce добовляем наш диалоговое меню
    PHP код:
        if(dialogid == 0){
            if(
    response){
                if(!
    strlen(inputtext)){
                    
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Регистрация!Введите пороль чтобы зарегестрироваться на сервере.""Пароль""Ок""Отмена"); /* Если не ввёл текст выдаём окно заного */
                    
    return 1;
                }
                
    OnPlayerRegistered(playeridinputtext);
            }else{
                
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Регистрация!Введите пороль чтобы зарегестрироваться на сервере.""Пароль""Ок""Отмена"); /* Если нажал отмена */
            
    }
            return 
    1;
        }
    //------------------------------------------------------------------------------
        
    if(dialogid == 1){
            if(
    response){
                if(!
    strlen(inputtext)){
                    
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация.""Введите Пароль в окошко чтобы войти""Ок""Отмена"); /* Если не ввёл пароль для авторизации */
                    
    return 1;
                }
                
    OnPlayerLogged(playeridinputtext);
            }else{
                
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация.""Введите Пароль в окошко чтобы войти""Ок""Отмена"); /* Если нажал отмена */
            
    }
            return 
    1;
        } 
    Примерно будет выглядить так
    PHP код:
    public OnDialogResponse(playeriddialogidresponselistiteminputtext[]){
    //------------------------------------------------------------------------------
        
    if(dialogid == 0){
            if(
    response){
                if(!
    strlen(inputtext)){
                    
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Регистрация!Введите пороль чтобы зарегестрироваться на сервере.""Пароль""Ок""Отмена"); /* Если не ввёл текст выдаём окно заного */
                    
    return 1;
                }
                
    OnPlayerRegistered(playeridinputtext);
            }else{
                
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Регистрация!Введите пороль чтобы зарегестрироваться на сервере.""Пароль""Ок""Отмена"); /* Если нажал отмена */
            
    }
            return 
    1;
        }
    //------------------------------------------------------------------------------
        
    if(dialogid == 1){
            if(
    response){
                if(!
    strlen(inputtext)){
                    
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация.""Введите Пароль в окошко чтобы войти""Ок""Отмена"); /* Если не ввёл пароль для авторизации */
                    
    return 1;
                }
                
    OnPlayerLogged(playeridinputtext);
            }else{
                
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация.""Введите Пароль в окошко чтобы войти""Ок""Отмена"); /* Если нажал отмена */
            
    }
            return 
    1;
        }
    //------------------------------------------------------------------------------
        
    return 1;

    Продолжение снизу

  4. 4 пользователей сказали cпасибо Andrey_Kiryuhin за это полезное сообщение:

    shebelme (20.06.2011), Steve (27.09.2011), tankist (29.09.2011), Victor_Ananyev (19.06.2011)

  5. #3
    Пользователь
    Аватар для Andrey_Kiryuhin
    Статус
    Оффлайн
    Регистрация
    11.11.2010
    Адрес
    г.Пенза
    Сообщений
    516
    Репутация
    153 [+/-] 
    Теперь создаём ещё один паблик чтобы при коннекте выдавался диалог с регистрацией или логином
    PHP код:
    public OnPlayerConnect2(playerid)
    {
            new 
    string[255], PlayerName[40];
            
    GetPlayerName(playeridPlayerName40);
            
    format(string256"%s.ini"PlayerName);
        if(
    fexist(string)) /* Проверяем есть файл ( зарегистрирован ) или нет */
            
    {
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_INPUT"Авторизация.""Пароль""Ок""Отмена"); /* Если файл есть то даём окно авторизации */
        
    }  else {
                     
    ShowPlayerDialog(playerid0DIALOG_STYLE_INPUT"Регистрация.""Пароль""Ок""Отмена"); /* Если он не зарегистрирован, даём окно регистрации  */
            
    }
        return 
    1;

    В public OnPlayerDisconnect добовляем
    PHP код:
    OnPlayerSave(playerid); /* Сохраняем данные при выходе из игры */ 
    Для сохранения при выходе из игры!
    Вот и всё половина материала взята с sa-mp.com
    Половина урока моя!
    Спасибо за внимание удачи вам с инклудом mxINI задавайте в эту тему свои вопросы по инклуду!
    Большую благодарность Stunt-у за обяснение этого инклуда и работу с ним!
    Специально для Pawno-Info

  6. 7 пользователей сказали cпасибо Andrey_Kiryuhin за это полезное сообщение:

    Ejikin91 (24.06.2011), IncoGnitO (22.01.2011), Role[x] (07.01.2011), shebelme (20.06.2011), Steve (27.09.2011), tankist (26.09.2011), Victor_Ananyev (19.06.2011)

  7. #4
    Пользователь
    Аватар для Role[x]
    Статус
    Оффлайн
    Регистрация
    19.12.2010
    Сообщений
    21
    Репутация
    0 [+/-] 
    Спасибо, лови +

  8. #5
    Пользователь
    Аватар для Andrey_Kiryuhin
    Статус
    Оффлайн
    Регистрация
    11.11.2010
    Адрес
    г.Пенза
    Сообщений
    516
    Репутация
    153 [+/-] 
    да нз

  9. 2 пользователей сказали cпасибо Andrey_Kiryuhin за это полезное сообщение:

    Role[x] (07.01.2011), Steve (27.09.2011)

  10. #6
    Пользователь
    Аватар для IncoGnitO
    Статус
    Оффлайн
    Регистрация
    11.11.2010
    Сообщений
    251
    Репутация
    22 [+/-] 
    хорошый урок

  11. #7
    Пользователь
    Аватар для Vlad777
    Статус
    Оффлайн
    Регистрация
    12.11.2010
    Сообщений
    131
    Репутация
    0 [+/-] 
    ого спасибо за урок.

  12. #8
    Пользователь
    Аватар для D_ReMax
    Статус
    Оффлайн
    Регистрация
    11.02.2011
    Сообщений
    7
    Репутация
    0 [+/-] 
    Спасибо за урок , попробую сделать позже)

  13. #9
    Пользователь
    Аватар для TEKINQ
    Статус
    Оффлайн
    Регистрация
    11.02.2011
    Сообщений
    3
    Репутация
    0 [+/-] 
    Сори я нуб и у меня выходит вот что

    C:\SERVER\SA-MP\gamemodes\test.pwn(155) : error 017: undefined symbol "Player"
    C:\SERVER\SA-MP\gamemodes\test.pwn(155) : warning 215: expression has no effect
    C:\SERVER\SA-MP\gamemodes\test.pwn(155) : error 001: expected token: ";", but found "]"
    C:\SERVER\SA-MP\gamemodes\test.pwn(155) : error 029: invalid expression, assumed zero
    C:\SERVER\SA-MP\gamemodes\test.pwn(155) : fatal error 107: too many error messages on one line

    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    4 Errors.

    ini_getInteger(iniFile, "Admin", Player[playerid][pAdmin]); /* Если пароль совпадает узнаём переменную админ */


    Помогите пожалуйста
    Последний раз редактировалось TEKINQ; 11.02.2011 в 23:11.

  14. #10
    Пользователь
    Аватар для Andrey_Kiryuhin
    Статус
    Оффлайн
    Регистрация
    11.11.2010
    Адрес
    г.Пенза
    Сообщений
    516
    Репутация
    153 [+/-] 
    что то пропустил или неправильно копирнул и какой мод у тебя?


Страница 1 из 5 123 ... ПоследняяПоследняя

Ваши права

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