سلام ، آیا این بازدید اول شماست ؟ یا
logo_forum_header

تبلیغات
×
+
سفارش تبلیغات

نمایش نتایج: از 1 به 10 از 10

موضوع: اسکریپت phasing_duel

  1. #1

    شماره عضویت
    13
    تاریخ عضویت
    Oct 2014
    نوشته ها
    41
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 58
    مورد پسند : 72 بار در 27 پست
    سیستم عامل و مرورگر:

    اسکریپت phasing_duel

    با سلام و خسته نباشید....

    ترینتی 3.3.5
    اسکریپت از انجمن دیگر کپی وار داری نشده....
    اسکریپت phasing_duel
    تمامی باگ ها فیکس شدن و اسکریپت کامل و درست میباشید

    قابلیت این اسکریپت این هست که زمانی که دو شخص دویل می کنند برایشان چیز های اضافه مثل npc و پلیر ها محو یا غیب می شود
    تا زمانی که دویل ان تمام شود....

    در بازی برید به جایی مورد نظر . کامند .gps ایدی زون رو بگیرید و
    در اسکریپت به لاین
    کد PHP:
    (firstplayer->GetZoneId() == 440
    و به جایی 440 ایدی زون خودتون بزارید....


    کد PHP:
    #include "ScriptPCH.h"
    #include "MapManager.h"
    #include "Pet.h"

    class PhasedDueling : public PlayerScript
    {
    public:
        
    PhasedDueling() : PlayerScript("PhasedDueling") { }

        
    void OnDuelStart(PlayerfirstplayerPlayersecondplayer)
        {
            
    Mapmap firstplayer->GetMap();
            if (
    firstplayer->GetZoneId() == 440)
            {
            
    uint32 usedPhases 0// used phases
            
    Map::PlayerList const& players map->GetPlayers();
            for (
    Map::PlayerList::const_iterator iter players.begin(); iter != players.end(); ++iter)
            {
                
    Playercheck iter->GetSource();
                if (!
    check || !check->GetSession())
                    continue;
                
    usedPhases |= check->GetPhaseMask(); // insert player's phases to used phases
            
    }

            for (
    uint32 phase 2phase <= ULONG_MAX/2phase *= 2// loop all unique phases
            
    {
                if (
    usedPhases phase// If phase in use
                    
    continue;
                if (
    firstplayer->getClass() == CLASS_HUNTER)
                {
                    
    firstplayer->SetPhaseMask(phasetrue);
                    
    firstplayer->CastSpell(firstplayer883false);
                }
                else
                {

                    if (
    Petpet firstplayer->GetPet())
                    {
                        
    uint32 entry pet->GetEntry();
                        
    PetType petType pet->getPetType();

                        
    firstplayer->RemovePet(NULLPET_SAVE_NOT_IN_SLOT);
                        
    firstplayer->SetPhaseMask(phasetrue);
                        
    firstplayer->SummonPet(entry,  firstplayer->GetPositionX() + 5firstplayer->GetPositionY(),  firstplayer->GetPositionZ(), firstplayer->GetOrientation(),  petType0);
                    }
                    else
                        
    firstplayer->SetPhaseMask(phasetrue);
                }
                if (
    secondplayer->getClass() == CLASS_HUNTER){
                    
    secondplayer->SetPhaseMask(phasetrue);
                    
    secondplayer->CastSpell(secondplayer883false);
                }
                else{

                    if (
    Petpet secondplayer->GetPet())
                    {
                        
    uint32 entry pet->GetEntry();
                        
    PetType petType pet->getPetType();
                        
    secondplayer->RemovePet(NULLPET_SAVE_NOT_IN_SLOT);
                        
    secondplayer->SetPhaseMask(phasetrue);
                        
    secondplayer->SummonPet(entry,  secondplayer->GetPositionX() + 5secondplayer->GetPositionY(),  secondplayer->GetPositionZ(), secondplayer->GetOrientation(),  petType0);
                    }
                    else
                        
    secondplayer->SetPhaseMask(phasetrue);
                }
                if (
    GameObjectgo map->GetGameObject(firstplayer->GetUInt64Value(PLAYER_DUEL_ARBITER)))
                    
    go->SetPhaseMask(phasetrue);

                return;
            }
            }
        }


        
    void OnDuelEnd(PlayerfirstplayerPlayersecondplayerDuelCompleteType type)
        {
            if (
    firstplayer->getClass() == CLASS_HUNTER)
            {
                
    firstplayer->SetPhaseMask(GetPhase(firstplayer), true);
                
    firstplayer->CastSpell(firstplayer883false);
            }
            else
            {

                if (
    Petpet firstplayer->GetPet())
                {
                    
    uint32 entry pet->GetEntry();
                    
    PetType petType pet->getPetType();

                    
    firstplayer->RemovePet(NULLPET_SAVE_NOT_IN_SLOT);
                    
    firstplayer->SetPhaseMask(GetPhase(firstplayer), true);
                    
    firstplayer->SummonPet(entry,  firstplayer->GetPositionX() + 5firstplayer->GetPositionY(),  firstplayer->GetPositionZ(), firstplayer->GetOrientation(),  petType0);
                }
                else
                    
    firstplayer->SetPhaseMask(GetPhase(firstplayer), true);

            }
            if (
    secondplayer->getClass() == CLASS_HUNTER)
            {
                
    secondplayer->SetPhaseMask(GetPhase(secondplayer), true);
                
    secondplayer->CastSpell(secondplayer883false);

            }
            else
            {
                if (
    Petpet secondplayer->GetPet())
                {
                    
    uint32 entry pet->GetEntry();
                    
    PetType petType pet->getPetType();
                    
    secondplayer->RemovePet(NULLPET_SAVE_NOT_IN_SLOT);
                    
    secondplayer->SetPhaseMask(GetPhase(secondplayer), true);
                    
    secondplayer->SummonPet(entry,  secondplayer->GetPositionX() + 5secondplayer->GetPositionY(),  secondplayer->GetPositionZ(), secondplayer->GetOrientation(),  petType0);
                }
                else
                    
    secondplayer->SetPhaseMask(GetPhase(secondplayer), true);
            }
        }

        
    // Attempt in storing the player phase with spell phases included.
        
    uint32 GetPhase(Playerplayer) const
        {
            if (
    player->IsGameMaster())
                return 
    uint32(PHASEMASK_ANYWHERE);

            
    // GetPhaseMaskForSpawn copypaste
            
    uint32 phase PHASEMASK_NORMAL;
            
    Player::AuraEffectList const& phases player->GetAuraEffectsByType(SPELL_AURA_PHASE);
            if (!
    phases.empty())
                
    phase phases.front()->GetMiscValue();
            if (
    uint32 n_phase phase & ~PHASEMASK_NORMAL)
                return 
    n_phase;

            return 
    PHASEMASK_NORMAL;
        }
    };

    void AddSC_PhasedDueling()
    {
        new 
    PhasedDueling();

    ازش استفاده کنید و لذت ببرید....

    منبع Mr_Mohammad.dev

    3 کاربر پست Mr_Mohammad عزیز را پسندیده اند .

    ahura (02-23-2015),Nightprince (10-31-2014),ubite (02-01-2015)

    مشکل ما اینه که میخوایم تو دنیایی مجازی کاربر برتر بشیم
    که اگه یه روز اینترنت نداشته باشیم فراموزش میشیم
    داداش گلم
    سعی کن تو دنیای واقعی ت برتر باشی
    نه اینجا که یه مشت بچه مچه شدن شاخ

  2. # ADS
    سیستم تبلیغات
    تاریخ عضویت
    01/01/2014
    نوشته ها
    پستی ندارد.
     

  3. #2

    شماره عضویت
    92
    تاریخ عضویت
    Dec 2014
    محل سکونت
    گلستان
    نوشته ها
    97
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 53
    مورد پسند : 56 بار در 29 پست
    سیستم عامل و مرورگر:
    این اسکریپ رو برای اخرین ورژن اپدیت کنید اررور میده
    هیچ چیز انی نیست که در نگاه اول به نظر میرسد (اهورا)

  4. #3
    جایزه ها:
    پایان دهنده بحث ها

    شماره عضویت
    8
    تاریخ عضویت
    Oct 2014
    نوشته ها
    256
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پسندیده : 110
    مورد پسند : 311 بار در 153 پست
    سیستم عامل و مرورگر:
    نقل قول نوشته اصلی توسط ahura نمایش پست ها
    این اسکریپ رو برای اخرین ورژن اپدیت کنید اررور میده
    اررورشو بگید لصفا
    مردم دنیا زمان رو 3 حالت می بینن

    اما ما ایرانیا 4 حالت:

    زمان گذشته ، زمان حال ، زمان آینده ، زمـــان شـــــــاہ.....!!!!

    Hamed.Wower@yahoo.com

  5. #4
    دستاورد ها:
    برچسب زن کلاس دوم1 سال ثبت نام شده است۱۰۰۰ امتیاز

    شماره عضویت
    295
    تاریخ عضویت
    Apr 2015
    نوشته ها
    12
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پسندیده : 22
    مورد پسند : 10 بار در 5 پست
    سیستم عامل و مرورگر:
    سلام این آخرین نسخه های Phased_duel هست.

    نسخه 1:
    کد:
    #include "ScriptPCH.h"
    
    class Phased_duel : public PlayerScript
    {
    public:
        Phased_duel(): PlayerScript("Phased_duel") { }
    
    
        void OnDuelStart(Player* firstplayer, Player* secondplayer) override
        {
            Map* map = firstplayer->GetMap();
            if (map->IsDungeon())
                return;
    
    
            // Duel flag is used as duel center point
            GameObject* go = map->GetGameObject(ObjectGuid(firstplayer->GetUInt64Value(PLAYER_DUEL_ARBITER)));
            if (!go)
                return;
    
    
            // Get players from 100 yard radius ( duel radius is 40-50 yd )
            std::list<Player*> playerList;
            Trinity::AnyPlayerInObjectRangeCheck checker(go, 100.0f);
            Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(go, playerList, checker);
            go->VisitNearbyWorldObject(100.0f, searcher);
    
    
            // insert players' phases to used phases, ignore GMs
            uint32 usedPhases = 0;
            if (!playerList.empty())
                for (std::list<Player*>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
                    if (!(*it)->IsGameMaster())
                        usedPhases |= (*it)->GetPhaseMask();
    
    
            // loop all unique phases
            for (uint32 phase = 2; phase <= ULONG_MAX / 2; phase *= 2)
            {
                // If phase in use, skip
                if (usedPhases & phase)
                    continue;
    
    
                // Phase players & pets, dont update visibility yet
                firstplayer->SetPhaseMask(phase, false);
                secondplayer->SetPhaseMask(phase, false);
                // Phase duel flag
                go->SetPhaseMask(phase, true);
                // Update visibility here so pets will be phased and wont despawn
                firstplayer->UpdateObjectVisibility();
                secondplayer->UpdateObjectVisibility();
                return;
            }
    
    
            // Couldnt find free unique phase
            firstplayer->GetSession()->SendNotification("There are no free phases");
            secondplayer->GetSession()->SendNotification("There are no free phases");
        }
    
    
        // Restore phases
        void OnDuelEnd(Player* firstplayer, Player* secondplayer, DuelCompleteType type) override
        {
            // Phase players, dont update visibility yet
            firstplayer->SetPhaseMask(GetNormalPhase(firstplayer), false);
            secondplayer->SetPhaseMask(GetNormalPhase(secondplayer), false);
            // Update visibility here so pets will be phased and wont despawn
            firstplayer->UpdateObjectVisibility();
            secondplayer->UpdateObjectVisibility();
        }
    
    
        // Attempt in storing the player phase with spell phases included.
        uint32 GetNormalPhase(Player* player) const
        {
            if (player->IsGameMaster())
                return uint32(PHASEMASK_ANYWHERE);
    
    
            // GetPhaseMaskForSpawn copypaste
            uint32 phase = PHASEMASK_NORMAL;
            Player::AuraEffectList const& phases = player->GetAuraEffectsByType(SPELL_AURA_PHASE);
            if (!phases.empty())
                phase = phases.front()->GetMiscValue();
            if (uint32 n_phase = phase & ~PHASEMASK_NORMAL)
                return n_phase;
    
    
            return PHASEMASK_NORMAL;
        }
    };
    
    
    void AddSC_Phased_duel()
    {
        new Phased_duel();
    }
    نسخه 2:
    کد:
    #include "ScriptPCH.h"
    
    class Phased_duel : public PlayerScript
    {
    public:
        Phased_duel(): PlayerScript("Phased_duel") { }
    
    
        void OnDuelStart(Player* firstplayer, Player* secondplayer) override
        {
            Map* map = firstplayer->GetMap();
            if (map->IsDungeon())
                return;
    
    
            // Duel flag is used as duel center point
            GameObject* go = map->GetGameObject(firstplayer->GetUInt64Value(PLAYER_DUEL_ARBITER));
            if (!go)
                return;
    
    
            // Get players from 100 yard radius ( duel radius is 40-50 yd )
            std::list<Player*> playerList;
            Trinity::AnyPlayerInObjectRangeCheck checker(go, 100.0f);
            Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(go, playerList, checker);
            go->VisitNearbyWorldObject(100.0f, searcher);
    
    
            // insert players' phases to used phases, ignore GMs
            uint32 usedPhases = 0;
            if (!playerList.empty())
                for (std::list<Player*>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
                    if (!(*it)->IsGameMaster())
                        usedPhases |= (*it)->GetPhaseMask();
    
    
            // loop all unique phases
            for (uint32 phase = 2; phase <= ULONG_MAX / 2; phase *= 2)
            {
                // If phase in use, skip
                if (usedPhases & phase)
                    continue;
    
    
                // Phase players & pets, dont update visibility yet
                firstplayer->SetPhaseMask(phase, false);
                secondplayer->SetPhaseMask(phase, false);
                // Phase duel flag
                go->SetPhaseMask(phase, true);
                // Update visibility here so pets will be phased and wont despawn
                firstplayer->UpdateObjectVisibility();
                secondplayer->UpdateObjectVisibility();
                return;
            }
    
    
            // Couldnt find free unique phase
            firstplayer->GetSession()->SendNotification("There are no free phases");
            secondplayer->GetSession()->SendNotification("There are no free phases");
        }
    
    
        // Restore phases
        void OnDuelEnd(Player* firstplayer, Player* secondplayer, DuelCompleteType type) override
        {
            // Phase players, dont update visibility yet
            firstplayer->SetPhaseMask(GetNormalPhase(firstplayer), false);
            secondplayer->SetPhaseMask(GetNormalPhase(secondplayer), false);
            // Update visibility here so pets will be phased and wont despawn
            firstplayer->UpdateObjectVisibility();
            secondplayer->UpdateObjectVisibility();
        }
    
    
        // Attempt in storing the player phase with spell phases included.
        uint32 GetNormalPhase(Player* player) const
        {
            if (player->IsGameMaster())
                return uint32(PHASEMASK_ANYWHERE);
    
    
            // GetPhaseMaskForSpawn copypaste
            uint32 phase = PHASEMASK_NORMAL;
            Player::AuraEffectList const& phases = player->GetAuraEffectsByType(SPELL_AURA_PHASE);
            if (!phases.empty())
                phase = phases.front()->GetMiscValue();
            if (uint32 n_phase = phase & ~PHASEMASK_NORMAL)
                return n_phase;
    
    
            return PHASEMASK_NORMAL;
        }
    };
    
    
    void AddSC_Phased_duel()
    {
        new Phased_duel();
    }

    کاربر مقابل پست wolord عزیز را پسندیده است:

    Nightprince (04-21-2015)

    ویرایش توسط wolord : 04-22-2015 در ساعت 02:35 PM

  6. #5

    شماره عضویت
    92
    تاریخ عضویت
    Dec 2014
    محل سکونت
    گلستان
    نوشته ها
    97
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 53
    مورد پسند : 56 بار در 29 پست
    سیستم عامل و مرورگر:
    // Duel flag is used as duel center point
    GameObject* go = map->GetGameObject(ObjectGuid(firstplayer->GetUInt64Value(PLAYER_DUEL_ARBITER)));
    if (!go)
    return;]


    این لاین موقع کامپایل اررور میده
    هیچ چیز انی نیست که در نگاه اول به نظر میرسد (اهورا)

  7. #6
    دستاورد ها:
    اجتماعیRecommendation First Class1 سال ثبت نام شده استبرچسب زن کلاس اولاوردرایو

    شماره عضویت
    1
    تاریخ عضویت
    Oct 2014
    محل سکونت
    بوشهر
    نوشته ها
    1,771
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 724
    مورد پسند : 1,162 بار در 581 پست
    سیستم عامل و مرورگر:
    اررورش هم بگو

  8. #7
    دستاورد ها:
    برچسب زن کلاس دوم1 سال ثبت نام شده است۱۰۰۰ امتیاز

    شماره عضویت
    295
    تاریخ عضویت
    Apr 2015
    نوشته ها
    12
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پسندیده : 22
    مورد پسند : 10 بار در 5 پست
    سیستم عامل و مرورگر:
    نقل قول نوشته اصلی توسط ahura نمایش پست ها
    // Duel flag is used as duel center point
    GameObject* go = map->GetGameObject(ObjectGuid(firstplayer->GetUInt64Value(PLAYER_DUEL_ARBITER)));
    if (!go)
    return;]


    این لاین موقع کامپایل اررور میده
    لطفا از نسخه ی 2 ، Phased_duel استفاده کنید.

  9. #8

    شماره عضویت
    92
    تاریخ عضویت
    Dec 2014
    محل سکونت
    گلستان
    نوشته ها
    97
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 53
    مورد پسند : 56 بار در 29 پست
    سیستم عامل و مرورگر:
    اینجا بزارید استفاده کنیم
    هیچ چیز انی نیست که در نگاه اول به نظر میرسد (اهورا)

  10. #9
    دستاورد ها:
    برچسب زن کلاس دوم1 سال ثبت نام شده است۱۰۰۰ امتیاز

    شماره عضویت
    295
    تاریخ عضویت
    Apr 2015
    نوشته ها
    12
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پسندیده : 22
    مورد پسند : 10 بار در 5 پست
    سیستم عامل و مرورگر:
    کد:
    #include "ScriptPCH.h"
    
    class Phased_duel : public PlayerScript
    {
    public:
        Phased_duel(): PlayerScript("Phased_duel") { }
    
    
        void OnDuelStart(Player* firstplayer, Player* secondplayer) override
        {
            Map* map = firstplayer->GetMap();
            if (map->IsDungeon())
                return;
    
    
            // Duel flag is used as duel center point
            GameObject* go = map->GetGameObject(firstplayer->GetUInt64Value(PLAYER_DUEL_ARBITER));
            if (!go)
                return;
    
    
            // Get players from 100 yard radius ( duel radius is 40-50 yd )
            std::list<Player*> playerList;
            Trinity::AnyPlayerInObjectRangeCheck checker(go, 100.0f);
            Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(go, playerList, checker);
            go->VisitNearbyWorldObject(100.0f, searcher);
    
    
            // insert players' phases to used phases, ignore GMs
            uint32 usedPhases = 0;
            if (!playerList.empty())
                for (std::list<Player*>::const_iterator it = playerList.begin(); it != playerList.end(); ++it)
                    if (!(*it)->IsGameMaster())
                        usedPhases |= (*it)->GetPhaseMask();
    
    
            // loop all unique phases
            for (uint32 phase = 2; phase <= ULONG_MAX / 2; phase *= 2)
            {
                // If phase in use, skip
                if (usedPhases & phase)
                    continue;
    
    
                // Phase players & pets, dont update visibility yet
                firstplayer->SetPhaseMask(phase, false);
                secondplayer->SetPhaseMask(phase, false);
                // Phase duel flag
                go->SetPhaseMask(phase, true);
                // Update visibility here so pets will be phased and wont despawn
                firstplayer->UpdateObjectVisibility();
                secondplayer->UpdateObjectVisibility();
                return;
            }
    
    
            // Couldnt find free unique phase
            firstplayer->GetSession()->SendNotification("There are no free phases");
            secondplayer->GetSession()->SendNotification("There are no free phases");
        }
    
    
        // Restore phases
        void OnDuelEnd(Player* firstplayer, Player* secondplayer, DuelCompleteType type) override
        {
            // Phase players, dont update visibility yet
            firstplayer->SetPhaseMask(GetNormalPhase(firstplayer), false);
            secondplayer->SetPhaseMask(GetNormalPhase(secondplayer), false);
            // Update visibility here so pets will be phased and wont despawn
            firstplayer->UpdateObjectVisibility();
            secondplayer->UpdateObjectVisibility();
        }
    
    
        // Attempt in storing the player phase with spell phases included.
        uint32 GetNormalPhase(Player* player) const
        {
            if (player->IsGameMaster())
                return uint32(PHASEMASK_ANYWHERE);
    
    
            // GetPhaseMaskForSpawn copypaste
            uint32 phase = PHASEMASK_NORMAL;
            Player::AuraEffectList const& phases = player->GetAuraEffectsByType(SPELL_AURA_PHASE);
            if (!phases.empty())
                phase = phases.front()->GetMiscValue();
            if (uint32 n_phase = phase & ~PHASEMASK_NORMAL)
                return n_phase;
    
    
            return PHASEMASK_NORMAL;
        }
    };
    
    
    void AddSC_Phased_duel()
    {
        new Phased_duel();
    }

    کاربر مقابل پست wolord عزیز را پسندیده است:

    ahura (04-23-2015)

    ویرایش توسط wolord : 04-23-2015 در ساعت 12:43 PM

  11. #10

    شماره عضویت
    92
    تاریخ عضویت
    Dec 2014
    محل سکونت
    گلستان
    نوشته ها
    97
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 53
    مورد پسند : 56 بار در 29 پست
    سیستم عامل و مرورگر:
    این نسخه هم در همون لاین ارور میده
    هیچ چیز انی نیست که در نگاه اول به نظر میرسد (اهورا)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •