.| Autor | Beitrag |
|---|---|
|
000 24.08.2001, 01:55 Retro |
Hallo, es geht mir darum, das ich den schaden eines Schusses auf die entfernung weniger tödlich machen möchte... Aber ich weis nicht ob das überhaupt möglich ist. Man findet zuerst raus, wie weit die Kugel fliegen wird, und reduziert dementsprechend die Damage, aber was ist nun wenn nen gegner direkt vor den Lauf springt? Wird die entfernung dann geupdatet, oder kann man nur die entfernung bis zum nächsten World-Brush herauskrigen? Aber der laser_spot vom RPG haftet ja auch an den Playern wenn man drauf ziehlt... Aber wie krige ich die entfernung zum nächsten Hindernis in der Schußbahn raus? Also als Zahlenwert? --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
001 24.08.2001, 02:40 The_Overmind |
also Soooo Damit kannst du dann deinen neuen Schaden umrechnen. Falls du das nicht verstehst, meine ICQ is 38138527 ;) MfG Dieser Beitrag wurde am 24.08.2001 um 02:42 von The_Overmind bearbeitet. |
|
Profil || Suche |
|
002 24.08.2001, 03:34 anothergb02 |
Hää warum denn so sehr merkwürdig kompliziert ! ne length func gibs schon längs also einfach #define MAX_SHOOT_DISTANCE 8000 float finalDamage = MaxDamage-(MaxDamage*(vecStartShoot-vecEndShoot).Length()/MAX_SHOOT_DISTANCE))); vecStartShoot ... kannst du ganz einfach kriegen musste mal unter TraceAttack beim Player oder so gucken ! geht bestimmt auch noch einfacher aber habe jetzt kein Lust ! --Being in john Malkovich Dieser Beitrag wurde am 24.08.2001 um 03:38 von anothergb02 bearbeitet. |
|
Profil || Suche |
|
003 24.08.2001, 06:23 The_Overmind |
Muuuuuuuuuuuh!!!!!!! *halskrieg* --Dieser Beitrag wurde am 24.08.2001 um 06:36 von The_Overmind bearbeitet. |
|
Profil || Suche |
|
004 24.08.2001, 12:22 DarKnight |
LOL! Man sollte sich vorher schon die Vektorfunktionen in HL anschauen.... =) --void CHudSayText :: EnsureTextFitsInOneLineAndWrapIfHaveTo( int line ) -- Aja? |
|
Profil || Suche |
|
005 24.08.2001, 14:06 thinktank |
Hmm ich kenn mich da ja nicht so aus , aber ich glaub anothergb will doch den Anteil von dem Distancevektor an der MaxShootDistance ausrechnen und dann diesen mal den MaxDamage nehmen. Also das Stückle hier : (MaxDamage*(vecStartShoot-vecEndShoot).Length()/MAX_SHOOT_DISTANCE); Aber wird da ned erst MaxDamage mal die Length genommen ? Hab ich was falsch verstanden ;) ? -- |
|
Profil || Suche |
|
006 24.08.2001, 14:47 Another1 |
nope is alles in ordnung [EDIT] Another1 ...relaxing..atm =) Dieser Beitrag wurde am 24.08.2001 um 14:48 von Another1 bearbeitet. |
|
Profil || Suche |
|
007 24.08.2001, 15:16 anothergb02 |
a1 du Trottel mal bidde richtig gucken !! da ist ein - !!! also wird der Wert immer KLEINER !!! 8000-8000 = 0 du puper --Being in john Malkovich |
|
Profil || Suche |
|
008 24.08.2001, 15:18 m.a.b.b.b |
so verdient man sich den Respekt der Community....garantiert nicht... ---=B.L.Ä.N.D.E.R=- |
|
Profil || Suche |
|
009 24.08.2001, 15:57 Retro |
Jo... =\ Immer ruhig Blut @gb02! Also bisher gefällt mir die Methode von Overmind besser, weil ich sie verstehe:) Die andere ist mir zwar auch soweit klar, aber da ich noch nichtmal #define MAX_SHOOT_DISTANCE finde, schätze ich mal das ich den Code neu erstellen muss, aber wohin damit? Also Overminds Code würde ich ja eigentlich in waffe.cpp setzen, aber grad habe ich nochmal geguckt, und der Damage-Wert der Waffe (der ja im SP aus der skill.cfg geladen wird) garnicht in den FireBullets erwähnt wird, wie kann ich also den Wert übergeben? Das Prinzip ist mir jetzt klar, die Umsetzung noch nicht =\ --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
010 24.08.2001, 17:07 TheTinySteini |
LOL, erm, *räusper* tschuldige, dass ich lache *kicher* *wiederernstwerd* Mach dies hier: Dann in der CBaseEntity::FireBullets() schreibst du dann für jede Waffe, bei der der Distanzcheck sein soll, statt diesem hier: TheTinySteini |
|
Profil || Suche |
|
011 24.08.2001, 17:38 Retro |
Grr... danke für auslachen! :P Thx, aber eins versteh ich immer nor nicht ganz: -- Also: Und wenn der 'neue' Schaden größer ist, als der Maximale, dann wird er halt auf den Wert in der skillvar zurück gesetzt. Aber: DistanzSchaden = 20 * 1000 Units / 2048 = 9.77 Hmm, also wird der Schaden ja geringer, wenn das Ziel näher an mir dran ist?! -- P.S.: Nachdem ich mal über die Rechnung nachgedacht habe, ist mir klar geworden was MAX_SHOOT_DISTANCE angibt, vorher dachte ich die maximale Reichweite, aber es hat ja doch eher mit der Rechung zu tun;) --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
012 24.08.2001, 17:52 TheTinySteini |
Argh, sorry, da ist mir der Fehler passiert, den Another1 vorher meinte! Bin mir nicht sicher, ob man die < 0 Überprüfung braucht, aber ich glaube, dass das von der TraceAttack nicht überprüft wird, sprich, es könnte sein, dass man dem Gegner dann Lebenspunkte HINZUGIBT, wenn man ne negative Zahl hat... wäre bisschen blöd =) --TheTinySteini |
|
Profil || Suche |
|
013 24.08.2001, 18:04 Killing Me Softly |
die von anothergb02 vorgeschlagene "Grundformel" hieß: float finalDamage = MaxDamage-(MaxDamage*(vecStartShoot-vecEndShoot).Length()/MAX_SHOOT_DISTANCE))); also: womit wir das Problem, das bei wachsender Distanz der Schaden zunimmt schonmal gelöst hätten. Ich bevorzuge allerdings die Schreibweise: Wenn man das Ganze eh in die FireBullets() reinbaut, dann könnte man auf MAX_SHOOT_DISTANCE auch gleich verzichten und stattdesen flDistance (wird als Parameter übergeben) verwenden. Der Parameter gibt übrigens wirklich die maximale Reichweite der Waffe an. Die Überprüfung auf negativen Schaden kann man sich dann nämlich auch schenken. --Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt. |
|
Profil || Suche |
|
014 24.08.2001, 18:08 Retro |
Hmm, deine Formel versteh ich wieder net so ganz... aber was TTT gesagt hat gefällt mir schon ganz gut und ist für mich auch logisch... Also: DistanzSchaden = 20 - (20 * 2000 Units / 2048) = 0.47 Ich schätze das funzt genauso gut, oder? @KMS? Wenn die Damage-Werte mal anders seien sollen gibts ja noch die MAX_SHOOT_DISTANCE zum anpassen... Oder man definiert noch ne zweite. Oder hab ich wieder nen Denkfehler gemacht? lol bin heute net gut drauf! :p Thx! --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ Dieser Beitrag wurde am 24.08.2001 um 18:14 von Retro bearbeitet. |
|
Profil || Suche |
|
015 24.08.2001, 18:21 TheTinySteini |
Naja, was Killing Me Softly da geschrieben hat, ist im Prinzip das gleiche. Er hat schon recht, es ist bisschen besser vom Stil her. TheTinySteini |
|
Profil || Suche |

