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



Ich versuche momentan alle Spieler aus zu lesen, die sich auf dem Server befinden... ständig stürzt aber ,mein Server ab.
Was mach ich falsch ? Hier mal mein Code:

Quellcode:
CBaseEntity *pPlayer;

for (int i = 1; i <= gpGlobals->maxClients; i++)
{
    pPlayer = UTIL_PlayerByIndex(i);
}

Muss ich forher noch was anderes Checken ?

Mfg

R@ch33ng3l

--

zum Seitenanfang zum Seitenende Profil || Suche
001
05.09.2002, 09:18
Tron



ich rate mal, weil ich schon EWIG nicht mehr mit dem HL SDK was gemacht hab:
in c(++) faengt man fuer gewoehnlich bei 0 an zu zaehlen.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
002
05.09.2002, 09:20
Rach33ng3l



Hmm das prob iss das ein Player niemals id 0 haben kann so weit ich weiss....
Aber daran kan es nicht liegen oder ?

--


Dieser Beitrag wurde am 05.09.2002 um 09:20 von Rach33ng3l bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
05.09.2002, 11:06
RirA



Mit dem Code machst du ja den Spieler zu allen Spielern, denk ich zumindest.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
05.09.2002, 11:16
Rach33ng3l



Nene :)

Es soll z.b. so sein:

Quellcode:
CBaseEntity *pPlayer;

for (int i = 1; i <= gpGlobals->maxClients; i++)
{
    pPlayer = UTIL_PlayerByIndex(i);
    
    if (IsPlayerValid(pPlayer))
    {
        sprintf(sCommand,"say Gefundener Spieler: %s.\n", STRING(pPlayer->edict()->v.netname));

        SERVER_COMMAND(sCommand);
    }
}

das IsPlayerValid hab ich aus Adminmod endnommen...
Muss es aber noch testen... vieleicht funzt das ja ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
005
05.09.2002, 11:31
Tron



was ich vorhin versuchte zu sagen:
Quellcode:for (int i = [u]0[/u]; i [u]<[/u] gpGlobals->maxClients; ++i)

btw: benutz das praeinkrement, macht zwar hier keinen unterschied, aber ist eine gute angewohnheit (stichwort: STL iteratoren)

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett


Dieser Beitrag wurde am 05.09.2002 um 11:32 von Tron bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
05.09.2002, 11:34
Rach33ng3l



hmm.... aber das iss doch schnuppe ob ich

i = 0 hab oder 1...

sonst muss ich

pPlayer = UTIL_PlayerByIndex(i+1);

...
iss doch sogesehen schwachsinn wenn ich es erst ab eins anfangen kann oder ? oder geht es nur ab 0 ?

--

zum Seitenanfang zum Seitenende Profil || Suche
007
05.09.2002, 12:57
Tron



<seufz>
ich meinte, dass du schlicht und ergreifend nicht von 0 bis anzahl-1 zaehlst sondern von 1 bis anzahl, aber den index anzahl gibt es nicht...
man beachte auch bitte, dass ich statt <= nur < geschrieben habe

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
008
05.09.2002, 15:12
RirA



CBaseEntity *pPlayer;for (int i = 1; i <= gpGlobals->maxClients; i++)
{
if(pPlayer)
pPlayer = UTIL_PlayerByIndex(i);
}

Vielleicht?

--

zum Seitenanfang zum Seitenende Profil || Suche
009
05.09.2002, 15:13
Rach33ng3l



Versuch ich gerade :)
Aber die Idee iss gut :)

--

zum Seitenanfang zum Seitenende Profil || Suche
010
05.09.2002, 15:45
Archangel



ähm rira ? das is doch totaler blödsinn
pPlayer is beim ersten schleifendurchlauf sowieso nicht initialisiert, dh pPlayer wird wahrscheinlich != 0 sein.. und sonst wird immer geprüft ob beim letzten schleifendurchlauf an UTIL_PlayerByIndex ein gültiger playerindex übergeben wurde.. ähm.. ob man das will..

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
011
05.09.2002, 16:09
RirA



Ähm aha.
3ng3l geht's jetzt? ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
012
05.09.2002, 16:12
Archangel



ich mein ja nur o_O

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
013
05.09.2002, 16:17
Rach33ng3l



Mom hab gerade noch nen anderes Problem !
Mein Rachtehandling iss gerade tot lol...
Ich sag bescheid wen ichs hab !

Soweit schonmal Danke !

--

zum Seitenanfang zum Seitenende Profil || Suche
014
06.09.2002, 08:27
Tron



@RirA:
Archangel hat recht, das macht keinen sinn.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
015
06.09.2002, 11:03
Creeper



debug doch mal! Ich wuerds so machen:

Quellcode:
CBaseEntity *player;

for (int i = 1; i <= gpGlobals->maxClients; i++)
{
player = UTIL_PlayerByIndex(i);

if (player)
{
// do whatever
}
}

--

Head Coder:Sudden-Impact

Listen to CKY you fuCKYrs http://www.ckymusic.com

zum Seitenanfang zum Seitenende Profil || Suche
016
06.09.2002, 11:04
Rach33ng3l



So... Ich habs jetz mal mit dem if (pPlayer)
versucht und das hat spitze geklappt ! THX an alle !!!

--

zum Seitenanfang zum Seitenende Profil || Suche
017
06.09.2002, 12:40
RirA



Also was macht hier Sinn? Haha.

--

zum Seitenanfang zum Seitenende Profil || Suche
018
06.09.2002, 13:03
Rach33ng3l



Zur verständlichkeit für all:

Alle aktuellen Spieler auf dem Server erfährt man Fehlerfrei so:

Quellcode:
for (int i = 1; i <= gpGlobals->maxClients;i++)
{
    CBaseEntity *pPlayer = UTIL_PlayerByIndex(i);

    if (pPlayer)
    {

    }
}

--

zum Seitenanfang zum Seitenende Profil || Suche
019
06.09.2002, 13:30
Tron



@RirA:
du hast es genau andersrum gemacht, DAS hat keinen sinn ergeben!

@Racheengel:
bekommst du ALLE spieler?
lass dir auch mal ausgeben fuer welche indexe 0 zurueckgegeben wird.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
020
06.09.2002, 13:48
Archangel



nein tron, es gibt keinen spieler mit dem index 0.. der an PlayerByIndex übergebene parameter is der entindex, UTIL_PlayerByIndex ist eigtl das gleiche wie UTIL_EntityByIndex(?), nur dass halt überprüft wird, ob der index ein playerindex ist
das entity mit index 0 is worldspawn

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
021
06.09.2002, 13:55
Tron



aso, dann hat sich das geklaert, wie gesagt: hab ewig nicht mehr an HL rumgepfsucht.
aber seltsam ist die funktion schon...

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
022
06.09.2002, 15:02
RirA



Ich hab nur das if(pPlayer) dazugemacht, und das war richtig.

--

zum Seitenanfang zum Seitenende Profil || Suche
023
06.09.2002, 17:38
Ratman2000



lol schlagz euch doch ! Da steht doch jetz wies richtig iss !

--

zum Seitenanfang zum Seitenende Profil || Suche