Okçular Dibimde Sistemi

  • Konuyu açan Konuyu açan hasanmacit
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 18
  • Gösterim Gösterim 1K

hasanmacit

UsProject / discord: hasanmacit
Süper Moderatör
Geliştirici
Yardımsever Üye
Mesaj
4.672
Çözümler
195
Beğeni
4.456
Puan
1.850
Ticaret Puanı
6
Bir arkadaşımızın forumda bunu aradığını gördüm. Bizim forumda yokmuş. Bende dedim ki bizim forumda nasıl olamaz hemen açıyorum konusunu. Sistemin mantığı okçuları dibinize çekmektir. Ayrıca sadece okçular dibinde ile kalmıyor ve itemi kullandıktan sonra eğer karakterinizde okçular dibimde efekti varsa cesaret pelerini ile uyumlu olarak çalışıyor. Yapımında emeği geçen kişilere teşekkür eder konunun alıntı olduğunu dipnot olarak geçerim. Herkese iyi forumlar.
char_item.cpp:
Genişlet Daralt Kopyala
  /// Aratılır
case UNIQUE_ITEM_CAPE_OF_COURAGE:

///    Altına Eklenir
 
    case 72000:
                AttractRanger();
                break;

/// Aratılır

case UNIQUE_ITEM_CAPE_OF_COURAGE:
case UNIQUE_ITEM_CAPE_OF_COURAGE_ORIGINAL:
case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE:

/// Üstüne Eklenir

#if defined(ENABLE_ATTRACT_RANGER)
            case 72000:
            {
                if (FindAffect(AFFECT_CALL_ARCHER))
                {
                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BU_ETKI_DEVAM_EDIYOR"));
                    return false;
                }

                AddAffect(AFFECT_CALL_ARCHER, POINT_NONE, 0, AFF_NONE, item->GetValue(0), 0, true);
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Archers can now come to you."));

                item->SetCount(item->GetCount() - 1);
            }
            break;
#endif

///tekrardan aratılır

            case UNIQUE_ITEM_CAPE_OF_COURAGE:
            case UNIQUE_ITEM_CAPE_OF_COURAGE_ORIGINAL:
            case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE:
            {
                AggregateMonster();

                
///şu şekilde düzenlenir

            case UNIQUE_ITEM_CAPE_OF_COURAGE:
            case UNIQUE_ITEM_CAPE_OF_COURAGE_ORIGINAL:
            case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE:
            {
                AggregateMonster();

#if defined(ENABLE_ATTRACT_RANGER)
                if (FindAffect(AFFECT_CALL_ARCHER))
                    AttractRanger();
#endif

affect.h:
Genişlet Daralt Kopyala
///Aratılır

AFFECT_QUEST_START_IDX = 1000
    
///Üstüne Eklenir

#if defined(ENABLE_ATTRACT_RANGER)
    AFFECT_CALL_ARCHER                        = 757,
#endif

commondefines.h veya service.h:
Genişlet Daralt Kopyala
///Eklenir
#define ENABLE_ATTRACT_RANGER

InstanceBase.h:
Genişlet Daralt Kopyala
///Aratılır
NEW_AFFECT_QUEST_START_IDX                 = 1000,

///Üstüne Eklenir
#if defined(ENABLE_ATTRACT_RANGER)
            AFFECT_CALL_ARCHER                         = 757,
#endif

PythonCharacterModule.cpp:
Genişlet Daralt Kopyala
///En alta Eklenir
#if defined(ENABLE_ATTRACT_RANGER)
    PyModule_AddIntConstant(poModule, "AFFECT_CALL_ARCHER",                    CInstanceBase::AFFECT_CALL_ARCHER);
#endif

PythonApplicationModule.cpp:
Genişlet Daralt Kopyala
///En alta eklenir

#ifdef ENABLE_ATTRACT_RANGER
    PyModule_AddIntConstant(poModule, "ENABLE_ATTRACT_RANGER", true);
#else
    PyModule_AddIntConstant(poModule, "ENABLE_ATTRACT_RANGER", false);
#endif

Locale_inc.h:
Genişlet Daralt Kopyala
///eklenir
#define ENABLE_ATTRACT_RANGER

root/uiaffectshower.py:
Genişlet Daralt Kopyala
#arat
if app.ENABLE_DRAGON_SOUL_SYSTEM:
        AFFECT_DATA_DICT[chr.NEW_AFFECT_DRAGON_SOUL_DECK1]         = (localeInfo.TOOLTIP_DRAGON_SOUL_DECK1, "d:/ymir work/ui/dragonsoul/buff_ds_sky1.tga")
        AFFECT_DATA_DICT[chr.NEW_AFFECT_DRAGON_SOUL_DECK2]         = (localeInfo.TOOLTIP_DRAGON_SOUL_DECK2, "d:/ymir work/ui/dragonsoul/buff_ds_land1.tga")
        
#altına ekle
    if app.ENABLE_ATTRACT_RANGER:
        AFFECT_DATA_DICT[chr.AFFECT_CALL_ARCHER]                 = (localeInfo.TOOLTIP_AFFECT_CALL_ARCHER, "d:/ymir work/ui/skill/common/affect/call_archer.sub")

#buradaki call_archer.sub ismini değiştirin çünkü bu adda bir dosya yok bu yüzden hata verecektir. örnek teşkil etmesi için o şekilde verilmiştir.

locale_game.txt:
Genişlet Daralt Kopyala
///eklenir

TOOLTIP_AFFECT_CALL_ARCHER    Okçular Dibimde    SNA

item_proto:
Genişlet Daralt Kopyala
aşağıdaki kodda eşyanın value0 değerine verdiğiniz süre oyunun içinde bu efektin kaç saniye kalacağını belirler.
1 gün 86400 saniyedir
1 hafta 604800 saniyedir.

İtem Proto txt

72000    ¿ë±âÀÇ ¸ÁÅä    ITEM_USE    USE_SPECIAL    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_PKDROP | ANTI_MYSHOP    ITEM_STACKABLE | ITEM_IRREMOVABLE    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    60    20    0    0    0    0    0    0    0

İtem Names

72000    Okçular Dibimde

 
paylaşım için teşekkürler. böyle şeylerin item haline getirilmesi insanın aç gözlülüğünü ortaya çıkartabiliyor bazen nesne markette satmaya çalışanlar oluyor deli oluyorum öylelerine. Bence en iyisi mob protodan AttackRange 'i azaltmak.
 
paylaşım için teşekkürler. böyle şeylerin item haline getirilmesi insanın aç gözlülüğünü ortaya çıkartabiliyor bazen nesne markette satmaya çalışanlar oluyor deli oluyorum öylelerine. Bence en iyisi mob protodan AttackRange 'i azaltmak.
Aslında 1-99 oldschool tarzı için iyi bir fikir diğer türlü alt yapılarda evet mob protodan kısmaları daha iyi kolay yapılarda bu mantıksız
 
paylaşım için teşekkürler. böyle şeylerin item haline getirilmesi insanın aç gözlülüğünü ortaya çıkartabiliyor bazen nesne markette satmaya çalışanlar oluyor deli oluyorum öylelerine. Bence en iyisi mob protodan AttackRange 'i azaltmak.
bence en mantıklısı okçular uzaktan vursun adı üstünde okçu zaten yakında ne işi var :D
teşekkürler

varmısın yokmusun için bakabilirmisinz
bi araştırır yarın açarım duruma göre bulursam.
 
Cesaret Pelerininde FindAffect çalıştırmaya nasıl cesaret ediyorsunuz. Ben bunun değişkenli halini yaptım diğer forumda oradan onu alsaydın. Map'te sürekli Affect mi aratılır kafayı mı yediniz.
 
zaten konuyu aynı şekil aldım. sen o şekil paylaşmışsın.

rica ederim
O ilk paylaşan adamın findaffectli hali sonra cesaret pelerinine sürekli basılan bir item olduğunu düşündüğümüz için adam 1 kere cesaret pelerine basacağına 50 kere basıyo el alışkanlığından o nedenle sürekli mapte affect aratmak sunucu için iyi birşey değil o nedenle değişken haline aldım.
 
Biraz tembelliğe kaçılmış bir sistem açıkcası. Oyunun en orjinal duygularından birini yok etmekten başka bir şeye yarayacağını sanmıyorum.
Tabi kullanıp kullanmamak tercih meselesi.
Gerçek bir metin2 oyuncusu okçulardan kaçarken lag'a tutulup damage yağmuruyla ölen ve öldükten sonra bile ok yemeye devam edip küfürü basandır.
 
Biraz tembelliğe kaçılmış bir sistem açıkcası. Oyunun en orjinal duygularından birini yok etmekten başka bir şeye yarayacağını sanmıyorum.
Tabi kullanıp kullanmamak tercih meselesi.
Gerçek bir metin2 oyuncusu okçulardan kaçarken lag'a tutulup damage yağmuruyla ölen ve öldükten sonra bile ok yemeye devam edip küfürü basandır.
TR pvpleşirken bu sistemler çokta abes değil yani :)
 
TR pvpleşirken bu sistemler çokta abes değil yani :)
TR baştan sona çöp zaten, zaman kaybı. Ama okçu bir yaratığı bu şekilde özelleştirmek biraz mantığa da aykırı gibi geliyor bana göre. Tabi belirttiğim gibi, tercih meselesi. İhtiyaca göre isteyenler kullanabilirler.
 
Biraz tembelliğe kaçılmış bir sistem açıkcası. Oyunun en orjinal duygularından birini yok etmekten başka bir şeye yarayacağını sanmıyorum.
Tabi kullanıp kullanmamak tercih meselesi.
Gerçek bir metin2 oyuncusu okçulardan kaçarken lag'a tutulup damage yağmuruyla ölen ve öldükten sonra bile ok yemeye devam edip küfürü basandır.
katılıyorum. ben kullanmam şahsen delikanlı adam okçular uzaktaykende onları kesebilmeli...
 
1724771087161.webp
bu sistemi ekledimde böyle bi sysr aldım bilgin varmı reis iteme her sağ tıkladığımda bu sysrveriyor @hasanmacit
 
Son düzenleme:
Kod:
Genişlet Daralt Kopyala
#altına ekle
    if app.ENABLE_ATTRACT_RANGER:
        AFFECT_DATA_DICT[chr.AFFECT_CALL_ARCHER]                 = (localeInfo.TOOLTIP_AFFECT_CALL_ARCHER, "d:/ymir work/ui/skill/common/affect/call_archer.sub")
sorunu böyle çözdüm bunu kaldırdım
 
Son düzenleme:
Kod:
Genişlet Daralt Kopyala
#altına ekle
    if app.ENABLE_ATTRACT_RANGER:
        AFFECT_DATA_DICT[chr.AFFECT_CALL_ARCHER]                 = (localeInfo.TOOLTIP_AFFECT_CALL_ARCHER, "d:/ymir work/ui/skill/common/affect/call_archer.sub")
sorunu böyle çözdüm bunu kaldırdım
Kaldırdın ama itemi aktif ettiğinde affect gözükmücek dostum.
 
Geri
Üst