Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
06.12.2004, 22:10
HammerBlade



Hallo,

Wenn ich einen Multiplayer-Mod anfange, den Code kompiliere und den Mod per Batch starte (denn es ist anscheinend nicht möglich seinen eigen Mod ins Steam-PlayGames-Menu aufzunehmen) steht ich da vor einem Buggy und hab nicht mal eine HEV. Ich denk mir: "Ist schon komisch..."

Probier ich dann 'impulse 101' aus, kriegt ich eine MP5Navy und eine HE. Weiter hin stell ich fest, dass das HUD total kaputt ist und nicht richtig funktioniert.

Also raus, mal in den Code schauen... da stelle ich dann fest es gibt 2 Klassen für den Player gibt:

Quellcode:CHL2_Player
CSDKPlayer
und eine Basisklasse:

Quellcode:CBasePlayer Werfe ich einen Blick auf die Impulse-Kommando-Behandlung stelle ich fest, dass aus irgendwelchen Gründen die Funktion dafür aus CSDKPlayer genutzt wird:

Quellcode:void CSDKPlayer::CheatImpulseCommands(int iImpulse) Frage: Basiert das SDK für MP wirklich auf CS:S, oder stell ich mich zu dumm an?

Ich hätte erwartet, dass wenn man eine MP-Mod anfängt, dass dieser dann auf HL2DM basiert, so dass man ein *vernünftige* (und nicht ein halbes CS:S) Grundlage hat auf der man arbeiten kann. Aber dies scheint nicht so zu sein.

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way


Dieser Beitrag wurde am 06.12.2004 um 22:13 von HammerBlade bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
06.12.2004, 22:40
Cokie



Also ich denke mir mal das, CSS eher geplant war und dadruch das ding als multiplayer code dabei liegt. Wobei das wichtigste ja mit sichehrit draus sein. wird. und bloß die anweisung für denn model auf ruf usw. drin erhalten geblieben ist. sonst wäre das cheaten zu einfach.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
06.12.2004, 22:54
laber



CSDKPlayer
C SDKPlayer

kann es nicht sein, dass das einfach "Class" oder sowas heisst, wenn man da "cs" rausliest dann sieht das ja recht komisch aus
CS DKPlayer
..
/edit
mein programmiertechnisches wissen beschränkt sich auf niedriges basic niveau, also nur ein spontaner gedanke das da oben :)

--

(\_/)
(O.o)
(> < ) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.


Dieser Beitrag wurde am 06.12.2004 um 22:55 von _laber bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
06.12.2004, 23:18
HammerBlade



Btw. ich code schon ein bissl länger... mir ist klar, dass das C in CSDKPlayer für Class steht und das SDK in CSDKPlayer für Software Development Kit...

Zitat:
HammerBlade
Probier ich dann 'impulse 101' aus, kriegt ich eine MP5Navy und eine HE. Weiter hin stell ich fest, dass das HUD total kaputt ist und nicht richtig funktioniert.
Deshalb komm ich auf CS:S.

Ausserdem kann ich mir per 'give' auch keine HL2-Waffen, etc. geben:

Quellcode:give item_suit
give weapon_physgun
give weapon_crowbar
...
geht nicht, obwohl alles im Code steht und auch per:

Quellcode:LINK_ENTITY_TO_CLASS(item_suit, CItemSuit);
LINK_ENTITY_TO_CLASS(weapon_physgun, CWeaponGravityGun);
LINK_ENTITY_TO_CLASS(weapon_crowbar, CWeaponCrowbar);
auch an die Entities gebunden wird, also spawnbar seinen müsste...

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way

zum Seitenanfang zum Seitenende Profil || Suche
004
07.12.2004, 11:28
hausi



Ich arbeite jetzt auch schon seit der veröffentlichung des SDKs damit (mit dem MP-Part) und wenn man das Prinzip mal kapiert hat, ist es relativ einfach, einen HL2DM zu machen:

1. HL2DLL / HL2ClientDLL in die Defines des Projektes aufnehmen
2. Alle HL2-Files, die man will (weapon_*, npc_*) mitkompilieren lassen (Eigenschaften des Files -> Vom Build ausschliessen = Nein)
3. Alle Fehler beseitigen (kommen noch einige Files dazu)

