bikral 1
bikral
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bvural41 1
Bvural41
ShadowFon 1
ShadowFon
mavzermete 1
mavzermete
YazilimMühendisi 1
YazilimMühendisi
Fethi Polat 1
Fethi Polat
InfernoShade 1
InfernoShade
Hikaye Ekle

Rütbe Sistemi

  • Konuyu başlatan Konuyu başlatan kralcocuk
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 30
  • Görüntüleme Görüntüleme 7K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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!

Sorun forumda olmaları değil, forumun bu bölümü geliştiriciler için sonuçta. Eğer oyununu geliştirmek istiyorlarsa öğrenmek zorundalar, bunu ne zaman söylesem millet alınıyor ama bunda yanlış bir şey yok. Öğrenmenizi istiyorum bunun ne zararı olur ki kendinizi geliştirmiş olacaksınız :)

Admin - görevlilere not:

Bu çoklu alıntı (+) butonunda problem var. Alıntı yaptıktan sonra silmiyor, ön belleğe alıyor foruma ne zaman girip birine cevap verecek olsam önceki alıntıları da ekliyor mesaja. İlgilenilmesi gerekiyor.

Bu konuda sana katılıyorum. Forumdaki kullanıcıların büyük bir çoğunluğu bir şey eklemek ya da yapmak istedikleri zaman araştırmak yerine doğrudan birinden hazır almaya çalışıyor. Skype üzerinden yazanlar oluyor. Her şeyi söyleyemem araştırıp kendiniz öğrenmeniz gerekiyor dediğimde ego sahibi kendin bilmiş biri olarak görülüyorum. Bilgisiz server açmaktansa hiç açmayın daha iyi en azından bir hata aldığınızda hataya nasıl bakacağınızı, nereyi kontrol edeceğinizi bilirsiniz. Forumda binlerce soru-cevap konusu vardır ch düşüyor şu bozuk bu bozuk diye. Gel gör ki bir tanesinde görüyor muyuz acaba syserr'de bu çıkıyor, acaba bundan mı kaynaklanıyor diye. Tek yazılan şey bu "arkadaşlar serverımda ch düşüyor acil yardım lazımm!"

Bu konuda bilinçlenilmesi gerektiği kanaatindeyim.
 
Uzun zaman önce bitirdiğim rütbe sisteminin benzerini yapıp paylaşmışlar.
Madem paylaşıldı, anlatımı benden olsun.

Rütbe nedir diyenlere :



Başlamadan söyleyeyim, paylaşılan bu sistemin benim yaptığımla alakası yoktur, inc2 adlı serverdan çalınarak yapıldı. Zaten gördüğünüz gibi quest'e bağlı ilkel bir sistemdir. Yinede hiç yoktan iyidir, serverlara renk katmış olursunuz.
Sistem üzerinden sataşanlara not: Bendeki sistemi bilen herkes pack + db + client + game 4'lü kusursuz sistem olduğunu bilir. :smile:


Char.cpp açılır:
Arayın:

PHP:
addPacket.dwLevel

altına ekleyin

PHP:
addPacket.dwRutbe = GetRutbe();

Char.h açın

arayın
PHP:
POINT_RESIST_PENETRATE = 137
altına ekleyin

PHP:
    POINT_RUTBE,// 140

arayın:

PHP:
typedef struct character_point
orada
PHP:
    BYTE            level;
yazıyor altına ekleyin
PHP:
    BYTE            rutbe;

arayın
GetLevel

ekleyin
PHP:
        int                GetRutbe() const        { return m_points.rutbe;    }
        void            SetRutbe(BYTE rutbe)        { return m_points.rutbe = rutbe; }


Packet.h açın

arayın

PHP:
packet_char_additional_info
dwLevelin altına ekleyin

PHP:
    DWORD    dwRutbe;

arayın
PHP:
packet_update_char

dwLevelin altına ekleyin yine
PHP:
    DWORD    dwRutbe;

questlua_pc.cpp açın
arayın

PHP:
int pc_get_level

kodun bittiği yerden sonraya ekleyin


PHP:
int pc_set_rutbe(lua_State * L)
{
    if (!lua_isnumber(L, 1))
    {
        sys_err("invalid argument");
        return 0;
    }
    else
    {
            int rutbe = lua_tonumber(L, 1);
            LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr()  ;
            ch->PointChange(POINT_RUTBE, rutbe, false, true);
            ch->UpdatePacket();
            
            return 0;
            }
}

    int pc_get_rutbe(lua_State * L)
    {
        lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->GetRutbe());
        return 1;
    }


arayın

PHP:
            { "set_dx",                pc_set_dx    },

ekleyin
PHP:
            { "set_rutbe",                pc_set_rutbe    },
            { "get_rutbe",                pc_get_rutbe    },


questlua_quest.cpp açın
arayın

PHP:
namespace quest

ekleyin altına
PHP:
    int quest_set_rutbe(lua_State * L)
    {
        CQuestManager& q = CQuestManager::instance();
        if (lua_isstring(L, -1))
            q.GetCurrentPC()->SetCurrentQuestTitle(lua_tostring(L, -1));
            
        return 0;
    
    }
    
    int quest_set_another_rutbe(lua_State* L)
    {
        CQuestManager& q = CQuestManager::instance();
        
        if (lua_isstring(L,1) && lua_isstring(L, 2))
            q.GetCurrentPC()->SetQuestTitle(lua_tostring(L, 1), lua_tostring(L,2));

        return 0;
        
    }


aratın
PHP:
            { "set_counter_name",        quest_set_counter_name        },

ekleyin
PHP:
            { "set_title",                quest_set_rutbe                },
            { "set_title2",                quest_set_another_rutbe        },


questpc.cpp ve questpc.h dosyalarında eklenecek yerler verilmiş ama gerek yok bunlara zaten mainline ve mainline_rs kullanan herkeste ekli. Hata olan olursa eksikleri veririm.


Game build edebilirsiniz bir şey kalmadı.

Client source açın.

PythonTextTail.cpp açın

aratın:
PHP:
// Mark

ekleyin

PHP:
        CGraphicTextInstance * pRutbe = pTextTail->pRutbeTextInstance;
        if (pRutbe)
        {
            int iWidth, iHeight;
            pRutbe->GetTextSize(&iWidth, &iHeight);
            
            pRutbe->SetPosition(pTextTail->x + iWidth/2, pTextTail->y - 15.0f, pTextTail->z);
            pRutbe->Update();
        }


Şimdi
PHP:
//Mark

yerinden biraz aşağı inin
PHP:
int iImageHalfSize = pMa

göreceksiniz. altına şunu ekleyin

PHP:
        float rutbekontrol = pRutbe ? 15.0f : 0.0f


az daha altında şu ikisi var

PHP:
                pGuildNameInstance->SetPosition(pTextTail->x + iImageHalfSize, pTextTail->y - c_fyGuildNamePosition, pTextTail->z);
                pMarkInstance->SetPosition(pTextTail->x - iWidth/2 - iImageHalfSize, pTextTail->y - c_fyMarkPosition);

böyle değiştirin

PHP:
                pGuildNameInstance->SetPosition(pTextTail->x + iImageHalfSize, pTextTail->y - c_fyGuildNamePosition - rutbekontrol, pTextTail->z);
                pMarkInstance->SetPosition(pTextTail->x - iWidth/2 - iImageHalfSize, pTextTail->y - c_fyMarkPosition - rutbekontrol);


arayın
PHP:
void CPythonTextTail::Render()
az altında şunu bulun
PHP:
        pTextTail->pTextInstance->Render();

altına ekleyin
PHP:
        if (pTextTail->pRutbeTextInstance)
        {
            pTextTail->pRutbeTextInstance->Render();
        }


ara
PHP:
    pTextTail->pMarkInstance=NULL;

ekle

PHP:
    pTextTail->pRutbeTextInstance=NULL;

ara

PHP:
return pTextTail;

2 satır üstüne ekle (ALTINA DEĞİL ÜSTÜNE !)

PHP:
    pTextTail->pRutbeTextInstance = NULL;

arayın

PHP:
m_TextTailPool.Free(pTextTail);

yine 2 satır üstüne ekleyin


PHP:
    if (pTextTail->pRutbeTextInstance)
    {
        CGraphicTextInstance::Delete(pTextTail->pRutbeTextInstance);
        pTextTail->pRutbeTextInstance = NULL;
    }

arayın

PHP:
void CPythonTextTail::AttachTitle(DWORD dwVID, const char * c_szName, const D3DXCOLOR & c_rColor)

üstüne 2 satır boşluk bırakıp ekleyin (BLOĞUN İÇİNE DEĞİL BULDUĞUNUZ YAZIDAN YUKARIDA 2 SATIR BOŞLUK BIRAKIP)

PHP:
void CPythonTextTail::AttachRutbe(DWORD dwVID, const char * c_szText, const D3DXCOLOR & c_rColor)
{
    TTextTailMap::iterator itor = m_CharacterTextTailMap.find(dwVID);
    if (m_CharacterTextTailMap.end() == itor)
        return;

    TTextTail * pTextTail = itor->second;

    CGraphicTextInstance *& prRutbeTextInstance = pTextTail->pRutbeTextInstance;

    if (prRutbeTextInstance)
    {
        prRutbeTextInstance = CGraphicTextInstance::New();
        prRutbeTextInstance->SetTextPointer(ms_pFont);
        prRutbeTextInstance->SetOutline(true);
        
        prRutbeTextInstance->SetHorizonalAlign(CGraphicTextInstance::HORIZONTAL  _ALIGN_CENTER);
        prRutbeTextInstance->SetVerticalAlign(CGraphicTextInstance::VERTICAL_AL  IGN_BOTTOM);
    
        prRutbeTextInstance->SetValue(c_szText);
        prRutbeTextInstance->SetColor(c_rColor.r, c_rColor.g, c_rColor.b);
        prRutbeTextInstance->Update();
    }
}

void CPythonTextTail::DetachRutbe(DWORD dwVID)
{

    TTextTailMap::iterator itor = m_CharacterTextTailMap.find(dwVID);
    if (m_CharacterTextTailMap.end() == itor)
        return;

    TTextTail * pTextTail = itor->second;

    if (pTextTail->pRutbeTextInstance)
    {
        CGraphicTextInstance::Delete(pTextTail->pRutbeTextInstance);
        pTextTail->pRutbeTextInstance = NULL;
    }
}


ara
PHP:
const float c_fyMarkPosition

ekle

PHP:
BOOL bPKTitleEnable = TRUE;

Client build edebilirsiniz.

Questleri de dosya halinde ekleyeceğim, client ve game hata alanlar aşağıya yazsın çözeriz.

Gerekli questlib.lua ve quest

hani lan 0dan yapmıştın keko quest türkçe değil daha
 
hani lan 0dan yapmıştın keko quest türkçe değil daha


epvpden alıntı kardeş o değilde keko ne amk asşlkdjfasfjklasdşlfjkaşskldfjşalskfjşalskdfjşaskljf

:(

Okuduğunu anlamaktan aciz misin ? İnc2'den çalınma, ilkel çakma diyorum gözün mü kör ?

Benim packleri sitemden indirerek alakasız olduğunu göremeyecek kadar da saflaşmayın. Benim sistemim db-client-game ve pack içerir. Tüm bunlar arasında 1 satır bile queste ihtiyaç yok. Beyinsizliğin lüzumu yok.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst