Beiträge von BlackFoX

    Was ich Lustig finde... das sich die Leute immer auf Sachen konzentrieren die aber in der Art nichts mit der Basis zu tun hat sprich Tore, schön & gut aber
    um das zu können muss man wissen was Rückgabe Werte sind & wie man sie verwendet, auch abfragen oder Schleifen wenn nötig sind wichtig zudem sollte
    man etwas Englisch beherrschen denn das ist das wichtigste, irgendwo muss man die Sachen auch verstehen & wissen was der Begriff einen sagt

    Abfrage kannst du auch nochmal verkürzen


    if(!Spieler[playerid][hat_skin])AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);


    Nein Foxhound da beim entladen wieder alle Daten über den Wagen verloren gehen, da beim Laden nur alle Standard angaben geladen werden

    Schon mal das Test Skript geladen sprich das FS ? dort sieht man wie man ihn Installiert & einrichtet ,hab sogar ne Dokumentation für meinen Streamer geschrieben falls nötig

    vllt hast du den Falschen Editor aufgemacht sprich du hast 2x die Pawn IDE drauf & du hast die Falsche Offen bzw. der Dateityp .pwn ist noch mit dem alten Editor der 0.2x oder ähnliches verknüpft

    Ich Tippe in diesem Fall einfach auf Leute die sich Script Kids nennen & versuchen jemanden das Bein zu stellen,
    wenn es anders wäre hätte es wohl noch mehr Probleme gegeben als nur Flood Attacken dafür findet man ja wohl überall Werke

    Musst es schon Richtig erklären, das sieht mir einfach nur eben rauskopiert aus :thumbdown:
    Warum, Wie ,Was, Wo ? Muss alles erklärt werden sonst blickt das keiner & du kannst das Tutorial gleich in die Tonne schmeißen


    p.s. nicht böse gemeint

    getDriverID(vehicleid)
    {
    new pointer;
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i) || GetPlayerVehicleID(i)!=vehicleid)continue;
    if(GetPlayerVehicleSeat(i)>0)continue;
    pointer = i;
    break;
    }
    return pointer;
    }
    (Habs nochmal verbessert )


    Sowas ?

    Hallo Leute,


    ich hab wieder Langeweile gehabt da hab ich mir gedacht ich bau eine Hilfsdatei die sich Speziell auf
    das Speichern & verändern der Fahrzeuge bezieht sprich ein vereinfachung damit andere Leute sich leichter ein
    Kleines Fahrzeug System erstellen können es verfügt über folgende Funktionen


    INFO: Das System arbeitet über Cache System also keine unnötigen Zugriffe auf die Datei sondern Direkt im Skript,
    es werden keine externen Speicher Methoden genutzt also eine Rohe Datei.


    createFlagVehicle(fmodel,Float:fx,Float:fy,Float:fz,Float:fa,fowner[],fteam,fcolor0 = -1,fcolor1 = -1,price = 0,fpaint = 0,flocked = 0);

    • Erstellt ein Fahrzeug, muss aber einmalig angewandt werden so dass das Fahrzeug in die Cache geschrieben wird


    killFlagVehicle(vehicleid);

    • Löscht ein Fahrzeug aus der Cache sprich wenn die Fahrzeug ID eines der Speziellen Fahrzeuge ist


    isVehicleLocked(vehicleid);

    • Fragt ab ob das Fahrzeug verschlossen ist


    setVehicleLock(vehicleid,lock);

    • Setzt den Status Verschlossen/nicht Verschlossen ( 1/0 )


    getVehicleColors(vehicleid,color0,color1);

    • Gibt die Fahrzeugfarben in die angegebenen Variablen wieder


    setVehicleColors(vehicleid,color0,color1);

    • Setzt die Fahrzeug Farben in der Cache nicht Visuell


    getVehiclePaint(vehicleid);

    • Gibt die Lackierung wieder


    setVehiclePaint(vehicleid,paintjob);

    • Setzt die Lackierung in der Cache nicht Visuell


    setVehicleOwner(vehicleid,const nname[]);

    • Legt den Besitzer fest


    getVehicleOwner(vehicleid);

    • Gibt den Besitzer zurück


    setVehicleTeam(vehicleid,teamnum)

    • Setzt das Team


    getVehicleTeam(vehicleid);

    • Gibt das Team wieder in Form einer Nummer


    setVehiclePosition(vehicleid,Float:achseX,Float:achseY,Float:achseZ,Float:achseA);

    • Setzt die Park Position in der Cache


    getVehiclePosition(vehicleid,&Float:achseX,&Float:achseY,&Float:achseZ,&Float:achseA);

    • Gibt die Park Position aus der Cache wieder


    getVehicleFlagID(vehicleid);

    • Gibt die Virtuelle ID wieder sprich nicht die echte sondern den Cache Slot


    isFlagVehicle(vehicleid);

    • Fragt ab ob es ein Spezielles Fahrzeug ist


    doLoadVehicles(const byfile[]);

    • Lädt Fahrzeuge aus der gewünschten Datei


    doSaveVehicles(const byfile[]);

    • Speichert alle Daten aus der Cache


    setVehiclePrice(vehicleid,price);

    • Setzt den Preis des Fahrzeugs


    getVehiclePrice(vehicleid);

    • Gibt den Preis wieder


    renewVehicle(vehicleid);

    • Lädt das Fahrzeug neu aus der Cache


    Die Makros...


    #define MAX_TEAM_NAME 32

    • Maximale Länge für Team Namen

    #define MAX_OWNER_NAME MAX_PLAYER_NAME

    • Maximale Länge für Namen der Besitzer

    #define MAX_FLAG_VEHICLE 270

    • Maximale Cache Slots für die jeweilige Anzahl der Fahrzeuge

    #define gSTR_MAX 128

    • Globale Maximale Länge der Texte

    #define INVALID_FLAG_ID (MAX_FLAG_VEHICLE+1)

    • Ungültige Slot ID

    #define VALID_FORMAT 24

    • Klammern die Minimal in einer Linie vorhanden sein müssen um Fehler zu vermeiden

    #define CHECK_FORMAT

    • Schaltet die Funktion ein die zum überprüfen des Formats dient damit geschaut werden kann ob auch alle Werte für das Fahrzeug vorhanden sind, kann beliebig ein & ausgeschaltet werden dazu einfach dieses Makro Auskommentieren oder Löschen


    So, wie man sieht sind alle Funktionen schon mal vordefiniert, nun könnt ihr sie so verbauen wie ihr sie braucht, ich habe mal ein Beispiel dabei gelegt damit man das ganze besser versteht & sieht, Achtung ich hab kein Autosave eingebaut sprich ihr müsstest /saveit nutzen da aus welchen Gründen auch immer OnFSExit nicht aufgerufen wird :| naja nichts für ungut im Gamemode sollte aber alles laufen bzw. Funktionieren im Bezug auf OnGameModeExit ^^


    Ich werde bei Bedarf noch ein paar Funktionen dazubauen bzw. verbessern also wenn ihr noch Wünsche habt einfach Posten, ich kann Ideen immer gut gebrauchen


    * Wichtige Fehler wurden behoben
    * Beispiel Skript wurde erweitert
    * Neue Funktionen


    Das Beispiel hat folgende Funktionen bzw. zeigt einen folgende Funktionen


    • Setzen der Position ( /parken )
    • Neues Fahrzeug Direkt im Spiel erstellen ( /newcar model farbe 1 farbe 2 Preis Besitzer )
    • Tuning wird neu geladen bzw. Daten werden neu geladen sobald das Auto zerstört wird
    • Nach dem erneuten Parken wird das Auto dort erst auftauchen sobald es einmal zerstört wurde ( Zeigt im Grunde wie man aus der Cache neu Laden kann )

    Vorerst lernt man das Skripten durch die Grund Regeln/ Grund Basis & nicht durch die Verbindung zum Spiel wenn du diese
    nicht kennst & kein Englisch kannst dann lernst du es oder verzichtest drauf ( Manchmal muss man die Faulheit überwinden )

    Das muss in OnPlayerConnect und das auch


    TextDrawShowForPlayer(playerid, Textdrawstats[playerid]);


    Das mit der Aktualisierung sprich das der Textdraw wieder neu Informationen erhält kannst du durch einen Timer regeln oder Direkt anzeigen lassen sprich Anzeigen lassen & einen Timer die Daten Aktualisieren lassen


    public Renew()
    {
    new bstring[255];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
    format(bstring,sizeof(bstring),"~b~Name: ~w~%s ~n~~b~Job: ~w~%s ~n~~b~Level: ~w~%d ~n~~b~Bank: ~w~%d$",name, jtext , level , account);
    TextDrawSetString(Textdrawstats[i], bstring);
    }
    return 1;
    }
    Die Werte die du dort einformatiert hast musst du einfach mit den Spieler Variablen ersetzen


    Und in OnGameModeiNit


    SetTimer("Renew",1000,1);