Haus & Bizsystem Spammt mich voll!

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 :D


    Habe einem Problem mit meinem Haus&Bizsystem.


    Problem 1: [GEKLÄRT]

    Spoiler anzeigen
    Undzwar , wenn man zB /hauskaufen macht , und in keinem Hauspunkt steht , wird die Nachricht 30x gespammt (Oben definiert , sprich #define MAX_HAUS 30)

    Spoiler anzeigen
    Das gleiche auch beim Bizsystem , nur dass da die Nachricht 5x kommt (#define BIZZ_FILES 5)

    Spoiler anzeigen

    ocmd:hauskaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,Rot,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Niemand",false))return SendClientMessage(playerid,Rot,"Dieses Haus steht nicht zum Verkauf!");
    // wenn das Haus frei ist dann kaufen:
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]); // Geld abziehen
    new Hausstring[50];
    format(Hausstring,50,"/haus/%d.txt",haus); // Pfad formatieren
    dini_Set(Hausstring,"besitzer",name); // Besitzer überschreiben
    SendClientMessage(playerid,Gelb,"Du hast das Haus erfolgreich gekauft!");
    KillHaus(haus); // Hauspickup löschen
    LoadHaus(haus); // Haus laden
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist in keinem Hauspickup!");
    }
    }
    return 1;
    }

    Spoiler anzeigen

    ocmd:bizkaufen(playerid,params[])
    {
    new string[256];
    for(new b = 1; b < BIZ_FILES; b++)
    {
    format(string, sizeof(string), "/Biz/biz%d.txt", b);
    if(IsPlayerInRangeOfPoint(playerid,5,bInfo[b][PossX],bInfo[b][PossY],bInfo[b][PossZ]))
    {
    if(bInfo[b][Besetzt] == 0)
    {
    if(strcmp(bInfo[b][Besitzer],PlayerName(playerid),false) == 0)return SendClientMessage(playerid,0xFFFF00FF,"Dieses Biz gehört dir bereits!");
    if(GetPlayerMoney(playerid) >= bInfo[b][Preis]) //Bizz Preis
    GivePlayerMoney(playerid,-bInfo[b][Preis]);
    format(string,64,"/Biz/biz%d.txt",b); //öffnet die Datei
    dini_IntSet(string,"Besetzt",1); //setzt Besetzt auf 1
    bInfo[b][Besetzt] = 1;
    dini_Set(string,"Besitzer",PlayerName(playerid)); //Hier wird der Besitzer name gesetzt
    SendClientMessage(playerid,0xFFFF00FF,"Du hast erfolgreich das Bizz gekauft!");
    KillBizz(b); //stock wird aufgerufen
    LoadBizz(b); //Stock wird aufgerufen
    }
    else
    {
    SendClientMessage(playerid,Rot,"Das Biz steht nicht zum Verkauf!");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist in keinem Biz-Kaufpunkt.");
    }
    }
    return 1;
    }


    Problem 2: [GEKLÄRT]

    Spoiler anzeigen
    Ich kann nur 1 Biz erstellen!
    Ich habe oben #define BIZZ_FILES 5 gemacht , aber ich kann immer nur 1 Biz erstellen.
    Sprich wenn 1 Biz erstellt ist , kann ich /createbiz machen , aber es passiert ingame garnichts, es wird aber die Datei erstellt.
    Wenn ich das Biz aus dem Ordner lösche und den Server neustarte , kann ich wieder ein neues Biz erstellen , aber immer nur 1 !

    Spoiler anzeigen

    stock LoadBizz(bizid)
    {
    for(new b = 1; b <BIZ_FILES; b++)
    {
    new Biz[64];
    format(Biz,sizeof(Biz),"Biz/biz%d.txt",b);
    if(!fexist(Biz))return 0;
    {
    bInfo[bizid][PossX] = dini_Float(Biz,"PosX");
    bInfo[bizid][PossY] = dini_Float(Biz,"PosY");
    bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ");
    bInfo[bizid][Bizkasse] = dini_Int(Biz,"Bizkasse");
    format(bInfo[bizid][Namme],64,"%s",dini_Get(Biz,"Name"));
    bInfo[bizid][Preis] = dini_Int(Biz,"Preis");
    bInfo[bizid][Besetzt] = dini_Int(Biz,"Besetzt");
    format(bInfo[bizid][Besitzer],64,"%s",dini_Get(Biz,"Besitzer"));
    if(bInfo[bizid][Besetzt] == 0)
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0);
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: Staat\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Preis]);
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0);
    return print("Das Biz wurde erfolgreich geladen");
    }
    if(bInfo[bizid][Besetzt] == 1)
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0);
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: %s\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer]);
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0);
    return print("Das Biz wurde erfolgreich geladen");
    }
    }
    }
    return 1;
    }

    Spoiler anzeigen
    stock CreateBizz(Float:x,Float:y,Float:z,namme[64],besitzer[64],preis)
    {
    new Biz[64];
    for(new b = 1; b < BIZ_FILES; b++)
    {
    format(Biz,64,"/Biz/biz%d.txt",b);
    if(!fexist(Biz))
    {
    dini_Create(Biz);
    dini_FloatSet(Biz,"PosX",x);
    dini_FloatSet(Biz,"PosY",y);
    dini_FloatSet(Biz,"PosZ",z);
    dini_Set(Biz,"Name",namme);
    dini_IntSet(Biz,"Preis",preis);
    dini_IntSet(Biz,"Besetzt",0);
    dini_Set(Biz,"Besitzer",besitzer);
    dini_IntSet(Biz,"Bizkasse",0);
    return LoadBizz(b);
    }
    }
    return 1;
    }

    Spoiler anzeigen
    ocmd:createbiz(playerid,params[])
    {
    new Float:x,Float:y,Float:z,preis;
    new namme[64];
    if(sscanf(params,"s[64]d",namme,preis))return SendClientMessage(playerid,Rot,"Fehler: /createbiz [Name] [Preis]");
    {
    GetPlayerPos(playerid,x,y,z);
    CreateBizz(x,y,z,namme,"Staat",preis);
    }

    Spoiler anzeigen
    return 1;
    }


    Problem 3:
    Wenn ich /hausverkaufen mache , kommt, dass ich kein Haus habe , obwohl ich eins habe ^^
    Wenn ich /bizverkaufen mache , kommt das gleiche wie bei /hausverkaufen !



    ocmd:hausverkaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    new Spieler[50];
    format(Spieler,50,"/Spieler/%s.txt",name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    GivePlayerMoney(playerid,HausInfo[haus][haus_preis]/2);
    new Hausstring[50];
    format(Hausstring,50,"/haus/%d.txt",haus);
    SendClientMessage(playerid,Gelb,"Du hast dein Haus verkauft.");
    dini_Set(Hausstring,"besitzer","Niemand");
    dini_IntSet(Spieler,"Haus",0);
    dini_IntSet(Hausstring,"Besetzt",0);
    KillHaus(haus);
    LoadHaus(haus);
    return true;
    }
    else
    {
    return SendClientMessage(playerid,Rot,"Du hast kein Haus!");
    }
    }
    return 1;
    }


    ocmd:bizverkaufen(playerid,params[])
    {
    new string[256];
    for(new b= 1; b< MAX_BIZ; b++)
    {
    format(string,sizeof(string),"/Biz/biz%d.txt", b);
    if(strcmp(bInfo[b][Besitzer],PlayerName(playerid),false) == 0)
    {
    GivePlayerMoney(playerid,bInfo[b][Preis]/2);
    format(string,64,"/Biz/biz%d.txt",b);
    dini_IntSet(string,"Besetzt",0);
    bInfo[b][Besetzt] = 0;
    dini_Set(string,"Besitzer","Staat");
    SendClientMessage(playerid,0xFFFF00FF,"Du hast das Biz erfolgreich verkauft!");
    KillBizz(b);
    LoadBizz(b);
    return true;
    }
    else
    {
    return SendClientMessage(playerid,Rot,"Du hast kein Biz!");
    }
    }
    return 1;
    }

  • @Aaron Hotchner:


    Eindeutig oder?


  • ocmd:hauskaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,Rot,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Niemand",false))return SendClientMessage(playerid,Rot,"Dieses Haus steht nicht zum Verkauf!");
    // wenn das Haus frei ist dann kaufen:
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]); // Geld abziehen
    new Hausstring[50];
    format(Hausstring,50,"/haus/%d.txt",haus); // Pfad formatieren
    dini_Set(Hausstring,"besitzer",name); // Besitzer überschreiben
    SendClientMessage(playerid,Gelb,"Du hast das Haus erfolgreich gekauft!");
    KillHaus(haus); // Hauspickup löschen
    LoadHaus(haus); // Haus laden
    return 1;
    }
    return SendClientMessage(playerid,Rot,"Du bist in keinem Hauspickup!");
    }
    return 1;
    }

  • #define BIZZ_FILES 5
    #define MAX_HAUS 30
    Das ist doch definitif die deklaration für die Anzahl und nicht für die Nachrichten...
    Facepalm³
    Wenn man keine Ahnung hat lieber Still schweigen...
    Probier das mal:
    break;Das beendet die SChleife also so:
    else
    {
    SendClientMessage(playerid,Rot,"Du bist in keinem Hauspickup!");
    break;
    }


    Dann sollte dein Problem eig gelöst sein ^^
    Mit freundlichen Grüßen
    Sven




    //Edit



    Selfmade_Records

    Du hast zwar die Else if Abfrage erklärt trotzdem wird es x-mal gespammt aufgrund dessen, das die Schleife erst bei der Maximalen Anzahl abbricht ;D


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Danke erstmal für die Hilfe an alle :)


    Habe noch nie mit break; gearbeitet , habe folgende Errors :\


    Code
    C:\Users\xSpeciiaL\Desktop\0.3e RC 6 fix\gamemodes\ScriptV0.1.pwn(5101) : error 024: "break" or "continue" is out of context
    C:\Users\xSpeciiaL\Desktop\0.3e RC 6 fix\gamemodes\ScriptV0.1.pwn(5102) : warning 209: function "LoadBizz" should return a value


    stock LoadBizz(bizid)
    {
    for(new b = 1; b <BIZ_FILES; b++)
    {
    new Biz[64];
    format(Biz,sizeof(Biz),"Biz/biz%d.txt",b);
    if(dini_Exists(Biz))
    {
    bInfo[bizid][PossX] = dini_Float(Biz,"PosX"); //Float X speichern
    bInfo[bizid][PossY] = dini_Float(Biz,"PosY"); //Float Y speichern
    bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ"); //Float Z speichern
    bInfo[bizid][Bizkasse] = dini_Int(Biz,"Bizkasse");
    format(bInfo[bizid][Namme],64,"%s",dini_Get(Biz,"Name"));
    bInfo[bizid][Preis] = dini_Int(Biz,"Preis"); // Preis / kauf kosten speichern
    bInfo[bizid][Besetzt] = dini_Int(Biz,"Besetzt"); // Ob das Bizz besetzt ist
    format(bInfo[bizid][Besitzer],64,"%s",dini_Get(Biz,"Besitzer")); //Besitzername Speichern
    if(bInfo[bizid][Besetzt] == 0) //wenn das Bizz nicht Besetzt ist
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0); //Pickup erstellen


    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: Staat\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Preis]); //Hier wird der string für Den 3DTextLabel geschrieben was alles drin sein soll, wenn das Bizz frei ist
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0); //Hier wird der 3DText erstellt
    return print("Das Biz wurde erfolgreich geladen"); //Das schreibt in die Konsole
    }
    if(bInfo[bizid][Besetzt] == 1) //wenn das Biz besetzt ist
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0); //Pickup erstellen
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: %s\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer]); //Hier wird der string für Den 3DTextLabel geschrieben was alles drin sein soll, wenn das Bizz frei ist
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0); //Hier wird der 3DText erstellt
    return print("Das Biz wurde erfolgreich geladen"); //Das schreibt in die Konsole
    }
    }//wenn die Datei existiert, sonst return 0;
    else
    {
    return 0;
    }
    }
    break;//5101
    return 1;//5102
    }

  • Schreibe es mal so:


    stock LoadBizz(bizid)
    {
    for(new b = 1; b <BIZ_FILES; b++)
    {
    new Biz[64];
    format(Biz,sizeof(Biz),"Biz/biz%d.txt",b);
    if(dini_Exists(Biz))
    {
    bInfo[bizid][PossX] = dini_Float(Biz,"PosX"); //Float X speichern
    bInfo[bizid][PossY] = dini_Float(Biz,"PosY"); //Float Y speichern
    bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ"); //Float Z speichern
    bInfo[bizid][Bizkasse] = dini_Int(Biz,"Bizkasse");
    format(bInfo[bizid][Namme],64,"%s",dini_Get(Biz,"Name"));
    bInfo[bizid][Preis] = dini_Int(Biz,"Preis"); // Preis / kauf kosten speichern
    bInfo[bizid][Besetzt] = dini_Int(Biz,"Besetzt"); // Ob das Bizz besetzt ist
    format(bInfo[bizid][Besitzer],64,"%s",dini_Get(Biz,"Besitzer")); //Besitzername Speichern
    if(bInfo[bizid][Besetzt] == 0) //wenn das Bizz nicht Besetzt ist
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0); //Pickup erstellen


    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: Staat\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Preis]); //Hier wird der string für Den 3DTextLabel geschrieben was alles drin sein soll, wenn das Bizz frei ist
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0); //Hier wird der 3DText erstellt
    print("Das Biz wurde erfolgreich geladen"); //Das schreibt in die Konsole
    }
    if(bInfo[bizid][Besetzt] == 1) //wenn das Biz besetzt ist
    {
    bInfo[bizid][Pickup] = CreatePickup(1238 ,23,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],0); //Pickup erstellen
    new string[196];
    format(string,196,"*[BIZINFO]*\nName: %s\nBesitzer: %s\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer]); //Hier wird der string für Den 3DTextLabel geschrieben was alles drin sein soll, wenn das Bizz frei ist
    bInfo[bizid][Label] = Create3DTextLabel(string,0xFFFF00FF,bInfo[bizid][PossX],bInfo[bizid][PossY],bInfo[bizid][PossZ],20,0,0); //Hier wird der 3DText erstellt
    print("Das Biz wurde erfolgreich geladen"); //Das schreibt in die Konsole
    }
    }//wenn die Datei existiert, sonst return 0;
    else
    {
    return 0;
    }
    }
    return 1;//5102
    }


    Das "break" stoppt nur die Schleife, aber hier benötigst du das ja nicht, da die Schleife ja nicht gestoppt werden soll (am ende wird sie doch schon geschlossen) :rolleyes:


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • ocmd:bizkaufen(playerid,params[])
    {
    new string[256];
    for(new b = 1; b < BIZ_FILES; b++)
    {
    format(string, sizeof(string), "/Biz/biz%d.txt", b);
    if(IsPlayerInRangeOfPoint(playerid,5,bInfo[b][PossX],bInfo[b][PossY],bInfo[b][PossZ]))
    {
    if(bInfo[b][Besetzt] == 0)
    {
    if(strcmp(bInfo[b][Besitzer],PlayerName(playerid),false) == 0)return SendClientMessage(playerid,0xFFFF00FF,"Dieses Biz gehört dir bereits!");
    if(GetPlayerMoney(playerid) >= bInfo[b][Preis]) //Bizz Preis
    GivePlayerMoney(playerid,-bInfo[b][Preis]);
    format(string,64,"/Biz/biz%d.txt",b); //öffnet die Datei
    dini_IntSet(string,"Besetzt",1); //setzt Besetzt auf 1
    bInfo[b][Besetzt] = 1;
    dini_Set(string,"Besitzer",PlayerName(playerid)); //Hier wird der Besitzer name gesetzt
    SendClientMessage(playerid,0xFFFF00FF,"Du hast erfolgreich das Bizz gekauft!");
    KillBizz(b); //stock wird aufgerufen
    LoadBizz(b); //Stock wird aufgerufen
    }
    else
    {
    SendClientMessage(playerid,Rot,"Das Biz steht nicht zum Verkauf!");
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist in keinem Biz-Kaufpunkt.");
    break;
    }
    }
    return 1;
    }
    Sollte so gehn ^^
    Wiso tust du das in LoaedBiz? ;D
    Naja egal.
    Mit freundlichen Grüßen
    Sven






    //Edit Scroll bissl runter:
    http://wiki.sa-mp.com/wiki/Control_Structures
    Da findeste alle Infos zu break; ;D


    Bewerte mich und meine Transaktionen als Mittelsmann

    Einmal editiert, zuletzt von lollipop ()

  • Okay ^^


    Also ist es so richtig ? Muss ich überall break; hinmachen ? :)


    ocmd:hauskaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,Rot,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Niemand",false))return SendClientMessage(playerid,Rot,"Dieses Haus steht nicht zum Verkauf!");
    // wenn das Haus frei ist dann kaufen:
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]); // Geld abziehen
    new Hausstring[50];
    format(Hausstring,50,"/haus/%d.txt",haus); // Pfad formatieren
    dini_Set(Hausstring,"besitzer",name); // Besitzer überschreiben
    SendClientMessage(playerid,Gelb,"Du hast das Haus erfolgreich gekauft!");
    KillHaus(haus); // Hauspickup löschen
    LoadHaus(haus); // Haus laden
    break;
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist in keinem Hauspickup!");
    break;
    }
    }
    return 1;
    }

  • Nein nur da wo die Schleife tatsächlich beendet werden muss.
    Ansonsten ist es unnötig und kann zu Bugs führen ^^
    Lies den Wiki Eintrag dazu dann weist du mehr.
    Ich habe dir genau geschrieben wohin wiso machst du es dann an tausend andere Stellen?


    Mit freundlichen Grüßen
    Sven


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Also wirklich besser macht ihr das nicht.


    Stellt euch vor, wenn jemand an biz / haus 4 geht
    wird ihm nur die Meldung ausgeben, das er nicht an einem Biz ist.


    so sollte das gehen

    Spoiler anzeigen
    ocmd:hauskaufen(playerid,params[])
    {
    new bool:NotAtPoint=false;
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,Rot,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Niemand",false))return SendClientMessage(playerid,Rot,"Dieses Haus steht nicht zum Verkauf!");
    // wenn das Haus frei ist dann kaufen:
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]); // Geld abziehen
    new Hausstring[50];
    format(Hausstring,50,"/haus/%d.txt",haus); // Pfad formatieren
    dini_Set(Hausstring,"besitzer",name); // Besitzer überschreiben
    SendClientMessage(playerid,Gelb,"Du hast das Haus erfolgreich gekauft!");
    KillHaus(haus); // Hauspickup löschen
    LoadHaus(haus); // Haus laden
    //warum breaken? da kommt doch nichts mehr -> return
    return true;
    }
    else NotAtPoint=true;
    }
    if(NotAtPoint) return SendClientMessage(playerid,Rot,"Du bist in keinem Hauspickup!");
    return 1;
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich wollte grade schreiben , dass ich keine Häuser mehr kaufen kann , aber dank BlackAce gehts :*


    Bei dem LoadBizz hab ich das break gemacht , weil wenn ich zB. oben


    #define BIZZ_FILES 5


    habe , und im Biz ordner nur 1 Biz , wird trzdm. 5x geloggt , dass das Biz erfolgreich geladen hat ^^


    Ich editiere oben meinen 2. Fehler rein :)