- Katılım
- 29 Mar 2012
- Konular
- 38
- Mesajlar
- 673
- Reaksiyon Skoru
- 77
- Altın Konu
- 0
- TM Yaşı
- 14 Yıl 2 Ay 20 Gün
- Başarım Puanı
- 72
- MmoLira
- 9
- DevLira
- 0
HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Merhabalar,
Arkadaşlar forumumuzda birçok şaman party flag sistemi paylaşılmış fakat hiçbiri sorunsuz çalışmıyor aslında Pelin arkadaşımızın paylaştığı olması gerektiği gibi fakat birçok kişi şaman sadece grubtakileri kutsamasını istemez bu yüzden bu konuyu paylaşmak istedim.
Anlatım ;
Char_skill.cpp Açılır Aratılır
Kod Satırının Altına Eklenir
Char_skill.cpp Aratılır
Altına Eklenir
Char_skill.cpp Aratılır
Altına Eklenir
Char_skill.cpp Aratılır
Değiştirilir
Guild.cpp Açılır Aratılır
Altına Eklenir
skill.h Açılır Aratılır
Değiştirilir
Mysql
Player>Skill_proto Masaüstüne Dump SQL File Yapılır ve Notepad İle Açılır.
Aratılır
Değiştirilir
Kaydedilir ve sql Mysql>player'e Okutulur.
Kanıt
Başka Bir Forumdan Alıntıdır.
Arkadaşlar forumumuzda birçok şaman party flag sistemi paylaşılmış fakat hiçbiri sorunsuz çalışmıyor aslında Pelin arkadaşımızın paylaştığı olması gerektiği gibi fakat birçok kişi şaman sadece grubtakileri kutsamasını istemez bu yüzden bu konuyu paylaşmak istedim.
Anlatım ;
Char_skill.cpp Açılır Aratılır
Kod:
static const DWORD s_adwSubSkillVnums[] =
{
SKILL_LEADERSHIP,
SKILL_COMBO,
SKILL_MINING,
SKILL_LANGUAGE1,
SKILL_LANGUAGE2,
SKILL_LANGUAGE3,
SKILL_POLYMORPH,
SKILL_HORSE,
SKILL_HORSE_SUMMON,
SKILL_HORSE_WILDATTACK,
SKILL_HORSE_CHARGE,
SKILL_HORSE_ESCAPE,
SKILL_HORSE_WILDATTACK_RANGE,
SKILL_ADD_HP,
SKILL_RESIST_PENETRATE
};
Kod Satırının Altına Eklenir
Kod:
struct FPartyPIDCollector
{
std::vector <DWORD> vecPIDs;
FPartyPIDCollector()
{
}
void operator () (LPCHARACTER ch)
{
vecPIDs.push_back(ch->GetPlayerID());
}
};
Char_skill.cpp Aratılır
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
pkVictim = this;
Altına Eklenir
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim)
pkVictim = this;
Char_skill.cpp Aratılır
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
pkVictim = this;
Altına Eklenir
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim)
pkVictim = this;
Char_skill.cpp Aratılır
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
ComputeSkill(dwVnum, this);
else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK))
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_BYEURAK)
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill())
ComputeSkill(dwVnum, pkVictim);
m_dwLastSkillTime = get_dword_time();
return true;
}
Değiştirilir
Kod:
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim)
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
{
FPartyPIDCollector f;
GetParty()->ForEachOnMapMember(f, GetMapIndex());
for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
{
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
ComputeSkill(dwVnum, ch);
}
}
else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK))
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_BYEURAK)
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill())
ComputeSkill(dwVnum, pkVictim);
m_dwLastSkillTime = get_dword_time();
return true;
}
Guild.cpp Açılır Aratılır
Kod:
if ((pkSk->dwFlag & SKILL_FLAG_SELFONLY))
{
// ÀÌ¹Ì °É·Á ÀÖÀ¸¹Ç·Î »ç¿ëÇÏÁö ¾ÊÀ½.
if (ch->FindAffect(pkSk->dwVnum))
return;
victim = ch;
}
Altına Eklenir
Kod:
if ((pkSk->dwFlag & SKILL_FLAG_PARTY))
{
if (ch->FindAffect(pkSk->dwVnum))
return;
victim = ch;
}
skill.h Açılır Aratılır
Kod:
SKILL_FLAG_CRUSH_LONG = (1 << 23), // »ó´ë¹æÀ» ¸Ö¸® ³¯¸²
SKILL_FLAG_WIND = (1 << 24), // ¹Ù¶÷ ¼Ó¼º
SKILL_FLAG_ELEC = (1 << 25), // Àü±â ¼Ó¼º
SKILL_FLAG_FIRE = (1 << 26),
Değiştirilir
Kod:
SKILL_FLAG_CRUSH_LONG = (1 << 23), // »ó´ë¹æÀ» ¸Ö¸® ³¯¸²
SKILL_FLAG_PARTY = (1 << 24), // Party Flag
SKILL_FLAG_WIND = (1 << 25), // ¹Ù¶÷ ¼Ó¼º
SKILL_FLAG_ELEC = (1 << 26), // Àü±â ¼Ó¼º
SKILL_FLAG_FIRE = (1 << 27),
Mysql
Player>Skill_proto Masaüstüne Dump SQL File Yapılır ve Notepad İle Açılır.
Aratılır
Kod:
`setFlag` set('ATTACK','USE_MELEE_DAMAGE','COMPUTE_ATTGRADE' ,'SELFONLY','USE_MAGIC_DAMAGE','USE_HP_AS_COST','C OMPUTE_MAGIC_DAMAGE','SPLASH','GIVE_PENALTY','USE_ ARROW_DAMAGE','PENETRATE','IGNORE_TARGET_RATING',' ATTACK_SLOW','ATTACK_STUN','HP_ABSORB','SP_ABSORB' ,'ATTACK_FIRE_CONT','REMOVE_BAD_AFFECT','REMOVE_GO OD_AFFECT','CRUSH','ATTACK_POISON','TOGGLE','DISAB LE_BY_POINT_UP','CRUSH_LONG') DEFAULT NULL,
Değiştirilir
Kod:
`setFlag` set('ATTACK','USE_MELEE_DAMAGE','COMPUTE_ATTGRADE' ,'SELFONLY','USE_MAGIC_DAMAGE','USE_HP_AS_COST','C OMPUTE_MAGIC_DAMAGE','SPLASH','GIVE_PENALTY','USE_ ARROW_DAMAGE','PENETRATE','IGNORE_TARGET_RATING',' ATTACK_SLOW','ATTACK_STUN','HP_ABSORB','SP_ABSORB' ,'ATTACK_FIRE_CONT','REMOVE_BAD_AFFECT','REMOVE_GO OD_AFFECT','CRUSH','ATTACK_POISON','TOGGLE','DISAB LE_BY_POINT_UP','CRUSH_LONG','PARTY') DEFAULT NULL,
Kaydedilir ve sql Mysql>player'e Okutulur.
Kanıt
Başka Bir Forumdan Alıntıdır.
- Katılım
- 17 Ağu 2014
- Konular
- 4,839
- Mesajlar
- 14,733
- Online süresi
- 22m 50s
- Reaksiyon Skoru
- 2,558
- Altın Konu
- 0
- TM Yaşı
- 11 Yıl 10 Ay 4 Gün
- Başarım Puanı
- 402
- Yaş
- 30
- MmoLira
- -117
- DevLira
- 0
Teşekkürler 

- Katılım
- 29 Mar 2012
- Konular
- 38
- Mesajlar
- 673
- Reaksiyon Skoru
- 77
- Altın Konu
- 0
- TM Yaşı
- 14 Yıl 2 Ay 20 Gün
- Başarım Puanı
- 72
- MmoLira
- 9
- DevLira
- 0
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 6
- Görüntüleme
- 470
- Cevaplar
- 20
- Görüntüleme
- 820
- Cevaplar
- 6
- Görüntüleme
- 1K
- Cevaplar
- 6
- Görüntüleme
- 1K
- Cevaplar
- 37
- Görüntüleme
- 2K




