Jump to content

rootKid

Members
  • Content Count

    4
  • Joined

  • Last visited

Everything posted by rootKid

  1. How can I go about altering the mob_read_db_drops_sub routine so that it automatically removes the item line from mob_db.conf? I am using an older version of Herc, and so it may be outdated, but the following is the routine found within my mob.c. void mob_read_db_drops_sub(struct mob_db *entry, struct status_data *mstatus, int class_, config_setting_t *t) { config_setting_t *drop; int i = 0; int idx = 0; int i32; int k; while (idx < MAX_MOB_DROP && (drop = libconfig->setting_get_elem(t, i))) { const char *name = config_setting_name(drop); int rate_adjust, type; unsigned short ratemin, ratemax; struct item_data* id = itemdb->search_name(name); int value = 0; if (!id) { ShowWarning("mob_read_db: drop item %s not found in monster %d\n", name, class_); i ++; continue; } if (mob->get_const(drop, &i32) && i32 >= 0) { value = i32; } if (value <= 0) { ShowWarning("mob_read_db: wrong drop chance %d for drop item %s in monster %d\n", value, name, class_); i ++; continue; } entry->dropitem[idx].nameid = id->nameid; if (!entry->dropitem[idx].nameid) { entry->dropitem[idx].p = 0; //No drop. i ++; continue; } type = id->type; if ((class_ >= 1324 && class_ <= 1363) || (class_ >= 1938 && class_ <= 1946)) { //Treasure box drop rates [Skotlex] rate_adjust = battle_config.item_rate_treasure; ratemin = battle_config.item_drop_treasure_min; ratemax = battle_config.item_drop_treasure_max; } else switch (type) { // Added support to restrict normal drops of MVP's [Reddozen] case IT_HEALING: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_heal_boss : battle_config.item_rate_heal; ratemin = battle_config.item_drop_heal_min; ratemax = battle_config.item_drop_heal_max; break; case IT_USABLE: case IT_CASH: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_use_boss : battle_config.item_rate_use; ratemin = battle_config.item_drop_use_min; ratemax = battle_config.item_drop_use_max; break; case IT_WEAPON: case IT_ARMOR: case IT_PETARMOR: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_equip_boss : battle_config.item_rate_equip; ratemin = battle_config.item_drop_equip_min; ratemax = battle_config.item_drop_equip_max; break; case IT_CARD: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_card_boss : battle_config.item_rate_card; ratemin = battle_config.item_drop_card_min; ratemax = battle_config.item_drop_card_max; break; default: rate_adjust = (mstatus->mode&MD_BOSS) ? battle_config.item_rate_common_boss : battle_config.item_rate_common; ratemin = battle_config.item_drop_common_min; ratemax = battle_config.item_drop_common_max; break; } mob->item_dropratio_adjust(id->nameid, class_, &rate_adjust); entry->dropitem[idx].p = mob->drop_adjust(value, rate_adjust, ratemin, ratemax); //calculate and store Max available drop chance of the item if (entry->dropitem[idx].p && (class_ < 1324 || class_ > 1363) && (class_ < 1938 || class_ > 1946)) { //Skip treasure chests. if (id->maxchance == -1 || (id->maxchance < entry->dropitem[idx].p) ) { id->maxchance = entry->dropitem[idx].p; //item has bigger drop chance or sold in shops } for (k = 0; k< MAX_SEARCH; k++) { if (id->mob[k].chance <= entry->dropitem[idx].p) break; } if (k == MAX_SEARCH) { i++; idx++; continue; } if (id->mob[k].id != class_ && k != MAX_SEARCH - 1) memmove(&id->mob[k+1], &id->mob[k], (MAX_SEARCH-k-1)*sizeof(id->mob[0])); id->mob[k].chance = entry->dropitem[idx].p; id->mob[k].id = class_; } i++; idx++; } if (idx == MAX_MOB_DROP && libconfig->setting_get_elem(t, i)) { ShowWarning("mob_read_db: Too many drops in mob %d\n", class_); } } To further elaborate upon my request. As is shown above, when the item listed under the mob does not exist in the item_db, the following occurs. if (!id) { ShowWarning("mob_read_db: drop item %s not found in monster %d\n", name, class_); i ++; continue; } On top of the warning, how can I alter the code to automatically delete the non-existent item line from the mob inside the mob_db.conf and save the file? So for instance, if the following was the original drops of the monster: Drops: { Wand: 100 Orange: 1000 Pecopeco_Card: 1 } And the Orange does not exist within the item_db, the following change to mob_db.conf would result automatically: Drops: { Wand: 100 Pecopeco_Card: 1 }
  2. How do you increase the max number of selling items in the Auction? The default limits it to only 5 items. Can this be done through solely server-side? Or is client side also involved?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.