Hey ist es möglich alle Commands zu blocken wenn der Spieler nicht eingeloggt ist, ohne
das ich bei jeden Befehl eine Abfrage schreiben muss?
Commands blocken
- xFreeze
- 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
-
-
Kann man keine Abfrage machen bevor die ganzen Commands kommen?
-
Klar, mach ganz oben unter OnPlayerCommandText() eine Abfrage und lass returnen.
-
Einfach unter OnPlayerCommand() diese Abfrage setzen
if(SpielerInfo[playerid][Eingeloggt]==0)
{
SendClientMessage(playerid,Rot,"Du bist nicht eingeloggt");
return 1;
}Sollte eig. gehen
-
-
Sicher das die Variable "Eingeloggt" auf 0 ist?
Mach mal lieber
if(GetPVarInt(playerid,"Eingeloggt") != 1) return 1; -
Ja, weil ich lasse vor dem Login 10 Sekunden ein Intro laufen und man wird erst dann eingeloggt wenn man das Passwort bestätigt hat
-
Mach ma return 0
Also
if (GetPvarInt (playerid,"Eingeloggt") == 0)
{
Send.......
return 0;
}
If (strcmp........ //hier drunter die commands -
Könnte mir jemand erfahrenes helfen? Weil alle sagen im Grunde das selbe.
Es ist egal wie ich es abfrage, es klappt immer noch nicht... -
Nein, wir haben alle unterschiedliche Sachen gepostet die du testen solltest.
-
OnPlayerCommandText(playerid, cmdtext[])
{
if(/*Abfrage*/)
{
SendClientMessage(playerid,farbe,"TEXT");
return 0;
}
//Commands:
return 1;
} -
Ich habe bereits alle getestet aber es ging garnichts davon...
-
Neu compiled und den Server neu gestartet?
-
Wenn du einen Commandprozessor wie ZCMD oder OCMD nutzt, kannst du das über die Callbacks regeln lassen.
z.B bei ZCMD OnPlayerCommandReceived abfragen ob der Spieler nicht eingeloggt ist und dann die CMD'S mit return 0;
blocken.LG
-
-
-
Mach es so
if(VARIABLEEINGELOGGT == 0)
{
SendClientMessage(playerid,rot,"Die Befehle funktionieren erst nach dem Login);
}
else
{
Befehl1
Befehl2
Befehl3
u.s.w
} -
Habe es so:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(GetPVarInt(playerid,"Eingeloggt") != 1) return 1;
new string2[164];
format(string2,sizeof(string2),"Der Befehl %s existiert auf diesem Server nicht.",cmdtext);
return SendClientMessage(playerid,Orange,string2),SendClientMessage(playerid,Orange,"Du kannst unter /hilfe alle Befehle sehen.");
}
Aber es klappt nicht -
Logan und wie geht das dann bei ocmd?
Dieser Callback wird erst seit ocmd v2 mitgeliefert.
Checke, ob du auch wirklich v2 hast, bevor du diesen Callback nutzt!
public BeforePlayerCommandText(playerid,cmdtext[]) {
if(VARIABLEINGELOGGT == 0) {
SendClientMessage(playerid,-1,"Du musst eingeloggt sein, um Befehle nutzen zu können!");
return 0; //wichtig
}
return 1;
} -
Habe es so:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(GetPVarInt(playerid,"Eingeloggt") != 1) return 1;
new string2[164];
format(string2,sizeof(string2),"Der Befehl %s existiert auf diesem Server nicht.",cmdtext);
return SendClientMessage(playerid,Orange,string2),SendClientMessage(playerid,Orange,"Du kannst unter /hilfe alle Befehle sehen.");
}
Aber es klappt nichtGuck mal was ich gepostet hab!