Changeset 111 for trunk/src/game/Player.cpp
- Timestamp:
- 11/19/08 13:37:03 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/Player.cpp
r102 r111 589 589 SetUInt32Value( UNIT_FIELD_LEVEL, sWorld.getConfig(CONFIG_START_PLAYER_LEVEL) ); 590 590 // set starting gold 591 SetUInt32Value( PLAYER_FIELD_COINAGE, sWorld.getConfig(CONFIG_PLAYER_START_GOLD) *10000);591 SetUInt32Value( PLAYER_FIELD_COINAGE, sWorld.getConfig(CONFIG_PLAYER_START_GOLD) ); 592 592 593 593 // set starting honor … … 18188 18188 uint32 sum_level = 0; 18189 18189 Player* member_with_max_level = NULL; 18190 18191 pGroup->GetDataForXPAtKill(pVictim,count,sum_level,member_with_max_level); 18190 Player* not_gray_member_with_max_level = NULL; 18191 18192 // gets the max member level of the group, and the max member level that still gets XP 18193 pGroup->GetDataForXPAtKill(pVictim,count,sum_level,member_with_max_level,not_gray_member_with_max_level); 18192 18194 18193 18195 if(member_with_max_level) 18194 18196 { 18195 xp = PvP ? 0 : Trinity::XP::Gain(member_with_max_level, pVictim); 18197 // PvP kills doesn't yield experience 18198 // also no XP gained if there is no member below gray level 18199 xp = (PvP || !not_gray_member_with_max_level) ? 0 : Trinity::XP::Gain(not_gray_member_with_max_level, pVictim); 18196 18200 18197 18201 // skip in check PvP case (for speed, not used) … … 18223 18227 18224 18228 // XP updated only for alive group member 18225 if(pGroupGuy->isAlive()) 18229 if(pGroupGuy->isAlive() && not_gray_member_with_max_level && 18230 pGroupGuy->getLevel() <= not_gray_member_with_max_level->getLevel()) 18226 18231 { 18227 uint32 itr_xp = uint32(xp*rate);18232 uint32 itr_xp = (member_with_max_level == not_gray_member_with_max_level) ? uint32(xp*rate) : uint32((xp*rate/2)+1); 18228 18233 18229 18234 pGroupGuy->GiveXP(itr_xp, pVictim);