/veh Befehl geht nicht

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

  • #define MAX_ADMINVEHS 100
    new adminmobile[MAX_ADMINVEHS];


    ocmd:veh(playerid,params[])
    {
    new carid,c1,c2,Float:x,Float:y,Float:z,Float:r,string[128];
    if(sInfo[playerid][Adminlevel] < 5 )return SendClientMessage(playerid,COLOR_RED,"Du darfst diesen Befehl nicht ausführen! Grund: Du hast nicht das notwendige Adminlevel!");
    if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_RED,"Du darfst diesen Befehl nicht ausführen! Grund: Du sitzt in einem Auto!");
    if(sscanf(params,"iii",carid,c1,c2))return SendClientMessage(playerid,COLOR_GELB,"BENUTZE: /veh [CarID] [Color1] [Color2]");
    if(carid > 611||carid < 400)return SendClientMessage(playerid,COLOR_RED,"Du darfst diesen Befehl nicht ausführen! Grund: Diese FahrzeugID ist ungültig!");
    if(c1 > 255||c1 < 0)return SendClientMessage(playerid,COLOR_RED,"Du darfst diesen Befehl nicht ausführen! Grund: Die 1 FarbID ist ungültig!");
    if(c2 > 255||c2 < 0)return SendClientMessage(playerid,COLOR_RED,"Du darfst diesen Befehl nicht ausführen! Grund: Die 2 FarbID ist ungültig!");
    new index = 0;
    for(new a=0;a<MAX_ADMINVEHS;a++)
    {
    if(adminmobile[a] != -1) index++;
    }
    if(index == MAX_ADMINVEHS)return SendClientMessage(playerid,COLOR_RED,"Du darfst diesen Befehl nicht ausführen! Grund: Es wurden schon 100 AdminFahrzeuge erstellt!");
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,r);
    for(new a=0;a<MAX_ADMINVEHS;a++)
    {
    if(adminmobile[a] == -1)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    adminmobile[a] = CreateVehicle(carid,x,y,z,r,c1,c2,-1);
    GetVehicleParamsEx(adminmobile[a],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(adminmobile[a],1,lights,alarm,0,bonnet,boot,objective);
    SetVehicleNumberPlate(adminmobile[a],"Teamauto");
    AddVehicleComponent(adminmobile[a],1010);
    PutPlayerInVehicle(playerid,adminmobile[a],0);
    break;
    }
    }
    format(string,sizeof(string),"Teamchat: %s hat ein %s mit der CarID %i erstellt",SpielerName(playerid),AutoName[carid-400],carid);
    SendTeamMessage(COLOR_RED,string);
    Log("Log/Befehle/Veh.txt",string);
    return 1;
    }


    Er schreib immer "Du darfst diesen Befehl nicht ausführen! Grund: Es wurden schon 100 AdminFahrzeuge erstellt!"
    Findet Ihr den Fehler?

  • Beitrag von Daniel112 ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Liegt daran das in Pawn die Variablen den Wert 0 bekommen sofern dieser nicht anders angegeben wird. Heißt das die if(adminmobile[a] != -1) abfrage für alle wahr sein wird da 0 nicht -1 ist und somit der index erhöht wird. Setze adminmobile auf -1 unter OnGamemodeInit mit einer Schleife

  • Also



    public OnGameModeInit()
    {
    for(new a=0;a<MAX_ADMINVEHS;a++)adminmobile[a] = -1;
    }