[Pomoc] Mesanje ID-a


Započeo ShadowNET, Februar 28, 2016, 19:13:58 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:0
Detaljan opis problema:Znaci ovako kada naprimer postavim nekom admina preko komande ili gamemastera ili vipa ili promotera i taj neko izadje i opet se uloguje(sa drugim imenom) ili napravi novi acc sa novim imenom i kada se konektuje on ima iste varijable kao i onaj id koji je izasao pre toga.
Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Primer:
Marko je ID 1
Ja mu dam Admina Lvl 3
I on izadje
Zatim napravi novi acc sa drugim imenom (Petar)
I Uloguje se ID 1
On dobije  je admin lvl 3 kao i Marko

Sta se desava?

Postavi ovdje sistem sacuvanja njegovih varijabla, samim tim i ocitavanja.
Ovako ne mogu nikako da znam šta mu je, dok ne pogledam.


forward LoadUser_data(playerid,name[],value[]); //Writing Informations
public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password",PlayerInfo[playerid][pPass]);
    INI_Int("Login",PlayerInfo[playerid][pLogin]);
    INI_Int("Ban",PlayerInfo[playerid][pBan]);
    INI_Int("Godine",PlayerInfo[playerid][pGodine]);
    INI_String("Pol",PlayerInfo[playerid][pPol], 64);
    INI_String("Drzava",PlayerInfo[playerid][pDrzava], 64);
    INI_String("Email",PlayerInfo[playerid][pEmail], 64);
    INI_Int("Godine Check",PlayerInfo[playerid][pGodineC]);
    INI_Int("Pol Check",PlayerInfo[playerid][pPolC]);
    INI_Int("Drzava Check",PlayerInfo[playerid][pDrzavaC]);
    INI_Int("Email Check",PlayerInfo[playerid][pEmailC]);
    INI_Int("Skin",PlayerInfo[playerid][pSkin]);
    INI_Int("Cash",PlayerInfo[playerid][pCash]);
    INI_Int("Banka",PlayerInfo[playerid][pBanka]);
    INI_Int("GameMaster",PlayerInfo[playerid][pGM]);
    INI_Int("Mute",PlayerInfo[playerid][pMute]);
    INI_Int("Warn",PlayerInfo[playerid][pWarn]);
    INI_Int("Nivo",PlayerInfo[playerid][pNivo]);
    INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Int("Racun",PlayerInfo[playerid][pRacun]);
    INI_Int("Jail",PlayerInfo[playerid][pJail]);
	INI_Int("JailTime",PlayerInfo[playerid][pJailTime]);
    INI_Int("DAuto",PlayerInfo[playerid][pDAuto]);
    INI_Int("DMotor",PlayerInfo[playerid][pDMotor]);
    INI_Int("DKamion",PlayerInfo[playerid][pDKamion]);
    INI_Int("DLetelica",PlayerInfo[playerid][pDLetelica]);
    INI_Int("KosacTrave",PlayerInfo[playerid][pKosacTrave]);
    INI_Int("Zaposlen",PlayerInfo[playerid][pZaposlen]);
    INI_Int("VozacKamiona",PlayerInfo[playerid][pVozacKamiona]);
    INI_Int("VozacAutoBusa",PlayerInfo[playerid][pVozacAutoBusa]);
    INI_Int("Kills",PlayerInfo[playerid][pKills]);
    INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Int("Respekt",PlayerInfo[playerid][pRespekt]);
    INI_Int("Gradjevinar",PlayerInfo[playerid][pGradjevinar]);
    INI_Int("Mehanicar",PlayerInfo[playerid][pMehanicar]);
    INI_Int("Pilot",PlayerInfo[playerid][pPilot]);
    INI_Int("Ribar",PlayerInfo[playerid][pRibar]);
    INI_Int("Bolnicar",PlayerInfo[playerid][pBolnicar]);
    INI_Int("PromenaImena",PlayerInfo[playerid][pPromenaImena]);
    INI_Int("Taksista",PlayerInfo[playerid][pTaksista]);
    INI_Int("Vip",PlayerInfo[playerid][pVip]);
    INI_Int("Promoter",PlayerInfo[playerid][pPromoter]);
    INI_Int("Imenik",PlayerInfo[playerid][pImenik]);
    INI_Int("Kredit",PlayerInfo[playerid][pKredit]);
    INI_Int("Telefon",PlayerInfo[playerid][pTelefon]);
    INI_Int("BrojTelefona",PlayerInfo[playerid][pBrojTelefona]);
    INI_Int("Minute",PlayerInfo[playerid][pMinute]);
    INI_Int("SatiIgre",PlayerInfo[playerid][pSatiIgre]);
    INI_Int("Level",PlayerInfo[playerid][pLevel]);
    INI_Int("Farmer",PlayerInfo[playerid][pFarmer]);
    INI_Int("Zlato",PlayerInfo[playerid][pZlato]);
    INI_Int("Lider",PlayerInfo[playerid][pLider]);
    INI_Int("LSPDMember",PlayerInfo[playerid][pLSPDMember]);
    INI_Int("Rank",PlayerInfo[playerid][pRank]);
    INI_Int("InOrg",PlayerInfo[playerid][pInOrg]);
    INI_Int("WantedLevel",PlayerInfo[playerid][pWantedLevel]);
    INI_Int("Sat",PlayerInfo[playerid][pSat]);
    return 1;
}

i spremanje
stock SpremiAcc(playerid)
{
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    INI_WriteInt(File,"Banka",PlayerInfo[playerid][pBanka]);
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Nivo",PlayerInfo[playerid][pNivo]);
    INI_WriteInt(File,"GameMaster",PlayerInfo[playerid][pGM]);
    INI_WriteInt(File,"Login",PlayerInfo[playerid][pLogin]);
    INI_WriteInt(File,"Skin",GetPlayerSkin(playerid));
    INI_WriteInt(File,"Ban",PlayerInfo[playerid][pBan]);
    INI_WriteInt(File,"Warn",PlayerInfo[playerid][pWarn]);
    INI_WriteInt(File,"Mute",PlayerInfo[playerid][pMute]);
    INI_WriteInt(File,"Godine",PlayerInfo[playerid][pGodine]);
    INI_WriteInt(File,"Drzava",PlayerInfo[playerid][pDrzava]);
    INI_WriteInt(File,"Pol",PlayerInfo[playerid][pPol]);
    INI_WriteInt(File,"Email",PlayerInfo[playerid][pEmail]);
    INI_WriteInt(File,"Racun",PlayerInfo[playerid][pRacun]);
    INI_WriteInt(File,"Jail",PlayerInfo[playerid][pJail]);
    INI_WriteInt(File,"JailTime",PlayerInfo[playerid][pJailTime]);
    INI_WriteInt(File,"DAuto",PlayerInfo[playerid][pDAuto]);
    INI_WriteInt(File,"DMotor",PlayerInfo[playerid][pDMotor]);
    INI_WriteInt(File,"DKamion",PlayerInfo[playerid][pDKamion]);
    INI_WriteInt(File,"DLetelica",PlayerInfo[playerid][pDLetelica]);
    INI_WriteInt(File,"KosacTrave",PlayerInfo[playerid][pKosacTrave]);
    INI_WriteInt(File,"Zaposlen",PlayerInfo[playerid][pZaposlen]);
    INI_WriteInt(File,"VozacKamiona",PlayerInfo[playerid][pVozacKamiona]);
    INI_WriteInt(File,"VozacAutoBusa",PlayerInfo[playerid][pVozacAutoBusa]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_WriteInt(File,"Respekt",PlayerInfo[playerid][pRespekt]);
    INI_WriteInt(File,"Gradjevinar",PlayerInfo[playerid][pGradjevinar]);
    INI_WriteInt(File,"Mehanicar",PlayerInfo[playerid][pMehanicar]);
    INI_WriteInt(File,"Pilot",PlayerInfo[playerid][pPilot]);
    INI_WriteInt(File,"Ribar",PlayerInfo[playerid][pRibar]);
    INI_WriteInt(File,"Bolnicar",PlayerInfo[playerid][pBolnicar]);
    INI_WriteInt(File,"PromenaImena",PlayerInfo[playerid][pPromenaImena]);
    INI_WriteInt(File,"Taksista",PlayerInfo[playerid][pTaksista]);
    INI_WriteInt(File,"Vip",PlayerInfo[playerid][pVip]);
    INI_WriteInt(File,"Promoter",PlayerInfo[playerid][pPromoter]);
    INI_WriteInt(File,"Imenik",PlayerInfo[playerid][pImenik]);
    INI_WriteInt(File,"Kredit",PlayerInfo[playerid][pKredit]);
    INI_WriteInt(File,"Telefon",PlayerInfo[playerid][pTelefon]);
    INI_WriteInt(File,"BrojTelefona",PlayerInfo[playerid][pBrojTelefona]);
    INI_WriteInt(File,"Minute",PlayerInfo[playerid][pMinute]);
    INI_WriteInt(File,"SatiIgre",PlayerInfo[playerid][pSatiIgre]);
    INI_WriteInt(File,"Level",PlayerInfo[playerid][pLevel]);
    INI_WriteInt(File,"Farmer",PlayerInfo[playerid][pFarmer]);
    INI_WriteInt(File,"Zlato",PlayerInfo[playerid][pZlato]);
    INI_WriteInt(File,"Lider",PlayerInfo[playerid][pLider]);
    INI_WriteInt(File,"LSPDMember",PlayerInfo[playerid][pLSPDMember]);
    INI_WriteInt(File,"Rank",PlayerInfo[playerid][pRank]);
    INI_WriteInt(File,"InOrg",PlayerInfo[playerid][pInOrg]);
    INI_WriteInt(File,"WantedLevel",PlayerInfo[playerid][pWantedLevel]);
    INI_WriteInt(File,"Sat",PlayerInfo[playerid][pSat]);
    INI_Close(File);
	return 1;
}
Poslednja Izmena: Februar 28, 2016, 19:30:16 POSLE PODNE od ShadowNET

Da li si stavio da se te iste varijable na OnPlayerConnect stavljaju na default?
You have enemies? Good. That means you've stood up for something, sometime in your life.

OnPlayerConnect
if(fexist(UserPath(playerid)))
	{
		INI_ParseFile(UserPath(playerid),"LoadUser_%s",.bExtra = true,.extra = playerid);
		OcistiCet(playerid, 25);
		TogglePlayerControllable(playerid, 0);
		TogglePlayerSpectating(playerid, 1);
		TogglePlayerSpectating(playerid, 0);
		TextDrawShowForPlayer(playerid, TDLog0);
	    TextDrawShowForPlayer(playerid, TDLog1);
	    TextDrawShowForPlayer(playerid, TDLog2);
	    TextDrawShowForPlayer(playerid, TDLog3);
	    TextDrawShowForPlayer(playerid, TDLog4);
	    TextDrawShowForPlayer(playerid, TDLog5);
	    TextDrawShowForPlayer(playerid, TDLog6);
	    TextDrawShowForPlayer(playerid, TDLog7);
	    TextDrawShowForPlayer(playerid, TDLog8);
 		ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"{FFFFFF}Server-{FF0000}Login","\n","Login","Quit");
	}
	else
	{
	    TutTime[playerid] = 0;
 		TogglePlayerControllable(playerid,0);
		TogglePlayerSpectating(playerid, 1);
		TogglePlayerSpectating(playerid, 0);
	    SetPlayerCameraPos(playerid, 1677.0198, -1492.4376, 167.3723);
		SetPlayerCameraLookAt(playerid, 1676.3434, -1493.1816, 166.9373);
		
		TextDrawShowForPlayer(playerid, Nebitan0);
		TextDrawShowForPlayer(playerid, Nebitan1);
		TextDrawShowForPlayer(playerid, Nebitan2);
		TextDrawShowForPlayer(playerid, Nebitan3);
		TextDrawShowForPlayer(playerid, Nebitan4);
		TextDrawShowForPlayer(playerid, Nebitan5);
		TextDrawShowForPlayer(playerid, Nebitan6);
		TextDrawShowForPlayer(playerid, Nebitan7);
		TextDrawShowForPlayer(playerid, Godine);
		TextDrawShowForPlayer(playerid, Pol);
		TextDrawShowForPlayer(playerid, Email);
		TextDrawShowForPlayer(playerid, Drzava);
		TextDrawShowForPlayer(playerid, Leave);
		TextDrawShowForPlayer(playerid, Enter);
		SelectTextDraw(playerid, Nar);
	}


Jel imaš problema sa ostalim stvarima, npr nekom dadneš novac on napravi novi acc i ima taj novac?
Sa ocitavanjem ne vidim nigdje problem, možda ti komanda sa kojom daješ ne valja.

Ne znam, nisam siguran.
Evo komanda za postavljanje admina naprimer:
CMD:setadmin(playerid, params[])
{
 	if(IsPlayerAdmin(playerid))
	{
		new str[128], ime[MAX_PLAYER_NAME], ime2[MAX_PLAYER_NAME], id, admin;
		if(sscanf(params, "ud", id, admin)) return SCM(playerid, Nar, "Koristite: {FFFFFF}/setadmin [Igracev ID] [Admin nivo]");
		if(!IsPlayerConnected(id)) return SCM(playerid, Crvena, "Pogresan ID!");
		if(admin < 0 || admin > 7) return SCM(playerid, Crvena, "[ADM GRESKA] {FFFFFF}Admin nivo ne smije bit manji od 0, veci od 6!");
		GPN(playerid, ime, sizeof(ime));
		GPN(id, ime2, sizeof(ime2));
		PlayerInfo[id][pAdmin] = admin;
		format(str, 128, "* Postavljeni ste za Administratora nivo {FFFFFF}%d | {33CCFF}Vlasnik: {FFFFFF}%s", admin, ime);
		SCM(id, Plava, str);
		format(str, 128, "* Postavili ste {FFFFFF}%s {33CCFF}za Administratora nivo {FFFFFF}%d.", ime2, admin);
		SCM(playerid, Plava, str);
		format(str, 128, "* Vlasnik %s je postavio %s za Administratora nivo %d!", ime, ime2, admin);
		PorukaHeadu(Crvena, str);
		AdminGMLabel(playerid);
		SpremiAcc(id);
	}
  	else
  	{
         SCM(playerid, Crvena, "[GRESKA] {FFFFFF}Nemate prisup ovoj Komandi!");
	}
	return 1;
}

Citat: ShadowNET poslato Februar 28, 2016, 21:14:55 POSLE PODNE
Zna li neko?
Nije ti problem u save/load, problem je u tome što na connectu moraš sve varijable da postaviš na 0 ( defaultne ), pogledaj šta ti je Letić rekao..

Ne razumem.Zasto bih enum varijable postavlajo na 0.
Znaci ako mu dam admina lvl 5 sledeci put kada se uloguje nema ga...
Ako mislis na varijable primera
Varijabla[MAX_PLAYERS];

onda da njih sve imam postavljene na 0.sa nima nije problem.

I enum varijable stavi na default.
You have enemies? Good. That means you've stood up for something, sometime in your life.

Citat: ShadowNET poslato Februar 28, 2016, 21:44:34 POSLE PODNE
Ne razumem.Zasto bih enum varijable postavlajo na 0.
Znaci ako mu dam admina lvl 5 sledeci put kada se uloguje nema ga...
Ako mislis na varijable primera
Varijabla[MAX_PLAYERS];

onda da njih sve imam postavljene na 0.sa nima nije problem.

Ne razumeš zašto bi ENUM varijable postavljao na default pri konektu ?

PI[playerid][pAdmin] = 0;

Primjer /setadmin playerid lvl
stavlja varijablu Admin - igracu: playerid - level: lvl
i to ostaje i kada je playerid diskonektovan i ponovo pri konektu playerid-a on ce imati tu varijablu
zato je potrebno OPC staviti sve varijable na default :D

Hvala svima.Problem je bio sto jednostavno nisam razmislio da cak iako mu stavim sve varijable na 0 posle mu se one vracaju pri loginu.
A i nisam znao da ID pamti varijable jednostavno sam mislio da to ide preko Imena.
Hvala jos jednom. :)