- Katılım
- 18 Eyl 2010
- Konular
- 340
- Mesajlar
- 1,023
- Çözüm
- 4
- Online süresi
- 2mo 27d
- Reaksiyon Skoru
- 1,444
- Altın Konu
- 4
- Başarım Puanı
- 277
- Yaş
- 39
- MmoLira
- 7,180
- DevLira
- 591
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!
Metin2’ye özgün bir “Item Yaşlanma + Repair” sistemi yaptık.
- Itemler kullanıldıkça yıpranıyor
- Repair yapılmazsa renk değiştiriyor (yeşil → sarı → kırmızı)
- Tamir edilmezse item yok oluyor
- Demirciye gidip bakım (repair) yaptırıyorsun
- Itemler geçmişini hafızada tutuyor (PK, boss, kullanım)
- PvP yaparsan item daha hızlı eskir
- Bazı itemler efsane oluyor, düşmüyor
- UI, ikonlar, kurulum ve fix’ler hazır
Özetle:
Kopya Metin2 değil, itemi olan değil itemine bakan kazanıyor.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
{
ITEM_REPAIR_MAX = 100,
};
class CItem
{
public:
int GetRepair() const { return m_iRepair; }
void SetRepair(int r) { m_iRepair = MINMAX(0, r, ITEM_REPAIR_MAX); }
int GetRepairCount() const { return m_iRepairCount; }
void IncreaseRepairCount() { ++m_iRepairCount; }
int GetMemoryPK() const { return m_iMemoryPK; }
void IncreaseMemoryPK() { ++m_iMemoryPK; }
bool IsLegendary() const { return m_bLegendary; }
void SetLegendary(bool b) { m_bLegendary = b; }
protected:
int m_iRepair;
int m_iRepairCount;
int m_iMemoryPK;
bool m_bLegendary;
};
[/CODE]
[CODE lang="cpp" title="char_battle.cpp"]void CHARACTER::OnKillRepair(LPITEM item, bool bPK)
{
if (!item || !item->IsEquipped())
return;
int loss = bPK ? 2 : 1;
if (IsDuel() || IsGuildWar())
loss /= 2;
item->SetRepair(item->GetRepair() - loss);
if (bPK)
item->IncreaseMemoryPK();
if (item->GetRepair() <= 0)
{
SendChatPacket(CHAT_TYPE_NOTICE, "Item dayanamadi ve parcalandi!");
ITEM_MANAGER::instance().DestroyItem(item);
}
}
[/CODE]
[CODE title="item.cpp"]void CItem::FinalBurst(LPCHARACTER owner)
{
if (!owner)
return;
owner->EffectPacket(SE_CRACK_EFFECT);
if (m_iMemoryPK > 50)
{
owner->Damage(owner, 500, DAMAGE_TYPE_MAGIC);
}
}
[/CODE]
[CODE title="Destroy öncesi:"]item->FinalBurst(item->GetOwner());
[/CODE]
[CODE title="repair_system.quest"]quest repair_system begin
state start begin
when 20016.chat."Item Tamiri (Repair)" begin
local item = pc.get_item_id()
if item == 0 then
say("Item secmelisin.")
return
end
if item.get_repair() <= 0 then
say("Bu item kurtarilamaz.")
return
end
local cost = item.get_level() * 100000
say("Tamir bedeli: "..cost.." Yang")
if pc.gold < cost then
say("Yeterli Yang yok.")
return
end
pc.change_gold(-cost)
item.set_repair(100)
item.add_repair_count()
say("Item tamir edildi.")
end
end
end
[/CODE]
[CODE title="uiToolTip.py"]repair = item.GetRepair()
if repair <= 30:
self.AppendTextLine("Repair: %d (KRITIK)" % repair, 0xffc0392b)
elif repair <= 70:
self.AppendTextLine("Repair: %d (YIPRANMIS)" % repair, 0xfff1c40f)
else:
self.AppendTextLine("Repair: %d (SAGLAM)" % repair, 0xff2ecc71)
[/CODE]
[CODE title="item.cpp"]void CItem::CheckLegendary()
{
if (m_iMemoryPK >= 100 && m_iRepairCount >= 10)
{
m_bLegendary = true;
SetAntiFlag(ITEM_ANTIFLAG_DROP);
SetAntiFlag(ITEM_ANTIFLAG_TRADE);
}
}
[/CODE]
[CODE title="TEST KOMUTU (GM)"]/repair_set 0
/repair_set 100
[/CODE]
[CODE title="repair_system.quest"]quest repair_system begin
state start begin
when 20016.chat."Item Tamiri (Repair)" begin
say_title("Demirci")
say("Tamir edilecek itemi takılı halde olmalı.")
-- Silah slotu (0) örnek, istersen zırh için 1 yaparsın
local wear_slot = 0
local item_vnum = pc.get_wear(wear_slot)
if item_vnum == 0 then
say("Üzerinde tamir edilecek item yok.")
return
end
local repair = item.get_repair()
if repair <= 0 then
say("Bu item artık kurtarılamaz.")
return
end
local cost = item.get_level() * 100000
say("Mevcut Repair: "..repair)
say("Tamir Bedeli: "..cost.." Yang")
local s = select("Tamir Et", "İptal")
if s == 2 then
return
end
if pc.gold < cost then
say("Yeterli Yang yok.")
return
end
pc.change_gold(-cost)
item.set_repair(100)
item.add_repair_count()
say("Item başarıyla tamir edildi.")
end
end
end
[/CODE]
Ekli dosyalar
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
Paylaşım için teşekkürler. Bu kısmı anlamadım
Quest aracılığıyla bir eşya seçmeden neden eşya seçili olup olmadığını kontrol ettirdiniz? pc.select_item() eksik.
when 20016.chat."Item Tamiri (Repair)" begin
local item = pc.get_item_id()
if item == 0 then
say("Item secmelisin.")
return
end
- Katılım
- 25 Eki 2023
- Konular
- 384
- Mesajlar
- 943
- Çözüm
- 18
- Online süresi
- 1mo 1d
- Reaksiyon Skoru
- 1,150
- Altın Konu
- 171
- Başarım Puanı
- 207
- MmoLira
- 2,154
- DevLira
- 12
Farklı ve kendinize özgü sıradışı bir sistem yapmışsınız. Teşekkür ederim paylaşım için.
- Katılım
- 2 Ara 2024
- Konular
- 186
- Mesajlar
- 1,981
- Çözüm
- 8
- Online süresi
- 5mo 13d
- Reaksiyon Skoru
- 1,495
- Altın Konu
- 1
- Başarım Puanı
- 206
- MmoLira
- 12,375
- DevLira
- 36
Ko daki rpr sistemimi bu
- Katılım
- 1 Tem 2019
- Konular
- 1,893
- Mesajlar
- 5,201
- Çözüm
- 134
- Online süresi
- 1mo 8d
- Reaksiyon Skoru
- 4,001
- Altın Konu
- 140
- Başarım Puanı
- 339
- MmoLira
- 39,500
- DevLira
- 150
PAYLAŞIM İÇİN TEŞEKKÜRLER ELİNE SAĞLIK .
- Katılım
- 29 Eyl 2009
- Konular
- 1,298
- Mesajlar
- 18,700
- Çözüm
- 203
- Online süresi
- 7mo 18h
- Reaksiyon Skoru
- 9,275
- Altın Konu
- 377
- Başarım Puanı
- 426
- Yaş
- 32
- MmoLira
- 51,333
- DevLira
- 74
Paylaşım için teşekkürler. Bu kısmı anlamadım
Quest aracılığıyla bir eşya seçmeden neden eşya seçili olup olmadığını kontrol ettirdiniz? pc.select_item() eksik.
when 20016.chat."Item Tamiri (Repair)" begin
local item = pc.get_item_id()
if item == 0 then
say("Item secmelisin.")
return
end
Quest aracılığıyla bir eşya seçmeden neden eşya seçili olup olmadığını kontrol ettirdiniz? pc.select_item() eksik.
when 20016.chat."Item Tamiri (Repair)" begin
local item = pc.get_item_id()
if item == 0 then
say("Item secmelisin.")
return
end
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 3
- Görüntüleme
- 696
- Cevaplar
- 3
- Görüntüleme
- 386
- Cevaplar
- 12
- Görüntüleme
- 571
- Cevaplar
- 8
- Görüntüleme
- 297
- Cevaplar
- 9
- Görüntüleme
- 434













