⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedef.cpp

📁 WYD Server 753 (Development)
💻 CPP
字号:
/* by My Destiny Team */#include "basedef.h"#ifdef __cplusplusextern "C" {#endif// Tipos de refinacoesstatic const char refine[11] = {    43, 116, 117, 118, 119, 120,    121, 122, 123, 124, 125};// Calcula o id do item com o valor da// refinaçao dele. Usado em pacotes de spawns// para a visualizacao de items ancts e refinados//// Retorna o id do item e o valor do refinamento//  Ex: ItemID = 900h ; EFVX = 5h ;//   novo item id = 5900hu16 GetItemIDAndEffect(sItem *item, u8 mont){    u32 value = 0, x;	if(mont)	{ // Montarias        if(item->ItemID > 0)            value = item->EF2 / 10;	}    else    { // Outros Equipamentos        // Verifica o Tipo da refinacao        for(x = 0; x < sizeof(refine); x++)        {            if (item->EF1 == refine[x])                value = item->EFV1;            else if (item->EF2 == refine[x])                value = item->EFV2;            else if (item->EF3 == refine[x])                value = item->EFV3;            else // Continua a verificacao                continue;            // Tipo da refinacao encontrado            break;        }        // Verifica se o tipo da refinacao foi encontrado        if(x == sizeof(refine))            value = 0;        else if (value < 230)            value %= 10;        else if (value < 234)            value = 10;        else if (value < 238)            value = 11;        else if (value < 242)            value = 12;        else if (value < 246)            value = 13;        else if (value < 250)            value = 14;        else if (value < 254)            value = 15;        else// value < 256            value = 16;    }	return (value << 12) | item->ItemID;}// Calcula o tipo de refinamento do item//// Retorna 0 se o item é invalido ou sem refinação// Retorna 2Bh se foi refinado normalmente// Retorna 10h se foi refinado com Diamante// Retorna 20h se foi refinado com Esmeralda// Retorna 30h se foi refinado com Coral// Retorna 40h se foi refinado com Garnetu16 GetAnctCode(sItem *item, u8 mont){    u32 value = 0, ref = 0, x;	if(mont)	{ // Montarias        if(item->ItemID > 0 && item->EF2 >= 10)            value = 43;	}    else    { // Outros Equipamentos        // Verifica o Tipo da refinacao        for(x = 0; x < sizeof(refine); x++)        {            if (item->EF1 == refine[x])            {                ref = item->EF1;                value = item->EFV1;            }            else if (item->EF2 == refine[x])            {                ref = item->EF2;                value = item->EFV2;            }            else if (item->EF3 == refine[x])            {                ref = item->EF3;                value = item->EFV3;            }            else // Continua a verificacao                continue;            // Tipo da refinacao encontrado            break;        }        // Verificacao do tipo de refinamento        if(x == sizeof(refine))        { // Item nao tem refinacao            value = 0;        }        else if (value < 230)        { // Item refinado normalmente ou modificado com tintas            value = refine[x];        }        else        { // Item Anct            value %= 4;            if(value == 2)            { // Items refinados com Diamante                value = 0x10;            }            else if(value == 3)            { // Items refinados com Esmeralda                value = 0x20;            }            else if(value == 0)            { // Items refinados com Coral                value = 0x30;            }            else            { // Items refinados com Garnet                value = 0x40;            }            if(ref != 43)            { // Modificado o item com tinta                value += (ref - 115);            }        }    }	return value;}#ifdef __cplusplus};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -