Haus system

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
  • Hi


    Habe ein haus system wo ich häuser ingame erstelle.
    Ich kann aber nur eins richtig erstellen bei den darauf folgenden fehlt das Textdraw etc. (werden aber richtig gespeichert)



    ocmd:hauserstellen(playerid,params[])
    {
    new Hausid;
    new Preis;
    new Level;
    new string[128];
    if(sscanf(params,"iii",Hausid,Preis,Level))
    {
    SendClientMessage(playerid,COLOR_WHITE,"Benutze: /hauserstellen Hausid Preis Level");
    }
    else if(SpielerInfo[playerid][Adminlevel] < 7)
    {
    SendClientMessage(playerid,COLOR_WHITE,"Den Befehl /hauserstellen scheint es nicht zu geben.");
    }
    else
    {
    if(GetPlayerInterior(playerid) == 0)
    {
    if(Level > 0)
    {
    if(Preis > 0)
    {
    if(Hausid >= 0)
    {
    new Float:yx,Float:yy,Float:yz;
    GetPlayerPos(playerid,yx,yy,yz);
    new ZoneDatei[64];
    format(ZoneDatei,sizeof(ZoneDatei),"/Haus/%d.txt",Hausid);
    if(!fexist(ZoneDatei))
    {
    dini_Create(ZoneDatei);
    dini_FloatSet(ZoneDatei,"Hausx",yx);
    dini_FloatSet(ZoneDatei,"Hausy",yy);
    dini_FloatSet(ZoneDatei,"Hausz",yz);
    dini_IntSet(ZoneDatei,"Innenraum",0);
    dini_IntSet(ZoneDatei,"Preis",Preis);
    dini_IntSet(ZoneDatei,"Level",Level);
    dini_IntSet(ZoneDatei,"gekauft",0);
    dini_IntSet(ZoneDatei,"Mieter",0);
    dini_Set(ZoneDatei,"Besitzer","Keiner");
    format(string,sizeof(string),"Das Haus %d wurde gespeichert.",Hausid);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    HausInfo[Hausid][haus_pickup] = AddStaticPickup(1273,1,yx,yy,yz);
    Hausladen();
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Es gibt bereits ein Haus mit dieser ID.");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Die Hausid muss mindestens 0 betragen.");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Mindestpreis muss 1$ betragen.");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Mindestlevel muss 1 betragen.");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"Hier kannst du kein Haus erstellen.");
    }
    return 1;
    }
    return 1;
    }



    MfG

    [tabmenu]
    [tab='Signatur']



    [tab='In Breadfish seit']
    21. September 2011
    Fortgeschrittener seit 11.4.12 um 03:12


    http://breadfish.de/

  • Nun gut, du musst natürlich für jedes Haus deine Daten verschieden speichern, vielleicht wird dir follgendes helfen:



    #define MAX_HAEUSER 100


    enum eHaus
    {
    Float:HausX,
    Float:HausY,
    Float:HausZ,
    HausPreis
    /* ... */
    }


    new HausInfo[MAX_HAEUSER][eHaus];


    Dein Script ist zum derzeitigen Zeitpunkt recht kompliziert und unübersichtlich geschrieben, versuche dies zu verbessern.