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.
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.
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;
Tüm bu işlemleri yaptıktan sonra artık 6. ve 7. efsunları kullanabileceksiniz.
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.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;
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
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.Kod:
71051 6. ve 7. Arttırma Kağıdı
71052 6. ve 7. Efsun Nesnesi
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;
player.item_attr_rare tablosu yoksa şu sql komutlarını çalıştırınız.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.
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.