Bei Deiner Lösung kommt dann das ich zu wenig Rechte habe obwohl ich die richtige Gruppe haben. Was ist da inkorrekt?
Welche Gruppe hast du?
Bei Deiner Lösung kommt dann das ich zu wenig Rechte habe obwohl ich die richtige Gruppe haben. Was ist da inkorrekt?
Welche Gruppe hast du?
7
und ich hab auch 7 eingetragen
Dann musst du die Abfrage so schreiben:
if(PlayerInfo[playerid][pAdmin] == 5 && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur Rang 1 vergeben.");
Eventuell musst du das PlayerInfo und pAdmin zu dem umbenennen, wie es bei dir heißt.
Dann ändere oben wieder das
if(IsPlayerAdmin(playerid))
zu:
if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,5))
Edit: Du fragst nach Adminrang 5, bist aber 7, anfrage anpassen.
Der Download Link ist Down
Beachte oben den Hinweis:
Zitat
Dort sind die Links auf aktualisierte Versionen (Include oder Plugin).
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.
Jetzt habe ich es so geändert wie du meintest, jedoch kann ich nun alle Ränge vergeben und nicht nur 1.
Als Admin Level 7 kannst du das doch auch.
Nur Admin Level 5 soll nur 1 vergeben können, wie es deiner Aussage zu entnehmen war.
Versuchs mal so vielleicht:
if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,5))
{
if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
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.
Hey Kurze frage.
Wollte den Befehl auch machen das man mit Numpad 8 auch den motor starten kann wie mache ich das am besten?
ocmd:motor(playerid)
{
new string[96];
if(!IsLoggedIn(playerid))return 1;
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du befindest dich in keinem Fahrzeug.");
new vehicleid = GetPlayerVehicleID(playerid);
//if(pRefillVehicle[playerid] == 1)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du kannst den Motor nicht anschalten während du das Fahrzeug tankst!");
if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist nicht der Fahrer.");
if(IsAFahrrad(GetVehicleModel(vehicleid)))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Fahrrad hat keinen Motor!");
if(Vehicle[vehicleid][vehFuel] <= 0.0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Das Fahrzeug hat kein Benzin mehr!");
if(Spieler[playerid][pAdminDuty] == 1){
if(IsValidVehicle(vehicleid)){
if(Vehicle[vehicleid][vehMotor] == false)
{
Vehicle[vehicleid][vehMotor] = true;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
Vehicle[vehicleid][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", vehicleid);
format(string, sizeof(string), "%s betätigt die Zündung.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 12000);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du betätigst die Zündung.");
return 1;
}
else if(Vehicle[vehicleid][vehMotor] == true)
{
Vehicle[vehicleid][vehMotor] = false;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du stellst den Motor ab.");
KillTimer(vehicleid);
return 1;
}
}
}
if(!(IsAFraktionsVeh(vehicleid) == INVALID_VEHICLE_ID))
{
if(IsValidVehicle(vehicleid))
{
new fV = IsAFraktionsVeh(vehicleid);
if(Spieler[playerid][pFraktion] == fVehicle[fV][vehFraktion])
{
if(Vehicle[fVehicle[fV][vehID]][vehMotor] == false)
{
Vehicle[fVehicle[fV][vehID]][vehMotor] = true;
GetVehicleParamsEx(fVehicle[fV][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(fVehicle[fV][vehID], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
Vehicle[fVehicle[fV][vehID]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", fVehicle[fV][vehID]);
format(string, sizeof(string), "%s betätigt die Zündung.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 12000);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du betätigst die Zündung.");
return 1;
}
else if(Vehicle[fVehicle[fV][vehID]][vehMotor] == true)
{
Vehicle[fVehicle[fV][vehID]][vehMotor] = false;
GetVehicleParamsEx(fVehicle[fV][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(fVehicle[fV][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du hast den Motor abgeschaltet.");
KillTimer(Vehicle[fVehicle[fV][vehID]][VehicleTimer]);
return 1;
}
}
return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du besitzt keine Schlüssel für dieses Fahrzeug.");
}
}
for(new slot = 0;slot<MAX_PLAYER_VEHICLES;slot++)
{
if(IsValidVehicle(PrivateVehicle[playerid][slot][vehID]))
{
if(vehicleid == PrivateVehicle[playerid][slot][vehID])
{
if(Vehicle[PrivateVehicle[playerid][slot][vehID]][vehMotor] == false)
{
Vehicle[PrivateVehicle[playerid][slot][vehID]][vehMotor] = true;
GetVehicleParamsEx(PrivateVehicle[playerid][slot][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(PrivateVehicle[playerid][slot][vehID], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
Vehicle[PrivateVehicle[playerid][slot][vehID]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", PrivateVehicle[playerid][slot][vehID]);
format(string, sizeof(string), "%s betätigt die Zündung.", GetName(playerid));
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 12000);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du betätigst die Zündung.");
return 1;
}
else if(Vehicle[PrivateVehicle[playerid][slot][vehID]][vehMotor] == true)
{
Vehicle[PrivateVehicle[playerid][slot][vehID]][vehMotor] = false;
GetVehicleParamsEx(PrivateVehicle[playerid][slot][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(PrivateVehicle[playerid][slot][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}Du hast den Motor abgeschaltet.");
KillTimer(Vehicle[PrivateVehicle[playerid][slot][vehID]][VehicleTimer]);
return 1;
}
return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du besitzt keine Schlüssel für dieses Fahrzeug.");
}
}
}
return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du besitzt keine Schlüssel für dieses Fahrzeug.");
}
Alles anzeigen
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
Hallo.
Wie kann ich diesen Befehl kleiner schreiben und das es nicht soviele if abfragen sind.
Code:
CMD:scheine(playerid,params[])
{
if(!IsPlayerConnected(giveplayerid)) return NO_CON;
new giveplayerID,string[128],Float:x,Float:y,Float:z;
GetPlayerPos(playa,x,y,z);
if(sscanf(params,"d",giveplayerID))return SendClientMessage(playerid,Grau,"Benutzung: /scheine [SpielerID]");
if(IsPlayerInRangeOfPoint(playerid, 10.0, x,y,z))
{
new ftext[20],wtext[20],fltext[20],atext[20],btext[20];
if(Spieler[playerid][DrivLic] == 1){ ftext ="Vorhanden";}
else if(Spieler[playerid][DrivLic] == 0){ ftext ="Nicht Vorhanden";}
if(Spieler[playerid][GunLic] == 1){ wtext ="Vorhanden";}
else if(Spieler[playerid][GunLic] == 0){ wtext ="Nicht Vorhanden";}
if(Spieler[playerid][FlugLic] == 1){ fltext ="Vorhanden";}
else if(Spieler[playerid][FlugLic] == 0){ fltext ="Nicht Vorhanden";}
if(Spieler[playerid][AngelLic] == 1){ atext="Vorhanden";}
else if(Spieler[playerid][AngelLic] == 0){ atext="Nicht Vorhanden";}
if(Spieler[playerid][BootLic] == 1){ btext ="Vorhanden";}
else if(Spieler[playerid][BootLic] == 0){ btext ="Nicht Vorhanden";}
format(string, sizeof(string), "Scheine von %s", SpielerName(playerid));
SendClientMessage(playa, COLOR_WHITE, string);
format(string, sizeof(string), "Führerschein: %s Waffenschein: %s Flugschein %s", ftext, wtext, fltext);
SendClientMessage(playa, COLOR_GREEN, string);
format(string, sizeof(string), "Angelschein: %s Bootschein: %s", atext, btext);
SendClientMessage(playa, COLOR_GREEN, string);
format(string,sizeof(string),"* %s zeigt %s seine Scheine.", Spieler[playerid][pName],SpielerName(playa));
ProxDetector(25.0,playerid,string,Grau,Grau2,Grau3,Grau4,Grau5);
}
return 1;
}
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
C:\Users\PC\Desktop\Neues Script\gamemodes\German.pwn(1450) : warning 202: number of arguments does not match definition
ocmd_motor(playerid,"");
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.
Hat mir der Klammer nichts zutun der fehler liegt bei
ocmd_motor(playerid,"");
Habe vorallem das noch nicht gesehn nur mit ZCMD.