Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
08.05.2002, 18:45
Hanky



moin,

es geht nicht um meinen body, damit vollivch voll zufrieden...

..ich habe ein prob mit einer waffe die 8 body hat..je weniger muni(ab 8) desto höher der body..
(komme mir vor wien megaaaa-nub)

alles kein priblem, funzt super. jedoch stürtzt hl ab, beim mapchange!
nur bei der waffe, egal wie der clip bestand ist.

dann dachte ich mir denken, das ich den evt ma speichern sollte...
wenn ich aber diesen Save und Read kram da verweden, dann startet hl, macht nix und beendet sich wieder..

was kannich tun?

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
001
08.05.2002, 20:40
TheTinySteini



Zitat:
was kannich tun?
Bisschen mehr Infos geben zum Beispiel. Code-Snippets und sowas.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
002
09.05.2002, 12:36
Hanky



mkay...

also: ich stelle den body mit einer fu wie die gfolgende ein, dabei versuche ich möglichst sicher zu gehen... wie mans sicher merkt:

....Update_Rounds()
{
if(m_iClip >= 8){this->pev->body=0; return this->pev->body=0; }
if(m_iClip == 7){this->pev->body=1; return this->pev->body=1; }
if(m_iClip == 6){this->pev->body=2; return this->pev->body=2; }
if(m_iClip == 5){this->pev->body=3; return this->pev->body=3; }
if(m_iClip == 4){this->pev->body=4; return this->pev->body=4; }
if(m_iClip == 3){this->pev->body=5; return this->pev->body=5; }
if(m_iClip == 2){this->pev->body=6; return this->pev->body=6; }
if(m_iClip == 1){this->pev->body=7; return this->pev->body=7; }
if(m_iClip == 0){this->pev->body=8; return this->pev->body=8; }
return this->pev->body;
}

so, egal wie mans wendet, das funtzt!
ich mache im PromaryAttack der Waffe folgendes:
int i = Update_Rounds();

und mache sogar eine Debugausgabe wie folgende:
ALERT(at_console, "body is %d\n",i); und hey, das geht genau so.
Damit der Client davon Wind kreigt, sende ich dieses i ganz einfach beim event mit:

PLAYBACK_EVENT_FULL( 1<<1, m_pPlayer->edict(), m_usStandart, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, i, 0, 0, 0);

so..beim schiessen wird also ab muni=8 was am body verändert.
die WeaponIdle startet die Update_Rounds auch einmal, ich versuhe halt immer so sicher wie möglich zu sein.

mehr mussich hier nit reinpasten, da der rest der mp5 ähnelt!

so das prob nochmal: alles funzt wie gewünscht, BIS zum mapchange(im Singleplayer nur getestet) und HL kakt ab! eine fehlermeldung das "read" nicht gefunden wurde im Speicher "laalüüX38475pfftz" etc.

hilft das weiteR?

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
003
09.05.2002, 12:47
Hanky



habe übrogend bei jeder animation und beim spawn wtc den body angegeebn

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
004
09.05.2002, 13:49
Another1



also an dem code kann es nich liegen. Versuch mal alles zu bereinigen und dann ALLES! neu erstellen + komplett neu linken (MSVC option).

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
005
09.05.2002, 14:24
Exec



also, ich hab gestern mal den code von ner mod angeguckt (kann exodus sein, da bei der m249), so, da steht auch, das der mapchange wegen dem body wechsel nich geht ... vielleicht liegts an 1109 ...

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
006
09.05.2002, 14:29
Hanky



das geht bei absolut gar keiner hl version...aber bei oppfoce haben dies ja auch irgenwie hinbekommen!*grübel*

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
007
09.05.2002, 14:37
Exec



bei desert crisis auch ... (pulse rifle) , nur, vielleicht gehts im mp, aba sp nich - ka ...

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
008
09.05.2002, 14:55
Hanky



hmm.... ich habs: ich bewerbe mich bei gearbox als coder, zeige als referenzen einfach meine 3d engines und bin eingeschluesst...dann erobere ich den codeserver und sauge alles..MUHARHAHR...kündige dann :D

narf..soein blöder fick.... das kann doch nit angehn...

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
009
09.05.2002, 14:58
Rockefeller



Zitat:
Hanky postete
....Update_Rounds()
{
if(m_iClip >= 8){this->pev->body=0; return this->pev->body=0; }
if(m_iClip == 7){this->pev->body=1; return this->pev->body=1; }
if(m_iClip == 6){this->pev->body=2; return this->pev->body=2; }
if(m_iClip == 5){this->pev->body=3; return this->pev->body=3; }
if(m_iClip == 4){this->pev->body=4; return this->pev->body=4; }
if(m_iClip == 3){this->pev->body=5; return this->pev->body=5; }
if(m_iClip == 2){this->pev->body=6; return this->pev->body=6; }
if(m_iClip == 1){this->pev->body=7; return this->pev->body=7; }
if(m_iClip == 0){this->pev->body=8; return this->pev->body=8; }
return this->pev->body;
}

Als Spiele- bzw. Mod-Programmierer sollte man immer auf die Performance achten, vor allem in Funktionen, die häufig aufgerufen werden. In diesem Fall macht das zwar nicht fürchterlich viel aus, aber trotzdem wäre dass hier wesentlich besser:

return pev->body = (8-m_iClip < 0)?8-m_iClip:0;

Das sind dann immer ein Vergleich und 2 Zuweisungen im Vergleich zu 9 Vergleichen und 2 Zuweisungen im WorstCase vorher.

Auch wenn der Compiler viele kleinere Sachen wegoptimiert (z.B. i++ wird zu ++i an entsprechenden Stellen), bis ein Compiler Strukturen wie oben analysieren und optimieren kann, wird es wohl noch einige Zeit dauern...

Wie wäre es denn, wenn du die Intermission abfragst, und wenn Intermission ist, den Body einfach auf den Standartwert zurück setzt. Schmiert HL dann immer noch ab?

--


Dieser Beitrag wurde am 09.05.2002 um 15:02 von Rockefeller bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
09.05.2002, 15:20
Hanky



wie meinste das mit der Intermission?
edit: habe gerade im code gesucht (is ja der mapchange, oder? oder sowas..)
neja....ist aber nur im MP code zu finden... im SP nit..oder sehe ich falsch?

hm..
return pev->body = (8-m_iClip < 0)?8-m_iClip:0; .. habe dieses

sache?ja:nö vergessen...danke :)^

aber es müsste
return pev->body = (8-m_iClip < 0)?0:8-m_iClip; heißen :D*klugscheiß*

--

hankYs Page


Dieser Beitrag wurde am 09.05.2002 um 15:35 von Hanky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
011
09.05.2002, 15:44
Hanky



*HEUL*

SCHEIßE HANKY!!

ich habe eine Zeitvaraible gehabt,. vergessen diese zu speicheru nd zu laden..narf...arrgh... der bodykram funzt einwandfrei!

SCHEIßE! ich ärger mich mit der kake ab...aaaaaa

danke an alle, die willig waren, zu helfen! :) *ins gesicht schlag**tret* *pulsadernaufbeiss*

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
012
09.05.2002, 19:20
Rockefeller



Zitat:
Hanky postete
aber es müsste
return pev->body = (8-m_iClip < 0)?0:8-m_iClip; heißen :D*klugscheiß*

Ja stimmt wohl, aber auf solche Kleinigkeiten kommts doch nicht an :D

--

zum Seitenanfang zum Seitenende Profil || Suche
013
09.05.2002, 19:57
TheTinySteini



Muahaha... naja, bei Poke646 hatte ich auch genügend Probleme mit Save-Restore. Bah.

--

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

zum Seitenanfang zum Seitenende Profil || Suche
014
09.05.2002, 22:17
Hanky



hrr.... ging auch mit restore nit..habes es aber dank der WeaponIdle hinbekommen :)

scheiß reload-anims splitterung

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche