StatsEntry Login::parsestats(InPacket& recv) const { StatsEntry statsentry; statsentry.name = recv.readpadascii(13); recv.readbool(); //gender recv.readbyte(); //skin recv.readint(); //face recv.readint(); //hair for (size_t i = 0; i < 3; i++) { statsentry.petids.push_back(recv.readlong()); } statsentry.stats[Maplestat::LEVEL] = recv.readbyte(); statsentry.stats[Maplestat::JOB] = recv.readshort(); statsentry.stats[Maplestat::STR] = recv.readshort(); statsentry.stats[Maplestat::DEX] = recv.readshort(); statsentry.stats[Maplestat::INT] = recv.readshort(); statsentry.stats[Maplestat::LUK] = recv.readshort(); statsentry.stats[Maplestat::HP] = recv.readshort(); statsentry.stats[Maplestat::MAXHP] = recv.readshort(); statsentry.stats[Maplestat::MP] = recv.readshort(); statsentry.stats[Maplestat::MAXMP] = recv.readshort(); statsentry.stats[Maplestat::AP] = recv.readshort(); statsentry.stats[Maplestat::SP] = recv.readshort(); statsentry.exp = recv.readint(); statsentry.stats[Maplestat::FAME] = recv.readshort(); recv.skip(4); //gachaexp statsentry.mapid = recv.readint(); statsentry.portal = recv.readbyte(); recv.skip(4); //timestamp statsentry.job = CharJob(statsentry.stats[Maplestat::JOB]); return statsentry; }
Charstats::Charstats(const StatsEntry& entry) { name = entry.getname(); petids = entry.getpets(); stats = entry.getstats(); job = CharJob(entry.getjob()); exp = entry.getexp(); mapid = entry.getmapid(); portal = entry.getportal(); maxdamage = 0; mindamage = 0; attack = 0; honor = 0; mastery = 0.5f; critical = 0.05f; mincrit = 0.5f; maxcrit = 0.75f; bossdmg = 0.0f; ignoredef = 0.0f; stance = 0.0f; resiststatus = 0.0f; }