Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
27.12.2007, 20:27
Behemoph



Hi Leute :)

Bin neu hier und hoffe auf Hilfe :)

Habe vor einiger Zeit begonnen, einen MP Mod zu erstellen. Dabei bin ich auf folgende Probleme gestoßen:

-NPC stehen nur da und machen nichts, trotz ai_relationship etc. <- denke mal, dass ich da einiges coden muss, nur... gibt es dafür irgendwelche tuts? In synergy (hl2 multiplayer mod) wurde dies schließlich auch umgesetzt

-keine footsteps <- die sounds habe ich, nur weiss ich nicht, wie ich sie einbinden kann

-SteamAppId 320 oder 215?

-wie bekomme ich diese gelben streifen weg, welche entstehen, wenn man zb mit einer pistole oder dem smg schießt. (kondenzstreifen der Kugeln) ich hoffe ihr wisst was ich meine^^

Habe schon einiges gecodet, finde nur iwie keine Lösung :( Suchfunktionen und stundenlanges googlen haben mir auch nicht geholfen...

Ich hoffe ihr könnt mir helfen :)
oder wenigstens ein paar Fragen beantworten :)

--


Dieser Beitrag wurde am 27.12.2007 um 21:47 von Behemoph bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
30.12.2007, 02:23
Bluthund



Auch wenn ich mit dem SourceSDK nix am Hut hab, hier mal ein Versuch:

1. ka, sry (wobei ich mir nicht vorstellen kann, das Valve vor dem Release das SDK um die AI-Funktionen "erleichtert" hat)
2. Footsteps sollten eigentlich immer da sein, mp_footsteps (edit, grad im SDK nachgeschaut heißt jetz:) sv_footsteps evtl auf 0?
3. zu unkonkret um da was sagen zu können...
4. die Dinger heißen Tracer, solltest du im SDK auch unter dem Namen finden

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 30.12.2007 um 02:27 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
03.01.2008, 11:41
Behemoph



Ok, danke für deine Antwort :)

Also das mit den Tracern habe ich gefunden, danke :)

Die footsteps sind bei mir komischerweise nicht :( sv_footsteps ist bei mir auf 1 aber ich höre trotzdem nichts :(

das mit der SteamAppId... was ist der Unterschied zwischen 320 und 215?

--

zum Seitenanfang zum Seitenende Profil || Suche
003
03.01.2008, 13:56
Adrian_Broher
Admin


"was ist der Unterschied zwischen 320 und 215?"

Bei 320 basiert das Spiel auf 'Half-Life 2: Deathmatch' und kann dessen Ressourcen (Engine, Modelle, Scripts, ...) mitbenutzen.

Bei 215 basiert das Spiel auf dem 'Source SDK Base' und kann dessen Ressourcen (Engine, Modelle, Scripts, ...) mitbenutzen.

http://developer.valvesoftware.com/wiki/Source_SDK_Base lies dir einfach mal die FAQ durch.

--

There is nothing wrong with high standards. It's your problem that you don't meet them.
If you think it's simple, then you have misunderstood the problem.
When a customer says "nothing has changed", assume they're lying.

zum Seitenanfang zum Seitenende Profil || Suche
004
06.01.2008, 16:50
RikkuZooo



oder mach einfach das hier:

http://developer.valvesoftware.com/wiki/Mounting_Other_Content

--

AirChina Mobile

zum Seitenanfang zum Seitenende Profil || Suche
005
07.01.2008, 17:55
Behemoph



danke danke für eure Posts :)

Nocheinmal zu den NPC´s: Könnte ich nicht die Npc-Multiplayer-files im Code mit denen der Singleplayer Variante austauschen? Oder ist das garnicht möglich?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
07.01.2008, 21:58
hausi



Versuchs mal damit.

--


Dieser Beitrag wurde am 07.01.2008 um 21:58 von hausi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
08.01.2008, 16:04
Behemoph



Jo, da war ich auch schon.. nur leider ohne Erfolg. ^^

Hmmm omg sry, ich hätte da noch eine Frage :>

Kann mir jemand sagen, in welcher datei steht, welche Waffe man beim Spawn in der Hand hält? bei hl2mp_player.cpp? finde es iwie nicht :(

--

zum Seitenanfang zum Seitenende Profil || Suche
008
08.01.2008, 16:28
Bluthund



Wurde bei HL in der Spawn-Funktion des CBasePlayer gemacht. Wird bei HL2 nicht anders sein.

Hab grad nachgesehen, ist immernoch so. Genauer Ort der Waffenvergabe:
Quellcode:CMultiplayRules::PlayerSpawn Entsprechend auch in der PlayerSpawn Methode der GameRules die du nutzen möchtest, insofern du von den Standardrules abweichende hast.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
009
08.01.2008, 20:30
Behemoph



Äääähmmm... Also, erstmal danke für deine schnelle Antwort.. wo hast du das denn bitte gefunden? finde nur

Quellcode:void CHalfLife2::PlayerSpawn( CBasePlayer *pPlayer )
{
}
und zwar in der hl2_gamerules.cpp

AAaach ne hier! :>
in der multiplay_gamerules.cpp gibt es

Quellcode:void CMultiplayRules::PlayerSpawn( CBasePlayer *pPlayer )
{
bool        addDefault;
CBaseEntity    *pWeaponEntity = NULL;

pPlayer->EquipSuit();
        
addDefault = true;

while ( (pWeaponEntity = gEntList.FindEntityByClassname( pWeaponEntity, "game_player_equip" )) != NULL)
    {
        pWeaponEntity->Touch( pPlayer );
        addDefault = false;
    }
}
meinst du das? Könntest du mir dann bitte noch verraten, was ich dort hineinschreiben müsste, wenn man an der Spawn ein SMG1 in der hand haben soll? :>

--

zum Seitenanfang zum Seitenende Profil || Suche
010
08.01.2008, 21:20
Bluthund



Steht doch da: addDefault = true
Unter die while-Schleife sollte dann so nen Konstrukt:
Quellcode:if( addDefault )
{
    pPlayer->GiveNamedItem( foo ); // Give weapon foo
    pPlayer->GiveNamedItem( bar ); // and also bar

    // and also some ammo
    // (...)
}
Hättest aber auch einfach selbst finden können indem du einfach mal geschaut hättest wie zB impulse 101 die Waffenvergabe bewerkstelligt (das musst ich nämlich jetzt auch tun).
Ansonsten hätte dir auch
Quellcode:CHalfLife2Survival::PlayerSpawn gute Ansätze geliefert.

Mehr probieren, weniger fragen.

Hab grad mal bisschen im SDK gewühlt... Ich dachte ja das HLSDK war kryptisch aber das Gebilde von Source SDK ist ja das letzte... Wofür haben die nen Header und Source Ordner wenn im Source Ordner auch Header liegen?

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 08.01.2008 um 21:23 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
011
09.01.2008, 15:15
Behemoph



Danke schön... sry für die vielen Fragen. Aber echt, vielen Dank für die Hilfe!
Damit wäre ein weiteres Problem gelöst :))

Achso und:
RikkuZooo hatte einen link gepostet:
iwas mit mounting other content. Diese Schritte habe ich alle befolgt, nur jetzt steht, wenn ich ein Spiel im Mod starte, beim startbild oben links: statt Half-Life auf einmal Day of Defeat Source.
Habe auch schon alles rückgängig gemacht, trotzdem noch DoDs ...

sooo. habe es gerade ausprobiert mit foo und bar.
nur... ich merke grad, das ich an meine grenzen gestoßen bin :(

Quellcode:pPlayer->GiveNamedItem( "weapon_stunstick" )( "foo" );
         pPlayer->GiveNamedItem( "weapon_stunstick" )( "bar" );
Doch irgendwie scheint das sehr falsch zu sein :> bin jetzt echt schon am verzweifeln hier, sry :( help pls

error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt
error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt

--


Dieser Beitrag wurde am 09.01.2008 um 16:33 von Behemoph bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
09.01.2008, 16:37
hausi



O.o Lern C++, aber wirklich. Wieso sollte GiveNamedItem einen Funktions-Pointer zurückgeben? Und die Fehlermeldung ist wirklich nicht zu schwer zu verstehen, oder doch?

--

zum Seitenanfang zum Seitenende Profil || Suche
013
09.01.2008, 16:44
Bluthund



OMG O_O
Nimm hausis Rat an. Das geht ja mal garnicht. Du scheinst ja überhaupt nicht zu wissen, was du da überhaupt versuchst zu tun.
Die Fehlermeldung ist mehr als eindeutig und luxuriöserweise sogar deutsch...

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche
014
09.01.2008, 20:27
Behemoph



Jo... Ihr habt ja recht. Bringt wohl alles nichts. Habe mich bis jetzt nur durch tutorials durchgeschlagen :>
Aber sobald ich etwas versuchen will, habe ich garkeinen plan :(
Könntet ihr mir trotzdem aus erbarmen (*g*) die Lösung des Problems erklären? :> :> :>

--

zum Seitenanfang zum Seitenende Profil || Suche
015
09.01.2008, 20:42
PotKinRot



Also ich hab von C++ überhaupt keine Ahnung, bin jedoch mit einigen Grundlagen des Programmierens vertraut. Das folgende ist reine Spekulation, also seht es mit Erbarmen an:
Bluthund hat geschrieben, es geht folgendermaßen:
Quellcode:if( addDefault )
{
    pPlayer->GiveNamedItem( foo ); // Give weapon foo
    pPlayer->GiveNamedItem( bar ); // and also bar

    // and also some ammo
    // (...)
}
Du hast daraus gemacht:
Quellcode:if( addDefault )
{
     pPlayer->GiveNamedItem( "weapon_stunstick" )( "foo" );
     pPlayer->GiveNamedItem( "weapon_stunstick" )( "bar" );

    // and also some ammo
    // (...)
}
Was mich wundert:
Bluthund hat die Prozedur mit einem Argument aufgerufen, du rufst sie mit einem anderen Argument auf, und hängst das Dummyargument von Bluthund ("foo" "bar"-was soll die Engine davon denken?) hinten an?! Zudem gibst du dem Player meines Verständnisses nach damit auch noch zwei mal den Stunstick.

Ergo wäre meines Erachtens nach die Lösung
Quellcode:if( addDefault )
{
    pPlayer->GiveNamedItem( weapon_stunstick ); // Give weapon_stunstick
    //pPlayer->GiveNamedItem( weapon_bar ); // and also bar

    // and also some ammo
    // (...)
}
Was Hausi meint ist mir nicht ganz klar, er scheint aber das selbe Problem anzusprechen. Anscheinend wird in C++ der Rückgabewert in ein zweites paar Klammern eingeschlossen. Aber das ist jetzt völliges Unwissen ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
016
09.01.2008, 21:02
Bluthund



@PotKinRot:
Wenn du in C/C++ so ein Konstrukt hinschreibst
Quellcode:Funktion( Parameterliste1 )(Parameterliste 2); muss der Rückgabewert von Funktion ein Funktionspointer des Typs
Quellcode:(*fp)( Parameterliste2 ) sein.

Das ist zwar überaus nett, dass du hier versuchst zu helfen (wobei in deiner Lösung noch die Quotes um weapon_stunstick fehlen, da die Funktion einen Parameter vom Typ char* erwartet), aber es bringt Behemoph nicht weiter. Denn wem das grundlegende Sprachverständnis (und evtl auch grundlegende Programmierkenntnis, was ich jetzt nicht zu bewerten vermag) fehlt, der hat nichts an einem so komplexen SDK zu suchen.

Also Behemoph: Kauf dir ein gutes Buch über C++ und lies es dir ein bis zweimal von Anfang bis Ende durch und verstehe vor allem worum es geht. Dann sprechen wir uns hier in frühestens einem halben Jahr wieder, wenn du dann ein Problem hast.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 09.01.2008 um 21:04 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
017
10.01.2008, 16:01
Behemoph



Was mein Problem an der Sache mit

Quellcode:if( addDefault )
{
    pPlayer->GiveNamedItem( foo ); // Give weapon foo
    pPlayer->GiveNamedItem( bar ); // and also bar

    // and also some ammo
    // (...)
}
war, war das ich nicht wusste, was foo und bar ist. Wo die waffe und ob dieses foo und bar in der funktion erwähnt werden soll, wusste ich auch nicht. Ich habe es allerdings mit

Quellcode:pPlayer->GiveNamedItem( weapon_stunstick ); // Give weapon_stunstick
probiert, nur dass bedeutet doch einfach nur, dass ich diese waffe zum Spawn bekomme und nicht in der Hand halte... Deswegen war ich sehr verwirrt^^

Auf alle fälle sind bei mir C++ kentnisse wirklich nur sehr sehr, nein sehr sehr sehr wenig vorhanden :(
Es macht mir einfach Spass: learning by doing
Deshalb habe ich sehr viele Tutorials durchgeacktert... Trotzdem hoffe ich, irgendwann auch mal C++ zu beherrschen.
Danke euch allen für die Hilfe...

PotKinRot konnte mir leider trotzdem nich helfen... Ich spawne und sehe keine Waffe. Wenn ich "schiessen" drücke, schießt er, nur dass ich keine Waffe sehe!
Bluthund, bitte. Ich bin mir sicher, dass du mein Problem beheben kannst! Kannst du mir bitte die Lösung des Problems schreiben, dann werd ich euch auch in ruhe lassen :>

mfg Behemoph

--

zum Seitenanfang zum Seitenende Profil || Suche
018
07.02.2008, 14:23
Behemoph



Hmmm, schade. Da es schon ziemlich lange her ist, seit dem letzten post, denke ich, dass ihr mir wohl nicht helfen könnt/helfen wollt.. Aber trotzdem Danke an alle.

mfg Behemoph

--


Dieser Beitrag wurde am 07.02.2008 um 14:23 von Behemoph bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
019
07.02.2008, 15:33
Bluthund



Zitat:
Behemoph postete
Auf alle fälle sind bei mir C++ kentnisse wirklich nur sehr sehr, nein sehr sehr sehr wenig vorhanden :(
Damit hast du bereits alles gesagt, was wichtig ist. Und eine weitere Diskussion des Sachverhalts ist unnötig. Kauf dir ein gutes Buch zum Thema C++ und lerne erstmal die Sprache. Man versucht doch auch nicht auszuwandern und eine Existenz zu gründen wenn man nichtmal die Grundzüge der Landessprache des Gastlands versteht (Auch wenn das Fernsehen uns etwas anderes weismachen möchte).
Es bringt weder dir noch den hier noch aktiven Codern etwas dir jetzt jeden Fehler zu beheben und dich mit Codehappen zu füttern. Du lernst dabei nix und der Rest ärgert sich darüber, dass du hier so nen Mist verzapfst.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche