loadzones() geht nicht.helft doch bitte

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
  • Guten,


    also ich habe das Gangfight system von FoL-Community und habe es auch schon erweitert und nun komme ich zum letzten Scritt:
    Gebietsowner .. speichern/laden.
    hab das so gemacht:

    LoadZones()
    {
    for(new zid=0; zid<sizeof(Gebiete);zid++) //Damit es wirder für alle Bizzes ausgeführt wird.
    {
    new ZoneData[126];
    format(ZoneData, sizeof(ZoneData), "/Zones/ZoneInfo%d.ini", zid);
    if(dini_Exists(ZoneData))
    {
    Gebiete[zid][gOwner]= dini_Int(ZoneData,"Owner");
    Gebiete[zid][gOn]= dini_Int(ZoneData,"On");
    Gebiete[zid][gStand1]= dini_Int(ZoneData,"Stand1");
    Gebiete[zid][gStand2]= dini_Int(ZoneData,"Stand2");
    Gebiete[zid][gAngreifer]= dini_Int(ZoneData,"Angreifer");
    Gebiete[zid][gMinX]= dini_Float(ZoneData,"MinX");
    Gebiete[zid][gMinY]= dini_Float(ZoneData,"MinY");
    Gebiete[zid][gMaxX]= dini_Float(ZoneData,"MaxX");
    Gebiete[zid][gMaxY]= dini_Float(ZoneData,"MaxY");


    }
    else
    {


    dini_Create("/Zones/Zone%d.ini",zid);
    dini_IntSet(ZoneData,"Owner",Gebiete[zid][gOwner]);
    dini_IntSet(ZoneData,"Gwon",Gebiete[zid][gOn]);
    dini_IntSet(ZoneData,"Stand1",Gebiete[zid][gStand1]);
    dini_IntSet(ZoneData,"Stand2",Gebiete[zid][gStand2]);
    dini_IntSet(ZoneData,"Angreifer",Gebiete[zid][gAngreifer]);
    dini_FloatSet(ZoneData, "MinX",Gebiete[zid][gMinX]);
    dini_FloatSet(ZoneData, "MinY",Gebiete[zid][gMinY]);
    dini_FloatSet(ZoneData, "MaxX",Gebiete[zid][gMaxX]);
    dini_FloatSet(ZoneData, "MaxY",Gebiete[zid][gMaxY]);


    }
    }


    }


    Server gestartet er hat die Dateien erstellt.Erst ohne coords... dann mit allem drum und dran.


    ABER.Jezt kommts.Wenn ich das drin hatte, und den Server startete gings nur bis zu conected.joining the game.
    Weiter gings nicht mehr.
    Ohne Die FUnktion gehts.


    Sache 2:


    habe ein Problem mit dem newstate.
    meine codes:

    new carid = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid) == PoliceCar(carid))
    {
    if(GetPVarInt(playerid,"Fraktion")!=1 && GetPVarInt(playerid,"Fraktion")!=3)
    {
    SendClientMessage(playerid,BLAU,"Du bist kein Beamter der Bundespolizei!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }



    public PoliceCar(carid)
    {
    for(new i = 0; i < sizeof(Police); i++)
    {
    if(carid == Police[i])
    {
    return 1;
    }
    }
    return 1;
    }




    Wäre richtg geil wenn ihr mir bei beidem hilft.

  • dini_Int(ZoneData,"Owner");


    Ein Spielername/Teamname ist kein Integer ;)


    dini_IntSet(ZoneData,"Owner",Gebiete[zid][gOwner]);


    Immernoch nicht o,o



    ==>


    dini_Set(ZoneData,"Owner",Gebiete[zid][gOwner]);
    format(Gebiete[zid][gOwner], MAX_PLAYER_NAME, dini_Get(ZoneData,"Owner"));

  • evil er muss mit strings arbeiten und wenn ich mich richtig erinnere iss das doch Dini_IntString oder?!?^^

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • okay^^ naja hab nie mir dini gearbeitet^^ nur mysql und standart GF^^ (mysql iss aber auch besser und übersichtlicher;))

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • also ich prbiers gleich mal aus
    aber ich habe was andres ich hab 2 codeschnipsel einer geht einer nicht.


    das hier geht
    #define MAX_ZONES 3
    enum gebiet
    {
    gOwner,
    Float:gMinX,
    Float:gMinY,
    Float:gMaxX,
    Float:gMaxY,
    gOn,
    gStand1,
    gStand2,
    gAngreifer
    };
    new Gebiete[MAX_ZONES][gebiet] = {
    {11,839.5802, -2084.531, 889.0171, -1835.824,0,0,0,0},//steg
    {11,-256.9133, -1669.936, 11.67788, -1284.566,0,0,0,0},//campingplatz
    {11,2751.377, 850.4955, 2868.522, 1024.558,0,0,0,0}//LV
    };
    new Gebiet[3];




    das hier geht nicht
    #define MAX_ZONES 3
    enum gebiet
    {
    gOwner,
    Float:gMinX,
    Float:gMinY,
    Float:gMaxX,
    Float:gMaxY,
    gOn,
    gStand1,
    gStand2,
    gAngreifer
    };
    new Gebiete[MAX_ZONES][gebiet] = {
    {11,853.5248,-1828.0316,820.3350,-2067.3728,0,0,0,0},//steg
    {11,-89.0794,-1615.4398, -74.1145,-1530.1107,0,0,0,0},//campingplatz
    {11,1742.1830,-2324.2917,1566.4827,-2237.4932,0,0,0,0}//LV
    };
    new Gebiet[3];


    bei dem das nicht geht werden aber die zonen angezeigt-.-
    Bitte helft mir

  • Also jetzt geb ich mal mein Senf dazu :P
    Owner ist ein Integer hauptsache erstmal behaupten das es so ist aber sich nicht das tut angucken dann sieht man mal wieder was hier für kinder sind aber naja.


    b2t: Wo rufst du die Funktion auf?



    //edit: Sache2: Schreib dein Code am besten unter OnPlayerEnterVehicle

  • müsste das net so heißen
    new Gebiet[][9];


    new Gebiet[ANZAHL DER GEBIET][ANZAHL DER FLOATS,INTEGER];

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • dei bei ongamemodeinit


    und wenn schon mal der meister da ist , helf mir bitte dabei ^^


    also Fol-...

  • kommt drauf an ob owner ein integer ist kann auch eine string sein ;) die frage ist wie er es abspeichert/abfrägt^^


    /edit wegen oben jetz erst gesehen das er das mit gebiete gemacht hat^^


    aber gebiet kannste löschen und mach es so


    new Gebiete[][9] = {

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • müsste das net so heißen
    new Gebiet[][9];


    new Gebiet[ANZAHL DER GEBIET][ANZAHL DER FLOATS,INTEGER];


    Wenn man keine Ahnug hat Mund zu!


    ehmm @Threadstarter: Änder mal
    new Gebiete[MAX_ZONES][gebiet] = {
    {11,839.5802, -2084.531, 889.0171, -1835.824,0,0,0,0},//steg
    {11,-256.9133, -1669.936, 11.67788, -1284.566,0,0,0,0},//campingplatz
    {11,2751.377, 850.4955, 2868.522, 1024.558,0,0,0,0}//LV
    };

    zu
    new Gebiete[MAX_ZONES][gebiet]


    Nun jetzt musst du die Gebiete in der .ini erstellen genau so wie sie hier waren, außer du speicherst/läds diese in einer anderen Reihenfolge

  • okay er machts via enum okayyy bin ja schon still bin grad nur nebenbei am lesen gewesen :D

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • okay er machts via enum okayyy bin ja schon still bin grad nur nebenbei am lesen gewesen :D


    Genau deswegen meinte ich es mit kindern hauptsache alles besser wissen;)

  • Hä wie soll ich das denn machen ?
    Stehe grad ein bischen aufm Schlauch^^


    //EDIT also ich soll die zonen nicht im script definieren und soll savezones loadzones machen aber wo trage ich dann die coords ein für die Zonen weil es wird mit loadzones ja ne zone erstellt im moment nur wenn die oben defined ist und sonst erstellt sie ja keine.
    erklär ma pls

    Einmal editiert, zuletzt von _(LittleYoda)_ ()

  • Also du hast oben im Script
    new Gebiete[MAX_ZONES][gebiet] = {
    {11,839.5802, -2084.531, 889.0171, -1835.824,0,0,0,0},//steg
    {11,-256.9133, -1669.936, 11.67788, -1284.566,0,0,0,0},//campingplatz
    {11,2751.377, 850.4955, 2868.522, 1024.558,0,0,0,0}//LV
    };
    das musst du zu
    new Gebiete[MAX_ZONES][gebiet]


    Ändern, dann gehst du in Scriptfiles/Zones
    erstellst eine .ini mit dem Namen ZoneInfo0.ini
    da shcreibst du dann deine Sachen so rein wie
    11,839.5802, -2084.531, 889.0171, -1835.824,0,0,0,0
    nur halt an Dini angepasst.


    Und für weitere Zone einfach
    ZoneInfo1.ini
    ZoneInfo2.ini
    usw

  • Ok danke sehr gut und was ist nun mit dem loadzones was war da falsch das der server nicht weiter ging als connected.joining the game



    LoadZones()
    {
    for(new zid=0; zid<sizeof(Gebiete);zid++) //Damit es wirder für alle Bizzes ausgeführt wird.
    {
    new ZoneData[126];
    format(ZoneData, sizeof(ZoneData), "/Zones/ZoneInfo%d.ini", zid);
    if(dini_Exists(ZoneData))
    {
    Gebiete[zid][gOwner]= dini_Int(ZoneData,"Owner");
    Gebiete[zid][gOn]= dini_Int(ZoneData,"On");
    Gebiete[zid][gStand1]= dini_Int(ZoneData,"Stand1");
    Gebiete[zid][gStand2]= dini_Int(ZoneData,"Stand2");
    Gebiete[zid][gAngreifer]= dini_Int(ZoneData,"Angreifer");
    Gebiete[zid][gMinX]= dini_Float(ZoneData,"MinX");
    Gebiete[zid][gMinY]= dini_Float(ZoneData,"MinY");
    Gebiete[zid][gMaxX]= dini_Float(ZoneData,"MaxX");
    Gebiete[zid][gMaxY]= dini_Float(ZoneData,"MaxY");


    }
    else
    {


    dini_Create("/Zones/Zone%d.ini",zid);
    dini_IntSet(ZoneData,"Owner",Gebiete[zid][gOwner]);
    dini_IntSet(ZoneData,"Gwon",Gebiete[zid][gOn]);
    dini_IntSet(ZoneData,"Stand1",Gebiete[zid][gStand1]);
    dini_IntSet(ZoneData,"Stand2",Gebiete[zid][gStand2]);
    dini_IntSet(ZoneData,"Angreifer",Gebiete[zid][gAngreifer]);
    dini_FloatSet(ZoneData, "MinX",Gebiete[zid][gMinX]);
    dini_FloatSet(ZoneData, "MinY",Gebiete[zid][gMinY]);
    dini_FloatSet(ZoneData, "MaxX",Gebiete[zid][gMaxX]);
    dini_FloatSet(ZoneData, "MaxY",Gebiete[zid][gMaxY]);


    }
    }


    }