Çözüldü Skil efekt sildirme hk soru

  • Konuyu açan Konuyu açan CuRSED
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 15
  • Gösterim Gösterim 147
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

CuRSED

Usta Üye
Usta Üye
Mesaj
628
Çözümler
1
Beğeni
990
Puan
814
Ticaret Puanı
0
karakterin bi skili var kullanınca başka skilinin efektini silmesini istiyorum nasıl ilerliyebilirim mantığı örneği göstercek varmıdır acaba
 
Çözüm
skil kodu 189 olan SKILL_LANDSTRIKE geçiyor skill.h de
bunu kullanınca 193 skil kodu AFF_MAGIC_ATTACK_A
silmesini istiyorum

sıçrama skili kullanınca görünmezken bende gitmiyor gitsin istiyorum kısacası görünmezliğin
Çok basit şu şekilde yapabilirsiniz
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
if (dwVnum == SKILL_LANDTRIKE) {
RemoveAffect(193); // Buraya skill adını yazın AFF_MAGIC_ATTACK_A bir skill adı değil verdiği affectin typesi
}
En basit örnekle aşağıdaki gibi deneyebilirsin.
C++:
Genişlet Daralt Kopyala
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
    if (false == CanUseSkill(dwVnum))
        return false;
    
    if(dwVnum == SKILL_KODU)
    {
        if(IsAffectFlag(AFF_GEOMGYEONG)) // örnek: AFF_GEOMGYEONG = hava kilici
            RemoveAffect(SKILL_GEOMKYUNG); // Dikkat: buraya affect adı değil skill indexini yazacaksın --> enum ESkillIndexes
    }
    
    [...]
    [...]
}
 
En basit örnekle aşağıdaki gibi deneyebilirsin.
C++:
Genişlet Daralt Kopyala
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
    if (false == CanUseSkill(dwVnum))
        return false;
   
    if(dwVnum == SKILL_KODU)
    {
        if(IsAffectFlag(AFF_GEOMGYEONG)) // örnek: AFF_GEOMGYEONG = hava kilici
            RemoveAffect(SKILL_GEOMKYUNG); // Dikkat: buraya affect adı değil skill indexini yazacaksın --> enum ESkillIndexes
    }
   
    [...]
    [...]
}
olay görünmez skili açıkken bi skil kullanıyorum ama görünmez gitmiyor gitmesi lazım o kullandığım skilin koduna heralde ben affect sildiircem görünmezin. doğrumuyum nasıl olur tam
 
olay görünmez skili açıkken bi skil kullanıyorum ama görünmez gitmiyor gitmesi lazım o kullandığım skilin koduna heralde ben affect sildiircem görünmezin. doğrumuyum nasıl olur tam
Şu an için bu konuda net bir şey söyleyemem. Sorunun kaynağı server taraflı da olabilir client tarafında da olabilir.
Bunu basitçe test etmek için iki clientten kontrol et. Eğer senin ekranında görünmez olmaya devam edip karşı karakterin clientinde görünür oluyorsa sorun client kaynaklıdır. Eğer her iki clientte görünmez kalmaya devam ediyorsa sorun server tarafından olabilir. Bunu netleştirmen lazım önce.

Sonrasında ise incelemen gereken affectler temelde şu ikisidir:
Serverde: AFF_INVISIBILITY ve AFF_REVIVE_INVISIBLE
Clientte: AFFECT_INVISIBILITY ve AFFECT_REVIVE_INVISIBILITY
 
Şu an için bu konuda net bir şey söyleyemem. Sorunun kaynağı server taraflı da olabilir client tarafında da olabilir.
Bunu basitçe test etmek için iki clientten kontrol et. Eğer senin ekranında görünmez olmaya devam edip karşı karakterin clientinde görünür oluyorsa sorun client kaynaklıdır. Eğer her iki clientte görünmez kalmaya devam ediyorsa sorun server tarafından olabilir. Bunu netleştirmen lazım önce.

Sonrasında ise incelemen gereken affectler temelde şu ikisidir:
Serverde: AFF_INVISIBILITY ve AFF_REVIVE_INVISIBLE
Clientte: AFFECT_INVISIBILITY ve AFFECT_REVIVE_INVISIBILITY
dosya isimlerinide söylermisniz
 
Projede aratarak nerede kullanıldıklarını görebilirsin, pek çok yerde olabiliyorlar
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
if (false == CanUseSkill(dwVnum))
return false;

if(IsAffectFlag(SKILL_LANDSTRIKE))
RemoveAffect(AFF_MAGIC_ATTACK_A);

böyle ekledim

build aldı ama çalışmadı

SKILL_LANDSTRIKE kullanıyorum oyunda AFF_MAGIC_ATTACK_A bu görünmez skili silmiyor
 
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
if (false == CanUseSkill(dwVnum))
return false;

if(IsAffectFlag(SKILL_LANDSTRIKE))
RemoveAffect(AFF_MAGIC_ATTACK_A);

böyle ekledim

build aldı ama çalışmadı

SKILL_LANDSTRIKE kullanıyorum oyunda AFF_MAGIC_ATTACK_A bu görünmez skili silmiyor
@Luigina bilgin varmıdır
 
Problemi detaylı bir şekilde açıklarsanız yardımcı olabilirim.
skil kodu 189 olan SKILL_LANDSTRIKE geçiyor skill.h de
bunu kullanınca 193 skil kodu AFF_MAGIC_ATTACK_A
silmesini istiyorum

sıçrama skili kullanınca görünmezken bende gitmiyor gitsin istiyorum kısacası görünmezliğin
 
skil kodu 189 olan SKILL_LANDSTRIKE geçiyor skill.h de
bunu kullanınca 193 skil kodu AFF_MAGIC_ATTACK_A
silmesini istiyorum

sıçrama skili kullanınca görünmezken bende gitmiyor gitsin istiyorum kısacası görünmezliğin
Çok basit şu şekilde yapabilirsiniz
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
if (dwVnum == SKILL_LANDTRIKE) {
RemoveAffect(193); // Buraya skill adını yazın AFF_MAGIC_ATTACK_A bir skill adı değil verdiği affectin typesi
}
 
Çözüm
Çok basit şu şekilde yapabilirsiniz
bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
{
if (dwVnum == SKILL_LANDTRIKE) {
RemoveAffect(193); // Buraya skill adını yazın AFF_MAGIC_ATTACK_A bir skill adı değil verdiği affectin typesi
}
if (dwVnum == SKILL_LANDSTRIKE) {
RemoveAffect(SKILL_MAGIC_ATTACK_A);
}
böylemi
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst