Abfrage die durch alle dini Dateien geht?

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
  • mach ne for schleife mit den Bizzez


    mal nen BSP
    for(new i; i < MAX_BIZZE; i++)


    und in der i schleife öffnest/schließt du deine dini sachen

  • Das mit der Schleife ist mir klar , nur ich weiß nicht wie ich die dini dateien öffne!


    Ich muss ja


    format(Biz,sizeof(Biz),"/Biz/%s.txt",name);//Bei Name weiß ichs ja nicht!


    Und das Script soll halt automatisch den Namen rausfinden , damit der Spieler auch das richtige Biz kauft!

  • Du legst die Dateien im folgenden Schema an:
    biz0.txt
    biz1.txt
    biz2.txt
    ..


    Dann:



    for (var i = 0; i < BIZ_FILES; i++)
    {
    var string[256];


    format(string, sizeof(string), "/Biz/biz%d.txt", i);
    }


    Und schon hast du den Dateinamen.


    #Brotfischbaron


    In schā'a llāh

  • So , neues Problem ^^


    Also , wenn ich /createbiz [Name] [Preis] mache , wird das biz erstellt und geladen.
    In dem Scriptfiles ordner steht auch die Datei Biz1.txt.
    Doch wenn ich dann nochmal /createbiz mache , passiert rein garnichts.
    Es wird also keine neue Datei namens Biz2.txt erstellt.
    Wenn ich nun Biz1.txt lösche , kann ich ingame wieder ein neues biz erstellen !


    Code:



    stock LoadBizz(bizid)
    {
    new Biz[64];
    format(Biz,sizeof(Biz),"Biz/biz%d.txt",bizid);
    if(dini_Exists(Biz))
    {
    bInfo[bizid][PossX] = dini_Float(Biz,"PosX");
    bInfo[bizid][PossY] = dini_Float(Biz,"PosY");
    bInfo[bizid][PossZ] = dini_Float(Biz,"PosZ");
    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\nPreis: %i\n***",bInfo[bizid][Namme],bInfo[bizid][Besitzer],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");
    }
    }


    else
    {
    return 0;
    }
    return 1;
    }


    stock CreateBizz(Float:x,Float:y,Float:z,namme[64],besitzer[64],preis)
    {
    new Biz[64];
    //new name[26],
    // preis;
    //new Float:X,Float:Y,Float:Z;
    for(new b = 1; b <BIZ_FILES; b++)
    {
    format(Biz,64,"/Biz/biz%d.txt",b);
    if(!dini_Exists(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);
    return LoadBizz(b);
    }
    else
    {
    return 0;
    }
    }
    return 1;
    }


    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);
    }


    return 1;
    }