Wysłany: 2013-10-09, 22:33
Jasiek
Wiek: 27 Na forum: 4621 dni Posty: 1
Nick w MP: Jas_Tu_Ora
Witam. Poni?szy kod tworzy plik z danymi gracza, ale niestety plik jest pusty. Przedstawiam wam poni?ej kod, prosz? o korekrte w razie buga xD
Kod: #include <YSI\y_ini>
enum SavePlayerPosEnum
{
Float:LastX,
Float:LastY,
Float:LastZ
};
enum pInfo
{
pHaslo,
pKasa,
pPunkty
}
new PlayerInfo[MAX_PLAYERS][pInfo];
#define KONTA "Konta/Gracze/%s.ini"
public OnPlayerConnect(playerid)
{
if(fexist(Gracz(playerid)))
{
ShowPlayerDialog(playerid, 31, DIALOG_STYLE_PASSWORD,"Power Project - Logowanie!","{ffffff}Witaj ponownie na {ffa900}Power Project!\n{ffffff}Aby si? zalogowa?, podaj swoje {ff0000}has?o{ffffff}, kt?re wpisa?e? podczas rejestracji.\n","Zaloguj","Anuluj");
}
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:Plik = INI_Open(Gracz(playerid));//Otwieramy plik
INI_SetTag(Plik,"Dane");//Nadajemy Tag
INI_WriteInt(Plik,"Pieniadze",GetPlayerMoney(playerid));//Zapisujemy ilo?? pieni?dzy
INI_WriteInt(Plik,"Punkty",GetPlayerScore(playerid));//Zapisujemy ilo?? score
INI_Close(Plik);//Zamykamy plik
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 30) // Od komendy /rejestracja
{
{
new string[64], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
format(string,sizeof string,"Mamy nowego zarejestrowanego gracza - %s!",pName);
SendClientMessageToAll(COLOR_VIOLET,string);
new INI:Plik = INI_Open(Gracz(playerid));
INI_SetTag(Plik,"Dane");
INI_WriteInt(Plik,"Haslo",udb_hash(inputtext));
INI_WriteInt(Plik,"Pieniadze",0);
INI_WriteInt(Plik,"Punkty",0);
INI_Close(Plik);
}
}
if(dialogid == 31) //Od logowania w OnPlayerConnect
{
if(!response) return SendClientMessage(playerid,0xFF0000AA,"Zosta?e? wyrzucony z serwera. Pow?d: Zamkni?cie okna logowania."), Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pHaslo])//Sprawdza poprawno?? has?a
{
INI_ParseFile(Gracz(playerid), "Zaladuj_%s", .bExtra = true, .extra = playerid);
SetPVarInt(playerid,"Zalogowany",1);
SetPlayerScore(playerid,PlayerInfo[playerid][pPunkty]);//Odczyt punkt?w score
GivePlayerMoney(playerid,PlayerInfo[playerid][pKasa]);//Odczyt ilo?ci pieni?dzy
}
else
{
Kick(playerid);
}
}
return 1;
}
// Pobranie nicku gracza i pobranie nazwy jego pliku,
stock Gracz(playerid)
{
new PlayerNick[MAX_PLAYER_NAME], string[256];
GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
format(string,sizeof(string),KONTA,PlayerNick);
return string;
}
// Callback wczytuj?cy dane gracza,
forward Zaladuj_Dane(playerid,name[],value[]);
public Zaladuj_Dane(playerid,name[],value[])
{
INI_Int("Haslo",PlayerInfo[playerid][pHaslo]);
INI_Int("Pieniadze",PlayerInfo[playerid][pKasa]);
INI_Int("Punkty",PlayerInfo[playerid][pPunkty]);
return 1;
}
Wysłany: 2013-10-11, 14:26
Haribo
Taki Żeluś
Wiek: 29 Na forum: 4680 dni Posty: 224
Nick w MP: Haribo
Piwa : 2818
Czy?by nikt nie wiedzia??
Przy??czam si? do problemu kolegi - za pomoc
Wysłany: 2013-10-11, 15:39
IgrexolonO
Wiek: 34 Na forum: 6810 dni Posty: 1386
Piwa : 1062
Kod: enum pInfo
{
pHaslo,
pKasa,
pPunkty
}; new PlayerInfo[MAX_PLAYERS][pInfo];
#define KONTA "Konta/Gracze/%s.ini"
public OnPlayerConnect(playerid)
{
if(fexist(Gracz(playerid)))
{
ShowPlayerDialog(playerid, 31, DIALOG_STYLE_PASSWORD,"Power Project - Logowanie!","{ffffff}Witaj ponownie na {ffa900}Power Project!\n{ffffff}Aby si? zalogowa?, podaj swoje {ff0000}has?o{ffffff}, kt?re wpisa?e? podczas rejestracji.\n","Zaloguj","Anuluj");
}
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:Plik = INI_Open(Gracz(playerid));//Otwieramy plik
INI_SetTag(Plik,"Dane");//Nadajemy Tag
INI_WriteInt(Plik,"Pieniadze",GetPlayerMoney(playerid));//Zapisujemy ilo?? pieni?dzy
INI_WriteInt(Plik,"Punkty",GetPlayerScore(playerid));//Zapisujemy ilo?? score
INI_Close(Plik);//Zamykamy plik
return true;
}
forward Zaladuj_Dane(playerid,name[],value[]);
public Zaladuj_Dane(playerid,name[],value[])
{
INI_Int("Haslo",PlayerInfo[playerid][pHaslo]);
INI_Int("Pieniadze",PlayerInfo[playerid][pKasa]);
INI_Int("Punkty",PlayerInfo[playerid][pPunkty]);
return 1;
}
CMD:rej(playerid, p[])
{
ShowPlayerDialog(playerid, 30, DIALOG_STYLE_PASSWORD, "Rejestracja", "Podaj has?o k****", "Ok", "Wypierdalaj");
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 30) // Od komendy /rejestracja
{
new string[64], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
format(string,sizeof string,"Mamy nowego zarejestrowanego gracza - %s!",pName);
SendClientMessageToAll(0xBF5FFFFF,string);
new INI:Plik = INI_Open(Gracz(playerid));
INI_SetTag(Plik,"Dane");
INI_WriteInt(Plik,"Haslo",udb_hash(inputtext));
INI_WriteInt(Plik,"Pieniadze",0);
INI_WriteInt(Plik,"Punkty",0);
INI_Close(Plik);
return true;
}
if(dialogid == 31) //Od logowania w OnPlayerConnect
{
if(!response) return SendClientMessage(playerid,0xFF0000AA,"Zosta?e? wyrzucony z serwera. Pow?d: Zamkni?cie okna logowania."), Kick(playerid);
INI_ParseFile(Gracz(playerid), "Zaladuj_%s", .bExtra = true, .extra = playerid);
SetPVarInt(playerid,"Zalogowany",1);
SetPlayerScore(playerid,PlayerInfo[playerid][pPunkty]);//Odczyt punkt?w score
GivePlayerMoney(playerid,PlayerInfo[playerid][pKasa]);//Odczyt ilo?ci pieni?dzy
return true;
}
return false;
}
stock Gracz(playerid)
{
new string[50];
format(string, sizeof(string), KONTA, PlayerName(playerid));
return string;
}
Wi?c?
Tagi: y-ini
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: