Beiträge von Kaliber

    Änderst du auch den Interior vom Spieler?


    Wenn ja, probier einfach mal folgendes und setze im Callback [wiki]OnPlayerInteriorChange[/wiki] die Position von deinem Actor neu ^^


    Wenn du ihn dann immer noch nicht sehen solltest, dann porte dich mal zu ihm, ob er wirklich erstellt wird xD

    Hab ich noch nicht mit gearbeitet, weiß nicht wie der das Aktualisiert und ob es da Zeiten gibt und wie ausgereift das ist.


    Aufjedenfall muss, sobald du das Interior betrittst der Actor neu gestreamt werden.


    Du solltest das aber anders machen.


    Die Actor nicht Interior spezifisch spawnen lassen, sondern VirtualWorld spezifisch.
    Das liegt eigentlich in ihrer Natur :D

    Ich vermute mal, dass in deinem enum GER vor ENG steht ^^


    bzw steht GER ganz oben im enum und hat daher die ID 0.


    Du setzt also die Sprache für den Spieler erst nachdem du ihm schon einen Dialog anzeigst ^^


    Ich vermute da liegt der Fehler :)


    Achso und wie in einem anderen Post schon erwähnt, switch ist eigentlich nur sinnvoll, wenn du mehr als 2 Sprachen hast, bei 2 kannste das auch so machen:


    Textdraw23[playerid] = CreatePlayerTextDraw(playerid, 224.333312, 183.348114, ((GetPlayerLanguage(playerid) == GER)?("deutsch"):("german")));


    Gebe zu, bisschen umständlich, kannst es dir ja theoretisch in einem Makro kürzen:


    #define L(%0,%1,%2) ((GetPlayerLanguage(%0)==GER)?(%1):(%2))


    Nutzung:


    Textdraw23[playerid] = CreatePlayerTextDraw(playerid, 224.333312, 183.348114, L(playerid,"deutsch","german"));


    Somit sparst du dir viel ein :)

    Wozu der delay?


    Und wenn, dann SetTimerEx verwenden mit der playerid als Parameter, so würde das nur bei ID 0 funktionieren.


    Dann hast du anscheinend schon AddPlayerClass in deinem Skript, dann kannst du dir das SetSpawnInfo natürlich schenken ^^

    Tut mir Leid, dass ich den Post erst so spät gelesen habe ^^


    Das kannst du einfach mit der atan2 Funktion machen.


    Hier ein Beispiel:



    Mal eben mit einem Actor getestet und funktioniert 1A :)


    Das System basiert halt auf der Position des Spielers, was meines Erachtens ja auch nur Sinn macht. Oder willst du das bezogen auf die Camera alles haben?!


    Den reinen Kamera Winkel bekommst du so: https://forum.sa-mp.com/showpost.php?p=3597048&postcount=1

    Du nutzt die Parameter falsch.


    Schau mal, deine Angaben:


    ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA], ActorInfo[i][aInvulnerable], ActorInfo[i][aHealth], -1, 1, -1, 50.0)


    Aber das ist die Falsche Belegung, schau mal:


    (modelid, Float:x, Float:y, Float:z, Float:angle, worldid = -1, interiorid = -1, bool:invulnerable = true, Float:health = 100.0)

    Du schreibst Textdraw22[playerid] = Das ist wahrscheinlich vom Typ PlayerText: allerdings returnt deine Funktion nur 1.


    Aber ich verstehe nicht genau was du da machst.


    Also tLanguage ist ja eine globale Variable. Wenn du das Skript nur Global einsprachig machen willst, dann solltest du mit Defines und Makros arbeiten, eben mit dem Precompiler. Stichwort: [wiki]Keywords:Directives[/wiki]


    Wenn du es Spielerbezogen machen willst, dass sich jeder Spieler die Sprache aussuchen soll, dann arbeite mit switch! Oder wenn es nur 2 sprachig ist, kannst du es einfach so machen:


    return CreatePlayerTextDraw(playerid, cod1, cod2, (tLanguage==1)?eng4:ger3);


    Am besten erstellst du auch für Sprachen Makros bzw nutzt einen enum:


    C
    enum
    {
        GERMAN,
        ENGLISH
    };
    //Und dann eben
    (tLanguage==ENGLISH)?eng4:ger3