Problem(error/warning): Imam problem sa yini, ali evo sad nz mozda je do ovoga. Kada se registrujem, u folderu gde su akaunti mi iskoci .ini, (slika dole) pa samo da pitam ako neko zna do cega je to.
https://imgur.com/JqSCSJH
Deo skripte: [pawn][/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
To tako treba mada ja sam u potpunosti i zaboravio ini ali mislim da tako i treba nemoj me drzati za rec
Ne bih bas rekao da treba jer trenutno imam problem da nista iz yinija resetuje na 0 kad se igrac loginuje i to iz cista mira, pre nisam imao taj problem niti se pojavljivao fajl .ini i sve je radilo kako treba. Nmp kako da fixam sad ovo...
Citat: Neckiy poslato Maj 18, 2021, 17:40:39 POSLE PODNE
Ne bih bas rekao da treba jer trenutno imam problem da nista iz yinija resetuje na 0 kad se igrac loginuje i to iz cista mira, pre nisam imao taj problem niti se pojavljivao fajl .ini i sve je radilo kako treba. Nmp kako da fixam sad ovo...
Jel imas [pawn]SavePlayer(playerid)[/pawn] u [pawn]OnPlayerDisconnect[/pawn]
a za account bilo gde ima .ini kad se prvi account registruje
Nemam u onplayerdc ali i kad sam imao tu isto je bilo. Pronlem je sto meni kad ugasim pa upalim server sav igracev PlayerInfo se resetuje na 0 osim lozinke koja je hashovana. Resetuje se i meni i drugarima... Nmg 4 dana da fixam
Citat: Neckiy poslato Maj 19, 2021, 08:30:53 PRE PODNE
Nemam u onplayerdc ali i kad sam imao tu isto je bilo. Pronlem je sto meni kad ugasim pa upalim server sav igracev PlayerInfo se resetuje na 0 osim lozinke koja je hashovana. Resetuje se i meni i drugarima... Nmg 4 dana da fixam
Posali opciju za SavePlayer de ti je definisano da cuva
Hocu, kad dodjem kuci. Ali u fazonu je da otvori UserPath i da upise podatke i zatvori
Vjerovatno pozoves SavePlayer na invalid playera
Ma najmanji mi je problem to sto stvara ".ini", ali nervira me to sto mi yini uopste ne radi kad resetujem server.
Samo ostavi full code, od registracije do logina i tjt
U [pawn]OnPlayerClickPlayerTextDraw[/pawn] odradi da ti sacuvava na pocetku a u [pawn]SavePlayer[/pawn] odradi da ti cuva trenutne podatke pr[pawn]INI_WriteInt(File, "Admin",PlayerInfo[playerid][pAdmin]);[/pawn] verovatno si izmesao to
Ima sve da ostavim ovde.
Ovo je za YINI cuvanje i te gluposti:
[pawn]forward SacuvajAkaunt(playerid);
public SacuvajAkaunt(playerid)
{
new INI:File = INI_Open(UserPath(playerid));
INI_WriteInt(File, "Bolestan", PlayerInfo[playerid][pBolestan]);
INI_WriteInt(File, "Enterijer", PlayerInfo[playerid][pEnterijer]);
INI_WriteInt(File, "Zamrznut", PlayerInfo[playerid][pZamrznut]);
INI_WriteInt(File, "Lek", PlayerInfo[playerid][pLek]);
INI_WriteInt(File, "MinutniRespekt", PlayerInfo[playerid][pMinutniRespekt]);
INI_WriteInt(File, "Respekt", PlayerInfo[playerid][pRespekt]);
INI_WriteInt(File, "Level", PlayerInfo[playerid][pLevel]);
INI_WriteInt(File, "Skin", PlayerInfo[playerid][pSkin]);
INI_WriteInt(File, "Drzavljanstvo", PlayerInfo[playerid][pDrzavljanstvo]);
INI_WriteInt(File, "Godine", PlayerInfo[playerid][pGodine]);
INI_WriteInt(File, "Pol", PlayerInfo[playerid][pPol]);
INI_WriteInt(File, "Racun", PlayerInfo[playerid][pRacun]);
INI_WriteInt(File, "Zlato", PlayerInfo[playerid][pZlato]);
INI_WriteInt(File, "Euro", PlayerInfo[playerid][pEuro]);
INI_WriteInt(File, "PareBanka", PlayerInfo[playerid][pPareBanka]);
INI_WriteInt(File, "Pare", PlayerInfo[playerid][pPare]);
INI_WriteInt(File, "Droga", PlayerInfo[playerid][pDroga]);
INI_WriteInt(File, "Mats", PlayerInfo[playerid][pMats]);
INI_WriteInt(File, "OrgSkin", PlayerInfo[playerid][pOrgSkin]);
INI_WriteInt(File, "Rank", PlayerInfo[playerid][pRank]);
INI_WriteInt(File, "Clan", PlayerInfo[playerid][pClan]);
INI_WriteInt(File, "Lider", PlayerInfo[playerid][pLider]);
INI_WriteInt(File, "VipIstekao", PlayerInfo[playerid][pVipIstekao]);
INI_WriteInt(File, "Promoter", PlayerInfo[playerid][pPromoter]);
INI_WriteInt(File, "Vip", PlayerInfo[playerid][pVip]);
INI_WriteInt(File, "Helper", PlayerInfo[playerid][pHelper]);
INI_WriteInt(File, "Admin", PlayerInfo[playerid][pAdmin]);
INI_Close(File);
return true;
}
#define PATH "/GangstaShit/Korisnici/%s.ini"
forward LoadUser_data(playerid, name[],value[]);
public LoadUser_data(playerid, name[],value[])
{
INI_Int("Lozinka", PlayerInfo[playerid][pLozinka]);
INI_Int("Bolestan", PlayerInfo[playerid][pBolestan]);
INI_Int("Enterijer", PlayerInfo[playerid][pEnterijer]);
INI_Int("Lek", PlayerInfo[playerid][pLek]);
INI_Int("MinutniRespekt", PlayerInfo[playerid][pMinutniRespekt]);
INI_Int("Respekt", PlayerInfo[playerid][pRespekt]);
INI_Int("Level", PlayerInfo[playerid][pLevel]);
INI_Int("Skin", PlayerInfo[playerid][pSkin]);
INI_Int("Drzavljanstvo", PlayerInfo[playerid][pDrzavljanstvo]);
INI_Int("Godine", PlayerInfo[playerid][pGodine]);
INI_Int("Pol", PlayerInfo[playerid][pPol]);
INI_Int("Racun", PlayerInfo[playerid][pRacun]);
INI_Int("Zlato", PlayerInfo[playerid][pZlato]);
INI_Int("Euro", PlayerInfo[playerid][pEuro]);
INI_Int("PareBanka", PlayerInfo[playerid][pPareBanka]);
INI_Int("Pare", PlayerInfo[playerid][pPare]);
INI_Int("Droga", PlayerInfo[playerid][pDroga]);
INI_Int("OrgSkin", PlayerInfo[playerid][pOrgSkin]);
INI_Int("Rank", PlayerInfo[playerid][pRank]);
INI_Int("Clan", PlayerInfo[playerid][pClan]);
INI_Int("Lider", PlayerInfo[playerid][pLider]);
INI_Int("VipIstekao", PlayerInfo[playerid][pVipIstekao]);
INI_Int("Promoter", PlayerInfo[playerid][pPromoter]);
INI_Int("Vip", PlayerInfo[playerid][pVip]);
INI_Int("Helper", PlayerInfo[playerid][pHelper]);
INI_Int("Admin", PlayerInfo[playerid][pAdmin]);
return 1;
}
stock UserPath(playerid)
{
new str[128], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(str,sizeof(str), PATH, name);
return str;
}[/pawn]
Onda, ovo pokazuje TD-ove za login(za register jos nisam napravio):
[pawn] if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
for(new i = 0; i < 8; i++)
{
TextDrawShowForPlayer(playerid, Login_TD);
}
}
else if(!fexist(UserPath(playerid)))
{
ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server!","Registrujte se sa vasom lozinkom!","Registracija","Izadji");
}
SelectTextDraw(playerid, BELA);[/pawn]
I eve ti na ceo dialogresponse za log i reg pa valjda ce se naci nesto
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == d_reg)
{
if(!response) return Kick(playerid);
if(response)
{
CancelSelectTextDraw(playerid);
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, d_reg, DIALOG_STYLE_PASSWORD, "Registracija na server!","Registrujte se sa vasom lozinkom!","Registracija","Izadji");
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File,"Lozinka",udb_hash(inputtext));
INI_Close(File);
SCM(playerid, -1, "{FF0000}[GS:RP] {FFFFFF}Uspesno ste se registrovali na server!");
//=============================================== [ SPAWN ] =============================================================================
PlayerInfo[playerid][pSkin] = 26;
SetSpawnInfo(playerid, 0,PlayerInfo[playerid][pSkin], 1213.6964,-1326.7321,13.5676,88.5987, 0, 0,0,0,0,0);
SpawnPlayer(playerid);
//=============================================================================================================================================
//====================================== [ TD-OVI ] ==============================================================================
KreirajServerTD();
for(new i = 0; i < 28; i++)
{
TextDrawShowForPlayer(playerid, SERVER_TD);
}
//================================================================================================================================
//================================== [ NOVI IGRAC ] =============================================================================
new ime[MAX_PLAYER_NAME],msg1[256];
GetPlayerName(playerid, ime, sizeof(ime));
format(msg1,sizeof(msg1),"{1E5F0E}[NOVI IGRAC] {FFFB00}Novi igrac {FF0000}%s{FFFB00}({FF0000}ID:%d{FFFB00}) se registrovao na server!",ime,playerid);
NapisiHelperima(-1,msg1);
//=======================================================================================================================
//=========================================== [ LOAD BANKA, ZLATO, EURI, IME TD-OVI ] ============================================================
//----------------------------- BANKA ---------------------------------------------
new msgg[256];
format(msgg,sizeof(msgg),"%d",PlayerInfo[playerid][pPareBanka]);
PlayerTextDrawSetString(playerid, SERVER_PTD[playerid][1], msgg);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][1]);
//------------------------------ EURO --------------------------------------------
new msgg1[256];
format(msgg1,sizeof(msgg1),"%d",PlayerInfo[playerid][pEuro]);
PlayerTextDrawSetString(playerid, SERVER_PTD[playerid][3], msgg1);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][3]);
//--------------------------- ZLATO -------------------------------------------------
new msgg2[256];
format(msgg2,sizeof(msgg2),"%dG",PlayerInfo[playerid][pZlato]);
PlayerTextDrawSetString(playerid, SERVER_PTD[playerid][2], msgg2);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][2]);
//---------------------------- IME -----------------------------------------------------
new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name,sizeof(name));
format(name,sizeof(name),"%s",name);
PlayerTextDrawSetString(playerid,SERVER_PTD[playerid][0], name);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][0]);
//=========================================================================================================================================
//=============================================== [ TD VREME ] =============================================================================
new string[256] ,hour, minut;
gettime(hour, minut);
format(string, sizeof string, "%02d:%02d", hour, minut);
TextDrawSetString(SERVER_TD[26], string);
new godina, mesec, dan;
getdate(godina, mesec, dan);
format(string, sizeof string, "%02d/%02d/%02d", dan, mesec, godina);
TextDrawSetString(SERVER_TD[27], string);
SetTimer("VremeUpdate", 30000, true);
//==========================================================================================================================================
//============================================== [ SETOVANJE STVARI ZA IGRACA ] ====================================================================
PlayerInfo[playerid][pRacun] = 0;
PlayerInfo[playerid][pEnterijer] = 0;
PlayerInfo[playerid][pBolestan] = 0;
PlayerInfo[playerid][pLek] = 0;
GivePlayerMoney(playerid, 25000);
PlayerInfo[playerid][pPare] = 25000;
UlogovaniIgrac[playerid] = 1;
PlayerInfo[playerid][pLevel] = 1;
SetPlayerScore(playerid, 1);
TogglePlayerControllable(playerid, 1);
//============================================================================================================================================================================
SacuvajAkaunt(playerid);
}
}
if(dialogid == d_log)
{
if(!response) return Kick(playerid);
if(response)
{
if(udb_hash(inputtext) == PlayerInfo[playerid][pLozinka])
{
CancelSelectTextDraw(playerid);
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
new name[MAX_PLAYER_NAME],msg[256];
GetPlayerName(playerid, name, sizeof(name));
format(msg,sizeof(msg),"{FFFFFF}Dobrodosao {FF0000}%s{FFFFFF}, za bilo kakvu pomoc ukucaj {FF0000}/askq{FFFFFF}.",name);
SCM(playerid,-1,msg);
//======================================================== [ TD-OVI ] ==============================================================================
for(new i=0; i < 8; i++){
TextDrawHideForPlayer(playerid,Login_TD);
}
//---------------------------------------------------------------
KreirajServerTD();
for(new i = 0; i < 28; i++)
{
TextDrawShowForPlayer(playerid, SERVER_TD);
}
//=================================================================================================================================================
//======================================================= [ SPAWN ] =================================================================================
SetSpawnInfo(playerid, 0,PlayerInfo[playerid][pSkin], 1213.6964,-1326.7321,13.5676,88.5987, 0, 0,0,0,0,0);
SpawnPlayer(playerid);
//=============================================================================================================================================
//============================================== [ NAPISI ADMINIMA KAD SE NEKO KONEKTA ] ==================================================
new ime[MAX_PLAYER_NAME],msg1[256];
GetPlayerName(playerid, ime, sizeof(ime));
format(msg1,sizeof(msg1),"{1E5F0E}++{F0BC67} | %s | ID: %d",ime,playerid);
NapisiAdminima(-1,msg1);
//===========================================================================================================================================
//=========================================== [ LOAD BANKA, ZLATO, EURI, IME TD-OVI ] ============================================================
//----------------------------- BANKA --------------
new msgg[256];
format(msgg,sizeof(msgg),"%d",PlayerInfo[playerid][pPareBanka]);
PlayerTextDrawSetString(playerid, SERVER_PTD[playerid][1], msgg);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][1]);
//---------------------------- EURO ----------------------------
new msgg1[256];
format(msgg1,sizeof(msgg1),"%d",PlayerInfo[playerid][pEuro]);
PlayerTextDrawSetString(playerid, SERVER_PTD[playerid][3], msgg1);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][3]);
//---------------------------- ZLATO -------------------------------------
new msgg2[256];
format(msgg2,sizeof(msgg2),"%dG",PlayerInfo[playerid][pZlato]);
PlayerTextDrawSetString(playerid, SERVER_PTD[playerid][2], msgg2);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][2]);
//---------------------------- IME --------------------------------
GetPlayerName(playerid,name,sizeof(name));
format(name,sizeof(name),"%s",name);
PlayerTextDrawSetString(playerid,SERVER_PTD[playerid][0], name);
PlayerTextDrawShow(playerid, SERVER_PTD[playerid][0]);
//=========================================================================================================================================
//=============================================== [ TD VREME ] ===================================================================
new string[256] ,hour, minut;
gettime(hour, minut);
format(string, sizeof string, "%02d:%02d", hour, minut);
TextDrawSetString(SERVER_TD[26], string);
new godina, mesec, dan;
getdate(godina, mesec, dan);
format(string, sizeof string, "%02d/%02d/%02d", dan, mesec, godina);
TextDrawSetString(SERVER_TD[27], string);
SetTimer("VremeUpdate", 30000, true);
//=================================================================================================================================
//================================================ [ VIP TIME ] ==========================================================================
if(gettime() > PlayerInfo[playerid][pVipIstekao]){
PlayerInfo[playerid][pVip] = 0;
}
//=================================================================================================================================
//========================================= [ LTA FREEZE ] ========================================================================
if(PlayerInfo[playerid][pZamrznut] == 1){
TogglePlayerControllable(playerid, 0);
zamrznut[playerid] = 1;
SCM(playerid,-1,"{FF0000}[FREEZE] {FFFFFF}Uradio si relog, ali si i dalje freezovan!");
}
//===========================================================================================================================================
//=================================================== [ SETOVANJE STVARI ZA IGRACA ] ========================================================
PlayerInfo[playerid][pEnterijer] = 0;
UlogovaniIgrac[playerid] = 1;
GivePlayerMoney(playerid, PlayerInfo[playerid][pPare]);
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
TogglePlayerControllable(playerid, 1);
//===========================================================================================================================================
SacuvajAkaunt(playerid);
}
else{
SCM(playerid,-1,"{FF0000}[GRESKA] {FFFFFF}Pogresna lozinka!");
new str[105+1],name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name,sizeof(name));
format(str, sizeof(str), "%s{10A90B}Vas nalog je registrovan!\n{ffffff}Ime: {FF0000}%s\n\n{FFFFFF}*Imate 2 minuta da upisete lozinku*", str,name);
SPD(playerid, d_log, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", str, "Login", "Izadji");
}
}
}[/pawn]
EDIT: kazem, sve je radilo i odjednom je prestalo tkd nisam nista izmesao jer bi onda od pocetka bilo broken
[pawn]forward SacuvajAkaunt(playerid);
public SacuvajAkaunt(playerid)
{
if(UlogovanProvera[playerid] == 1)
{
new INI:File = INI_Open(UserPath(playerid));
INI_WriteInt(File, "Bolestan", PlayerInfo[playerid][pBolestan]);
INI_WriteInt(File, "Enterijer", PlayerInfo[playerid][pEnterijer]);
INI_WriteInt(File, "Zamrznut", PlayerInfo[playerid][pZamrznut]);
INI_WriteInt(File, "Lek", PlayerInfo[playerid][pLek]);
INI_WriteInt(File, "MinutniRespekt", PlayerInfo[playerid][pMinutniRespekt]);
INI_WriteInt(File, "Respekt", PlayerInfo[playerid][pRespekt]);
INI_WriteInt(File, "Level", PlayerInfo[playerid][pLevel]);
INI_WriteInt(File, "Skin", PlayerInfo[playerid][pSkin]);
INI_WriteInt(File, "Drzavljanstvo", PlayerInfo[playerid][pDrzavljanstvo]);
INI_WriteInt(File, "Godine", PlayerInfo[playerid][pGodine]);
INI_WriteInt(File, "Pol", PlayerInfo[playerid][pPol]);
INI_WriteInt(File, "Racun", PlayerInfo[playerid][pRacun]);
INI_WriteInt(File, "Zlato", PlayerInfo[playerid][pZlato]);
INI_WriteInt(File, "Euro", PlayerInfo[playerid][pEuro]);
INI_WriteInt(File, "PareBanka", PlayerInfo[playerid][pPareBanka]);
INI_WriteInt(File, "Pare", PlayerInfo[playerid][pPare]);
INI_WriteInt(File, "Droga", PlayerInfo[playerid][pDroga]);
INI_WriteInt(File, "Mats", PlayerInfo[playerid][pMats]);
INI_WriteInt(File, "OrgSkin", PlayerInfo[playerid][pOrgSkin]);
INI_WriteInt(File, "Rank", PlayerInfo[playerid][pRank]);
INI_WriteInt(File, "Clan", PlayerInfo[playerid][pClan]);
INI_WriteInt(File, "Lider", PlayerInfo[playerid][pLider]);
INI_WriteInt(File, "VipIstekao", PlayerInfo[playerid][pVipIstekao]);
INI_WriteInt(File, "Promoter", PlayerInfo[playerid][pPromoter]);
INI_WriteInt(File, "Vip", PlayerInfo[playerid][pVip]);
INI_WriteInt(File, "Helper", PlayerInfo[playerid][pHelper]);
INI_WriteInt(File, "Admin", PlayerInfo[playerid][pAdmin]);
INI_Close(File);
return 1;
}
}[/pawn]
Pokusaj ovo da ubacis dali je igrac ulogovan ako jeste onda da sacuva msm da je u tome problem
nop, i dalje isto
[pawn]new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File, "data");
INI_WriteInt(File,"Lozinka",udb_hash(inputtext));
INI_WriteInt(File, "Bolestan", 0);
INI_WriteInt(File, "Enterijer", 0);
INI_WriteInt(File, "Zamrznut", 0);
INI_WriteInt(File, "Lek", 0);
INI_WriteInt(File, "MinutniRespekt", 0);
INI_WriteInt(File, "Respekt", 0);
INI_WriteInt(File, "Level", 3);
INI_WriteInt(File, "Drzavljanstvo", 1);
INI_WriteInt(File, "Godine", PlayerInfo[playerid][pGodine]);
INI_WriteInt(File, "Pol", PlayerInfo[playerid][pPol]);
INI_WriteInt(File, "Racun", 0);
INI_WriteInt(File, "Zlato", 0);
INI_WriteInt(File, "Euro", 0);
INI_WriteInt(File, "PareBanka", 0);
INI_WriteInt(File, "Pare", 0);
INI_WriteInt(File, "Droga", 0);
INI_WriteInt(File, "Mats", 0);
INI_WriteInt(File, "OrgSkin", PlayerInfo[playerid][pOrgSkin]);
INI_WriteInt(File, "Rank", 0);
INI_WriteInt(File, "Clan", 0);
INI_WriteInt(File, "Lider", 0);
INI_WriteInt(File, "VipIstekao", 0);
INI_WriteInt(File, "Promoter", 0);
INI_WriteInt(File, "Vip", 0);
INI_WriteInt(File, "Helper", 0);
INI_Close(File);
PlayerInfo[playerid][pAdmin] = 0;
PlayerInfo[playerid][pSkin] = 294; //Ovde uneses svoj ID Skina koj zelis
g_NovacPlus(playerid, kolicina);[/pawn]
Ovo ubaci kad se igrac registruje
Totalno nepotrebno jer vec ubacujem sve sto mi treba u register i onda samo sacuvam acc, takodje, sve radi kad se registrujem i nikad mi pre to nije trebalo.
Citat: Neckiy poslato Maj 19, 2021, 15:13:25 POSLE PODNE
Totalno nepotrebno jer vec ubacujem sve sto mi treba u register i onda samo sacuvam acc, takodje, sve radi kad se registrujem i nikad mi pre to nije trebalo.
Posali deo de ti je pocetni stats mozda je tamo nesto sjebano
Poslan je vec u poruci gde sam poslao sve
Jel ti level isto setuje na 1 ili ti sacuva level?
Na registraciji se level setuje na 1 i odradi se funkcija SacuvajAkunt tkd tjt. I ne znam zasto samo sifra ostaje ista sve ostalo je resetovano. Kazem ti sve sto je sad tu je bilo i pre, bukv nista nisam promenio ali je prestalo da radi
Citat: Neckiy poslato Maj 19, 2021, 15:39:58 POSLE PODNE
Na registraciji se level setuje na 1 i odradi se funkcija SacuvajAkunt tkd tjt. I ne znam zasto samo sifra ostaje ista sve ostalo je resetovano. Kazem ti sve sto je sad tu je bilo i pre, bukv nista nisam promenio ali je prestalo da radi
Onda iz nekog razloga ti se seta pocetni stats cak i kad si registrovan alsad to nz stv
Fora je sto mi se ne seta pocetni stats nego sve ode na 0...
Da kazem samo, celu skriptu sam komentovao tj da ostane samo yini sacuvavanje i mape i ostavio sam samo pLevel i pSkin da vidim da li ce se sacuvati, i dalje se isto desava cak i ako je cela skripta komentovana