Yeni Efektler [CLİENT SRC]//Başka İsim Bulamadım :P

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 49

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0

Kod:
[COLOR=#282828]void CInstanceBase::OnSelected()[/COLOR]


Kod:
void CInstanceBase::OnSelected(){ #ifdef __MOVIE_MODE__     if (!__IsExistMainInstance())         return; #endif     if (IsStoneDoor())         return;     if (IsDead())         return;     if (IsEnemy())     {         __AttachSelectEffectMonster();     }     if (IsPC() || IsNPC())     {         if (m_dwEmpireID == 1) // Shinshoo imp.         {             __AttachSelectEffectShinsoo();         }         else if (m_dwEmpireID == 2) // chunjo imp.         {             __AttachSelectEffectChunjo();          }         else if (m_dwEmpireID == 3)//Jinno imp.         {             __AttachSelectEffectJinnos();         }     } }
U8dU521.jpg


Kod:
[COLOR=#000088][FONT=monospace]void[/FONT][/COLOR][COLOR=#660066][FONT=monospace]CInstanceBase[/FONT][/COLOR][COLOR=#666600][FONT=monospace]::[/FONT][/COLOR][COLOR=#660066][FONT=monospace]OnUnselected[/FONT][/COLOR][COLOR=#666600][FONT=monospace]()[/FONT][/COLOR]

Kod:
void CInstanceBase::OnUnselected(){     //__DetachSelectEffect();     if (IsPC() || IsNPC())     {         if (m_dwEmpireID == 1) //Shinsoo         {             __DetachSelectEffectShinsoo();         }         else if (m_dwEmpireID == 2)//Chunjo         {             __DetachSelectEffectChunjo();         }         else if (m_dwEmpireID == 3)//Jinnno hacendauuy         {             __DetachSelectEffectJinnos();         }     }     if (IsEnemy())     {         __DetachSelectEffectMonster();     } }
AN65szV.jpg


Kod:
[COLOR=#000088][FONT=monospace]void[/FONT][/COLOR][COLOR=#660066][FONT=monospace]CInstanceBase[/FONT][/COLOR][COLOR=#666600][FONT=monospace]::[/FONT][/COLOR][COLOR=#660066][FONT=monospace]OnTargeted[/FONT][/COLOR][COLOR=#666600][FONT=monospace]()[/FONT][/COLOR]

Kod:
void CInstanceBase::OnTargeted(){ #ifdef __MOVIE_MODE__     if (!__IsExistMainInstance())         return; #endif     if (IsStoneDoor())         return;     if (IsDead())         return;     if (IsEnemy())     {         __AttachTargetEffectMonster();     }     if (IsPC() || IsNPC())     {         if (m_dwEmpireID == 1) //Shinsoo         {             __AttachTargetEffectShinsoo();         }         else if (m_dwEmpireID == 2)//Chunjo         {             __AttachTargetEffectChunjo();         }         else if (m_dwEmpireID == 3)//Jinnno         {             __AttachTargetEffectJinnos();         }     } }
656M0PE.jpg

(yeter :( ):
Kod:
void CInstanceBase::OnUntargeted()

Kod:
void CInstanceBase::OnUntargeted(){     if (IsPC() || IsNPC())     {         if (m_dwEmpireID == 1) //Shinsoo         {             __DetachTargetEffectShinsoo();         }         else if (m_dwEmpireID == 2)//Chunjo         {             __DetachTargetEffectChunjo();         }         else if (m_dwEmpireID == 3)//Jinnnos         {             __DetachTargetEffectJinnos();         }     }     if (IsEnemy())     {         __DetachTargetEffectMonster();     } }
RSzurDm.jpg


Kod:
EFFECT_EMOTICON_END = EFFECT_EMOTICON + EMOTICON_NUM,

Kod:
EFFECT_MONSTER,            EFFECT_SHINSOO,             EFFECT_CHUNJO,             EFFECT_JINNOS,             EFFECT_TARGET_SHINSOO,             EFFECT_TARGET_JINNOS,             EFFECT_TARGET_CHUNJO,             EFFECT_TARGET_MONSTER,
cjJEKV5.jpg


Kod:
void __DetachTargetEffect();

Kod:
void __AttachTargetEffectMonster();        void __DetachTargetEffectMonster();         void __AttachSelectEffectMonster();         void __DetachSelectEffectMonster();         void __AttachTargetEffectShinsoo();         void __DetachTargetEffectShinsoo();         void __AttachSelectEffectShinsoo();         void __DetachSelectEffectShinsoo();         void __AttachTargetEffectJinnos();         void __DetachTargetEffectJinnos();         void __AttachSelectEffectJinnos();         void __DetachSelectEffectJinnos();         void __AttachTargetEffectChunjo();         void __DetachTargetEffectChunjo();         void __AttachSelectEffectChunjo();         void __DetachSelectEffectChunjo();
YzhyXa6.jpg


Kod:
void CInstanceBase::__StoneSmoke_Inialize()

Kod:
void CInstanceBase::__AttachSelectEffectMonster(){     __EffectContainer_AttachEffect(EFFECT_MONSTER); } void CInstanceBase::__DetachSelectEffectMonster() {     __EffectContainer_DetachEffect(EFFECT_MONSTER); } void CInstanceBase::__AttachTargetEffectMonster() {     __EffectContainer_AttachEffect(EFFECT_TARGET_MONSTER); } void CInstanceBase::__DetachTargetEffectMonster() {     __EffectContainer_DetachEffect(EFFECT_TARGET_MONSTER); } void CInstanceBase::__AttachSelectEffectShinsoo() {     __EffectContainer_AttachEffect(EFFECT_SHINSOO); } void CInstanceBase::__DetachSelectEffectShinsoo() {     __EffectContainer_DetachEffect(EFFECT_SHINSOO); } void CInstanceBase::__AttachTargetEffectShinsoo() {     __EffectContainer_AttachEffect(EFFECT_TARGET_SHINSOO); } void CInstanceBase::__DetachTargetEffectShinsoo() {     __EffectContainer_DetachEffect(EFFECT_TARGET_SHINSOO); } void CInstanceBase::__AttachSelectEffectChunjo() {     __EffectContainer_AttachEffect(EFFECT_CHUNJO); } void CInstanceBase::__DetachSelectEffectChunjo() {     __EffectContainer_DetachEffect(EFFECT_CHUNJO); } void CInstanceBase::__AttachTargetEffectChunjo() {     __EffectContainer_AttachEffect(EFFECT_TARGET_CHUNJO); } void CInstanceBase::__DetachTargetEffectChunjo() {     __EffectContainer_DetachEffect(EFFECT_TARGET_CHUNJO); } void CInstanceBase::__AttachSelectEffectJinnos() {     __EffectContainer_AttachEffect(EFFECT_JINNOS); } void CInstanceBase::__DetachSelectEffectJinnos() {     __EffectContainer_DetachEffect(EFFECT_JINNOS); } void CInstanceBase::__AttachTargetEffectJinnos() {     __EffectContainer_AttachEffect(EFFECT_TARGET_JINNOS); } void CInstanceBase::__DetachTargetEffectJinnos() {     __EffectContainer_DetachEffect(EFFECT_TARGET_JINNOS); }
ONQDbye.jpg

Resim Sığmadı :D

Kod:
PyModule_AddIntConstant(poModule, "EFFECT_CRITICAL",            CInstanceBase::EFFECT_CRITICAL);

Kod:
PyModule_AddIntConstant(poModule, "EFFECT_MONSTER",            CInstanceBase::EFFECT_MONSTER);    PyModule_AddIntConstant(poModule, "EFFECT_TARGET_MONSTER",    CInstanceBase::EFFECT_TARGET_MONSTER);     PyModule_AddIntConstant(poModule, "EFFECT_SHINSOO",            CInstanceBase::EFFECT_SHINSOO);     PyModule_AddIntConstant(poModule, "EFFECT_TARGET_SHINSOO",    CInstanceBase::EFFECT_TARGET_SHINSOO);     PyModule_AddIntConstant(poModule, "EFFECT_CHUNJO",            CInstanceBase::EFFECT_CHUNJO);     PyModule_AddIntConstant(poModule, "EFFECT_TARGET_CHUNJO",    CInstanceBase::EFFECT_TARGET_CHUNJO);     PyModule_AddIntConstant(poModule, "EFFECT_JINNOS",            CInstanceBase::EFFECT_JINNOS);     PyModule_AddIntConstant(poModule, "EFFECT_TARGET_JINNOS",    CInstanceBase::EFFECT_TARGET_JINNOS);
0UPnAof.jpg


Kod:
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_STUN, "Bip01 Head", "d:/ymir work/effect/etc/stun/stun.mse")

Kod:
chrmgr.RegisterCacheEffect(chrmgr.EFFECT_SHINSOO, "", "d:/ymir work/effect/world/shinsoo_select.mse")    chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_SHINSOO, "", "d:/ymir work/effect/world/shinsoo_glow_select.mse")     chrmgr.RegisterCacheEffect(chrmgr.EFFECT_CHUNJO, "", "d:/ymir work/effect/world/chunjo_select.mse")     chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_CHUNJO, "", "d:/ymir work/effect/world/chunjo_glow_select.mse")     chrmgr.RegisterCacheEffect(chrmgr.EFFECT_JINNOS, "", "d:/ymir work/effect/world/jinnos_select.mse")     chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_JINNOS, "", "d:/ymir work/effect/world/jinnos_glow_select.mse")     chrmgr.RegisterCacheEffect(chrmgr.EFFECT_MONSTER, "", "d:/ymir work/effect/world/mob_select.mse")     chrmgr.RegisterCacheEffect(chrmgr.EFFECT_TARGET_MONSTER, "", "d:/ymir work/effect/world/mob_glow_select.mse")
wv1hFNN.jpg

Son olarak şunu indirip packa atın:
Index'e ekleyin:
Kod:
*trefekt *
8lORUKv.jpg

**Not**>:Moblarda Efekt çıkıyor ama metin taşlarında çıkmıyor sorunu düzeltmek için;

Rideasa teşekkürler :)
RgTzgGH.jpg

Yeni Efektler [CLİENT SRC]//Başka İsim Bulamadım :P
Metin2 özel sunucularında geliştirme yaparken efekt sistemleri oldukça kritik bir rol oynar. Oyuncuların görsel deneyimini doğrudan etkileyen efektler, PvP savaşları, item kullanımı, skill animasyonları gibi pek çok alanda kullanılır. Bu nedenle, client-side source üzerinde yapılan efekt güncellemeleri, sunucu sahipleri tarafından büyük önem taşır.
Efekt sistemlerinin geliştirilmesinde genellikle C++[/CTYPE] kodlar kullanılır. Client tarafında efektler genellikle uiscript dosyaları ve py root yapıları ile yönetilir. Bu yapılar sayesinde, geliştiriciler efektlerin nasıl çalıştığını, ne zaman tetikleneceğini ve hangi animasyonların gösterileceğini özelleştirebilirler.
Yeni Efekt Sistemlerinin Getirdiği İmkanlar
Yeni efekt sistemleri sayesinde, daha gerçekçi ve akıcı savaşlar tasarlanabilir. Özellikle PvP sistemlerinde efektlerin detaylandırılmasının oyuncu deneyimi üzerinde ciddi bir etkisi vardır. Örneğin, bir skill atıldığında hem görsel hem de ses efektiyle desteklenen bir animasyon, savaşın heyecanını artırır.
Client src üzerinde yapılan değişikliklerle efektlerin zamanlaması, konumu, rengi ve hareketi özelleştirilebilir. Bu sayede her skill farklı bir görsellik kazanabilir. Ayrıca, Python GUI kullanılarak efekt yönetim arayüzleri de oluşturulabilir. Böylece, efektlerin test edilmesi ve düzenlenmesi kolaylaşır.
Dikkat Edilmesi Gerekenler
Efekt sistemi üzerinde çalışırken, performans kayıplarına dikkat edilmelidir. Fazla sayıda efekt, CPU ve GPU üzerinde fazladan yük oluşturabilir. Bu da oyun performansını düşürerek oyuncuların deneyimini olumsuz etkileyebilir. Bu nedenle, efektler optimize edilmeli ve test edilmelidir.
Ayrıca, client src üzerinde yapılan değişikliklerin doğru derlenmesi gerekir. Metin2 compile işlemi sırasında hatalar oluşabilir. Bu durumda, loglar incelenmeli ve sorunlar çözülmelidir. Compile sırasında kullanılan araçlar, geliştiriciye göre değişebilir. Ancak genellikle Visual Studio veya benzeri IDE’ler tercih edilir.
Örnek Uygulama: Yeni Bir Skill Efekti Ekleme
Yeni bir efekt eklemek için ilk olarak ilgili skill dosyası açılır. Bu dosya genellikle uiscript altında bulunur. Ardından efekt için gerekli grafik dosyaları belirlenir. Bu dosyalar .gr2 formatında olabilir. Daha sonra efektin zamanlaması ve pozisyonu ayarlanır.
Python GUI üzerinden bu efektlerin ön izlemesi yapılabilir. Böylece, efektin nasıl görüneceği test edilip, istenilen görünüme ulaşana kadar düzenlenebilir. Bu sayede geliştirme süreci hızlanır ve hata oranı düşer.
Sonuç
Efekt sistemleri, Metin2 özel sunucularında gelişmiş görsellik ve kullanıcı deneyimi sunmak için kritik öneme sahiptir. Client SRC üzerinde yapılan değişikliklerle özelleştirilmiş efektler eklemek mümkündür. Bu süreçte dikkatli hareket edilmesi, performansın korunması açısından önemlidir. Doğru uygulandığında, yeni efektler oyuncular için unutulmaz bir deneyim sunabilir.


New Effects [CLIENT SRC]//Couldn't Think of Another Name :P
Effects play a critical role in enhancing the visual experience in Metin2 private servers. They are used in various areas such as PvP battles, item usage, and skill animations. Therefore, updates made on the client-side source regarding effect systems are highly valued by server owners.
Effect developments typically involve C++[/CTYPE] code. On the client side, effects are usually managed through uiscript files and py root[/ROOT] structures. These allow developers to customize how effects work, when they trigger, and which animations are displayed.
Opportunities Brought by New Effect Systems
With new effect systems, more realistic and fluid combat experiences can be designed. Especially in PvP systems, detailed effects significantly enhance the player experience. For example, a skill accompanied by both visual and sound effects increases the excitement of battle.
Changes made to the client src allow customization of timing, position, color, and movement of effects. This way, each skill can have its own unique visuals. Moreover, effect management interfaces can also be created using Python GUI. This simplifies testing and adjusting effects.
Important Considerations
When working on effect systems, performance losses must be taken into account. Too many effects may cause additional load on CPU and GPU, reducing game performance and negatively impacting player experience. Therefore, effects should be optimized and tested carefully.
Additionally, changes made to the client src must be compiled correctly. During the Metin2 compile process, errors might occur. In such cases, logs should be examined and issues resolved. Compilation tools may vary depending on the developer, but generally IDEs like Visual Studio are preferred.
Example Implementation: Adding a New Skill Effect
To add a new effect, first the relevant skill file must be opened. Usually this file is located under uiscript. Then, graphic files required for the effect are identified. These files may be in .gr2 format. Next, the timing and positioning of the effect are adjusted.
Using Python GUI, previews of these effects can be viewed. This allows testing how the effect will look and adjusting it until the desired appearance is achieved. This speeds up the development process and reduces error rates.
Conclusion
Effect systems are crucial for delivering advanced visuals and user experience in Metin2 private servers. Customized effects can be added via changes made to Client SRC[/SRC]. Careful execution during this process is important to maintain performance. When properly implemented, new effects can offer unforgettable experiences to players.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt