Jump to content
  • 0

pomoc Format(riadkovanie) a herný čas


TeRoR

Dotaz

Zdravíčko ...

Mám problém s rádiom.

Snažím sa ho spraviť do dialógu + počet poslucháčov, no zabudol som, ako sa robí vo formáte podobné ako strcat ...

Potrebujem to mať prehľadnejšie a neviem dať format do viacerých riadkov, pretože keby som to dal do 1 riadku, všetky tie rádia vo formáte, asi sa v tom nikto nevyzná ..

Skúšal som to všeliak, ale niak to nejde xD.

Chcel by som Vás poprosiť o help ... ako to mám spraviť

Kód:

 

 

CMD:radioonline (playerid)
{
	new str[1000];
	format(str, "{FF8F00}[POP]\t{FF0000}| {FFFFFF}Nazov Radiovej Stanice\t\t{FF0000}| {007D00}Poslucháèi {FF0000}|\n" +
				+ "{767676}============================================\n" +
				+ "{FF0000}Vypnú Rádio\n" +
				+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}Europa 2\t\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n" +
				+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}Evropa 2\t\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n" +
				+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}FunRadio\t\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n" +
				+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}FunRadio Top 20\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n" +
	 			+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}Fajn Radio\t\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n" +
				+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}Radio Expres\t\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n" +
				+ "{FF8F00}[TOP]\t{FF0000}| {FFFFFF}Atena Hitradio\t\t\t\t{FF0000}|{007D00} %i\t {FF0000}|\n",Posluchaci[0],Posluchaci[1],Posluchaci[2],Posluchaci[3],Posluchaci[4],Posluchaci[5],Posluchaci[6]);
	ShowPlayerDialog(playerid,DIALOG_RADIOMENU,DIALOG_STYLE_LIST,"{FF99AA}RadioOnline",str,"Vyber","Koniec");

}

 

 

 

A ešte by som sa chcel opýtať na herný čas ... Neviem, či si pamätám dobre, ale ten čas(hč) pri HP a zbraniach v ruke je na príkaz ? Že napíšem napr. turngametimeon(true), alebo si musím spraviť vlastný cez TD ? 

Edited by TeRoR
Link to comment
Share on other sites

14 odpovědí na tuto otázku

Recommended Posts

  • 0

Mohl bys využít zpětného lomítka (\). Pro tebe by to bylo sice přehlednější, ale compiler to pořád uvidí v jednom řádku, takže se nevyhnutelně vyskytne chyba input line is too long. Tzn. že bych být tebou použil strcat a co se stylu dialogu týče, ten bych změnil na DIALOG_STYLE_TABLIST_HEADER (wiki), abys to měl opravdu přehledné.

Edited by GaRGoyLeS
Link to comment
Share on other sites

  • 0

Dobre, a ako to mám v strcate doriešiť s tými premennými ? Lebo v tom strcate keď napíšem napr. strcat(str,"balbalbla%s",Admin); tak to nejde ...

Preto používam format.

Link to comment
Share on other sites

  • 0

Promiň na proměnný jsem zapomněl. Budeš teda muset použít format.:

new ex[200];
format(ex, sizeof(ex), "Radio 1 %i/n", posluchaci[0]);
format(ex, sizeof(ex), ex + "Radio2 %i/n", posluchaci[1]);
.
.
.

A tady máš fce na ovládání času, anglicky snad umíš: SetPlayerTime, TogglePlayerClock (tahle ta tě asi zajímá), GetPlayerTime a SetWorldTime.

Edited by GaRGoyLeS
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Chybové riadky: označené **

Kód:

new str[500],string[500];
format(str,sizeof(str), "{FF0000}Vypnúť Rádio\n");
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}Europa 2\t{007D00} %i\n",Posluchaci[0);** 
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}Evropa 2\t{007D00} %i\n",Posluchaci[1]);** 
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}FunRadio\t{007D00} %i\n",Posluchaci[2]);** 
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}FunRadio Top 20\t{007D00} %i\n",Posluchaci[3]);** 
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}Fajn Radio\t{007D00} %i\n",Posluchaci[4]);** 
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}Radio Expres\t{007D00} %i\n",Posluchaci[5]);** 
format(str,sizeof(str), str + "{FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n",Posluchaci[6]);** 

