Totaler Fehler in meinem 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
  • Liebe SA:MP Community,


    ich habe ein Haus System gescriptet, und habe nur Fehler damit.
    Wenn ich versuche ein Haus zu erstellen crasht der Server bei meinem
    Befehl CreateHaus.


    Befehl:
    CreateHaus("Niemand",x,y,z,IntInfo[Slot][___posx],IntInfo[Slot][___posy],IntInfo[Slot][___posz],IntInfo[Slot][_interior],preis);


    Stock:


    stock CreateHaus(Owner[],Float:___X,Float:___Y,Float:___Z,Float:___iX,Float:___iY,Float:___iZ,___Interior,p)
    {
    new ___ID=GetFreeHausID();
    if(___ID==-1) print("Es sind bereits zuviele Häuser erstellt worden | Lösch zu erst eins");
    format(Haus[___ID][Besitzer],MAX_PLAYER_NAME,Owner);
    Haus[___ID][Gekauft]=false;
    Haus[___ID][Abgeschlossen]=true;
    Haus[___ID][___Pos][0]=___X;
    Haus[___ID][___Pos][1]=___Y;
    Haus[___ID][___Pos][2]=___Z;
    Haus[___ID][___Pos][3]=___iX;
    Haus[___ID][___Pos][4]=___iY;
    Haus[___ID][___Pos][5]=___iZ;
    Haus[___ID][Int]=___Interior;
    Haus[___ID][___Preis]=p;
    Haus[___ID][VirtualWorld]=GetFreeInteriorVW(Haus[___ID][Int]);
    Haus[___ID][PickupID] = CreatePickup(1273,1,___X,___Y,___Z);
    for(new i,j=GetMaxPlayers();i!=j;i++) if(IsPlayerConnected(i)) SetPlayerMapIcon(i,STARTMAPICON+___ID,___X,___Y,___Z,31,0xFFFFFFFF);
    new string[55];
    format(string,55,"Dieses Haus steht zum Verkauf\n\nPreis: %d $",Haus[___ID][___Preis]);
    Haus[___ID][Label] = Create3DTextLabel(string,0x33AA33FF,___X,___Y,___Z,100.0,0,1);
    SaveHaus(___ID);
    return 1;
    }


    Mit freundlichen Grüßen,
    Phoenix

  • Done



    stock CreateHaus(Owner[],Float:X,Float:Y,Float:Z,Float:iX,Float:iY,Float:iZ,Interior,p)
    {
    new ID=GetFreeHausID();
    if(ID==-1) print("Es sind bereits zuviele Häuser erstellt worden | Lösch zu erst eins");
    format(Haus[ID][Besitzer],MAX_PLAYER_NAME,Owner);
    Haus[ID][Gekauft]=false;
    Haus[ID][Abgeschlossen]=true;
    Haus[ID][Pos][0]=X;
    Haus[ID][Pos][1]=Y;
    Haus[ID][Pos][2]=Z;
    Haus[ID][Pos][3]=iX;
    Haus[ID][Pos][4]=iY;
    Haus[ID][Pos][5]=iZ;
    Haus[ID][Int]=Interior;
    Haus[ID][Preis]=p;
    Haus[ID][VirtualWorld]=GetFreeInteriorVW(Haus[ID][Int]);
    Haus[ID][PickupID] = CreatePickup(1273,1,X,Y,Z);
    for(new i,j=GetMaxPlayers();i!=j;i++) if(IsPlayerConnected(i)) SetPlayerMapIcon(i,STARTMAPICON+ID,X,Y,Z,31,0xFFFFFFFF);
    new string[55];
    format(string,55,"Dieses Haus steht zum Verkauf\n\nPreis: %d $",Haus[ID][Preis]);
    Haus[ID][Label] = Create3DTextLabel(string,0x33AA33FF,X,Y,Z,100.0,0,1);
    SaveHaus(ID);
    return 1;
    }

  • Okay danke mache ich schnell.



    hier bricht er ab



    stock SaveHaus(hausid)
    {
    new inhalt[64];
    format(inhalt,35,"Hauser/Haus%d.ini",hausid);
    if(!fexist(inhalt)) {
    dini_Create(inhalt);
    SaveHaus(hausid);
    }
    else {
    dini_Set(inhalt,"Besitzer",Haus[hausid][Besitzer]);
    dini_IntSet(inhalt,"Gekauft",Haus[hausid][Gekauft]);
    dini_IntSet(inhalt,"Abgeschlossen",Haus[hausid][Abgeschlossen]);
    dini_FloatSet(inhalt,"AußenPosX",Haus[hausid][___Pos][0]);
    dini_FloatSet(inhalt,"AußenPosY",Haus[hausid][___Pos][1]);
    dini_FloatSet(inhalt,"AußenPoxZ",Haus[hausid][___Pos][2]);
    dini_FloatSet(inhalt,"InnenPosX",Haus[hausid][___Pos][3]);
    dini_FloatSet(inhalt,"InnenPosY",Haus[hausid][___Pos][4]);
    dini_FloatSet(inhalt,"InnenPosZ",Haus[hausid][___Pos][5]);
    dini_IntSet(inhalt,"Interior",Haus[hausid][Int]);
    dini_IntSet(inhalt,"VirtualWorld",Haus[hausid][VirtualWorld]);
    dini_IntSet(inhalt,"Preis",Haus[hausid][___Preis]);
    }
    return true;
    }