Вторник, 02.12.2008, 21:21
 
 
Приветствую Вас Проезжий | RSS
[ Новые сообщения · Участники · Правила форума · Поиск! · RSS ]
Статистика Форума
Последние ответы Популярные темы Лучшие пользователи TOP 7
  • GTA 4 уже можно с... [GTA 4]
  • Ахмед [Юмор]
  • Подскажите хостер... [Админ-раздел]
  • йа эмо! [Скандалы]
  • Боитесь ли вы при... [Обо Всём]
  • [FS] Дроп оружия ... [Скрипты]
  • Задавайте сюда ва... [Вопросы и Проблемы]
  • Вопрос - Ответ (Ответов: 961)
  • Обсуждение мода CityLi... (Ответов: 923)
  • Задавайте сюда ваши во... (Ответов: 921)
  • Помощь новечкам по скр... (Ответов: 613)
  • Пошли всех на хуй тут! (Ответов: 513)
  • Обратный отщёт от 500 (Ответов: 512)
  • Pen1 LS v1.4 by ONEhel... (Ответов: 386)
  • MiX (Сообщений: 2611)
  • AXE (Сообщений: 2267)
  • OKStyle™ (Сообщений: 1934)
  • fAkm4n (Сообщений: 1728)
  • RockStarGamer (Сообщений: 1608)
  • DarkByte (Сообщений: 1317)
  • MAK (Сообщений: 1294)
  • Страница 2 из 2«12
    Модератор форума: XAOC 
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Всё о чтении/сохранении в файл (Напишите статью для чайников)
    Всё о чтении/сохранении в файл
    SanSayДата: Понедельник, 25.08.2008, 19:46 | Сообщение # 16
    Местный

    Группа: Продвинутые
    Сообщений: 633
    Город: Наб.Челны
    Статус: status
    XAOC, тоже сделал как ты, но остается вопрос: будет ли работать теперь )))

    WintMax, тебе именно через дини или вообще тебе нужно это сделать?

    Добавлено (25.08.2008, 19:46)
    ---------------------------------------------
    ха, моя версия не работает ))), пользуюсь версией XAOC, пока вроде работает
    П.С. когда еще не было добавленно не одного действия при помощи Dini, но при добавленных инклудах в мод - выдавало ошибку
    добавил dini_Set и ошибка пропала... интересно )))


    217.198.1.76:7777 Mode:PEN1(LS)+GTO(банды+кач)
    PEN1(LS)+GTO(банды+кач)v3.14
    AntiBot
     
    WintMaxДата: Понедельник, 25.08.2008, 21:16 | Сообщение # 17
    Местный

    Группа: Продвинутые
    Сообщений: 566
    Статус: status
    SanSay, хоть как. Главное, чтобы можно было вести логи
     
    SanSayДата: Вторник, 26.08.2008, 00:01 | Сообщение # 18
    Местный

    Группа: Продвинутые
    Сообщений: 633
    Город: Наб.Челны
    Статус: status
    WintMax, для Пенсела

    forward ChatLog (string[]);

    public ChatLog(string[])
    {
    new data[64];
    new entry[256];
    new hour,minute,second;
    new year,month,day;
    gettime(hour,minute,second);
    getdate(year,month,day);
    if (minute <= 9)
    {
    format(entry, sizeof(entry), "[%d.0%d.%d] - %s\n",hour,minute,second,string);
    }
    else
    {
    format(entry, sizeof(entry), "[%d.%d.%d] - %s\n",hour,minute,second,string);
    }
    new File:hFile;
    format(data, sizeof(entry), "logs/[%d.%d.%d]-Chat.log",day,month,year);
    hFile = fopen(data, io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    }
    в public OnPlayerText
    ....
    {
    new string[256];
    new pname[256];
    new output[MAX_PLAYER_NAME+66];
    GetPlayerName(playerid, pname, sizeof(pname));
    strmid(string, text, 0, 65);
    format(output, sizeof(output), " %s[%d]: %s", pname, playerid, string);
    SendClientMessageToAll(0xFFFFFFAA, output);
    ChatLog(output);
    return 0;
    }

    для привата:
    forward PMLog (string[]);
    public PMLog(string[])
    {
    new data[64];
    new entry[256];
    new hour,minute,second;
    new year,month,day;
    gettime(hour,minute,second);
    getdate(year,month,day);
    if (minute <= 9)
    {
    format(entry, sizeof(entry), "[%d.0%d.%d] - %s\n",hour,minute,second,string);
    }
    else
    {
    format(entry, sizeof(entry), "[%d.%d.%d] - %s\n",hour,minute,second,string);
    }
    new File:hFile;
    format(data, sizeof(entry), "logs/[%d.%d.%d]-PM.log",day,month,year);
    hFile = fopen(data, io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    }
    public OnPlayerPrivmsg(playerid, recieverid, text[])
    {
    new message[256],pln[24],pln1[24];
    GetPlayerName(playerid,pln,sizeof(pln));
    GetPlayerName(recieverid,pln1,sizeof(pln1));
    format(message,sizeof(message)," [PM] [%s -> %s]: %s",pln,pln1,text);
    PMLog(message);
    return 1;
    }

    Добавлено (26.08.2008, 00:01)
    ---------------------------------------------
    народ проблема:
    используется для создания банд (мод Пенсел)
    ...банда создается...
    игроку в акк нужно записать название банды в ТЕКСТОВОМ виде
    записывается при создании банды так:
    GetPlayerName(playerid, name, sizeof(name));
    format(stringname, sizeof(stringname),"%s.Gang", name);
    strmid(PlayerInfo[playerid][pNameGang], stringname, 0, strlen(stringname), 255);
    если после создания банды выйти из игры, то в файле акка напротив строки pNameGang прописывается название банды, если зайти на серв опять и выйти, то все равно в файле все нормально прописывается... казалось бы все ок... но нифига ((( если сделать рестарт серва, то если зайти (с уже созданной бандой) на серв и выйти начинаются чудеса
    для начала опишу как сохраняю и как загружаю данные из файла акка:
    чтение два варианта пробовал
    public OnPlayerLogin
    1) fread(file, valtmp);PlayerInfo[playerid][pNameGang] = strval(valtmp);DelPrint(valtmp);
    2) fread(file, valtmp); strmid(PlayerInfo[playerid][pNameGang], valtmp, 0, strlen(valtmp), 255);

    сохранение
    public OnPlayerUpdate(playerid)
    format(var, 32, "%s pNameGang\n",PlayerInfo[playerid][pNameGang]);fwrite(hFile, var);

    если в чтении использовать первый вариант, то инфа сохраняется только до рестарта серва, т.е. в файл записывается, но если сделать рест серва, то в файле уже остается только пустая строка pNameGang, без значения.
    если в чтении использовать второй вариант, то инфа сохраняется, но если после рестарта зайти, после строки "значение" pNameGang (т.е. значение сохраняется) появляется еще одна строка pNameGang, но уже без значения! Т.е. уже имеется 2 строки pNameGang одна с именем банды, другая без имени

    потом подумал может у меня все таки неправильно сохраняется всего лишь и попробовал в сохранении использовать
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string, sizeof(string),"%s.Gang",playername);
    format(var, 32, "%s pNameGang\n",strmid(PlayerInfo[playerid][pNameGang], string, 0, strlen(string4), 255));fwrite(hFile, var);
    и значение сохраняется даже после рестарта... но не имя банды, а последее введеное игроком, например если войти в игру и сразу выйти, то в значении будет /login пароль
    блин какже сохранить и загрузить данные правильно??????????????


    217.198.1.76:7777 Mode:PEN1(LS)+GTO(банды+кач)
    PEN1(LS)+GTO(банды+кач)v3.14
    AntiBot


    Сообщение отредактировал SanSay - Понедельник, 25.08.2008, 23:16
     
    KaZaNOVaДата: Вторник, 26.08.2008, 01:03 | Сообщение # 19
    Уверенный

    Группа: Ангел Хранитель
    Сообщений: 216
    Город: Ульяновск
    Статус: status
    SanSay, попробуй в OnGameModeExit() вставить следующее:
    Code
    for(new i; i < MAX_PLAYERS; i++){
    format(var, 32, "%s pNameGang\n",PlayerInfo[i][pNameGang]);fwrite(hFile, var);
    }

    Естественно со всеми твоими переменными. :)
    и если не получится то в ПлауерДисконнект:
    Code
    format(var, 32, "%s pNameGang\n",PlayerInfo[playerid][pNameGang]);fwrite(hFile, var);


    Not we bad speak - you bad understand... ©KaZaNOVa
    У каждого девелопера свои петухи в голове ©OKStyle™


     
    JIeXaДата: Вторник, 26.08.2008, 15:00 | Сообщение # 20
    Местный

    Группа: Продвинутые
    Сообщений: 719
    Город: Челябинск
    Статус: status
    KaZaNOVa, раскажи про новый инклуд от драко блу dini2!
    там система db

    My works:
    [FS]Otmichka
    [FS]Music
    [FS]Clans & Spawn
    [FS]Time and Date
    [FS]Fireworks
    [FS]FixRus
    [FS]Fond
    [FS]Kill
    [FS]Lop&veh
    Scripts Package
    My ICQ 444154563
     
    webserferДата: Воскресенье, 14.09.2008, 15:53 | Сообщение # 21
    Уверенный

    Группа: Media-ProGroup
    Сообщений: 177
    Город: Мурманск
    Статус: status
    Как создать файл с расширением? (любым, например .txt)
    например
    Code
    new period = dini_Int(udb_encode("settings"),"period");

    работает на ура, а
    Code
    new period = dini_Int(udb_encode("settings.txt"),"period");

    не пашет wall
    -----
    file не предлагать, только Dini

    (с) Алфавит, 1990, 17 ноября
    ---
    АХ ТЫ...ЩА В ИГНОР ЗАЕБЕНЮ ©, ATOM57
    У мя наконец-то новый комп))) так что я снова здесь)


    Сообщение отредактировал webserfer - Воскресенье, 14.09.2008, 15:55
     
    NC22Дата: Воскресенье, 14.09.2008, 16:20 | Сообщение # 22
    Уверенный

    Группа: Продвинутые
    Сообщений: 214
    Статус: status
    Узнаю для себя новое если кто-нибдь расскажет как делать копии/переименовывать файлы?

    [FS] Car Coordinator v 0.1|[FS] Anti Art-Money (введена игровая валюта)|
    Программа для Конвертирования карт SAMP в MTA и обратно © NC22
     
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Всё о чтении/сохранении в файл (Напишите статью для чайников)
    Страница 2 из 2«12
    Поиск:

    Copyright SAMP-RUS© 2008