Will mod machen, brauche hilfe

Alles rund um das scripten und Server aufsetzen
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Will mod machen, brauche hilfe

Beitrag von Me$$er$chmidt »

Hallo Leute,
ich hab mir mal vorgenommen eine Art blutmod für ET zu basteln ( bin net blutgeil oda sowas ), ich hab mir schon den sourcecode und vitsual c++ gezogen, und genau das ist der punkt wo ich nicht weiterkomme! Deshalb brauche ich jetzt hilfe von irgendeinem, der vielleicht etwas davon versteht.

Zum Mod:
Ich habe zu jeder klasse von jedem team 3 "damaged skins" gamalt ( mit photoshop ),
ich hab mir mal vorgestellt, dass das ungefähr so funktioniert wie die Hud-Anzeige,
bei ein paar leben weg das eine "damaged skin", ein paar leben weniger wieder ein anderes, usw.

was ich schonmal versucht habe ist in den hud-blood-skins ( etmain/pak0/models/players/hud/damagedskins ) was reinzuschreiben, da sah die datei "blood1.skin" ( mit dem editor bearbeitet ) dann so aus :

head, "models/players/hud/damagedskins/blood01"
teeth, "gfx/misc/head_open"
eye1, "gfx/misc/head_open"
eye2, "gfx/misc/head_open"
u_body, "models/players/hud/damagedskins/body_blood01.tga"

also die letzte zeile von mir, da hab ich dann einfach ein son bild mir blutflecken gemalt ( zu blood1.skin, blood2.skin, blood3.skin, blood4.skin ) also eingentlich 4 ...
wie nun auch sei, das hat zum beispiel nicht geklappt, kann mir bitte jemand helfen ?
Benutzeravatar
FREAK!!!
ciTy Team
ciTy Team
Beiträge: 859
Registriert: Mo 25. Nov 2002, 18:57
Kontaktdaten:

Beitrag von FREAK!!! »

du hast dir auch gleich mit das schwierigste ausgesucht :)

weil dazu sind änderungen client und serverseitig online.
client: muss filtern, wie eigene figur dargestellt werden soll.
server: muss die einzelnen gesundheitszustände an alle anderen verteilen.

erstens sollte noch im bereich des möglichen liegen.
wobei ich hier nicht lügen möchte, weil du ja scheinbar ein komplett anderes modell jeweils laden willst/musst.
könnte folgende probleme verursachen:
- clippingfehler
- ein teil des körpers wird nicht angezeigt (unsichtbar)

server:
hier müssen erst einmal routinen entwickelt werden, die die einzelnen gesundheitszustände an alle clients weitergibt.

ich bin leider schon zu lange raus ausm ET SDK, und mein C++ ist doch mächtig verstaubt. Daher sind angaben für CLient eher ohne Gewähr, weil ich mich Serverseitig besser noch mit Source Code auskenn.
Aber du läufst definitiv auf einen eigenen Mod hinaus.

Das Problem ist, das die Texturen für die Körper durch Scriptfiles wie "blood1.skin" geladen werden. Weil dem selbst zu sagen, er solle eine Textur durch eine andere ersetzen ist leicht, solang es direkt im Game steht, welche Textur das Original ist. Doch durch die Scriptfiles ist man da ganz schön machtlos und hat ne Menge zu programmieren.
[ N I N ]
I'm the one without a soul
I'm the one with this big fucking hole
No new tale to tell
Twenty-six years on my way to hell
Gotta listen to your big time, hard line, bad luck fist fuck
Don't think you're having all the fun
You know me I hate everyone

BurningSouls.com
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

ja also erstmal danke für die antwort, in einem anderen forum hat man mir nähmlich garnicht geantwortet !

Ja gut, dass das mit den skripts nicht so ganz geht wurde mir schon gesagt.
Den Source Code habe ich auch schon ziemlich lange begafft, wie das mit den HP ( bzw. Leben/Gesundheit ) im hud läuft, weiß ich schon :
( in "cg_draw.c", Zeile 3759-3767 )

if( cg.snap->ps.stats[ STAT_HEALTH ] <5>ps.stats[ STAT_HEALTH ] <20>ps.stats[ STAT_HEALTH ] <40>ps.stats[ STAT_HEALTH ] <60>ps.stats[ STAT_HEALTH ] <5>ps.stats[ STAT_HEALTH ] <20>ps.stats[ STAT_HEALTH ] <40>ps.stats[ STAT_HEALTH ] < 60 ) {
painshader = cgs.media.hudDamagedStates[0];
}
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

ok, dann siehts halt scheiße aus :D
naja, kann mir jemand helfen ?

Wenn hier niemand lust hat ins Forum zu schreieben, hier :

