Descentforum.DE Forum Index Descentforum.DE
Search | FAQ | Memberlist | Usergroups | Newsfeed Newsfeed  Register
Profile | Log in to check your private messages | Log in 
Chat | D3-Tactics | Downloads | Map | Links | Serverlist | Teamspeak 

Mod-Programmierung

 
Post new topic   Reply to topic    Descentforum.DE Forum Index -> Level-, Design und Entwicklungs - Forum
View previous topic :: View next topic  
Author Message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 29.03.2005, 18:52    Post subject: Mod-Programmierung Reply with quote

Hi

hab mich mal an den letztens besprochenen Mod gesetzt und hab dabei ein Problem:
Ich zähle die Treffer, die man gemacht hat ("Kills") und die Treffer, die man bekommen hat ("Deaths"),
in einem eigenen Array (auf jedem Rechner, also Client und Server)
auf dem Server berechne ich jetzt, ob man getroffen wurde:
- durch OnServerObjectCollide (Kollision mit einer Waffe)
- durch OnServerObjectShieldsChange (Kollision mit Lava/Schadenswelle)

nun ist leider das Array nur auf dem Server aktuell und ich muss es an die einzelnen Clients senden
hat jemand Erfahrung mit den Paket-Funktionen StartPacket/SendPacket/RegisterPacketReceiver

BTW kann man irgendwie herausfinden, ob man von einer Explosion (Rakete neben Schiff) getroffen wurde?
(ausser durch die Schildänderung)

Eagle


Last edited by VEX-Eagle on 29.03.2005, 19:03; edited 1 time in total
Back to top
View user's profile Send private message
Atan
Moderator


Joined: 27 Jul 2001
Posts: 876

PostPosted: 29.03.2005, 19:37    Post subject: Reply with quote

Quote:
hat jemand Erfahrung mit den Paket-Funktionen StartPacket/SendPacket/RegisterPacketReceiver


Ja, hat jemand,
aber am Besten untersuchst Du mal den Entropy und Assault Mod.
Da kannst Dir das alles abschauen.

Quote:
ob man von einer Explosion (Rakete neben Schiff) getroffen wurde?
(ausser durch die Schildänderung)


Unabhängig davon was dich trifft, es hat eine type, id, handle
darüber kannst du ermittlen was es war.
Dein OnServerCollide beinhaltet ja 'it_obj' darüber kannst Du nun ermittlen was für ein typ das war
und welche id es hatte. Dann vergleichst Du deine Wunschkanditaten damit.
Evtl gibt es auch bereits eine fertige D3-Routine, kenn aber im Moment leider keine.
Back to top
View user's profile Send private message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 29.03.2005, 19:44    Post subject: Reply with quote

Atan wrote:

aber am Besten untersuchst Du mal den Entropy und Assault Mod.
Da kannst Dir das alles abschauen.

hab ich 1:1 gemacht, klappt nicht (bin aber immer noch am rumprobieren)

Quote:

Unabhängig davon was dich trifft, es hat eine type, id, handle

haben die "Schadenswellen" die ID _SHOCKWAVE oder _FIREBALL?
wenn ja, wird das Collide-Event nicht mit denen ausgewertet


bei Entropy wird eine Funktion CallClientEvent benutzt, die funktioniert aber auch nicht
(weiss jemand, wie sie funktionieren sollte?)
Back to top
View user's profile Send private message
Atan
Moderator


Joined: 27 Jul 2001
Posts: 876

PostPosted: 29.03.2005, 21:10    Post subject: Reply with quote

Die Schockwelle ist ja mehr ein Waffeneffekt, kein Typ Waffe.
Eine Concussion z.B. ist eine Erschütterungsrakete vom Schadenstyp GD_CONCUSSIVE
Aber die Waffe an sich ist halt die Concussion.
Da gibt es dann 2 Schadenswerte, Schaden am Spieler und Schaden durch Auftreffen am Spieler.
Berechnet wird der Schadenswert wohl letzlich von der Engine anhand einiger Parameter mehr.
Die Frage die sich mir stellet, ist ob sich der Aufwand lohnt das Problem zu erforschen,
ist es denn wichtig ob die Ursache des Schadens ein direkter Treffer durch z.B. der Concussion ist,
oder eine berechnete Schadenswirkung durch den Nahtreffer dieser Rakete?
Der Verursacher war m.E. in jedem Fall diese Concussion und die kannst Du ja abfragen und vergleichen.
conc_id = DLLFindObjectIDName("Concussion"); (id == conc_id) ?
Oder unterscheidet D3 das noch weiter? Ich weiss es nicht im Moment, da müsste ich wohl erst ein paar Versuchsreihen durchführen.
Back to top
View user's profile Send private message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 30.03.2005, 18:35    Post subject: Reply with quote

