Schleunigst wechseln. Zap ist das schlechteste was es gibt, da ist sogar KMS besser. Zap löscht sogar absichtlich Server und schreibt dir dann in der Mail, das dein "Vertrag" abgelaufen seie. Alles schon gehabt, mehrfach. Würde dort keinen Server machen außer du hast bock alle 30 Minuten ein backup machen zu müssen
Beiträge von 'Asasel
-
-
Du kannst einfach für GMs die Levelanzeige bearbeiten
habe ich bereits, das sieht aber derbe nach Kori shit aus und der name ist dann so enorm lang das es im auge weh tut^^
Muss es unbedingt ein Titel sein oder gehen auch verschiedene Embleme über dem Kopf?
Ja, ich möchte es als Titel lösen Ein farbiger namen je nach GM_ level wäre auch möglich
-
Weis jemand wo geregelt wird, ab wann die Goldene GM schrift in einer PN erscheint? ich habe rausgefunden das die schrift IMMER erscheint, wenn in die gm_list etwas eingetragen wird. Auch wenn ich eine eigene auswahl option eintrage (zb "PROMOTION"). Dies würde ich gerne ändern das es nur bei low_wizard - implementor erscheint und nicht bei JEDER einstellung die gewählt wird. Habe mich mal durch den Clientsource gekämpft und mehrere Stellen gefunden gehabt die mit der Schrift zusammen hängen, jedoch keine die den GM Status über den Server abfragt.
€dit: vermute das ich sie gefunden habe
-
Ich wollte einmal nachfragen ob jemand weis, wie man ein Titelsystem für Gamemaster baut, ohne wirkliche einstellungen.
Sprich das das System aus der gm_list den Status ausließt (implementor, high_wizard, low_wizard usw) und dementsprechend über dem namen aber unter der Gilde einen "Titel" setzt. Wiegesagt, ohne ingame einstellungen usw also ohne Menü oder sonstiges. Es soll einfach nur den Rang aus der gm_list auslesen und dementsprechend einen vorgefertigten Titel setzen.
Ich weis wie man dies für den Rufchat macht, jedoch ist das für einen Titel über dem Namen wesentlich komplizierter da es Client und auch Serversource beinhaltet, und soweit bin ich leider bis dato noch nicht.
Hoffe jemand kann mir helfen
Edit: was auch möglich wäre, wäre ein Farbiger name je nach GM_xxx level. Falls dies jemand weis
Leider kann ich derzeit nur für ALLE Gamemaster einen gleichen titel setzen da die abfrage "if (IsGameMaster())" lautet. Ich kann nicht wie serverseitig abfragen "GMLevel == GM_HIGH_WIZARD" -
Probier es mal hiermit:
Öffne die PythonPlayerModule.cpp
suche nach:
Ersetz die ganze Funktion damit:
C- PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs)
- {
- TItemPos Cell;
- switch (PyTuple_Size(poArgs))
- {
- case 1:
- if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
- return Py_BuildException();
- break;
- case 2:
- if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
- return Py_BuildException();
- if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
- return Py_BuildException();
- break;
- default:
- return Py_BuildException();
- }
- const TItemData * pPlayerItem = CPythonPlayer::Instance().GetItemData(Cell);
- CItemData * pItemData = NULL;
- char buf[1024];
- if (pPlayerItem && CItemManager::Instance().GetItemDataPointer(pPlayerItem->vnum, &pItemData))
- {
- #ifdef ENABLE_CHANGELOOK_SYSTEM
- char itemlink[256 + 12];
- #else
- char itemlink[256];
- #endif
- int len;
- bool isAttr = false;
- len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x", pPlayerItem->vnum, pPlayerItem->flags, pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2]);
- #ifdef ENABLE_CHANGELOOK_SYSTEM
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x", pPlayerItem->transmutation);
- #endif
- for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
- if (pPlayerItem->aAttr[i].bType != 0)
- {
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
- pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue);
- isAttr = true;
- }
- if (GetDefaultCodePage() == CP_ARABIC) {
- if (isAttr)
- //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
- snprintf(buf, sizeof(buf), " |h|r[%s]|cffffc700|H%s|h", pItemData->GetName(), itemlink);
- else
- snprintf(buf, sizeof(buf), " |h|r[%s]|cfff1e6c0|H%s|h", pItemData->GetName(), itemlink);
- }
- else {
- if (isAttr)
- //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
- 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());
- }
- }
- else
- buf[0] = '\0';
- return Py_BuildValue("s", buf);
- }
Dann gehst Du noch ins PythonChatModule, suchst dort nach:
und ersetzt die Func hiermit:C- PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs)
- {
- 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 };
- #ifdef ENABLE_CHANGELOOK_SYSTEM
- char itemlink[256 + 12];
- #else
- char itemlink[256];
- #endif
- 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()));
- #ifdef ENABLE_CHANGELOOK_SYSTEM
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x", htoi(results[6].c_str()));
- #endif
- #ifdef ENABLE_CHANGELOOK_SYSTEM
- if (results.size() >= 9)
- #else
- if (results.size() >= 8)
- #endif
- {
- #ifdef ENABLE_CHANGELOOK_SYSTEM
- for (int i = 7; i < results.size(); i += 2)
- #else
- for (int i = 6; i < results.size(); i += 2)
- #endif
- {
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
- htoi(results[i].c_str()),
- atoi(results[i + 1].c_str()));
- isAttr = true;
- }
- }
- if (isAttr)
- //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
- 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", "");
- }
Löst das Problem leider nicht, besteht weiterhinEdit: Dadurch geht es garnicht mehr das Glas der einsicht. Weder mit noch ohne Bonis.
Code- 1027 03:22:22224 :: IndexError
- 1027 03:22:22224 :: :
- 1027 03:22:22224 :: list index out of range
- 1027 03:22:22224 ::
- 1027 03:22:25225 :: Traceback (most recent call last):
- 1027 03:22:25225 :: File "game.py", line 1417, in OnMouseLeftButtonUp
- 1027 03:22:25226 :: File "interfaceModule.py", line 386, in MakeHyperlinkTooltip
- 1027 03:22:25226 :: File "uiToolTip.py", line 2410, in SetHyperlinkItem
- 1027 03:22:25227 :: IndexError
- 1027 03:22:25227 :: :
- 1027 03:22:25227 :: list index out of range
- 1027 03:22:25227 ::
Bitte melden Sie sich an, um dieses Bild zu sehen.
-
Ich suchs dir nacher, wenn es bis dahin nicht gelöst wurde.
Besteht leider weiterhin
Habe mir diverse andere SRCs angeschaut, konnte jedoch keinen gravierenden Unterschied feststellen der sowas hervor rufen kann -
Das ist ein Fehler im Clientsource mach dich mal schlau nach der Hyperlinkfuntion im Src glaube PythonChatModule oder so war das
Code- PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs)
- {
- 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"))
- {
- #ifdef __ENABLE_MORE_STONE__
- if (results.size() < 9)
- #else
- if (results.size() < 6)
- #endif
- 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;
- #ifdef __ENABLE_MORE_STONE__
- len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%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()),
- htoi(results[6].c_str()),
- htoi(results[7].c_str()),
- htoi(results[8].c_str()));
- #else
- 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()));
- #endif
- #ifdef __ENABLE_MORE_STONE__
- if (results.size() >= 11)
- {
- for (int i = 9; i < results.size(); i += 2)
- #else
- if (results.size() >= 8)
- {
- for (int i = 6; i < results.size(); i += 2)
- #endif
- {
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
- htoi(results[i].c_str()),
- atoi(results[i+1].c_str()));
- isAttr = true;
- }
- }
- if (isAttr)
- //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
- 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", "");
- }
Auf epvp gibt es eine angebliche Lösung jedoch sehe ich zwischen der dortigen lösung und meinem Teil keinen unterschied, bis auf das more_stone system, bei mir wird es mit #ifdef abgefragt, in der lösung ist es fest eingebaut. Ansonsten ist es identisch. (das more_stone habe ich NICHT aktiviert, es werden die #else's genommen die standard sind)
Auch der Python teil in epvp ist gleich mit meinem, jedoch ist bei mir noch das Transmutationssystem mit drinne. Das mit den Glas der Einsicht war aber schon von anfang an so, nicht erst nach bearbeitungen somit liegts nicht an der Transmutation. Scheibar ist das ein gängiges Problem bei den aktuell öffentlichen Basis sources
-
Wenn ich ein Item ohne Bonis im Chat via Glas der einsicht zeige, kann man es nicht anklicken. Wenn ein Boni drauf ist geht dies jedoch. Jemand eine idee? Müsste source seitig ein fehler sein..
-
Habe eine Frage bezüglich des Public System wo man Kostüme ein/ausblenden kann.
Das System ist standardmäßig nicht mit Transmutation möglich, da dann auch die verwandelte Rüstung gecleart wird.Hat jemand ahnung wie man dies ändern kann? Hab mal grob drüber geschaut und etwa 3 Stellen gefunden wo es darum geht den Effekt der Rüstung zu ändern jedoch konnte ich nicht rauskriegen wie ich es überprüfe ob eine Rüstung die dann statt dem Kostüm eingeblendet werden soll, transmutiert ist.
Sprich beim Kostüm Ausblenden wird die original Rüstung angezeigt, auch wenn auf sie etwas projiziert ist, und das möchte ich ändern. Das System soll checken ob die Rüstung einen Projektion hat und auch diese dann anzeigen beim Ausblenden des Kostüms.
Dann ist noch das Problem, das wenn ich ein Kostüm ausblende, ich nurnoch meine Rüstung sehe und dann auch die Rüstung ausblende wird die Rüstung nicht gecleart. Sprich ich habe immernoch die Rüstung an laut Optik obwohl ich Sie ausgezogen habe. Dies korrigiert sich erst wenn ich auch das Kostüm ausziehe.
Dann noch ein kleines Problem was ansich nicht schlimm ist jedoch wollte ich es direkt mit erwähnen; Wenn man kein Kostüm anhat und auf Ausblenden geht, wird die Rüstung ausgeblendet. Sprich es prüft nicht ob auch ein Kostüm angezogen ist.
Das System: Bitte melden Sie sich an, um diesen Link zu sehen.
Befolgt habe ich das einbau Tutorial von Vegas, das System funktioniert auch komplett so, wie es laut Thread soll, jedoch ebend nicht mit Transmutation da dort die Teile fehlen für.
Ich habe gesehen das in M2Dev auch Leute damit probleme haben aber keine Antwort erhalten haben (denke mal M2Dev ist ziemlich tot) deshalb stelle ich lieber hier die Frage und mache mir erst garnicht die Mühe dort einen Account zu erstellen.)