- Katılım
- 30 May 2023
- Konular
- 38
- Mesajlar
- 456
- Çözüm
- 6
- Online süresi
- 1mo 15d
- Reaksiyon Skoru
- 354
- Altın Konu
- 0
- Başarım Puanı
- 103
- MmoLira
- 11,847
- DevLira
- 90
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Öğretmene Gittiğinizde Yeni Eğitim Aldığınızda Eğitim Bonusu Olarak 1 Saatliğine +25 Hareket Hızı Kazanırsınız.
Bonusu, Bonus Değerini ve Verilen Süreyi Dilediğiniz Gibi Değiştirebilirsiniz.
İşte Kodlarımız:
Char_Skill.cpp Aç ve Arat:
Altına Ekle:
Tekrar Arat:
Üstüne Ekle:
Char.h Aç ve Arat:
Üstüne Ekle:
Affect.h Aç ve Arat:
Üstüne Ekle:
Makroyu Dahil Etmeyi Unutmayın.
Kanıt:
Bonusu Almadan Önceki Hareket Hızım
Bonusu Aldıktan Sonraki Hareket Hızım
Affect Tablosu
Sistemi Dilediğiniz Gibi Değiştirip Kullanabilirsiniz. Herhangi Bir Hata veya Eksik Kodlama İle Karşılaşırsanız Lütfen Konuya Dahil Ediniz.
Teşekkür Ederim.
Bonusu, Bonus Değerini ve Verilen Süreyi Dilediğiniz Gibi Değiştirebilirsiniz.
İşte Kodlarımız:
Char_Skill.cpp Aç ve Arat:
Kod:
void CHARACTER::SetSkillGroup(BYTE bSkillGroup)
{
if (bSkillGroup > 2)
return;
if (GetLevel() < 5)
return;
Altına Ekle:
Kod:
#ifdef ENABLE_NEW_TRAINING_BONUS
SetTrainingBonus(bSkillGroup);
#endif
Tekrar Arat:
Kod:
void CHARACTER::SetSkillGroup(BYTE bSkillGroup)
Üstüne Ekle:
Kod:
#ifdef ENABLE_NEW_TRAINING_BONUS
void CHARACTER::SetTrainingBonus(BYTE bSkillGroup)
{
/* v0 = AFFECT_TRAINING_BONUS = Affect Type */
/* v1 = POINT_MOV_SPEED = Bonus Type */
/* v2 = SPEED_BONUS_VALUE = Bonus Value */
/* v3 = AFFECT_TIME = Affect Time */
DWORD v0 = AFFECT_TRAINING_BONUS;
BYTE v1 = POINT_MOV_SPEED;
const long v2 = 25;
const long v3 = 3600;
if (bSkillGroup)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup);
CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS);
if (!pAffect)
{
AddAffect(v0, v1, v2, AFF_NONE, v3, 0, true, false);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain 25 movement speed for 1 hour."));
}
}
#endif
Char.h Aç ve Arat:
Kod:
};
ESex GET_SEX(LPCHARACTER ch);
#endif
Üstüne Ekle:
Kod:
#ifdef ENABLE_NEW_TRAINING_BONUS
public:
void SetTrainingBonus(BYTE bSkillGroup);
#endif
Affect.h Aç ve Arat:
Kod:
AFFECT_QUEST_START_IDX = 1000
Üstüne Ekle:
Kod:
#ifdef ENABLE_NEW_TRAINING_BONUS
AFFECT_TRAINING_BONUS = 724,
#endif
Makroyu Dahil Etmeyi Unutmayın.
Kanıt:
Bonusu Almadan Önceki Hareket Hızım
Bonusu Aldıktan Sonraki Hareket Hızım
Affect Tablosu
Sistemi Dilediğiniz Gibi Değiştirip Kullanabilirsiniz. Herhangi Bir Hata veya Eksik Kodlama İle Karşılaşırsanız Lütfen Konuya Dahil Ediniz.
Teşekkür Ederim.
En Çok Reaksiyon Alan Mesajlar
bunun yerine bu nasıl fikir? 2 karakter sınırı olmadığı için değişkenlere istediğimiz ismi verebiliyoruz.Üstüne Ekle:
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS void CHARACTER::SetTrainingBonus(BYTE bSkillGroup) { /* v0 = AFFECT_TRAINING_BONUS = Affect Type */ /* v1 = POINT_MOV_SPEED = Bonus Type */ /* v2 = SPEED_BONUS_VALUE = Bonus Value */ /* v3 = AFFECT_TIME = Affect Time */ DWORD v0 = AFFECT_TRAINING_BONUS; BYTE v1 = POINT_MOV_SPEED; const long v2 = 25; const long v3 = 3600; if (bSkillGroup) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup); CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS); if (!pAffect) { AddAffect(v0, v1, v2, AFF_NONE, v3, 0, true, false); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain 25 movement speed for 1 hour.")); } } #endif
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS void CHARACTER::SetTrainingBonus(BYTE bSkillGroup) { if (bSkillGroup) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup); CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS); if (!pAffect) { constexpr long lValue = 25; constexpr long lDuration = 3600; AddAffect(AFFECT_TRAINING_BONUS, POINT_MOV_SPEED, lValue, AFF_NONE, lDuration, 0, true, false); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain %d movement speed for %d seconds."), lValue, lDuration); } } #endif
- Katılım
- 29 Eyl 2009
- Konular
- 1,298
- Mesajlar
- 18,700
- Çözüm
- 203
- Online süresi
- 7mo 19h
- Reaksiyon Skoru
- 9,276
- Altın Konu
- 377
- Başarım Puanı
- 426
- Yaş
- 32
- MmoLira
- 51,388
- DevLira
- 74
bunun yerine bu nasıl fikir? 2 karakter sınırı olmadığı için değişkenlere istediğimiz ismi verebiliyoruz.Üstüne Ekle:
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS void CHARACTER::SetTrainingBonus(BYTE bSkillGroup) { /* v0 = AFFECT_TRAINING_BONUS = Affect Type */ /* v1 = POINT_MOV_SPEED = Bonus Type */ /* v2 = SPEED_BONUS_VALUE = Bonus Value */ /* v3 = AFFECT_TIME = Affect Time */ DWORD v0 = AFFECT_TRAINING_BONUS; BYTE v1 = POINT_MOV_SPEED; const long v2 = 25; const long v3 = 3600; if (bSkillGroup) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup); CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS); if (!pAffect) { AddAffect(v0, v1, v2, AFF_NONE, v3, 0, true, false); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain 25 movement speed for 1 hour.")); } } #endif

Kod:
#ifdef ENABLE_NEW_TRAINING_BONUS
void CHARACTER::SetTrainingBonus(BYTE bSkillGroup)
{
if (bSkillGroup)
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup);
CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS);
if (!pAffect)
{
constexpr long lValue = 25;
constexpr long lDuration = 3600;
AddAffect(AFFECT_TRAINING_BONUS, POINT_MOV_SPEED, lValue, AFF_NONE, lDuration, 0, true, false);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain %d movement speed for %d seconds."), lValue, lDuration);
}
}
#endif
- Katılım
- 3 Eki 2017
- Konular
- 1,673
- Mesajlar
- 18,445
- Çözüm
- 48
- Online süresi
- 9mo 24d
- Reaksiyon Skoru
- 8,721
- Altın Konu
- 297
- Başarım Puanı
- 374
- MmoLira
- 41,550
- DevLira
- 753
Paylaşım için teşekkürler.Öğretmene Gittiğinizde Yeni Eğitim Aldığınızda Eğitim Bonusu Olarak 1 Saatliğine +25 Hareket Hızı Kazanırsınız.
Bonusu, Bonus Değerini ve Verilen Süreyi Dilediğiniz Gibi Değiştirebilirsiniz.
İşte Kodlarımız:
Char_Skill.cpp Aç ve Arat:
Kod:void CHARACTER::SetSkillGroup(BYTE bSkillGroup) { if (bSkillGroup > 2) return; if (GetLevel() < 5) return;
Altına Ekle:
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS SetTrainingBonus(bSkillGroup); #endif
Tekrar Arat:
Kod:void CHARACTER::SetSkillGroup(BYTE bSkillGroup)
Üstüne Ekle:
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS void CHARACTER::SetTrainingBonus(BYTE bSkillGroup) { /* v0 = AFFECT_TRAINING_BONUS = Affect Type */ /* v1 = POINT_MOV_SPEED = Bonus Type */ /* v2 = SPEED_BONUS_VALUE = Bonus Value */ /* v3 = AFFECT_TIME = Affect Time */ DWORD v0 = AFFECT_TRAINING_BONUS; BYTE v1 = POINT_MOV_SPEED; const long v2 = 25; const long v3 = 3600; if (bSkillGroup) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup); CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS); if (!pAffect) { AddAffect(v0, v1, v2, AFF_NONE, v3, 0, true, false); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain 25 movement speed for 1 hour.")); } } #endif
Char.h Aç ve Arat:
Kod:}; ESex GET_SEX(LPCHARACTER ch); #endif
Üstüne Ekle:
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS public: void SetTrainingBonus(BYTE bSkillGroup); #endif
Affect.h Aç ve Arat:
Kod:AFFECT_QUEST_START_IDX = 1000
Üstüne Ekle:
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS AFFECT_TRAINING_BONUS = 724, #endif
Makroyu Dahil Etmeyi Unutmayın.
Kanıt:
Ekli dosyayı görüntüle 103487
Bonusu Almadan Önceki Hareket Hızım
Ekli dosyayı görüntüle 103488
Bonusu Aldıktan Sonraki Hareket Hızım
Ekli dosyayı görüntüle 103489
Affect Tablosu
Ekli dosyayı görüntüle 103490
Sistemi Dilediğiniz Gibi Değiştirip Kullanabilirsiniz. Herhangi Bir Hata veya Eksik Kodlama İle Karşılaşırsanız Lütfen Konuya Dahil Ediniz.
Teşekkür Ederim.
- Katılım
- 30 May 2023
- Konular
- 38
- Mesajlar
- 456
- Çözüm
- 6
- Online süresi
- 1mo 15d
- Reaksiyon Skoru
- 354
- Altın Konu
- 0
- Başarım Puanı
- 103
- MmoLira
- 11,847
- DevLira
- 90
Bunun karakter sınırıyla alakası yok. Oyunda 2 den fazla skill grup yok. Oyuncu herhangi bi skill grubunu aldığında zaten yeni beceri almış demektir. Bende bu verilen skill grup fonksiyonun içine Fonksiyon ismini verip yeni fonksiyon içine tüm çalışacak kodları ekledim. Anlamayanlar için ise değişken yapıp ekledim. Yorum satırı olarakta ne işe yaradıklarını ekledim. Değişkenlerin boyutlarını ise AddAffectin argümanlarının aldığı boyut kadar verdim. Sorun yaratacak birşey yok dileyen dilediği gibi kullanır.bunun yerine bu nasıl fikir? 2 karakter sınırı olmadığı için değişkenlere istediğimiz ismi verebiliyoruz.
Kod:#ifdef ENABLE_NEW_TRAINING_BONUS void CHARACTER::SetTrainingBonus(BYTE bSkillGroup) { if (bSkillGroup) ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have selected %d skill sets."), bSkillGroup); CAffect* pAffect = FindAffect(AFFECT_TRAINING_BONUS); if (!pAffect) { constexpr long lValue = 25; constexpr long lDuration = 3600; AddAffect(AFFECT_TRAINING_BONUS, POINT_MOV_SPEED, lValue, AFF_NONE, lDuration, 0, true, false); ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully completed the training. You gain %d movement speed for %d seconds."), lValue, lDuration); } } #endif
Son düzenleme:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 598
- Cevaplar
- 20
- Görüntüleme
- 807
- Cevaplar
- 9
- Görüntüleme
- 446
- Cevaplar
- 8
- Görüntüleme
- 1K









