Szerző Téma: Dialog help  (Megtekintve 851 alkalommal)

Dialog help
« Dátum: 2014. július 27. - 18:06:53 »
0 Show voters
Sziasztok!
Hogy lehet azt megcsinálni, hogy MSGBOX-os dialogba adja ki az elmentett txt-bõl a szöveget?
Mert most chatbe dobja ki.
Köszönöm!
 

CMD:uzifal(playerid)
{
        new
                File:cfg = fopen(\"uzenofal.txt\", io_read);
        if(cfg)
        {
                new
                        rstr[500];
                while(fread(cfg, rstr))
                {
         SendClientMessage(playerid, COLOR_ORANGE, rstr);
                }
                fclose(cfg);
        }
        return 1;
}
« Utoljára szerkesztve: 2014. július 27. - 18:32:55 írta Flash »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Dialog help
« Válasz #1 Dátum: 2014. július 27. - 18:34:02 »
0 Show voters
SendClientMessage(playerid, COLOR_ORANGE, rstr);

 
Cseréld erre:
 
ShowPlayerDialog(playerid, 1234, DIALOG_STYLE_MSGBOX, \"\", rstr, \"Oké\",\"\");

Dialog help
« Válasz #2 Dátum: 2014. július 27. - 18:40:34 »
0 Show voters
Oké, behozta dialogba a szöveget. Már csak az a gond, hogy csak egy sornyit :)

Dupla hozzászólás automatikusan összefûzve. ( [time]2014. Július 27. 20:36:32[/time] )

Jó nehezet kérdeztem  :D

Dupla hozzászólás automatikusan összefûzve. ( [time]2014. Július 27. 21:28:15[/time] )

vagyis inkább az a baj, hogy az egészet olvasná be, de csak 1 sorba adja ki az msgbox, persze ha kiférne. Sortördelve menti el, az jó, viszont a sortört szöveget a txt-bõl már nem olvassa be teljesen, csak a legutóbbi sort.
erre varjál gombot  :hmmm:
« Utoljára szerkesztve: 2014. július 27. - 21:28:58 írta Walaky »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Dialog help
« Válasz #3 Dátum: 2014. július 28. - 01:07:38 »
0 Show voters
Ugyan én a fájlkezeléshez nem értek, csak a dinihez egy kicsit, de logikám az van. Így tudok rá feltételezett megoldást nyújtani. Nos, a while ciklus miatt minden sort kiolvas, majd minden sorral megjelenít egy dialogot. Ebbõl a játékos annyit érzékel, hogy az utolsó megjelenített dialog a képernyõjén marad benne az utolsó kiolvasott sorral. Erre az a megoldás, hogy létrehozol egy string tipusú változót, amelyre a while ciklus alatt rácsatolod a következõ sort a strcat függbény segítségével, majd a string valtozót használva - miután a program kilép a ciklusból - elõhívod a dialogot. Ez gyakorlatban valahogy így néz ki:
 
while(fread(cfg, rstr))
{
    strcat(string, rstr);
}
fclose(cfg);
ShowPlayerDialog(playerid, 12345, DIALOG_STYLE_MSGBOX, \"Teszt\", string, \"Bezárás\", \"\");

Dialog help
« Válasz #4 Dátum: 2014. július 28. - 01:15:51 »
0 Show voters
undefined symbol: string .... most akkor õõ.. izé .. :(

Dupla hozzászólás automatikusan összefûzve. ( 2014. július 28. - 01:16:55 )

csak simán \'new string\'?

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Dialog help
« Válasz #5 Dátum: 2014. július 28. - 01:19:34 »
0 Show voters
Ezt ugye most nem mondod komolyan...? Nézd át a programozás alapjait, mielõtt bármibe belevágsz. Amúgy pedig:
 
new string[ide amilyen hosszú lehet a szöveg maximum, de nem több, mint amennyi kifér a dialogba + 1 + ahány \\n van * 2]

 
Amúgy az elõzõben egy \\n kimaradt, írd majd oda, hogy minden kiolvasott sornál újat kezdjen. Ja és használhatnád dupla és tripla hozzászólás helyett a szerkesztés gombot!

Dialog help
« Válasz #6 Dátum: 2014. július 28. - 02:13:47 »
0 Show voters
Köszönök szépen mindent! Meglesz!  :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal