szymixooo
Uczeń Pawn
Wiek: 33 Na forum: 3644 dni Posty: 41
Nick w MP: szymixooo
Piwa : 62
Gdybys poda? lini? to by?oby ?atwiej. Pierwszy blad na pewno wychodzi z braku stocka "WymusWyborPostaci". Ni?ej masz kod ca?ego kodu
Kod: #include <a_samp>
#include <dfile>
#include <kolory>
#define FOLDER_KONT "/Konta/"
#define PUNKTY_NA_START 1000
#define KASA_NA_START 10500
#define DIALOG_REJESTRACJA 0
#define DIALOG_LOGOWANIE 1
main(){}
enum Dgracza // Dane Gracza
{
bool:Zalogowany
};
new DaneGracza[MAX_PLAYERS][Dgracza];
public OnGameModeInit()
{
if(!dfile_FileExists(FOLDER_KONT))
{
return printf("Folder %s nie istenije we folderze sriptfiles.", FOLDER_KONT);
}
else printf("Folder %s jest gotowy do uzycia!", FOLDER_KONT);
UsePlayerPedAnims(); //Chodzenia jak na singlu
for(new idskina=0; idskina < 311; idskina++) //Wybiera?ka skin?w
{
AddPlayerClass(idskina, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LOGOWANIE)
{
if(response)
{
dfile_Open(SciezkaKontaGracza(playerid));
new haslo[300];
haslo = dfile_ReadString("Haslo");
dfile_CloseFile();
if(strcmp(inputtext, haslo, false) == 0)
{
WczytajKonto(playerid);
DaneGracza[playerid][Zalogowany] = true;
TogglePlayerSpectating(playerid, false);
WymusWyborPostaci(playerid);
SendClientMessage(playerid, COLOR_YELLOW, "SERWER: Haslo sie zgadza, zostales zalogowany.");
}
else
{
OknoLogowania(playerid);
SendClientMessage(playerid, COLOR_RED, "SERWER: Haslo sie nie zgadza!");
}
}
}
if(dialogid == DIALOG_REJESTRACJA)
{
if(response)
{
if(strlen(inputtext) >= 6)
{
StworzKonto(playerid, inputtext);
OknoLogowania(playerid);
SendClientMessage(playerid, COLOR_YELLOW, "Serwer: Konto zostalo pomyslnie zalozone ! \nMozesz sie teraz zalogowac");
}
else
{
OknoRejestracji(playerid);
SendClientMessage(playerid, COLOR_RED, "Serwer: Haslo ma posiadac 6 lub wiecej znakow!");
}
}
else Kick(playerid);
}
return 0;
}
public OnPlayerDisconnect(playerid, reason)
{
if(DaneGracza[playerid][Zalogowany] == true)
{
ZapiszKonto(playerid);
}
ResetujDaneGracza(playerid);
return 1;
}
public OnPlayerConnect(playerid)
{
ResetujDaneGracza(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(DaneGracza[playerid][Zalogowany] == false)
{
TogglePlayerSpectating(playerid, true);
if(!dfile_FileExists(SciezkaKontaGracza(playerid)))
{
OknoRejestracji(playerid);
}
else
{
OknoLogowania(playerid);
}
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(DaneGracza[playerid][Zalogowany] == false)
{
SetTimerEx("SpawnujGracza", 150, false, "i", playerid);
}
SetPlayerPos(playerid, 161.0563, -97.3913, 7.7494);
SetPlayerFacingAngle(playerid, 46.9616);
SetPlayerCameraPos(playerid, 158.6913,-94.7427,8.6371);
SetPlayerCameraLookAt(playerid, 161.0563, -97.3913, 7.7494);
return 1;
}
stock SciezkaKontaGracza(playerid)
{
new sciezka[128];
format(sciezka, sizeof sciezka, FOLDER_KONT"%s.ini", NazwaGracza(playerid));
return sciezka;
}
stock NazwaGracza(playerid)
{
new nazwa[MAX_PLAYER_NAME];
GetPlayerName(playerid, nazwa, sizeof nazwa);
return nazwa;
}
stock OknoRejestracji(playerid)
{
ShowPlayerDialog(playerid, DIALOG_REJESTRACJA, DIALOG_STYLE_PASSWORD, "Rejestracja", "Witaj na serwerze ! \nNie posiadasz konta, prosze sie zarejestrowac!", "Zarejestruj", "Wyjdz");
return 1;
}
stock OknoLogowania(playerid)
{
ShowPlayerDialog(playerid, DIALOG_LOGOWANIE, DIALOG_STYLE_PASSWORD, "Logowanie", "Witaj na serwerze ! \nPosiadasz juz konto, wiec sie zaloguj.", "Zaloguj", "Wyjdz");
return 1;
}
stock StworzKonto(playerid, haslo[])
{
dfile_Create(SciezkaKontaGracza(playerid));
dfile_Open(SciezkaKontaGracza(playerid));
dfile_WriteString("Haslo", haslo);
dfile_WriteInt("Punkty", PUNKTY_NA_START);
dfile_WriteInt("Kasa", KASA_NA_START);
dfile_WriteInt("Level", 1);
dfile_SaveFile();
dfile_CloseFile();
return 1;
}
stock WczytajKonto(playerid)
{
ResetPlayerMoney(playerid);
dfile_Open(SciezkaKontaGracza(playerid));
SetPlayerScore(playerid, dfile_ReadInt("Punkty"));
GivePlayerMoney(playerid, dfile_ReadInt("Kasa"));
dfile_CloseFile();
return 1;
}
stock WymusWyborPostaci(playerid)
{
ForceClassSelection(playerid);
TogglePlayerSpectating(playerid, true);
TogglePlayerSpectating(playerid, false);
return 1;
}
stock ZapiszKonto(playerid)
{
dfile_Create(SciezkaKontaGracza(playerid));
dfile_Open(SciezkaKontaGracza(playerid));
dfile_WriteInt("Punkty", GetPlayerScore(playerid));
dfile_WriteInt("Kasa", GetPlayerMoney(playerid));
//dfile_WriteInt("Level", 1);
dfile_SaveFile();
dfile_CloseFile();
return 1;
}
stock ResetujDaneGracza(playerid)
{
DaneGracza[playerid][Zalogowany] = false;
return 1;
}
forward SpawnujGracza(playerid);
public SpawnujGracza(playerid)
{
SpawnPlayer(playerid);
return 1;
}