|
@@ -334,7 +334,7 @@ bool mapif_parse_itembound_retrieve(int fd)
|
|
|
StringBuf_Init(&buf);
|
|
|
|
|
|
// Get bound items from player's inventory
|
|
|
- StringBuf_AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `enchantgrade`");
|
|
|
+ StringBuf_AppendStr(&buf, "SELECT `id`, `nameid`, `amount`, `equip`, `identify`, `refine`, `attribute`, `expire_time`, `bound`, `unique_id`, `enchantgrade`");
|
|
|
for( j = 0; j < MAX_SLOTS; ++j )
|
|
|
StringBuf_Printf(&buf, ", `card%d`", j);
|
|
|
for( j = 0; j < MAX_ITEM_RDM_OPT; ++j ) {
|
|
@@ -355,22 +355,23 @@ bool mapif_parse_itembound_retrieve(int fd)
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 1, SQLDT_UINT, &item.nameid, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 3, SQLDT_UINT, &item.equip, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 8, SQLDT_UINT, &item.bound, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 9, SQLDT_INT8, &item.enchantgrade,0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 1, SQLDT_UINT, &item.nameid, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 3, SQLDT_UINT, &item.equip, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 7, SQLDT_UINT, &item.expire_time, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 8, SQLDT_CHAR, &item.bound, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 9, SQLDT_ULONGLONG, &item.unique_id, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 10, SQLDT_INT8, &item.enchantgrade, 0, NULL, NULL);
|
|
|
for( j = 0; j < MAX_SLOTS; ++j )
|
|
|
- SqlStmt_BindColumn(stmt,10+j, SQLDT_UINT, &item.card[j], 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt,11+j, SQLDT_UINT, &item.card[j], 0, NULL, NULL);
|
|
|
for( j = 0; j < MAX_ITEM_RDM_OPT; ++j ) {
|
|
|
- SqlStmt_BindColumn(stmt, 11+MAX_SLOTS+j*3, SQLDT_SHORT, &item.option[j].id, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 12+MAX_SLOTS+j*3, SQLDT_SHORT, &item.option[j].value, 0, NULL, NULL);
|
|
|
- SqlStmt_BindColumn(stmt, 13+MAX_SLOTS+j*3, SQLDT_CHAR, &item.option[j].param, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 12+MAX_SLOTS+j*3, SQLDT_SHORT, &item.option[j].id, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 13+MAX_SLOTS+j*3, SQLDT_SHORT, &item.option[j].value, 0, NULL, NULL);
|
|
|
+ SqlStmt_BindColumn(stmt, 14+MAX_SLOTS+j*3, SQLDT_CHAR, &item.option[j].param, 0, NULL, NULL);
|
|
|
}
|
|
|
memset(&items, 0, sizeof(items));
|
|
|
while( SQL_SUCCESS == SqlStmt_NextRow(stmt) )
|
|
@@ -435,7 +436,7 @@ bool mapif_parse_itembound_retrieve(int fd)
|
|
|
StringBuf_Init(&buf2);
|
|
|
StringBuf_Printf(&buf2, "UPDATE `%s` SET %s WHERE `char_id`='%d'", schema_config.char_db, StringBuf_Value(&buf), char_id);
|
|
|
|
|
|
- if( SQL_ERROR == SqlStmt_PrepareStr(stmt, StringBuf_Value(&buf)) ||
|
|
|
+ if( SQL_ERROR == SqlStmt_PrepareStr(stmt, StringBuf_Value(&buf2)) ||
|
|
|
SQL_ERROR == SqlStmt_Execute(stmt) )
|
|
|
{
|
|
|
SqlStmt_ShowDebug(stmt);
|