ne das meine ich nicht
schreib mal in OnServerObjectCollide rein: me_obj->shields = 100;
starte eigenes Spiel Lokal -> wenn du mit concs gegen ne wand schiesst bekommst du schaden
die shockwave wird nicht von der funktion ausgewertet
Back to top
View user's profile Send private message
Atan
Moderator


Joined: 27 Jul 2001
Posts: 876

PostPosted: 30.03.2005, 19:14    Post subject: Reply with quote

Sorry, aber lass mich lieber nochmals nachfragen.
Wenn ich das richtig verstehe,
dann willst Du inerhalb der Funktion OnServerObjectCollide durch me_obj->shields = 100
das PlayerShild auf 100 setzen. Dann gegen die Wand ballern und Du erwartest, das das Shild sich dabei eigentlich nicht verringern sollte. (weil Du es ja auf 100 setzt)
Verstehe ich Deinen Gedankengang jetzt richtig?
Back to top
View user's profile Send private message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 31.03.2005, 18:49    Post subject: Reply with quote

haargenau
hab keine andere möglichkeit gefunden, die explosionen auszuwerten
Back to top
View user's profile Send private message
Atan
Moderator


Joined: 27 Jul 2001
Posts: 876

PostPosted: 31.03.2005, 20:55    Post subject: Reply with quote

Das Problem ist hier, dass man ein 'wenig' schräge denken muss.

Edit:
Rest des Beitrages wurde gelöscht, da leider am Thema vorbei.


Last edited by Atan on 01.04.2005, 19:59; edited 1 time in total
Back to top
View user's profile Send private message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 01.04.2005, 19:26    Post subject: Reply with quote

wenn das jetzt noch netzwerk-sicher ist, dann ist das gut - aber nicht die lösung
ich wollte wissen, wem die rakete gehört, die die explosion ausgelöst hat, von der man getroffen wurde grinsen
Back to top
View user's profile Send private message
Atan
Moderator


Joined: 27 Jul 2001
Posts: 876

PostPosted: 01.04.2005, 19:55    Post subject: Reply with quote

Quote:
..Verstehe ich Deinen Gedankengang jetzt richtig?

ergab:
Quote:
...haargenau...

nun kommt:
Quote:
... - aber nicht die lösung
ich wollte wissen, wem die rakete gehört, die die explosion ausgelöst hat, von der man getroffen wurde

Stellt sich mir nun doch glatt die Frage: 'Wo stand das denn bitte?'
Sorry, aber auf der Basis kann ich Dir nicht helfen.
Back to top
View user's profile Send private message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 01.04.2005, 20:05    Post subject: Reply with quote

das haargenau bezog sich auf "inerhalb der Funktion OnServerObjectCollide"
weil dann kann man durch me_obj->handle den spieler herausfinden
anders sehe ich keine möglichkeit

also neue "aufgabenstellung"
im netzwerkspiel: ein Mortar explodiert neben einem (nicht tödlich) und der name des schützen soll ausgegeben werden

das bekomme ich nicht hin, also plz help blaues auge
Back to top
View user's profile Send private message
VEX-Eagle
Falschparker


Joined: 04 Feb 2003
Posts: 807
Location: Stelle (Hamburg)

PostPosted: 02.04.2005, 10:38    Post subject: Reply with quote

funktioniert deine routine (die du gelöscht hast) auch, wenn man eine mega ins gesicht gedrückt bekommt?
die macht ja ~400 Schaden
Wenn du das in OnServerObjectShieldsChanged(object *obj, float amount) einbaust, musst du nur noch den Spieler herausfinden, dem das Objekt gehört und dann DoDamageToPlayer(plr,-amount) eingeben

kannst du deinen gelöschten code noch mal posten? würd den mal gerne ausprobieren


Last edited by VEX-Eagle on 02.04.2005, 16:49; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Descentforum.DE Forum Index -> Level-, Design und Entwicklungs - Forum All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum
PayPal


Descent is a trademark of Interplay Productions.
Descent, Descent II are © Parallax Software Corporation.
Descent III is © Outrage Entertainment.
Descentforum.DE and Descentforum.NET is © by Martin "Do_Checkor" Timmermann.
Powered by phpBB © 2001-2008 phpBB Group