Guten tag ich habe mir gerade dieses register system eingebaut
meine frage ist wie mache ich jetzt eine abfrage ob der spieler admin ist also ob er 1 oder größer ist oder 2 oder größer damit ich entscheiden kan ob er den befehl nutzen kan ??
Guten tag ich habe mir gerade dieses register system eingebaut
meine frage ist wie mache ich jetzt eine abfrage ob der spieler admin ist also ob er 1 oder größer ist oder 2 oder größer damit ich entscheiden kan ob er den befehl nutzen kan ??
Also ich hab es so ,das ich abfrage ich habe ein stock gemacht :
stock isPlayerAnAdmin(playerid,rang)
{
if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
return 0;
}
dann sage ich im stock Register noch:
dini_IntSet(Spielerdatei,"Adminlevel",0);
dasselbe mit Supporterlevel etc. und bei fragen sagen wir mal einem Command
if(strcmp(cmdtext,"/restart",true)==0)
{
if(!isPlayerAnAdmin(playerid,2000)) return SendClientMessage(playerid,ROT,"Du hast nicht den entsprechenden Adminrank!");
SendRconCommand("gmx");
return 1;
}
das if(!isPlayerAnAdmin(playerid,2000))return SendClientMessage ....
die Abfrage !bedeutet einfach gesagt wenn er kein Admin ist grob umschrieben.
dan unsere Abfrage isPlayerAnAdmin fragt ob ob er admin ist
also guckt das System jz wenn er Admin ist soll in diesem bsp der gmx Command komm wenn nicht soll der Spieler eine Nachtricht bekommen das er kein Admin ist oder nicht entsprechenden Rank.
dann (playerid,2000)) playerid is hoffendlich klar und die 2000 ist der AdminRank wenn du nur 5 Ränge haben willst kannst auch machen das (playerid,5)) dan wäre z.B. AdminRank5 dein höchster rank.
und dan halt noch was ausgeführt werden soll in díesem Fall ein Server Restart.
Hoffe ich konnte helfen ich gebe zu bin nicht sehr gut als scripter aber was ich weiß kann ich ja wohl teilen ;D
sry für die schlechte Gramatik
Ganz einfach:
ocmd:ahelpf(playerid,params[])//Der Befehl mit den params & der ID
{//Befehl Öffnen
if(IsPlayerAnAdmin(playerid,1))//Die ABfrage ob der Spieler, in dem falle, Admin Rank1 oder X ist
{
SendClientMessage(playerid,BLAU,"***Willkommen im Hilfsmenü***");//Erklärt sich von selbst..
SendClientMessage(playerid,BLAU,"/kick, /ban, /setadmin, /newcar, /wetter & /aduty");//Das auch..
}
else
{
SendClientMessage(playerid, ROT,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Supporter");//& das natürlich auch..
}
return 1;//Funktion schliessen, damit es nicht dauernd ausgeführt wird
}//& Befehl schliessen
if(Player[playerid][Adminlevel] == LEVEL)
glaub zumindest hab nur kurz enums angesehen
das mit oder grösser ist ja vollens
selbstverständlich
also ichhabe dasjetzt soo :
if(strcmp("/aduty",cmdtext,true)==0)
{
if(Spieler[playerid][[Adminlevel]) = 1)
{
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
return 1;
}
if(Spieler[playerid][[Adminlevel]) = 0)
{
SendClientMessage (playerid,Rot,"Du kein Admin.");
return 1;
}
}
und bekomme diese errors:
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 029: invalid expression, assumed zero
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : warning 215: expression has no effect
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 001: expected token: ";", but found "]"
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 029: invalid expression, assumed zero
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
hier mal ein stock wo das geladen wird:
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, dini_Int(Spielerdatei, "Geld"));
Spieler[playerid][Level]=dini_Int(Spielerdatei, "Level");
Spieler[playerid][Adminlevel]=dini_Int(Spielerdatei, "Adminlevel");
Spieler[playerid][Fraktion]=dini_Int(Spielerdatei, "Fraktion");
Spieler[playerid][Tode]=dini_Int(Spielerdatei, "Tode");
Spieler[playerid][Morde]=dini_Int(Spielerdatei, "Morde");
format(Spieler[playerid][Name], MAX_PLAYER_NAME, "%s",dini_Get(Spielerdatei, "Name"));
SetPVarInt(playerid,"loggedin",1);
return 1;
}
was mache ich falsch ??
if(strcmp("/aduty",cmdtext,true)==0)
{
if(Spieler[playerid][[Adminlevel]) = 1)
{
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
return 1;
}
if(Spieler[playerid][[Adminlevel]) = 0)
{
SendClientMessage (playerid,Rot,"Du kein Admin.");
return 1;
}
}
Somit würdest du mitif(Spieler[playerid][[Adminlevel]) = 1) einen Spieler den Rank geben.
Lösung
if(Spieler[playerid][[Adminlevel]) == 1)
{
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
return 1;
}
if(Spieler[playerid][[Adminlevel]) == 0)
{
SendClientMessage (playerid,Rot,"Du kein Admin.");
return 1;
}
}
Jetzt liegt es bei dir, soll der Spieler exakt Level eins haben und dann weiter zu kommen, oder soll er es ab Wert 1 erst können.
>= Größergleich
<= kleinergleich
> größer
< kleiner
!= alles andere als
== gleich
Also mit meiner Art würde es so Aussehen:
if(strcmp("/aduty",cmdtext,true)==0)
{
if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Administrator!");
SetPlayerColor(playerid,SCHWARZ);
SendClientMessage(playerid,BLAU,"Du bist nun als Administrator im Dienst.");
return 1;
}
return 1;
}
ich hab den Admin jz ne extra Farbe gegeben das man ihn auf der minimap erkennt da bei mir keiner Schwarz sein wird außer /aduty Admins
ehm wen ich das reinmache stürzt pawn ab und du hast bei Adminlevel zwei [ davor aber nur eine dahinter ??
Der fehler liegt nicht nur bei = den auch bei
Spieler[playerid][[Adminlevel]) = 1)
zu:
Spieler[playerid][Adminlevel] == 1) Für Gleich 1
Spieler[playerid][Adminlevel] >= 1) Für Höher oder Gleich 1
Variable = 1;
Abfrage
if(Variable == 1)
Das setzen erfolgt mit einem "=", die Abfrage immer mit zwei.
Natürlich kann man auch beim Setzen "+=" machen oder "++" oder auch "-" Aber ich denke dass müsste klar sein.
also ich habs jetzt soo
if(strcmp("/aduty",cmdtext,true)==0)
{
if(Spieler[playerid][[Adminlevel]) >= 1)
{
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
SetPlayerColor(playerid,Blau);
return 1;
}
if(Spieler[playerid][[Adminlevel]) == 0)
{
SendClientMessage (playerid,Rot,"Du kein Admin.");
return 1;
}
}
und bekomme diese errors:
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 029: invalid expression, assumed zero
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : warning 215: expression has no effect
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 001: expected token: ";", but found "]"
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 029: invalid expression, assumed zero
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
if(Spieler[playerid][[Adminlevel]) >= 1)
In
if(Spieler[playerid][Adminlevel] >= 1)
Tust du nur so oder bist du so schlecht?
bin leicht verwirrt möchtest du das di eleute sehen das ein admin (im dienst ist) oder einfach nur für sich selbst welchen adminrank man hat ? Oder das man ein bestimmten rank benötigt um ein bestimmten befehl auszuführen?
wow jetzt ist es soo:
if(strcmp("/aduty",cmdtext,true)==0)
{
if(Spieler[playerid][[Adminlevel] >= 1)
{
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
SetPlayerColor(playerid,Blau);
return 1;
}
if(Spieler[playerid][[Adminlevel] == 0)
{
SendClientMessage (playerid,Rot,"Du kein Admin.");
return 1;
}
}
und es kommen diese errors:
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 029: invalid expression, assumed zero
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : warning 215: expression has no effect
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 001: expected token: ";", but found "]"
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : error 029: invalid expression, assumed zero
C:\Users\D.Fence\Desktop\SAMP Hamachi Server\gamemodes\Selfmade.pwn(4442) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
//edit ich möchte einfach nur wissen wie ich bestimme welchen befehl nur admins machen können und ab welchem rang
[[] ???
Klammer auf Klammer zu, wo hast du Mathe gelernt?
du hast "zwei" Klammern aufgemacht in der Abfrage jedoch nur eine Zu
Bei "Adminlevel" -.-
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
bin leicht verwirrt möchtest du das di eleute sehen das ein admin (im dienst ist) oder einfach nur für sich selbst welchen adminrank man hat ? Oder das man ein bestimmten rank benötigt um ein bestimmten befehl auszuführen?
Daran erkennst du doch, das nur der Admin sehen soll, das er sich erfolgreich im Dienst angemeldet hat.
if(strcmp("/aduty",cmdtext,true)==0)
{
if(Spieler[playerid][Adminlevel] != 0) return
SendClientMessage (playerid,Blau,"Du bist kein Admin");
{
SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst");
SetPlayerColor(playerid,Blau);
return 1;
}
}
if(strcmp("/aduty",cmdtext,true)==0)
{
switch(Spieler[playerid][Adminlevel])
{
case 0: {SendClientMessage (playerid,Blau,"Du bist nicht berechtigt");}
case 1: {SendClientMessage (playerid,Blau,"Du bist nun als Suporter im Dienst"); SetPlayerColor(playerid,Blau);}
case 2: {SendClientMessage (playerid,Blau,"Du bist nun als Moderator im Dienst"); SetPlayerColor(playerid,Rot);}
case 3: {SendClientMessage (playerid,Blau,"Du bist nun als Admin im Dienst"); SetPlayerColor(playerid,Grün);
}}
return 1;
}
ZitatDaran erkennst du doch, das nur der Admin sehen soll, das er sich erfolgreich im Dienst angemeldet hat.
Ja klar aber es kann ja sein das er möchte , dass alle user wissen das ein Admin on ist. oder etwar nicht? z.b. für ein /report befehl oder so. das die user wissen das einer on ist.
danke hat geklapp
@PasMod soory das ich das übersehen habe aber man muss ja nicht gelich so freche aussagen bringen wie
Tust du nur so oder bist du so schlecht?
Wo hast du mathe gelern ??