Jump to content
  • 0

pomoc DCMD a dialogy


MiNiX

Dotaz

čus :d. Potřebuju se na něco zeptat, mám totiž takoví problém. V DCMD příkazu mám funkci na otevření dialogu.. Ten se otevre ale je prázdnej. Prostě se mi otevře čistě jen dialog (input) s nadpisem a infem. ID dialogu mám v OnDialogResponse dobře prostě všechno sedí. Tak mně napadlo jestli to není tím že to dělám přes DCMD. Je to možné že to nejde kvuli tomu že to mám přes DCMD ?. Nebo tam mám někde chybu ?

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0
public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(pm, 2, cmdtext);
	return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == 23)
	{
	if(response)
	{
	new jmeno[16];
	GetPlayerName(playerid, jmeno, 16);
	new jmenosouboru[32];
	format(jmenosouboru, sizeof(jmenosouboru), "PMID %s.txt", jmeno);
	new File:soubor;
	soubor = fopen(jmenosouboru, io_read);
	new idtext[4];
	if(soubor)
	{
	fread(soubor, idtext);
	fremove(jmenosouboru);
	fclose(soubor);
	new id = strval(idtext);
	new idjmeno[16];
	GetPlayerName(id, idjmeno, 16);
	new uvod[64];
	new uvod2[64];
	new PM[256];
	format(uvod2, sizeof(uvod2), "{FFFFFF}Poslal jsi {FF0000}PM {FFFFFF}hráči {FF0000}%s", idjmeno);
	format(uvod, sizeof(uvod), "{FFFFFF}Hráč{FF0000} %s {FFFFFF}ti poslal {FF0000}PM", jmeno);
	format(PM, sizeof(PM), "{FFFFFF}PM: {FFFF00}%s", inputtext);
	SendClientMessage(playerid, COLOR_WHITE, uvod2);
	SendClientMessage(playerid, COLOR_WHITE, PM);
	SendClientMessage(id, COLOR_WHITE, uvod);
	SendClientMessage(id, COLOR_WHITE, PM);
	ShowPlayerDialog(id, 24, DIALOG_STYLE_MSGBOX, uvod, PM, "OK","");
	GameTextForPlayer(playerid, "~w~Prisla ti ~r~PM", 5000, 4);
	}
	}
	return 1;
	}
	return 1;
}
dcmd_pm(playerid, params[])
{
new nadpis[64];
new jmeno[16];
new jmenoid[16];
GetPlayerName(playerid, jmeno, 16);
new jmenosouboru[32];
new id = strval(params);
if(IsPlayerConnected(id)== 0)return SendClientMessage(playerid, COLOR_RED, "Hráč s tímto ID není připojen");
{
format(jmenosouboru, sizeof(jmenosouboru), "PMID %s.txt", jmeno);
new File:soubor;
new idcko[4];
format(idcko, sizeof(idcko),"%d", strval(params));
soubor = fopen(jmenosouboru, io_write);
if(soubor)
{
fwrite(soubor, idcko);
fclose(soubor);
GetPlayerName(strval(params), jmenoid, 16);
format(nadpis, sizeof(nadpis), "{FFFFFF}Napiš PM hráči: {FF0000}%s", jmenoid);
ShowPlayerDialog(playerid, 23, DIALOG_STYLE_INPUT, "{FF0000}PM", nadpis, "OK", "Zrušit");
return 1;
}
}
return 1;
}

 KOD

Link to comment
Share on other sites

  • 0

A teraz čo ti tam vlastne nejde?? Pretože z tvojho prvého príspevku som nepochopil že sa ti zobrazí prázdny iba s nadpisom a infom...veď tak by to malo byť nie? v inpute sa ti nič nezobrazí...tam napíše hráč správu...alebo screen ak by sa dalo by si mohol hodiť :)

 

EDIT:

 

Nie som si istý ale nemusí byť pred zátvorkou else??

 

 

if(IsPlayerConnected(id)== 0)return SendClientMessage(playerid, COLOR_RED, "Hráč s tímto ID není připojen");
{
Link to comment
Share on other sites

  • 0

Já myslel jako že je prázdenej tím smyslem že se nespustí nic z publicu OnDialogResponse.. Prostě se mi oběví dialog, napíšu tam text a mělo by to někomu poslat zprávu ale místo toho se dialog jen zavře a nic neuděla. EDIT: A Else tam být nemá.. Já o ničem takovém nikdy neslyšel

Link to comment
Share on other sites

  • 0

skus toto 

public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(pm, 2, cmdtext);
	return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == 23)
	{
	if(response == 1)
	{
	new jmeno[16];
	GetPlayerName(playerid, jmeno, 16);
	new jmenosouboru[32];
	format(jmenosouboru, sizeof(jmenosouboru), "PMID %s.txt", jmeno);
	new File:soubor;
	soubor = fopen(jmenosouboru, io_read);
	new idtext[4];
	if(soubor)
	{
	fread(soubor, idtext);
	fremove(jmenosouboru);
	fclose(soubor);
	new id = strval(idtext);
	new idjmeno[16];
	GetPlayerName(id, idjmeno, 16);
	new uvod[64];
	new uvod2[64];
	new PM[256];
	format(uvod2, sizeof(uvod2), "{FFFFFF}Poslal jsi {FF0000}PM {FFFFFF}hráči {FF0000}%s", idjmeno);
	format(uvod, sizeof(uvod), "{FFFFFF}Hráč{FF0000} %s {FFFFFF}ti poslal {FF0000}PM", jmeno);
	format(PM, sizeof(PM), "{FFFFFF}PM: {FFFF00}%s", inputtext);
	SendClientMessage(playerid, COLOR_WHITE, uvod2);
	SendClientMessage(playerid, COLOR_WHITE, PM);
	SendClientMessage(id, COLOR_WHITE, uvod);
	SendClientMessage(id, COLOR_WHITE, PM);
	ShowPlayerDialog(id, 24, DIALOG_STYLE_MSGBOX, uvod, PM, "OK","");
	GameTextForPlayer(playerid, "~w~Prisla ti ~r~PM", 5000, 4);
	}
	}
        if(response == 0) {}
	}
	return 1;
}
dcmd_pm(playerid, params[])
{
new nadpis[64];
new jmeno[16];
new jmenoid[16];
GetPlayerName(playerid, jmeno, 16);
new jmenosouboru[32];
new id = strval(params);
if(IsPlayerConnected(id)== 0)return SendClientMessage(playerid, COLOR_RED, "Hráč s tímto ID není připojen");
{
format(jmenosouboru, sizeof(jmenosouboru), "PMID %s.txt", jmeno);
new File:soubor;
new idcko[4];
format(idcko, sizeof(idcko),"%d", strval(params));
soubor = fopen(jmenosouboru, io_write);
if(soubor)
{
fwrite(soubor, idcko);
fclose(soubor);
GetPlayerName(strval(params), jmenoid, 16);
format(nadpis, sizeof(nadpis), "{FFFFFF}Napiš PM hráči: {FF0000}%s", jmenoid);
ShowPlayerDialog(playerid, 23, DIALOG_STYLE_INPUT, "{FF0000}PM", nadpis, "OK", "Zrušit");
return 1;
}
}
return 1;
}

EDIT: ale inak cele mi to pride ako jedna velka zbytocna motanica da sa to aj ovela jednoduchsie 

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...