Haussystem erstellen aber wie?

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 Com,


    Wie mache ich das, das ich mit einem Enum maximal 250 Bizzes erstellen kann?


    Das hab ich bereits

    //oben
    #define MaxHaus 250


    enum hausdaten
    {
    Owner
    }
    new PlayerHaus[MaxHaus][hausdaten];



    So wie speicher ich das jetzt in die Datei das auch echt 250 Häuser erstellt werden können ich kapier das nicht ich seh da nur raus das man mit nem Enum >>1<< Haus erstellen kann?


    Hoffe auf hilfe?


    Mfg

  • Beim erstellen später leist du aus ob das Haus schon vorhanden ist... sprich:


    if(!fexist(Datei)) Das heißt ob die Datei bereits existiert, anders gesagt ! frägt ob es NICHT existiert


    Gib dem Haus einfach einen namen sprich /hausestellen [Level][Preis][Name]


    Name später für die ini...


    Den namen setzt du dann einfach auf die ini und schon fertig...


    Später liest du alles aus beim laden sprich:
    format(Datei,sizeof(Datei),"/Haus/%d.ini",i);
    Es ist einfach das ganze mit zahlen zu machen...


    format(HausInfo[i][Owner],MAX_PLAYER_NAME,"%s",dini_Get(Datei,"Hausbesitzer"));so liest du den owner z.B raus ;)


    Speichern so:


    dini_Set(Datei,"Hausbesitzer",HausInfo[id][Owner]);



  • Ich kapier das nicht so ganz weil du das nurso halb gemacht hast?


    Kannst du mal mit allen Parametern nochmal machen?


    Mfg

  • dcmd_hauserstellen(playerid,params[])
    {
    new Hausedit,Level,Float:x,Float:y,Float:z,Preis;// Hier setzt du einfach die Floats sprich x,y,z
    if(sscanf(params,"dd",Preis,Level))// Zum erstellen brauchst du ja den Preis und das LEvel
    {
    SendClientMessage(playerid,COLOR_WHITE,"Benutze: /hauserstellen Preis Level");
    }
    else
    {
    if(PlayerInfo[playerid][pAdmin] >= 2009)// Admin Abfrage
    {
    if(GetPlayerInterior(playerid) == 0 && GetPlayerVirtualWorld(playerid) == 0)// Ob der ersteller die Virtuelle Welt auf 0 hat und das Interior auch
    {
    for(new i = 1;i < MAX_HAUS; i++)// Eine schleife durch alle häuser
    {
    format(Datei,sizeof(Datei),"/Haus/%d.ini",i);// Schaut im Ordner
    if(!fexist(Datei))// frägt hab ob die Datei NICHT existiert
    {
    Hausedit = i;// Das erstellet das nachher alles
    GetPlayerPos(playerid,x,y,z);// Hier soll nachher alles sein
    format(HausInfo[Hausedit][Hausbesitzer],MAX_PLAYER_NAME,"GUR Staat");// setzt den namen
    HausInfo[Hausedit][hausid] = Hausedit;// Setzt die hausid, also von der ini
    HausInfo[Hausedit][Hauspreis] = Preis; // Preis setzen
    HausInfo[Hausedit][hausx] = x;//x
    HausInfo[Hausedit][hausy] = y;//y
    HausInfo[Hausedit][hausz] = z;//z
    HausInfo[Hausedit][Hauslevel] = Level;//level
    HausInfo[Hausedit][hauspickup] = CreatePickup(1273,1,HausInfo[Hausedit][hausx],HausInfo[Hausedit][hausy],HausInfo[Hausedit][hausz],0);//Erstellt ein Pickup
    HausInfo[Hausedit][hauslabel] = Create3DTextLabel("WIRD GRAD ERSTELLT",COLOR_YELLOW,HausInfo[Hausedit][hausx],HausInfo[Hausedit][hausy],HausInfo[Hausedit][hausz]+0.2,20.0,0,0);//Erstellt ein 3dText
    Hausspeichern(Hausedit);//Speichert das ganze
    Hausladen(Hausedit);//läd alles erneut
    SendClientMessage(playerid,COLOR_RED,str);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast ein Haus erstellt");
    return 1;
    }
    else
    {
    }
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Hier kannst du kein Haus erstellen");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du kannst kein Haus erstellen!");
    }
    }
    return 1;
    }


    Das ist jetzt meins

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen