.
|
|
| Autor | Beitrag |
|---|---|
|
000 02.03.2003, 15:12 doener |
Eine Splittergranate ist eine Handgranate die, wenn sie explodiert, einige Splitter um 720° in alle Richtungen sprengt, die eigentliche Explosion ist sehr klein. Sowas möchte ich für Half-Life machen, als Beispiel könnte man diese komische Nagelgranate aus TeamFortress nehmen, die Nägel um 180° verschießt, nur: 1. Die Splitter sollen alle gleichzeitig fliegen, rundherum. Hab leider noch keine Idee wie ich das umsetzen soll, der Quelltext von TF wäre schon mal nicht schlecht :) |
|
Profil || Suche |
|
001 02.03.2003, 15:46 Retro |
mach jeden splitter einfach wie nen schuss von ner waffe.. fertig. --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
002 02.03.2003, 16:52 doener |
Ja, aber ich bekomm das mit den 720° nicht hin, dass die "Schüsse" zu allen Seiten gehen, rundherum eben, und dann auch noch zufällig. Sowas gibt's in Half-Life nicht, das ist wäre der dritte Parameter von CBaseEntiy:: FireBullets, nämlich "vecDir": In Half-Life gibt es dafür immer ein Ziel, z.B. vecDirToEnemy, aber die Schüsse sollen bei meiner Granate OHNE Ziel abgehen, einfach gerade um die 720° der Granate wegfliegen, bis sie in die nächste Wand einschlagen. Hülfeee! -- |
|
Profil || Suche |
|
003 02.03.2003, 17:06 Onkel Dittmeyer |
Ja und? vecDir ist die Richtung und damit auch indirekt das Ziel. In die Richtung dieses Vektors geht halt der Schuss - er hört nicht bei diesem Vektor auf sondern geht so lange weiter bis er auf was trifft. Und diesen Vektor kannst du dementsprechend randomisieren. Dann das ganze in ne Schleife gepackt für so 30 Splitter und dann hastes. -- |
|
Profil || Suche |
|
004 02.03.2003, 17:07 Grom |
ganz doofe Frage: Könnte man nicht theoretisch dann unsichtbare Ziele erschaffen, auf die die Schüsse zufliegen? Also Theoretisch könnte man das doch so lösen, oder!? -- |
|
Profil || Suche |
|
005 02.03.2003, 17:46 Retro |
natürlich, vecdir oder was auch immer muss ja kein gegenstand sein, es ist ja idr. nur die richtung oder position des ziels. vielleicht sollte man dir auch mal sagen dass es 720° garnicht gibt, es würde 0°/360° entsprechen. --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
006 02.03.2003, 17:47 doener |
@Onkel Dittmeyer: Ok, danke, ich werd mal ein bissl rumspielen...
Dieser Beitrag wurde am 02.03.2003 um 18:08 von doener bearbeitet. |
|
Profil || Suche |
|
007 02.03.2003, 18:12 Grom |
Kann man die nicht zufällig spawnen lassen ala Random? -- |
|
Profil || Suche |
|
008 02.03.2003, 18:16 doener |
Sorry, das ist doch Scheiße, komplizierter geht's garnicht, jedesmal wenn wer so eine Granate wirft erstmal unsichtbare Ziele spawnen lassen, die dann von den Schüssen angeflogen werden, was ein Aufwand und wie das laggen würde... -- |
|
Profil || Suche |
|
009 02.03.2003, 18:22 Grom |
Entschuldigung das ich nach einer Möglichkeit gesucht habe dir deine Frage zu beantworten... Dieser Beitrag wurde am 02.03.2003 um 18:23 von Grom bearbeitet. |
|
Profil || Suche |
|
010 02.03.2003, 18:29 doener |
Ok, tut mir Leid, ich finde es nett das du dir Gedanken über meine Idee machst, aber der Vorschlag ist nun wirklich nicht sehr genial ;) --Dieser Beitrag wurde am 02.03.2003 um 18:30 von doener bearbeitet. |
|
Profil || Suche |
|
011 02.03.2003, 18:30 Spill |
hmm, ich würde in das Model ne "explode-Animation" einbauen, bei der die Splitter wegfliegen. Im Code würde ich dann mehrere Radien (die Umkreise x >= 180 || x <= -180) und y >=0 || y<= 180 vom Model) um das explodierende Model erstellen, in denen mit Abstufungen die Healthpunkte abgezogen werden. Z.B. Im Umkreis von 5m 100HP´s, 10m 70HP´s usw. . -- |
|
Profil || Suche |
|
012 02.03.2003, 18:30 Grom |
k... naja ich versteh nicht viel vom coden, darum kann ich hier nicht mit Begriffen um mich schmeissen wie "vecDir" oder was weiss ich... -- |
|
Profil || Suche |
|
013 02.03.2003, 18:36 doener |
@Spill: Nein Nein Nein, genau das will ich ja nicht machen: Es sollen die Splitter sein, die den eigentlichen Schaden machen, dadurch wirkt das ganze gefährlicher, da die Granate unberechenbarer wird. Außerdem ist es genauer, z.B. geht der Schaden dann nicht durch Fenster, Türen bzw. kleine Ritzen etc... kurzum realistischer. -- |
|
Profil || Suche |
|
014 02.03.2003, 18:37 Retro |
@doener: nee, da musst du schon zwei verschiedene winkel angeben! stell dir mal vor x = 30° und y = 70°, würdest du daraus 100° machen. 100° könnte aber genauso gut x = 50° und y = 50° bedeuten, von daher ist es keine zuverlässige angabe. du willst ja einfach dass z.b. 60 splitter bei der expolsion erzeugt werden.. hab lang nichtsmehr mit hl gemacht, deshalb isses nur nen beispielcode: for (i = 0; i < 60; i++) ich glaub hl nimmt werte im bogenmaß.. --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
015 02.03.2003, 18:43 doener |
Cool danke! Werd's mal probieren, und was den Winkelkrams angeht, du hast ja Recht, das mit den 720° hab ich noch von ner Homeworld oder Descent Reklame im Kopf: "Maximale Action in 720°" ;) /Mal ne Frage: wäre in meinem Fall vecSpread und vecDir nicht das gleiche? Die Richtungen der Splitter sollen ja Random sein, wäre das nicht doppelt-gemoppel? --Dieser Beitrag wurde am 02.03.2003 um 18:56 von doener bearbeitet. |
|
Profil || Suche |
|
016 02.03.2003, 19:19 Onkel Dittmeyer |
Im Prinzip, ja. Das is halt der eigentliche Zielvektor und dann noch ein Streuvektor damits net so präzise is. Also kannste den ignorieren... -- |
|
Profil || Suche |
|
017 02.03.2003, 19:28 doener |
So eine Scheiße, das darf nicht wahr sein!! :'( |
|
Profil || Suche |
|
018 02.03.2003, 19:39 Onkel Dittmeyer |
Die Vektoren musst du abhängig zum Origin der Granate berechnen. Ich würd das so ungefähr machen: Dieser Beitrag wurde am 02.03.2003 um 19:43 von Onkel Dittmeyer bearbeitet. |
|
Profil || Suche |
|
019 02.03.2003, 20:34 doener |
So, ich komm nicht weiter, hier was ich geändert habe, unten die Fehlermeldung: handgrenade.cpp: Hülfeee! -- Dieser Beitrag wurde am 02.03.2003 um 20:36 von doener bearbeitet. |
|
Profil || Suche |
|
020 02.03.2003, 22:02 Onkel Dittmeyer |
Erstmal ist es _sehr_ wichtig dass du das nächste mal auch den Funktionsheadder sagst, sonst kann keine wissen was du genau machst =) Dieser Beitrag wurde am 02.03.2003 um 22:04 von Onkel Dittmeyer bearbeitet. |
|
Profil || Suche |
|
021 02.03.2003, 22:46 doener |
Jetzt geht's soweit, aber jetzt "verschießt" die Granate wenn sie explodiert 60 Schuss an einen Punkt, und immer im selben Winkel: Weil die Granate immer auf der Seite liegen bleibt :) Außerdem gilt das ja jetzt für alle Grenades, muss ich nochmal ne dedizierte Funktion machen. /ROFL, das ist sooo geil, der Streukreis ist jetzt ziemlich groß, aber noch nicht rundum, jedenfalls macht das voll Bock: Wenn man mit der MP5 ne Granate auf nen Scientist schießt, dann macht das endlich mal nen guten Sound und es sieht voll echt aus... 8) --Dieser Beitrag wurde am 02.03.2003 um 23:05 von doener bearbeitet. |
|
Profil || Suche |
|
022 03.03.2003, 01:41 Gott |
wenn ich morgen wieder im büro bin kann ich dir helfen --millirem und bequerel , kleine kinder sterben schnell Arsch für alles bei War in Europe |
|
Profil || Suche |
|
023 03.03.2003, 07:15 Onkel Dittmeyer |
Achja, ich hab nen kleinen Denkfehler: In der Schleife musst du noch den random Seed mit dem Counter ändern, da die random Funktionen ja mit der Zeit arbeiten und wenn man die Sache in einer Schleife macht, bleibt die Zeit ja immer gleich und dementsprechend auch die Vektoren. Wies genau geht hab ich jetzt kA, aber guck dir mal n Paar Referenzen im Code zu den Random Funktionen an, bin sicher da findeste was zu. -- |
|
Profil || Suche |
|
024 03.03.2003, 16:02 Onkel Dittmeyer |
Ich habs mal aus Fun getestet und das scheint ganz gut zu gehen: Dieser Beitrag wurde am 03.03.2003 um 16:09 von Onkel Dittmeyer bearbeitet. |
|
Profil || Suche |
|


