Beiträge von Jeffry

    if(strlen(Firmengebiete[i][F_Besitzer]) > 2) return SendClientMessage(playerid, 0xFF0000FF, "Error: Diese Firma gehört bereits jemandem.");

    Du kannst es ja mit dem Registrieren mal direkt rein schreiben:
    format(query,sizeof(query),"INSERT INTO user (username, passwort, level, firma) VALUES ('%s',MD5('%s'), '1', '-1')",name,passwort);


    Wenn das auch nichts bringt, dann überschreibst du die -1 irgendwo zu einer 0.

    Ich war so frei und habe die Funktionen verbessert.
    Die IsOnly... Funktionen habe ich weg gelassen, da diese hier keinen Sinn mehr geben, da sie das gleiche darstellen würden.


    stock IsLetterString(str[]) //©Jeffry
    {
    if(!strlen(str)) return 0;
    for(new i = 0, j = strlen(str); i < j; i++)
    {
    switch(str[i])
    {
    case 'A'..'Z', 'a'..'z': continue;
    case 138, 142, 159, 192..214, 216..246, 248..255: continue;
    }
    return 0;
    }
    return 1;
    }


    stock IsNumber(str[]) //©Jeffry
    {
    if(!strlen(str)) return 0;
    for(new i = 0, j = strlen(str); i < j; i++)
    {
    switch(str[i])
    {
    case '0'..'9': continue;
    case '+', '-': if(i == 0) continue;
    }
    return 0;
    }
    return 1;
    }


    stock IsFloat(str[]) //©Jeffry
    {
    if(!strlen(str)) return 0;
    new l_dct;
    for (new i = 0, j = strlen(str); i < j; i++)
    {
    switch(str[i])
    {
    case '0'..'9': continue;
    case '+', '-': if(i == 0 && i != j-1) continue;
    case '.':
    {
    l_dct++;
    if(l_dct == 1 && i != 0 && i != j-1 && str[i-1] != '+' && str[i-1] != '-') continue;
    }
    }
    return 0;
    }
    return 1;
    }



    Verwendung:
    printf("%d",IsLetterString("Jeffry")); //true
    printf("%d",IsLetterString("Hallo123!")); //false
    printf("%d",IsNumber("+14032401")); //true
    printf("%d",IsNumber("14032401")); //true
    printf("%d",IsNumber("Jeffry")); //false
    printf("%d",IsFloat("14.03")); //true
    printf("%d",IsFloat("-24.01")); //true
    printf("%d",IsFloat("9.9a")); //false

    Also, so scheint es bei mir zu klappen:
    printf("i: %d | Face: %d | Range: %d", i, PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 3), IsPlayerInRangeOfPoint(playerid, 16, FirePos[i][0], FirePos[i][1], FirePos[i][2]));
    if(PlayerFaces(playerid, FirePos[i][0], FirePos[i][1], FirePos[i][2], 3) && IsPlayerInRangeOfPoint(playerid, 16, FirePos[i][0], FirePos[i][1], FirePos[i][2]))


    Versuche es mal so.

    Zwecks den Warnungen:
    Benenne alle pID's in den Befehlen um zu "pid".


    Und zwecks den Errors:
    Du hast die Funktion AdminNachricht nicht. Das wird eine Nachricht an alle Admins sein, in der Art:
    stock AdminNachricht(color, string[])
    {
    for(new i=0; i<MAX_PLAYERS; i++) if(IsPlayerAdmin(i)) SendClientMessage(i, color, string);
    return 1;
    }

    Achso.
    format(string,sizeof(string),"[REPORT-SYSTEM]: %s hat eine Beschwerde eingesendet: [ %s ]",pInfo(playerid),inputtext); //Hier 20505
    pInfo(playerid), das scheint mir merkwürdig. pName vielleicht? Oder SpielerName, je nach dem wie es bei dir heißt.


    Oder hast du eine pInfo Funktion?

    Versuche es so:
    COMMAND:platzieren(playerid)//Objekt platzieren
    {
    if(Spieler[playerid][Eingeloggt] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht Eingeloggt!");
    if(Spieler[playerid][pAFK] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist AFK. Benutze /back");
    if(Spieler[playerid][pGetazert] == 1) return SendClientMessage(playerid,ROT,"Du bist getazert!");
    if(Spieler[playerid][pHouseID] == defaulth)return SendClientMessage(playerid,GRAU,"Du besitzt kein Haus.");
    for(new houseID = 0; houseID < MAX_HOUSE; houseID++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,HouseInfo[houseID][hiPos][0],HouseInfo[houseID][hiPos][1],HouseInfo[houseID][hiPos][2]))
    {
    if(HouseInfo[houseID][hID] == Spieler[playerid][pHouseID])
    {
    new string[500];
    for(new i = 0; i < MAX_INV; i++)
    {
    if(Inventar[playerid][i][0] == -1)
    {
    //Inventarslot ist leer
    format(string, sizeof(string),"%sInventarslot nicht belegt!\n", string);
    }
    else
    {
    format(string,sizeof(string),"%sObjekt: %d\n",string,Inventar[playerid][i][0]);
    }
    }
    if(strlen(string) == 0)
    {
    format(string,sizeof(string),"Dein Inventar ist leer!");
    }
    ShowPlayerDialog(playerid,DIALOG_INVENTAR,DIALOG_STYLE_LIST,"Deine Objekte",string,"Okey","");
    return 1;
    }
    }
    }
    return true;
    }

    SendClientMessage(playerid,orange,"Dein Beschwerde wurde abgespeichert und wurde an die Administratoren weitergeleitet!");
    zu:
    SendClientMessage(playerid,0xFF960DFF,"Dein Beschwerde wurde abgespeichert und wurde an die Administratoren weitergeleitet!");
    oder:
    #define orange 0xFF960DFF


    Zwecks den anderen beiden Fehlern bei 18291, poste dazu den Code.

    Keine der Funktionen funktioniert so wie sie soll.
    printf("%d",IsString("Hallo1")); //true -> (Hat aber eine Zahl, muss false sein)
    printf("%d",IsFloat("0.a")); //true -> (Hat einen Buchstabe, muss false sein)
    printf("%d",IsFloat("0..1")); //true -> (Hat zwei Punkte, muss false sein)
    printf("%d",IsNumber("Hallo0a")); //true -> (Das ist keine Zahl, sollte klar sein dass das false ist)
    printf("%d",IsOnlyString("eeeee")); //false -> (Das ist ein String, muss true sein)
    printf("%d",IsOnlyFloat("9.9")); //false -> (9.9 ist sehr wohl ein Float, muss true sein)
    printf("%d",IsOnlyNumber("123456789")); //false -> (Das ist eine Zahl, muss true sein)


    Das solltest du überarbeiten.

    Ändere mal:
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i'WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
    zu:
    format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
    Möglicherweise mag er das nicht.


    Hast du dich neu registriert? Wenn nicht, mach das.