Beiträge von Rakon

    So ist es richtig:



    stock IstSpielerInFraktion(playerid, fraktionsid)
    {
    if(SpielerDaten[playerid][Fraktion] == fraktionsid) return 1;
    return 0;
    }

    Warum benutzt du dini_Get wenn das Integer sind ?


    Änder es so um:

    SetPlayerScore(playerid,dini_Int(Spieler,"Level");
    SpielerDaten[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    SpielerDaten[playerid][Level] = dini_Int(Spieler,"Level");
    SpielerDaten[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    SpielerDaten[playerid][Geld] = dini_Int(Spieler,"Geld");


    Übrigens ist der stock SpielerReset auch falsch, weil du den Vergleichsoperator "==" benutzt obwohl du dort einen Wert zugeweist, also wäre "=" richtig.

    Wäre so richtig:



    SpielerInfo[playerid][PosX] = dini_Float(data,"PosX");
    SpielerInfo[playerid][PosY] = dini_Float(data,"PosY");
    SpielerInfo[playerid][PosZ] = dini_Float(data,"PosZ");
    SpielerInfo[playerid][PosR] = dini_Float(data,"PosR");


    Mit FloatSet speicherst du den Float ab und als dritter Parameter wäre dann der Float.


    Also beim abspeichern wäre es so:

    dini_FloatSet(data,"PosX",SpielerInfo[playerid][PosX]);
    dini_FloatSet(data,"PosY",SpielerInfo[playerid][PosY]);
    dini_FloatSet(data,"PosZ",SpielerInfo[playerid][PosZ] );
    dini_FloatSet(data,"PosR",SpielerInfo[playerid][PosR]);

    Ich habs dir mal verbessert.
    Versuch es so :



    for(new i=0;i<MAX_VEHICLES;i++)
    {
    new save[28];
    format(Vehicle[i][vBesitzer],MAX_PLAYER_NAME,dini_Get(save,"vBesitzer"));
    format(save,sizeof(save),"/Fahrzeuge/%s.ini",Vehicle[i][vBesitzer]);
    printf("Debug: Save enthält: %s",save);
    Vehicle[i][vModel] = dini_Int(save,"vModel");
    Vehicle[i][vX] = dini_Float(save,"vX");
    Vehicle[i][vY] = dini_Float(save,"vY");
    Vehicle[i][vZ] = dini_Float(save,"vZ");
    Vehicle[i][vA] = dini_Float(save,"vA");
    Vehicle[i][vColor1] = dini_Int(save,"vColor1");
    Vehicle[i][vColor2] = dini_Int(save,"vColor2");
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,0,lights,alarm,doors,bonnet,boot,objective);
    MotorAn[i] = 0;
    if(dini_Exists(save))
    {
    CreateVehicle(Vehicle[i][vModel],Vehicle[i][vX],Vehicle[i][vY],Vehicle[i][vZ],Vehicle[i][vA],Vehicle[i][vColor1],Vehicle[i][vColor2],-1);
    }
    }

    //Edit
    Damit wäre zwar der Error weg, aber die Fahrzeuge könnten so nicht geladen werden, weil du die Fahrzeuge als BESITZER.ini abspeicherst und in deiner Schleife zuerst den Besitzer des Fahrzeugs in die Variable setzt bevor du den Pfad zur Datei festlegst. Das kann ja so garnicht funktionieren.
    Mach am besten eine Abfrage, wenn der der Spieler connected bzw. sich einlogt und überprüfe ob eine Fahrzeugdatei zum jeweiligen Spielernamen exisitert.
    Falls ja kannst du das Fahrzeug dann erstellen.

    Klammerfehler



    format(string,sizeof(string),"Name: %s\nLevel: %d\nBargeld: %i\n",name,GetPlayerScore(playerid),GetPlayerMoney(playerid));


    //Edit


    Hab dir noch ein paar Sachen in deinem format verbessert.
    GetPlayerMoney gibt einen Integer zurück, also kein %s sondern %i und beim Namen willst du ja sicherlich den Spielernamen und nicht die playerid ausgeben.