[POMOC] >changepw< -.-


Započeo Ermin., Februar 24, 2013, 13:59:58 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: 0
Detaljan opis problema: pa ne znam napravit da mi sacuva password kad igrac odgovori na dijalog, pravio sam nesto i errore mi baca kao array size does not match itd.
Dio skripte:
Dijalog|
YCMD:changepass(playerid, params[], help)
{
   #pragma unused help
   new naslov[32];
   if(!IsPlayerConnected(playerid))
       return SCM(playerid, COLOR_GRAD3, "Moras biti ulogovan da bi mogao promijeniti password!");
   format(naslov,sizeof(naslov), "%s", PlayerName(playerid));
   ShowPlayerDialog(playerid, DIALOG_CHANGEPW, DIALOG_STYLE_INPUT, naslov, ""COL_YELLOW"Upisi novu lozinku:", "OK", "Odustani");
   return 1;
}


Odgovor na dijalog|
case DIALOG_CHANGEPW:
        {
            if(response)
            {
            new
                text[128];
            if(strlen(inputtext) >= 6 && strlen(inputtext) <= 35)
            {
               // INI_WriteString(playerFile, "Lozinka", inputtext);
                PlayerInfo[playerid][pPassword] = inputtext; // ovde error
                format(text, sizeof(text), "Uspjesno | Vasa nova lozinka je: %s", inputtext);
                SCM(playerid, COLOR_YELLOW, text);
            }
            else
            {
                SCM(playerid, COLOR_ZELENA, "Lozinka mora da bude izmedju [{ffffff}6"COL_ZELENA"] i [{ffffff}35"COL_ZELENA"] znakova!");
            }
         }
      }

Neke slike/video za lakse dobivanje pomoci(neobavezno):
Poslednja Izmena: Februar 24, 2013, 14:01:38 POSLE PODNE od #define Botina Ermin_Smith

Blaeks

*

Madmen

mozse probati ovako, ne garantujem da ce raditi
YCMD:changepass(playerid,params[], help)
{
	#pragma unused help
	new test[129],novasifra[50];
	if(sscanf(params,"s[50]",novasifra)) return SCM(playerid,-1,"Koristi: /changepass sifra");
	WP_Hash(test,sizeof(test),novasifra);
	new INI:File = INI_Open(Korisnici(playerid));
        INI_WriteString(File,"Password",hash);
        INI_Close(File);
	return 1;
}

Citat: Blaeks poslato Februar 24, 2013, 14:04:44 POSLE PODNE
mozse probati ovako, ne garantujem da ce raditi
YCMD:changepass(playerid,params[], help)
{
	#pragma unused help
	new test[129],novasifra[50];
	if(sscanf(params,"s[50]",novasifra)) return SCM(playerid,-1,"Koristi: /changepass sifra");
	WP_Hash(test,sizeof(test),novasifra);
	new INI:File = INI_Open(Korisnici(playerid));
        INI_WriteString(File,"Password",hash);
        INI_Close(File);
	return 1;
}



Hvala ali i ne moram probat,znam da nece radit, pass mi se cuva kao varijabla, nema hash,
a kao drugo treba mi u dijalogu, jbg :D

Ako nece probaj ovako ?
Isto ne garantiram da radi :D


case DIALOG_CHANGEPW:
        {
            if(response)
            {
            new
                text[128];
            if(strlen(inputtext) >= 6 && strlen(inputtext) <= 35)
            {
               new string[100],string1[128];
	       new INI:File = INI_Open(UserPath(playerid));
	       INI_SetTag(File,"data");
	       INI_WriteString(File, "Lozinka", inputtext);
		format(string, sizeof(string), "%s", inputtext);
		PlayerInfo[playerid][pPassword] = string;
		INI_Close(File);
                format(text, sizeof(text), "Uspjesno | Vasa nova lozinka je: %s", inputtext);
                SCM(playerid, COLOR_YELLOW, text);
            }
            else
            {
                SCM(playerid, COLOR_ZELENA, "Lozinka mora da bude izmedju [{ffffff}6"COL_ZELENA"] i [{ffffff}35"COL_ZELENA"] znakova!");
            }
         }
      }
Poslednja Izmena: Februar 24, 2013, 14:14:17 POSLE PODNE od FlasH
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Blaeks

*

Madmen

deletujes hash onda, ali svakako ti je laksi moj princip nego tvoj, ali kak hoces

