Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
KODevelopers

Torment Skill Effect Sorunu

Önerilen Mesajlar

Torment skili karşı ırkın useri üzerine atıldığı zaman bazen effect çıkmıyor bu konu hakkında fikri olan var mı acaba ?
Cevaplarınız için şimdiden teşekkür ederim.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Torment skili karşı ırkın useri üzerine atıldığı zaman bazen effect çıkmıyor bu konu hakkında fikri olan var mı acaba ?
Cevaplarınız için şimdiden teşekkür ederim.


Merhabalar,

Efekt çıkmadığı durumlarda debuff hedef playere işliyor mu?

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Merhabalar,

Efekt çıkmadığı durumlarda debuff hedef playere işliyor mu?


Merhaba tekrardan, evet torment skilli işliyor fakat bahsettiğim gibi sadece effet gözükmüyor.

İletiyi paylaş


Link to post
Sitelerde Paylaş

Eğer db de sıkıntı yok source da BuildAndSendSkillPacket fonksiyonun da tüm regiona göndermiyor olabilir. Diğer skill efektlerinde de sorun olabilir.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Eğer db de sıkıntı yok source da BuildAndSendSkillPacket fonksiyonun da tüm regiona göndermiyor olabilir. Diğer skill efektlerinde de sorun olabilir.


Db ile alakası oldugunu sanmıyorum effect eğer bir mob yada user üzerine düşecek sekilde pozisyon aldırırsak patlamıyor fakat boş bir alana attığımızda effect patlıyor. Fakat her iki durumdada dediğim gibi torment işliyor.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Db ile alakası oldugunu sanmıyorum effect eğer bir mob yada user üzerine düşecek sekilde pozisyon aldırırsak patlamıyor fakat boş bir alana attığımızda effect patlıyor. Fakat her iki durumdada dediğim gibi torment işliyor.


Skill tam mob veya user üzerine hedef alındığında, clientten gelen pakette hedef id değeri -1 olması gerekirken denk gelen hedefin id'si(user,npc) olarak geliyor olabilir. dolayısı ile aoe olan bu skillin paketi, -1 target id ile gitmesi gerekirken, user veya npc idsi ile regiona gidiyor olabilir.(hatta alan koordinatları eklenmiyor bile olabilir.)

teorimi doğrulamak için magicinstance::run fonksiyonuna breakpoint koyarak gelen target id'yi kontrol edebilirsin. değer -1'den farklı ise, büyük ihtimalle olay dediğim gibi.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Skill tam mob veya user üzerine hedef alındığında, clientten gelen pakette hedef id değeri -1 olması gerekirken denk gelen hedefin id'si(user,npc) olarak geliyor olabilir. dolayısı ile aoe olan bu skillin paketi, -1 target id ile gitmesi gerekirken, user veya npc idsi ile regiona gidiyor olabilir.(hatta alan koordinatları eklenmiyor bile olabilir.)

teorimi doğrulamak için magicinstance::run fonksiyonuna breakpoint koyarak gelen target id'yi kontrol edebilirsin. değer -1'den farklı ise, büyük ihtimalle olay dediğim gibi.


Boşa attığımda dönen targerID Değerleri

STEP1->MagicIstance.cpp->Run-> sTargetID = 0

STEP6->MagicIstance.cpp->Run-> sTargetID = 0
STEP6->MagicIstance.cpp->Run-> sTargetID = -1
STEP6->MagicIstance.cpp->Run-> sTargetID = -1


User yada Mod üzerine attığımda dönen targetID

STEP6->MagicIstance.cpp->Run-> sTargetID = -1

STEP6->MagicIstance.cpp->Run-> sTargetID = 0
STEP6->MagicIstance.cpp->Run-> sTargetID = -1
STEP6->MagicIstance.cpp->Run-> sTargetID = -1


Kod Bloğu
	if(pSkill!=nullptr&&pSkillCaster!=nullptr&&pSkillCaster->isPlayer())

{
int8 moral = pSkill->bMoral;
if(moral==MORAL_SELF)
{
if(pSkillCaster->isPlayer())
{
printf("STEP1->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
sTargetID=pSkillCaster->GetID();
}
}
if(moral==MORAL_FRIEND_WITHME)
{
printf("STEP2->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
if(sTargetID!=-1)
{
printf("STEP3->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
Unit*cstr = g_pMain->GetUnitPtr(sTargetID);
if(cstr!=nullptr)
{
printf("STEP4->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
if(cstr!=pSkillCaster&&pSkillCaster->isHostileTo(cstr))
sTargetID=pSkillCaster->GetID();
printf("STEP5->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
}
}
}
}
if (sTargetID != -1 && pSkillTarget == nullptr)
pSkillTarget = g_pMain->GetUnitPtr(sTargetID);
printf("STEP6->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Boşa attığımda dönen targerID Değerleri
Spoiler


STEP1->MagicIstance.cpp->Run-> sTargetID = 0

STEP6->MagicIstance.cpp->Run-> sTargetID = 0
STEP6->MagicIstance.cpp->Run-> sTargetID = -1
STEP6->MagicIstance.cpp->Run-> sTargetID = -1


User yada Mod üzerine attığımda dönen targetID

STEP6->MagicIstance.cpp->Run-> sTargetID = -1

STEP6->MagicIstance.cpp->Run-> sTargetID = 0
STEP6->MagicIstance.cpp->Run-> sTargetID = -1
STEP6->MagicIstance.cpp->Run-> sTargetID = -1


Kod Bloğu
	if(pSkill!=nullptr&&pSkillCaster!=nullptr&&pSkillCaster->isPlayer())

{
int8 moral = pSkill->bMoral;
if(moral==MORAL_SELF)
{
if(pSkillCaster->isPlayer())
{
printf("STEP1->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
sTargetID=pSkillCaster->GetID();
}
}
if(moral==MORAL_FRIEND_WITHME)
{
printf("STEP2->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
if(sTargetID!=-1)
{
printf("STEP3->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
Unit*cstr = g_pMain->GetUnitPtr(sTargetID);
if(cstr!=nullptr)
{
printf("STEP4->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
if(cstr!=pSkillCaster&&pSkillCaster->isHostileTo(cstr))
sTargetID=pSkillCaster->GetID();
printf("STEP5->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);
}
}
}
}
if (sTargetID != -1 && pSkillTarget == nullptr)
pSkillTarget = g_pMain->GetUnitPtr(sTargetID);
printf("STEP6->MagicIstance.cpp->Run-> sTargetID = %d
",sTargetID);




Bazen '0' geldiği oluyor ki bunun olmaması lazım normalde. Server taraflı düzeltme yap. aoe olan skillere id ne gelirse gelsin , sTargetID = -1

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...