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

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

Tengrist

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
1.054
Çözümler
38
Beğeni
782
Puan
1.109
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:
Genişlet Daralt Kopyala
#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.
 
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.
Bu akşam inşallah deneyeceğim hocam sonuçları video atarım teşekkürler tekrardan
 
Geri
Üst