Szerző Téma: Dialog segítség  (Megtekintve 1271 alkalommal)

Dialog segítség
« Dátum: 2012. november 13. - 18:36:43 »
0 Show voters
Sziasztok!
Egy olyan dialog(kilistázósat)-ot szeretnék létrehozni amiben nem fix az, hogy a dialog menüben mik a választási lehetõségek.
Megpróbálom ezzel megmagyarázni:
Ha bejön a dialog, akkor két listitem van: Opció1, Opció2..
De azt hogy lehet megcsinálni, ha mondjuk a pOpcio1 = 0 a menübe csak az opció 1 kiírást jeleníti meg, ha pedig a pOpcio2 = 0, akkor semelyiket nem jeleníti meg.. tehát az a lényeg, hogy csak azt az opciót írja ki a menübe..
Igazából ez egy admin menühöz kellene, aminél azt akarom, hogy a kisebb szintû adminoknak ne jelenjelek meg a menüben azok a parancsok, melyek a nagyobbaknak megjelennek.
Ha nem értitek mit szeretnék megpróbálom majd képekkel elmagyarázni :)
Addig is köszönöm! :)

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Dialog segítség
« Válasz #1 Dátum: 2012. november 13. - 22:59:15 »
0 Show voters
#include <a_samp>
#define DIALOG_LIST (500)
public OnFilterScriptInit() { return 1; }
public OnFilterScriptExit() { return 1; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LIST)
{
switch(listitem)
{
   case 0:
   {
      // kód
   }
   case 1:
   {
      // kód
   }
   case 2:
   {
      // kód
   }
   case 3:
   {
      // kód
   }
   case 4:
   {
      // kód
   }
}
}
return 0;
}
public OnPlayerCommandText(playerid,cmdtext[])
{
if(!strcmp(cmdtext,\"/dialog\",true))
{
    if(Admin[playerid] == 1)
    {
        ShowPlayerDialog(playerid,DIALOG_LIST,DIALOG_STYLE_LIST,\"Fejléc\",\"Func1\\nFunc2\\nFunc3\",\"Ok\",\"Mégse\");
    }
    else if(Admin[playerid] == 2)
    {
        ShowPlayerDialog(playerid,DIALOG_LIST,DIALOG_STYLE_LIST,\"Fejléc\",\"Func1\\nFunc2\\nFunc3\\nFunc4\\nFunc5\",\"Ok\",\"Mégse\");
    }
    return 1;
}
return 0;
}

 
itt 1 példa remélem megfelel :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Dialog segítség
« Válasz #2 Dátum: 2012. november 14. - 20:19:21 »
0 Show voters
Eddig jó, de a parancsba hogy írjam be, hogy megjelenítse a dialogot? Mert igazából azt nem értettem..
 
   if(dialogid == 13)
{
    switch(listitem)
{
   if(PlayerInfo[playerid][pAdminlevel] == 1)
   {
        case 0: // a menüben a neve legyen Valami1
       {
          PlayerInfo[playerid][pValami] = 1;
            }
   }
   if(PlayerInfo[playerid][pAdminlevel] == 2)
   {
        case 1: // a menüben a neve legyen Valami2
       {
          PlayerInfo[playerid][pValami] = 10;
            }
   }
    }
}

 
Ezt azért írtam be, hogy megindokoljam amit írni fogok.. Lehet, hogy rosszul oldottam meg, akkor légyszi majd javítsd ki :)
Tehát a lényeg, hogy a játékos behozza a paranccsal a menüt, de a case 0-t csak akkor jeleníti meg a menüben, ha az adminszintje 1, a case 2-t meg akkor, ha adminszintje 2.
És nem azt szeretném, hogy rákattint és akkor kiírja neki, hogy nem vagy jogosult a használatra stb... hanem akinek a pAdminlevel nem egyenlõ 1, annak ne hozza be azt a részt...
Jobban nem tudom elmagyarázni :/
És hogy ez így jó-e eddig, és parancsba mit írjak, hogy ezen az alapon hozza be?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Dialog segítség
« Válasz #3 Dátum: 2012. november 14. - 20:28:20 »
0 Show voters
public OnPlayerCommandText(playerid,cmdtext[])
{
if(!strcmp(cmdtext,\"/dialog\",true))
{
    if(Admin[playerid] == 1)
    {
        ShowPlayerDialog(playerid,DIALOG_LIST,DIALOG_STYLE_LIST,\"Fejléc\",\"Func1\\nFunc2\\nFunc3\",\"Ok\",\"Mégse\");
    }
    else if(Admin[playerid] == 2)
    {
        ShowPlayerDialog(playerid,DIALOG_LIST,DIALOG_STYLE_LIST,\"Fejléc\",\"Func1\\nFunc2\\nFunc3\\nFunc4\\nFunc5\",\"Ok\",\"Mégse\");
    }
    return 1;
}
return 0;
}

 
itt a példában levõ kód...ezzel a megoldással kivitelezhetõ amit szeretnél...
ha 1-es admin akkor csak 3 funkciót listáz ki, ha 2-es admin akkor 5-öt...
switch-nél a következõ szinten nem használhatsz if-et csak case-t...
szóval ez helytelen:
 
switch(valami)
{
    if(...)
}

 
helyes:
 
switch(valami)
{
    case X:
}
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Dialog segítség
« Válasz #4 Dátum: 2012. november 14. - 22:02:23 »
0 Show voters
Ezt így eddig is tudtam, de arra nincs megoldás, hogy mondjuk behozza a menüt
 
ShowPlayerDialog(playerid,DIALOG_LIST,DIALOG_STYLE_LIST,\"Fejléc\",\"Func1\\nFunc2\\nFunc3\\nFunc4\\nFunc5\",\"Ok\",\"Mégse\");

 
de a Func3 opciót nem jeleníti meg 1-es adminoknak.
Ez sehogy sem megoldható?
Mert az amit te leírtál az adminmenümnél majd megfelelõ lesz, de vannak dolgok, amikhez kellene az, hogy ne csak ne jelenítse meg, hanem amit írtam :/
Igazából láttam egyik szerveren hasonlót, mármint hogy ilyen \"behozási elvet\" de nem tudom õk hogy oldhatták meg :/

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Dialog segítség
« Válasz #5 Dátum: 2012. november 14. - 22:08:34 »
0 Show voters
nem értem konkrétan mi a probléma :S
ha 1-es admin akkor 3 funkciót lát
ha 2-es admin akkor 3+2 funkciót lát
...
én kidolgoztam anno egy \"projectet\": \'azonosítókkal ellátott dinamikus dialog rendszer\' nevet kapta...
de pár hete amikor kidolgoztam a CMD+Dialog motorom akkor már egy más megoldást alkalmaztam...de nekem teljesen más dolog miatt kell...mert nekem van olyan hogy func1 van de a func2 kimarad aztán func3 megint van...de ebbõl egyik sem publikus...de nem olyan nehéz kidolgozni :)
de adminnál nem tudom miért nem jó az a megoldás amit írtam...felvázolnál 1 konkrét példát?
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Dialog segítség
« Válasz #6 Dátum: 2012. november 14. - 22:25:08 »
0 Show voters
Na most nekem igazából ez nem csak az adminra fog kelleni, de ezen akartam kísérletezni vele, mondok egy példát: Az admin parancsok betûrendben vannak..
Na most nekem igazából nem ez miatt fog kelleni, csak ezzel akartam kísérletezni, amíg teljesen kigondolom a \"végleges ötletet\" amihez majd kell.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Dialog segítség
« Válasz #7 Dátum: 2012. november 14. - 22:34:05 »
0 Show voters
akkor elárulok egy titkot ami még hasznos lehet számodra :)
http://wiki.sa-mp.com/wiki/OnDialogResponse
 
inputtext   The text entered into the input box by the player or the selected list item text.
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Dialog segítség
« Válasz #8 Dátum: 2012. november 14. - 22:52:42 »
0 Show voters
Köszi, már van gondolatom ezzel kapcsolatban :)
Hétvégéig még gondolkodok, hogyan is valósítsam meg, aztán meglátjuk :D

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Dialog segítség
« Válasz #9 Dátum: 2012. november 14. - 22:54:15 »
0 Show voters
hajrá :)
én pl a HRP Parancs + Dialog rendszeremen ( hogy minden parancs használható parancs-al és dialog-al is ) 2 hetet dolgoztam :) mondjuk most már max 1 nap lenne :D de megérte az a 2 hét :) tapasztaltam 1 kicsit :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal