Szerző Téma: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata  (Megtekintve 3084 alkalommal)

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
0 Show voters
Szövegbeviteles párbeszédpanelek létrehozása, használata
 
1. Elõszó

Üdv, ebben a leírásban bemutatom a szövegbeviteles párbeszédpaneleket.


Mivel egy magyar leírásban sincs benne, gondoltam leírom.


Nos, kezdjünk bele! ;D

2. Használat

Természetesen ott vannak a funkciók mellett a magyarázatok.
[pawn]
#include <a_samp> // természetesen az alap SA-MP függvénykönyvtárt beágyazzuk
public OnPlayerCommandText(playerid, cmdtext[ ])
{
     if(!strcmp(\"/inputdialog\", cmdtext, true))
     {
              ShowPlayerDialog(playerid, 44, DIALOG_STYLE_INPUT, \"Szövegbeviteles párbeszédpanel\", \"Sajtos vagy mákostészta?\", \"OK\", \"Vissza\");
              return 1;
     }
     return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[ ])
{
      if(dialogid == 44) // ha a párbeszédpanel azonosítószáma 44....
      {
             if(response == 1) // ha a legelsõ gombra (OK-ra) ment rá....
             {
                    if(strfind(inputtext, \"sajtostészta\", true) != -1) // a legelsõ karaktertõl nézzük a szöveget, és ha (például) a \'sajtostészta\'-t írta be akkor....
                    {
                          print(\"Valaki beírta a sajtostésztát!\"); // példaként kiiratjuk konzolba a megadott szöveget....
                    }
                    else if(strfind(inputtext, \"mákostészta\", true) != -1) // ha pedig a \'mákostészta\'-t írta be akkor....
                    {
                          print(\"Valaki beírta a mákostésztát!\");
                    }
             }
      }
      return 0;
}
[/pawn]
3. Utószó

Remélem, hogy mostmár nagyjából értitek a szövegbeviteles párbeszédpaneleket.


Ha valami nem jó, vagy nem érted, a kommentek természetesen jöhetnek!  ;)

Írta: ScreaM

Dátum: 2011/05/11 21:00


1. frissítés: 2011/05/11 21:03


2. frissítés: 2011/05/11 21:15


3. frissítés: 2011/05/12 17:45
« Utoljára szerkesztve: 2011. május 13. - 17:45:35 írta ScreaM »

Nem elérhető ►ѕтa

  • 2016
  • Newbie
    • Profil megtekintése
[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #1 Dátum: 2011. május 11. - 21:16:19 »
0 Show voters
azért volt bugos mert \" (egy karakter) helyett \'\' (két karakter) -t írtál  :problem:
javítva

[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #2 Dátum: 2011. május 11. - 21:26:35 »
0 Show voters
Teszteld.
Javítsd.
 :D
Én erre a sorra:
 

if(text[0] == \"sajtostészta\")

 
ezt a hibaüzenetet kapom:
 
error 033: array must be indexed (variable \"-unknown-\")[/quote]

Koncz_Norbert

  • Vendég
[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #3 Dátum: 2011. május 11. - 21:27:36 »
0 Show voters
Idézetet írta: Zsolesszka date=1305141995\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8100\" data-ipsquote-contentclass=\"forums_Topic
Teszteld.
Javítsd.
 :D
Én erre a sorra:
 

if(text[0] == \"sajtostészta\")

 
ezt a hibaüzenetet kapom:
 
error 033: array must be indexed (variable \"-unknown-\")

[/quote]
nem text, hanem inputtext :D
Szerkesztés.


Amúgy inkább maradok az strfindnél. Ez gyorsabb mint a válozós kialakítás.
« Utoljára szerkesztve: 2011. május 11. - 21:29:35 írta Koncz_Norbert »

[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #4 Dátum: 2011. május 11. - 21:36:30 »
0 Show voters
Oh igen mivel én tesztben írtam meg és mire eszembe jutott hogy át kéne írnom inputtext-ra a text-et már lekéstem, de mindegy inputtext esetében is ez a hiba.

Koncz_Norbert

  • Vendég
[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #5 Dátum: 2011. május 11. - 22:22:37 »
0 Show voters
Ennye ScreaM. Vagy aki szerkesztette át. :(
A(z)
[pawn]if(inputtext[0] == \'xy\') return 1;[/pawn]
csak 1 ismétlem 1 karaktert bír elfogadni ezzel a módszerrel.
Külömben is nem \'xy\' hanem \"xy\"-al kellene így crash lesz. C++ szerint.
Másik hogy ékezetes karakterek.

[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #6 Dátum: 2011. május 12. - 13:50:30 »
0 Show voters
[pawn]strcmp()[/pawn]
?

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #7 Dátum: 2011. május 12. - 20:10:53 »
0 Show voters
Idézetet írta: Koncz_Norbert date=1305145357\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8100\" data-ipsquote-contentclass=\"forums_Topic
Ennye ScreaM. Vagy aki szerkesztette át. :(
A(z)
[pawn]if(inputtext[0] == \'xy\') return 1;[/pawn]
csak 1 ismétlem 1 karaktert bír elfogadni ezzel a módszerrel.
Külömben is nem \'xy\' hanem \"xy\"-al kellene így crash lesz. C++ szerint.
Másik hogy ékezetes karakterek.
 
Próbáld ki az ékezetes karaktereket.

Egyébként én így irtam: \"...\"


Rossz a látásod? ;D

 

[pawn]strcmp()[/pawn]
?
 
[/quote]
Gondolom ezzel is mûködik, legtöbb helyen strfind-al alkalmazzák, és szerintem jól is teszik. ;)
 
[...] inputtext esetében is ez a hiba.[/quote]
Letesztelem.

[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #8 Dátum: 2011. május 12. - 22:29:12 »
0 Show voters
Köszi ScreaM!  ;D
Most megértettem, hogy hogy kell ilyeneket csinálni :)

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
[Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
« Válasz #9 Dátum: 2011. május 13. - 16:51:10 »
0 Show voters
A karakterláncok tömbök. Egy tömbnek egy cellájában csak egy érték van. (egy betû -> egy cella)
Ezért nem mûködik.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal