Okçular Dibimde Sistemi

hasanmacit

dc: hasanmacit
Site yetkilisi
Moderatör
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
3.027
Çözümler
97
Beğeni
2.278
Puan
1.840
Ticaret Puanı
2
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:
  /// 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:
///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:
///Eklenir
#define ENABLE_ATTRACT_RANGER

InstanceBase.h:
///Aratılır
NEW_AFFECT_QUEST_START_IDX                 = 1000,

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

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

PythonApplicationModule.cpp:
///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:
///eklenir
#define ENABLE_ATTRACT_RANGER

root/uiaffectshower.py:
#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:
///eklenir

TOOLTIP_AFFECT_CALL_ARCHER    Okçular Dibimde    SNA

item_proto:
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...
 
Geri
Üst