Mein ICQ: 349-277-077
Mein Xfire: stoerfaktor23
Mein MSN: MarcoTolzin@hotmail.de
Meine E-MailAdresse: marco.tolzin@web.de.
Benutzeravatar
FREAK!!!
ciTy Team
ciTy Team
Beiträge: 859
Registriert: Mo 25. Nov 2002, 18:57
Kontaktdaten:

Beitrag von FREAK!!! »

Me$$er$chmidt hat geschrieben:ja also erstmal danke für die antwort, in einem anderen forum hat man mir nähmlich garnicht geantwortet !

Ja gut, dass das mit den skripts nicht so ganz geht wurde mir schon gesagt.
Den Source Code habe ich auch schon ziemlich lange begafft, wie das mit den HP ( bzw. Leben/Gesundheit ) im hud läuft, weiß ich schon :
( in "cg_draw.c", Zeile 3759-3767 )

if( cg.snap->ps.stats[ STAT_HEALTH ] <5>ps.stats[ STAT_HEALTH ] <20>ps.stats[ STAT_HEALTH ] <40>ps.stats[ STAT_HEALTH ] <60>ps.stats[ STAT_HEALTH ] <5>ps.stats[ STAT_HEALTH ] <20>ps.stats[ STAT_HEALTH ] <40>ps.stats[ STAT_HEALTH ] < 60 ) {
painshader = cgs.media.hudDamagedStates[0];
}
ja das ist das problem.
das ist nen grundstein worin du aufbauen kannst.
es stellt halt den aktuellen status des eigenen spielers dar, und in der art und weise könnte man das wohl dann auch auf die mitspieler ummünzen.

doch bedenke, diese status ist nur client-side, weil die health des eigenen spielers ja dem spiel bekannt ist!
die health der anderen weiss nur der server!

also müsste erst einmal der server den health-status aller mitspieler einen mitteilen (das könnte auch leicht zum cheaten missbraucht werden)
danach muss das spiel entscheiden, welche spieler seh ich überhaupt grad aufm monitor und welche skins muss ich laden.

hm, vllt als einwurf/idee.
schau mal nach den routinen vom medic, weil der medic sieht doch glaub, wenn er jmd revived, nen balken mit dem health-status. dies könnte man auch vllt als basis nehmen, nur muss das auf alle spielerklassen ausgebaut/umgebaut werden, damit es für deinen zweck geht.
[ N I N ]
I'm the one without a soul
I'm the one with this big fucking hole
No new tale to tell
Twenty-six years on my way to hell
Gotta listen to your big time, hard line, bad luck fist fuck
Don't think you're having all the fun
You know me I hate everyone

BurningSouls.com
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

:? hmmmmm

also ich hab den sourcecode einige stunden durchgearbeitet, und u.a. das hier gefunden:
( "options_costomise_hud.menu" Zeile 65 )
...
YESNO( 8, 154, (SUBWINDOW_WIDTH)-4, 10, "Crosshair Health Info:", .2, 8, "cg_crosshairHealth",
...
---> um die leben/gesundheit (bzw. HP ) von FREUNDEN sehen zu können muss man kein medic sein, bei feinden funktioniert das soviel ich weiß nicht

weiter bin ich heute nicht gekommen ( bzw. weiter hab ich nich gemacht )
Benutzeravatar
FREAK!!!
ciTy Team
ciTy Team
Beiträge: 859
Registriert: Mo 25. Nov 2002, 18:57
Kontaktdaten:

Beitrag von FREAK!!! »

ich weiss jetzt genau in welcher datei du das gefunden hast, doch nach aufbau bist nur im "optionsmenü" gelandet.

sprich du solltest dich an cg_crosshairHealth halten, irgendwo gibt es dann die funktion, wo richtig unterschieden wird, ob freund oder feind ist (und dann am crosshair die health angezeigt werden soll).

diese "unterscheidung" kannst du als basis nehmen, nur halt musst du es ausdehnen, nicht das deine skins dann später nur geladen werden, wenn man mitm crosshair übern gegner ist.
[ N I N ]
I'm the one without a soul
I'm the one with this big fucking hole
No new tale to tell
Twenty-six years on my way to hell
Gotta listen to your big time, hard line, bad luck fist fuck
Don't think you're having all the fun
You know me I hate everyone

BurningSouls.com
Benutzeravatar
WoodSTokk
Helpdesk
Helpdesk
Beiträge: 2634
Registriert: Fr 6. Dez 2002, 03:09
Wohnort: Wien/Österreich/Europa/Erde
Alter: 53

Beitrag von WoodSTokk »

Also die Health von Kameraden weist du immer, weil du sie auch anzeigen lassen kannst.
Die Health vom Feind kannst du nirgens anzeigen lassen .... was aber nicht heist, daß dein Client sie nicht weis. Es könnte sein daß die EnemyHealth sehrwohl übertragen wird, aber im Menü keine Möglichkeit besteht diese anzuzeigen.
Dazu müsste man den Code untersuchen der als Server die PlayerInfo verteilt.

Ich denke schon daß die EnemyHealth übertragen wird.

1) Der Server schickt 20 mal (set snaps 20) oder sogar 40 mal (set snaps 40) in der Sekunde an alle Spieler sämtliche PlayerInfos von allen Playern die in seinem Area (Portal) sind.
Wenn da der Code dann noch die Daten vor dem senden filtern und zensieren muss, würde die CPU stärker belastet werden als notwendig.

2) Wenn du einen feindlichen CovertOp mit gestohlener Uniform siehst, siehst du seine tatsächliche Health, obwohl er eigendlich ein Enemy ist.

3) Ich hab schon PB-Screenshots von Cheatern gesehen, auf denen die Cheater die Klasse als Symbol, die Anzahl an Munition und die Health gesehen haben. Da ein Cheater ja auch nur die Daten des Servers auswertet, müsste die EnemyHealth übertragen werden.

Ich kann leider kein C/C++, aber schau dir mal den NetCode an der die Infos an die Clients verteilt.

mfG WoodSTokk
Du scheisst es nicht zu wetzen
Testserver: @peStable (95.129.206.243:27960)
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

ja, ok, dass das das optionsmenu war, war mir schon klar, ich bin vielleicht nicht so der insider ( sondern viel mehr outsider ), aber soweit war ich schon :D ,
ich mache heute aber nichts mehr, morgen nochmal gucken ...
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

@ WoodSTokk

schuldigung, hab deinen post irgendwie net gesehen ....
hast aber recht, das stimmt alles.

ok
wieder zum mod, ich hab "cg_crosshairHealth" getzt bis zur
"cg_draw.c" ( Zeile 1663-1693 ) gefolgt, das ist die einzigste datei wo etwas drinstand
( ich habe keine ahnung, eigentlich sieht mir das nicht so danach aus )

ansonsten würde ich ja sagen ist das ab zeile 2062, das sieht mir schon eher danach aus
...

( :?: :!: :?: :!: )
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

bin wieder da :D

Beitrag von Me$$er$chmidt »

hallo zusammen,
hab die letzten paar tage krank im bett gelegen ...

auf jeden fall habe ich festgestellt das skripten nicht so mein ding ist ...
ich habe in irgendwelche befehle aus irgendwelchen "...character.c" in die "cg_draw.c"
eingefügt ... hat nicht geklappt :D

kann mir jemand helfen ?
was ist ein netcode ?
Benutzeravatar
FREAK!!!
ciTy Team
ciTy Team
Beiträge: 859
Registriert: Mo 25. Nov 2002, 18:57
Kontaktdaten:

Beitrag von FREAK!!! »

netcode ist die basis für die kommunikation zwischen server und client.
sprich es werden, aktionen des spielers übertragen, er bekommt daten über geschehnisse in seiner nähe auf der map, etc.
[ N I N ]
I'm the one without a soul
I'm the one with this big fucking hole
No new tale to tell
Twenty-six years on my way to hell
Gotta listen to your big time, hard line, bad luck fist fuck
Don't think you're having all the fun
You know me I hate everyone

BurningSouls.com
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

nochmal ein paar fragen ( mehr so am rande ) :

1. warum gibt es im et-hauptarchiv ( "pak0.pk3" ) einmal den ordner "models" mit den unterschiedlichen playermodels und dann nochmal den ordner "characters", wo die gleichen nochmal drin sind ?

2. warum gibt es beim sourcecode einmal den ordner "game" und dann nochmal den ordner "cgame", hätt man doch auch in einen ornder packen können, oder ?

:?: :?: :?:
nUllSkillZ
Mod-Schreck
Mod-Schreck
Beiträge: 253
Registriert: Fr 16. Jan 2004, 09:06

Beitrag von nUllSkillZ »

cgame = client game
Also alles was mit dem Client zu tun hat.
Game alles was mit dem Server zu tun hat (denke ich mal).
Me$$er$chmidt
Jungspund
Jungspund
Beiträge: 10
Registriert: Mi 21. Feb 2007, 22:11

Beitrag von Me$$er$chmidt »

:D

...
1. warum gibt es im et-hauptarchiv ( "pak0.pk3" ) einmal den ordner "models" mit den unterschiedlichen playermodels und dann nochmal den ordner "characters", wo die gleichen nochmal drin sind ?
...
:?: :?: :?:
Antworten