Yardım OYUNCU BİR HARİTAYA GİRDİĞİNDE ÖZELLİK ALSIN ÇIKINCA GİTSİN O ÖZELLİK

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Tengrist

MT Üye
MT Üye
Mesaj
505
Çözümler
15
Beğeni
357
Puan
809
Ticaret Puanı
0
Arkadaşlar yaptığım bir event içinoyunculara bir harita (indeks numarasıyla) içerde olanlara 25 yarı insan 60 büyü hızı vermek istiyorum fakat çıkınca bu özellikler silinmeli nasıl yapabilirim ya da benzer bir konu gördünüz mü?
 
Aklıma resmi sunucudaki savaş sistemi geldi.
Battle zone olarak bulabilirsin.

Arenaya girildiğinde bütün karakterlerin skilleri p olarak veriliyor oradaki kod bloğundan istediğin şekilde ayarlıyabilirsin.
 
Aklıma resmi sunucudaki savaş sistemi geldi.
Battle zone olarak bulabilirsin.

Arenaya girildiğinde bütün karakterlerin skilleri p olarak veriliyor oradaki kod bloğundan istediğin şekilde ayarlıyabilirsin.
teşekkür ederim yanıtınız için, ben de o sistemi kontrol ediyordum
hp veren pot:
#ifdef [B]ENABLE_BATTLE_FIELD[/B]
                        if (item->GetVnum() == 27125)
                        {
                            if (FindAffect(AFFECT_BATTLE_POTION))
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You already used that potion."));
                                return false;
                            }
                    
                            if (CBattleZone::instance().IsBattleZoneMapIndex(GetMapIndex()))
                            {
                                int iMultiply = 0;
                                if(GetLevel() <= 64)
                                {
                                    iMultiply = 4;
                                }
                                else if (GetLevel() > 64 && GetLevel() < 90)
                                {
                                    iMultiply = 3;
                                }
                                else if (GetLevel() >= 90)
                                {
                                    iMultiply = 2;
                                }
                                
                                int iAttackDefenceValue = (gPlayerMaxLevel - (GetLevel() - 50)) * iMultiply;
                                
                                AddAffect(AFFECT_BATTLE_POTION, POINT_MAX_HP, 50000, 0, INFINITE_AFFECT_DURATION, 0, false);
                                AddAffect(AFFECT_BATTLE_POTION, POINT_ATT_GRADE_BONUS, iAttackDefenceValue, 0, INFINITE_AFFECT_DURATION, 0, false);
                                AddAffect(AFFECT_BATTLE_POTION, POINT_DEF_GRADE_BONUS, iAttackDefenceValue, 0, INFINITE_AFFECT_DURATION, 0, false);
                                
                                EffectPacket(SE_EFFECT_BATTLE_POTION);
                            }
                            else
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can use this item just in battle zone map."));
                                return false;
                            }
                        }
#endif

şöyle bir pot yaratıp potla hp vermişler de gerekli kontrolleri göremedim burda sadece ilgili mapte bu efsunun kullanılacağı duruma bakmış mapten çıktığında etkinin silinme mevzusunu bulamadım bir de map index kontrolünün nerede yapıldığına bakıyorum da bulamadım
 
en son çözüm olarak bir slot açıp o slota bir yüzük ayarlanır haritaya giren herkese otomatik olarak giydirip haritadan çıkınca direkt olarak sildiren bir fonksiyon olabilir.
 
giymeli event itemi yaparsın.İtemin özelliklerini protodan yaparsın.bu itemide belirli haritalarda yasakalrsın sadece event haritasında kullanırsın
giyemeli itemie tıkalyıncada şu yazar sadece event haritalarında kullanıalbilir.
itemin özelliklerini yazan yerinide packdan ayarlarsın
 
giymeli event itemi yaparsın.İtemin özelliklerini protodan yaparsın.bu itemide belirli haritalarda yasakalrsın sadece event haritasında kullanırsın
giyemeli itemie tıkalyıncada şu yazar sadece event haritalarında kullanıalbilir.
itemin özelliklerini yazan yerinide packdan ayarlarsın
bunu da düşündüm de otomatik olarak bonus kazanmayı biraz daha araştıracağım
 
Şöyle birşey geldi aklıma ama:

void CHARACTER::ComputePoints()
içinde bul
SetPoint(POINT_MOV_SPEED, 100);

Üstüne ekle :
#ifndef ENABLE_TENGRS
if ((GetMapIndex() == 1) || (GetMapIndex() == 21) || (GetMapIndex() == 41))
SetPoint(POINT_ATTBONUS_HUMAN, 999);
#endif
 
bu güzel duruyo hocam fakat burada indexlerdeki maplere girince aktif olduktan sonra başka bir mape geçince elde edilen bonus silinir mi otomatik yoksa aynı haritaya tekrar tekrar girdiğinde eklenmeye devam eder mi?
Şöyle birşey geldi aklıma ama:

void CHARACTER::ComputePoints()
içinde bul
SetPoint(POINT_MOV_SPEED, 100);

Üstüne ekle :
#ifndef ENABLE_TENGRS
if ((GetMapIndex() == 1) || (GetMapIndex() == 21) || (GetMapIndex() == 41))
SetPoint(POINT_ATTBONUS_HUMAN, 999);
#endif
 
bu güzel duruyo hocam fakat burada indexlerdeki maplere girince aktif olduktan sonra başka bir mape geçince elde edilen bonus silinir mi otomatik yoksa aynı haritaya tekrar tekrar girdiğinde eklenmeye devam eder mi?
Oyuna başlangıçta verilen saldırı hızı 100 hareket hızı 100 gibi şeyler her mapa girdiğinizde tekrar tekrar vermiyorsa buda vermez diye düşünüyorum. Maptan çıktığınızdada silinir evet.
 
Geri
Üst