Beiträge von Lugi

    Hallo liebe Community


    Man ließt hier sehr häufig Beiträge von Leuten die Mitspieler suchen. Da dachte ich mir man könnte doch mal einen Beitrag erstellen in dem alle aktiven Spieler Vorschläge posten, wie man auch mal alleine einige Aktionen in GTA 5 Online durchführen kann um auch mal ohne Kumpels Spaß zu haben. Ich selbst bin GTA 5 Einsteiger und würde mein Wissen erweitern, was in GTA Online alles möglich ist und wie es funktioniert.


    Gibt es beispielsweiße Heists welche an auch alleine durchführen kann?


    Ich würde mich über viele gute Vorschläge (abgesehen von "klau dir einen Jet und baller alles nieder, das ist auch voll lustig") freuen.

    So.... nun funktioniert alles wunderbar. Einen mega großen Dank an dich Dewey ;)


    Als grönenden Abschluss überlege mich mir grad noch, wie man es umsetzen könnte, das man per Textbind oder Hotkey die am nähersten gelegene Position ausblendet.
    Beispiel: Man stellt sich zu einer Position und drückt eine Taste und das Overlay für diese Position wird nicht gelöscht, aber ausgeblendet. Mit einem Textbind sollte man alle ausgeblendeten dann aber auch wieder einblenden können.


    Ich denke das ist aber nur möglich, wenn man eine eindeutige Zuordnung zum Overlay hat, also indem man zum Beispiel die Overlay ID eingibt. Wie will man sonst auslesen welches Overlay ausgeblendet werden soll.


    Wenn du dafür noch eine Idee hast, dann wärst du mein Held :D

    Beachte hierbei, dass pos1 und pos2 ein Objekt übergeben werden muss. Sollte folgendermaßen aussehen:


    Code
    Numpad0::
    
    
    pos1 = [X, Y, Z]
    pos2 = [X, Y, Z]
    
    
    Dist := getDist(pos1, pos2)
    return


    MfG


    Ich hab das mal versucht, aber irgendwie kommt immer 0 dabei raus.
    Eine der beiden Positionen soll GetPlayerPos sein und die andere soll entweder eine feste Position oder ebenfalls eine andere dynamische Position sein.


    //Edit: Den oberen Fehler hab ich nun selbst gefunden. Es fehlte in Zeile 3 und 7 lediglich der Doppelpunkt vor dem =. Wie blind man doch manchmal ist xD
    Das nachfolgende würde ich trotzdem gerne wissen.


    Ich würde gerne mit einem Textbind alle Positionen ausblenden. Wenn ich den Textbind erneut verwende, sollen wieder alle Positionen sichtbar sein. Folgendermaßen würde ich das jetzt umsetzen,

    Folgende Probleme hab ich noch:


    • Du schreibst im Code SetParam("use_window", "GTA:SA:MP") und im Screenshot unten schreibst du nur window statt use_window. Was ist denn nun korrekt?
    • Beim ausführen des Scripts erhalte ich die Fehlermeldung ==> Too few parameters passed to function. Specifically: worldToScreen(XPOS, YPOS, ZPOS). In der API die ich verwende wäre die Funktion korrekt aufgebaut folgendermaßen WorldToScreen(XPos,YPos,ZPos, x, y). Ich gehe mal davon aus, dass die beiden fehlenden Parameter px1 und px2 sein werden, liege ich da richtig?
    • Im Spiel ist garnichts zu sehen, obwohl ich deine Koordinaten in die Positions.ini kopiert habe. Den Radius hab ich auch schon vergrößert, aber es wird einfach keine Position angezeigt. Das Script funktioniert aber, denn die NumPad0 funktioniert, aber sonst wird nichts angezeigt.


    Und eine kleine Frage hab ich noch, welche nun eigentlich völlig unabhängig von diesem Script ist:
    Die API-Funktion IfIsPlayerInRangeOfPoint nutzt ja eine Range, was also eine Distanz zu einem Punkt bedeutet. Das bedeutet doch es müsste theoretisch möglich sein, sich die Distanz zu einem Punkt auch einfach als Zahl ausgeben zu lassen. Egal wie.. ich möchte die Distanz zu einem beliebigen Punkt nur einfach als Zahl ausgeben.

    Beim Start des Scriptes klappt das erstellen des Overlays nur manchmal. Auserdem verschiebt sich das Overlay nicht wenn ich mich bewege, liegt wohl daran das die Funktion WorldToScreen fehlende Parameter hat und sobald ich eine zweite Position speichere hat es die selbe OverlayID.


    Und es verschwindet auch nicht wenn ich mich von der Position entferne, da ja auch das IsPlayerInRangeOfPoint fehlt.


    Ganz komisch ist auch, wenn ich mich einmal um 180 Grad drehe wird das Overlay dort wie gespiegelt angezeigt.


    @Dewey:
    Ich hab alles mögliche versucht, aber dein Script überfordert mich. Kannst du da nochmal drüberschauen und nach Fehlern suchen? Wäre nett.

    Okey..
    Das ist aber nur für das Auslesen einzelner Zeilen im normalen Text-Dialog und zum Anklicken in einem List-Dialog, oder liege ich da falsch?


    Wie soll man damit im folgenden Dialog die Eingabezeile auslesen? Kannst du mir dafür ein Scriptbeispiel geben?

    Du hast die Einstellungen aber in den Globalen Einstellungen vorgenommen statt nur für CS:GO in dein Programmeinstellungen. Hoffentlich gibt es dann nicht in anderen Spielen Probleme.

    Das was du da beschreibst ist bestimmt Tearing. Das tritt auf wenn die Grafikkarte zu schnell arbeitet und wesentlich mehr Bilder pro Sekunde berechen als dein Monitor anzeigen kann. Um das Tearing abzuschalten mußt du in deinen Grafiktreiber gehen und V-Sync aktivieren. Dann wartet die Grafikkarte immer ab bis ein Bild vollständig auf dem Monitor aufgebaut wurde und sendet dann erst ein neues. Gehe dazu in die "Nvidia-Systemsteuerung" (das sind die Treibereinstellungen) -> "3D-Einstellungen verwalten". Wenn du nur bei CS:GO V-Sync aktivieren willst dann solltest du auf Programmeinstellungen gehen und dort die Einstellungen dann im Spiel-Profil vornehmen. Wenn du V-Sync unter "Globale Einstellungen" aktivierst läuft es in allen Spielen.


    Schalte dann "Vertikale Synchronisierung" auf Ein und "Dreifachpuffer" auch auf Ein. Es ist wichtig das du beides einschaltest damit es keine Einbrüche bei der Bildrate gibt. Dann unten auf Übernehmen klicken und das Geflackere sollte (späterstens nach einem PC Neustart) weg sein.

    Code
    added, 1769.837524, -1914.490845, 13.557945
    added, 1332.273682, -1722.651489, 13.546875
    Zitat von Dewey

    in ein Objekt eingefügt und dies wiederum in ein Array abspeichern. Dieser Array wird deine Grundlage für dein Timer sein. Einfach mit einer for-Schleife den Array durchlaufen

    Den Teil hab ich nicht verstanden, kannst du mir das anders erklären oder ein Scriptbeispiel geben?

    Ich würde es so machen, dass beim Starten deines Scriptes die Datei mit den Positionen ausgelesen wird.
    Jede Position wird dann mit einer fortlaufenden ID und einem Status versehen


    Das hab ich jetzt mal folgendermaßen umgesetzt:

    Code
    Loop, read, Datei.txt
    {
    StringSplit, Koordinaten%a_index%, A_LoopReadLine, `,
    Overlay%a_index% := -1
    }
    Settimer, Timer, 1


    Wie ich den Rest umsetzen soll, hab ich keine Ahnung. Verstehe das auch nicht so ganz was du damit meinst:

    in ein Objekt eingefügt und dies wiederum in ein Array abspeichern.

    Hallo liebe Community


    Ich habe mich da an etwas versucht, was eher eine spontane Idee war. Ich habe also den Scriptschnipsel auf ein paar Minuten schnell hingeklatscht, nun hänge ich aber seit Tagen an der Problemsuche. Villeicht kann mir hier einer helfen.


    Ich möchte mir mit diesem Script einige Positionen auf der Map zeigen lassen. Diese Positionen werden von mir vorher mit einem Textbind in eine TXT-Datei geschrieben. Diese Liste wird wärend dem Spielverlauf ständig erweitert, desswegen lege ich keine festen Positionen direkt im Script fest.


    Das Problem ist nun, dass die Texte, also das rote X das mit TextCreate erstellt wurde, dauerhaft wild blinkt, sobald mehrere Koordinaten in der TXT-Datei stehen. Das zuletzt hinzugefügte blinkt aber nicht.


    So sieht mein Script dafür derzeit aus: