Text wird zichmal wiederholt (ungewollt)

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
  • Hallo Community,


    wenn ich einen Befehl ausfüre dann bekomme ich die Fehlermeldung zichmal... 1x würde reichen habe schon rumprobiert aber bekomme das Problem nicht in den Griff...


    Code:
    ocmd:kaufen(playerid,params[])
    {
    new query[1000], string[300], string2[500];
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ]))
    {
    if(GetPlayerMoney(playerid) < HausInfo[i][hKaufpreis])
    {
    if(GetPlayerScore(playerid) < 3)
    {
    if(SpielerInfo[playerid][pHaus] == 1)
    {
    format(query, sizeof(query), "UPDATE `Houses` SET `VarBesitzer`='1' AND `Besitzer`='%s' WHERE `HausID` = '%d'",PlayerName[playerid],HausInfo[i][HausDB]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `Accounts` SET `Haus`='1' WHERE `Benutzername` = '%s'",PlayerName[playerid]);
    mysql_query(query);
    format(string,sizeof(string),"Du hast dir ein Haus für {FFCC00}$%d{FFFFFF} gekauft. Hausnummer |%d|",HausInfo[i][hKaufpreis],HausInfo[i][HausDB]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,COLOR_WHITE,"Neue Befehle verfügbar [/befehle]");
    Delete3DTextLabel(HausLabel[i]);
    format(string2,sizeof(string2),"--== Verkauftes Haus ==--\nBesitzer: {FFCC00}%s{FFFFFF}",HausInfo[playerid][hBesitzer]);
    HausLabel[i] = Create3DTextLabel(string2,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    Update3DTextLabelText(HausLabel[i],COLOR_WHITE,string2);
    GivePlayerMoney(playerid,-HausInfo[i][hKaufpreis]);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Du besitzt schon ein eigenes Haus, bitte verkaufe es vorher. [Befehle: /befehle]");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Du benötigt mindestens Level 3 um dir ein eigenes Haus zu kaufen.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Du hast nicht genug Geld um dir dieses Haus zu kaufen.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Hier kannst du kein Haus kaufen, du musst dich vor einem Haus stellen.");
    }
    }
    return 0;
    }


    Komischerweiße gibt er mir aus das ich hier kein Haus kaufen kann... es wird doch überprüft ob der Player in der Zone des XYZ Pickups ist oder?


    Mfg, Markus

  • So?


    else
    {
    SendClientMessage(playerid,COLOR_BLASSRED,"Hier kannst du kein Haus kaufen, du musst dich vor einem Haus stellen.");
    return 1;
    }
    }
    return true;
    }


    Stimmt das return true; ?
    Oben beim query usw.. ist ja auch ein return... kann das bleiben?

  • Okay, danke nur das 2. Problem bekomme die Meldung das ich nicht vor dem Haus stehe (Pickup) stehe aber drinne^^
    Kannst du mir da irgendwie helfen?


    Mfg, Markus :)

  • hm, scheint eigentlich alles richtig zu sein, wie erstellst du denn ein haus?


    //edit: so ist es übersichtlicher und sollte jetzt klappen:

    ocmd:kaufen(playerid,params[])
    {
    new query[1000], string[300], string2[500];
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ])) return SendClientMessage(playerid,COLOR_BLASSRED,"Hier kannst du kein Haus kaufen, du musst dich vor einem Haus stellen.");
    if(GetPlayerMoney(playerid) > HausInfo[i][hKaufpreis]) return SendClientMessage(playerid,COLOR_BLASSRED,"Du hast nicht genug Geld um dir dieses Haus zu kaufen.");
    if(GetPlayerScore(playerid) > 3) return SendClientMessage(playerid,COLOR_BLASSRED,"Du benötigt mindestens Level 3 um dir ein eigenes Haus zu kaufen.");
    if(SpielerInfo[playerid][pHaus] != 1) return SendClientMessage(playerid,COLOR_BLASSRED,"Du besitzt schon ein eigenes Haus, bitte verkaufe es vorher. [Befehle: /befehle]");
    format(query, sizeof(query), "UPDATE `Houses` SET `VarBesitzer`='1' AND `Besitzer`='%s' WHERE `HausID` = '%d'",PlayerName[playerid],HausInfo[i][HausDB]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `Accounts` SET `Haus`='1' WHERE `Benutzername` = '%s'",PlayerName[playerid]);
    mysql_query(query);
    format(string,sizeof(string),"Du hast dir ein Haus für {FFCC00}$%d{FFFFFF} gekauft. Hausnummer |%d|",HausInfo[i][hKaufpreis],HausInfo[i][HausDB]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,COLOR_WHITE,"Neue Befehle verfügbar [/befehle]");
    Delete3DTextLabel(HausLabel[i]);
    format(string2,sizeof(string2),"--== Verkauftes Haus ==--\nBesitzer: {FFCC00}%s{FFFFFF}",HausInfo[playerid][hBesitzer]);
    HausLabel[i] = Create3DTextLabel(string2,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    Update3DTextLabelText(HausLabel[i],COLOR_WHITE,string2);
    GivePlayerMoney(playerid,-HausInfo[i][hKaufpreis]);
    return 1;
    }
    return 1;
    }

    3 Mal editiert, zuletzt von firestormZ ()

  • ocmd:chaus(playerid,params[])
    {
    #pragma unused params
    new kaufpreis, interiorid;
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
    if(SpielerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid,COLOR_BESCH,"Du darfst diesen Befehl nicht benutzen!");
    if(sscanf(params,"di",kaufpreis, interiorid)) return SendClientMessage(playerid,COLOR_HELLGRAU,"Benutze: /chaus [Kaufpreis] [InteriorID (2|4)]");
    CreateHaus(kaufpreis, Float:X, Float:Y, Float:Z, interiorid);
    for(new i=0;i<MAX_HOUSES;i++)
    {
    switch(interiorid)
    {
    case 2:
    {
    new query[128];
    format(query, sizeof(query), "UPDATE `Houses` SET `SpawnX`='271.884979' , SpawnY='306.631988' , SpawnZ='999.148437' WHERE `HausID` = '%d'",HausInfo[i][HausDB]);
    mysql_query(query);


    }
    case 4:
    {
    new query[128];
    format(query, sizeof(query), "UPDATE `Houses` SET `SpawnX`='302.180999' , SpawnY='300.722991' , SpawnZ='999.148437' WHERE `HausID` = '%d'",HausInfo[i][HausDB]);
    mysql_query(query);
    }
    }
    }
    LoadHouses();
    return 1;
    }


    Und


    stock CreateHaus(kaufpreis, Float:X, Float:Y, Float:Z, interiorid)
    {
    new query[256];
    format(query, sizeof(query),"INSERT INTO `Houses` (`Kaufpreis`,`IconX`,`IconY`,`IconZ`,`InteriorID`) VALUES ( '%d','%f','%f','%f','%i' )",kaufpreis,Float:X,Float:Y,Float:Z, interiorid);
    mysql_query(query);
    return true;
    }

  • oh, wenn das jetzt nicht funktioniert, dann weis ich au nimmer :D

    ocmd:kaufen(playerid,params[])
    {
    new query[1000], string[300], string2[500];
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ])) return SendClientMessage(playerid,COLOR_BLASSRED,"Hier kannst du kein Haus kaufen, du musst dich vor einem Haus stellen.");
    if(GetPlayerMoney(playerid) <= HausInfo[i][hKaufpreis]) return SendClientMessage(playerid,COLOR_BLASSRED,"Du hast nicht genug Geld um dir dieses Haus zu kaufen.");
    if(GetPlayerScore(playerid) <= 3) return SendClientMessage(playerid,COLOR_BLASSRED,"Du benötigt mindestens Level 3 um dir ein eigenes Haus zu kaufen.");
    if(SpielerInfo[playerid][pHaus] != 1) return SendClientMessage(playerid,COLOR_BLASSRED,"Du besitzt schon ein eigenes Haus, bitte verkaufe es vorher. [Befehle: /befehle]");
    format(query, sizeof(query), "UPDATE `Houses` SET `VarBesitzer`='1' AND `Besitzer`='%s' WHERE `HausID` = '%d'",PlayerName[playerid],HausInfo[i][HausDB]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `Accounts` SET `Haus`='1' WHERE `Benutzername` = '%s'",PlayerName[playerid]);
    mysql_query(query);
    format(string,sizeof(string),"Du hast dir ein Haus für {FFCC00}$%d{FFFFFF} gekauft. Hausnummer |%d|",HausInfo[i][hKaufpreis],HausInfo[i][HausDB]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,COLOR_WHITE,"Neue Befehle verfügbar [/befehle]");
    Delete3DTextLabel(HausLabel[i]);
    format(string2,sizeof(string2),"--== Verkauftes Haus ==--\nBesitzer: {FFCC00}%s{FFFFFF}",HausInfo[playerid][hBesitzer]);
    HausLabel[i] = Create3DTextLabel(string2,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    Update3DTextLabelText(HausLabel[i],COLOR_WHITE,string2);
    GivePlayerMoney(playerid,-HausInfo[i][hKaufpreis]);
    return 1;
    }
    return 1;
    }

    Einmal editiert, zuletzt von firestormZ ()

  • Okay ein schritt weiter :D
    Jetzt kommt "Du hast nicht genug Geld..." habe genug Geld wie man auf dem Screen sieht xD

  • Achso ja gibt es ja :D
    VarBesitzer = 1 also 1 = JA es gibt einen Besitzer ist in der Houses Tabelle abgespeichert