Sosyal açıldı! Bir göz at → Hemen gir →

YARDIM Eski anvil geçiş yanış efekti yardım

semihyldrm

KY Kıdemli Üye
Yardımsever
KAYIT
26 Haz 2022
Mesajlar
268
Çözümler
4
Tepki puanı
187
Selamun Aleyküm , Arkadaşlar resimde paylaştığım gibi eski sarı kırmızı ışık uifini ekledim ama oyuna girince anvili açınca bu sekilde cıkıyor direk bunu nasıl ayarlayabilirim + basma anında efektin cıkması için
 

Ekli dosyalar

  • ff.png
    ff.png
    66.6 KB · Görüntüleme: 25

semihyldrm

KY Kıdemli Üye
Yardımsever
KAYIT
26 Haz 2022
Mesajlar
268
Çözümler
4
Tepki puanı
187
Hocam kod tarafında önce gizlemen gerekiyor uifin childlerini sonrasında upgrade anında gösterilecek kodu yazman gerekli.
Hocam öncelikle cevabın için çok teşekkür ederim uif tarafında gizlesemde client tarafı loadı okuduğu için geçsede yansada sarı efekt çıkıyor client 2369 ıstırap olduğundan asm ile hook atmam lazım bakalım yanma anında ki offsetleri buldum olursa yanma kısmında load kısmını atlayıp kırmızı efekti göstermeye zorlicam olmadı düz load kullanıcam mecbur :)
 

izwein

Moderatör
KAYIT
21 Ağu 2025
Mesajlar
191
Çözümler
1
Tepki puanı
583
Sourcemden gösterdiğin uif ile çalışan animasyon kodunu alta bırakıyorum ama bunu hook ile nasıl eklersin ben bilmem


Animasyon Durumları (AnimationState enum):​

C++:
enum class AnimationState : uint8_t
{
None, // Animasyon yok
Start, // Başlangıç
FlipFlop, // Yanıp sönme animasyonu (kırmızı/sarı)
Result, // Sonuç gösterimi
CoverOpening, // Kapak açılma animasyonu
Done // Tamamlandı
};

Ana Animasyon Fonksiyonları:​

1. FlipFlopAnim() - Kırmızı/Sarı yanıp sönme animasyonu:

C++:
void CUIItemUpgrade::FlipFlopAnim()
{
if (m_bUpgradeSucceeded) // Başarılı ise
{
// Önceki frame'i gizle
if (m_iCurrentFrame > 0 && m_pImgSuccess[m_iCurrentFrame - 1] != nullptr)
m_pImgSuccess[m_iCurrentFrame - 1]->SetVisible(false);

// Şu anki frame'i göster (SARI - img_s_load_X)
if (m_pImgSuccess[m_iCurrentFrame] != nullptr)
{
m_pImgSuccess[m_iCurrentFrame]->SetVisible(true);
m_pImgSuccess[m_iCurrentFrame]->SetParent(this);
}
}
else // Başarısız ise
{
// Önceki frame'i gizle
if (m_iCurrentFrame > 0 && m_pImgFail[m_iCurrentFrame - 1] != nullptr)
m_pImgFail[m_iCurrentFrame - 1]->SetVisible(false);

// Şu anki frame'i göster (KIRMIZI - img_f_load_X)
if (m_pImgFail[m_iCurrentFrame] != nullptr)
{
m_pImgFail[m_iCurrentFrame]->SetVisible(true);
m_pImgFail[m_iCurrentFrame]->SetParent(this);
}
}
}
2. UpdateFlipFlopAnimation() - Frame zamanlayıcı:

C++:
void CUIItemUpgrade::UpdateFlipFlopAnimation()
{
constexpr float FLIPFLOP_FRAME_DELAY = 0.1f; // Her frame 0.1 saniye

m_fAnimationTimer += CN3Base::s_fSecPerFrm;

if (m_fAnimationTimer >= FLIPFLOP_FRAME_DELAY)
{
m_fAnimationTimer -= FLIPFLOP_FRAME_DELAY;
++m_iCurrentFrame;

if (m_iCurrentFrame >= FLIPFLOP_MAX_FRAMES) // 19 frame
{
HideAllAnimationFrames();
m_eAnimationState = AnimationState::Result;
m_fAnimationTimer = 0.0f;
}
else
{
FlipFlopAnim(); // Bir sonraki frame'i göster
}
}
}


Image Array'leri:​

  • m_pImgSuccess[19] → img_s_load_0 ... img_s_load_18 (SARI - başarılı)
  • m_pImgFail[19] → img_f_load_0 ... img_f_load_18 (KIRMIZI - başarısız)

Animasyon Akışı:​

  1. Start → Kapaklar kapanır, animasyon başlar
  2. FlipFlop → 19 frame boyunca 0.1 saniye aralıklarla kırmızı veya sarı image'lar sırayla gösterilir
  3. Result → Sonuç belirlenir
  4. CoverOpening → Kapaklar açılır, sonuç görünür
  5. Done → Animasyon tamamlanır
Bu sayede item upgrade başarılı olursa sarı, başarısız olursa kırmızı yanıp sönen bir animasyon efekti oluşuyor.
 

semihyldrm

KY Kıdemli Üye
Yardımsever
KAYIT
26 Haz 2022
Mesajlar
268
Çözümler
4
Tepki puanı
187
Sourcemden gösterdiğin uif ile çalışan animasyon kodunu alta bırakıyorum ama bunu hook ile nasıl eklersin ben bilmem


Animasyon Durumları (AnimationState enum):​

C++:
enum class AnimationState : uint8_t
{
None, // Animasyon yok
Start, // Başlangıç
FlipFlop, // Yanıp sönme animasyonu (kırmızı/sarı)
Result, // Sonuç gösterimi
CoverOpening, // Kapak açılma animasyonu
Done // Tamamlandı
};

Ana Animasyon Fonksiyonları:​

1. FlipFlopAnim() - Kırmızı/Sarı yanıp sönme animasyonu:

C++:
void CUIItemUpgrade::FlipFlopAnim()
{
if (m_bUpgradeSucceeded) // Başarılı ise
{
// Önceki frame'i gizle
if (m_iCurrentFrame > 0 && m_pImgSuccess[m_iCurrentFrame - 1] != nullptr)
m_pImgSuccess[m_iCurrentFrame - 1]->SetVisible(false);

// Şu anki frame'i göster (SARI - img_s_load_X)
if (m_pImgSuccess[m_iCurrentFrame] != nullptr)
{
m_pImgSuccess[m_iCurrentFrame]->SetVisible(true);
m_pImgSuccess[m_iCurrentFrame]->SetParent(this);
}
}
else // Başarısız ise
{
// Önceki frame'i gizle
if (m_iCurrentFrame > 0 && m_pImgFail[m_iCurrentFrame - 1] != nullptr)
m_pImgFail[m_iCurrentFrame - 1]->SetVisible(false);

// Şu anki frame'i göster (KIRMIZI - img_f_load_X)
if (m_pImgFail[m_iCurrentFrame] != nullptr)
{
m_pImgFail[m_iCurrentFrame]->SetVisible(true);
m_pImgFail[m_iCurrentFrame]->SetParent(this);
}
}
}
2. UpdateFlipFlopAnimation() - Frame zamanlayıcı:

C++:
void CUIItemUpgrade::UpdateFlipFlopAnimation()
{
constexpr float FLIPFLOP_FRAME_DELAY = 0.1f; // Her frame 0.1 saniye

m_fAnimationTimer += CN3Base::s_fSecPerFrm;

if (m_fAnimationTimer >= FLIPFLOP_FRAME_DELAY)
{
m_fAnimationTimer -= FLIPFLOP_FRAME_DELAY;
++m_iCurrentFrame;

if (m_iCurrentFrame >= FLIPFLOP_MAX_FRAMES) // 19 frame
{
HideAllAnimationFrames();
m_eAnimationState = AnimationState::Result;
m_fAnimationTimer = 0.0f;
}
else
{
FlipFlopAnim(); // Bir sonraki frame'i göster
}
}
}


Image Array'leri:​

  • m_pImgSuccess[19] → img_s_load_0 ... img_s_load_18 (SARI - başarılı)
  • m_pImgFail[19] → img_f_load_0 ... img_f_load_18 (KIRMIZI - başarısız)

Animasyon Akışı:​

  1. Start → Kapaklar kapanır, animasyon başlar
  2. FlipFlop → 19 frame boyunca 0.1 saniye aralıklarla kırmızı veya sarı image'lar sırayla gösterilir
  3. Result → Sonuç belirlenir
  4. CoverOpening → Kapaklar açılır, sonuç görünür
  5. Done → Animasyon tamamlanır
Bu sayede item upgrade başarılı olursa sarı, başarısız olursa kırmızı yanıp sönen bir animasyon efekti oluşuyor.
Çok teşekkür ederim hocam ISTIRAP a entegre etmeye çalışıcam inşaALLAH sağolun yardımınız için
 
Anasayfa Kayıt ol Giriş yap
Üst Alt