Danke, jedoch kann man jetzt mit Rang Trotzdem mehr als Rang 1 vergeben obwohl ich es so gemacht hab wie du sagst.
MfG
Danke, jedoch kann man jetzt mit Rang Trotzdem mehr als Rang 1 vergeben obwohl ich es so gemacht hab wie du sagst.
MfG
Hallo!
Da es im Sammethread schon zu übersichtlich wird, versuche ich es hier nochmal.
Ich möchte einen /makehelfer Befehl erstellen, jedoch klappt er irgendie net ganz.
ocmd:makehelfer(playerid, params[])
{
#pragma unused params
if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
new pID, adminid, string[128];
if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5)
{
if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
if(IsPlayerNPC(pID))return 1;
if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]");
if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
if(adminid == 0){
format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
SendClientMessage(playerid, BLAU, string);
format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
SendAdminMessage(ADMCMD, string);
SpielerDaten[pID][pAdmin] = 0;
SpielerSpeichern(pID);
return 1;
}
if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
SpielerDaten[pID][pAdmin] = adminid;
format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
SendClientMessage(playerid, BLAU, string);
format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
SendAdminMessage(ADMCMD, string);
//SpawnPlayerEx(pID);
SpielerSpeichern(pID);
return 1;
}
else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
return 1;
}
So habe ich es versucht.
Der Helferverwalter bzw. alle über Rang 4 sollen Helfer einstellen können, jedoch dann auch nur die Gruppe 1 vergeben können und nicht mehr.
Helferverwalter ist ein Extra Teamrang, die Funktion müsste ich nch erstellen.
MfG
Einmal Dr Frauenarzt wgen dem Motor mit Taste wo wir net witerkamen und mein makehelfer Befehl bitte.
ocmd:makehelfer(playerid, params[]){ #pragma unused params if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!"); new pID, adminid, string[128]; if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5) { if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben."); if(IsPlayerNPC(pID))return 1; if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]"); if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!"); if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial."); if(adminid == 0){ format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID)); SendClientMessage(playerid, BLAU, string); format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]); SendClientMessage(pID, BLAU, string); format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]); SendAdminMessage(ADMCMD, string); SpielerDaten[pID][pAdmin] = 0; SpielerSpeichern(pID); return 1; } if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!"); SpielerDaten[pID][pAdmin] = adminid; format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID)); SendClientMessage(playerid, BLAU, string); format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID)); SendClientMessage(pID, BLAU, string); format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID)); SendAdminMessage(ADMCMD, string); //SpawnPlayerEx(pID); SpielerSpeichern(pID); return 1; } else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");} return 1;}
So hab ichs versucht.
Alles anzeigenIsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,5))
Hier wird abgefragt, ob der Admin den Rang 5 hat, wenn nicht dann geht der g esamte Befehl nicht oder irre ich?
if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
Hier wird abgefragt ob der Admin einen kleineren Rang als 7 hat, wenn nicht, kann er auch andere Ränge als Rang 1 vergeben oder irre ich?
MfG
//Edit: Irgendwie klappt das ganze bei mir nicht.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){ if(newkeys & KEY_ANALOG_UP) { //Motor ocmd_motor(playerid,""); return 1; }
Klammer vrgessen sry
//Edit: das return gehört 1 nach links also Leerzeichen weg.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_ANALOG_UP)
{
//Motor
ocmd_motor(playerid,"");
return 1;
Versuchs mal damit
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) ist bereits im Script vorhanden, einfach den Rest dazus chreiben.
MfG
IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,5))
Hier wird abgefragt, ob der Admin den Rang 5 hat, wenn nicht dann geht der g esamte Befehl nicht oder irre ich?
if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
Hier wird abgefragt ob der Admin einen kleineren Rang als 7 hat, wenn nicht, kann er auch andere Ränge als Rang 1 vergeben oder irre ich?
MfG
//Edit: Irgendwie klappt das ganze bei mir nicht.
Jetzt habe ich es so geändert wie du meintest, jedoch kann ich nun alle Ränge vergeben und nicht nur 1.
ocmd:makehelfer(playerid, params[])
{
#pragma unused params
if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
new pID, adminid, string[128];
if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,7))
{
if(SpielerDaten[playerid][pAdmin] == 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
if(IsPlayerNPC(pID))return 1;
if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfr [SpielerID/Name] [Teamrang]");
if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
if(adminid == 0){
format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
SendClientMessage(playerid, BLAU, string);
format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
SendAdminMessage(ADMCMD, string);
SpielerDaten[pID][pAdmin] = 0;
SpielerSpeichern(pID);
return 1;
}
if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
SpielerDaten[pID][pAdmin] = adminid;
format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
SendClientMessage(playerid, BLAU, string);
format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
SendAdminMessage(ADMCMD, string);
//SpawnPlayerEx(pID);
SpielerSpeichern(pID);
return 1;
}
else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
return 1;
}
So siehts aktuell aus.
Klappt leider auch nicht.
Beim Verscuh den Befehl auszuführen kommt immer Du hast nicht genügend Rechte für diesen Befehl.
else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
return 1;
Liegts vlt daran? Wen ich es entferne geschieht garnichts.
7
und ich hab auch 7 eingetragen
Danke @Jeffry!
Bei Deiner Lösung kommt dann das ich zu wenig Rechte habe obwohl ich die richtige Gruppe haben. Was ist da inkorrekt?
MfG
Das ist mir schon klar, aber wie frage ich ab das der "Helferverwalter" dem Spieler nur Rang 1 also Helfer geben kann und keine anderen Ränge? Was muss ich da an meinem Code ändern?
MfG
Admin Rang 5 soll nur Adminang 1 geben und alles über Admin Rang 5 soll nur alles ab Adminrang 2 geben.
Danke, aber wie mach ich es, das der Admin Rang einen Spieler nur Rang 1 also Helfer geben kann?
MfG
Hallo!
Ich möchte folgenden Befehl erstellen, damit nur ein bestimmter Rang die User nur zum Helfer machen kann.
Wie kan ich das lösen?
ocmd:makehelfer(playerid, params[])
{
#pragma unused params
if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
new pID, adminid, string[128];
if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,6))
{
if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID/Name] [Teamrang]");
if(IsPlayerNPC(pID))return 1;
if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
if(adminid == 0){
format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
SendClientMessage(playerid, BLAU, string);
format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
SendAdminMessage(ADMCMD, string);
SpielerDaten[pID][pAdmin] = 0;
SpielerSpeichern(pID);
return 1;
}
if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
SpielerDaten[pID][pAdmin] = adminid;
format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
SendClientMessage(playerid, BLAU, string);
format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
SendAdminMessage(ADMCMD, string);
//SpawnPlayerEx(pID);
SpielerSpeichern(pID);
return 1;
}
else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
return 1;
}
for(new i=0;i<sizeof(REPORTSYS);i++){ TextDrawHideForPlayer(playerid,REPORTSYS[i]); }
PlayerTextDrawHide(playerid, SUPPORT[playerid]);
PlayerTextDrawHide(playerid, BUGMELDUNG[playerid]);
PlayerTextDrawHide(playerid, EINWEISUNG[playerid]);
PlayerTextDrawHide(playerid, SCHLIESSEN[playerid]);
TextDrawShowForPlayer(playerid,Reportdraw[0]);
Das ist der ganze Absatz
Danke, jetzt ist der Fehler weg.
//Edit: Jetzt werden dafür andere Textdraws angezeigt beim Login.
for(new i=0;i<sizeof(REPORTSYS);i++){ TextDrawHideForPlayer(playerid,REPORTSYS[i]); }
So sieht der Code jetzt aus.
Danke, hat geklappt.
Jetzt gab ich noch
Attempted to read/write array element at index 10 in array of size 10 bei
for(new i=0;i<11;i++){ TextDrawHideForPlayer(playerid,REPORTSYS[i]); }
public SendLevelMessage(color, string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Eingeloggt[i] == 1 && !IsPlayerNPC(i) && IsPlayerConnected(i) && i != INVALID_PLAYER_ID)
{
if(SpielerDaten[i][pLevel] < 3)
{
SendClientMessage(i, color, string);
}
}
}
}
Ja aber, wieso sehe ich dann mein geschriebenes nicht?
MfG