Beiträge von BlackFoX

    Nein aber du kannst den Punkt neben/hinter/vor einem Fahrzeug berechnen ( cos / sin ) und mit einem Timer überprüfen ob sich der Spieler in
    einem bestimmten Radius zum Punkt befindet , sollte leicht sein

    Tipp zu deiner Text Funktion ...
    du musst kein strmid nutzen um dir den Teil raus zu schneiden sondern kannst es folgendermaßen machen ...

    if(text[0] == 0x21)
    {
    new str[128],pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof pname);
    format(str,sizeof str,"%s sagt : %s,pname,text[1]);
    }


    Also wird der Text ab der Zelle Nummer 1 bis zum Ende eingebunden

    DJSon & SII sind deshalb schneller da sie mit einer Cache arbeiten, das heißt der Inhalt wird
    in Variablen bzw. im Zwischenspeicher festgehalten & bearbeitet nach dem Beenden der Aktion bzw. beenden
    der Speicherungen aufrufe wird die Cache bereinigt & der Datei Zugriff geschlossen , wobei ich eher auf DJson zugreifen
    würde da ich das System schon etwas besser finde zudem bietet es viele Optionen.


    Naja wenn man es einfach haben will kann man auch das Normale Dateisystem + Split/strtok/Getstr nutzen , dazu würde ich einfach Linie
    für Linie auslesen diese zerlegen und daraus laden , beim Speichern geht ihr die Variablen durch in denen es geladen wurde formatiert einen Text
    zurecht & speichert ihn , hängt am besten \n oder \r\n hinten dran so das beim Laden auch Ordnungsgemäß geladen werden kann ,
    eine wirklich sehr einfach Methode

    stimmt auch wieder ^^, ich würde in die FS Objekte in eine Array packen wie hier



    enum daten{obj_model,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,id};
    new ObjectArray[][daten] = {
    {object_model,x,y,z,rx,ry,rz,-1} // -1 ist die ID aber die bleibt so ^^
    };


    und beim erstellen


    for(new i = 0;i<sizeof(ObjectArray);i++)
    {
    ObjectArray[i][id] = CreateObject(ObjectArray[i][obj_model],ObjectArray[i][x],ObjectArray[i][y],ObjectArray[i][z],ObjectArray[i][rx],
    ObjectArray[i][ry],ObjectArray[i][rz]);
    }



    beim zerstören :


    for(new i = 0;i<sizeof(ObjectArray);i++)
    {
    DestroyObject(i);
    }

    (playerid, iconid, Float:x, Float:y, Float:z, markertype, color)


    • playerid , die ID des Spielers
    • iconid eigene ID von 0 bis 32 , nutzt du eine ID doppelt so löscht der Code das alte Map Symbol & seine Daten
    • x,y,z = X,Y,Z Koordinaten
    • Markertyp = Das Symbol das Angezeigt werden soll, in Grafischer darstellung
    • Farbe ist bei allen Symbolen 0 , beim Symbol Typ eins 1 können mehrere Farben genutzt werden

    Naja genaue Beschreibung , du kannst die Datei auf einem Namen + Zahl = vehicleid formatieren & diese speichern ,
    du kannst aber auch in eine Datei speichern in dem du den Key formatierst + vehicleid und dahinter mit Kommas alles trennst ,
    danach kannst du Split/strtok/getstr nutzen um die Werte wieder auszulesen ,
    du kannst aber auch eigene Kauf Fahrzeug ID's erstellen je nach erstelltem Kauf Fahrzeug zählt eine Variable hoch & stellt die ID da
    bzw. wird in einer Struktur zu geteilt , ist leichter als es aussieht bzw. wirklich sehr Simple

    Du musst die ID selber festlegen aber ein Streamer ist die bessere Lösung finde ich , diese Art von Verwendung des Features bringt nichts,
    jedenfalls meine Meinung darüber

    unter OnPlayerStateChange...


    if(newstate == 2)
    {
    if(GetVehicleModel(vehicleid) == Modell ID)
    {
    If(<Team abfrage>)
    {
    RemovePlayerFormVehicle(playerid);
    // Weitere Aktionen
    }
    }
    }



    oder unter OnVehicleStreamIn Das Fahrzeug für den Spieler mit der Standard Funktion verriegeln
    Hier mal ein Beispiel dazu...


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    if(GetVehicleModel(vehicleid) == modell)
    {
    if(<Team abfrage>)
    {
    SetVehicleParamsForPlayer(vehicleid,forplayerid,0,1);
    }
    }
    return 1;
    }