Jump to content
  • 0

pomoc Chyba v code.


Stellet

Dotaz

Ahoj, udělal jsem si příkaz na zjištění multi-acc jenže něják to nefunguje a vůbec nevím proč.

Registrace:
new ucet[128], str[100], File:hFile, ip[24];
GetPlayerIp(playerid, ip, 24);
format(ucet, sizeof(ucet), "\n%s",RJmeno(playerid));
format(str, sizeof(str), "MultiAccount/%s.txt", ip);
hFile = fopen(str, io_write);
fwrite(hFile, ucet);
fclose(hFile);

a příkaz:
CMD:macc(playerid, params[])
{
	new ip,ipadresa[100],str[120], str1[120];
	if(Player[playerid][Admin] < 3) return Error(playerid);
	else if(sscanf(params, "s", ip)) return Ussage(playerid, "/macc [ip]");

	format(str, sizeof(str), "IP Adresa: %s", ip);
	format(ipadresa, sizeof(ipadresa), "MultiAccount/%s.txt", ip);

	if(fexist(ipadresa))
	{
		new File:Sus = fopen(ipadresa, io_read);
		while(fread(Sus, str1))
		{
			ShowPlayerDialog(playerid, D_MACC, DIALOG_STYLE_MSGBOX, str, str1, "Zavřít", "");
		}
		fclose(Sus);
	}
	else
	{
	    SCM(playerid, -1, "Tato IP nemá žádný účty.");
	}
	return 1;
}

Jenže ono když dám příkaz a chybnou IP tak to napíše že nemá účty, což je správně ale když ta IP existuje tak to nic neudělá, neukáže dialog ani nic v chatu prostě vůbec nic to neudělá jen spadne server...

Edited by FeedBoss
Link to comment
Share on other sites

6 odpovědí na tuto otázku

Recommended Posts

  • 0

Ip adresu ukládáš jako string tudíž musíš mít new ip[16];

 

Začal bych tím že bych spravil tohle a zkontroloval si jestli se vytvořil soubor a jak se do něj ip adresa zapsala , když se zapíše dobře a nepůjde to ani potom tak se ozvi,nic zvláštního sem tam jinak nenašel :)

 

Edit: teď sem si všiml že v registraci to máš dobře, tak si to hoď ještě do toho příkazu..

Edited by RmT_Kjuba
Link to comment
Share on other sites

  • 0
  • Globální moderátor

Zkus ten dialog zobrazit až po freadu, mám pocit, že tam načetlo něco co se mu nelíbí (nový řádek? EOF? nevím).

 

new strDialog[300];

while(fread(Sus,str1))

       strcat(strDialog,str1);

 

ShowPlayerDialog(playerid, D_MACC, DIALOG_STYLE_MSGBOX, str, strDialog, "Zavřít", "");

Link to comment
Share on other sites

  • 0

No, to už funguje jenže je tu ještě problém.. vždy to zapíše tu postavu a při registraci další postavu tu starou přepíše, takže furt je tam jen ta nejnovější na Ip.

Link to comment
Share on other sites

  • 0

No tak v registraci jsem změnil na io_append, vše zapisuje ale v dialogu je furt jen to co je na prvním řádku.

 

kod příkazu:

CMD:macc(playerid, params[])
{
	new ip[16],ipadresa[100],str[120], str1[120];
	if(Player[playerid][Admin] < 3) return Error(playerid);
	else if(sscanf(params, "s", ip)) return Ussage(playerid, "/macc [ip]");

	format(str, sizeof(str), "IP Adresa: %s", ip);
	format(ipadresa, sizeof(ipadresa), "MultiAccount/%s.txt", ip);

	if(fexist(ipadresa))
	{
		new File:Sus = fopen(ipadresa, io_read);
		while(fread(Sus, str1))
		{
			ShowPlayerDialog(playerid, D_MACC, DIALOG_STYLE_MSGBOX, str, str1, "Zavřít", "");
		}
		fclose(Sus);
	}
	else
	{
	    SCM(playerid, -1, "Tato IP nemá žádný účty.");
	}
	return 1;
}
Link to comment
Share on other sites

  • 0
  • Globální moderátor

Viz můj první příspěvek v tomto topicu

 

new strDialog[300];

while(fread(Sus,str1))

       strcat(strDialog,str1);

 

ShowPlayerDialog(playerid, D_MACC, DIALOG_STYLE_MSGBOX, str, strDialog, "Zavřít", "");

 

Ten dialog zobrazit až po načtení celého souboru, jelikož ty načteš první řádek a zobrazíš dialog hned.

Edited by HighPrint
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...