Bvural41 1
Bvural41
Fethi Polat 1
Fethi Polat
Scarlet 1
Scarlet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
bencemal 1
bencemal
mavzermete 1
mavzermete
Hikaye Ekle

DrAlchemy - C++ Party Skill Teleport

  • Konuyu başlatan Konuyu başlatan Dr.Alchemy
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 46
  • Görüntüleme Görüntüleme 5K

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

OLUŞABİLECEK BUGLAR

OXDA BİRBİRLERİNİ İÇERİ ÇEKEBİLİRLER.

nEXNk0.png



Sistem Amacı Grubda Saldırı Hızı - HP - Vs gibi özellikler veren yere teleport özelligi ekler grubdakılerın yanına işinlanabilirsiniz

alintidir.

input_main.cpp MÜSAİT BİYERE EKLE

C++:
void CInputMain::PartyUseSkill(LPCHARACTER ch, const char* c_pData)
{
    TPacketCGPartyUseSkill* p = (TPacketCGPartyUseSkill*) c_pData;
    if (!ch->GetParty())
        return;

    if (ch->GetPlayerID() != ch->GetParty()->GetLeaderPID())
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "<Group> Only the leader can use this function.");
        return;
    }

    switch (p->bySkillIndex)
    {
        case PARTY_SKILL_HEAL:
            ch->GetParty()->HealParty();
            break;
        case PARTY_SKILL_WARP:
            {
                if (ch->GetSkillLevel(SKILL_LEADERSHIP) >= 10) { //10 IS THE MIN LEVEL OF LEADERSHIP SKILL TO USE TELEPORT
                    LPCHARACTER pch = CHARACTER_MANAGER::instance().Find(p->vid);
                    if (pch) {
                        ch->GetParty()->SummonToLeader(pch->GetPlayerID());
                    }else{
                        ch->ChatPacket(CHAT_TYPE_INFO, "<Teleport> The character is not online.");
                    }
                }else{
                    ch->ChatPacket(CHAT_TYPE_INFO, "<Teleport> You need upgrade your leadership skill to use this function.");
                }
            }
            break;
    }
}



party.cpp MÜSAİT BİYERE EKLE

C++:
void CParty::SummonToLeader(DWORD pid)
{
    LPCHARACTER l = GetLeaderCharacter();

    if (m_memberMap.find(pid) == m_memberMap.end())
    {
        l->ChatPacket(CHAT_TYPE_INFO, "<Teleport> The character is too far.");
        return;
    }

    LPCHARACTER ch = m_memberMap[pid].pCharacter;

    if (!ch)
    {
        l->ChatPacket(CHAT_TYPE_INFO, "<Teleport> The character was not found in your map.");
        return;
    }

    if (ch->IsDead())
    {
        l->ChatPacket(CHAT_TYPE_INFO, "<Teleport> I can't teleport the character if he is dead.");
        return;
    }

    ch->Show(l->GetMapIndex(), l->GetX(), l->GetY());
    ch->Stop();
}

Root/uiparty.py Açılır

MEMBER_BUTTON_NORMAL : "party_state_normal", Arat

Altında ekli değilse ekle :
Kod:
MEMBER_BUTTON_WARP : "party_skill_warp",


self.stateButtonDict[self.MEMBER_BUTTON_NORMAL].SetToolTipText(localeInfo.PARTY_SET_NORMAL) arat

Ekli değilse altında ekle :
Kod:
        self.stateButtonDict[self.MEMBER_BUTTON_WARP].SetEvent(ui.__mem_func__(self.OnWarp))
        self.stateButtonDict[self.MEMBER_BUTTON_WARP].SetToolTipText(localeInfo.PARTY_RECALL_MEMBER)

Kod:
Bu Kod Bloğunu Arat

    ## Defender
        if skillLevel >= 40:
            self.__AppendStateButton(xPos, y, player.PARTY_STATE_DEFENDER)
            xPos += 2[/COLOR]

Kod Bloğunun Altına Ekle Ekliyse değiştir :

Kod:
      ## Warp
      if skillLevel >= 35:
         if self.stateButtonDict.has_key(self.MEMBER_BUTTON_WARP):
            button = self.stateButtonDict[self.MEMBER_BUTTON_WARP]
            button.SetPosition(xPos, y)
            button.Show()
            xPos += 23


ef OnSelectState(self, state): Arat


Altına Ekle Ekliyse elleme farklıysa değiştir :D
Kod:
   def OnWarp(self):
      self.__HideStateButton()

      if self.vid:
         net.SendPartyUseSkillPacket(self.PARTY_SKILL_WARP, self.vid)
 
Moderatör tarafında düzenlendi:
Sistem Amacı Grubda Saldırı Hızı - HP - Vs gibi özellikler veren yere teleport özelligi ekler grubdakılerın yanına işinlanabilirsiniz

alintidir.

input_main.cpp MÜSAİT BİYERE EKLE

Kod:
void CInputMain::PartyUseSkill(LPCHARACTER ch, const char* c_pData)
{
    TPacketCGPartyUseSkill* p = (TPacketCGPartyUseSkill*) c_pData;
    if (!ch->GetParty())
        return;

    if (ch->GetPlayerID() != ch->GetParty()->GetLeaderPID())
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "<Group> Only the leader can use this function.");
        return;
    }

    switch (p->bySkillIndex)
    {
        case PARTY_SKILL_HEAL:
            ch->GetParty()->HealParty();
            break;
        case PARTY_SKILL_WARP:
            {
                if (ch->GetSkillLevel(SKILL_LEADERSHIP) >= 10) { //10 IS THE MIN LEVEL OF LEADERSHIP SKILL TO USE TELEPORT
                    LPCHARACTER pch = CHARACTER_MANAGER::instance().Find(p->vid);
                    if (pch) {
                        ch->GetParty()->SummonToLeader(pch->GetPlayerID());
                    }else{
                        ch->ChatPacket(CHAT_TYPE_INFO, "<Teleport> The character is not online.");
                    }
                }else{
                    ch->ChatPacket(CHAT_TYPE_INFO, "<Teleport> You need upgrade your leadership skill to use this function.");
                }
            }
            break;
    }
}



party.cpp MÜSAİT BİYERE EKLE

Kod:
void CParty::SummonToLeader(DWORD pid)
{
    LPCHARACTER l = GetLeaderCharacter();

    if (m_memberMap.find(pid) == m_memberMap.end())
    {
        l->ChatPacket(CHAT_TYPE_INFO, "<Teleport> The character is too far.");
        return;
    }

    LPCHARACTER ch = m_memberMap[pid].pCharacter;

    if (!ch)
    {
        l->ChatPacket(CHAT_TYPE_INFO, "<Teleport> The character was not found in your map.");
        return;
    }

    if (ch->IsDead())
    {
        l->ChatPacket(CHAT_TYPE_INFO, "<Teleport> I can't teleport the character if he is dead.");
        return;
    }

    ch->Show(l->GetMapIndex(), l->GetX(), l->GetY());
    ch->Stop();
}

root -> uiparty.py
Aratilir:IND THE __ShowStateButton and:
Altina Eklenir
Kod:
## Warp
        if self.stateButtonDict.has_key(self.MEMBER_BUTTON_WARP):
            button = self.stateButtonDict[self.MEMBER_BUTTON_WARP]
            button.SetPosition(xPos, y)
            button.Show()
            xPos += 23
En kısa zamanda kanıt eklersen güzel olur kardeşim.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst