Zeige Ergebnis 1 bis 12 von 12
  1. #1
    Benutzerbild von ToSMaster
    Registriert seit
    Jul 2008
    Ort
    Bochum
    BNet Account
    ToS-Master
    Beiträge
    2.392

    [GUI] Unit Detection-System

    [spoil]
    Unit Detection-System
    Unit Detection-System


    Vorwort
    Bitte nicht verhauen für dieses kleine System. Es ist mein erstes, was ich hier vorstelle. Es ist zwar recht Simpel, aber ich denke, das es trotzdem Verwerder findet, welche nicht ganz so vertraut sind. Das System soll unseren GUI-Freunden die Möglichkeit geben die nächste Einheit von Punkt X aus zu finden.
    Das System ist (trotz GUI) für jeden so veränderbar, wie man es möchte. Die Variablen sind so angelegt, das sie MUI sind und auch in anderen Trigger-Systemen verwenden kann oder eben in anderen triggern =)

    Vorraussetzungen:
    -JNGP
    -Patch 1.23


    Credits: ToS-Master (Also ich )


    [/color]


    Funktionen
    Dieses System bietet die Möglichkeit eine Einheit aus einem ganzen Haufen rauszupicken, von einem frei wählbaren Punkt (In der Beispiel-Map ist er der Einfacheit halber an der Position der Beispiel-Einheit).
    -Das System bietet die Möglichkeit 'Nur Feinde' oder 'Feinde und Freunde' zu erkennen.
    -Frei wählbarer Schaden, welcher verteilt werden kann
    -Frei wählbaren Radius.
    -Visueller effekt bei der getroffenen Einheit
    -Komplett MUI
    -8/9 Variablen sollten in deiner Map schon vorhanden sein
    -Leakfrei
    -Komplett im GUI
    -Einfache Anwendung, einfach die Variablen anpassen


    Variablen
    Ich benutze 9 Variablen. Acht davon sollten in jeder guten GUI-Map schon enthalten sein, nur eine Boolean-Variable wird verwendet um 'Alley-Detection' ein- /aus-zu-schalten.

    Kommen wir nun zu den Variablen und ihren Bedeutungen:

    Grün markierte Variablen darfst du am Anfang verändern, um so das System an deine Bedürfnisse anzupassen. Alle anderen sind Tabu. Sie werden benötigt, um das System aufrecht zu erhalten. Du solltest sie auf der Vorgabe lassen.

    IncludeAlly [Boolean]: Werden Befreundete Einheiten von dem System auch erfasst, oder nicht? [Veränderbar]
    TempInteger [Integer]: Die Reichweite, in der die Einheiten erfasst werden. [Veränderbar]
    TempUnit [Unit]: Die Einheit, welche am nächsten steht Mit dieser Variable kannst du am Ende weiter arbeiten[/color]
    TempReal [Real]: Die Reichweite zwischen einer erkannten Einheit und dem Punkt von dem aus die Einheiten gesucht werden Muss am Anfang immer etwas höher als die Maximale Reichweite sein
    TempReal2 [Real]: Der Schaden, welcher an Feinde verteilt wird [Veränderbar]
    TempPoint [Point]: Die Position einer Einheit, welche erkant wurde.
    TempPoint2 [Point]: Der Ausgangspunkt, von dem aus die Einheiten überprüft werden. [Veränderbar]
    TempString [String]: Der Pfad des Spezialeffecktes, welcher erstellt wird. [Veränderbar]
    TempGroup [Einheitengruppe]: Alle Einheiten die erkannt werden.

    Du kannst die Beschreibungen der Variablen auch in der Map nachlesen


    Der Code

    Code:
    
    Detection
        Ereignisse
            Einheit - A unit Startet den Effekt einer Fähigkeit
        Bedingungen
            (Ability being cast) Gleich (==) Nähe 
        Aktionen
            Set IncludeAlly = True
            Set TempInteger = 9000
            Set TempUnit = Keine Einheit
            Set TempReal = (Real((TempInteger + 1)))
            Set TempReal2 = 50.00
            Set TempPoint2 = (Position of (Triggering unit))
            Set TempString = Abilities\Spells\Human\MarkOfChaos\MarkOfChaosTarget.mdl
             Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                'IF'-Bedingungen
                    IncludeAlly Gleich (==) True
                'THEN'-Aktionen
                    Set TempGroup = (Units within (Real(TempInteger)) of TempPoint2 matching (((((Matching unit) is Ein Gebäude) Gleich (==) False) and (((Matching unit) is alive) Gleich (==) True)) and ((((Matching unit) is hidden) Gleich (==) False) and ((Matching unit) Ungleich (!=) (Trigge
                'ELSE'-Aktionen
                    Set TempGroup = (Units within (Real(TempInteger)) of TempPoint2 matching (((((Matching unit) is Ein Gebäude) Gleich (==) False) and (((Matching unit) is alive) Gleich (==) True)) and ((((Matching unit) is hidden) Gleich (==) False) and (((Matching unit) Ungleich (!=) (Trigg
            -------- ---------- --------
            Einheitengruppe - Pick every unit in TempGroup and do (Actions)
                Schleifen - Aktionen
                    Set TempPoint = (Position of (Picked unit))
                     Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        'IF'-Bedingungen
                            (Distance between TempPoint and TempPoint2) Kleiner als (<) TempReal
                        'THEN'-Aktionen
                            Set TempReal = (Distance between TempPoint and TempPoint2)
                            Set TempUnit = (Picked unit)
                        'ELSE'-Aktionen
                    Point - Remove TempPoint
            Einheitengruppe - Destroy unit group TempGroup
            Point - Remove TempPoint2
            -------- -> Die Einheit ist Gefunden [TempUnit] Der Rest des Triggers ist nurnoch Schnickschnack, welcher für den Spell benötigt wird <- --------
             Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                'IF'-Bedingungen
                    TempUnit Gleich (==) Keine Einheit
                'THEN'-Aktionen
                'ELSE'-Aktionen
                    Spezialeffekt - Create a special effect attached to the origin of TempUnit using TempString
                    Spezialeffekt - Destroy (Last created special effect)
                     Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        'IF'-Bedingungen
                            ((Owner of TempUnit) is an enemy of (Owner of (Triggering unit))) Gleich (==) True
                        'THEN'-Aktionen
                            Einheit - Cause (Triggering unit) to damage TempUnit, dealing TempReal2 damage of attack type Zaubersprüche and damage type Normal
                        'ELSE'-Aktionen


    Download

    By Rapidshare


  2. #2
    Benutzerbild von Kricz
    Registriert seit
    Apr 2008
    BNet Account
    Kricz
    Beiträge
    1.942
    Moin,

    also das System ist ganz gut für GUI Nutzer (bin zwar keine aber egal)..
    Doch wieso braucht man dafür das JNGP UND Patch 1.23?
    Ich würds so anlegen, das es mit 1,24 auch problemlos funzt.
    Ansonsten ganz okay für so Spells mit Berechnungen von X und Y.
    Dann braucht man wenigstenz weniger locations
    Dota 2
    >> Besucht uns im neuen ingame Portal inDota2! <<

  3. #3
    Benutzerbild von computerfuzzi
    Registriert seit
    Dez 2006
    Ort
    Im Nirgendwo gleich links
    BNet Account
    gamestargamer
    Beiträge
    1.716
    nettes system, ABER
    es gibt nen unitgroup-leak ^^

    also nix leakfrei

    mfg

  4. #4
    73rm1n4t0r
    Guest
    jo einfach die gruppe nicht zerstören sondern nur alle units entfernen dann leakt die gruppe auch net mehr

  5. #5
    Benutzerbild von ToSMaster
    Registriert seit
    Jul 2008
    Ort
    Bochum
    BNet Account
    ToS-Master
    Beiträge
    2.392
    Ups

    da habt ihr recht...
    wird sofort behoben. ich wollt das noch machen, habs dann wohl doch vergessen... sekunde, ich habs gleich

  6. #6
    Benutzerbild von AlteKante5
    Registriert seit
    Mai 2008
    BNet Account
    Alte_Kante
    Beiträge
    332
    Original geschrieben von Kricz
    Doch wieso braucht man dafür das JNGP UND Patch 1.23?
    Ich würds so anlegen, das es mit 1,24 auch problemlos funzt.
    ...da niemand auf das Kommentar von Kricz geantwortet hat....

    Tschuldigung aber darf ich fragen ob man das JNGP jez unumstößlich benötigt ?

    Ist ne wage behauptung aber ich glaube die meisten WcIII-Mapper haben dass net unbedingt

    Auf jeden Fall habs ich net ^^

    mfg
    Alte_Kante

  7. #7
    Benutzerbild von TheHolyOrder
    Registriert seit
    Jan 2008
    Ort
    München
    BNet Account
    Saia_Djinn
    Beiträge
    662
    Nein du brauchst es nicht er kann ja in GUI nix außer vll. paar extra funktionen benutzen er tuts nicht also brauchst du es auch nicht aber einfach mal mit editor öffnen und speichern hätte dir auch geholfen =D
    Visit this --> Contest Forum

  8. #8
    Benutzerbild von Yuyu
    Registriert seit
    Feb 2009
    Beiträge
    1.819
    Code:
    Point - Remove TempPoint1
    Code:
    Point - Remove TempPoint2
    Ist wohl das einzige, was es nicht im normalen Editor gibt, aber das lässt sich ja einfach durch
    Code:
    call RemoveLocation( udg_TempPoint )
    Code:
    call RemoveLocation( udg_TempPoint2 )
    beheben.

  9. #9
    Benutzerbild von AlteKante5
    Registriert seit
    Mai 2008
    BNet Account
    Alte_Kante
    Beiträge
    332
    Vielen Dank schonmal

    ABER:

    Begriffe und Ausführungen wie folgende versteh ich leider noch net ganz:

    Original geschrieben von ToS-Master
    -Das System bietet die Möglichkeit 'Nur Feinde' oder 'Feinde und Freunde' zu erkennen.
    hmm - in welcher Weise "zu erkennen"
    -Frei wählbarer Schaden, welcher verteilt werden kann
    Frei wählbar ?
    Ist mir net ganz klar was man da wählen kann :S
    verteilt werden kann ? Der Schaden der verteilt wird ist doch von der Einheit bzw dem Zauber abhängig oder wie ?

    -Frei wählbaren Radius.
    Der Aggroradius ?
    -Visueller effekt bei der getroffenen Einheit
    Ein Spezialeffekt ? Getroffen von Schaden oder Spott oder wie ? ^^
    -Komplett MUI
    MUI ?
    -8/9 Variablen sollten in deiner Map schon vorhanden sein
    Kann man ja mit dem Sys einfügen....
    Entschuldigt bitte, aber ich bin sicher dass die meisten von euch das verstehen aber es gibt auch noch Anfänger (*auf mich zeig) in diesem Forum und ich bitte euch es auch für die Anfänger noch mal näher zu erläutern

    Vielen Dank schonmal

    Alte_Kante

  10. #10
    Benutzerbild von CLeo2
    Registriert seit
    Jul 2004
    Ort
    Daham
    BNet Account
    Cleo
    Beiträge
    2.906
    Hab mir das System nicht wirklich angeschaut, aber die Fragen sind eigentlich leicht zu beantworten...

    hmm - in welcher Weise "zu erkennen"
    -> Naja Freund/Feind Unterscheidung in der Pick-Schleife wahrscheinlich

    Frei wählbar ?
    -> schau dir die Real-Variablen an. Bei denen kann man den Schaden einstellen, der Schadne wird nämlich per Trigger gemacht.

    Der Aggroradius ?
    -> Der Radius in dem der Schaden gemacht wird bzw. in welcher Entfernung die Einheiten gepickt werden

    Ein Spezialeffekt ? Getroffen von Schaden oder Spott oder wie ? ^^
    -> Ein Spezialeffekt, der eben an der Stelle der getroffenen Einheit erzeugt wird, kA was du mit Spott meinst Oo

    MUI ?
    -> Multi User oder so, soll heißen: es können mehrere Spieler gleichzeitg den Spell casten, ohne dass es Überschneidungen und damit Bugs fibt

    Kann man ja mit dem Sys einfügen....
    -> Dasd macht der We automatisch (kann man unter Optionen einstellen)
    FUCK IT ALL!
    FUCK THIS WORLD!
    FUCK EVERYTHING THAT YOU STAND FOR!

    [UNKNOWN TD 2.0 RELEASED: Unknown TD! ]

  11. #11
    Benutzerbild von AlteKante5
    Registriert seit
    Mai 2008
    BNet Account
    Alte_Kante
    Beiträge
    332
    Original geschrieben von CLeo2
    Frei wählbar ?
    -> schau dir die Real-Variablen an. Bei denen kann man den Schaden einstellen, der Schadne wird nämlich per Trigger gemacht.
    Per Trigger ?

    Soll heißen ich muss alle Einheiten irgendwie überarbeiten ??

    mfg
    Alte_Kante

  12. #12
    Benutzerbild von ToSMaster
    Registriert seit
    Jul 2008
    Ort
    Bochum
    BNet Account
    ToS-Master
    Beiträge
    2.392
    Original geschrieben von CLeo2
    Hab mir das System nicht wirklich angeschaut, aber die Fragen sind eigentlich leicht zu beantworten...

    hmm - in welcher Weise "zu erkennen"
    -> Naja Freund/Feind Unterscheidung in der Pick-Schleife wahrscheinlich

    Frei wählbar ?
    -> schau dir die Real-Variablen an. Bei denen kann man den Schaden einstellen, der Schadne wird nämlich per Trigger gemacht.

    Der Aggroradius ?
    -> Der Radius in dem der Schaden gemacht wird bzw. in welcher Entfernung die Einheiten gepickt werden

    Ein Spezialeffekt ? Getroffen von Schaden oder Spott oder wie ? ^^
    -> Ein Spezialeffekt, der eben an der Stelle der getroffenen Einheit erzeugt wird, kA was du mit Spott meinst Oo

    MUI ?
    -> Multi User oder so, soll heißen: es können mehrere Spieler gleichzeitg den Spell casten, ohne dass es Überschneidungen und damit Bugs fibt

    Kann man ja mit dem Sys einfügen....
    -> Dasd macht der We automatisch (kann man unter Optionen einstellen)
    jop. genau richtig beschrieben
    Nur bei dem Freund / Feind muss ich noch sagen:

    Wenn die Variable 'IncludeAlly' = true ist, dann werden auch befreundete Einheiten in die Pick-Schleife mit aufgenommen.
    Sie erhalten zwar einen spezial-effeckt, bekommen aber trotzdem keinen Schaden. Wenn sie dennoch Schaden bekommen sollen, einfach die If/Then/Else am Ende des triggers umstellen.


    Original geschrieben von Alte_Kante
    Per Trigger ?

    Soll heißen ich muss alle Einheiten irgendwie überarbeiten ??

    mfg
    Alte_Kante
    nein, Einheiten brauchst du nicht zu überarbeiten. Du musst nur die Trigger kopieren und in deine Map einfügen.

    Manche der Variablen kannst du auch verändern. Sie werden ganz am anfang des Triggers gesetzt.

    Oben, im ersten Post sind alle Variablen angegeben, und was sie Bewirken. du kannst auch dort ablesen, ob du sie verändern kannst, ohne das sie das System negativ beeinflussen oder es unbrauchbar machen.

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •