Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
08.08.2001, 01:24
The_Overmind



Ich hab mal ne Frage *jaja ansonsten würd das hier nicht stehen :D*

Also es gibt ja auf der Server-Seite *hl.dll* zahlreiche Effekte um Waffen effektvoller zur Geltung bringen zu lassen wie zum Beispiel so nen Particle Burst, Smoke, Laser usw.

Auf der Client Seite *die angenehmste Seite des Spielers* gibt es so was doch sicherlich auch, nur die Befehle stehen nirgends rum. Solche Dinge wie Tracer oder Laser kann man sich ja aus dem bisherigen Code abgucken, aber wie siehts mit dem Rest aus ?

Und dann hät ich da noch ne Frage ?
In der HLCoder Mailinglist kam mal die Idee/Frage ob man Projektilwaffen wie zum Beispiel den Crossbow Client-seitig machen kann ?
Ist das möglich ja/nein und wie würde man dann sowas machen ??

Vielen Dank schon mal im Vorraus :))

--


Dieser Beitrag wurde am 08.08.2001 um 01:25 von The_Overmind bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
08.08.2001, 13:05
Mazze



Ich hab den Crossbow schon mal client-side gemacht, aber nicht sehr gut!
Mich würde interresieren, wie man solche Funktionen einfacher in die client.dll holen kann! Die sind ja alle schon in der mp.dll definiert, reicht es da nicht einfach eine header-datei zu schreiben???
Eigentlich gehts mir um die Grenade-Funktionen.....

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
002
08.08.2001, 14:10
The_Overmind



ich weiss jetzt die Befehle für CLient Seite.
DIe stehen alle in der r_efx.h im Common verzeichniss.
Da sind solche Sachen wie Particle Burst usw. und auch eine Funktion names Projectile. Die köntne vielleicht sowas machen *wie mit dem Crossbow*.
Das dumme nur is ich versteh die Funktion nit.
( *R_Projectile ) ( float * origin, float * velocity, int modelIndex, int life, int owner, void (*hitcallback)( struct tempent_s *ent, struct pmtrace_s *ptr ) );

origin is klar, kann man Gun Position machen.
Velocity is auch klar, da geht ein Vector.
Modelindex is auch klar.
Life sowieso.
Owner wird dann schwerer, weil ich nicht weis wie man solche zuweisungen in der client.dll macht.
Void (*hitcallback)(...); und so nen Kram versteh ich erst gar nicht.

Kann mich da vielleicht mal jemand aufklären ??

--

zum Seitenanfang zum Seitenende Profil || Suche
003
08.08.2001, 15:21
Another1



owner is der entity index welchem das projektil gehört, bekommst du entweder serverside mit myEntity->entindex() oder clientside mit myEntity->index;

so und hitcallback is einfach nen pointer auf ne function die aufgerufen werden soll wenn das projectil was "hittet"

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
004
08.08.2001, 19:05
TheTinySteini



Hier ein kleines Beispiel:

void SpTestHitCB( TEMPENTITY *pTemp, pmtrace_t *pTrace )
{
gEngfuncs.Con_Printf("Sprite collision, deleting\n");
pTemp->die = 0.0;
}

Und dann in der EV_SpriteTest oder wie auch immer:

m_iGlow = gEngfuncs.pEventAPI->EV_FindModelIndex( "sprites/hotglow.spr" );

TEMPENTITY *pTemp = gEngfuncs.pEfxAPI->R_TempSprite(
origin,
forward * 300,
0.4,
m_iGlow,
kRenderTransAdd,
kRenderFxNoDissipation,
0.5,
8.0,
FTENT_COLLIDEWORLD
);

pTemp->entity.angles = angles;
pTemp->entity.curstate.renderamt = 192;
pTemp->clientIndex = idx; // don't hit player that created this sprite
pTemp->hitcallback = SpTestHitCB; // callback when it hits something

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy


Dieser Beitrag wurde am 08.08.2001 um 19:14 von TheTinySteini bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
08.08.2001, 20:12
Prefect



Crossbow und so clientseitig ist OK, aber Granaten würd ich auf jeden Fall serverseitig lassen - man kann ja die Waffe predicten, aber die eigentliche Granatenentity sollte auf dem Server bleiben, weil bei der ja Kollision etc.. eine wichtige Rolle spielt, und die kann einfach nicht zuverlässig auf dem Client predictet werden - und wenn überhaupt, dann nicht ohne sehr großen Aufwand.

Btw ttt: Software kann man auch kicken: rm -rf

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
006
08.08.2001, 20:20
TheTinySteini



Jo, da läuft man sehr große Gefahr, dass die Dinger dann out of sync fliegen - wäre schlecht.

Btw Prefect: Dich kann man auch kicken: /kick #thewall.de Prefect

Naja, Ernst beiseite :D

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
007
08.08.2001, 21:33
The_Overmind



Hey cool
vielen Dank
Das hät ich alleine *leider* nie rausgekriegt :))

--

zum Seitenanfang zum Seitenende Profil || Suche
008
08.08.2001, 23:19
Mazze



Ahm.......jo....Granaten serverside lassen..ok!
Aber wie denn???
Wenn ich das ding in der client.dll kompiliere zeigt er immer linkerfehler an....

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
009
09.08.2001, 17:01
TheTinySteini



Hm? Wat denn? Lass doch den gesamten Granatencode serverside, und schick halt dann für die Explosion und so nen Event rüber zum Client. Gut, und die Playeranimationen könnteste auch noch clientseitig machen. Aber so ziemlich alles, was in der ggrenade.cpp ist, würd ich auch dort lassen.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
010
10.08.2001, 00:52
Mazze



Sorry!
Ich hab mich wohl ein bisschen blöd ausgedrückt!

Ich will ne Waffe mit Granatwerfer machen!
Kann ich diese Waffe gar nicht client-side machen?

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
011
10.08.2001, 01:59
The_Overmind



Doch!
Du kannst mit den Events Animationen, Sounds usw. machen.

Aber das Grenade->Create() *oder was weiss ich musst du serverseitig machen. Also die Waffe selbst kannst mit Events machen, nur die Granate samt Thinks und Funktionen nicht.

--

zum Seitenanfang zum Seitenende Profil || Suche