habe mir fast gedacht, dass wir zu diesem Thema auch noch kommen werden.
Also.
strcmp ist ein Vergleich, der auf genaue Schreibweise überprüft und vergleicht. In Data steht aber nicht nur "Terrorists_Wins" oder "CT_Wins".
Lass Dir die Data aus logd_teamscore einfach mal mit einem say(Data) anzeigen. Dann überlege nochmal, wie man das strplit am Besten ansetzt, um die einzelnen Komponenten zu erhalten.
Und bedenke, dass Du bei einem strsplit auch wieder strings erhälst und keine Zahlen! Also muss terror und ct auch als Array definiert sein. Du brauchst auch keine Integer, die das Zählen mit ++ übernehmen. Die korrekten Werte stecken alle in der Data. Es kommt eben auf den richtigen Split an!
Auch ist die Überprüfung auf Game_Commencing und Restart_Round in einem Teamaction Event nicht sinnig, da dies dort nicht auftachen wird. Dafür ist ja der World-Event zuständig! Aber wie gesagt ist ja das Zählen mit ++ nicht notwendig, da ja alles in der Data steckt.
So setzte ich den split an, wenn ich die Teamscore erhalten will:
Code:
convert_string(HLData,Params,MAX_DATA_LENGTH);
strbreak(Params,Data1,Data2,MAX_DATA_LENGTH);
strsplit(Data2, "# " ,dummy,MAX_DATA_LENGTH,dummy,MAX_DATA_LENGTH,ctscore,MAX_NUMBER_LENGTH,dummy,MAX_DATA_LENGTH,terrscore,MAX_NUMBER_LENGTH);
Erklärung zum Beispiel:
Man sieht also, dass die Data2 sehr vieles anzeigt. Unnötiges speichere ich einfach in 'dummy'.
Die ctscore und terrscore sind als Arrays global bei mir gespeichert, damit ich jederzeit auf diese Werte zurückgreifen kann. Bei Dir wäre das nicht notwendig. Bei Dir kannst Du new ctscore[MAX_NUMBER_LENGTH]; und terrscore[MAX_NUMBER_LENGTH]; innerhalb der logd_teamscore Funktion definieren. (Errinnerung: Arrays werden dann mit %s im snprintf angezeigt!)
So. Das zum Anzeigen der Score. Aber jetzt brauchen wir ja noch die Info, wer auch gewonnen hat, ohne ständig zu vergleichen. Diese Info steckt in der Data1.
Ich ermittle es so:
Code:
if(strmatch(Data1, "CT", strlen("CT")) -> um die CT Wins herrauszufinden.
if(strmatch(Data1, "TERRORIST", strlen("TERRORIST")) -> um Terror Wins herrauszufinden.
ok?
_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die
Such-Funktion