ma nema sanse, probo sam na 100 nacina nece,   >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( >:(  :'( :'( :'( :'( :'( :'( :'( :'( :'( :'(

Ovako sam stavio


case DIALOG_CHANGEPW:
        {
            if(response)
            {
				new
				    text[128];
				if(strlen(inputtext) >= 6 && strlen(inputtext) <= 35)
				{
					new string[35];
		   			new INI:File = INI_Open(Korisnici(playerid));
				   	INI_WriteString(File,"Lozinka",inputtext);
				    format(string, sizeof(string), "%s", inputtext);
					PlayerInfo[playerid][pPassword] = string;
				    format(text, sizeof(text), "Uspjesno | Vasa nova lozinka je: %s", inputtext);
				    SCM(playerid, COLOR_YELLOW, text);
				}
				else
				{
				    SCM(playerid, COLOR_ZELENA, "Lozinka mora da bude izmedju [{ffffff}6"COL_ZELENA"] i [{ffffff}35"COL_ZELENA"] znakova!");
				}
			}
		}


i kako god da probam nece, errori :S
Poslednja Izmena: Februar 24, 2013, 14:29:15 POSLE PODNE od #define Botina Ermin_Smith

#define DIALOG_PASSWORD 1

YCMD:lozinka(playerid, params[], help)
{
    ShowPlayerDialog(playerid,DIALOG_PASSWORD,DIALOG_STYLE_INPUT," Lozinka ","Unesite novu lozinku","Uredu","Izlaz");
	return 1;
}

if(dialogid == DIALOG_PASSWORD)
{
   	if(!response) return 1;
   	if(response)
	{
		new string[100],string1[128];
		new INI:File = INI_Open(UserPath(playerid));
		INI_SetTag(File,"data");
		INI_WriteString(File, "Password", inputtext);
		format(string, sizeof(string), "%s", inputtext);
		PlayerInfo[playerid][pPass] = string;
		INI_Close(File);
		format(string1,sizeof(string1),"Vasa nova lozinka glasi: %s",inputtext);
		SendClientMessage(playerid,COLOR_WHITE,string1);
	}
}


Ja sam kod sebe testao meni ovako radi ?
Zamjeni si "pPass" !
Poslednja Izmena: Februar 24, 2013, 16:26:10 POSLE PODNE od FlasH
BIG RESPEKT: Blaeks,  [CRP] Joey_, David (Sabljak) A.k.A SABO(T), joXy_, Dimi, Sexserghy ♥, TerminuS, H1TM4N

Citat: FlasH poslato Februar 24, 2013, 14:40:19 POSLE PODNE
#define DIALOG_PASSWORD 1

YCMD:lozinka(playerid, params[], help)
{
    ShowPlayerDialog(playerid,DIALOG_PASSWORD,DIALOG_STYLE_INPUT," Lozink ","Unesite novu lozinku","Uredu","Izlaz");
	return 1;
}

if(dialogid == DIALOG_PASSWORD)
{
   	if(!response) return 1;
   	if(response)
	{
		new string[100],string1[128];
		new INI:File = INI_Open(UserPath(playerid));
		INI_SetTag(File,"data");
		INI_WriteString(File, "Password", inputtext);
		format(string, sizeof(string), "%s", inputtext);
		PlayerInfo[playerid][pPass] = string;
		INI_Close(File);
		format(string1,sizeof(string1),"Vasa nova lozinka glasi: %s",inputtext);
		SendClientMessage(playerid,COLOR_WHITE,string1);
	}
}


Ja sam kod sebe testao meni ovako radi ?
Zamjeni si "pPass" !


probat cu hvala

znaci necu u dijalogu lakse je /changepass [password]


Probao sam i tvoje, Blaeks, al opet mi neke jebene errore izbaciva nez ni ja sta
evo ti sve sto je potrebno za to::


#define USER_FILE       "Igraci/%s.ini"
// varijabla je pPassword[129]
YCMD:changepass(playerid,params[], help)
{
	#pragma unused help
	new novasifra[50];
	if(sscanf(params,"s[50]",novasifra)) return SCM(playerid,-1,"Koristi: /changepass sifra");
	new INI:File = INI_Open(USER_FILE(playerid));
        INI_WriteString(File,"Password",novasifra);
        INI_Close(File);
	return 1;
}

public LoadUserData(playerid, name[], value[])
{
    INI_String("Lozinka", PlayerInfo[playerid][pPassword], 129);
//--------------------------

//OnPlayerRegister: 
INI_WriteString(playerFile, "Lozinka", lozinka);
//---------------------

//OnPlayerdisconnect:
SacuvajIgraca(playerid)
{
    new uFile[35];

    format(uFile, 35, USER_FILE, PlayerName(playerid));

    new INI:playerFile = INI_Open(uFile);
    INI_WriteString(playerFile, "Lozinka", PlayerInfo[playerid][pPassword]);
//------------------------------------


ne znam u cemu je problem :O
Poslednja Izmena: Februar 24, 2013, 16:51:04 POSLE PODNE od #define Botina Ermin_Smith

Blaeks

*

Madmen


brate sjebe mi se kad skinem hash,
evo ti sve potrebno pa ako mozes napravit ako ne nema veze :)


znaci necu u dijalogu lakse je /changepass [password]


#define USER_FILE       "Igraci/%s.ini"
// varijabla je pPassword[129]
YCMD:changepass(playerid,params[], help)
{
	#pragma unused help
	new novasifra[50];
	if(sscanf(params,"s[50]",novasifra)) return SCM(playerid,-1,"Koristi: /changepass sifra");
	new INI:File = INI_Open(USER_FILE(playerid));
        INI_WriteString(File,"Password",novasifra);
        INI_Close(File);
	return 1;
}

public LoadUserData(playerid, name[], value[])
{
    INI_String("Lozinka", PlayerInfo[playerid][pPassword], 129);
//--------------------------

//OnPlayerRegister: 
INI_WriteString(playerFile, "Lozinka", lozinka);
//---------------------

//OnPlayerdisconnect:
SacuvajIgraca(playerid)
{
    new uFile[35];

    format(uFile, 35, USER_FILE, PlayerName(playerid));

    new INI:playerFile = INI_Open(uFile);
    INI_WriteString(playerFile, "Lozinka", PlayerInfo[playerid][pPassword]);
//------------------------------------



pPassword mi se cuva kao "Lozinka" a ne "Password" mzoda je tu sta? :S
Poslednja Izmena: Februar 24, 2013, 17:01:36 POSLE PODNE od #define Botina Ermin_Smith

pax95

Ovo sto ti govorim za ono tvoje prvo je:
PlayerInfo[playerid][pPassword] = inputtext; // ovde error
Ne mozes tako stavljati na string
Valjda ti je string pPassword.
treba ovako:
format(PlayerInfo[playerid][pPassword],128,"%s",inputtext);

I mozes napraviti funkciju da updateas pass ili tu samo dodaj da upises pass u fajl cisto da ga sacuva odmah tu...