diff options
author | Smokexyz <sagunkho@hotmail.com> | 2017-03-02 19:24:48 +0800 |
---|---|---|
committer | Smokexyz <sagunkho@hotmail.com> | 2017-04-04 13:38:16 +0800 |
commit | 974222a8d3f189083205bf5d330de04a43226ad3 (patch) | |
tree | b78280b9dad90616196ee37c3992c3e46962b906 /src/map/log.c | |
parent | 20145c61053479b9acd8ed50c75a80c2a861e349 (diff) | |
download | hercules-974222a8d3f189083205bf5d330de04a43226ad3.tar.gz hercules-974222a8d3f189083205bf5d330de04a43226ad3.tar.bz2 hercules-974222a8d3f189083205bf5d330de04a43226ad3.tar.xz hercules-974222a8d3f189083205bf5d330de04a43226ad3.zip |
Implementation of Item Options System.
Allows the infusing of equipments with bonus item options.
This feature is constrained to clients of packet versions greater than or equal to `20150226`.
Item Options and their effects are defined server-side in `db/item_options.conf` and client side in `data/luafiles514/lua files/datainfo/addrandomoptionnametable.lub`
The ID of the option must tally with the correct index of the description provided in the client side lua file to avoid bugs.
IT_OPT_* keys and MAX_ITEM_OPTIONS macro are also exported from the source as constants.
An additional flag `disable_options` has been added to sql, and as `DisableOptions: true/false (boolean, defaults to false !!for equipments only!!)` to item_db.conf files.
Script commands documentation is also included.
SQL file updates are included.
Credits: [Smokexyz](https://github.com/Smokexyz)
Style and Script Fixes by [Asheraf](https://github.com/Asheraf)
Initial design Idea by [secretdataz](https://github.com/secretdataz)
Diffstat (limited to 'src/map/log.c')
-rw-r--r-- | src/map/log.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/map/log.c b/src/map/log.c index 902d428a7..6419c4766 100644 --- a/src/map/log.c +++ b/src/map/log.c @@ -161,12 +161,15 @@ void log_branch(struct map_session_data* sd) { } void log_pick_sub_sql(int id, int16 m, e_log_pick_type type, int amount, struct item* itm, struct item_data *data) { nullpo_retv(itm); - if( SQL_ERROR == SQL->Query(logs->mysql_handle, - LOG_QUERY " INTO `%s` (`time`, `char_id`, `type`, `nameid`, `amount`, `refine`, `card0`, `card1`, `card2`, `card3`, `map`, `unique_id`) " - "VALUES (NOW(), '%d', '%c', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s', '%"PRIu64"')", + if (SQL_ERROR == SQL->Query(logs->mysql_handle, + LOG_QUERY " INTO `%s` (`time`, `char_id`, `type`, `nameid`, `amount`, `refine`, `card0`, `card1`, `card2`, `card3`, " + "`opt_idx0`, `opt_val0`, `opt_idx1`, `opt_val1`, `opt_idx2`, `opt_val2`, `opt_idx3`, `opt_val3`, `opt_idx4`, `opt_val4`, `map`, `unique_id`) " + "VALUES (NOW(), '%d', '%c', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s', '%"PRIu64"')", logs->config.log_pick, id, logs->picktype2char(type), itm->nameid, amount, itm->refine, itm->card[0], itm->card[1], itm->card[2], itm->card[3], - map->list[m].name, itm->unique_id) - ) { + itm->option[0].index, itm->option[0].value, itm->option[1].index, itm->option[1].value, itm->option[2].index, itm->option[2].value, + itm->option[3].index, itm->option[3].value, itm->option[4].index, itm->option[4].value, + map->list[m].name, itm->unique_id)) + { Sql_ShowDebug(logs->mysql_handle); return; } |