/afixveh Befehl?

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
  • Hey,
    ich möchte einen Befehl schreiben (/afixveh), doch der funktioniert nicht,
    if(strcmp(cmd, "/afixveh", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 4)
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du darfst den Befehl nicht benutzen!");
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
    SendClientMessage(playerid, COLOR_GREY, " Auto repairt!");
    }
    }


    Was mache ich falsch? (Es kommen immer Errors)


    Die Errors kommen:
    C:\Users\Lucky\Desktop\Golden Night Reallife\gamemodes\GNR.pwn(60686) : error 010: invalid function or declaration
    C:\Users\Lucky\Desktop\Golden Night Reallife\gamemodes\GNR.pwn(60688) : error 010: invalid function or declaration
    C:\Users\Lucky\Desktop\Golden Night Reallife\gamemodes\GNR.pwn(60690) : error 010: invalid function or declaration
    C:\Users\Lucky\Desktop\Golden Night Reallife\gamemodes\GNR.pwn(60694) : error 010: invalid function or declaration
    C:\Users\Lucky\Desktop\Golden Night Reallife\gamemodes\GNR.pwn(60696) : error 021: symbol already defined: "JBC_SetVehicleHealth"
    C:\Users\Lucky\Desktop\Golden Night Reallife\gamemodes\GNR.pwn(60696) : error 017: undefined symbol "playerid"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.


    MFG und Danke

  • if(strcmp(cmd, "/afixveh", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 4)
    {
    return SendClientMessage(playerid, COLOR_GRAD1, " Du darfst den Befehl nicht benutzen!");
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
    SendClientMessage(playerid, COLOR_GREY, " Auto repairt!");
    }
    else SendClientMessage(playerid, COLOR_GREY, " Du bist in keinem Auto!");
    }
    return 1;
    }

  • 1. Was kommen für Errors?
    2. Zum Reparieren ist RepairVehicle besser geeignet. (Sehbarer Schaden wir dadurch auch repariert)
    3. Der Befehl heißt bei dir /fixveh nicht /afixveh (Ist der Error, dass du Ingame /afixveh eingeben willst und nix passiert?)
    4. Warum am Anfang abfragen, ob der Spieler Connected ist? Wenn er den Befehl eingibt, ist er auch Connected...


    Mfg,
    UncleSub

  • @[TVR]SkillerFX:


    Hast du JunkBuster drin?


    Das Ding verursacht gerne so Probleme. Hatte das auch mal, aber das ist schon zu lang her und jetzt nutze ich das System auch nicht mehr.


    Wie bei den vorherigen Posts schon beschrieben, nimm lieber RepairVehicle . Sieht schöner aus :)

  • Habe es jetzt so gemacht:
    public OnPlayerCommand(playerid, cmdtext[])
    {
    if (!strcmp("/arepair", cmdtext))
    {
    if(PlayerInfo[playerid][pAdmin] < 4)
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Auto");
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, 0xFFFFFFFF, "Auto repairt!");
    return 1;
    }
    }


    Kommen keine Errors. Aber wenn ich ingame /arepair eingebe passiert nichts

  • public OnPlayerCommand(playerid, cmdtext[])
    {
    if (!strcmp("/arepair", cmdtext))
    {
    // Ich glaube hier ist der Fehler. :)
    if(PlayerInfo[playerid][pAdmin] < 4) // Aussage: Spieler unter Level 4
    if(PlayerInfo[playerid][pAdmin] >= 4) // Aussage: Spieler gleich oder über Level 4
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Auto");
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, 0xFFFFFFFF, "Auto repairt!");
    return 1;
    }
    }
    }

  • Entweder du machst:




    if(PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(.....);


    Oder:


    if(PlayerInfo[playerid][pAdmin] >= 4)



    Liegt bei dir.


    Mfg,
    UncleSub


    //Edit: Housefrau war mal wieder schneller. ^^ Das Problem ist grade halt bei dir, dass der Befehl nur Ausgeführt wird, wenn du Adminlevel kleiner 4 bist..

  • ocmd:afixveh(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Admin!");//anpassen
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAU, "Du musst in einem Fahrzeug sitzen!");
    new vehicleID = GetPlayerVehicleID(playerid);
    RepairVehicle(vehicleID);
    SendClientMessage(playerid, COLOR_GRAU, "Du hast das Fahrzeug erfolgreich repariert!");
    }
    return 1;
    }


    Hier auch Einmal ohne ocmd.. hab mich verschaut.. dachte du arbeitest mit ocmd..


    if(strcmp(cmdtext,"/afixveh",true)==0)
    {
    if(PlayerInfo[playerid][admin] >= 4)
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAU, "Du musst in einem Fahrzeug sitzen!"); //Überprüfen ob er im Fahrzeug sitzt und wenn nicht Abbrechen und Fehlermeldung zeigen
    new vehicleID = GetPlayerVehicleID(playerid); //VehicleID herausfinden
    RepairVehicle(vehicleID); //Fahrzeug mit der VehicleID reparieren
    SendClientMessage(playerid, COLOR_GRAU, "Du hast das Fahrzeug erfolgreich repariert!");
    }
    else return SendClientMessage(playerid,COLOR_GRAU,"Du brauchst Mindestend Adminlevel 4");
    return 1;
    }

    2 Mal editiert, zuletzt von JuliensBlog ()