[c++] Cod4 rcon
-
hi könnt mir jemand sagen wieso des prog mit der funktion probs hat und abstürzt
void ParsePLAYERDATA(string DATA) { ListView_DeleteAllItems(hWndLV1); playerL.clear(); string NAME; string SCORE; string PING; string GUID; string::size_type p1; string::size_type p2; string tmp; string tmp5; string buf; string trash; tmp5 = DATA; p2 = tmp5.find_first_of("\n", 0); trash += tmp5.substr(0, p2); tmp5 = tmp5.substr(p2 + 1, tmp5.length() - (p2 + 1)); p2 = tmp5.find_first_of("\n", 0); trash += tmp5.substr(0, p2); tmp5 = tmp5.substr(p2 + 1, tmp5.length() - (p2 + 1)); p2 = tmp5.find_first_of('\n', 0); trash += tmp5.substr(1, p2 - 2); tmp5 = tmp5.substr(p2 + 1, tmp5.length() - (p2 + 1)); tmp = tmp5; trash = ""; while (1) { string daten; p1 = tmp.find_first_of("\n", 0); if (p1 == string::npos) { break; } daten += tmp.substr(0, p1); tmp = tmp.substr(p1 + 1, tmp.length() - (p1 + 1)); SCORE += daten.substr(4, 5); PING += daten.substr(11, 4); GUID += daten.substr(15, 32); NAME += daten.substr(48, 15); playerL.push_back(new Player(NAME.c_str(), SCORE.c_str(), PING.c_str(), GUID.c_str())); NAME.clear(); SCORE.clear(); PING.clear(); GUID.clear(); daten.clear(); } char szText[150]; int size2; size2 = playerL.size(); for (int i = 0; i < size2; i++) { LVITEM lvi; memset(&lvi, 0, sizeof(lvi)); lvi.mask = LVIF_TEXT; lvi.cchTextMax = 300; lvi.iItem = i; lvi.iSubItem = 0; string name; name += playerL.at(i)->getName(); sprintf(szText, "%s", name.c_str()); lvi.pszText = szText; ListView_InsertItem(hWndLV1,(LPARAM)&lvi); lvi.iSubItem = 1; string score; score += playerL.at(i)->getScore(); sprintf(szText, "%s", score.c_str()); lvi.pszText = szText; ListView_SetItem(hWndLV1,(LPARAM)&lvi); lvi.iSubItem = 2; string ping; ping += playerL.at(i)->getPing(); sprintf(szText, "%s", ping.c_str()); lvi.pszText = szText; ListView_SetItem(hWndLV1,(LPARAM)&lvi); lvi.iSubItem = 3; string guid; guid += playerL.at(i)->getGuid(); sprintf(szText, "%s", guid.c_str()); lvi.pszText = szText; ListView_SetItem(hWndLV1,(LPARAM)&lvi); } }thx
-
hab für den eintrag nur wenig zeit gehabt wär net wenn ir jemand helfen will dann schick ich ihm mal den ganzen source code
thx
-
Was soll das Programm den überhaupt machen ?
-
dDas Programm ruft server informationen ab z.B. über spieler etc..
Man kann damit player kicken bannen map changen etc,,
nur ist mein c+++ (is ja nur hobby) eher ***** schlecht
kannste mir mal diene e-mail sagen dann würd ichs dir ma schicken?
-
Was hast du denn schon getan (damit wir nicht alles doppelt machen)?
-
Sobald der hierhin kommt bleibt er in der Schleife
while (1) { string daten; p1 = tmp.find_first_of("\n", 0); if (p1 == string::npos) { break; } daten += tmp.substr(0, p1); tmp = tmp.substr(p1 + 1, tmp.length() - (p1 + 1)); SCORE += daten.substr(4, 5); PING += daten.substr(11, 4); GUID += daten.substr(15, 32); NAME += daten.substr(48, 15); playerL.push_back(new Player(NAME.c_str(), SCORE.c_str(), PING.c_str(), GUID.c_str())); NAME.clear(); SCORE.clear(); PING.clear(); GUID.clear(); daten.clear(); }Hast du z.b. mal mit einem Debugger gekuckt ob der Überhaupt diesen Code verwendet O_o
char szText[150]; int size2; size2 = playerL.size(); for (int i = 0; i < size2; i++) { LVITEM lvi; memset(&lvi, 0, sizeof(lvi)); lvi.mask = LVIF_TEXT; lvi.cchTextMax = 300; lvi.iItem = i; lvi.iSubItem = 0; string name; name += playerL.at(i)->getName(); sprintf(szText, "%s", name.c_str()); lvi.pszText = szText; ListView_InsertItem(hWndLV1,(LPARAM)&lvi); lvi.iSubItem = 1; string score; score += playerL.at(i)->getScore(); sprintf(szText, "%s", score.c_str()); lvi.pszText = szText; ListView_SetItem(hWndLV1,(LPARAM)&lvi); lvi.iSubItem = 2; string ping; ping += playerL.at(i)->getPing(); sprintf(szText, "%s", ping.c_str()); lvi.pszText = szText; ListView_SetItem(hWndLV1,(LPARAM)&lvi); lvi.iSubItem = 3; string guid; guid += playerL.at(i)->getGuid(); sprintf(szText, "%s", guid.c_str()); lvi.pszText = szText; ListView_SetItem(hWndLV1,(LPARAM)&lvi); }
-
so arbeit is rum ^^
wenn cih daheim bin schilder ich ma genau was da net ganz einbahnfrei läuftthx (das ihr wenigstens geantwortet habt.. bei meinem beknackten eintrag)

-
ja verwendet er ich geb dir ma den source code mit .exe ja?
dann kannste ma sehen ich hab auch eine test funktion eingebaut normalerweise muss er ja erstma die daten vom server empfangen und mit der test funtktion liest er se aus na .txt und da gehts einbahnfreibis gleich ^^ (wenn die bahn net wieder zu spät kommt)
-
Verwende mal weniger Namen wie tmp..1..2..3..bla. Mehr Schreiben, aber mehr Übersicht.
Und sag mal konkret, was gemacht werden soll.
-
so erstma gescheit regestriert..
Erstma thx das ihr mir helfen wollt ich würd gerne weiter erklären muss aber erstma weg morgen dann wieder
UND danke
-
Das ist ein c++ Problem, das hat mit Winapi nix zu tun, der Teil für den Listview schein in Ordnung zu sein. Bis auf:
lvi.cchTextMax = 300;das brauchst du nur, wenn du Listviewiteminformationen ausliest, damit gibst du an wie groß der Buffer ist auf den
lvi.pszTextzeigt
Ich denke du hast dir den Querybuffer auch mal in eine Datei geschrieben, um zu sehen wie der String aufgebaut ist. Also beim Q3 Serverquery wird am Schluß nochmal ein "\n" angehängt, also eine Leerzeile praktisch. Da ich keinen Schimmer von c++ habe kann ich aber auch nicht sagen ob hier dein Problem liegt.
@help0r
er will einen String parsen und nach Name, Score, Ping, etc zerlegen und mit den Daten einen Listview aktualisieren. (einfügen sieht anderst aus, falls das das Ziel ist)
-
^^ THY an alle...
Mein Problem hat sich erledigt ich hab den string einfach falsch zerlegt und es kam auch nicht der ganze string an.Trotzdem nochma thx
PS: nur für den fall das es jemanden interessiert was zerlegt werden sollte:
ÿÿÿÿprint
map: mp_pipeline
num score ping guid name lastmsg address qport rate
--- ----- ---- -------------------------------- --------------- ------- --------------------- ----- -----
0 3 93 727fcaba55b4f67b68a64191053438e8 ^3CoDHQ 1JD7 50 24.93.10.111:-3200 -4994 25000
1 17 85 gjhhg39048ghdhngujhogugh9034zhg7 WalKing Dead 50 24.93.10.111:-3200 -4994 25000
2 10 65 jdgh93h3uo4g340gh934hg934hg4h9hg |GO|Hunter 50 24.93.10.111:-3200 -4994 25000so ungefähr