Hallo Community,
Wollte mal fragen wie ich anhand eines Dialog_inputs die id auslesen kann?
Also ich habe vor beim erst ein listen Dialog zu machen mit den Banarten und wenn man dann eine auswählt muss man erst die id eingeben und dann den Grund und bei Tban noch die Zeit.
Aber mir würde ein BSpl an der Id reichen.
Mit Dialog die ID auslesen
- XJimmiX
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Unter OnDialogResponse speicherst Du den Inputtext als Integer in einer Variable:
Die Variable muss nur global sein, am besten ein array für alle Spieler
new array[MAX_PLAYERS];// In OnDialogResponse
array[playerid] = strint(inputtext);Dann den nächsten Dialog anzeigen lassen und immer so weiter, bis man am Ende angekommen ist.
Bei der Dialog-Abfrage würde ich dir noch die Funktion "IsNumeric" empfehlen, mit der du vorher checkst ob der Eingabewert wirklich eine Zahl ist.
Sonst kommen da ganz blöde Fehler bei rum. Wegen der Funktion, einfach mal googlen -
Ich verstehe das nicht so ganz bin ja jetzt nicht gerade der Pro im Scripten bin sozusagen Anfänger, aber verstehe einiges schon schnell das ich einiges auch selber machen kann aber dort weiß ich jetzt nicht wie ich genau vorgehen sollte. Kann mir vielleicht einer behilflich sein?
//Edit
ocmd:ban(playerid,params[])
{
if(!IsAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin");
if(!IsAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig. Benötigter Rang: 3");
ShowPlayerDialog(playerid,DIALOG_BAN,DIALOG_STYLE_LIST,"Bitte Banart wählen","AccountBan\nIPBan\nTimeBan","Weiter","Abbrechen");
return 1;
}banid[playerid] = strint(inputtext);
if(dialogid==DIALOG_BAN)
{
if(response)
{
}
else
{
}
return 1;
} -
@Firefan: Seit wann gibt es die Funktion strint ? Ich glaube du meinst wohl ehr strval
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(dialogid == DIALOG_BAN)
{
if(!response)return 1;
if(!IsNumeric(inputtext))return SendClientMessage(playerid, -1, "Ungülte Spieler ID");
new pID = strval(inputtext);
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "Spieler ist nicht Online.");
//Dein Code..
//Ban(pID); ?^^
}
return 1;
}
//Irgentwo im Script
stock IsNumeric(value[])
{
new cpoint;
while((value[cpoint] >= '0' && value[cpoint] <= '9') || (cpoint == 0 && value[cpoint] == '-'))cpoint++;
return (value[0] && strlen(value) == cpoint);
} -
Sry aber das ist ja ein listendialog dann muss das doch mit listitem oder nicht?
-
Hätte jetzt gehofft das du das selbst schaffen könntest
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_BAN)
{
if(!response)return 1;
if(!IsNumeric(inputtext))return SendClientMessage(playerid, -1, "Ungülte Spieler ID");
new pID = strval(inputtext);
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, -1, "Spieler ist nicht Online.");
if(listitem == 0)//AccountBan
{
}
else if(listitem == 1)//IPBan
{
}
else if(listitem == 2)//TimeBan
{
}
}
return 1;
} -
breadfish.de
Hat das Thema geschlossen.