Morgen, seit ich das Schulterbandsystem drinne habe, spinnt mein MySQL weshalb auch immer und spuckt einen relativ sinnfreien Fehler aus:
Code
- SYSERR: Mar 3 14:12:35 :: ChildLoop: AsyncSQL: query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 (query: INSERT DELAYED INTO log (type, time, who, x, y, what, how, hint, ip, vnum) VALUES('ITEM', NOW(), 15, 959682, 269755, 30022127, 'COMBINE (REFINE SUCCESS)', 'Meisterband (einfach) 1 ' errno: 1064)
Der Eintrag wird aber in die Logtable geschrieben.... / Bei manchen Bändern spuckt er keinen Fehler aus.
Ich nutze MySQL 5.7
Hier noch der Ausschnitt des Codes:
Code
- int iChance = number(1, 100);
- bool bSucces = (iChance <= iSuccessChance ? true : false);
- if (bSucces)
- {
- LPITEM pkItem = ITEM_MANAGER::instance().CreateItem(dwItemVnum, 1, 0, false);
- if (!pkItem)
- {
- sys_err("%d can't be created.", dwItemVnum);
- return;
- }
- ITEM_MANAGER::CopyAllAttrTo(pkItemMaterial[0], pkItem);
- LogManager::instance().ItemLog(this, pkItem, "COMBINE (REFINE SUCCESS)", pkItem->GetName());
- DWORD dwAbs = (dwMinAbs == dwMaxAbs ? dwMinAbs : number(dwMinAbs + 1, dwMaxAbs));
- pkItem->SetSocket(SASH_ABSORPTION_SOCKET, dwAbs);
- pkItem->SetSocket(SASH_ABSORBED_SOCKET, pkItemMaterial[0]->GetSocket(SASH_ABSORBED_SOCKET));
- PointChange(POINT_GOLD, -dwPrice);
- DBManager::instance().SendMoneyLog(MONEY_LOG_REFINE, pkItemMaterial[0]->GetVnum(), -dwPrice);
- WORD wCell = pkItemMaterial[0]->GetCell();
- ITEM_MANAGER::instance().RemoveItem(pkItemMaterial[0], "COMBINE (REFINE SUCCESS)");
- ITEM_MANAGER::instance().RemoveItem(pkItemMaterial[1], "COMBINE (REFINE SUCCESS)");
- pkItem->AddToCharacter(this, TItemPos(INVENTORY, wCell));
- ITEM_MANAGER::instance().FlushDelayedSave(pkItem);
- pkItem->AttrLog();
- if (lVal == 4)
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("New absorption rate: %d%"), dwAbs);
- else
- ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Success."));
- EffectPacket(SE_EFFECT_SASH_SUCCEDED);
- LogManager::instance().SashLog(GetPlayerID(), GetX(), GetY(), dwItemVnum, pkItem->GetID(), 1, dwAbs, 1);
- ClearSashMaterials();
Und hier ist der Querycode des Source: