yuras0401
Умник
Здраствуйте, у меня проблемка с регистрацией на дини, делает акк всё хорошо но не грузит деньги, уровень и скин
вот сам код:
это в OnPlayerConnect
это в OnPlayerDisconnect
это стоит в OnDialogResponse
и SaveAccounts
в OnPlayerUpdate_GF
Помогите плиз дам +
вот сам код:
это в OnPlayerConnect
PHP:
gPlayerLogged[playerid] = 0;
new name[MAX_PLAYER_NAME], file[256], str[250], str2[250];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if (!dini_Exists(file))
{
format(str, 250, "{FFFFFF}===================================\n\nЗдраствуйте {FFFF00}%s{FFFFFF}\n\n Вы первыйраз зашли на наш сервер и Вам надо зарегестрироваться\n\nПридумайте и введите свой пароль в окошко:\n\n===================================", name);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", str, "Ок", "");
}
if(fexist(file))
{
format(str2, 250, "{FFFFFF}===================================\n\nЗдраствуйте {FFFF00}%s{FFFFFF}\n\n Вы уже зарегестрированы и Вам надо авторизоваться\n\nВведите свой пароль в окошко:\n\n===================================", name);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", str2, "Войти", "");
}
PHP:
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
dini_IntSet(file, "Level",PlayerInfo[playerid][pLevel]);
dini_IntSet(file, "Exp",PlayerInfo[playerid][pExp]);
}
gPlayerLogged[playerid] = 0;
PHP:
if (dialogid == 1)
{
new name[MAX_PLAYER_NAME], file[256], str[250];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
if (!strlen(inputtext)) return
format(str, 250, "{FFFFFF}===================================\n\nЗдраствуйте {FFFF00}%s{FFFFFF}\n\n Вы первыйраз зашли на наш сервер и Вам надо зарегестрироваться\n\nПридумайте и введите свой пароль в окошко:\n\n===================================", name);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Регистрация", str, "Ок", "");
dini_Create(file);
dini_IntSet(file, "Password", udb_hash(inputtext));
dini_IntSet(file, "Level",PlayerInfo[playerid][pLevel] = 1);
dini_IntSet(file, "Exp",PlayerInfo[playerid][pExp] = 0);
dini_IntSet(file, "Sex",PlayerInfo[playerid][pSex] = 6);
dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdmin] = 0);
dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 5000);
dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
format(string, 128, "%s был успешно зарегестрирован, Ваш пароль %s. Вы автоматически авторизованы.", name, inputtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
gPlayerLogged[playerid] = 1;
}
if (dialogid == 2)
{
new name[MAX_PLAYER_NAME], file[256], str[250], str2[250];
GetPlayerName(playerid, name, sizeof(name));
format(file, sizeof(file), SERVER_USER_FILE, name);
if(!response) return Kick(playerid);
format(str2, 250, "{FFFFFF}===================================\n\nЗдраствуйте {FFFF00}%s{FFFFFF}\n\n Вы уже зарегестрированы и Вам надо авторизоваться\n\nВведите свой пароль в окошко:\n\n===================================", name);
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", str2, "Войти", "");
new tmp;
tmp = dini_Int(file, "Password");
if(udb_hash(inputtext) != tmp) {
SendClientMessage(playerid, COLOR_RED, "Не верный пароль.");
format(str, 250, "{FFFFFF}===================================\n\nЗдраствуйте {FFFF00}%s{FFFFFF}\n\n Вы уже зарегестрированы и Вам надо авторизоваться\n\nВведите свой пароль в окошко:\n\n===================================", name);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Авторизация", str, "Войти", "");
}
else
{
gPlayerLogged[playerid] = 1;
PlayerInfo[playerid][pAdmin] = dini_Int(file, "AdminLevel");
PlayerInfo[playerid][pLevel] = dini_Int(file, "Level");
PlayerInfo[playerid][pExp] = dini_Int(file, "Exp");
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
SendClientMessage(playerid,COLOR_RED, "");
}
}
PHP:
public SaveAccounts()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
OnPlayerUpdate_GF(i);
if(PlayerInfo[i][pJob] > 0)
{
if(PlayerInfo[i][pContractTime] < 25)
{
PlayerInfo[i][pContractTime] ++;
}
}
}
}
}
PHP:
public OnPlayerUpdate_GF(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "Acconts/%s.ini", playername3);
new File = iniOpen(string3);
if(!File)
{
// iniSet(File,"Key",PlayerInfo[playerid][pKey]);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
iniSetInt(File,"Level",PlayerInfo[playerid][pLevel]);
iniSetInt(File,"Exp",PlayerInfo[playerid][pExp]);
iniSetInt(File,"AdminLevel",PlayerInfo[playerid][pAdmin]);
iniSetInt(File,"Money",PlayerInfo[playerid][pCash]);
iniSetInt(File,"Sex",PlayerInfo[playerid][pSex]);
if ((PlayerInfo[playerid][pPos_x]==0.0 && PlayerInfo[playerid][pPos_y]==0.0 && PlayerInfo[playerid][pPos_z]==0.0))
{
PlayerInfo[playerid][pPos_x] = 2224.60009766;
PlayerInfo[playerid][pPos_y] = -1144.69995117;
PlayerInfo[playerid][pPos_z] = 1025.40002441;
}
new year, month, day;
getdate(year, month, day);
new strstre[100];
format(strstre,sizeof(strstre),"%d/%d/%d",day,month,year);
iniSet(File,"Online",strstre);
new ptemp[80];
format(ptemp,sizeof(ptemp),"%s",PlayerInfo[playerid][pMarriedTo]);
iniSet(File,"MarriedTo",ptemp);
iniClose(File);
}
}
}
return 1;
}
Последнее редактирование:
