Ergebnis 1 bis 6 von 6

Thema: Kollision zwischen Waffen Kugel und Mensch

  1. #1

    Kollision zwischen Waffen Kugel und Mensch

    Ich hab ein Problem
    ich mache ein GTA Spiel,da mir das GTA Script gefallen hat.

    Also meine Frage:
    Ich habe Waffen eingebaut (erstmal eine normale Pistole.)
    Und bekanntlich wird der aufprall mit einem Event(Mensch) durch Fork´s geregelt
    und jedem Event das getroffen werden soll eine Variable gegeben,
    meine Frage,
    gibt es einen einfachen Weg den aufprallzu klären?Ich meine folgendes:
    <Mensch 1X = Kugel x>
    <Mensch 1Y = Kugel y>
    mensch 3,4,5,6,7,8,9,10 u.s.w.
    bei 160 Menschen wäre das ein bisschen umständlich.Ich brauche dringend Hilfe.

  2. #2
    nein, eine anderen, einfacheren weg gibt es hierbei nicht... aber ich kann dir nen tipp geben, wie du es machen kannst. frag ab, in welchem gebiet du bist. und dann setzt du dem gebiet entsprechend die charas. also ich mein das jetzt so: es brauchen doch nicht immer ALLE charas angezeigt werden. wenn du jetzt ganz oben bist, dann brauchen doch ganz unten keine charas sein. also du fragst jetzt ab, ob du oben bist - wenn ja, dann teleportierst du die charas die unten sind nach oben und umgekehrt. dann kannst du deine charas in zaum halten. wenn du dieses verfahren komplex skriptest, dann könntest du die charas leich unter 50 halten...

  3. #3

    Kollision

    Könntest du mir mal erklären wie ich das machen soll?
    oder schick mir einfach nen Quellcode!

  4. #4
    hmmm... überprüfs einfach so

    Code:
    change var: 0001 -hero x
    change var: 0002 -hero y
    fork condition: var 0002 - below z.B 30
    note: held ist weit oben 
    fork condition: var 0001 - below 50
    note: held ist linksoben
    set event palce: mensch 1 - irgendwo links oben
    set event place: mensch 2 - irgendwo links oben
    ... usw... also einfach alle menschenevents nach links oben ;)
    else case
    note: held ist rechtsoben 
    set events place: mensch 1 - irgendwo rechts oben
    .... diesmal halt nur rechts oben plazieren 
    end case
    end case
    Fork condition: var 0002 - below 60
    hled ist irgendwo in der mitte
    fork condition: var 0001 - below 50
    note: held ist linksmitte
    diesmal alle menschenevents nach links mitte plazieren
    else case
    note: held ist rechtsmitte
    diesmal alle nach rechtsmitte
    end case
    end case
    fork condition: var 0002 - below 90
    held ist ganz unten irgendwo
    fork condition: var 0001 - below 50
    held ist irgendwo unten links
    alle events nach linksunten
    else case
    held ist irgendwo rechts unten
    alle events nach rechtsunten
    end case
    endcase
    diesen code kannst du für eine 100 * 90 map hernehmen... wenn du die map größer bzw kleiner wilst musst du die zahlen halt verändern. der code kann noch ausgeschmückt werden, damit man die überganze zu einem anderen gebiet nicht so mitkriegt ach ja, ich hba die map in 6 teile aufgeteil... wie du ja sehen kannst

    cya
    Mephi

    edit: hmm... hatte nen fehler drinnen... ist nun weg

  5. #5
    Dankeschön Mephisto!

  6. #6
    Ich kenn mich mit dem GTa skript nicht aus, aber habe zur Zeit ähnliche sachen in meinem AKS

    Ich würde es so machen:

    Du machst einen parallel Event, der ständig die X und Y Koordinaten der Kugel speichert (das wait am ende des Parallel events nich vergessen )

    Dann legst du eine art "datenbank" ein. Du gibst jedem Menschen einen Parallel event, der entweder die ganze zeit läuft oder nur am anfang des Levels. Dieser sieht wie folgt aus:

    (Menschnummer) = ...
    (Variablenzeiger) = (Menschnummer)
    (Variablenzeiger) + 100

    (Menschen X) = This Event X
    (Menschen Y) = This Event Y
    (Menschen ID) = EventID von Mensch X / Mensch Y
    (Var(Variablenzeiger)) = (Menschen ID)

    Du mußt nur am anfang die nummer der PErson eingeben, damit er weiß wo er es speichern muß. Der Variablenzeiger zeigt dann sozusagen auf die Stelle, an der die Event ID gespeichert wird. Die +100 kann auch anders sein. Das bedeutet nur, daß er ab Variable 101 anfängt die Event ID's zu lagern.

    Nun mußt du einfach nur einen Parallel Event starten, der immer die Event ID der aktuellen Kugelposition auswertet. Sollte dort kein Event sein, so ergibt das einfach nur 0. Ist aber ein event auf der selben position wie die Kugel, so soll dieser Parallel Event die 160 Variablen von 101 - 260 durchschauen, ob da diese Event ID vorkommt, und schon weißt du ob du einen dieser Menschen getroffen hast oder nich.

    Aber wie gesagt, ich weiß nicht genau wie du es programmiert hast, aber so ähnlich mache ich es mit meinen Events immer, daß ich alle genutzen Events speichere und abrufen kann

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •