Ich bins noch mal, evtl jemand ne Ahnung warum ich hier dauernd selbst gekickt werde? :o
if(dialogid == DIALOG_KICK)
{
if(response == 0)
{
SendClientMessage(playerid, ROT, "Spieler Kick Menü beendet!");
}
if(response == 1)
{
new string[128];
new kickid = strval(inputtext);
if(!IsPlayerConnected(kickid))return SendClientMessage(playerid, ROT, "Der angegebene Spieler ist nicht online!");
format(string,sizeof(string),"Admin-ControllPanel: %s wurde von %s gekickt!",SpielerName(kickid),SpielerName(playerid));
SendClientMessageToAll(ROT, string);
Kick(kickid);
}
}
Kicken über Dialog?
- BOMBER
- 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
-
-
Zeig mal den ShowPlayerDialog
-
new kickid = strval(inputtext);
Dein inputtext beinhaltet anscheinend deine ID.
Anders ist das nicht zu erklären. -
Gibste deine eigene ID ein?
-
Nein, ich gebe einen Namen ein, geht nur ID?
-
Nein, ich gebe einen Namen ein, geht nur ID?
ja es geht nur mit ID
du wandelst den Input auf einen intger um und darum passiert nix wenn du auf absenden klickst -
ja es geht nur mit ID
du wandelst den Input auf einen intger um und darum passiert nix wenn du auf absenden klickst
Okey, das geht natürlich in Game, aber wie kann ich es mit Namen & ID machen? -
Okey, das geht natürlich in Game, aber wie kann ich es mit Namen & ID machen?Wenn du den include 'utils' hast, kannste mit ReturnUser arbeiten.
-
key, das geht natürlich in Game, aber wie kann ich es mit Namen & ID machen?
Du vergleichst mithilfe einer forschleife den eingegebenen Text
mit dem Namen von den Usern.Sollte ein Name mit dem Inputtext übereinstimmen,
kannst du diesen Spieler einfach kicken. -
Ok danke, kann geschlossen werden
-
-
Oder mit sscanf:
if(dialogid == DIALOG_KICK)
{
if(response == 0)
{
SendClientMessage(playerid, ROT, "Spieler Kick Menü beendet!");
}
if(response == 1)
{
new string[128];
new kickid;
if(sscanf(inputtext, "u", kickid))return;//Dein String
if(!IsPlayerConnected(kickid))return SendClientMessage(playerid, ROT, "Der angegebene Spieler ist nicht online!");
format(string,sizeof(string),"Admin-ControllPanel: %s wurde von %s gekickt!",SpielerName(kickid),SpielerName(playerid));
SendClientMessageToAll(ROT, string);
Kick(kickid);
}
}Dass ist jetzt mit Name
MFG Piet
-
gibts leider einen schönheits fehler mein lieber freund Piet_Meier
Falls ein Name eingegeben wird klappt das alles nicht mehr...
@Threadersteller
Ein Tipp von mir, versuch dich mal an OnPlayerClickPlayer ran, oder frag ab, ob die Eingabe Zeichen vom Alphabet enthalten, und dementsprechend handeln lassen.
Das könnte so aussehen:
Achtung: Funktion isNumeric muss vorhanden sein! (Findest du ganz einfach in die SuFu eingeben)
if(!IsNumeric(inputtext))
{
new kickid = GetPlayerIDbyName(inputtext);
if(kickid == -1) return SendClientMessage(playerid,rot,"Spieler ist nicht online!");
format(string,sizeof(string),"Admin-ControllPanel: %s wurde von %s gekickt!",SpielerName(kickid),SpielerName(playerid));
SendClientMessageToAll(ROT, string);
Kick(kickid);
return 1;
}
else
{
if(!IsPlayerConnected(kickid))return SendClientMessage(playerid, ROT, "Der angegebene Spieler ist nicht online!");
format(string,sizeof(string),"Admin-ControllPanel: %s wurde von %s gekickt!",SpielerName(kickid),SpielerName(playerid));
SendClientMessageToAll(ROT, string);
Kick(kickid);
}//Funktion GetPlayerIDbyName
stock GetPlayerIDbyName(string[])
{
new s_name[MAX_PLAYER_NAME];
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerName(i,s_name,sizeof(s_name));
if(!strcmp(string,s_name,true)) { return i; }
}
return -1;
}
// -1 deswegen, weil es die 0 als ID gibt!Für Fragen, schreib mich dann doch an
Funktioniert, allerdings kann ich denn nur noch Namen eingeben -
ach jetzt war ich fail
if(!IsNumeric(inputtext))
{
new kickid = GetPlayerIDbyName(inputtext);
if(kickid == -1) return SendClientMessage(playerid,rot,"Spieler ist nicht online!");
format(string,sizeof(string),"Admin-ControllPanel: %s wurde von %s gekickt!",SpielerName(kickid),SpielerName(playerid));
SendClientMessageToAll(ROT, string);
Kick(kickid);
return 1;
}
else
{
new kickid = strval(inputtext);
if(!IsPlayerConnected(kickid))return SendClientMessage(playerid, ROT, "Der angegebene Spieler ist nicht online!");
format(string,sizeof(string),"Admin-ControllPanel: %s wurde von %s gekickt!",SpielerName(kickid),SpielerName(playerid));
SendClientMessageToAll(ROT, string);
Kick(kickid);
}//Funktion GetPlayerIDbyName
stock GetPlayerIDbyName(string[])
{
new s_name[MAX_PLAYER_NAME];
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerName(i,s_name,sizeof(s_name));
if(!strcmp(string,s_name,true)) { return i; }
}
return -1;
}
// -1 deswegen, weil es die 0 als ID gibt!So müsste es mit beidem gehen
-
breadfish.de
Hat das Thema geschlossen.