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



Hallo Leute
Ich bin es mal wieder. Nach dem mir niemand bei meinem letzten Problem geholfen hat hoffe ich ich das mir dieses mal jemand helfen kann. Mein Problem:Ich möchte, dass der radius des leuchtens der Taschenlampe größer wird und das die Batterie größer ist.

Ich hoffe das mir dieses mal jemand helfen kann.

Tschau Stefan

--

zum Seitenanfang zum Seitenende Profil || Suche
001
15.03.2000, 19:19
TheTinySteini



Na gut, helfen wir dir mal =)

Zumindest mit der Größe des Sprites: In der hud.txt kann man das einstellen. Dort steht für jedes Sprite eine Zeile mit diesem Aufbau:
spritename resolution spritefile x y width height
Resolution ist die Bildschirmauflösung. Das ganze gibt's einmal für 320er und für 640er (und höher). x und y geben (glaub ich) die Position des Sprites in der Sprite-Datei an. Und die letzten beiden Zahlen stehen eben für Breite und Höhe. Ich weiß bloß nicht, ob die Engine die Sprites dann auch entsprechend größer darstellt, oder ob man dann neue, größere Sprites erstellen muss...

--

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

zum Seitenanfang zum Seitenende Profil || Suche
002
15.03.2000, 19:24
stefan



Dankeschön Ich werde es mal ausprobieren einen Versuch ist es wert.

Nochmal Danke

Stefan

--

zum Seitenanfang zum Seitenende Profil || Suche
003
16.03.2000, 22:45




Ich hab' mal wieder ein Verständnisproblem (kommt häufiger bei mir vor).

Möchtest Du die Anzeige in der HUD ändern (grösser machen) oder die Kapazität der Batterie erhöhen (also das das Teil länger leuchtet). Genauso mit dem Radius: größeres Sprite oder die Umgebung besser ausleuchten ?

--

zum Seitenanfang zum Seitenende Profil || Suche
004
17.03.2000, 15:17
stefan



1. der radius den die lampe ausleuchtet soll größer sein
2. die Batterie soll größer sein, so das die lampe länger leuchtet

hoffendlich kanste mir helfen

Stefan

--

zum Seitenanfang zum Seitenende Profil || Suche
005
18.03.2000, 03:23




Also fangen wir mit der Batterie an:

im Prinzip gibt es zwei Möglichkeiten. Die erste ist, man erhöht die Kapazität der Batterie (Maximalwert ist normalerweise 100, man kann diesen Wert aber ohne Probleme auf 255 erhöhen) oder man sorgt dafür, dass sich die Batterie nicht so schnell entlehrt.

1. Möglichkeit: Kapazität erhöhen

irgendwo in 'void CBasePlayer::UpdateClientData( void )' (zu finden in player.cpp) gibt es folgende Zeilen:

if (m_iFlashBattery < 100)
{
m_flFlashLightTime = FLASH_CHARGE_TIME + gpGlobals->time;
m_iFlashBattery++;
}
else
m_flFlashLightTime = 0;

Dieses 'if (m_iFlashBattery < 100)' gibt an, das sich die Batterie bis zu einem Wert von 100 aufladen soll. Diesen Wert kannst Du bis auf 255 erhöhen. 255 deshalb, weil dieser Wert an den Client gesendet wird (gleich darunter) und zwar mit

MESSAGE_BEGIN( MSG_ONE, gmsgFlashBattery, NULL, pev );
WRITE_BYTE(m_iFlashBattery);
MESSAGE_END();

und ein Byte kann eben nur Werte zwischen 0 und 255 aufnehmen.

In CBasePlayer::Spawn() steht irgendwo 'm_iFlashBattery = 99;'. Das ist der Wert, den die Batterie nach dem respawn des Spielers hat.

2. Möglichkeit: Zeit ändern
Ziemlich am Anfang von player.cpp stehen zwei Defines

#define FLASH_DRAIN_TIME 1.2 //100 units/3 minutes
#define FLASH_CHARGE_TIME 0.2 // 100 units/20 seconds (seconds per unit)

FLASH_DRAWN_TIME bestimmt, wie schnell sich die Batterie entlehrt und FLASH_CHARGE_TIME bestimmt, wie schnell sie sich wieder auflädt. Der Wert 1.2 bedeutet, das sich der Wert der Batterie alle 1.2 sec. um eins verringert. Erhöhst Du diesen Wert, so leuchtet die Taschenlampe länger.

Wie man den Radius der Taschenlampe grösser macht, weiss ich (noch) nicht. Aber Du wirst auf jeden Fall die nächsten Tage von mir hören.

bis denn

Codeman

--

zum Seitenanfang zum Seitenende Profil || Suche
006
18.03.2000, 10:00
stefan



Jo und auch hier :) sage ich Danke für die Hilfe.

Stefan

--

zum Seitenanfang zum Seitenende Profil || Suche
007
18.03.2000, 12:49
TheTinySteini



Also, ein paar Code-Schnüffeleien haben ergeben, dass das Leuchtfeld der Taschenlampe nicht verändert werden kann. Dies scheint nämlich direkt von der Engine berechnet zu werden, in der mp.dll gibt's nur den Aufruf pev->effects, EF_DIMLIGHT. EF_DIMLIGHT kann man durch andere Werte ersetzen, dann gibt's andere Effekte, aber größer wird der Radius dadurch nicht. Ich sehe die einzige Möglichkeit nur noch darin, dass man die Taschenlampe praktisch selbst programmiert, also Traceline und dann ein temporäres Light-Entity... Kann ja jemand mal ausprobieren...

--

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

zum Seitenanfang zum Seitenende Profil || Suche
008
18.03.2000, 21:14
Hyperion



Ich hab zum Thema "temporäres Licht" etwas auf MACH III gefunden. Guckt es euch einfach an. Probleme könnte es höchstens mit dem aktualisieren geben, weil das Licht ja der aktuellen Position des Spielers folgen muss. Wer eine Lösung hat kann es ja wieder posten.

http://www.planethalflife.com/mach3/tutorials/entities/dynamic_light.html

--

zum Seitenanfang zum Seitenende Profil || Suche