TuZaKK 1
TuZaKK
Mt2Hizmet 1
Mt2Hizmet
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
kaptanmikro1 1
kaptanmikro1
R 1
Roksam
[DEV]AB 1
[DEV]AB
Sevdamsın 1
Sevdamsın
farkmt2official 1
farkmt2official
emirhanHCL 1
emirhanHCL
Scarlet 1
Scarlet
Hikaye Ekle

Cevaplandı Kadim metal sistemini arıyorum

  • Konuyu başlatan Konuyu başlatan qwer212tr
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 3
  • Görüntüleme Görüntüleme 331
Çözüm
[CODE title="char_item.cpp"]bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell)
{
if (bCell > INVENTORY_MAX_NUM)
return false;

LPITEM item = GetInventoryItem(bCell);

if (!item)
return false;

// REFINE_COST
if (bType == REFINE_TYPE_MONEY_ONLY && !GetQuestFlag("deviltower_zone.can_refine"))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("사귀 타워 완료 보상은 한번까지 사용가능합니다."));
return false;
}
// END_OF_REFINE_COST

TPacketGCRefineInformation p;

p.header = HEADER_GC_REFINE_INFORMATION;
p.pos = bCell;
p.src_vnum = item->GetVnum();
p.result_vnum = item->GetRefinedVnum();
p.type = bType;

if (p.result_vnum == 0)
{
sys_err("RefineInformation...
[CODE title="char_item.cpp"]bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell)
{
if (bCell > INVENTORY_MAX_NUM)
return false;

LPITEM item = GetInventoryItem(bCell);

if (!item)
return false;

// REFINE_COST
if (bType == REFINE_TYPE_MONEY_ONLY && !GetQuestFlag("deviltower_zone.can_refine"))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("사귀 타워 완료 보상은 한번까지 사용가능합니다."));
return false;
}
// END_OF_REFINE_COST

TPacketGCRefineInformation p;

p.header = HEADER_GC_REFINE_INFORMATION;
p.pos = bCell;
p.src_vnum = item->GetVnum();
p.result_vnum = item->GetRefinedVnum();
p.type = bType;

if (p.result_vnum == 0)
{
sys_err("RefineInformation p.result_vnum == 0");
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 개량할 수 없습니다."));
return false;
}

if (item->GetType() == ITEM_USE && item->GetSubType() == USE_TUNING)
{
if (bType == 0)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 이 방식으로는 개량할 수 없습니다."));
return false;
}
else
{
LPITEM itemScroll = GetInventoryItem(iAdditionalCell);
if (!itemScroll || item->GetVnum() == itemScroll->GetVnum())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같은 개량서를 합칠 수는 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("축복의 서와 현철을 합칠 수 있습니다."));
return false;
}
}
}

CRefineManager& rm = CRefineManager::instance();

const TRefineTable* prt = rm.GetRefineRecipe(item->GetRefineSet());

if (!prt)
{
sys_err("RefineInformation NOT GET REFINE SET %d", item->GetRefineSet());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 개량할 수 없습니다."));
return false;
}

// REFINE_COST

//MAIN_QUEST_LV7
if (GetQuestFlag("main_quest_lv7.refine_chance") > 0)
{
// 일본은 제외
if (!item->CheckItemUseLevel(20) || item->GetType() != ITEM_WEAPON)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("무료 개량 기회는 20 이하의 무기만 가능합니다"));
return false;
}
p.cost = 0;
}
else
p.cost = ComputeRefineFee(prt->cost);

//END_MAIN_QUEST_LV7
p.prob = prt->prob;
//ENABLE_PLUS_SCROLL
if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 71032)
{
p.prob += 10;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 70039)
{
p.prob += 20;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 25042)
{
p.prob += 30;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 145311)
{
p.prob += 40;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetValue(0) == PLUS_SCROLL)
{
p.prob += GetInventoryItem(iAdditionalCell)->GetValue(2);
}
//ENABLE_PLUS_SCROLL
if (bType == REFINE_TYPE_MONEY_ONLY)
{
p.material_count = 0;
memset(p.materials, 0, sizeof(p.materials));
}
else
{
p.material_count = prt->material_count;
thecore_memcpy(&p.materials, prt->materials, sizeof(prt->materials));
}
// END_OF_REFINE_COST

GetDesc()->Packet(&p, sizeof(TPacketGCRefineInformation));

SetRefineMode(iAdditionalCell);
return true;
}
[/CODE]

Kod:
145311    Efsane Ritüel (+40)
145311    ÃູÀÇ µ¹    ITEM_USE    USE_TUNING    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_PKDROP | ANTI_STACK | ANTI_MYSHOP    NONE    NONE    NONE    5000    5000    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    1    0    0    0    0    0    0    0    0
 
Çözüm
[CODE title="char_item.cpp"]bool CHARACTER::RefineInformation(BYTE bCell, BYTE bType, int iAdditionalCell)
{
if (bCell > INVENTORY_MAX_NUM)
return false;

LPITEM item = GetInventoryItem(bCell);

if (!item)
return false;

// REFINE_COST
if (bType == REFINE_TYPE_MONEY_ONLY && !GetQuestFlag("deviltower_zone.can_refine"))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("사귀 타워 완료 보상은 한번까지 사용가능합니다."));
return false;
}
// END_OF_REFINE_COST

TPacketGCRefineInformation p;

p.header = HEADER_GC_REFINE_INFORMATION;
p.pos = bCell;
p.src_vnum = item->GetVnum();
p.result_vnum = item->GetRefinedVnum();
p.type = bType;

if (p.result_vnum == 0)
{
sys_err("RefineInformation p.result_vnum == 0");
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 개량할 수 없습니다."));
return false;
}

if (item->GetType() == ITEM_USE && item->GetSubType() == USE_TUNING)
{
if (bType == 0)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 이 방식으로는 개량할 수 없습니다."));
return false;
}
else
{
LPITEM itemScroll = GetInventoryItem(iAdditionalCell);
if (!itemScroll || item->GetVnum() == itemScroll->GetVnum())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같은 개량서를 합칠 수는 없습니다."));
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("축복의 서와 현철을 합칠 수 있습니다."));
return false;
}
}
}

CRefineManager& rm = CRefineManager::instance();

const TRefineTable* prt = rm.GetRefineRecipe(item->GetRefineSet());

if (!prt)
{
sys_err("RefineInformation NOT GET REFINE SET %d", item->GetRefineSet());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이 아이템은 개량할 수 없습니다."));
return false;
}

// REFINE_COST

//MAIN_QUEST_LV7
if (GetQuestFlag("main_quest_lv7.refine_chance") > 0)
{
// 일본은 제외
if (!item->CheckItemUseLevel(20) || item->GetType() != ITEM_WEAPON)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("무료 개량 기회는 20 이하의 무기만 가능합니다"));
return false;
}
p.cost = 0;
}
else
p.cost = ComputeRefineFee(prt->cost);

//END_MAIN_QUEST_LV7
p.prob = prt->prob;
//ENABLE_PLUS_SCROLL
if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 71032)
{
p.prob += 10;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 70039)
{
p.prob += 20;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 25042)
{
p.prob += 30;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetVnum() == 145311)
{
p.prob += 40;
}

if (GetInventoryItem(iAdditionalCell) && GetInventoryItem(iAdditionalCell)->GetValue(0) == PLUS_SCROLL)
{
p.prob += GetInventoryItem(iAdditionalCell)->GetValue(2);
}
//ENABLE_PLUS_SCROLL
if (bType == REFINE_TYPE_MONEY_ONLY)
{
p.material_count = 0;
memset(p.materials, 0, sizeof(p.materials));
}
else
{
p.material_count = prt->material_count;
thecore_memcpy(&p.materials, prt->materials, sizeof(prt->materials));
}
// END_OF_REFINE_COST

GetDesc()->Packet(&p, sizeof(TPacketGCRefineInformation));

SetRefineMode(iAdditionalCell);
return true;
}
[/CODE]

Kod:
145311    Efsane Ritüel (+40)
145311    ÃູÀÇ µ¹    ITEM_USE    USE_TUNING    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_PKDROP | ANTI_STACK | ANTI_MYSHOP    NONE    NONE    NONE    5000    5000    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    1    0    0    0    0    0    0    0    0
teşekkür ederim
 
  • Beğeni
Reactions: R&K

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

Geri
Üst