1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | Config::iterator drops = map->world->drops_config.find(util::to_string( this ->id)); if (drops != map->world->drops_config.end()) { std::vector<std::string> parts = util::explode( ',' , static_cast <std::string>((*drops).second)); if (parts.size() > 1) { if (parts.size() % 4 != 0) { Console::Wrn( "skipping invalid drop data for NPC #%i" , id); return ; } this ->drops.resize(parts.size() / 4); for (std:: size_t i = 0; i < parts.size(); i += 4) { NPC_Drop *drop( new NPC_Drop); drop->id = util::to_int(parts[i]); drop->min = util::to_int(parts[i+1]); drop->max = util::to_int(parts[i+2]); drop->chance = util::to_float(parts[i+3]); this ->drops[i/4] = drop; } } } |