format(string,sizeof(string), "Typ rádia\tNázov radia\tPoslucháči\n\%s",str);
ShowPlayerDialog(playerid,DIALOG_RADIOMENU,DIALOG_STYLE_TABLIST_HEADERS,"{FF99AA}RadioOnline",string,"Vyber","Koniec"); 

Chyby:

error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
error 033: array must be indexed (variable "str")
Edited by TeRoR
Link to comment
Share on other sites

  • 0

 

Nevím jestli to bude fungovat ale zkus

format(str,sizeof(str), "%s {FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n", str, Posluchaci[6]);

Tiež nejde ...

Link to comment
Share on other sites

  • 0

a nebo možná nevím jistě ale možná by to šlo udělat tímto způsobem

 

 

new string[128], full[1028];

format(string,sizeof(string), str + "{FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n",Posluchaci[6]);
strcat(full, string);
format(string,sizeof(string), str + "{FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n",Posluchaci[6]);
strcat(full, string);
format(string,sizeof(string), str + "{FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n",Posluchaci[6]);
strcat(full, string);
format(string,sizeof(string), str + "{FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n",Posluchaci[6]);
strcat(full, string);

 

 

Link to comment
Share on other sites

  • 0
  • Hlavní moderátor

Tak jednou pro vždy: pawn neumí spojovat řetězce pomocí plus, tečky, ampersandu nebo jakéhokoliv jiného znaku. Tento arciho kód:

 

 

Nevím jestli to bude fungovat ale zkus

format(str,sizeof(str), "%s {FF8F00}[TOP]\t{FFFFFF}Atena Hitradio\t{007D00} %i\n", str, Posluchaci[6]);

Je správný. Řetězec musíš vždy dosadit na začátek dalšího formatu, aby v něm obsah zůstal. Takhle to budeš dělat tak dlouho, dokud tam nebudeš mít všechna rádia.

 

Mé osobní doporučení: Názvy rádií si dej do pole a celé to udělej v cyklu.

 

A pro ostatní, zkuste si ten kód po sobě přečíst nebo ho odzkoušet, než ho sem pošlete. Pak tady akorát vznikají další problémy.

Link to comment
Share on other sites

  • 0

Ako myslí vetu: "Mé osobní doporučení: Názvy rádií si dej do pole a celé to udělej v cyklu." ?

Myšleno doporučení od zkušenějšího uživatele, co máš dělat(přesněji jeho osobní názor, co by bylo pro tebe nejlepší).
Link to comment
Share on other sites

  • 0

Myšleno doporučení od zkušenějšího uživatele, co máš dělat(přesněji jeho osobní názor, co by bylo pro tebe nejlepší).

Ja chápem tu vetu .. ale ako to mám spraviť cez pole..

Link to comment
Share on other sites

  • 0
  • Hlavní moderátor
new names[][20] = {"Europa 2", "Evropa 2", "FunRadio"}; //takhle bys doplnil všechny

for(new i; i<sizeof names; i++)
{
    format(str, sizeof str, "%s %s %i\n",str,names[i],Posluchaci[i]);
}

Takhle nějak. Když už máš počet posluchačů pro každé rádio v poli, proč toho nevyužít a neusnadnit si práci.

  • Líbí se mi to! (+1) 2
Link to comment
Share on other sites

  • 0

Ďakujem ! Fakt dobrý nápad.

 

A keď to chcem spraviť farebne, tak ako ?

Keď som dal do names farby, nezobrazil dialóg a tak isto aj keď som to dal do formátu.

 

+ Da sa niak v TextDraw nastaviť , že sa textdraw natahuje doľava ?

Edited by TeRoR
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...