Szerző Téma: Dialog kérdés  (Megtekintve 705 alkalommal)

Dialog kérdés
« Dátum: 2013. július 21. - 02:26:03 »
0 Show voters
Sziasztok!
Az lenne a kérdésem, hogyha egy listázó dialog tartalmát for ciklussal töltöm fel(összekapcsolom a for cikluson belül a sztringeket strcat-tal) akkor az OnDialogResponse alatt hogy lehetséges a lista kezelése?
Ugye switch(listitem) és honnan tudom, hogy case 0-nál mit csináljon?
Köszönöm a segítséget!

Dialog kérdés
« Válasz #1 Dátum: 2013. július 21. - 12:02:38 »
0 Show voters
#include <a_samp>
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1){
    switch(listitem){
        case 0:{
            //Ha az elsõ lehetõséget választotta
        }
        case 1:{
            //Ha a második lehetõséget választotta
        }
        case 2:{
            //Ha a harmadik lehetõséget választotta
        }
        //És így tovább
    }
}
return 1;
}

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Dialog kérdés
« Válasz #2 Dátum: 2013. július 21. - 14:48:39 »
0 Show voters
Ezt nem értem. Miért akarsz egy listát strcat-el összekapcsolni?
Ilyenre gondoltál?
 
new str[128];
for(new i;i<MAX_PLAYERS;i++)
{
       format(str,sizeof(str),\"%sLista%d\\n\",str,i);
}
ShowPlayerDialog(playerid,DIALOG_ID,DIALOG_STYLE_LIST,str,\"Választ\",\"Mégse\");

Dialog kérdés
« Válasz #3 Dátum: 2013. július 21. - 16:27:04 »
0 Show voters
for(new i=0;i<MAX_CONTACTS;i++)
       {
           if(!isnull(TelefonInfo[playerid][tNev]))
           {
               format(str, sizeof(str), \"%s - %i\\n\", TelefonInfo[playerid][tNev], TelefonInfo[playerid][tSzam]);
               strcat(buff, str);
         }
       }

 
Ez a kódom. Végigmegyek a telefoninfoján a játékosnak és ha találok névjegyet akkor hozzákapcsolom. Mivel ilyenkor nem tudom, hogy a case 0-nál mi fog kijönni(nem tudom a nevet és a számot), nem tudok mit írni oda, hogy mit csináljon ha a játékos azt választja.

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Dialog kérdés
« Válasz #4 Dátum: 2013. július 21. - 16:58:04 »
+1 Show voters
Ez egyszerû. DIALOG_STYLE_LIST alatt is használhatsz \"inputtext\"-et. Pl.
 

ShowPlayerDialog(playerid, 1231, DIALOG_STYLE_LIST, \"Kecske\\nJuh\\nMarha\", \"OK\", \"Mégsem\");

 
Majd az eljárás alatt...
 

if(!strcmp(inputtext, \"Kecske\", true)) return SendClientMessage(playerid, -1, \"A kecskére kattintottál!\");

 
Viszont mi nem tudjuk hogy mit ad ki, ezért...
 

new mirekattint[24], telefonszam; // létrehozunk egy új sztring ill. telefonszám változót, amikbe a beviteli szöveget fogjuk feldarabolni
sscanf(inputtext, \"p<->s[24]{s[1]}i\", mirekattint, telefonszam);
// mivel az inputtext így néz ki alapesetben: Kocka_Pali - 4334256, a \"-\" az elválasztó. ezért a \"-\" elõtt a név, utána pedig a telefonszám van.
new str[128];
format(str, 128, \"Rákattintottál %s nevû kontaktodra, akinek a telefonszáma: %d!\", mirekattint, telefonszam);
SendClientMessage(playerid, -1, str);

 
Remélem segítettem.
« Utoljára szerkesztve: 2013. július 21. - 17:03:22 írta Rupert »

Dialog kérdés
« Válasz #5 Dátum: 2013. július 21. - 21:30:21 »
0 Show voters
Köszönöm szépen Rupert! Nem tudtam, hogy lehet inputtextet használni listában is :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal