Beiträge von Goldkiller

    Hast dir wohl nicht durchgelesen was Ich gepostet habe.


    Zitat

    Update3DTextLabelText(Siloa[0],Gelb,string); // Falscher 3DText.Variable Siloa weiss welcher 3DText
    Update3DTextLabelText(Siloa[1],Gelb,string); // Hier ebenfalls ändern


    Beim GMX reicht meistens völlig aus.Kannst es aber zwischendurch mal alle 10min speichern lassen ( für den Fall der Server crasht mal ). Ist aber eigentlich nicht nötig.

    Schon mal ein guter Anfang.
    public SaveSilo()
    {
    format(string,sizeof(string),"/Daten/Silo.ini");
    if(fexist(string))
    {
    dini_IntSet(string,"Volumen",SiloInfo[Volumen]); // Volumen,nicht Silo ! Silo ist das enum,Volumen der Eintrag!
    }
    Delete3DTextLabel(Siloa[0]);
    Delete3DTextLabel(Siloa[1]);
    return 1;
    }


    public LoadSilo()
    {
    format(string,sizeof(string),"/Daten/Silo.ini");
    if(!fexist(string))
    {
    dini_Create(string);
    // Einserseits ist hier SiloInfo[Silo] falsch,
    // Andererseits macht es keinen Sinn.Denn du setzt so das Volumen in der
    // Datei höchstwahrscheinlich auf 0 ( Außer die gibst vorher irgendwo n Volumen an )
    dini_Set(string,"Volumen", 100 );
    return 1;
    }
    if(fexist(string))
    {
    SiloInfo[Volumen] = dini_Int(string,"Volumen"); // Volumen,nicht Silo ! Silo ist das enum,Volumen der Eintrag!
    format(string,sizeof(string),"Silo: %d",SiloInfo[Volumen]); // Hier ebenfalls
    Siloa[0] = Create3DTextLabel(string,Gelb,-53.0389,112.1127,3.1172,20.0,0,1);
    Siloa[1] = Create3DTextLabel(string,Gelb,-63.6561,115.7869,3.1172,20.0,0,1);
    }
    return 1;
    }


    public UpdaSilo()
    {
    format(string,sizeof(string),"Silo: %d",SiloInfo[Volumen]); // Auch Volumen,nicht Silo
    Update3DTextLabelText(Siloa[0],Gelb,string); // Falscher 3DText.Variable Siloa weiss welcher 3DText
    Update3DTextLabelText(Siloa[1],Gelb,string); // Hier ebenfalls ändern
    return 1;
    }


    SiloInfo[Volumen] += 100; // hier muss auch Volumen

    Zitat

    Was genau schaffst du denn nicht? Das auslesen aus der Datei ? DINI Tutorial


    Das müsstest du trotzdem doch noch beantworten.
    Schau dir den Link an,da siehst du,wie du DINI anwendest und in eine Datei schreibst bzw ausließt.


    Hast du denn schon irgendeine Idee wie du anfangen müsstest, nur für das auslesen bzw schreiben in eine Datei ?
    Bei OnGameModeInit auslesen,
    Bei OnGameModeExit in Datei schreiben
    Wenn das Volumen geändert wird, in Datei schreiben.


    Zu dem 3DText.
    Du musst natürlich erst das Label erstellen.Natürlich eine Variable dafür erstellen.
    Sobald dann irgendwann in deinem Script das Volumen geändert wird, eine neuen Text zuweisen. Ist doch relativ leicht.

    Grundlagen lernen :-O.
    Du musst daraus 1 Befehl machen und lediglich die IsPlayerInRangeOfPoint Abfrage umstrukturieren.


    if(strcmp(cmdtext,"/tor",true, 4) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,-473.49847412,-562.86224365,27.20217705))
    {
    MoveObject(gate0001,-473.49847412,-562.86224365,27.20217705,3.5);
    MoveObject(gate0002,-505.06875610,-562.84497070,27.20217705,3.5);
    SendClientMessage(playerid,COLOR_LIGHTRED,"Das Tor schließt sich in 5Sekunden");
    SetTimer("adac",5000,0);
    }
    else if(IsPlayerInRangeOfPoint(playerid,15.0,-75.49017334,-348.75772095,-11.87163639))
    {
    MoveObject(gate0003,-75.49017334,-348.75772095,-11.87163639,3.5);
    MoveObject(gate0004,-75.54593658,-357.52719116,-11.87163639,3.5);
    SendClientMessage(playerid,COLOR_LIGHTRED,"Das Tor schließt sich in 5Sekunden");
    SetTimer("taxi",5000,0);
    }
    return 1;
    }

    Du hast nichts umformuliert.War doch nur n Push jetzt.


    Du kannst es entweder über die RAW File Funktionen auslesen oder über DINI usw probieren.
    Was genau schaffst du denn nicht? Das auslesen aus der Datei ? DINI Tutorial

    Man sollte aufpassen mit return - Statements in Schleifen,Steam.



    if(health < 350.0) {
    SendClientMessage(playerid, 0xFF00FF00, "Dein Motor ist beschädigt, rufe bitte den ADAC!");
    RemovePlayerFromVehicle(playerid); //...spieler rauswerfen
    }

    Man könnte aber noch mehr an dem Code verbessern.


    Damit es aber funktioniert,ist folgendes noch wichtig.
    SetTimer("VehHealth", 1000, 1); // 1 statt 0 ... repeat

    Die Zahl die du vorne hattest ist relativ unnötig,da es sowieso der Index des Eintrages war.


    Hab übersehen das bei dir die Formatierung noch etwas falsch war.
    %i ist der Platzhalter für Zahlen ( Ganze Zahlen ) , %s für Strings bzw Texte.
    format(textstring, sizeof(textstring), "Team: %s",Teamname[GetPlayerTeam(playerid)]);

    Dafür könntest du ein enum benutzten.
    Wozu ist denn die
    new Teamname[] = {
    {0,"GroveStreet"}, // <-hier ist die Zeile wo der Error ist
    {1,"Ballas"},
    {2,"Vagos"},
    {3,"Cops"},
    };

    0,1,2,3 gut bei dem Array ?
    Sonst könntest du nämlich sowas erstellen:
    new Teamname[][] = {
    {"GroveStreet"}, // <-hier ist die Zeile wo der Error ist
    {"Ballas"},
    {"Vagos"},
    {"Cops"}
    };
    Ein String ist ein Array.Wollen wir also ein Array von String bzw ein Array von Array müssten wir es auch als 2Dimensionales Array kennzeichen.


    //Edit: Fix.

    Möglich das du noch mehr Fehler hast,aber nicht in dem von dir gezeigten Code.


    Dadurch das der String falsch formatiert war,konnte schon die Userdatei nie angelegt werden und somit auch nie der Eintrag Passwort gespeichert werden.


    Du formatierst den String Spielerdatei auch falsch.


    format(Spielerdatei,sizeof(Spielerdatei),"/ACCS/%s.txt",name);