Jump to content

yad02

Members
  • Posts

    149
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by yad02

  1. Not fixed in 7018 in area 3648 near water but out of water breath timer appears !
  2. void Player::learnSkillRewardedSpells(uint32 skill_id, uint32 skill_value ) { uint32 raceMask = getRaceMask(); uint32 classMask = getClassMask(); for (uint32 j=0; j<sSkillLineAbilityStore.GetNumRows(); ++j) { SkillLineAbilityEntry const *pAbility = sSkillLineAbilityStore.LookupEntry(j); if (!pAbility || pAbility->skillId!=skill_id || pAbility->learnOnGetSkill != ABILITY_LEARNED_ON_GET_PROFESSION_SKILL) continue; // Check race if set if (pAbility->racemask && !(pAbility->racemask & raceMask)) continue; // Check class if set if (pAbility->classmask && !(pAbility->classmask & classMask)) continue; if (sSpellStore.LookupEntry(pAbility->spellId)) { // Ok need learn spell if(skill_value < pAbility->req_skill_value || skill_value - pAbility->req_skill_value >= 75) { if(pAbility->req_skill_value > 1) removeSpell(pAbility->spellId); } else if(pAbility->req_skill_value == 1 || skill_value - pAbility->req_skill_value < 75) { if(GetSession()->PlayerLoading()) addSpell(pAbility->spellId,true,true,true); else learnSpell(pAbility->spellId); } } } } rewrite tests : if(skill_value < pAbility->req_skill_value || skill_value - pAbility->req_skill_value >= 75) else if(pAbility->req_skill_value == 1 || skill_value - pAbility->req_skill_value < 75) It's better, in spellbook all is right A little bug with .learn command : when you do a .learn spell_rank_6 you learn rank 5 4 3 2 1 (spell_chain effect) When you disconnect all rank are removed Other "bug" with spell for example when you get 300 skill in chat client console : rank 3 is removed rank 2 is removed rank 1 is removed you learn rank 1 you learn rank 2 you learn rank 3 you learn rank 4 your profession skill is 300
  3. Are you sure ? I regenerated my map the last week but this bugs are always present... I regenerate one more time today for test and I tell you what happen
  4. I clean my sources and I see it. Thank you for help ! Now this code is correct !
  5. He is beginner and he says me that (in Ragefire Chasm) a player who fall in lava die so he thinks it's the same way for all dungeons. Sorry I didn't think that a player with 200hp at level 15 take a one hit kill with lava damage at 600, I remove it. About other "bugs", the code is it correct ? It's possible to change topic name to just "[Patch] Lava/Water Fixs" ?
  6. Tested works perfectly with a remove old rank spell system. Someone can test if it's really Blizzlike ? The order of chat message information is it good ? Actually it's this oder Learn Spell of Profession Learn Profession Skill = 2 Skill = 3 ... Skill = 73 Skill = 74 You learn Spell Rank 1 Skill = 75 Skill = 76 ... Skill = 148 Skill = 149 You unlearn Spell Rank 1 You learn Spell Rank 2 Skill = 150 Skill = 151 ...
  7. Sorry it's a mistake from me ! It should be this : (I haven't test it, I do it in around 10hours) Index: src/game/Player.cpp =================================================================== --- src/game/Player.cpp (revision 205) +++ src/game/Player.cpp (working copy) @@ -4789,6 +4789,15 @@ new_value = MaxValue; SetUInt32Value(PLAYER_SKILL_VALUE_INDEX(i),MAKE_SKILL_VALUE(new_value,MaxValue)); + uint32 SkillLevels[]={75,150,225,300,375,450}; + for(uint32 j = 0; j < sizeof(SkillLevels)/sizeof(uint32) - 1; j++) + { + if((SkillValue < SkillLevels[j] && new_value >= SkillLevels[j])) + { + learnSkillRewardedSpells( (GetUInt32Value(PLAYER_SKILL_INDEX(i)) & 0x0000FFFF), SkillLevels[j]); + break; + } + } GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_REACH_SKILL_LEVEL); sLog.outDebug("Player::UpdateSkillPro Chance=%3.1f%% taken", Chance/10.0); return true; @@ -5046,7 +5055,7 @@ (*i)->ApplyModifier(true); // Learn all spells for skill - learnSkillRewardedSpells(id); + learnSkillRewardedSpells(id, 1); return; } } @@ -17993,7 +18002,7 @@ } } -void Player::learnSkillRewardedSpells(uint32 skill_id ) +void Player::learnSkillRewardedSpells(uint32 skill_id, uint32 skill_value ) { uint32 raceMask = getRaceMask(); uint32 classMask = getClassMask(); @@ -18002,6 +18011,7 @@ SkillLineAbilityEntry const *pAbility = sSkillLineAbilityStore.LookupEntry(j); if (!pAbility || pAbility->skillId!=skill_id || pAbility->learnOnGetSkill != ABILITY_LEARNED_ON_GET_PROFESSION_SKILL) continue; // Check race if set if (pAbility->racemask && !(pAbility->racemask & raceMask)) continue; @@ -18012,7 +18022,10 @@ if (sSpellStore.LookupEntry(pAbility->spellId)) { // Ok need learn spell - learnSpell(pAbility->spellId); + if(skill_value - pAbility->req_skill_value >= 75) + { + if(pAbility->req_skill_value > 1 && skill_value > 1) + removeSpell(pAbility->spellId); + } + else + learnSpell(pAbility->spellId); } } } @@ -18026,7 +18039,7 @@ uint32 pskill = GetUInt32Value(PLAYER_SKILL_INDEX(i)) & 0x0000FFFF; - learnSkillRewardedSpells(pskill); + learnSkillRewardedSpells(pskill, 1); } } Index: src/game/Player.h =================================================================== --- src/game/Player.h (revision 205) +++ src/game/Player.h (working copy) @@ -1745,7 +1745,7 @@ uint16 GetPureSkillValue(uint32 skill) const; // skill value int16 GetSkillTempBonusValue(uint32 skill) const; bool HasSkill(uint32 skill) const; - void learnSkillRewardedSpells( uint32 id ); + void learnSkillRewardedSpells( uint32 id, uint32 value ); void learnSkillRewardedSpells(); void SetDontMove(bool dontMove);
  8. Have you got an idea about how get all rank spell when you have just a spell ? For example get the spells id for rank 1, 2, 3, when you know the spell id of the rank 4 ?
  9. I dont' see how remove old spell rank but I looking for About hardcode "if <> tests" what do you think of this : uint32 SkillLevels[]={75,150,225,300,375,450}; for(uint32 j = 0; j < sizeof(SkillLevels)/sizeof(uint32) - 1; j++) { if((SkillValue < SkillLevels[j] && new_value >= SkillLevels[j])) { learnSkillRewardedSpells( (GetUInt32Value(PLAYER_SKILL_INDEX(i)) & 0x0000FFFF), new_value); break; } } I haven't test it but is it a better way ?
  10. Rewrite without for loop, It works perfectly when remplacing this Player::learnSkillRewardedSpells(uint32 skill_id ) by Player::learnSkillRewardedSpells(uint32 skill_id, uint32 new_value )
  11. In fact I don't see how get "i" whitout use the for loop
  12. Toughness fixed on post #1 (in SpellAuras.cpp) It works but I don't know if I must fix it with this method... If other ability or special capacity has the same problem (cumulative effect with rank) say it me please
  13. What bug does the patch fix? What features does the patch add? Blizzard changes in booty bay : mounts are allowed For which repository revision was the patch created? 6985 Who has been writing this patch? Please include either forum user names or email addresses. Except if I wrong this area allow mount since 3.0.3 (Area 35 - Booty Bay) In Spell.cpp : case SPELL_AURA_MOUNTED: { if (m_caster->IsInWater()) return SPELL_FAILED_ONLY_ABOVEWATER; if (m_caster->GetTypeId()==TYPEID_PLAYER && ((Player*)m_caster)->GetTransport()) return SPELL_FAILED_NO_MOUNTS_ALLOWED; // Ignore map check if spell have AreaId. AreaId already checked and this prevent special mount spells if (m_caster->GetTypeId()==TYPEID_PLAYER && !sMapStore.LookupEntry(m_caster->GetMapId())->IsMountAllowed() && !m_IsTriggeredSpell && !m_spellInfo->AreaId) return SPELL_FAILED_NO_MOUNTS_ALLOWED; - if (m_caster->GetAreaId()==35) - return SPELL_FAILED_NO_MOUNTS_ALLOWED; - ShapeshiftForm form = m_caster->m_form; if( form == FORM_CAT || form == FORM_TREE || form == FORM_TRAVEL || form == FORM_AQUA || form == FORM_BEAR || form == FORM_DIREBEAR || form == FORM_CREATUREBEAR || form == FORM_GHOSTWOLF || form == FORM_FLIGHT || form == FORM_FLIGHT_EPIC || form == FORM_MOONKIN || form == FORM_METAMORPHOSIS ) return SPELL_FAILED_NOT_SHAPESHIFT; break; } In Player.cpp void Player::UpdateAreaDependentAuras( uint32 newArea ) { // remove auras from spells with area limitations for(AuraMap::iterator iter = m_Auras.begin(); iter != m_Auras.end() { // use m_zoneUpdateId for speed: UpdateArea called from UpdateZone or instead UpdateZone in both cases m_zoneUpdateId up-to-date if(!IsSpellAllowedInLocation(iter->second->GetSpellProto(),GetMapId(),m_zoneUpdateId,newArea)) RemoveAura(iter); else ++iter; } - // unmount if enter in this subzone - if( newArea == 35) - RemoveSpellsCausingAura(SPELL_AURA_MOUNTED); - // Dragonmaw Illusion - else if( newArea == 3759 || newArea == 3966 || newArea == 3939 ) + // Dragonmaw Illusion + if( newArea == 3759 || newArea == 3966 || newArea == 3939 ) { if( GetDummyAura(40214) ) { if( !HasAura(40216,0) ) CastSpell(this,40216,true); if( !HasAura(42016,0) ) CastSpell(this,42016,true); } } } if this code is not correct delete it please. Source : http://www.wowinsider.com/2008/08/12/mounts-now-welcome-in-booty-bay/ Just to be sure, can you verify it on live server please ? Thank you... PS : Sorry I haven't got the lines numbers... I'm not on my own computer...
  14. I test with these records : 53120 0 53120 1 0 53121 53120 53120 2 0 53122 53121 53120 3 0 53123 53122 53120 4 0 53124 53123 53120 5 0 53040 53124 53120 6 0 it doesn't work... when you learn the rank 2 you get the effect of rank 1 + rank 2 Maybe I must do the contrary : when a player learn a spell N+1 he unlearn spell N but it seems very hardcoded and bad...
  15. ok so exists a "bug" on Aura: Mod Increase Health no ? (http://www.wowhead.com/?spell=53120) how mangos does to remove the old rank of a spell ?
  16. ok so it's possible to have another bug in spell system... maybe I'm wrong but it seems that with toughness rank 6 you cumulate effects of rank 1 + 2 + 3 + 4 + 5 + 6. I try .unlearn 53123 (Toughness rank 4) on a player with Toughness rank 1 to 6 and this HP has changed... however I don't see how correct it...
  17. In fact the problem is this one in : [is right] Profession 75/X --> You learn Spell/Ability Rank 1 (when you get 75 skill's points) Profession 150/X --> You learn Spell/Ability Rank 2 (when you get 150 skill's points) ... [/is right] for example you can meet this two cases : [is right] You learn Profession with maxskill cap = 75 Profession 75/75 --> You learn Spell/Ability Rank 1 (when you get 75 skill's points) You learn Profession with maxskill cap = 150 (but you are allowed to learn this profession if your current skill >= 50) Profession 75/150 --> You learn Spell/Ability Rank 1 (when you get 75 skill's points) [/is right] In other words i see how to do a "spell learn spells", but for me it's the unique way to do a "skill value learn spell", however maybe I'm in wrong
  18. it's ok about : "bonus skills/abilities/passive" I just want to be sure that all professions in Blacksmithing, Mining, Leatherworking, Herbalism, alchemy use this system : [is right] Profession 75/X --> You learn Spell/Ability Rank 1 (when you get 75 skill's points) Profession 150/X --> You learn Spell/Ability Rank 2 (when you get 150 skill's points) Profession 225/X --> You learn Spell/Ability Rank 3 (when you get 225 skill's points) Profession 300/X --> You learn Spell/Ability Rank 4 (when you get 300 skill's points) Profession 375/X --> You learn Spell/Ability Rank 5 (when you get 375 skill's points) Profession 450/X --> You learn Spell/Ability Rank 6 (when you get 450 skill's points) [/is right] and not this one : [is wrong] Profession 1/75 --> You learn Spell/Ability Rank 1 (when you learn the profession) Profession 75/X --> You learn Spell/Ability Rank 2 (when you get 75 skill's points) Profession 150/X --> You learn Spell/Ability Rank 3 (when you get 150 skill's points) Profession 225/X --> You learn Spell/Ability Rank 4 (when you get 225 skill's points) Profession 300/X --> You learn Spell/Ability Rank 5 (when you get 300 skill's points) Profession 375/X --> You learn Spell/Ability Rank 6 (when you get 375 skill's points) [/is wrong]
  19. Just to be sure, all profession work with this system ? Profession 75/X --> You learn Spell/Ability Rank 1 (when you get 75 skill's points) Profession 150/X --> You learn Spell/Ability Rank 2 (when you get 150 skill's points) Profession 225/X --> You learn Spell/Ability Rank 3 (when you get 225 skill's points) Profession 300/X --> You learn Spell/Ability Rank 4 (when you get 300 skill's points) Profession 375/X --> You learn Spell/Ability Rank 5 (when you get 375 skill's points) Profession 450/X --> You learn Spell/Ability Rank 6 (when you get 450 skill's points)
  20. Profession 75/X --> You learn Spell/Ability Rank 1 (when you get 75 skill's points) Profession 150/X --> You learn Spell/Ability Rank 2 (when you get 150 skill's points) Profession 225/X --> You learn Spell/Ability Rank 3 (when you get 225 skill's points) Profession 300/X --> You learn Spell/Ability Rank 4 (when you get 300 skill's points) Profession 375/X --> You learn Spell/Ability Rank 5 (when you get 375 skill's points) Profession 450/X --> You learn Spell/Ability Rank 6 (when you get 450 skill's points) It's better ? About toughness another bug? exist : it's normal that when you get the rank N, you have the effect of ranks N-1, N-2, N-3 etc.. ? I'm not on my own computer so...
  21. It works in this way : Profession 1/75 --> You learn Spell/Ability Rank 1 (when you learn the profession) Profession 75/X --> You learn Spell/Ability Rank 2 (when you get 75 skill's points) Profession 150/X --> You learn Spell/Ability Rank 3 (when you get 150 skill's points) Profession 225/X --> You learn Spell/Ability Rank 4 (when you get 225 skill's points) Profession 300/X --> You learn Spell/Ability Rank 5 (when you get 300 skill's points) Profession 375/X --> You learn Spell/Ability Rank 6 (when you get 375 skill's points) Profession 450/X --> Rank 7 doesn't exist... useless I'm stupid... (I edit the code) I'm not sure it is the Blizzlike working (I use informations from a blizz player)
  22. I don't know In beta test part, it seem to be disable (http://www.wowinsider.com/2008/08/12/mounts-now-welcome-in-booty-bay/) by Blizz However if someone can confirm this "news" for 3.0.3 current version ... NB: I listen it somewhere...everywhere in fact but I doesn't want a "MaNGOS server with Full Northrend DB spawn". I just want to bring some help to MaNGOS dev.
  23. Except if I wrong this area allow mount since 3.0.3 Area 35 (Booty Bay) Delete this in Spell.cpp : if (m_caster->GetAreaId()==35) return SPELL_FAILED_NO_MOUNTS_ALLOWED; And this in Player.cpp (you must replace the following "else if" to "if") if( newArea == 35) RemoveSpellsCausingAura(SPELL_AURA_MOUNTED); if this code is not correct delete it please. Source : http://www.wowinsider.com/2008/08/12/mounts-now-welcome-in-booty-bay/ Thank you... PS: exist maybe others area witch allow mounts
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use