Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Corregir Mix agregado desde Source MUEMU  (Visto 856 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline takumi12 Posteado: February 08, 2020, 06:46:19 AM | Modificado: February 08, 2020, 04:19:47 PM by takumi12

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 40174
  • mx
banda estoy dando lata con la source de louis update 13 que liberó, bueno el punto es que estoy creando objetos mix desde source, agregue de manera correcta en mix.bmd para que la machine chaos acepte mi combinación pero tengo un detallito

desde source:

ChaosBox.cpp
Code: [Select]
//=================================================================================================
//alas level 4
//=================================================================================================
void CChaosBox::Wing4Mix(LPOBJ lpObj) // OK
{
int Chaospack30 = 0;
int Creationpack30 = 0;
int SoulPack30 = 0;
int BlessPack30 = 0;
int GarudaFlame = 0;
int GarudaFeather = 0;
int Wings3 = 0;
int itemcount = 0;
int ItemMoney = 0;

for(int n=0;n < CHAOS_BOX_SIZE;n++)
{
if(lpObj->ChaosBox[n].IsItem() == 0)
{
continue;
}

if(lpObj->ChaosBox[n].m_Index == GET_ITEM(12,141) && lpObj->ChaosBox[n].m_Level == 2)
{
Chaospack30++;
}
else if(lpObj->ChaosBox[n].m_Index == GET_ITEM(12,137) && lpObj->ChaosBox[n].m_Level == 2)
{
Creationpack30++;
}
else if(lpObj->ChaosBox[n].m_Index == GET_ITEM(12,31) && lpObj->ChaosBox[n].m_Level == 2)
{
SoulPack30++;
}
else if(lpObj->ChaosBox[n].m_Index == GET_ITEM(12,30) && lpObj->ChaosBox[n].m_Level == 2)
{
BlessPack30++;
}
else if(lpObj->ChaosBox[n].m_Index == GET_ITEM(13,166))
{
GarudaFlame++;
}
else if(lpObj->ChaosBox[n].m_Index == GET_ITEM(13,165))
{
GarudaFeather++;
}
else if(((lpObj->ChaosBox[n].m_Index >= GET_ITEM(12,36) && lpObj->ChaosBox[n].m_Index <= GET_ITEM(12,37)) || lpObj->ChaosBox[n].m_Index == GET_ITEM(12,38) || lpObj->ChaosBox[n].m_Index == GET_ITEM(12,39) || lpObj->ChaosBox[n].m_Index == GET_ITEM(12,40)) && (lpObj->ChaosBox[n].m_Level >= 9 && lpObj->ChaosBox[n].m_Option3 >= 1))
{
Wings3++;
ItemMoney += lpObj->ChaosBox[n].m_BuyMoney;
}
}

if(Chaospack30 != 1 || Creationpack30 != 1 || SoulPack30 != 1 || BlessPack30 != 1 || GarudaFlame != 1 || GarudaFeather != 1 || itemcount == 0)
{
this->GCChaosMixSend(lpObj->Index,7,0);
return;
}

if(gServerInfo.m_Wing4MixRate[lpObj->AccountLevel] == -1)
{
lpObj->ChaosSuccessRate = (ItemMoney/3000000)+1;
}
else
{
lpObj->ChaosSuccessRate = gServerInfo.m_Wing4MixRate[lpObj->AccountLevel];
}

if(this->GetTalismanOfLuckRate(lpObj,&lpObj->ChaosSuccessRate) == 0)
{
this->GCChaosMixSend(lpObj->Index,240,0);
return;
}

if(gServerInfo.m_Wing4MixRate[lpObj->AccountLevel] == -1)
{
lpObj->ChaosSuccessRate = ((lpObj->ChaosSuccessRate>40)?40:lpObj->ChaosSuccessRate);
}
else
{
lpObj->ChaosSuccessRate = ((lpObj->ChaosSuccessRate>100)?100:lpObj->ChaosSuccessRate);
}

lpObj->ChaosMoney = lpObj->ChaosSuccessRate*200000;

int TaxMoney = (lpObj->ChaosMoney*gCastleSiegeSync.GetTaxRateChaos(lpObj->Index))/100;

lpObj->ChaosMoney += TaxMoney;

if(lpObj->Money < ((DWORD)lpObj->ChaosMoney))
{
this->GCChaosMixSend(lpObj->Index,2,0);
return;
}

lpObj->Money -= lpObj->ChaosMoney;

GCMoneySend(lpObj->Index,lpObj->Money);

gCastleSiegeSync.AddTributeMoney(TaxMoney);

if((GetLargeRand()%100) < lpObj->ChaosSuccessRate)
{
WORD ItemIndex = 0;
BYTE ItemOption2 = 0;
BYTE ItemOption3 = 0;
BYTE ItemNewOption = 0;

CRandomManager RandomManager;

RandomManager.AddElement(GET_ITEM(12,414),1);

RandomManager.AddElement(GET_ITEM(12,415),1);

RandomManager.AddElement(GET_ITEM(12,416),1);

RandomManager.AddElement(GET_ITEM(12,417),1);

RandomManager.AddElement(GET_ITEM(12,419),1);

RandomManager.AddElement(GET_ITEM(12,181),1);

RandomManager.AddElement(GET_ITEM(12,182),1);

for (int i=0; i < gCustomWingMix.m_count; i++)
{
RandomManager.AddElement(GET_ITEM(gCustomWingMix.m_Data[i].m_Category,gCustomWingMix.m_Data[i].m_Index),1);
}

if (gServerInfo.m_DisableWingMixDL != 1)
{
RandomManager.AddElement(GET_ITEM(12,81),1);
}

if (gServerInfo.m_DisableWingMixSU != 1)
{
RandomManager.AddElement(GET_ITEM(12,419),1);
}

#if(GAMESERVER_UPDATE>=601)

if (gServerInfo.m_DisableWingMixRF != 1)
{
RandomManager.AddElement(GET_ITEM(12,182),1);
}

#endif

RandomManager.GetRandomElement(&ItemIndex);

gItemOptionRate.GetItemOption2(6,&ItemOption2);

gItemOptionRate.GetItemOption3(6,&ItemOption3);

gItemOptionRate.GetItemOption4(6,&ItemNewOption);

gItemOptionRate.MakeNewOption(ItemIndex,ItemNewOption,&ItemNewOption);

GDCreateItemSend(lpObj->Index,0xFF,0,0,ItemIndex,0,0,0,ItemOption2,ItemOption3,-1,(ItemNewOption+(16*(GetLargeRand()%3))),0,0,0,0,0xFF,0);

gLog.Output(LOG_CHAOS_MIX,"[Wing4Mix][Success][%s][%s] - (ChaosSuccessRate: %d, ChaosMoney: %d)",lpObj->Account,lpObj->Name,lpObj->ChaosSuccessRate,lpObj->ChaosMoney);
}
else
{
this->ChaosBoxInit(lpObj);

this->GCChaosBoxSend(lpObj,0);

this->GCChaosMixSend(lpObj->Index,0,0);

gLog.Output(LOG_CHAOS_MIX,"[Wing4Mix][Failure][%s][%s] - (ChaosSuccessRate: %d, ChaosMoney: %d)",lpObj->Account,lpObj->Name,lpObj->ChaosSuccessRate,lpObj->ChaosMoney);
}
}

lo cual también lo declare en: ChaosBox.h
Code: [Select]
void Wing4Mix(LPOBJ lpObj);

copile y todo correcto, pero no se genera la combinación  nots
 bad

sucede como si no los estuviera agregando a la sorce:





Si alguno me es tan amable de indicar que es lo que posiblemente no estoy haciendo?, quiero pensar que esa función se agrega en algun lugar mas, para generar el llamado de dicha función, o algo me ha de estar faltando  please


Las offset no se crea, ni se destruye, solo se transforma

Gracias:


Offline melo920 #1 Posteado: February 08, 2020, 09:11:01 AM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 281
  • Gracias recibida: 6502
  • co
por lo que veo faltan 2 cosas. tienes que declararlo aqui

void CChaosBox::CGChaosMixRecv(PMSG_CHAOS_MIX_RECV* lpMsg,int aIndex) // OK

tambien el mix debe faltar los swich del ServerInfo para subir el porcentaje % partiendo a texto en ChaosMachine, solo fijate de de las wing s3 y tendras todas las referencias que te faltan, no solo es crear un void y setear los item queridos xD


Gracias:


Offline takumi12 #2 Posteado: February 08, 2020, 12:55:51 PM | Modificado: February 08, 2020, 01:34:26 PM by takumi12

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 40174
  • mx
por lo que veo faltan 2 cosas. tienes que declararlo aqui

void CChaosBox::CGChaosMixRecv(PMSG_CHAOS_MIX_RECV* lpMsg,int aIndex) // OK

tambien el mix debe faltar los swich del ServerInfo para subir el porcentaje % partiendo a texto en ChaosMachine, solo fijate de de las wing s3 y tendras todas las referencias que te faltan, no solo es crear un void y setear los item queridos xD

 aplausos aplausos
excelente hermano, ya agregué al serverinfo, lo que no entiendo es sobre como saber que id se usa para esa combinación, ejemplo:

Code: [Select]
enum eChaosMixNumber
{
CHAOS_MIX_CHAOS_ITEM = 1,
CHAOS_MIX_DEVIL_SQUARE = 2,
CHAOS_MIX_PLUS_ITEM_LEVEL1 = 3,
CHAOS_MIX_PLUS_ITEM_LEVEL2 = 4,
CHAOS_MIX_DINORANT = 5,
CHAOS_MIX_FRUIT = 6,
CHAOS_MIX_WING1 = 7,
CHAOS_MIX_BLOOD_CASTLE = 8,
CHAOS_MIX_WING2 = 11,
CHAOS_MIX_PET1 = 13,
CHAOS_MIX_PET2 = 14,
CHAOS_MIX_SIEGE_POTION1 = 15,
CHAOS_MIX_SIEGE_POTION2 = 16,
CHAOS_MIX_LIFE_STONE = 17,
CHAOS_MIX_SENIOR = 18,
CHAOS_MIX_PLUS_ITEM_LEVEL3 = 22,
CHAOS_MIX_PLUS_ITEM_LEVEL4 = 23,
CHAOS_MIX_WING3 = 24,
CHAOS_MIX_PIECE_OF_HORN = 25,
CHAOS_MIX_BROKEN_HORN = 26,
CHAOS_MIX_HORN_OF_FENRIR = 27,
CHAOS_MIX_HORN_OF_FENRIR_UPGRADE = 28,
CHAOS_MIX_SHIELD_POTION1 = 30,
CHAOS_MIX_SHIELD_POTION2 = 31,
CHAOS_MIX_SHIELD_POTION3 = 32,
CHAOS_MIX_JEWEL_OF_HARMONY_ITEM_PURITY = 33,
CHAOS_MIX_JEWEL_OF_HARMONY_ITEM_SMELT = 34,
CHAOS_MIX_JEWEL_OF_HARMONY_ITEM_RESTORE = 35,
CHAOS_MIX_ITEM_380 = 36,
CHAOS_MIX_ILLUSION_TEMPLE = 37,
CHAOS_MIX_FEATHER_OF_CONDOR = 38,
CHAOS_MIX_WING4 = 39,
CHAOS_MIX_CHAOS_CARD = 40,
CHAOS_MIX_CHERRY_BLOSSOM = 41,
CHAOS_MIX_SOCKET_ITEM_CREATE_SEED = 42,
CHAOS_MIX_SOCKET_ITEM_CREATE_SEED_SPHERE = 43,
CHAOS_MIX_SOCKET_ITEM_MOUNT_SEED_SPHERE = 44,
CHAOS_MIX_SOCKET_ITEM_UN_MOUNT_SEED_SPHERE = 45,
CHAOS_MIX_IMPERIAL_GUARDIAN = 46,
CHAOS_MIX_CHEST = 47,
CHAOS_MIX_SUMMON_SCROLL = 48,
CHAOS_MIX_PLUS_ITEM_LEVEL5 = 49,
CHAOS_MIX_PLUS_ITEM_LEVEL6 = 50,
CHAOS_MIX_LUCKY_ITEM_CREATE = 51,
CHAOS_MIX_LUCKY_ITEM_REFINE = 52,
CHAOS_MIX_MONSTER_WING = 56,
CHAOS_MIX_SOCKET_WEAPON = 57,
CHAOS_MIX_LVL_WING4=58,      //<--- este es el que estoy agregando
};

pero como se supone que se identifica con el cliente, ya que no veo como identificar ese index, o mas bien ese número con la combinación que se esta programando en el cliente, pensaba que era el headcode  nots
============================================================
EDITADO: ya se realiza la combinación pero nunca genera nada, se queda de esta manera



Las offset no se crea, ni se destruye, solo se transforma

Offline takumi12 #3 Posteado: February 08, 2020, 04:19:11 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Php Coder
  • +11 puntos por ventas
  • *
  • *
  • Rank: Puto amo
  • Posts: 1.310
  • Gracias recibida: 40174
  • mx
doy por solucionado el tema, no hice nada para corregirlo, solo comencé a generar impresión en el log de todas las acciones que se realizaban para asegurarme en que parte de la función se truncaba y cual era el problema que generaba, y de la nada agarró, pues bueno gracias a melo, ya que fue la única persona que me oriento, junto con jorge2016 que son de las pocas personas que he visto que no solo comparten su trabajo, si no también su conocimiento, como vuelvo a repetir, no esperaba que alguien me solucionara, solo buscaba una orientación.


Las offset no se crea, ni se destruye, solo se transforma

Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
5 Replies
2230 Views
Last post September 19, 2017, 01:00:35 PM
by Tauro14
5 Replies
1519 Views
Last post October 05, 2017, 10:34:16 AM
by caron22
6 Replies
2480 Views
Last post March 09, 2018, 02:06:05 PM
by caron22
4 Replies
1352 Views
Last post October 04, 2019, 12:29:49 AM
by Karuritoku
4 Replies
1244 Views
Last post July 17, 2020, 11:50:51 PM
by waltervg91