.| Autor | Beitrag |
|---|---|
|
000 03.01.2001, 15:09 Thec |
Hi! Hab ein kleines Problem. Ich will erreichen, dass wenn der Player beispielsweise von einer Rakete getroffen wird ein paar Meter weggeschleudert wird. Das gleiche soll bei allen anderen Waffen auch passieren, jedoch nicht so stark, d. h. ne MP5 soll einen nur leicht wegdrücken. Außerdem sollen alle Waffen Rückstoß haben. Wie kann ich das erreichen? -- |
|
Profil || Suche |
|
001 03.01.2001, 16:06 icher |
mhhh...ich rate einfach mal drauflos: wie wärs, wenn du dir ma den code vom trigger_push (?) ankuckst? kA obs das is, aber ich hätte da angefangen. sorry, ich würde kucken, hab aber gerad das sdk net da. --icher - ichers Planet | Merlins-Net | 193966768 no matter where the sun goes down |
|
Profil || Suche |
|
002 03.01.2001, 18:22 IH82W8 |
Wie wärs damit, einfach seine Geschwindigkeit zu erhöhen?
IH82W8
|
|
Profil || Suche |
|
003 03.01.2001, 18:32 Another1 |
Jo, das sollte klappen! --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
004 03.01.2001, 18:48 Thec |
öhhm...könntest du das mal mit sourcecode etwas erklären? ich bin noch nicht so der powercoder und weiss nicht wie ich das jetzt umsetzen soll. danke! -- |
|
Profil || Suche |
|
005 03.01.2001, 18:57 BloodyHarry |
Könntet ihr das ganze bitte nochmal für "dumme" Newbies wiederholen? (auf deutsch bitte nicht so ein Fach-Chinesisch *bitte*) -- |
|
Profil || Suche |
|
006 03.01.2001, 19:21 IH82W8 |
Ok, da ich gleich weg muss, zeige ichs euch an einem kleinen Beispiel:
Vector2D vec2LineOfSight ; // ich zeige das ganze mal nur im 2dimensionalen, wenn ihr wollt, nehmt halt die 3.dimension(z) dazu.. vec2LineOfSight = ( pev->origin - m_pPlayer->pev->origin ).Make2D();
Damit sollte der Spieler, der die Rakete abgefeuert hat (!!!), einen kleinen Schub erhalten..
IH82W8
|
|
Profil || Suche |
|
007 03.01.2001, 19:48 Another1 |
naja, es geht auch dreimal so einfach: m_pPlayer->pev->velocity = m_pPlayer->pev->velocity + (( -pev->origin + m_pPlayer->pev->origin ) * 200);
Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
008 03.01.2001, 20:42 apfelkorn |
noch einfacher:
|
|
Profil || Suche |
|
009 03.01.2001, 20:58 BloodyHarry |
*lol* -- |
|
Profil || Suche |
|
010 03.01.2001, 21:01 DarKnight |
2000? WOW - muss ich mal ausprobieren! *ggg* --void CHudSayText :: EnsureTextFitsInOneLineAndWrapIfHaveTo( int line ) -- Aja? |
|
Profil || Suche |
|
011 03.01.2001, 23:00 IH82W8 |
ok, ich wollte es übersichtlich machen..
|
|
Profil || Suche |
|
012 04.01.2001, 04:03 Another1 |
@apfelkorn: außerdem musste vorher noch gpGlobals initialisieren, mit UTIL_MakeVectors, ich würd immer noch meine methode bevorzugen, außerdem geht speed > 2000 nich =) --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
013 04.01.2001, 11:01 IH82W8 |
hm, ok.. nur eines: ich würde den Vektor trotzdem vorher noch "normalisieren", da der Spieler sonst umso schneller ist, je weiter er von der Explosion weg steht. Ich denke, daß wir uns darauf einigen können ;) P.S.:Den Effekt könnte man noch umdrehen, daß je weiter man wegsteht, desto weniger Schub bekommt man... -- |
|
Profil || Suche |
|
014 04.01.2001, 11:51 Thec |
so, ich habs ausprobiert. mit diesem code hier
wird man angezogen, also hab ich das plus vor der klammer zu nem minus gemacht, dann wird man abgestoßen. jetzt habe ich aber das problem, dass der player von der Rakete abgestoßen wird und nicht von der Explosion. Ich schätze mal, dass es daran liegt, dass ich den code in die Primary Attack Funktion eingefügt habe. So, wenn ich den Code jetzt in CRpgRocket::RocketTouch
Was kann ich denn jetzt machen, dass der Player von Explosion weggedrückt wird, ebenso wie alle Gegner? Thx Thec PS. Ich hab mal das erste Minuszeichen in der Klammer weggemacht, is auch lustig, der Player fliegt der Rakete hinterer =) -- |
|
Profil || Suche |
|
015 04.01.2001, 15:01 Another1 |
mmh, dann such mal in CGrenade::Explosion und schaue von da wie der code weitergeht (e.g: bis zur eigentlichen explosion alle funktions aufrufe verfolgen, du dürftest dann in einer while(.... = UTIL_FindEntityInSphere(...)) { .... }; schleife landen, die einfach alle entities durchtestet die von der explosion beinflusst werden, tu da einfach den code hin, sagen wir mal, das dort getesteten enties werden in CBaseEntity *pEntity; gespeichert, dann tu einfach diesen code dahin:
Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
016 04.01.2001, 15:56 Thec |
hm, erstens gibts bei mir keine funktion, die CGrenade::Explosion heisst, zweitens gibts in der kompletten ggrenade.cpp nur eine einzige while schleife und die ist in der funktion: CGrenade :: UseSatchelCharges hab das sdk 2.0... -- |
|
Profil || Suche |
|
017 04.01.2001, 18:47 Another1 |
mmh, bist 'n bissle blind (sorry =), aber ich hab se gefunden:
und die ruft dann "RadiusDamage ( pev, pevOwner, pev->dmg, CLASS_NONE, bitsDamageType );" auf, vielleicht schonmal die 3 weißen Editboxen oben in MSVC entdeckt?
Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
018 04.01.2001, 23:25 Prophyle |
Lustig...ich hab gerade genau dasselbe gecoded, in der CBaseEntity::FireBullets( da hat man dann ja eh den Schussvector ).
Prophyle, Coder beim SGT: http://mod.famkos.de.
|
|
Profil || Suche |
|
019 05.01.2001, 12:20 Thec |
Jaaa, ich mach aber nen Multiplayer MOD, da brauch ich das nicht. Trotzdem danke für den Hinweis. -- |
|
Profil || Suche |
|
020 05.01.2001, 15:51 Prophyle |
*g*
Prophyle, Coder beim SGT: http://mod.famkos.de.
|
|
Profil || Suche |
|
021 06.01.2001, 20:06 Prefect |
Ihr seid alle so krass blind (sorry). Warum programmiert ihr nicht einfach den schon existierenden Code in TakeDamage() um, der die Spieler bei Explosionen in der Gegend rumschiebt? cu,
Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
022 06.01.2001, 20:55 Another1 |
Jo, hätt ich auch gemacht, aber es sah irgendwie so aus als wenn es von der rocket aus gecodet werden sollte! --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
023 06.01.2001, 21:54 IH82W8 |
wie langweilig ;) -- |
|
Profil || Suche |
|
024 07.01.2001, 15:11 Prophyle |
@Prefect Könntest du schon aber dann müsstest du die TakeDamage von jedem ENT separat umcoden, was glaub ich auch dir zuviel ist. --Prophyle, Coder beim SGT: http://mod.famkos.de.
|
|
Profil || Suche |

