Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
03.10.2001, 14:15
Lephro



Also ich zeig euch erstma den Code der in der player.cpp steht :

void CBasePlayer::AddMoney(float Money)
{
if(m_flMoneyAmount += Money <= MIN_MONEY)
{
ClientPrint(m_pPlayer, HUD_PRINTCENTER, "NOT Enought Money");
}
else
{
m_flMoneyAmount += Money;

if (m_flMoneyAmount < MIN_MONEY)
m_flMoneyAmount = MIN_MONEY;
else if (m_flMoneyAmount > MAX_MONEY)
m_flMoneyAmount = MAX_MONEY;

MESSAGE_BEGIN(MSG_ONE, gmsgMoney, NULL, pev);
WRITE_SHORT(m_flMoneyAmount);
MESSAGE_END();
}
}

So nun alles funxt nur das mit der ClientPrint-Befehl....... was muss ich beim 1sten Parameter angeben damit das funxt das der spieler der zu wenig geld hat diese MSG kriegt !?

THX 2 ALL

--

zum Seitenanfang zum Seitenende Profil || Suche
001
03.10.2001, 15:11
RirA



pevAttacker glaub ich

--

zum Seitenanfang zum Seitenende Profil || Suche
002
03.10.2001, 15:31
Prefect



Der Thread hier ist schon fast surreal.

Na dann wollen wir mal:

Quellcode:
void CBasePlayer::AddMoney(float Money)
{
  if(m_flMoneyAmount += Money <= MIN_MONEY)
  {
    ClientPrint(m_pPlayer, HUD_PRINTCENTER, "NOT Enought Money");
  }

1) Du willst _ganz_ sicher kein += dort im if-Statement haben. Was dieses if-Statement in seiner momentanen Form macht ist folgendes:
- Money wird zu m_flMoneyAmount dazugerechnet
- der neue Wert von m_flMoneyAmount wird mit MIN_MONEY verglichen

2) Wieso beschwerst du dich in einer Funktion, die Geld _dazugeben_ soll darüber, daß zu wenig Geld da ist?

3) m_pPlayer gibt's in diesem Kontext ganz bestimmt nicht. Lern bitte bitte erstmal was vom Programmieren, danke.

4) ClientPrint() nimmt als ersten Parameter einen (entvars_t *) entgegen und kein CBaseEntity *. Das einzige, was als erster Parameter Sinn ergeben würde, wäre in diesem Kontext wohl pev. Andererseits bringt die ganze ClientPrint()-Aktion überhaupt herzlich wenig Sinn.

Quellcode:
  else
  {
    m_flMoneyAmount += Money;

    if (m_flMoneyAmount < MIN_MONEY)
      m_flMoneyAmount = MIN_MONEY;

5) Nunja, wenn du AddMoney() auch mit negativem Parameter verwenden willst macht dieser Check natürlich durchaus Sinn... ansonsten ist es unsinnig

Quellcode:
  else if (m_flMoneyAmount > MAX_MONEY)
    m_flMoneyAmount = MAX_MONEY;

  MESSAGE_BEGIN(MSG_ONE, gmsgMoney, NULL, pev);
    WRITE_SHORT(m_flMoneyAmount);
  MESSAGE_END();
  }
}

6) Du solltest dir im Klaren sein, daß ein SHORT eine Zahl zwischen -32768 und +32767 ist, während ein float (m_flMoneyAmount ist doch ein float, oder?) eine Fließkommazahl ist, die recht groß werden kann und zudem noch Nachkommastellen haben kann, die beim SHORT verlorengehen.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
003
03.10.2001, 16:08
Basiror



mini tut time lo :)

--

Basiror's Labs Game-Development page

Hifle in form von Tutorials, Artikeln und anderem wird dankbar angenommen

zum Seitenanfang zum Seitenende Profil || Suche
004
03.10.2001, 16:39
Lephro



Perfect danke für deine Aufklärung aber alles was du dort geschrieben hast ist mir schon klar..................ich will nur wissen welche Parameter ich beim ClientPrint benutzen soll ....ich will das ne Nachricht ausgegeben wird wenn der Spieler nicht genug geld hat d.h :

Prüfe ob (geld des spielers plus das angegebene geld im Parameter) nich kleiner ist als das Minimale geld ----> wenn ja dann soll nur eine Nachricht kommen das er nich genug geld hat !!!! Wenn man nämlich in dem Parameter eine Negative Zahl eingibt dann wird das geld abgezogen..............

Nur wie soll der erste Parameter beim ClientPrint heissen ! Mehr will ich nicht wissen................Danke !

--

zum Seitenanfang zum Seitenende Profil || Suche
005
03.10.2001, 16:42
Lephro



Wenn ich m_pPlayer nehme dann sag er das das ein nichtdeklarierter Bezeichner ist.......... der Code ist eine neue Funktion der CBasePlayer Klasse...

<THX 2 ALL>

--

zum Seitenanfang zum Seitenende Profil || Suche
006
03.10.2001, 19:06
Mazze



Häh?
Was geht hier eigentlich ab?
Prefect hat doch gesagt, dass du pev nehmen sollst!

PS: Dass dir das so klar ist nehm ich dir nicht ab!

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
007
03.10.2001, 20:45
Lephro



Axo .......
Denn Punkt hatte ich übersehen ........... Schon OK ........ achhh warum bin ich da nicht selber drauf gekommen..........naja THX........

Ich´habs heute aber auch :)

--

zum Seitenanfang zum Seitenende Profil || Suche