Komande Dialog

Započeo desibro, Januar 21, 2023, 00:36:27 PRE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

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): /



Pa istu stvar radis i u OnDialogResponse, ako je admin>=5 izvrsavas mu caseove koje si naveo za admina>=5 itd.



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.

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 .

(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
				}
			}
		}

Citat: PazzOnee poslato Januar 21, 2023, 13:37:03 POSLE PODNE
(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
				}
			}
		}

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");
				    }
                }
            }
        }

Ne radi jer i sam ne znas sta si napisao tu... Ne znam kako drugacije da ti docaram

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

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


Dodje covek i kaze ti gde, ti uzmes i gubis vreme, odugovlacis...