GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Leírások/Útmutatók => A témát indította: jana4 - 2011. május 11. - 20:59:57

Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: jana4 - 2011. május 11. - 20:59:57
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
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: ►ѕтa - 2011. május 11. - 21:16:19
azért volt bugos mert \" (egy karakter) helyett \'\' (két karakter) -t írtál  :problem:
javítva
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: Zsolesszka - 2011. május 11. - 21:26:35
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]
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: Koncz_Norbert - 2011. május 11. - 21:27:36
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.
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: Zsolesszka - 2011. május 11. - 21:36:30
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.
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: Koncz_Norbert - 2011. május 11. - 22:22:37
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.
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: ChuckNorris - 2011. május 12. - 13:50:30
[pawn]strcmp()[/pawn]
?
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: jana4 - 2011. május 12. - 20:10:53
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.
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: mauladam - 2011. május 12. - 22:29:12
Köszi ScreaM!  ;D
Most megértettem, hogy hogy kell ilyeneket csinálni :)
Cím: [Leírás] Szövegbeviteles párbeszédpanelek létrehozása, használata
Írta: Epsilon - 2011. május 13. - 16:51:10
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.