DarkPassage Adlı Kullanıcının Mesajlarını Göster
-
-
*Açıklama:
Sistem - Premium Oyuncu
Başka bir oyuncuyu bağışçı olarak belirleyebilir / PVP veya OX etkinliklerinde ödül verebilirsiniz.
Bir oyuncunun premium statüsü varsa, başının üstünde "PREMIUM" logosuyla GM benzeri bir efekt belirir.
Ayrıca, başının üstünde PREMIUM yazısı belirir.
Bu seviyenin süresini ayarlayabilirsiniz. -
-
-
Açıklama:
Oyuncu Engelleme Sistemi
Bir oyuncuyu hem mesajlaşma penceresinden hem de doğrudan hedef aldığında engelleme listesine ekleyebilirsin.
Bir oyuncuyu engellediğinde:
- Engellediğin oyuncu senin sohbet (chat) mesajlarını göremez.
- Engellediğin oyuncu sana özel mesaj (PM) yazdığında mesajını göremez.
- Engellediğin oyuncu sana herhangi bir istek / ticaret / ifade (emote) / vb. gönderemez.
- Sen de onun sohbet ve özel mesajlarını göremezsin.
- Oyunda o oyuncuyu şeffaf (görünmez gibi) şekilde görürsün.
-
Rün sistemi 5 ana ründen oluşur.
Tüm ana rünlerin 12 alt rünü vardır. (5 x 12 = 60 diğer puan)
Rünlerin maksimum seviyesi 2’dir.
Rün seviye atlama bedeli 12 rün puanıdır.
Rünleri istediğiniz zaman sıfırlayabilirsiniz.
En fazla 4 ana rün ve 2 yan rün aktif edebilirsiniz.
Rün puanı ile satın alınan eşyalar her hafta değişir. (Oyuncular için)
Rünlerin süresi yoktur.
Rün sayfaları League of Legends'taki gibi çalışır.
İçerik görüntülenemiyor çünkü bu içeriği görüntüleme yetkiniz yok. -
-
-
-
-
*Açıklama:
Tam Donanım Sistemini Gör - Mükemmel işlevsel! (TAM Silah Sistemi)
Şahsen tarafımdan test edildi!
Ne işe yarar? Sunucunuza, oyuncuların/Personel üyelerinin başka bir oyuncunun tam donanımını görebileceği bir özellik ekleyin.
Uitarget çubuğunda, bir oyuncunun üzerinde hangi eşyaların olduğunu görmek için basabileceğiniz yeni bir "Donanım" düğmesi ekleyeceksiniz.
Hem donanım hem de kostümler için çalışır.
Evcil hayvan/binek/atkı/silah görünümü/aura/yüzükler/vb. için uyarlanabilir.Not! Arşivdeki her dosyayı açın, her dosyada ne yapmanız gerektiğini ve nasıl yapmanız gerektiğini açıklayan önemli yorumlar vardır. Ayrıca bu sistemi genişletmenizde size rehberlik eder. Dikkatlice okuyun, basit!
-
-
Bugün Metin2 Pack dosyaları hakkında bir bilgilendirme paylaşacağım.
( Locale / Map / Root / İcon )LOCALE
İTEM PROTO , MOB PROTO , MOB NAMES , İTEM NAMES , LOCALE ( GAME , İNTERFACE , CUSTOM VB DOSYALARI İÇERİR )
İTEM PROTO İLE DÜZENLEYECEBİLECEKLERİNİZ ( GENEL DÜZENLEMELERİNİZİ EXEL İLE YAPMANIZI ÖNERİRİM )
İTEMLERİN SALDIRI DEĞERLERİ ( BÜYÜLÜ , NORMAL SİLAHIN ANA ÖZELLİKLERİ )
VERDİĞİ ÖZELLİKLERİ ( METİNLERE KARŞI +50 , SALDIRI +20 GİBİ )
ANTI_FLAG - İtemin hangi karakterlerin giyebileceği
İTEMLERE SEVİYE KOYMA - SEVİYE BELİRLEME
BASILAN TAŞ SAYISI VB
MARKETTE SATIŞ VE ALIŞ FİYATI
İTEM NE OLDUĞU ( ZIRH , SİLAH , KOLYE VEYA BİR İTEM )
İTEMİN STOKLAMA , YERE ATMA , SİLME , TİCARET VB ENGELLERİ KOYABİLMEITEM_WEAPON bize eşyanın silah olduğunu söyler WEAPON_SWORD bize eşyanın kılıç olduğunu söyler WEAPON_DAGGER bize eşyanın hançer olduğunu söylüyor WEAPON_BOW bize eşyanın yay olduğunu söyler WEAPON_TWO_HANDED bize eşyanın çift el olduğunu söyler WEAPON_BELL bize eşyanın çan olduğunu söyler WEAPON_FAN bize eşyanın yelpaze olduğunu söyler WEAPON_MOUNT_SPEAR bize eşyanın tek elle kullanılan bir mızrak olduğunu söylüyor, muhtemelen gm itemi ITEM_TUNABLE bize silahın etkilerini iyileştirebileceğini söylüyor ANTI_MUDANG Şamanlar Giyemez ANTI_ASSASSIN Ninjalar Giyemez ANTI_MUSA Savaşçılar Giyemez ANTI_SURA Suralar Giyemez ANTI_WOLFMAN Lycanlar Giyemez WEAR_WEAPON Silah Yuvasına Giyilir LIMIT_NONE Nesne kısıtlaması yok ITEM_STACKABLE İtem üst üste koyulabilir ITEM_QUEST Quest nesnesi, quest tabanlı çalışmakta ANTI_DROP Yere Atılmaz ANTI_GIVE Ticarete koyulmaz ANTI_MYSHOP Offline Shop , Pazara koyulmaz ITEM_ARMOR bize eşyanın zırh olduğunu söyler ARMOR_BODY bize zırhın bir vücut takımı olduğunu söyler WEAR_BODY bize zırh yuvasında takmanız gerektiğini söylüyor ARMOR_HEAD bize nesnenin bir kask olduğunu söyler WEAR_HEAD bize kask yuvasında takmanız gerektiğini söylüyor ARMOR_EAR bize nesnenin bir küpe olduğunu söylüyor WEAR_EAR bize küpe yuvasında takmanız gerektiğini söylüyor ARMOR_NECK bize nesnenin bir kolye olduğunu söylüyor WEAR_NECK bize kolye yuvasında takmanız gerektiğini söylüyor ITEM_BELT bize nesnenin bir kemer olduğunu söyler ITEM_USE bu nesne kullanılabilir ve kullanıldıktan sonra kaybolacaktır USE_PUT_INTO_BELT_SOCKET bu nesne kemere yuva takmak için kullanılabilir USE_TALİSMAN bu eşya tılsım olarak kullanılacak USE_DETACHMENT Taşları çıkartmaya yarar USE_POTION bu nesne bir iksir ITEM_SLOW_QUERY bu nesne sorguya normalden daha yavaş giriş yapacak USE_ABILITY_UP bu nesne yetenekleri yükseltir ITEM_CAMPFIRE bu nesne kamp ateşi çağırır USE_SPECİAL bu eşya source yoluyla veya quest olarak kullanılacak ITEM_RESOURCE bu nesne diğer nesnelerin sonucu olabilir. ( içinden çıkma ) RESOURCE_FISHBONE Bu eşyayı balıkları öldürdükten sonra elde edebilirsiniz. USE_BAIT Bu nesneyi yem olarak kullanabilirsiniz ITEM_FISH bu bir balık FISH_ALIVE bu canlı bir balık FISH_DEAD bu ölü bir balık USE_POTION_NODELAY Bu nesne herhangi bir gecikme veya duraklama olmadan kullanılabilir USE_CLEAR tüm geçici etkileri temizler USE_INVISIBILITY seni birkaç saniyeliğine görünmez yapar ( beyaz bayrak ) SPECİAL_MAP bu öğeyi yalnızca bazı haritalarda kullanabilirsiniz ITEM_SPACİAL bu nesne source aracılığıyla tanımlanacak RESOURCE_WATERSTONEPIECE bu eşya taşların yok edilmesinin sonucudur. RESOURCE_WATERSTONE İstiridye yok edilmesi sonucudur. ITEM_RESOURCE +basma nesnesidir RESOURCE_WHITE_PEARL bu eşya istiridyeden düşürülebilir RESOURCE_BLUE_PEARL bu eşya istiridyeden düşürülebilir RESOURCE_BLOOD_PEARL bu eşya istiridyeden düşürülebilir ITEM_METIN bu nesne bir Taş ( Kavrama Taşı ... ) METIN_NORMAL bu taşın özel bir etkisi yok ( Taşlarda kullanılır ) ITEM_PICK bu eşya bir kazma MATERIAL_LEATHER + Basma itemleri ITEM_GIFTBOX bu bir sandık USE_EFFECT bu nesne bir efekt etkinleştirecek LOG bu nesne loglara kaydedilecek USE_CLEAN_SOCKET taş parçalarını kaldırır USE_CHANGE_ATTRIBUTE Efsun değiştirme USE_ADD_ATTRIBUTE Efsun ekleme WEAR_SHIELD kalkan yuvasına takılabilir ITEM_COSTUME bu nesne bir kostüm COSTUME_BODY bu nesne kostüm zırh yuvasına takılır ANTI_FEMALE Kadın karakterler giyemez ANTI_MALE Erkek karakterler giyemez COSTUME_HAIR bu nesne kostüm başlığıdır REAL_TIME bu nesne, çevrimdışıyken bile kalan süreyi kullanmaya devam eder. ITEM_LOTTERY bu nesne piyangoda kullanılır ITEM_TREASURE_BOX bu bir hazine kutusu ITEM_SKILLBOOK bu eşya bir beceri kitabı ITEM_POLYMORPH bu eşya dönüşüm küresi USE_PUT_INTO_ACCESSORY_SOCKET bu nesne item soketlerinde kullanılır ( Cevherler ) USE_ADD_ACCESSORY_SOCKET bu nesne iteme soket açar ( Elmas ) ITEM_BLEND bu nesne bir karışım iksiridir ( Şebnem ) ITEM_SKILLFORGET bu eşya yetenek puanlarını unutmak ve onları sıfırlamak için kullanılır
İTEM NAMES
OYUNDAKİ İTEMLERİN İSİMLERİNİ İÇEREN DOSYA
Örnek : Kılıç +9 / Ninja Zırhı +8 +9 vb
MOB PROTO İLE DÜZENLEYECEBİLECEKLERİNİZ ( GENEL DÜZENLEMELERİNİZİ EXEL İLE YAPMANIZI ÖNERİRİM )
SLOTLARIN AGRESİF YAPMAK
VERDİĞİ MİN VE MAX GOLD MİKTARI AYARLAMAK
MOBLARIN ( STR , DEX , İNT ) SALDIRI , DEFANS DEĞERLERİNİ AYARLAMAK
MOBLARIN MAX VE MİN VERDİĞİ DAMAGE AYARLARI
MOBLARIN EXP AYARLARI
MOBLARIN HP ( CAN ) AYARLARI
MOBLARIN ATACK RANGE AYARLARI
MOB NAMES
OYUNDAKİ MOBLARIN İSİMLERİNİ İÇEREN DOSYA
İTEM DESC
İTEMLERİN AÇIKLAMALARINI İÇEREN DOSYA
LOCALE STRİNG
ŞU ŞEKİLDE AÇIKLAYAYIM DİĞER KULLANICILAR ARARKEN DAHA KOLAY BULMASI İÇİN
ÖRNEĞİN ;
BALIK TUTAMAZSIN! , Öncelikle Olta takmalısın , Senden 30 seviye yüksek veya düşük biriyle grup olamazsın , Bu işlemi yapmak için pencereleri kapatmalısın.
Kullanılan nesneyi seçemezsin. , Eşya kazanımı aktif edildi.
GİBİ UYALARI ALDIĞIMIZ BÖLÜMÜ İÇERİR.
SKİL DESC
SKİL AÇIKLAMALARI İÇEREN DOSYADIR.İTEM LİST
TGA DOSYALARI , GR2 DOSYALARINI ÇEKTİRDİĞİMİZ BÖLÜM.SHİNİNG TABLE
EFFECTLERİMİZ ÇEKTİRDİĞİMİZ DOSYALARI İÇERİR.MSM DOSYASI
SHAPEDATA , HAİRDATA ( SAÇ , ZIRH , SİLAH GİBİ KOSTÜMLERİN ÇEKİLDİĞİ DDS DOSYALARINI İÇERİR )
-----------
*** LOGİN , LOADİNG EKRANI VB LOCALE BÖLÜMÜNDEDİR.
Locale dosyasını açalım. Açtıktan sonra değiştirmek istediğiniz loading veya login bulup değiştirin
MAP BÖLÜMÜ
Oyundaki bütün maplari içeren bölümdür.
MAVİ BAYRAK , KIRMIZI , BAYRAK , SÜRGÜN MAĞARASI , VADİ , ÇÖL VB TÜM MAPLARI İÇEREN DOSYADIR.
**** NPC SABİTLEME , METİN TAŞI SABİTLEME , MOB SABİTLEME VB İŞLEMLERİNİZİ
usr/game/share_data/locale/turkey/map ( Dosyaya göre ufakta olsa değişebilir )
MAP KLASÖRÜNDEKİ AYARLAMALARINIZI FİLEZİLLA , WİNSCP ÜZERİNDEN YAPMANIZ GEREKMEKTEDİR.
ROOT DOSYASI BÖLÜMÜ
atlasinfo.txt => Map dosyqlarının bilgileri.
colorInfo.py => Oyunda kullanılan renklerin tutulduğu yer.
consoleModule.py => Debug console
constInfo.py => Global değişkenlerin bulunduğu yer.
debugInfo.py => Clientin derlenen debug/release bilgilerini alır.
dragonSoulRefineSettings.py => Simya taşlarının geliştirme ayarlarının tutulduğu kısım.
emotion.py => Oyundaki duyguların bulunduğu.
exception.py => Hata yazdırma.
game.py => Tüm py dosyalarının bağlantı olduğu kısım diyebiliriz. Oyunun bulunduğu ana dosya.
interfaceModule.py => Pencerelerin verileri burada tutulur.
introCreate.py => Karakter oluşturma ekranı.
introEmpire.py => Krallık seçme ekranı.
introLoading.py => Giriş yaparken veya harita değiştirirken gelen yükleme ekranı.
introLogin.py => Oyunu açtığımızda gelen server seçme ve giriş yapma paneli ekranı.
introLogo.py => Orijinalde oyuna girişte oynatılan videoların ekranı.
introSelect.py => Varolan karakterlerin seçim ekranı.
localeInfo.py => Dil dosyalarına erişim için gerekli.
mouseModule.py => Fare modülleri.
musicInfo.py => Müzik bilgileri.
networkModule.py => Oyuna giriş yaparken seçtiğiniz ch, server ve karakter bilgilerini tutar.
npclist.txt => Mob, npc gibi karakterlerin modelleme, animasyon dosyalarının bulunduğu klasörler belirtilir.
playerSettingModule.py => Karakterlerin yetenek, animasyon gibi bilgilerinin tutulduğu dosya.
prototype.py => Uygulama başlatma.
serverCommandParser.py => Bazı komutlar ile clientte yapılacak değişiklikler. Örnek: xmas_snow
serverInfo.py => Server bilgilerinin bulunduğu dosya.
stringCommander.py => Bilinmiyor.
system.py => Sistem için gerekli dosyalar. Python yükleme vs.
ui.py => Pencereler ve pencerelerde bulunan buton gibi elemanların oluşturulduğu dosya. Uiscript içinde yazılan verilerde burada belirtilen yönergelere göre işleniyor.
uiAcce.py => ui.py ile benzer sadece bu dosya kuşak sistemiyle gelmiş.
uiAffectShower.py => Sol üst tarafta karakterde bulunan efektleri gösteren dosya. (yang oto toplama, sevgi puanı vs.)
uiAttachMetin.py => İtemlere metin taşları (örn: hız taşı) eklerken çıkan pencere.
uiAuction.py => Bilinmiyor.
uiAutoBan.py => Bilinmiyor.
uiCandidate.py => Bilinmiyor.
uiCharacter.py => Oyundayken N tuşuna bastığınızda gelen karakter penceresi.
uiCharacterDetails.py => Official bonus gösterme sistemi ile gelen pencere.
uiChat.py => Ana chat penceresi.
uiCommon.py => Ufak bilgi penceresi.
uiCube.py => İksir ve kuşak oluştururken gelen pencere.
uiDragonSoul.py => Simya penceresi.
uiEquipmentDialog.py => Ekipmanların bulunduğu pencere
uiEx.py => Extra ui.
uiExchange.py => Oyuncu ile yapılan ticaret penceresi.
uiGameButton.py => Oyun butonları.
uiGameOption.py => Oyun Seçenekleri penceresi.
uiGuild.py => Lonca penceresi.
uiHelp.py => Yardım penceresi.
uiInventory.py => Envanter penceresi. (I)
uiMapNameShower.py => Bir yere ışınlandığınızda ana ekranda haritanın ismi.
uiMessenger.py => Arkadaşlar listesinin olduğu pencere.
uiMinimap.py => Sağ üstte bulunan harita.
uiOption.py => Sistem seçenekleri (bu dosya kullanılmıyor.)
uiParty.py => Oyuncularla grup oluşturduğunuzda sol tarafta grup üyeleri listesinin bulunduğu pencere.
uiPhaseCurtain.py => Bilinmiyor.
uiPickMoney.py => Envanterdeki yangları bölerken gelen pencere.
uiPlayerGauge.py => Karakterin can, sp gibi değerlerini gösteren çubuk.
uiPointReset.py => Bilinmiyor.
uiPrivateShopBuilder.py => Pazar kurarken itemleri eklediğimiz pencere.
uiQuest.py => Görevlere tıkladığınızda gelen pencere.
uiRefine.py => İtemlere +basarken gelen pencere.
uiRestart.py => Bilinmiyor.
uiSafebox.py => Hesap deposu
uiScriptLocale.py => Uiscript dosyalarında kullanılan dil işlemleri için.
uiSelectItem.py => Bilinmiyor.
uiSelectMusic.py => Sistem Seçeneklerinde müzik değiştirirken gelen pencere.
uiShop.py => NPC ve pazarlarda alışveriş yaparken gelen pencere.
uiSystem.py => ESC tuşuna bastığınızda gelen ayarlar penceresi.
uiSystemOption.py => Sistem seçenekleri.
uiTarget.py => Seçtiğiniz varlıklarda üst kısımda gözüken bilgi penceresi.
uiTaskbar.py => Alt kısımda hp,sp, ext, yetenek, envanter butonlarının olduğu yer.
uiTip.py => Bilgilendirme penceresi.
uiTooltip.py => Birşeylerin üzerine geldiğinizde otomatik açılan pencere. (Örn: İtem efsunlarının yazıldığı yer.)
uiUploadMark.py => Lonca resmi yüklerken resimleri seçtiğimiz pencere.
uiWeb.py => Nesne market tuşuna tıkladığınızda bu dosya çalışır.
uiWhisper.py => Fısıltı sohbeti penceresi.
utils.py => Bilinmiyor.
assassin_m.msm => Ninja erkek zırh, saç, kostüm vs. modellerinin isimleri yazar.
assassin_w.msm => Ninja kız zırh, saç, kostüm vs. modellerinin isimleri yazar.
shaman_m.msm => Şaman erkek zırh, saç, kostüm vs. modellerinin isimleri yazar.
shaman_w.msm => Şaman kız zırh, saç, kostüm vs. modellerinin isimleri yazar.
sura_m.msm => Sura erkek zırh, saç, kostüm vs. modellerinin isimleri yazar.
sura_w.msm => Sura kız zırh, saç, kostüm vs. modellerinin isimleri yazar.
warrior_m.msm => Savaşçı erkek zırh, saç, kostüm vs. modellerinin isimleri yazar.
warrior_w.msm => Savaşçı kız zırh, saç, kostüm vs. modellerinin isimleri yazar.
wolfman_m.msm => Wolfman kız zırh, saç, kostüm vs. modellerinin isimleri yazar.İCON BÖLÜMÜ
Oyundaki bütün itemlerimizin ( .tga ) bulunduğu bölümdür.
Silah , zırh , kask , görev kitabı vb oyunda görünen bütün iconların bulunduğu dosyadır. -
-
Not1: Sistem çalışıyor ama sürekli moblara takılıp duruyor o yüzden kullanacaksanız mobların içinden geçmeyi aktif hale getirin.
Not2: Şuan ki halinde her şeye saldırıyor o yüzden kullanacaksanız ayrı bir metin map ı oluşturmanız daha sağlıklı olur ya da PythonCharacterManager.cpp dosyası içinden neye saldırması gerektiğini ayarlayınSorun yaşarsanız
Not:Aşağıdaki hatayı alıyorsanız bunu yapın.
syserr.txt:
ui.py:
Python
Daha Çok Göster#Arat; elif Type == "bar": parent.Children[Index] = Bar() parent.Children[Index].SetParent(parent) self.LoadElementBar(parent.Children[Index], ElementValue, parent) #Üstüne ekle; elif Type == "checkbox": parent.Children[Index] = CheckBox() parent.Children[Index].SetParent(parent) self.LoadElementCheckBox(parent.Children[Index], ElementValue, parent) #Arat; def LoadDefaultData(self, window, value, parentWindow): #Üstüne ekle; def LoadElementCheckBox(self, window, value, parentWindow): if True == value.has_key("text"): window.SetTextInfo(value["text"]) self.LoadDefaultData(window, value, parentWindow) return True #En sona ekle; class CheckBox(Window): def __init__(self): Window.__init__(self) self.backgroundImage = None self.checkImage = None self.eventFunc = { "ON_CHECK" : None, "ON_UNCKECK" : None, } self.eventArgs = { "ON_CHECK" : None, "ON_UNCKECK" : None, } self.CreateElements() def __del__(self): Window.__del__(self) self.backgroundImage = None self.checkImage = None self.eventFunc = { "ON_CHECK" : None, "ON_UNCKECK" : None, } self.eventArgs = { "ON_CHECK" : None, "ON_UNCKECK" : None, } def CreateElements(self): self.backgroundImage = ExpandedImageBox() self.backgroundImage.SetParent(self) self.backgroundImage.AddFlag("not_pick") self.backgroundImage.LoadImage("d:/ymir work/ui/game/refine/checkbox.tga") self.backgroundImage.Show() self.checkImage = ExpandedImageBox() self.checkImage.SetParent(self) self.checkImage.AddFlag("not_pick") self.checkImage.SetPosition(0, 0) self.checkImage.LoadImage("d:/ymir work/ui/game/refine/checked.tga") self.checkImage.Hide() self.textInfo = TextLine() self.textInfo.SetParent(self) self.textInfo.SetPosition(20, -2) self.textInfo.Show() self.SetSize(self.backgroundImage.GetWidth() + self.textInfo.GetTextSize()[0], self.backgroundImage.GetHeight() + self.textInfo.GetTextSize()[1]) def SetTextInfo(self, info): if self.textInfo: self.textInfo.SetText(info) self.SetSize(self.backgroundImage.GetWidth() + self.textInfo.GetTextSize()[0], self.backgroundImage.GetHeight() + self.textInfo.GetTextSize()[1]) def SetCheckStatus(self, flag): if flag: self.checkImage.Show() else: self.checkImage.Hide() def GetCheckStatus(self): if self.checkImage: return self.checkImage.IsShow() return False def SetEvent(self, func, *args) : result = self.eventFunc.has_key(args[0]) if result : self.eventFunc[args[0]] = func self.eventArgs[args[0]] = args else : print "[ERROR] ui.py SetEvent, Can`t Find has_key : %s" % args[0] def SetToggleUpEvent(self, event, *args): self.eventFunc["ON_UNCKECK"] = event self.eventArgs["ON_UNCKECK"] = args def SetToggleDownEvent(self, event, *args): self.eventFunc["ON_CHECK"] = event self.eventArgs["ON_CHECK"] = args def OnMouseLeftButtonUp(self): if self.checkImage: if self.checkImage.IsShow(): self.checkImage.Hide() if self.eventFunc["ON_UNCKECK"]: apply(self.eventFunc["ON_UNCKECK"], self.eventArgs["ON_UNCKECK"]) else: self.checkImage.Show() if self.eventFunc["ON_CHECK"]: apply(self.eventFunc["ON_CHECK"], self.eventArgs["ON_CHECK"])
-
Game Source;
Game;char_item.cpp:
Kod
Daha Çok Göster//Arat; else if (item->GetVnum() == 76014) { int aiChangeProb[ITEM_ATTRIBUTE_MAX_LEVEL] = { 0, 10, 50, 39, 1 }; item2->ChangeAttribute(aiChangeProb); } //Altına ekle; else if (item->GetVnum() == 72350) { if (item2->GetType() != ITEM_WEAPON && item2->GetType() != ITEM_ARMOR) { ChatPacket(CHAT_TYPE_INFO, "Bu nesneyi sadece silahlar ve iç itemler üzerinde kullanabilirsin !"); return false; } if (item->GetAttributeType(0) == 0) { for (int i = 0; i < 5; ++i) { item->SetForceAttribute(i, item2->GetAttributeType(i), item2->GetAttributeValue(i)); } item->SetForceAttribute(5,0,item2->GetType()); item->SetForceAttribute(6,0,item2->GetWearFlag()); item2->ChangeAttribute(); ChatPacket(CHAT_TYPE_INFO, "Bonuslar başarıyla %s isimli eşyandan emildi.",item2->GetName()); } else { auto itemtype = item->GetAttributeValue(5); if ((item2->GetType() == itemtype) && (itemtype == ITEM_WEAPON)) { if (item->GetAttributeType(0) == 72 || item->GetAttributeType(0) == 71) { if (item2->GetAttributeType(0) != 72 && item2->GetAttributeType(0) != 71) { ChatPacket(CHAT_TYPE_INFO, "Bu nesneyi sadece ortalama ve/veya beceri hasarı gelebilen esyalarda kullanabilirsin !"); return false; } } else { if (item2->GetAttributeType(0) == 72 || item2->GetAttributeType(0) == 71) { ChatPacket(CHAT_TYPE_INFO, "Bu nesneyi ortalama ve/veya beceri hasarı gelebilen esyalarda kullanamazsın !"); return false; } } } else { auto itemwearflag = item->GetAttributeValue(6); if (itemwearflag != item2->GetWearFlag()) { ChatPacket(CHAT_TYPE_INFO, "Bonusları emilen eşya ile aktarmak istediğin eşyanın türü uyumlu değil!"); return false; } } for (int i = 0; i < 5; ++i) { item2->SetForceAttribute(i, item->GetAttributeType(i), item->GetAttributeValue(i)); } ChatPacket(CHAT_TYPE_INFO, "Bonuslar başarıyla %s isimli eşyana aktarıldı.",item2->GetName()); item->SetCount(item->GetCount() - 1); } break; }
Pack;
Root;uitooltip.py:
Kod
Daha Çok Göster#Arat ### Weapon ### if item.ITEM_TYPE_WEAPON == itemType: #Üstüne ekle; if 72350 == itemVnum: itemwearflag = attrSlot[6][1] if itemwearflag > 0: wearNames = "" if itemwearflag == 1: wearNames = "Zırh" elif itemwearflag == 2: wearNames = "Kask" elif itemwearflag == 4: wearNames = "Ayakkabı" elif itemwearflag == 8: wearNames = "Bilezik" elif itemwearflag == 16: wearNames = "Silah" elif itemwearflag == 32: wearNames = "Kolye" elif itemwearflag == 64: wearNames = "Küpe" elif itemwearflag == 256: wearNames = "Kalkan" self.AppendTextLine(wearNames, self.NEED_SKILL_POINT_COLOR) self.AppendSpace(3) self.__AppendAffectInformation() self.__AppendAttributeInformation(attrSlot) else: self.AppendTextLine("[BOŞ]", self.NEGATIVE_COLOR)
Locale;item_list.txt:
Proto;item_names.txt:
item_proto.txt:
-
-
fixlemek için uygulayınız.
uiinventory.py:
Kod
Daha Çok Göster#Arat; ITEM_MALL_BUTTON_ENABLE = True #Altına ekle; ENABLE_SELF_STACK_SCROLLS = True #Arat; elif item.IsRefineScroll(srcItemVID): self.RefineItem(srcItemSlotPos, dstItemSlotPos) self.wndItem.SetUseMode(False) #Değiştir; elif item.IsRefineScroll(srcItemVID): if ENABLE_SELF_STACK_SCROLLS and player.GetItemIndex(srcItemSlotPos) == player.GetItemIndex(dstItemSlotPos): self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos,0) else: self.RefineItem(srcItemSlotPos, dstItemSlotPos) self.wndItem.SetUseMode(False) #Arat; elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE: self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) #Altına ekle; elif ENABLE_SELF_STACK_SCROLLS and srcItemVID in (71052,71051,71084,71085): self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos) #Arat;(2 tane var ikisinede ekle) elif (player.GetItemFlags(srcSlotPos) & ITEM_FLAG_APPLICABLE) == ITEM_FLAG_APPLICABLE: return True #Altına ekle;(2 tane var ikisinede ekle) elif ENABLE_SELF_STACK_SCROLLS and srcItemVNum in (71052,71051,71084,71085): return True #Arat: if item.IsRefineScroll(srcItemVNum): if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos): return True #Değiştir; if item.IsRefineScroll(srcItemVNum): if player.REFINE_OK == player.CanRefine(srcItemVNum, dstSlotPos): return True elif ENABLE_SELF_STACK_SCROLLS and player.GetItemIndex(dstSlotPos) == srcItemVNum: return True #Arat: def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos): # °³ÀλóÁ¡ ¿°í ÀÖ´Â µ¿¾È ¾ÆÀÌÅÛ »ç¿ë ¹æÁö if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP) return net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos) #Değiştir; def __SendUseItemToItemPacket(self, srcSlotPos, dstSlotPos): if uiPrivateShopBuilder.IsBuildingPrivateShop(): chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.USE_ITEM_FAILURE_PRIVATE_SHOP) return dstItemVNum = player.GetItemIndex(dstSlotPos) srcItemVNum = player.GetItemIndex(srcSlotPos) if ENABLE_SELF_STACK_SCROLLS and dstItemVNum == srcItemVNum: self.__SendMoveItemPacket(srcSlotPos, dstSlotPos, 0) else: net.SendItemUseToItemPacket(srcSlotPos, dstSlotPos)
-
Artık canavarların element bilgiside gözükecek.
Not:Eğer eklediğiniz halde gözükmüyorsa mob_protoya race_flaglar ekli değildir o yüzden sizin eklemeniz gerekiyor.
örn;mob_proto:
Kod#Önce 1093 "??" "KING" "MONSTER" "MELEE" 78 "AGGR" 0 "UNDEAD" "STUN,SLOW,CURSE,TERROR" 0 "skeleton_god" 0 97 73 49 24 116 215 522500 9 12 952 1428 187800 87 100 100 100 2000 175 0 0 50 10 0 0 0 1 0 0 0 -20 -20 50 0 0 60 0 10 "2" 0 0 0 0 10 259 40 260 0 0 0 0 0 0 0 0 0 0 0 #Sonra 1093 "??" "KING" "MONSTER" "MELEE" 78 "AGGR" 0 "UNDEAD,ATT_DARK" "STUN,SLOW,CURSE,TERROR" 0 "skeleton_god" 0
-