Das Resultat ist eine noch lange nicht perfekt Version des HL2DM (z.B. das HUD ist immer noch "kapputt"), von dem man weiterarbeiten kann... Ich mache ev. auch mal ein .patch-File für die Änderungen für ein HL2-MP-Modus, da die gelegte Basis für vieles doch ein bisschen knapp ist...

--

zum Seitenanfang zum Seitenende Profil || Suche
005
07.12.2004, 11:53
HammerBlade



An das mit dem "Vom Build ausschliessen" hat ich garnicht gedacht... thx.

Aber wie lange hast du gebraucht um alle Fehler zu fixen? Ich hab da sehr viele "File not found"-Fehler bei Headern, oder "Basisklasse nicht definiert"-Fehler.

Das ist ne Menge Arbeit. Warum hat Valve nicht vernünftig dokumentiert, wie man das SDK für die verschienden Games umstellt? Oder war sowas garnicht vorgesehen?

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way

zum Seitenanfang zum Seitenende Profil || Suche
006
07.12.2004, 13:32
hausi



Ach ja, das hab ich noch vergessen... Alle verzeichnisse in den include search path aufnehmen...

Ich habe im Moment zu Hause einen Stand mit Zombies, Fastzombies, Headcrabs sowie Kleiner, Alyx und Barnie und den meisten Waffen. Die Combines haben irgendwie noch nicht geklappt (kompiliert fehlerfrei allerdings stürzt HL2 beim spawnen eines Combines ab).

[Edit]
Gleich mal Signatur abstellen... Das Doom III Forum will ich ja gar nicht mehr O_o.
[/Edit]

--


Dieser Beitrag wurde am 07.12.2004 um 13:33 von Superhausi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
07.12.2004, 17:34
HammerBlade



Danke Superhausi,
ich hab das mal umgesetzt und >hier< zur Verfügung gestellt. Jetzt hat man wenigstens schon mal eine HEV und HL2-Waffen...

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way


Dieser Beitrag wurde am 07.12.2004 um 17:34 von HammerBlade bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
07.12.2004, 18:37
HammerBlade



Es wird wohl doch noch ein HL2DM-SDK geben...

http://www.chatbear.com/board.plm?a=viewthread&t=599,1102314392,28722&id=744944&b=4991&v=flatold

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way

zum Seitenanfang zum Seitenende Profil || Suche
009
08.12.2004, 18:42
IceQ



Hi2all
Also das SDK ist relativ nackt und ist wohl eher ein Hybrid aus HL2, CS:S und TF.
Ich würde es erlichgesagt nicht "Fehler" Fixen nennen. Das SDK bietet, wenn man sich eine weile damit auseinandergesetzt hat, sehr viele Sachen und man kann wenigstens beinahe von Null anfangen und muss nicht erst jeglichen Trash wegschmeissen den man nicht braucht.
Ich bin mehr oder weniger zufrieden und man kann leicht neue Dinge hinzufügen oder umschreiben ohne gleich mit der angst zu leben zig andere verbundenen Sachen zu verquarksen.

Wenn du alles von HL2DM haben willst ist das natürlich dir überlassen ich selbst brauche es für mein Projekt nicht und bin froh drum das die Grundpfeiler gelegt sind aber nicht vollendz aufgebaut.

--

zum Seitenanfang zum Seitenende Profil || Suche
010
08.12.2004, 19:57
HammerBlade



Jedem das seine...

Aber dann hätte Valve mal das Maul auf machen sollen, was Sache ist, wie man das SDK für verschiedene Sachen konfiguriert, wie HL2SP/DM, CS:S, TF und das da sonst noch alles halbfertig drinsteckt.

Ich hätte gerne ein SDK wie für HL1, wo ich direkt auf einem vorhanden Multiplayer aufbauen kann und nicht das *Ventil* ständig neu erfinden muss.

Es ist klar, wenn man (wie du?) nicht in die Richtung Deathmatch gehen will, also z.B. HLRally, es einfacher ist den ganzen Code für HL2DM nicht zu haben, sondern wie du sagst ein *nacktes* SDK zu haben, wo man dann alles nach seinem Gusto reincodet.

Aber das wäre ja nicht das Problem, da das Createn eines neuen Mods einem durch Steam ja eh abgenommen wird, könnte es da ja statt der Auswahl zwischen SP und fake/basic MP Code, folgendes zur Wahl geben:

- vollständiger SP Code -> HL2SP
- grundlegender SP Code -> Alles grundlegende für SP ist da, aber nichts spezifisches wie Waffen oder so
- vollständiger DM Code -> HL2DM (das wäre das was ich will)
- grundlegender MP Code -> Alles grundlegende für MP ist da, aber nichts spezifisches wie Waffen oder GameRules (das wäre das was du willst)

Beim grundlegnenden SP/MP Code, müsste es dann noch Samples geben, die veranschaulichen, wie man z.B. Waffen oder sonstige, das hierbei weggelassen wurde, wieder nach seine Gutdünken reinbaut.

Btw, so wie das SDK für den MP jetzt ist musst du auch erstmal den SDK-Sample-Code los werden.

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way


Dieser Beitrag wurde am 08.12.2004 um 20:01 von HammerBlade bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
011
09.12.2004, 02:29
IceQ



Hehe das klingt alles relativ anschuldigend auf mich *g* Vieleicht hab ich dich aber auch ein wenig falsch verstanden. Sass gerade 4 Stunden vor dem Code und wie man vieleicht sieht ist es auch schon 2 Uhr.

Ja ich weiss was du meinst und versteh dich erlichgesagt auch.
Mit dem DM Code meinste die Implementierung der Physik so wie bei HL2DM?

Ich denke das wollte Valve eben eigentlich nicht. Sie schrieben ja bevor sie den DM Modi rausbrachten das es nur möglich sei die Physik wie bei CS in einen MP Mod einzubauen. (Aufnehmen von Gegenständen und das weggebumpe)
Nachdem sie aber selbst nen DM gemacht haben, wiederlegten sie ja eigentlich ihre Aussage.

Wenn man seinen Mod startet gibts ja eben wie du auch schon geschrieben hattest diese unmengen an "Fehler". Ich persönlich nutzte diese Informationen zur orientierung und startete nicht sofort eine Auffüll-Aktion. (Konnte ich auch nicht da mir der Content fehlte)
Auch was die SDK-Sample-Codes angeht fand ich recht schnell einen Einblick in die wichtigsten Sachen. Klar einige Sachen nervten mich zu beginn weil sie fehlter oder als total sinnlos erschienen (oder ungebraucht) aber mit der Zeit fand ich eine gute Übersicht und wusste wo ich was ansetzten musste.

Ich versteh dich glaub mir, für mich selbst ist es aber nicht derartig schlimm. Zu beginn sah ich das wie du, später realisierte ich das ich gar nicht so schlecht vorwärts komme für meine Idee.

Trotzdem hoffe ich das da eventuell für Modder wie dich noch was nachgeschoben wird und ich selbst ja doch noch davon profitieren kann.

So long Ice

--

zum Seitenanfang zum Seitenende Profil || Suche
012
09.12.2004, 06:45
HammerBlade



@IceQ:

Das ist keine Anschuldigung gegen dich, sondern eine Feststellung unsere verschiedene Standpunkte.

Das mit der Physik in MP ginge nur so beschiessen wie es in CS:S ist (finde ich) eine reine Lüge von Valve, weil sie es nicht besser coden konnten/wollten oder zu faul waren es richtig zu machen.

Btw:

Genau so wie andere Sachen in HL2 gibt, bei denen Valve (meiner Meinung) nach zu faul war:

z.B. schieben NPC einen einfach aus dem Weg, obwohl sie eine auch umgehen könnten -> wo ist den die Wegfindung? Oder Wenn man Alyx oder Dr. Kleiner ein Fass an den Kopf wirft, reagieren die darauf kein Stück -> wo ist da die dynamische Interaktion mit dem Spieler (Alyx könnte sagen: "Hey lass das Gordon!")? Oder warum kann ich (wie in den E3-Videos) keine Türen blokieren? wenn der Combine durch will, macht der einfach die Tür auf und alles fliegt durch die Gegend -> wo ist da das kontextsensitive Verhalten der KI?

Entwerder war Valve zu faul oder sie haben den Mund einfach zu voll genommen!

--

"Mit C++ (noch besser mit C) kann man sich _sehr_ leicht in den Fuss schiessen." - theDon
Auspack und freu! - Auszug aus einer, aus dem japanischen übersetzten, Bedienugsanleitung für ein Spielzeugaquarium.
--
Photon Audio Player | Majestic42.net | How To Ask Questions The Smart Way

zum Seitenanfang zum Seitenende Profil || Suche