Jump to content
  • 0

pomoc Dynamický Rádio Systém


Guyy

Dotaz

Začal som na novom projekte, Dynamický Rádio Systém.. Aby som stále nepridával case, riadky v príkaze... urobil som si všetko cez cyklus, ale keď mám vytvorených 9 a viac rádií, tak mi riadky Upraviť Meno / Link vôbedz nefungujú.. Ďakujem za pomoc :)

#define MAX_RADIO 10

new rInfo[MAX_RADIO][RadioSys];

// OnDialogResponse
for(new i; i < 1; i++)
{
    if(rInfo[listitem][Used] == true) PlayAudioStreamForPlayer(playerid, rInfo[listitem][rUrl]);
	else 
	{
		if(listitem == MaxRadio) 	   AddNewRadio(playerid); // Toto ide stále, až do MAX_RADIO
		if(listitem == MaxRadio + 1)   ShowNameEdit(playerid); // Ked je 9 a viac rádií, toto nefunguje
		if(listitem == MaxRadio + 2)   ShowLinkEdit(playerid); // Toto tiež nie
	}
}

// Vytvorenie rádia v Inite, premenná MaxRadio
stock Radio(Name[], Url[])
{
	/* ... */
	rInfo[MaxRadio][Used] = true;
	return MaxRadio++;
}

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 1

Neviem, či sme sa pochopili, pýtal som sa ťa, či má význam mať v kóde cyklus, ktorý sa vykoná iba raz (prečo ho úplne neodstrániť?). 

A už som zistil, kde je chyba: rInfo[listitem][Used] == true... Ak vyberieš listitem >= MAX_RADIO, tak to tu spadne, skús tú podmienku prerobiť na: if (listitem < MAX_RADIO && rInfo[listitem][Used]) prípadne na if (listitem < MaxRadio)

Edited by DuFF
Link to comment
Share on other sites

  • 0

Aký má význam tento for cyklus? 

for(new i; i < 1; i++)

Jeho telo sa vykoná iba raz (pre i = 0).

Inak zatiaľ nevidím chybu, používaš MAX_RADIO aj niekde inde?

Tipujem, že v stocku Radio kontroluješ, či sa náhodou neprekročil limit MAX_RADIO, ak áno, vypíšeš nejakú chybovú hlášku, ale MaxRadio zvýšiš o 1 aj tak. 

Link to comment
Share on other sites

  • 0

Tak ten cyklus má význam taký, že ja ked kliknem na riadok, tak to spustí toľko krát, koľko je MaxRadio.. Ale už som tam dal return 1; takže to spustí len raz.. a MAX_RADIO už nepoužívam.. v príkaze mám MaxRadio.. Lenže to bude problém v listitem-och lebo mne tie rádia spustí aj ked ich je 10, aj prída.. Len ked kliknem na upraviť tak sa nestane nič

Link to comment
Share on other sites

  • 0

Nech kukám ako kukám na ten tvoj kód tak mu stále nechápem... Načo tam je ten cyklus - ano viem už si to písal, stále tomu však nerozumiem...

Uvediem príklad dialogu:

1) Rádio 1

2) Rádio 2

3) Rádio 3

...

7) Rádio 7

8) Nové rádio

9) Edituj meno

10) Edituj link

 

Tak logicky listitem 0 až 6 prehrajú zvuk a 7,8,9 spustia druhý dialog

 

Tak mi vysvetli načo tam máš cyklus, ale zmysluplne ;)

Link to comment
Share on other sites

  • 0
před 57 minutami, DuFF said:

Neviem, či sme sa pochopili, pýtal som sa ťa, či má význam mať v kóde cyklus, ktorý sa vykoná iba raz (prečo ho úplne neodstrániť?). 

A už som zistil, kde je chyba: rInfo[listitem][Used] == true... Ak vyberieš listitem >= MAX_RADIO, tak to tu spadne, skús tú podmienku prerobiť na: if (listitem < MAX_RADIO && rInfo[listitem][Used]) prípadne na if (listitem < MaxRadio)

Ouu.. Ďakujem :) Pomohlo

 

před 52 minutami, Quiter said:

Tak mi vysvetli načo tam máš cyklus, ale zmysluplne ;)

Lebo včera som sa pýtal v chate a Lukasz mi povedal že nemám používať case, ale cyklus.. lebo case 0 .. MaxRadio nejde

Edited by EvoLve.
Kód funguje :D
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...