- Mesaj
- 11.905
- Çözümler
- 564
- Beğeni
- 13.270
- Puan
- 5.915
- Ticaret Puanı
- 2
Merhaba arkadaşlar,
Bu konumuzda 6. ve 7. efsunlarını kullanabilmek için yapılacaklardan bahsedeceğim.
Eğer 40k files kullanıyorsanız char_item.cpp dosyasında şu kodların olması gerekiyor.
Bu kodlar varsa zaten hali hazırda sisteminizde 6. ve 7. efsunlar kullanıma hazır demektir.
71051 ve 71052 itemlerini almaya çalıştığınızda sistem size böyle bi item yok diyorsa kendiniz eklemeniz gerekiyor.
item_proto.txt dosyasına şunları ekleyin;
item_names.txt dosyasına ekleyin.
Daha sonra item_proto.txt ve item_names.txt dosyasını dump_proto'dan geçirip locale_tr/ui içine atınız.
Server kısmında da itemlerin eklenmesi için txt dosyalarını server filesinize atın.
locale_tr/ui/itemlist.txt ekleyin;
locale_tr/ui/itemdesc.txt ekleyin;
player.item_attr_rare tablosu yoksa şu sql komutlarını çalıştırınız.
Tüm bu işlemleri yaptıktan sonra artık 6. ve 7. efsunları kullanabileceksiniz.
Bu konumuzda 6. ve 7. efsunlarını kullanabilmek için yapılacaklardan bahsedeceğim.
Eğer 40k files kullanıyorsanız char_item.cpp dosyasında şu kodların olması gerekiyor.
C++:
case 71051 : // 진재가
{
// 유럽, 싱가폴, 베트남 진재가 사용금지
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetInventoryItem(wDestCell)))
return false;
if (ITEM_COSTUME == item2->GetType()) // @fixme124
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
return false;
}
if (item2->IsExchanging() || item2->IsEquipped()) // @fixme114
return false;
if (item2->GetAttributeSetIndex() == -1)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
return false;
}
if (item2->AddRareAttribute() == true)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("성공적으로 속성이 추가 되었습니다"));
int iAddedIdx = item2->GetRareAttrCount() + 4;
char buf[21];
snprintf(buf, sizeof(buf), "%u", item2->GetID());
LogManager::instance().ItemLog(
GetPlayerID(),
item2->GetAttributeType(iAddedIdx),
item2->GetAttributeValue(iAddedIdx),
item->GetID(),
"ADD_RARE_ATTR",
buf,
GetDesc()->GetHostName(),
item->GetOriginalVnum());
item->SetCount(item->GetCount() - 1);
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("더 이상 이 아이템으로 속성을 추가할 수 없습니다"));
}
}
break;
case 71052 : // 진재경
{
// 유럽, 싱가폴, 베트남 진재가 사용금지
LPITEM item2;
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;
if (ITEM_COSTUME == item2->GetType()) // @fixme124
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
return false;
}
if (item2->IsExchanging() || item2->IsEquipped()) // @fixme114
return false;
if (item2->GetAttributeSetIndex() == -1)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
return false;
}
if (item2->ChangeRareAttribute() == true)
{
char buf[21];
snprintf(buf, sizeof(buf), "%u", item2->GetID());
LogManager::instance().ItemLog(this, item, "CHANGE_RARE_ATTR", buf);
item->SetCount(item->GetCount() - 1);
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("변경 시킬 속성이 없습니다"));
}
}
break;
Bu kodlar varsa zaten hali hazırda sisteminizde 6. ve 7. efsunlar kullanıma hazır demektir.
71051 ve 71052 itemlerini almaya çalıştığınızda sistem size böyle bi item yok diyorsa kendiniz eklemeniz gerekiyor.
item_proto.txt dosyasına şunları ekleyin;
Kod:
71051 眞·재가비서 ITEM_USE USE_SPECIAL 1 ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_MYSHOP LOG NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0
71052 眞·재경비서 ITEM_USE USE_SPECIAL 1 ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_MYSHOP LOG NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0
item_names.txt dosyasına ekleyin.
Kod:
71051 6. ve 7. Arttırma Kağıdı
71052 6. ve 7. Efsun Nesnesi
Daha sonra item_proto.txt ve item_names.txt dosyasını dump_proto'dan geçirip locale_tr/ui içine atınız.
Server kısmında da itemlerin eklenmesi için txt dosyalarını server filesinize atın.
locale_tr/ui/itemlist.txt ekleyin;
Kod:
71051 ETC icon/item/71051.tga
71052 ETC icon/item/71052.tga
locale_tr/ui/itemdesc.txt ekleyin;
Kod:
71051 6. ve 7. Arttırma Kağıdı Eşyalarınıza 6. ve 7. efsunları ekler.
71052 6. ve 7. Efsun Nesnesi Eşyalarınızda bulunan 6. ve 7. efsunları değiştirir.
player.item_attr_rare tablosu yoksa şu sql komutlarını çalıştırınız.
SQL:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for item_attr_rare
-- ----------------------------
DROP TABLE IF EXISTS `item_attr_rare`;
CREATE TABLE `item_attr_rare` (
`apply` enum('MAX_HP','MAX_SP','CON','INT','STR','DEX','ATT_SPEED','MOV_SPEED','CAST_SPEED','HP_REGEN','SP_REGEN','POISON_PCT','STUN_PCT','SLOW_PCT','CRITICAL_PCT','PENETRATE_PCT','ATTBONUS_HUMAN','ATTBONUS_ANIMAL','ATTBONUS_ORC','ATTBONUS_MILGYO','ATTBONUS_UNDEAD','ATTBONUS_DEVIL','STEAL_HP','STEAL_SP','MANA_BURN_PCT','DAMAGE_SP_RECOVER','BLOCK','DODGE','RESIST_SWORD','RESIST_TWOHAND','RESIST_DAGGER','RESIST_BELL','RESIST_FAN','RESIST_BOW','RESIST_FIRE','RESIST_ELEC','RESIST_MAGIC','RESIST_WIND','REFLECT_MELEE','REFLECT_CURSE','POISON_REDUCE','KILL_SP_RECOVER','EXP_DOUBLE_BONUS','GOLD_DOUBLE_BONUS','ITEM_DROP_BONUS','POTION_BONUS','KILL_HP_RECOVER','IMMUNE_STUN','IMMUNE_SLOW','IMMUNE_FALL','SKILL','BOW_DISTANCE','ATT_GRADE_BONUS','DEF_GRADE_BONUS','MAGIC_ATT_GRADE_BONUS','MAGIC_DEF_GRADE_BONUS','CURSE_PCT','MAX_STAMINA','ATT_BONUS_TO_WARRIOR','ATT_BONUS_TO_ASSASSIN','ATT_BONUS_TO_SURA','ATT_BONUS_TO_SHAMAN','ATT_BONUS_TO_MONSTER','ATT_BONUS','MALL_DEFBONUS','MALL_EXPBONUS','MALL_ITEMBONUS','MALL_GOLDBONUS','MAX_HP_PCT','MAX_SP_PCT','SKILL_DAMAGE_BONUS','NORMAL_HIT_DAMAGE_BONUS','SKILL_DEFEND_BONUS','NORMAL_HIT_DEFEND_BONUS','PC_BANG_EXP_BONUS','PC_BANG_DROP_BONUS','EXTRACT_HP_PCT','RESIST_WARRIOR','RESIST_ASSASSIN','RESIST_SURA','RESIST_SHAMAN','ENERGY','DEF_GRADE','COSTUME_ATTR_BONUS','MAGIC_ATT_BONUS_PER','MELEE_MAGIC_ATT_BONUS_PER','RESIST_ICE','RESIST_EARTH','RESIST_DARK','RESIST_CRITICAL','RESIST_PENETRATE','BLEEDING_REDUCE','BLEEDING_PCT','ATT_BONUS_TO_WOLFMAN','RESIST_WOLFMAN','RESIST_CLAW') CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT 'MAX_HP',
`prob` int(11) UNSIGNED NOT NULL DEFAULT 0,
`lv1` int(11) UNSIGNED NOT NULL DEFAULT 0,
`lv2` int(11) UNSIGNED NOT NULL DEFAULT 0,
`lv3` int(11) UNSIGNED NOT NULL DEFAULT 0,
`lv4` int(11) UNSIGNED NOT NULL DEFAULT 0,
`lv5` int(11) UNSIGNED NOT NULL DEFAULT 0,
`weapon` int(11) UNSIGNED NOT NULL DEFAULT 0,
`body` int(11) UNSIGNED NOT NULL DEFAULT 0,
`wrist` int(11) UNSIGNED NOT NULL DEFAULT 0,
`foots` int(11) UNSIGNED NOT NULL DEFAULT 0,
`neck` int(11) UNSIGNED NOT NULL DEFAULT 0,
`head` int(11) UNSIGNED NOT NULL DEFAULT 0,
`shield` int(11) UNSIGNED NOT NULL DEFAULT 0,
`ear` int(11) UNSIGNED NOT NULL DEFAULT 0,
`costume_body` int(11) UNSIGNED NOT NULL DEFAULT 0,
`costume_hair` int(11) UNSIGNED NOT NULL DEFAULT 0,
`costume_weapon` int(11) UNSIGNED NOT NULL DEFAULT 0
) ENGINE = MyISAM CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Fixed;
-- ----------------------------
-- Records of item_attr_rare
-- ----------------------------
INSERT INTO `item_attr_rare` VALUES ('MAX_HP', 1, 500, 500, 500, 500, 500, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('MAX_SP', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('CON', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('INT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('STR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('DEX', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('CRITICAL_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('PENETRATE_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_GRADE_BONUS', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_MONSTER', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_WARRIOR', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_ASSASSIN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SURA', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SHAMAN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_WARRIOR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_ASSASSIN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_SURA', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_SHAMAN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_SPEED', 1, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('MOV_SPEED', 1, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('MAX_HP', 1, 500, 500, 500, 500, 500, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('MAX_SP', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('CON', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('INT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('STR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('DEX', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('CRITICAL_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('PENETRATE_PCT', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_GRADE_BONUS', 1, 50, 50, 50, 50, 50, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_MONSTER', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_WARRIOR', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_ASSASSIN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SURA', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_BONUS_TO_SHAMAN', 1, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_WARRIOR', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_ASSASSIN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_SURA', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('RESIST_SHAMAN', 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('ATT_SPEED', 1, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
INSERT INTO `item_attr_rare` VALUES ('MOV_SPEED', 1, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0);
SET FOREIGN_KEY_CHECKS = 1;
Tüm bu işlemleri yaptıktan sonra artık 6. ve 7. efsunları kullanabileceksiniz.
Bu yazının tamamı MMO Tutkunları'na ait özgün içeriktir. Kaynağı gösterildiği sürece başka platformlarda paylaşılabilir.