SA-MP Forums Archive
Перенос аккаунтов файлы=>mysql - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Перенос аккаунтов файлы=>mysql (/showthread.php?tid=409249)



Перенос аккаунтов файлы=>mysql - vlad12559 - 20.01.2013

После перевода сервера на бд написал небольшой скрипт автоматического переноса с файлов в бд(не php,a напрямую при коннекте),то есть при коннекте проверяем зарегистрирован ли игрок на сервере в файлах и записываем всё в бд,однако возникли проблемы.Как вы считаете как лучше переносить аккаунты,php скриптом или при коннекте игрока проверку,имеется ли его аккаунт в файлах и автоматическая запись в бд?
Вот как я сделал
в onplayerconnect

http://pastebin.com/kZfd8B8z

в public OnPlayerRequestClass(playerid, classid)

http://pastebin.com/VKzrHhLR

Вот функции записи и проверки зареган или нет

http://pastebin.com/NwfLJLhf

При коннекте аккаунт просто не успевает как бы перенестись,то есть имя и пароль переносит нормально,а остальное как рандомно...


Re: Перенос аккаунтов файлы=>mysql - [A_Tm]_Denis - 20.01.2013

Quote:
Originally Posted by vlad12559
Посмотреть сообщение
За оплату.Убедительная просьба пользователей с низким знанием не тревожить.
на этом форуме запрещен платный скриптинг и любые платные услуги.


Re: Перенос аккаунтов файлы=>mysql - Splav - 21.01.2013

В скрипте ошибка значит. GameWorld именно так и переводил аккаунты на БД. При коннекте - запись из файла в БД, удаление файла


Re: Перенос аккаунтов файлы=>mysql - vlad12559 - 21.01.2013

Никто не поможет?


Re: Перенос аккаунтов файлы=>mysql - pozitiv4eg - 21.01.2013

Делал для своего сервера mysql r7
в OnPlayerRequestClass
PHP код:

        
new name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    new 
accounts[32];
    
format(accounts,sizeof(accounts),"%s.ini",name);
    if(
fexist(accounts))
    {
        return 
OnPlayerChangeAccount(playerid);
    } 
PHP код:
public OnPlayerChangeAccount(playerid)
{
    new 
name[24];
    new 
str[128];
    new 
pass[100];
    
GetPlayerName(playerid,name,sizeof(name));
    
format(str,sizeof(str),"%s.ini",name);
    new 
inisql ini_openFile(str);
    
ini_getString(inisql,"Key",pass);
    
ini_closeFile(inisql);
    
format(str,sizeof(str),"INSERT INTO `accounts`(`name`,`password`) VALUES ('%s','%s')",name,pass);
    
mysql_function_query(sqlsampstrfalse"","");
    
SendClientMessage(playerid,-1,".");
    
SendClientMessage(playerid,-1,".");
    
OnPlayerUpdateAccounts(playerid);
    return 
1;

Ну а дальше вытаскивал значение и update.
ну и соответственно кикал игрока типо с причиной перезайти. Думаю самый оптимальный вариант


Re: Перенос аккаунтов файлы=>mysql - vlad12559 - 22.01.2013

Изменил,однако происходит то же самое.То есть у когото слетают часы в игре,у когото team и т.д.В чём может быть проблема?Может в самой таблице?


Re: Перенос аккаунтов файлы=>mysql - pozitiv4eg - 22.01.2013

Смотреть надо


Re: Перенос аккаунтов файлы=>mysql - vlad12559 - 22.01.2013

в public OnPlayerRequestClass(playerid, classid)

http://pastebin.com/92dBtjpR

вот сам паблик проверки

http://pastebin.com/dS6mW4Th

паблик перезаписи

http://pastebin.com/M2rWDgya

диалоги

http://pastebin.com/y7DicKgm

ну и функции которые записывают в бд

http://pastebin.com/WZgmfiw9

За помощь буду очень признателен,если есть возможность вот мой скайп vlad12559,там поподробней могу всё пояснить.


Re: Перенос аккаунтов файлы=>mysql - pozitiv4eg - 22.01.2013

а где проверка на то есть ли аккаунт или его нету?


Re: Перенос аккаунтов файлы=>mysql - vlad12559 - 22.01.2013

Я же выше кинул
OnPlayerRegCheck

вот
http://pastebin.com/dS6mW4Th

и сам вызов этой проверки вот

http://pastebin.com/92dBtjpR