Hey,
ich bräuchte mal ein Moment hilfe von einem etwas erfahrenem C++ Scripter.
Ich möchte über bestimmte Items über den Globalen Chat ausgeben lassen und dafür eine eigene Farbe benutzen.
Da ich aber noch nicht so viel C++ Kenntnisse habe bräuchte ich mal Hilfe von jemandem
Erstmal der Code:
- PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs, CItemData* pItem)
- {
- char * szHyperlink;
- if (!PyTuple_GetString(poArgs, 0, &szHyperlink))
- return Py_BuildException();
- std::string stHyperlink(szHyperlink);
- std::vector<std::string> results;
- split_string(stHyperlink, ":", results, false);
- // item:vnum:flag:socket0:socket1:socket2
- if (0 == results[0].compare("item"))
- {
- if (results.size() < 6)
- return Py_BuildValue("s", "");
- CItemData * pItemData = NULL;
- if (CItemManager::Instance().GetItemDataPointer(htoi(results[1].c_str()), &pItemData))
- {
- char buf[1024] = { 0 };
- char itemlink[256];
- int len;
- bool isAttr = false;
- len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x",
- htoi(results[1].c_str()),
- htoi(results[2].c_str()),
- htoi(results[3].c_str()),
- htoi(results[4].c_str()),
- htoi(results[5].c_str()));
- if (results.size() >= 8)
- {
- for (int i = 6; i < results.size(); i += 2)
- {
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
- htoi(results[i].c_str()),
- atoi(results[i+1].c_str()));
- isAttr = true;
- }
- }
- DWORD vnum = pItem->GetIndex();
- if (isAttr)
- {
- if (vnum >= 290 && vnum <= 299 || //Vollmondschwert
- vnum >= 80 && vnum <= 89) //Anderthalbhänder
- {
- snprintf(buf, sizeof(buf), "|cff00ccff|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
- }
- else
- {
- snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
- }
- }
- else
- {
- snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
- }
- return Py_BuildValue("s", buf);
- }
- }
- return Py_BuildValue("s", "");
- }
Fehlermeldung:
Naja gut, fürs logische denken ist mir irgentwie auch klar das er in einem PyObject eine CItemData (packet.h wurde oben in includes zugefügt) sache auslesen möchte... irgentwie aber mir fällt nicht ein wie ich in einem PyObject eine Item VnumID auslesen kann...
wäre jemand bereit mir kurz unterstützung zu geben?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Noch eine Frage am Rande:
Zum beispiel sowas hier:
Wenn ich da jetzt was mit nem Umlaut (ö,ä,ü,ß) reinschreibe, bekomme ich bei den umlauten immer ein '?'.
Die Datei ist auf ANSI. Muss ich da was in einer Makefile oder aufm Serversource eine Kodierung umstellen? Ich meine so wie es oben jetzt drinne steht von Ymir werden umlaute auch angezeigt. Was mach ich falsch?
MFG