Bvural41 1
Bvural41
kralhakan2009 1
kralhakan2009
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Vahsi Uzman 1
Vahsi Uzman
Cannn6161 1
Cannn6161
B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Ünvan Parşomeni Sistemi

  • Konuyu başlatan Konuyu başlatan q1ock
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 6
  • Görüntüleme Görüntüleme 223

q1ock

Level 2
Üye
Katılım
29 Haz 2025
Konular
12
Mesajlar
53
Çözüm
2
Online süresi
12d 11h
Reaksiyon Skoru
11
Altın Konu
0
TM Yaşı
11 Ay 13 Gün
Başarım Puanı
36
MmoLira
2,135
DevLira
0
Ticaret - 0%
0   0   0

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!

Elinde bu sistemden olan veya hangi fileste olduğunu bilen varsa yardımcı olursa çok sevinirim.
 

Ekli dosyalar

  • 1754960154032.png
    1754960154032.png
    371.5 KB · Görüntüleme: 0
[CODE title="char.h"]#ifdef UNVAN_SYSTEM
private:
int m_titleID;

public:
void SetTitleID(int id);
int GetTitleID() const;

void ApplyTitleBonus();
void RemoveTitleBonus();
#endif[/CODE]

[CODE title="char.cpp içinde: Constructor içinde başlat:"]#ifdef UNVAN_SYSTEM
m_titleID = 0;
#en#endifODE]


Fonksiyon tanımları:

[CODE title="char.cpp"]#ifdef UNVAN_SYSTEM
void CHARACTER::SetTitleID(int id)
{
// Eski bonusları sil
RemoveTitleBonus();

m_titleID = id;

// Yeni bonusları uygula
ApplyTitleBonus();
}

int CHARACTER::GetTitleID() const
{
return m_titleID;
}

void CHARACTER::ApplyTitleBonus()
{
switch (m_titleID)
{
case 1: // Boss Avcısı
AddAffect(AFFECT_UNVAN, POINT_ATTBONUS_BOSS, 10, AFF_NONE, INFINITE_AFFECT_DURATION, 0, true);
break;
case 2: // General
PointChange(POINT_MAX_HP, 1000);
break;
case 3: // Gladyatör
AddAffect(AFFECT_UNVAN, POINT_CRITICAL_PCT, 10, AFF_NONE, INFINITE_AFFECT_DURATION, 0, true);
break;
case 4: // Şövalye
AddAffect(AFFECT_UNVAN, POINT_PENETRATE_PCT, 10, AFF_NONE, INFINITE_AFFECT_DURATION, 0, true);
break;
case 5: // Metin Avcısı
AddAffect(AFFECT_UNVAN, POINT_ATTBONUS_METIN, 10, AFF_NONE, INFINITE_AFFECT_DURATION, 0, true);
break;
case 6: // Patron Avcısı
AddAffect(AFFECT_UNVAN, POINT_ATTBONUS_MONSTER, 10, AFF_NONE, INFINITE_AFFECT_DURATION, 0, true);
break;
case 7: // Şampiyon
AddAffect(AFFECT_UNVAN, POINT_ATTBONUS_HUMAN, 10, AFF_NONE, INFINITE_AFFECT_DURATION, 0, true);
break;
}
}

void CHARACTER::RemoveTitleBonus()
{
RemoveAffect(AFFECT_UNVAN);
// HP gibi direkt verilen puanları sıfırlamak için login sırasında yeniden yükleme gerekir
}
#endif[/CODE]


item.cpp#endifiklikleri

// bull

void CItem::Use(LPCHARACTER ch, DWORD dwDestCell)

[CODE title="item.cpp"]#ifdef UNVAN_SYSTEM
// Ünvan parşömeni örneği
if (GetVnum() == 50000) // Boss Avcısı parşömeni
{
ch->ChatPacket(CHAT_TYPE_INFO, "Boss Avcısı unvanını kazandınız!");
ch->SetTitleID(1); // 1 = Boss Avcısı
ITEM_MANAGER::instance().RemoveItem(this); // Item sil

// Client'e paket gönder
TPacketGCTitleUpdate p;
p.header = HEADER_GC_TITLE_UPDATE;
p.dwVID = ch->GetVID();
p.titleID = ch->GetTitleID();
ch->GetDesc()->Packet(&p, sizeof(p));
return;
}
#endif[/CODE]

[CODE title="packet.h"]#ifdef#endif_SYSTEM
#define HEADER_GC_TITLE_UPDATE 210
#endif

s#defineacket_* tanımlarının olduğu #endifkle

#ifdef UNVAN_SYSTEM
typedef struct packet_gc_tit#ifdefate
{
BYTE header;
DWORD dwVID; // Karakterin VID'si
DWORD titleID; // Aktif unvan ID
} TPacketGCTitleUpdate;
#endif[/CODE]



[CODE title="packet_info.cpp Pa[HASH=3]#endif[/HASH]yutunu ve yönünü tanımla:"]#ifdef UNVAN_SYSTEM
Set(HEADER_GC_TITLE_UPDATE, sizeof(TPacketGCTitleUpdate), DESC_TYPE_CHAR, true);
#endif[/CODE]



client src

[CODE title="GameType.h#endifef UNVAN_SYSTEM
DWORD m_dwTitleID;
#endif[/CODE]

[CODE title="nstanceBase.h"]// CInsta#endife class’ına unvan alanı ekle:

#ifdef UNVAN_SYSTEM
private:
DWORD m_dwTitleID;
publ#ifdef void SetTitleID(DWORD id) { m_dwTitleID = id; }
DWORD GetTitleID() const { return m_dwTitleID; }
#endif[/CODE]

[CODE title="PythonNetworkStreamPhaseGame#endif// Paket handler ekle:

#ifdef UNVAN_SYSTEM
void CPythonNetworkStream::RecvTitle#ifdef()
{
TPacketGCTitleUpdate p;
if (!Recv(sizeof(p), &p))
return;

CPythonCharacterManager& rkChrMgr = CPythonCharacterManager::Instance();
CInstanceBase* pInstance = rkChrMgr.GetInstancePtr(p.dwVID);
if (pInstance)
pInstance->SetTitleID(p.titleID);
}
#endif[/CODE]

Ve paket register kısmına ekle:

Kod:
#ifdef UNVAN_SYSTEM
    Set(HEADER_GC_TITLE_UPDATE, CPythonNetworkStream::RecvTitleUpdate);
#endif

[CO#endifle="InstanceBase::RenderName Karakter ismini çizen fonksiyonun altına unvan yazısı ekle:"]#ifdef UNVAN_SYSTEM
if (m_dwTitleID > 0)
{
const char* szTitleName = GetTitleNameByID(m_dwTitleID); // Bunu senin tanımlaman lazım
if (szTitleName)
{
RenderText(szTitleName, x, y - 15, D3DXCOLOR(1.0f, 0.8f, 0.0f, 1.0f)); // Sarı renkte
}
}
#endif[/CODE]

[CODE title="GetTitleNameByID fonksiyonu basit bir[HASH=3]#endif[/HASH]h-case olabilir:"]#ifdef UNVAN_SYSTEM
const char* CInstanceBase::GetTitleNameByID(DWORD id)
{
switch (id)
{
case 1: return "Boss Avcısı";
case 2: return "General";
case 3: return "Gladyatör";
case 4: return "Şövalye";
case 5: return "Metin Avcısı";
case 6: return "Patron Avcısı";
case 7: return "Şampiyon";
default: return nullptr;
}
}
#endif[/CODE]


[CODE title="Paket Yapısı (Packet.h)"]#ifdef UNVAN_SYSTEM
t#endif struct packet_gc_title_update
{
BYTE header;
DWORD dwVID;
DWORD titleID;
} TPacketGCTitleUpdate;
#endif

// ve game src de verdiğiniz değeride eklemeyide unutmayın bizim verd#endif10 ordan alın entegre edin
[/CODE]


[CODE title="persomen1.quest"]quest unvan_bossavcisi begin
state start begin
when 50000.use begin
if pc.getqf("unvan") == 1 then
syschat("Zaten Boss Avcısı unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 1)
cmdchat("TITLE_UPDATE 1")
affect.add_collect(apply.STR, 5, 60*60*24*365*60) -- +5 STR kalıcı
pc.remove_item(50000, 1)
syschat("Tebrikler! Boss Avcısı unvanını kazandınız!")
end
end
end[/CODE]

[CODE title="persomen2.quest"]quest unvan_general begin
state start begin
when 50001.use begin
if pc.getqf("unvan") == 2 then
syschat("Zaten General unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 2)
cmdchat("TITLE_UPDATE 2")
affect.add_collect(apply.DEX, 5, 60*60*24*365*60) -- +5 DEX
pc.remove_item(50001, 1)
syschat("Tebrikler! General unvanını kazandınız!")
end
end
end[/CODE]

[CODE title="persomen3.quest"]quest unvan_gladyator begin
state start begin
when 50002.use begin
if pc.getqf("unvan") == 3 then
syschat("Zaten Gladyatör unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 3)
cmdchat("TITLE_UPDATE 3")
affect.add_collect(apply.HP, 500, 60*60*24*365*60) -- +500 HP
pc.remove_item(50002, 1)
syschat("Tebrikler! Gladyatör unvanını kazandınız!")
end
end
end[/CODE]

[CODE title="persomen4.quest"]quest unvan_sovalye begin
state start begin
when 50003.use begin
if pc.getqf("unvan") == 4 then
syschat("Zaten Şövalye unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 4)
cmdchat("TITLE_UPDATE 4")
affect.add_collect(apply.DEF_GRADE_BONUS, 50, 60*60*24*365*60) -- +50 Def
pc.remove_item(50003, 1)
syschat("Tebrikler! Şövalye unvanını kazandınız!")
end
end
end[/CODE]

[CODE title="persomen5.quest"]quest unvan_metinavcisi begin
state start begin
when 50004.use begin
if pc.getqf("unvan") == 5 then
syschat("Zaten Metin Avcısı unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 5)
cmdchat("TITLE_UPDATE 5")
affect.add_collect(apply.ATTBONUS_METIN, 10, 60*60*24*365*60) -- Metin taşı hasar +10%
pc.remove_item(50004, 1)
syschat("Tebrikler! Metin Avcısı unvanını kazandınız!")
end
end
end[/CODE]

[CODE title="persomen6.quest"]quest unvan_patronavcisi begin
state start begin
when 50005.use begin
if pc.getqf("unvan") == 6 then
syschat("Zaten Patron Avcısı unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 6)
cmdchat("TITLE_UPDATE 6")
affect.add_collect(apply.ATTBONUS_BOSS, 10, 60*60*24*365*60) -- Boss hasar +10%
pc.remove_item(50005, 1)
syschat("Tebrikler! Patron Avcısı unvanını kazandınız!")
end
end
end[/CODE]
[CODE title="persomen7.quest"]quest unvan_sampiyon begin
state start begin
when 50006.use begin
if pc.getqf("unvan") == 7 then
syschat("Zaten Şampiyon unvanına sahipsiniz!")
return
end
pc.setqf("unvan", 7)
cmdchat("TITLE_UPDATE 7")
affect.add_collect(apply.ATTBONUS_HUMAN, 5, 60*60*24*365*60) -- İnsan hasar +5%
pc.remove_item(50006, 1)
syschat("Tebrikler! Şampiyon unvanını kazandınız!")
end
end
end[/CODE]
 
Kanka hem SRC yi hem Questi yoracak bir sistem bu chatgpt değil çalışan bir sistem lazım bana. Teşekkür ederim yinede.
 
Kanka hem SRC yi hem Questi yoracak bir sistem bu chatgpt değil çalışan bir sistem lazım bana. Teşekkür ederim yinede.
çalışan sistem kardeşim sen herşeyi elle yazılıyormu sanıyorsun gördüğün herşey yapay zekadan çıkma zaten rica ederim. kod mantığı doğru ekelrsen çalışır
 

 

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

Geri
Üst