Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: desibro poslato Januar 21, 2023, 00:36:27 PRE PODNE

Naslov: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 00:36:27 PRE PODNE
Problem(error/warning): Pravim sistem komande u dialogu. Napravio sam podelu svih komandi i sad zelim da napravim kako Obican igrac , Lider i Admin vide dialoge.  U kodu mozete da vidite kako prikazuje za koju ulogu ali je problem sto ako sam Admin od 1 do 4 levela i kliknem Postavke Naloga svakako mi otvara Postvake Servera . Ja znam da mogu da napravim dialoge koji ce imati slicnu putanju i tako to ali zelim da bude manje posla te i optimizovanije . Jel moze neko da mi kaze kako da uradim to.
Deo skripte: }
YCMD:komande(playerid, params[],help)
{
    if (PI[playerid][Admin] >= 5)
    {
        SPD(playerid, 2000, DIALOG_STYLE_LIST,"RioRolePlay","Postavke Servera\nPostavke Naloga\nStaff\nAnimacije\nRioShop\nServer","Odaberi","Odustani");
    }
else if (PI[playerid][Admin] >= 1 && PI[playerid][Admin] <= 4)
    {
        SPD(playerid, 2000, DIALOG_STYLE_LIST,"RioRolePlay","Postavke Naloga\nStaff\nAnimacije\nRioShop\nServer","Odaberi","Odustani");
    }
    else if (PI[playerid][Lider])
    {
        SPD(playerid, 2000, DIALOG_STYLE_LIST,"RioRolePlay","Postavke Naloga\nOrganizacija\nAnimacije\nRioShop\nServer","Odaberi","Odustani");
    }
    else
    {
        SPD(playerid, 2000, DIALOG_STYLE_LIST,"RioRolePlay","Postavke Naloga\nAnimacije\nRioShop\nServer","Odaberi","Odustani");
    }
    return 1;
}

Slika/video ingame problema(obavezno ako je ingame problem): /
Naslov: Odg: Komande Dialog
Poruka od: devster poslato Januar 21, 2023, 01:17:54 PRE PODNE
SPD PLS IZVRSI SUICID.
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 01:35:19 PRE PODNE
Citat: realnaith poslato Januar 21, 2023, 01:17:54 PRE PODNE
SPD PLS IZVRSI SUICID.
i eto idiota trazis pomoc on prica o suicidu.
Naslov: Odg: Komande Dialog
Poruka od: PazzOnee poslato Januar 21, 2023, 12:07:50 POSLE PODNE
Pa istu stvar radis i u OnDialogResponse, ako je admin>=5 izvrsavas mu caseove koje si naveo za admina>=5 itd.
Naslov: Odg: Komande Dialog
Poruka od: Elliotw poslato Januar 21, 2023, 12:16:50 POSLE PODNE
bzs
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 12:24:57 POSLE PODNE
Citat: Elliotw poslato Januar 21, 2023, 12:16:50 POSLE PODNE
bzs
eto
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 12:31:25 POSLE PODNE
Citat: PazzOnee poslato Januar 21, 2023, 12:07:50 POSLE PODNE
Pa istu stvar radis i u OnDialogResponse, ako je admin>=5 izvrsavas mu caseove koje si naveo za admina>=5 itd.
Jeste ali sto bi to radio kad moze da se verovatno izvede iz jednog dialoga. Ako budem pravio nov dialog zasebno za Admin 5 onda moram i za Lidera i za Admina od 1 do 4 .

To znaci da cu imati 3/4 dialoga slicna i posle isto staff komande trebam da rasclanim da se prikazuju u zavisnosti od 1 do 4 levela admina.

Zato ako ima neko resenje neka napise komentar.
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 12:43:42 POSLE PODNE
Znaci dialog ima 7 caseova i to ima svoj raspored ali zelim da raspored bude promenjen u slucaju neke uloge eto tipa Admin 5.
Ne zelim da pravim poseban dialog vec u tom ali da prikazuje ono sto sam naveo . Ja sam to i uradio u komandi ali otvara drugo sto je i logicno.

Caseovi su setani kako jesu ali zelim da u zavinosti od uloga prikazuje i otvara odgovarajuci .
Naslov: Odg: Komande Dialog
Poruka od: PazzOnee poslato Januar 21, 2023, 13:37:03 POSLE PODNE
[pawn](dialogid)case 2000:
      {
         if(PI[playerid][Admin] >= 5)
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ispunjava uslov PI[playerid][Admin] >= 5
            }
         }
         else if (PI[playerid][Admin] >= 1 && PI[playerid][Admin] <= 4)
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ispunjava uslov PI[playerid][Admin] >= 1 && PI[playerid][Admin] <= 4
            }
         }
         else if (PI[playerid][Lider])
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ispunjava uslov PI[playerid][Lider]
            }
         }
         else
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ne ispunjava nista od prethodnih provera, podrazumeva sve ostalo
            }
         }
      }[/pawn]
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 14:01:57 POSLE PODNE
Citat: PazzOnee poslato Januar 21, 2023, 13:37:03 POSLE PODNE
[pawn](dialogid)case 2000:
      {
         if(PI[playerid][Admin] >= 5)
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ispunjava uslov PI[playerid][Admin] >= 5
            }
         }
         else if (PI[playerid][Admin] >= 1 && PI[playerid][Admin] <= 4)
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ispunjava uslov PI[playerid][Admin] >= 1 && PI[playerid][Admin] <= 4
            }
         }
         else if (PI[playerid][Lider])
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ispunjava uslov PI[playerid][Lider]
            }
         }
         else
         {
            switch(listitem)
            {
               //caseovi u slucaju da igrac ne ispunjava nista od prethodnih provera, podrazumeva sve ostalo
            }
         }
      }[/pawn]
Dok si ti pisao to sastavio sam ovakav kod ali ne radi.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 2000 && response)
    {
        if(PI[playerid][Admin] >= 5)
{
             switch(listitem)
             {
    case 0:
{
SPD(playerid, 2001, DIALOG_STYLE_LIST,"Postavke Servera","Rucno Cuvanje Naloga\nBrisanje Naloga\nStaff Provera\nStaff Aktivnost\nPromena Staff PinCode\nPromeni Gmail\nHappyHours\nNapravi Kucu\nNapravi Stan\nNapravi Vikendicu\nNapravi Firmu\nNapravi Bankomat\nNapravi Vozilo\nNapravi Poklon\nIzbrisi Imovinu\nGoto Kuca\nGoto Stan\nGoto Vikendica\nGoto Firma\nGoto Bankomat\nDodaj Novac","Odaberi","Odustani");
}
                }
            }
        }
    else if(PI[playerid][Registrovan] >= 1)
    {
             switch(listitem)
             {
    case 1:
{
    SPD(playerid, 2002, DIALOG_STYLE_LIST,"Postavke Naloga","Promeni Lozinku\nPromeni Gmail\nPromeni Spawn\nPromeni Drzavu\nPromeni Pol\nPromeni Godine\nTextdraw ON/OFF\nBroj Telefona\nStats","Odaberi","Odustani");
}
                }
            }
        }
    else if(PI[playerid][Admin] >= 1 && PI[playerid][Admin] <= 5)
{
             switch(listitem)
             {
    case 2:
    {
    SPD(playerid, 2003, DIALOG_STYLE_LIST,"Staff","Staff Duty\nSpecON\nSpecOFF\nPort\nGoto\nPitanja\nWL Lista\nAFK Lista\nTOP Lista\nOcisti Chat\nEvent\nEvent Start\nEvent Stop\nServer Pesma\nSlap Igraca\nKill Igraca\nMute Igraca\nUNMute Igraca\nArea Igraca\nUNArea Igraca\nKick Igraca\nBan Igraca\nUNBan Igraca","Odaberi","Odustani");
}
                }
            }
        }
else if(PI[playerid][Lider])
{
             switch(listitem)
             {
    case 3:
    {
    SPD(playerid, 2004, DIALOG_STYLE_LIST,"Organizacija","Upravljaj Clanovi\nPodesavanje\nWar","Odaberi","Odustani");
    }
                }
            }
        }
    else if(PI[playerid][Registrovan] >= 1)
{
             switch(listitem)
             {
    case 4:
    {
    SPD(playerid, 2005, DIALOG_STYLE_LIST,"Animacije","Lezanje 1\nLezanje 2\nLezanje na levo\nLezanje na desno\nSedenje\nSedenje na podu\nPreklopljene Ruke\nNaslonjen Pusis\nNaslonjen na vozilo\nPad\nPodignute Ruke\nPostavljanje\nUperiti Oruzje 1\nUperiti Oruzje 2\nUperiti Oruzje 3\nTaichi\nGuranje\nGuranje Telom\nMedicinska Pomoc\nSmeh\nPoljubac\nDogovor\nPredoziran\nPricanje\nPles 1\nPles 2\nPles 3\nPles 4\nOdjebi\nSakrivanje\nSkok Zivota\nPevanje\nVikanje","Odaberi","Odustani");
}
                }
            }
        }
    else if(PI[playerid][Registrovan] >= 1)
{
             switch(listitem)
             {
    case 5:
    {
    SPD(playerid, 2006, DIALOG_STYLE_LIST,"RioShop","Uplata\nPoklon\nPromena Imena\nVIP\nNovac\nLevel UP","Odaberi","Odustani");
}
                }
            }
        }
    else if(PI[playerid][Registrovan] >= 1)
{
             switch(listitem)
             {
    case 6:
    {
    SPD(playerid, 2007, DIALOG_STYLE_LIST,"Server","Server Pravila\nAccount Pravila\nRolePlay Pravila\nPravila Kaznjavanja","Odaberi","Odustani");
    }
                }
            }
        }
Naslov: Odg: Komande Dialog
Poruka od: PazzOnee poslato Januar 21, 2023, 14:38:03 POSLE PODNE
Ne radi jer i sam ne znas sta si napisao tu... Ne znam kako drugacije da ti docaram
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 14:57:18 POSLE PODNE
Citat: PazzOnee poslato Januar 21, 2023, 14:38:03 POSLE PODNE
Ne radi jer i sam ne znas sta si napisao tu... Ne znam kako drugacije da ti docaram
Nov sam u ovome gresim znam al vremenom cu ukapirati
Naslov: Odg: Komande Dialog
Poruka od: PazzOnee poslato Januar 21, 2023, 15:09:50 POSLE PODNE
Citat: desibro poslato Januar 21, 2023, 14:57:18 POSLE PODNE
Nov sam u ovome gresim znam al vremenom cu ukapirati
Dodji ts3 nwrpg i spremi anydesk
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 21, 2023, 17:28:09 POSLE PODNE
Citat: PazzOnee poslato Januar 21, 2023, 15:09:50 POSLE PODNE
Dodji ts3 nwrpg i spremi anydesk
imas diskord mozda?
Naslov: Odg: Komande Dialog
Poruka od: devster poslato Januar 21, 2023, 19:31:11 POSLE PODNE
Dodje covek i kaze ti gde, ti uzmes i gubis vreme, odugovlacis...
Naslov: Odg: Komande Dialog
Poruka od: №Grella poslato Januar 22, 2023, 15:43:45 POSLE PODNE
Nekad ukljuci mozgalicu nece skoditi

idi od najmanjeg do najveceg raspodijelis

Admin Level 1  case 0: ako je level 1 pusti mu listu s jednom radnjom i to ce biti da moze birati samo case 0;
Admin Level 2  case 1:  ako je level 2 pusti mu listu s dvije radnje i to ce biti da moze birati samo case 0; i case 1;
Admin Level 3  case2:   ako je level 3 pusti mu listu s tri radnje  i to ce biti da moze birati samo case 0; i case 1;, case 2;
Admin Level 4  case 3:  ako je level4 pusti mu listu s cetiri radnje  i to ce biti da moze birati samo case 0; i case 1;, case 2;, ,case 3;
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 22, 2023, 17:49:22 POSLE PODNE
Citat: Grella™ poslato Januar 22, 2023, 15:43:45 POSLE PODNE
Nekad ukljuci mozgalicu nece skoditi

idi od najmanjeg do najveceg raspodijelis

Admin Level 1  case 0: ako je level 1 pusti mu listu s jednom radnjom i to ce biti da moze birati samo case 0;
Admin Level 2  case 1:  ako je level 2 pusti mu listu s dvije radnje i to ce biti da moze birati samo case 0; i case 1;
Admin Level 3  case2:   ako je level 3 pusti mu listu s tri radnje  i to ce biti da moze birati samo case 0; i case 1;, case 2;
Admin Level 4  case 3:  ako je level4 pusti mu listu s cetiri radnje  i to ce biti da moze birati samo case 0; i case 1;, case 2;, ,case 3;
Razmisljao sam ja vec o tome tako ce i biti u staff dialogu al ovde se radi o glavnom dialogu . Taj glavni dialog sadrzi te grupe da tako kazem organizacija , staff , postavke naloga ...

E sad ako pokusavao sam da primenim za glavni dialog ali ne moze jer grupa "Organizacija" se ne vodi pod admin nego vec pod lider.
Po tvom ja trebam prvo staff da stavim jer je manje rangiran pa onda postavke servera to i jeste logicno a gde onda za Organizaciju ako stavim iznad staffa otvara adminu taj dialog ako stavim ispod postavke servera otvara lideru staff dialog .

Treba neko resenje da se nadje za caseove da ako igrac nema dovoljan nivo uloge da mu preskoci taj case obrise kako god samo da otvori sledeci.
Naslov: Odg: Komande Dialog
Poruka od: desibro poslato Januar 22, 2023, 21:53:16 POSLE PODNE
Resen problem hvala svakako svima <3