strdel | Unknown Command oder Fehlermeldung

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 habe in meinem Haussystem eine Funktion die herrausfinden kann ob ein Spieler bereits ein Haus besitzt.
    Dies hat bis jetzt auch ganz gut Funktioniert.
    Nur wenn man in den Administratoren Dienst geht, bekommt man ein "[IQ]" vor den namen.
    Ich habe es gemacht es das es beim /bhouse haus befehl entfernt wird aus dem string.


    So wollt ich das nun auch bei der Funktion machen.


    stock hasPlayerHouse(playerid){
    if(PlayerInfo[playerid][pAduty] && GetPlayerAdmin(playerid) != 0){
    GetPlayerName(playerid, string, sizeof string);
    strdel(string, 0, 4);
    }
    for(new x, o = sizeof hInfo; x != o; ++x){
    if(!hInfo[x][hID])continue;
    if(!strlen(hInfo[x][hBesitzer]))continue;
    if(!strcmp(string, hInfo[x][hBesitzer], true))return true;
    if((x == o && o == sizeof hInfo))break;
    }
    return false;
    }


    Wenn man Aduty geht und /hverwalten eingibt kommt, "unknown command".
    Wenn man dann wieder offduty geht und sofort /hverwalten eingibt, funktioniert es 1x.
    Gebe ich dann nochmal /hverwalten ein, steht dort "du hast kein haus".


    ocmd:hverwalten(playerid){
    if(!PlayerInfo[playerid][pEingeloggt])return SendClientMessage(playerid, COLOR_RED, "[Fehler] {FFFFFF}Du kannst diesen Befehl nicht ausführen da du nicht eingeloggt bist.");
    if(!hasPlayerHouse(playerid))return SendClientMessage(playerid, COLOR_RED, "[Fehler] {FFFFFF}Du hast kein Haus!");
    new x = GetHausIDFromPlayer(playerid);
    if(GetPlayerDistanceFromPoint(playerid, hInfo[x][hPos][0], hInfo[x][hPos][1], hInfo[x][hPos][2]) >= 2.1)return SendClientMessage(playerid, COLOR_RED, "[Fehler] {FFFFFF}Du bist nicht nah genug an deinem Haus!");
    ShowPlayerMenu(playerid, "haus.verwalten.main");
    return 1;
    }


    stock GetHausIDFromPlayer(playerid){
    if(PlayerInfo[playerid][pAduty] && GetPlayerAdmin(playerid) != 0){
    GetPlayerName(playerid, string, sizeof string);
    strdel(string, 0, 4);
    }
    for(new x, o = sizeof hInfo; x != o; ++x){
    if(!hInfo[x][hID])continue;
    if(!strlen(hInfo[x][hBesitzer]))continue;
    if(!strcmp(hInfo[x][hBesitzer], GetName(playerid), true))return x;
    if((x == o && o == sizeof hInfo))break;
    }
    return -1;
    }


    Wäre super wenn mir bei diesem "Problem" behilflich" sein kann!


    mfg :thumbup:

  • if(!strcmp(hInfo[x][hBesitzer], GetName(playerid), true))return x;
    zu:
    if(!strcmp(hInfo[x][hBesitzer], string, true))return x;


    Hat gerade auch nicht viel gebracht.


    Wenn ich nun ganz normal offduty bin (name=ciberkiller) dann sagt er mir das ich kein haus habe aber wenn ich im dienst bin (name=[IQ]CIBERKILLER) dann funktioniert es!


    Screen vom Haus:


    mfg :thumbup:

    Einmal editiert, zuletzt von Kasakow ()

  • Ach, stimmt. Habe ich nicht drauf geachtet.
    if(PlayerInfo[playerid][pAduty] && GetPlayerAdmin(playerid) != 0){
    GetPlayerName(playerid, string, sizeof string);
    strdel(string, 0, 4);
    }


    zu:
    GetPlayerName(playerid, string, sizeof string);
    if(PlayerInfo[playerid][pAduty] && GetPlayerAdmin(playerid) != 0){
    strdel(string, 0, 4);
    }


    In beiden stocks.