Beiträge von Jeffry

    Ja aber dann wird doch nur bei Tausend der Punkt gesetzt ? Er meint aber auch bei Million :p


    Das funktioniert schon richtig. ;)
    printf("%s$", NiceMoney(3500000));

    Code
    [27/05/2015 01:47:19] 3.500.000,00$


    Und funktioniert aber leider nicht :/


    Wie viel Geld hast du denn, und was gibt er dir aus?
    Nutzt du auch "%s$", anstatt "%d$"? Das ist wichtig, es kommt ja ein String zurück.

    stock NiceMoney(money) // @Jeffry
    {
    new bmess[15];
    format(bmess, sizeof(bmess), "%d", money);
    if(money > 0)
    {
    for(new l=strlen(bmess)-3; l>0; l-=3)
    {
    if(l>0)
    {
    strins(bmess, ".", l);
    }
    }
    }
    else
    {
    for(new z=strlen(bmess)-3; z>1; z-=3)
    {
    if(z>1)
    {
    strins(bmess, ".", z);
    }
    }
    }
    format(bmess, sizeof(bmess), "%s,00", bmess);
    return bmess;
    }
    So?
    Oder ist dein Geldbetrag ein Float?


    EDIT:
    Die Funktion hab ich so aber nicht geschrieben, die zweite Schleife war falsch. 8|

    Ich sammle Münzen, daher kann ich dir sagen, dass das nichts weiter als eine belgische 2€ Münze aus dem Jahr 2003 ist, die einen Stempel von irgendeinem griechischen Restaurant (o.ä.) drauf bekommen hat.
    http://de.wikipedia.org/wiki/Belgische_Eurom%C3%BCnzen


    Zur Not kannst du ihn zur Bank bringen, die tauschen ihn dir um. Ich würd ihn aber als Andenken aufheben. Mein Vater hat mal einen 2€ bekommen, da war das Innere verkehrt herum drin, war allerdings nicht so geprägt, sondern mit Gewalt raus geschlagen. :D



    PS: Gratulation :)

    Ich habe dir den Code etwas umgebaut, so ist er besser:
    function:ShowStatistics(playerid, playerid2)
    {
    if(playerid2 == INVALID_PLAYER_ID) return 1; //Do not proceed.


    new string[1024], string2[64];
    format(string, sizeof(string), ""grey"Spieler ID: %d\n", playerid2);
    format(string, sizeof(string), "%sMitglied seit: %s\n", string, User[playerid2][accountDate]);
    format(string, sizeof(string), "%sOnline Zeit: %02d:%02d:%02d\n", string, User[playerid2][accountGame][2], User[playerid2][accountGame][1], User[playerid2][accountGame][0]);
    format(string, sizeof(string), "%sAdmin Level: %d\n", string, User[playerid2][accountAdmin]);
    format(string, sizeof(string), "%sLevel: %d\n", string, User[playerid2][accountScore]);
    format(string, sizeof(string), "%sGeld: $%d\n", string, User[playerid2][accountCash]);
    format(string, sizeof(string), "%sKills: %d\n", string, User[playerid2][accountKills]);
    format(string, sizeof(string), "%sMorde: %d\n", string, User[playerid2][accountDeaths]);
    new deaths = User[playerid2][accountDeaths];
    if(deaths == 0) deaths = 1; //Man kann nicht durch 0 teilen.
    new Float:ratio = (float(User[playerid2][accountKills])/float(deaths));
    format(string, sizeof(string), "%sRatio (K/D): %.3f\n", string, ratio);


    format(string2, sizeof(string2), "{FF0000}%s's Statistiken", pName(playerid2));
    SD(playerid, DIALOG_BEGIN, DM, string2, string, "Verlassen", "");
    return 1;
    }


    In Zeile 6: playerid2 ersetzen, falls da eine andere ID hin soll.
    In Zeile 19: FF0000 ist die Farbe. Siehe http://www.colorpicker.com.

    Caglar:
    Strings mit der Länge von 1024 bringen bei SendClientMessage(ToAll) nichts, da das Maximum bei 144+1 liegt (144 sichtbare Zeichen + EOS). Ist es mehr, wird es gar nicht mehr angezeigt.


    Mach es so:
    new string[145];
    if(sscanf(params, "s[145]", string)) return Usage(playerid, "/o [Text]");
    if(PlayerInfo[playerid][pRank] <= 0 && OOC == 0) return SendClientMessage(playerid, COLOR_GREY, "Der öffentliche Chat ist deaktiviert.");
    if(PlayerInfo[playerid][pRank] > 0)
    {
    new RankName[16];
    switch(PlayerInfo[playerid][pRank])
    {
    case 1: RankName = "Supporter";
    case 2: RankName = "Moderator";
    case 3: RankName = "Administrator";
    default: RankName = "Administrator";
    }
    format(string, sizeof(string), "{AADFE6}((%s) %s: {C0E6EB}) %s", RankName, PlayerName(playerid), string);
    }
    else
    {
    format(string, sizeof(string), "{AADFE6}(%s: {C0E6EB}) %s", PlayerName(playerid), string);
    }
    SendClientMessageToAll(COLOR_WHITE, string);

    1.) Unterlasse bitte die Vollzitate, die machen keinen Sinn und machen das Thema nur unleserlich. Entferne das bitte.


    2.) Ich tippe den Code ganz sicher nicht von einem Bild ab. 8|
    Ersetze einfach die Zeile im ersten Code-Block mit den drei Zeilen aus dem zweiten Code Block, das bekommst du hin, oder? Wenn nicht, poste den Code deines Befehls dann mache ich es dir.

    So dass nur Spieler ejected werden können, die im eigenen Fahrzeug sind?
    if(!IsPlayerInAnyVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "Syntax Error: Player must be inside of the vehicle.");
    zu:
    if(!IsPlayerInAnyVehicle(id)) return SendClientMessage(playerid, COLOR_RED, "Syntax Error: Player must be inside of the vehicle.");
    if(GetPlayerVehicleID(id) != GetPlayerVehicleID(playerid)) return SendClientMessage(playerid, COLOR_RED, "Syntax Error: Player must be inside of your vehicle.");
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_RED, "Syntax Error: You have to be the driver of the vehicle.");


    Die Admin Abfrage musst du gegebenenfalls weg machen.


    Nutze bitte den PAWN Code nächstes mal. Mit Bildern fängt keiner was an.

    Klar.
    Also:
    So sieht der Code zum Laden des X Werts aus:
    cache_get_row(AktuelleBizz, 4, content);
    BizzInfo[AktuelleBizz][bEntranceX] = floatstr(content);
    Ja?
    Da du bei 0 anfängst, heißt die 4 in diesem Code, dass du die 5. Spalte aus der Tabelle deiner Datenbank ausließt. Das ist aber der bowner2.


    Somit musst du den Code zu:
    cache_get_row(AktuelleBizz, 5, content);
    BizzInfo[AktuelleBizz][bEntranceX] = floatstr(content);
    ändern. Das wäre dann die 6. Spalte, also der X Wert.


    Das gleiche ist auch bei Y und Z zu machen, und wahrscheinlich bei vielen anderen auch, habe sie nicht alle durchgeschaut.

    Zu guter Letzt! :)
    Also, ich habe mir mal deine Tabelle angeschaut und mit dem LoadBizzSystem(); verglichen. Die Zahlen der Spalten stimmen nicht überein. So lädst du die Spalte ID 4 (also die 5. Spalte) in den X Wert. Aber in der Tabelle ist der X Wert in Spalte 6, daher musst du im Code da 5 eintragen.


    Prüfe da mal alle Spalten durch, wenn du alle anpasst dürfte dann auch alles korrekt geladen werden.

    Also laut Log wird alles korrekt erstellt. Die Pickups und Labels werden erstellt.
    Jetzt können wir noch die Koordinaten ausgeben lassen, ob die stimmen, bzw. dann kannst du dich dorthin teleportieren und schauen ob es dort ist.
    stock CreateBizzOnMap(h)
    {
    printf("CreateBizzOnMap: %d", h);
    new labelText[340];
    printf("Lösche: %d und %d", _:BizzInfo[h][blabel], BizzInfo[h][bPickup]);
    DestroyDynamic3DTextLabel(BizzInfo[h][blabel]);
    DestroyDynamicPickup(BizzInfo[h][bPickup]);
    printf("Owned: %d", BizzInfo[h][bOwned]);
    printf("Pos: %f / %f / %f", BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]-0.7);
    if(BizzInfo[h][bOwned] == 0)
    {
    BizzInfo[h][bPickup] = CreateDynamicPickup(19470, 14, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]-0.7, -1);
    format(labelText, sizeof(labelText), "{FFFFFF}- {FFFF00}%s (%d){FFFFFF} steht zum Verkauf! -{FFFFFF}\n{FFFFFF}Preis: {FFFF00}%i Euro\n{FFFFFF}Level: {FFFF00}%i\n{FFFF00}/buybusiness {FFFFFF}um es zu kaufen!",BizzInfo[h][bName],h,BizzInfo[h][bBuyPrice],BizzInfo[h][bLevelNeeded]);
    }
    if(BizzInfo[h][bOwned] == 1)
    {
    BizzInfo[h][bPickup] = CreateDynamicPickup(1272, 14, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ], -1);
    format(labelText, sizeof(labelText), "{FFFFFF}- {FFFF00}%s (%d){FFFFFF}-\nim Besitz von %s\n2ter Besitzer : %s!", BizzInfo[h][bName],h,BizzInfo[h][bOwner],BizzInfo[h][bOwner2]);
    }
    BizzInfo[h][blabel] = CreateDynamic3DTextLabel(labelText, COLOR_WHITE, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY]-0.02, BizzInfo[h][bEntranceZ]+0.7, 10);
    printf("Erstellt: %d und %d", _:BizzInfo[h][blabel], BizzInfo[h][bPickup]);
    printf("labelText: %s", labelText);
    return 1;
    }


    Was steht dann bei "Pos" im Log?

    Dann debugge diese Funktion bitte auch und poste dann was im Log steht:
    stock CreateBizzOnMap(h)
    {
    printf("CreateBizzOnMap: %d", h);
    new labelText[340];
    printf("Lösche: %d und %d", _:BizzInfo[h][blabel], BizzInfo[h][bPickup]);
    DestroyDynamic3DTextLabel(BizzInfo[h][blabel]);
    DestroyDynamicPickup(BizzInfo[h][bPickup]);
    printf("Owned: %d", BizzInfo[h][bOwned]);
    if(BizzInfo[h][bOwned] == 0)
    {
    BizzInfo[h][bPickup] = CreateDynamicPickup(19470, 14, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]-0.7, -1);
    format(labelText, sizeof(labelText), "{FFFFFF}- {FFFF00}%s (%d){FFFFFF} steht zum Verkauf! -{FFFFFF}\n{FFFFFF}Preis: {FFFF00}%i Euro\n{FFFFFF}Level: {FFFF00}%i\n{FFFF00}/buybusiness {FFFFFF}um es zu kaufen!",BizzInfo[h][bName],h,BizzInfo[h][bBuyPrice],BizzInfo[h][bLevelNeeded]);
    }
    if(BizzInfo[h][bOwned] == 1)
    {
    BizzInfo[h][bPickup] = CreateDynamicPickup(1272, 14, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ], -1);
    format(labelText, sizeof(labelText), "{FFFFFF}- {FFFF00}%s (%d){FFFFFF}-\nim Besitz von %s\n2ter Besitzer : %s!", BizzInfo[h][bName],h,BizzInfo[h][bOwner],BizzInfo[h][bOwner2]);
    }
    BizzInfo[h][blabel] = CreateDynamic3DTextLabel(labelText, COLOR_WHITE, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY]-0.02, BizzInfo[h][bEntranceZ]+0.7, 10);
    printf("Erstellt: %d und %d", _:BizzInfo[h][blabel], BizzInfo[h][bPickup]);
    printf("labelText: %s", labelText);
    return 1;
    }

    Ok, dann lasse das aber so, das war auf jeden Fall ein Teil des Fehlers, und füge vor:
    mysql_function_query(Handle, "SELECT * FROM `businesse`", true,"LoadBizzSystem", "", "");
    das ein:
    for(new i=0; i<sizeof(BizzInfo); i++)
    {
    BizzInfo[i][bPickup] = -1;
    BizzInfo[i][blabel] = Text3D:-1;
    }


    Warum?
    Du erstellst mit dem ersten Haus das Pickup 0. Dann kommt das zweite Haus, dessen bPickup ist 0, also wird Pickup 0 gelöscht, und so weiter. Theoretisch müsste das letzte Haus sichtbar sein.