Results 1 to 13 of 13
http://idgs.in/10169
  1. #1
    sabeni's Avatar
    Join Date
    Nov 2006
    Posts
    19
    Points
    21.40
    Thanks: 0 / 0 / 0

    Default [solusi] hunter abilities yg ngebug (pet taming)

    Nah setelah gw kotak-katik, ditelaah, dan dicermati ketemu dah tuh masalahnya...

    kayanya database quest_template blom bener dah (gw pengen benerin tapi mangos gw gak cocok ama databasenya. beda revision ), kayanya AMPM ganti database ya ama yang kemaren soalnya kemaren bisa tuh questnya.

    kalo dibenerin questnya masalahnya hunter yg udah ambil quest ini gak bisa ambil lagi quest tsb kecuali di fix ama gm satu2 playernya, nah repot kan???

    trus solusinya gmn kalo abilities hunter yg gak ada gara2 quest bug bisa di train di hunter trainer? sekarang gimana caranya supaya tuh ability bisa muncul di list hunter trainer. kalo ini mungkin gw bisa bantu.

    di database npc_trainer ada 7 field (kalo di gw sih, gak tau db yg baru)

    entry : creature/npc id
    spell : spell yg di jual
    spellcost : harga spell
    reqspell : required spell buat ajarin spell ini (previous level spell id)
    reqskill : required skill (untuk spell type profession kayanya)
    reqskillvalue : ??? gak tau gw
    reqlevel : level yg dibutuhkan

    nah buat masukin spell2 hunter tersebut kita butuh id dari npc yg ngajarin (ex: Yaw Sharpmane, hehe hapalnya ini doang gw) sama spell id.

    buat cari jalanin command sql sbb :

    SELECT * FROM creature_template WHERE subname = 'Hunter Trainer'

    liat di field entry nah ketemu deh id nya abang Yaw Sharpmane = 3065

    trus buat liat id spell liat di http://wow.allakhazam.com/db/spellsearch.html?x

    dapet id sbb :

    Tame Beast : 1515 / 13481 (yang mana dan apa bedanya gw juga gak tau ::bangin:: cobain aja salah satu)
    Dissmiss Pet : 2641
    Feed Pet : 6991
    Beast Training : 5149

    dah lengkap deh sekarang tinggal insert data baru di npc_trainer

    entry : 3065 (ini contoh aja loh pake idnya si Yaw Sharpmane)
    spell : 1515 (Tame Beast)
    spellcost : 0 (gratis ::laugh:: )
    reqspell : 0
    reqskill : 0
    reqskillvalue : 0
    reqlevel : 10 (minimum level 10)

    lanjut.....

    entry : 3065
    spell : 2641 (Dissmiss Pet)
    spellcost : 0
    reqspell : 0
    reqskill : 0
    reqskillvalue : 0
    reqlevel : 10

    ...........dst untuk setiap spell & npc


    dah gitu aja kk GM mudah2an bisa membantu tolong dicoba ya soalnya ini belom dicoba gw juga sih hehehe ini hasil analisa gw aja maklum mangos+mangosdb gw missmatch jadi belum gw coba sendiri

  2. Hot Ad
  3. #2
    Fandy's Avatar
    Join Date
    Oct 2006
    Location
    Jakarta
    Posts
    342
    Points
    439.70
    Thanks: 0 / 0 / 0

    Default

    this is solved, kemaren gw ga masukin sql query nya...udah ada sama gw

    UPDATE `quest_template` SET `RequiredRaces`='32' WHERE `entry`='6065';
    DELETE FROM `creature_questrelation` WHERE `id` IN (3407, 3171, 3038);
    INSERT INTO `creature_questrelation` VALUES
    ('3407', '6069'),
    ('3171', '6062'),
    ('3171', '6083'),
    ('3171', '6082'),
    ('3171', '6081'),
    ('3038', '6065');
    UPDATE `quest_template` SET `PrevQuestId`='6069' WHERE `entry`='6082';

    UPDATE `quest_template` SET `PrevQuestId`='6073' WHERE `entry`='6063';
    UPDATE `quest_template` SET `NextQuestId`='6063', `RequiredRaces`='8' WHERE `entry`='6073';
    DELETE FROM `creature_questrelation` WHERE `id`='4146';
    DELETE FROM `creature_questrelation` WHERE `quest`='6075';
    INSERT INTO `creature_questrelation` VALUES
    ('4146', '6073'),
    ('5117', '6074');
    DELETE FROM `creature_involvedrelation` WHERE `quest`='6071';
    INSERT INTO `creature_involvedrelation` VALUES
    ('3601', '6073');

    salah penempatan aja ini

    anyway keep posting more fix, sapa tau ada yg kelewat gw

  4. #3
    realnoobz's Avatar
    Join Date
    Oct 2006
    Location
    Death Knell
    Posts
    90
    Points
    101.70
    Thanks: 0 / 0 / 0

    Default

    fan ini buat duel..harusnya kan duel g ngurangin armor

    --- game/Player.h (revisiўn: 2300)
    +++ game/Player.h (copia de trabajo)
    @@ -737,6 +737,7 @@
    void SetDuelSender(Player *plyr) { m_pDuelSender = plyr; }
    void CheckDuelDistance();
    void DuelComplete();
    + Player* GetDueler() { return m_pDuel; }

    //Functions to store/restore temporary state of pvpOn
    void StorePvpState(){ pvpTemp = pvpOn; };
    Index: game/Unit.cpp
    ================================================== =================
    --- game/Unit.cpp (revisiўn: 2300)
    +++ game/Unit.cpp (copia de trabajo)
    @@ -242,35 +242,57 @@
    sLog.outDetail("deal dmg:%d to heals:%d ",damage,health);
    if (health <= damage)
    {
    - LeaveCombatState();
    - //pVictim->LeaveCombatState();
    + DEBUG_LOG("DealDamage: victim just died");
    + Player *pl;
    + bool dueling=false;
    + if ((GetTypeId() == TYPEID_PLAYER) && (pVictim->GetTypeId() == TYPEID_PLAYER)){
    +
    + uint64 guidplyr;
    + guidplyr=GetGUID();
    + pl =objmgr.GetPlayer(guidplyr);
    +
    + if (pl->GetDueler() == (Player*)pVictim)
    + dueling=true;
    + }
    +
    + if (dueling)
    + {
    + pVictim->SetHealth(1);
    + pVictim->HandleEmoteCommand(ANIM_EMOTE_BEG);
    + pl->DuelComplete();
    + }
    + else{

    - DEBUG_LOG("DealDamage: victim just died");
    + LeaveCombatState();
    + //pVictim->LeaveCombatState();

    - DEBUG_LOG("SET JUST_DIED");
    - pVictim->setDeathState(JUST_DIED);
    + DEBUG_LOG("DealDamage: victim just died");

    - DEBUG_LOG("DealDamageAttackStop");
    - AttackStop();
    - pVictim->CombatStop();
    + DEBUG_LOG("SET JUST_DIED");
    + pVictim->setDeathState(JUST_DIED);

    - DEBUG_LOG("DealDamageHealth1");
    - pVictim->SetHealth(0);
    + DEBUG_LOG("DealDamageAttackStop");
    + AttackStop();
    + pVictim->CombatStop();

    - // 10% durability loss on death
    - // clean hostilList
    - if (pVictim->GetTypeId() == TYPEID_PLAYER)
    - {
    - DEBUG_LOG("We are dead, loosing 10 percents durability");
    - if (durabilityLoss)
    + DEBUG_LOG("DealDamageHealth1");
    + pVictim->SetHealth(0);
    +
    + // 10% durability loss on death
    + // clean hostilList
    + if (pVictim->GetTypeId() == TYPEID_PLAYER)
    {
    - ((Player*)pVictim)->DurabilityLossAll(0.10);
    - }
    - HostilList::iterator i;
    - for(i = m_hostilList.begin(); i != m_hostilList.end(); i++)
    - {
    - if(i->UnitGuid==pVictim->GetGUID())
    + DEBUG_LOG("We are dead, loosing 10 percents durability");
    + if (durabilityLoss)
    {
    + if(!(GetTypeId() == TYPEID_PLAYER))
    + ((Player*)pVictim)->DurabilityLossAll(0.10);
    + }
    + HostilList::iterator i;
    + for(i = m_hostilList.begin(); i != m_hostilList.end(); i++)
    + {
    + if(i->UnitGuid==pVictim->GetGUID())
    + {
    m_hostilList.erase(i);
    break;
    }
    @@ -312,68 +334,69 @@
    Player *player = 0;

    if(GetTypeId() == TYPEID_PLAYER)
    - {
    - player = (Player*)this;
    - if(pVictim->GetTypeId() == TYPEID_PLAYER)
    + {
    + player = (Player*)this;
    + if(pVictim->GetTypeId() == TYPEID_PLAYER)
    PvP = true;
    - }
    - else if(((Creature*)this)->isPet())
    - {
    - Unit* owner = ((Creature*)this)->GetOwner();
    + }
    + else if(((Creature*)this)->isPet())
    + {
    + Unit* owner = ((Creature*)this)->GetOwner();

    - if(owner && owner->GetTypeId() == TYPEID_PLAYER)
    - {
    - player = (Player*)owner;
    - player->LeaveCombatState();
    + if(owner && owner->GetTypeId() == TYPEID_PLAYER)
    + {
    + player = (Player*)owner;
    + player->LeaveCombatState();
    + }
    }
    - }

    - // self or owner of pet
    - if(player)
    - {
    - player->CalculateHonor(pVictim);
    - player->CalculateReputation(pVictim);
    -
    - if(!PvP)
    + // self or owner of pet
    + if(player)
    {
    - DEBUG_LOG("DealDamageIsPvE");
    - uint32 xp = MaNGOS::XP::Gain(player, pVictim);
    - uint32 entry = 0;
    - entry = pVictim->GetUInt32Value(OBJECT_FIELD_ENTRY );
    + player->CalculateHonor(pVictim);
    + player->CalculateReputation(pVictim);

    - Group *pGroup = objmgr.GetGroupByLeader(player->GetGroupLeader());
    - if(pGroup)
    + if(!PvP)
    {
    - DEBUG_LOG("Kill Enemy In Group");
    - xp /= pGroup->GetMembersCount();
    - for (uint32 i = 0; i < pGroup->GetMembersCount(); i++)
    + DEBUG_LOG("DealDamageIsPvE");
    + uint32 xp = MaNGOS::XP::Gain(player, pVictim);
    + uint32 entry = 0;
    + entry = pVictim->GetUInt32Value(OBJECT_FIELD_ENTRY );
    +
    + Group *pGroup = objmgr.GetGroupByLeader(player->GetGroupLeader());
    + if(pGroup)
    {
    - Player *pGroupGuy = ObjectAccessor::Instance().FindPlayer(pGroup->GetMemberGUID(i));
    - if(!pGroupGuy)
    - continue;
    - if(GetDistanceSq(pGroupGuy) > sWorld.getConfig(CONFIG_GETXP_DISTANCE))
    - continue;
    - if(uint32(abs((int)pGroupGuy->getLevel() - (int)pVictim->getLevel())) > sWorld.getConfig(CONFIG_GETXP_LEVELDIFF))
    - continue;
    - pGroupGuy->GiveXP(xp, pVictim);
    - pGroupGuy->KilledMonster(entry, pVictim->GetGUID());
    + DEBUG_LOG("Kill Enemy In Group");
    + xp /= pGroup->GetMembersCount();
    + for (uint32 i = 0; i < pGroup->GetMembersCount(); i++)
    + {
    + Player *pGroupGuy = ObjectAccessor::Instance().FindPlayer(pGroup->GetMemberGUID(i));
    + if(!pGroupGuy)
    + continue;
    + if(GetDistanceSq(pGroupGuy) > sWorld.getConfig(CONFIG_GETXP_DISTANCE))
    + continue;
    + if(uint32(abs((int)pGroupGuy->getLevel() - (int)pVictim->getLevel())) > sWorld.getConfig(CONFIG_GETXP_LEVELDIFF))
    + continue;
    + pGroupGuy->GiveXP(xp, pVictim);
    + pGroupGuy->KilledMonster(entry, pVictim->GetGUID());
    + }
    }
    + else
    + {
    + DEBUG_LOG("Player kill enemy alone");
    + player->GiveXP(xp, pVictim);
    + player->KilledMonster(entry,pVictim->GetGUID());
    + }
    }
    - else
    - {
    - DEBUG_LOG("Player kill enemy alone");
    - player->GiveXP(xp, pVictim);
    - player->KilledMonster(entry,pVictim->GetGUID());
    - }
    }
    + else
    + {
    + DEBUG_LOG("Monster kill Monster");
    + pVictim->CombatStop();
    + pVictim->addUnitState(UNIT_STAT_DIED);
    + }
    + AttackStop();
    }
    - else
    - {
    - DEBUG_LOG("Monster kill Monster");
    - pVictim->CombatStop();
    - pVictim->addUnitState(UNIT_STAT_DIED);
    - }
    - AttackStop();
    }
    else
    {
    Index: game/Player.cpp
    ================================================== =================
    --- game/Player.cpp (revisiўn: 2300)
    +++ game/Player.cpp (copia de trabajo)
    @@ -3580,9 +3580,6 @@
    }
    #endif

    - //ResurrectPlayer();
    - if(!isAlive())
    - setDeathState(ALIVE);
    }
    else // duel not started
    {
    @@ -3602,10 +3599,6 @@
    GetSession()->SendPacket(&data);
    m_pDuel->GetSession()->SendPacket(&data);

    - //Player kneel when finish the duel
    - if(isInDuel())
    - HandleEmoteCommand(ANIM_EMOTE_BEG);
    -
    //Remove Duel Flag object
    GameObject* obj = ObjectAccessor::Instance().GetGameObject(*this, duelFlagGUID);

  5. #4
    Fandy's Avatar
    Join Date
    Oct 2006
    Location
    Jakarta
    Posts
    342
    Points
    439.70
    Thanks: 0 / 0 / 0

    Default

    duel ga nambahin honor, - // self or owner of pet
    - if(player)
    - {
    - player->CalculateHonor(pVictim);
    - player->CalculateReputation(pVictim);
    - ini apaan??

    duel ngurangin armor, as far as i know duel system ga ada masalah...masalahnya skrg cuma tiap kali duel, target player jadi hostile ke semua npc...now thats the problem, lastly..is this even tested??

  6. #5
    realnoobz's Avatar
    Join Date
    Oct 2006
    Location
    Death Knell
    Posts
    90
    Points
    101.70
    Thanks: 0 / 0 / 0

    Default

    duel ma pvp setau gw di inter g ngurangin armor...blizzard sndiri yg ngomong,,gw baca di tip pas loading screen....

  7. #6
    Fandy's Avatar
    Join Date
    Oct 2006
    Location
    Jakarta
    Posts
    342
    Points
    439.70
    Thanks: 0 / 0 / 0

    Default

    are u sure...? lemme double check then, karena gw ga pernah liat tipsnya di loading screen...

  8. #7
    realnoobz's Avatar
    Join Date
    Oct 2006
    Location
    Death Knell
    Posts
    90
    Points
    101.70
    Thanks: 0 / 0 / 0

    Default

    absolutely yaqin...sumpah bang gw yaqin...ampoon yaqiinnnn....
    lo cek aja di tip loading screennn....

  9. #8
    Seneca's Avatar
    Join Date
    Oct 2006
    Location
    Bandung - Jakarta
    Posts
    626
    Points
    726.50
    Thanks: 0 / 0 / 0

    Default

    Quote Originally Posted by realnoobz View Post
    absolutely yaqin...sumpah bang gw yaqin...ampoon yaqiinnnn....
    lo cek aja di tip loading screennn....
    udah ganti nama lo jadi YaQin ? kok ga potong nasi kuning ::Jumpy:: j/k broo ::angel_not::

    Yang ketawa terakhir dia pemenangnya - Seneca ( retired )

  10. #9
    Fandy's Avatar
    Join Date
    Oct 2006
    Location
    Jakarta
    Posts
    342
    Points
    439.70
    Thanks: 0 / 0 / 0

    Default

    Quote Originally Posted by Seneca View Post
    udah ganti nama lo jadi YaQin ? kok ga potong nasi kuning ::Jumpy:: j/k broo ::angel_not::
    please no junk, kalo gw liat lagi gw kasi warn

  11. #10
    sabeni's Avatar
    Join Date
    Nov 2006
    Posts
    19
    Points
    21.40
    Thanks: 0 / 0 / 0

    Default

    fan lo make db yg mana sih? gw bagi url dong... setiap donlod db salah mulu gak cocok sama mangonya (maklum masih **** soal svn neh)

  12. #11
    sabeni's Avatar
    Join Date
    Nov 2006
    Posts
    19
    Points
    21.40
    Thanks: 0 / 0 / 0

    Default

    nevermind i got it

  13. #12
    realnoobz's Avatar
    Join Date
    Oct 2006
    Location
    Death Knell
    Posts
    90
    Points
    101.70
    Thanks: 0 / 0 / 0

    Default

    sabeni mw bantu urus kan?
    horeeee

  14. #13
    sabeni's Avatar
    Join Date
    Nov 2006
    Posts
    19
    Points
    21.40
    Thanks: 0 / 0 / 0

    Default

    ha, lagi coba2 dulu neh wong install aja blom jalan2 >.< wakakakak

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •