Yardım Grup sistemi

  • Konuyu açan Konuyu açan toprakaan8
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 5
  • Gösterim Gösterim 91
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

toprakaan8

Üye
Üye
Mesaj
11
Beğeni
1
Puan
40
Ticaret Puanı
0
Merhaba daha önce böyle bir konu açıldımi bilmiyorum.
Oyuncular kasilirken 3 kişi 4 kişi grup şeklinde kasildiklarinda gelen exp oranını arttirabiliyormuyuz yada böyle bisey yapilabilirmj şimdiden trsekkurler
 
char_battle.cpp

struct FPartyDistributor

Aşağıdaki seviyeye göre dağılım:
Kod:
Genişlet Daralt Kopyala
                    case PARTY_EXP_DISTRIBUTION_NON_PARITY:
                        if (LC_IsYMIR())
                            iExp2 = (DWORD) ((_iExp * ch->GetLevel()) / total);
                        else
                            iExp2 = (DWORD) (_iExp * (float) party_exp_distribute_table[ch->GetLevel()] / total);
                        break;

Burası ise eşit dağılım gördüğün gibi tüm exp'i alıp gruptaki üye sayısına bölüyor:
Kod:
Genişlet Daralt Kopyala
                    case PARTY_EXP_DISTRIBUTION_PARITY:
                        iExp2 = _iExp / m_iMemberCount;
                        break;

Eğer böyle yaparsan gruptaki kişi sayısı 5'ten yüksek ise herkes tek kasılıyormuş gibi exp alır 1 slot kesilmesine rağmen:
Kod:
Genişlet Daralt Kopyala
                    case PARTY_EXP_DISTRIBUTION_PARITY:
                        if(m_iMemberCount>5)
                        {
                               iExp2 = _iExp
                        }
                        else
                        {
                             iExp2 = _iExp / m_iMemberCount;
                         }
                        break;

Umarım fikir vermiştir mantığını anlatmaya çalıştım, kendi isteğine göre düzenleyebilirsin.
 
En son bir moderatör tarafından düzenlenmiş:
char_battle.cpp

struct FPartyDistributor

Aşağıdaki seviyeye göre dağılım:
case PARTY_EXP_DISTRIBUTION_NON_PARITY:
if (LC_IsYMIR())
iExp2 = (DWORD) ((_iExp * ch->GetLevel()) / total);
else
iExp2 = (DWORD) (_iExp * (float) party_exp_distribute_table[ch->GetLevel()] / total);
break;

Burası ise eşit dağılım gördüğün gibi tüm exp'i alıp gruptaki üye sayısına bölüyor:
case PARTY_EXP_DISTRIBUTION_PARITY:
iExp2 = _iExp / m_iMemberCount;
break;

Eğer böyle yaparsan gruptaki kişi sayısı 5'ten yüksek ise herkes tek kasılıyormuş gibi exp alır 1 slot kesilmesine rağmen:
case PARTY_EXP_DISTRIBUTION_PARITY:
if(m_iMemberCount>5)
{
iExp2 = _iExp
}
else
{
iExp2 = _iExp / m_iMemberCount;
}
break;


Umarım fikir vermiştir mantığını anlatmaya çalıştım, kendi isteğine göre düzenleyebilirsin.
Peki teşekkürler ederim grup olduğunda tek kasılır gibi exp gelmesini anlatmişsiniz burasını anladım, peki grup kasildiginda tek kasılır gibi exp oranını 2 ye katlamak istiyorum yani grup kasilmadiginda tek kesildiğinde daha fazla exp gelmesi nasıl olur cevaplarınız için teşekkür ediyorum buradaki mantık grup kasilmanin önemini arttırmak
 
Peki teşekkürler ederim grup olduğunda tek kasılır gibi exp gelmesini anlatmişsiniz burasını anladım, peki grup kasildiginda tek kasılır gibi exp oranını 2 ye katlamak istiyorum yani grup kasilmadiginda tek kesildiğinde daha fazla exp gelmesi nasıl olur cevaplarınız için teşekkür ediyorum buradaki mantık grup kasilmanin önemini arttırmak
Mantığı basit aslında, aşağıdaki gibi yaparsanız eşit dağılımda normalde grupsuz 1 mobdan 1 kişi 1 exp alıyor ise 8 kişilik bir grupta herkes 2 exp alacaktır:
Kod:
Genişlet Daralt Kopyala
case PARTY_EXP_DISTRIBUTION_PARITY:
iExp2 = 2*_iExp;
break;

Aşağıyıda düzenlerseniz eğer seviyeye göre dağılımda da aynı mantık işler:
Kod:
Genişlet Daralt Kopyala
case PARTY_EXP_DISTRIBUTION_NON_PARITY:
iExp2 = 2*_iExp;
break;
 
En son bir moderatör tarafından düzenlenmiş:
Mantığı basit aslında, aşağıdaki gibi yaparsanız eşit dağılımda normalde grupsuz 1 mobdan 1 kişi 1 exp alıyor ise 8 kişilik bir grupta herkes 2 exp alacaktır:
case PARTY_EXP_DISTRIBUTION_PARITY:
iExp2 = 2*_iExp;
break;

Aşağıyıda düzenlerseniz eğer seviyeye göre dağılımda da aynı mantık işler:
case PARTY_EXP_DISTRIBUTION_NON_PARITY:
iExp2 = 2*_iExp;
break;
Teşekkür ediyorum
 
Üst