SMF - Just Installed!
#define RELIFE 1
#include "stdafx.h"
//-----------------------------------------------------------------------------------------------------------------------------------------------------
#include "A_XMTEAM_RELIFE.h"
//-----------------------------------------------------------------------------------------------------------------------------------------------------
#include "CustomMessage.h"
#include "Defines.h"
//-----------------------------------------------------------------------------------------------------------------------------------------------------
#include "Interface.h"
#include "User.h"
#include "Protocol.h"
#include "PrintPlayer.h"
#include "SItemOption.h"
#include "Import.h"
#include "Central.h"
#include "User.h"
#if(RELIFE == 1)
//-----------------------------------------------------------------------------------------------------------------------------------------------------
XMTEAM_TAISINH G_XMTEAM_TAISINH;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
XMTEAM_TAISINH::XMTEAM_TAISINH()
{
//--------------------------------------------------------------
HIENTHITAISINH = false;
MainWidth = 640;
MainHeight = 429;
StartY = 0;
StartX = 0;
ClickTick = 0;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
void XMTEAM_TAISINH::JewelBankInfoRecv(PSBMSG_JEWELBANK_RECV2* lpMsg) // OK
{
this->m_Data.Bless = lpMsg->Bless;
this->m_Data.Soul = lpMsg->Soul;
this->m_Data.Life = lpMsg->Life;
this->m_Data.Creation = lpMsg->Creation;
this->m_Data.Guardian = lpMsg->Guardian;
this->m_Data.GemStone = lpMsg->GemStone;
this->m_Data.Harmony = lpMsg->Harmony;
this->m_Data.Chaos = lpMsg->Chaos;
this->m_Data.LowStone = lpMsg->LowStone;
this->m_Data.HighStone = lpMsg->HighStone;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
void XMTEAM_TAISINH::BIND()
{
gInterface.BindObject(XMTEAM_TAISINH_MAIN, 31461, 640, 419, -1, -1); // 31461
gInterface.BindObject(XMTEAM_TAISINH_CLOSE, 0x7EC5, 36, 29, -1, -1);
gInterface.BindObject(TAISINH1, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH2, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH3, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH4, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH5, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH6, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH7, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH8, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH9, 0x7A5E, 108, 29, -1, -1);
gInterface.BindObject(TAISINH10, 0x7A5E, 108, 29, -1, -1);
}
// ----------------------------------------------------------------------------------------------
void XMTEAM_TAISINH::DRAW_TAISINH()
{
DRAW_WINDOW_TAISINH();
}
void XMTEAM_TAISINH::DRAW_WINDOW_TAISINH()
{
if (pPlayerState < GameProcess)
{
return;
}
if (gInterface.CheckWindow(ObjWindow::CashShop)
|| gInterface.CheckWindow(ObjWindow::FriendList)
|| gInterface.CheckWindow(ObjWindow::MoveList)
|| gInterface.CheckWindow(ObjWindow::Party)
|| gInterface.CheckWindow(ObjWindow::Quest)
|| gInterface.CheckWindow(ObjWindow::NPC_Devin)
|| gInterface.CheckWindow(ObjWindow::Guild)
|| gInterface.CheckWindow(ObjWindow::Trade)
|| gInterface.CheckWindow(ObjWindow::Warehouse)
|| gInterface.CheckWindow(ObjWindow::ChaosBox)
|| gInterface.CheckWindow(ObjWindow::CommandWindow)
|| gInterface.CheckWindow(ObjWindow::PetInfo)
|| gInterface.CheckWindow(ObjWindow::Shop)
|| gInterface.CheckWindow(ObjWindow::Inventory)
|| gInterface.CheckWindow(ObjWindow::Store)
|| gInterface.CheckWindow(ObjWindow::OtherStore)
|| gInterface.CheckWindow(ObjWindow::Character)
|| gInterface.CheckWindow(ObjWindow::DevilSquare)
|| gInterface.CheckWindow(ObjWindow::BloodCastle)
|| gInterface.CheckWindow(ObjWindow::CreateGuild)
|| gInterface.CheckWindow(ObjWindow::GuardNPC)
|| gInterface.CheckWindow(ObjWindow::SeniorNPC)
|| gInterface.CheckWindow(ObjWindow::GuardNPC2)
|| gInterface.CheckWindow(ObjWindow::CastleGateSwitch)
|| gInterface.CheckWindow(ObjWindow::CatapultNPC)
|| gInterface.CheckWindow(ObjWindow::CrywolfGate)
|| gInterface.CheckWindow(ObjWindow::IllusionTemple)
|| gInterface.CheckWindow(ObjWindow::HeroList)
|| gInterface.CheckWindow(ObjWindow::ChatWindow)
|| gInterface.CheckWindow(ObjWindow::FastMenu)
|| gInterface.CheckWindow(ObjWindow::Options)
|| gInterface.CheckWindow(ObjWindow::Help)
|| gInterface.CheckWindow(ObjWindow::FastDial)
|| gInterface.CheckWindow(ObjWindow::SkillTree)
|| gInterface.CheckWindow(ObjWindow::GoldenArcher1)
|| gInterface.CheckWindow(ObjWindow::GoldenArcher2)
|| gInterface.CheckWindow(ObjWindow::LuckyCoin1)
|| gInterface.CheckWindow(ObjWindow::LuckyCoin2)
|| gInterface.CheckWindow(ObjWindow::NPC_Duel)
|| gInterface.CheckWindow(ObjWindow::NPC_Titus)
|| gInterface.CheckWindow(ObjWindow::CashShop)
|| gInterface.CheckWindow(ObjWindow::Lugard)
|| gInterface.CheckWindow(ObjWindow::QuestList1)
|| gInterface.CheckWindow(ObjWindow::QuestList2)
|| gInterface.CheckWindow(ObjWindow::Jerint)
|| gInterface.CheckWindow(ObjWindow::FullMap)
|| gInterface.CheckWindow(ObjWindow::NPC_Dialog)
|| gInterface.CheckWindow(ObjWindow::GensInfo)
|| gInterface.CheckWindow(ObjWindow::NPC_Julia)
|| gInterface.CheckWindow(ObjWindow::NPC_ChaosMix)
|| gInterface.CheckWindow(ObjWindow::ExpandInventory)
|| gInterface.CheckWindow(ObjWindow::ExpandWarehouse)
|| gInterface.CheckWindow(ObjWindow::MuHelper)
|| gInterface.Data[eMenu_MAIN].OnShow
|| gInterface.Data[eVip_MAIN].OnShow
|| gInterface.Data[eEventTimePANEL_MAIN].OnShow
|| gInterface.Data[eCommand_MAIN].OnShow
|| gInterface.Data[eRankPANEL_MAIN].OnShow
|| gInterface.Data[eCONFIRM_MAIN].OnShow
)
{
return;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
if (!gInterface.Data[XMTEAM_TAISINH_MAIN].OnShow)
{
return;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------------------------------
if (gInterface.IsWorkZone(StartX, StartY, StartX + MainWidth, StartY + MainHeight, 0)) // if the mouse is in the shop area, do not click to move the character
{
pSetCursorFocus = true;
}
else pSetCursorFocus = false;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
gCentral.PrintDropBox(StartX + 200, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 25, 230, 330, 0, 0);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
gInterface.DrawGUI(XMTEAM_TAISINH_CLOSE, StartX + 400, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 23);
if (gInterface.IsWorkZone(XMTEAM_TAISINH_CLOSE))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(XMTEAM_TAISINH_CLOSE, gInterface.Data[XMTEAM_TAISINH_CLOSE].X, gInterface.Data[XMTEAM_TAISINH_CLOSE].Y, Color);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
float XTAISINH = 170;
if (gObjUser.m_TaiSinh == 1)
{
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 30, 200, 3, "Rebirth");
}
if (gObjUser.m_TrungSinh == 1)
{
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 30, 200, 3, "Transcendence");
}
gCItemSetOption.ItemTooltipS15(XTAISINH + 110, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 60, 70, 15, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 63, 200, 3, "Requirement");
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 85, 200, 15, 0.0, 0);
float flDrawY = StartY + 100;
flDrawY += 6;
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, flDrawY, 200, 15, 0.0, 0);
flDrawY += 22;
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, flDrawY, 200, 15, 0.0, 0);
flDrawY += 22;
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, flDrawY, 200, 15, 0.0, 0);
flDrawY += 22;
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, flDrawY, 200, 15, 0.0, 0);
flDrawY += 22;
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, flDrawY, 200, 15, 0.0, 0);
//----
flDrawY += -83;
if (gObjUser.ResetLife == 0)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien01);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc01Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc01Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc01Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc01Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc01Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Point will be restored to the milestone ");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh01);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Menu");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh01);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Menu");
}
// Click
gInterface.DrawGUI(TAISINH1, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH1))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH1, gInterface.Data[TAISINH1].X, gInterface.Data[TAISINH1].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
// Lần 2
if (gObjUser.ResetLife == 1)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Cấp Độ %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien02);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc02Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc02Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc02Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc02Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc02Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh02);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Event");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh02);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Event");
}
// Click
gInterface.DrawGUI(TAISINH2, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "ĐỒNG Ý");
if (gInterface.IsWorkZone(TAISINH2))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH2, gInterface.Data[TAISINH2].X, gInterface.Data[TAISINH2].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
// 3rd Time
if (gObjUser.ResetLife == 2)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien03);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc03Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc03Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc03Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc03Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc03Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh03);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Ranking");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh03);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Ranking");
}
// Click
gInterface.DrawGUI(TAISINH3, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH3))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH3, gInterface.Data[TAISINH3].X, gInterface.Data[TAISINH3].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
// 4th Time
if (gObjUser.ResetLife == 3)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien04);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc04Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc04Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc04Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc04Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc04Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh04);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "VIP");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh04);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "VIP");
}
// Click
gInterface.DrawGUI(TAISINH4, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH4))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH4, gInterface.Data[TAISINH4].X, gInterface.Data[TAISINH4].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
// 5th Time
if (gObjUser.ResetLife == 4)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien05);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc05Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc05Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc05Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc05Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc05Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh05);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Party Setting");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh05);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Party Setting");
}
// Click
gInterface.DrawGUI(TAISINH5, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH5))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH5, gInterface.Data[TAISINH5].X, gInterface.Data[TAISINH5].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
// Lần 6
if (gObjUser.ResetLife == 5)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Cấp Độ %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien06);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc06Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc06Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc06Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc06Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc06Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh06);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Party Search");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh06);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Party Search");
}
// Click
gInterface.DrawGUI(TAISINH6, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH6))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH6, gInterface.Data[TAISINH6].X, gInterface.Data[TAISINH6].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
// 7th Time
if (gObjUser.ResetLife == 6)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien07);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc07Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc07Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc07Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc07Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc07Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh07);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Gift New Member");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh07);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Gift New Member");
}
// Click
gInterface.DrawGUI(TAISINH7, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH7))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH7, gInterface.Data[TAISINH7].X, gInterface.Data[TAISINH7].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------
// 8th Time
if (gObjUser.ResetLife == 7)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien08);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc08Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc08Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc08Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc08Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc08Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh08);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Change Class");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh08);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Change Class");
}
// Click
gInterface.DrawGUI(TAISINH8, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH8))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH8, gInterface.Data[TAISINH8].X, gInterface.Data[TAISINH8].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------
// 9th Time
if (gObjUser.ResetLife == 8)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien09);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc09Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc09Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc09Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc09Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc09Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh09);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Change Name");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh09);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Change Name");
}
// Click
gInterface.DrawGUI(TAISINH9, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH9))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH9, gInterface.Data[TAISINH9].X, gInterface.Data[TAISINH9].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------
// 10th Time
if (gObjUser.ResetLife == 9)
{
gInterface.DrawFormat(eOrange, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 88, 200, 3, "Level %d/%d , Reset %d/%d", gObjUser.lpPlayer->Level, gObjUser.m_DieuKienLevel, ViewReset, gObjUser.DieuKien10);
//----
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 109, 200, 3, " %d / %d", gObjUser.DieuKienNgoc10Chaos, gObjUser.Chaos);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 131, 200, 3, " %d / %d", gObjUser.DieuKienNgoc10Bless, gObjUser.Bless);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 153, 200, 3, " %d / %d", gObjUser.DieuKienNgoc10Soul, gObjUser.Soul);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 175, 200, 3, " %d / %d", gObjUser.DieuKienNgoc10Life, gObjUser.Life);
gInterface.DrawFormat(eSocket, XTAISINH + 102, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 197, 200, 3, " %d / %d", gObjUser.DieuKienNgoc10Cre, gObjUser.Creation);
//----
if (gObjUser.m_TaiSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Reset points to milestone");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTaiSinh10);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Sell Points");
}
if (gObjUser.m_TrungSinh == 1)
{
// Received
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 230, 200, 35, 0.0, 0);
gInterface.DrawFormat(eWhite, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 233, 200, 3, "Points added");
gInterface.DrawFormat(eExcellent, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 251, 200, 3, "Points achieved %d", gObjUser.DiemPointTrungSinh10);
gCItemSetOption.ItemTooltipS15(XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 270, 200, 35, 0.0, 0);
gInterface.DrawFormat(eGold, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 275, 200, 3, "Reward");
gInterface.DrawFormat(eShinyGreen, XTAISINH + 45, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 290, 200, 3, "Sell Points");
}
// Click
gInterface.DrawGUI(TAISINH10, XTAISINH + 90, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 320);
gInterface.DrawFormat(eGold, XTAISINH + 50, gInterface.Data[XMTEAM_TAISINH_MAIN].Y + 330, 200, 3, "AGREE");
if (gInterface.IsWorkZone(TAISINH10))
{
DWORD Color = eGray150;
gInterface.DrawColoredGUI(TAISINH10, gInterface.Data[TAISINH10].X, gInterface.Data[TAISINH10].Y, Color);
}
}
//-------------------------------------------------------------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
void XMTEAM_TAISINH::TAISINH_ATIVE(int Number)
{
TAISINH_REQ pMsg;
pMsg.h.set(0xFC, 0x08, sizeof(pMsg)); // Sending to Server Protocol.cpp
pMsg.Number = Number;
DataSend((BYTE*)&pMsg, pMsg.h.size);
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
bool XMTEAM_TAISINH::MAIN_TAISINH(DWORD Event)
{
//-----------------------------------------------------------------------------------------------------------------------------------------------------
DWORD CurrentTick = GetTickCount();
//-----------------------------------------------------------------------------------------------------------------------------------------------------
this->CLOSE_TAISINH(Event);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
for (int resetIndex = 0; resetIndex < 10; resetIndex++)
{
if (gObjUser.ResetLife == resetIndex)
{
if (gInterface.Data[XMTEAM_TAISINH_MAIN].OnShow && gInterface.IsWorkZone(TAISINH1 + resetIndex))
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - gInterface.Data[TAISINH1 + resetIndex].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
gInterface.Data[TAISINH1 + resetIndex].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
gInterface.Data[TAISINH1 + resetIndex].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return false;
}
gInterface.Data[TAISINH1 + resetIndex].EventTick = GetTickCount();
this->CLOSE_WINDOW_TAISINH();
this->TAISINH_ATIVE(resetIndex + 1); // send gs
}
}
}
return true;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
bool XMTEAM_TAISINH::CLOSE_TAISINH(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - gInterface.Data[XMTEAM_TAISINH_CLOSE].EventTick);
// ----
if (!gInterface.Data[XMTEAM_TAISINH_MAIN].OnShow || !gInterface.IsWorkZone(XMTEAM_TAISINH_CLOSE))
{
return false;
}
// ----
if (Event == WM_LBUTTONDOWN)
{
gInterface.Data[XMTEAM_TAISINH_CLOSE].OnClick = true;
return true;
}
// ----
gInterface.Data[XMTEAM_TAISINH_CLOSE].OnClick = false;
// ----
if (Delay < 500)
{
return false;
}
// ----
gInterface.Data[XMTEAM_TAISINH_CLOSE].EventTick = GetTickCount();
G_XMTEAM_TAISINH.CLOSE_WINDOW_TAISINH();
// ----
return false;
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------
void XMTEAM_TAISINH::TaiSinhCheckRecv(TAISINHCHECK_UPDATE* aRecv)
{
gObjUser.m_TaiSinh = aRecv->m_TaiSinh;
gObjUser.m_TrungSinh = aRecv->m_TrungSinh;
gObjUser.m_DieuKienLevel = aRecv->m_DieuKienLevel;
gObjUser.DieuKien01 = aRecv->DieuKien01;
gObjUser.DieuKien02 = aRecv->DieuKien02;
gObjUser.DieuKien03 = aRecv->DieuKien03;
gObjUser.DieuKien04 = aRecv->DieuKien04;
gObjUser.DieuKien05 = aRecv->DieuKien05;
gObjUser.DieuKien06 = aRecv->DieuKien06;
gObjUser.DieuKien07 = aRecv->DieuKien07;
gObjUser.DieuKien08 = aRecv->DieuKien08;
gObjUser.DieuKien09 = aRecv->DieuKien09;
gObjUser.DieuKien10 = aRecv->DieuKien10;
gObjUser.ResetLife = aRecv->ResetLife;
}
void XMTEAM_TAISINH::TaiSinhDiemRecv(TAISINHDIEM_UPDATE* aRecv)
{
gObjUser.DiemPointTaiSinh01 = aRecv->DiemPointTaiSinh01;
gObjUser.DiemPointTaiSinh02 = aRecv->DiemPointTaiSinh02;
gObjUser.DiemPointTaiSinh03 = aRecv->DiemPointTaiSinh03;
gObjUser.DiemPointTaiSinh04 = aRecv->DiemPointTaiSinh04;
gObjUser.DiemPointTaiSinh05 = aRecv->DiemPointTaiSinh05;
gObjUser.DiemPointTaiSinh06 = aRecv->DiemPointTaiSinh06;
gObjUser.DiemPointTaiSinh07 = aRecv->DiemPointTaiSinh07;
gObjUser.DiemPointTaiSinh08 = aRecv->DiemPointTaiSinh08;
gObjUser.DiemPointTaiSinh09 = aRecv->DiemPointTaiSinh09;
gObjUser.DiemPointTaiSinh10 = aRecv->DiemPointTaiSinh10;
gObjUser.DiemPointTrungSinh01 = aRecv->DiemPointTrungSinh01;
gObjUser.DiemPointTrungSinh02 = aRecv->DiemPointTrungSinh02;
gObjUser.DiemPointTrungSinh03 = aRecv->DiemPointTrungSinh03;
gObjUser.DiemPointTrungSinh04 = aRecv->DiemPointTrungSinh04;
gObjUser.DiemPointTrungSinh05 = aRecv->DiemPointTrungSinh05;
gObjUser.DiemPointTrungSinh06 = aRecv->DiemPointTrungSinh06;
gObjUser.DiemPointTrungSinh07 = aRecv->DiemPointTrungSinh07;
gObjUser.DiemPointTrungSinh08 = aRecv->DiemPointTrungSinh08;
gObjUser.DiemPointTrungSinh09 = aRecv->DiemPointTrungSinh09;
gObjUser.DiemPointTrungSinh10 = aRecv->DiemPointTrungSinh10;
}
void XMTEAM_TAISINH::DieuKienNgoc01Recv(DIEUKIENNGOC01_UPDATE* aRecv)
{
gObjUser.DieuKienNgoc01Chaos = aRecv->DieuKienNgoc01Chaos;
gObjUser.DieuKienNgoc01Bless = aRecv->DieuKienNgoc01Bless;
gObjUser.DieuKienNgoc01Soul = aRecv->DieuKienNgoc01Soul;
gObjUser.DieuKienNgoc01Life = aRecv->DieuKienNgoc01Life;
gObjUser.DieuKienNgoc01Cre = aRecv->DieuKienNgoc01Cre;
gObjUser.DieuKienNgoc02Chaos = aRecv->DieuKienNgoc02Chaos;
gObjUser.DieuKienNgoc02Bless = aRecv->DieuKienNgoc02Bless;
gObjUser.DieuKienNgoc02Soul = aRecv->DieuKienNgoc02Soul;
gObjUser.DieuKienNgoc02Life = aRecv->DieuKienNgoc02Life;
gObjUser.DieuKienNgoc02Cre = aRecv->DieuKienNgoc02Cre;
gObjUser.DieuKienNgoc03Chaos = aRecv->DieuKienNgoc03Chaos;
gObjUser.DieuKienNgoc03Bless = aRecv->DieuKienNgoc03Bless;
gObjUser.DieuKienNgoc03Soul = aRecv->DieuKienNgoc03Soul;
gObjUser.DieuKienNgoc03Life = aRecv->DieuKienNgoc03Life;
gObjUser.DieuKienNgoc03Cre = aRecv->DieuKienNgoc03Cre;
gObjUser.DieuKienNgoc04Chaos = aRecv->DieuKienNgoc04Chaos;
gObjUser.DieuKienNgoc04Bless = aRecv->DieuKienNgoc04Bless;
gObjUser.DieuKienNgoc04Soul = aRecv->DieuKienNgoc04Soul;
gObjUser.DieuKienNgoc04Life = aRecv->DieuKienNgoc04Life;
gObjUser.DieuKienNgoc04Cre = aRecv->DieuKienNgoc04Cre;
gObjUser.DieuKienNgoc05Chaos = aRecv->DieuKienNgoc05Chaos;
gObjUser.DieuKienNgoc05Bless = aRecv->DieuKienNgoc05Bless;
gObjUser.DieuKienNgoc05Soul = aRecv->DieuKienNgoc05Soul;
gObjUser.DieuKienNgoc05Life = aRecv->DieuKienNgoc05Life;
gObjUser.DieuKienNgoc05Cre = aRecv->DieuKienNgoc05Cre;
}
void XMTEAM_TAISINH::DieuKienNgoc02Recv(DIEUKIENNGOC02_UPDATE* aRecv)
{
gObjUser.DieuKienNgoc06Chaos = aRecv->DieuKienNgoc06Chaos;
gObjUser.DieuKienNgoc06Bless = aRecv->DieuKienNgoc06Bless;
gObjUser.DieuKienNgoc06Soul = aRecv->DieuKienNgoc06Soul;
gObjUser.DieuKienNgoc06Life = aRecv->DieuKienNgoc06Life;
gObjUser.DieuKienNgoc06Cre = aRecv->DieuKienNgoc06Cre;
gObjUser.DieuKienNgoc07Chaos = aRecv->DieuKienNgoc07Chaos;
gObjUser.DieuKienNgoc07Bless = aRecv->DieuKienNgoc07Bless;
gObjUser.DieuKienNgoc07Soul = aRecv->DieuKienNgoc07Soul;
gObjUser.DieuKienNgoc07Life = aRecv->DieuKienNgoc07Life;
gObjUser.DieuKienNgoc07Cre = aRecv->DieuKienNgoc07Cre;
gObjUser.DieuKienNgoc08Chaos = aRecv->DieuKienNgoc08Chaos;
gObjUser.DieuKienNgoc08Bless = aRecv->DieuKienNgoc08Bless;
gObjUser.DieuKienNgoc08Soul = aRecv->DieuKienNgoc08Soul;
gObjUser.DieuKienNgoc08Life = aRecv->DieuKienNgoc08Life;
gObjUser.DieuKienNgoc08Cre = aRecv->DieuKienNgoc08Cre;
gObjUser.DieuKienNgoc09Chaos = aRecv->DieuKienNgoc09Chaos;
gObjUser.DieuKienNgoc09Bless = aRecv->DieuKienNgoc09Bless;
gObjUser.DieuKienNgoc09Soul = aRecv->DieuKienNgoc09Soul;
gObjUser.DieuKienNgoc09Life = aRecv->DieuKienNgoc09Life;
gObjUser.DieuKienNgoc09Cre = aRecv->DieuKienNgoc09Cre;
gObjUser.DieuKienNgoc10Chaos = aRecv->DieuKienNgoc10Chaos;
gObjUser.DieuKienNgoc10Bless = aRecv->DieuKienNgoc10Bless;
gObjUser.DieuKienNgoc10Soul = aRecv->DieuKienNgoc10Soul;
gObjUser.DieuKienNgoc10Life = aRecv->DieuKienNgoc10Life;
gObjUser.DieuKienNgoc10Cre = aRecv->DieuKienNgoc10Cre;
}
#endif
#pragma once
#include "Import.h"
#include "Interface.h"
#include "Protocol.h"
#if(RELIFE == 1)
struct TAISINH_REQ
{
PSBMSG_HEAD h;
int Number;
};
struct PSBMSG_JEWELBANK_RECV2
{
PSBMSG_HEAD h;
int Bless;
int Soul;
int Life;
int Creation;
int Guardian;
int GemStone;
int Harmony;
int Chaos;
int LowStone;
int HighStone;
};
struct CUSTOM_JEWELBANK_DATA2
{
int Bless;
int Soul;
int Life;
int Creation;
int Guardian;
int GemStone;
int Harmony;
int Chaos;
int LowStone;
int HighStone;
};
struct TAISINHCHECK_UPDATE
{
PBMSG_HEAD2 h;
int m_TaiSinh;
int m_TrungSinh;
int m_DieuKienLevel;
int DieuKien01;
int DieuKien02;
int DieuKien03;
int DieuKien04;
int DieuKien05;
int DieuKien06;
int DieuKien07;
int DieuKien08;
int DieuKien09;
int DieuKien10;
int ResetLife;
};
struct TAISINHDIEM_UPDATE
{
PBMSG_HEAD2 h;
int DiemPointTaiSinh01;
int DiemPointTaiSinh02;
int DiemPointTaiSinh03;
int DiemPointTaiSinh04;
int DiemPointTaiSinh05;
int DiemPointTaiSinh06;
int DiemPointTaiSinh07;
int DiemPointTaiSinh08;
int DiemPointTaiSinh09;
int DiemPointTaiSinh10;
int DiemPointTrungSinh01;
int DiemPointTrungSinh02;
int DiemPointTrungSinh03;
int DiemPointTrungSinh04;
int DiemPointTrungSinh05;
int DiemPointTrungSinh06;
int DiemPointTrungSinh07;
int DiemPointTrungSinh08;
int DiemPointTrungSinh09;
int DiemPointTrungSinh10;
};
struct DIEUKIENNGOC01_UPDATE
{
PBMSG_HEAD2 h;
int DieuKienNgoc01Chaos;
int DieuKienNgoc01Bless;
int DieuKienNgoc01Soul;
int DieuKienNgoc01Life;
int DieuKienNgoc01Cre;
int DieuKienNgoc02Chaos;
int DieuKienNgoc02Bless;
int DieuKienNgoc02Soul;
int DieuKienNgoc02Life;
int DieuKienNgoc02Cre;
int DieuKienNgoc03Chaos;
int DieuKienNgoc03Bless;
int DieuKienNgoc03Soul;
int DieuKienNgoc03Life;
int DieuKienNgoc03Cre;
int DieuKienNgoc04Chaos;
int DieuKienNgoc04Bless;
int DieuKienNgoc04Soul;
int DieuKienNgoc04Life;
int DieuKienNgoc04Cre;
int DieuKienNgoc05Chaos;
int DieuKienNgoc05Bless;
int DieuKienNgoc05Soul;
int DieuKienNgoc05Life;
int DieuKienNgoc05Cre;
};
struct DIEUKIENNGOC02_UPDATE
{
PBMSG_HEAD2 h;
int DieuKienNgoc06Chaos;
int DieuKienNgoc06Bless;
int DieuKienNgoc06Soul;
int DieuKienNgoc06Life;
int DieuKienNgoc06Cre;
int DieuKienNgoc07Chaos;
int DieuKienNgoc07Bless;
int DieuKienNgoc07Soul;
int DieuKienNgoc07Life;
int DieuKienNgoc07Cre;
int DieuKienNgoc08Chaos;
int DieuKienNgoc08Bless;
int DieuKienNgoc08Soul;
int DieuKienNgoc08Life;
int DieuKienNgoc08Cre;
int DieuKienNgoc09Chaos;
int DieuKienNgoc09Bless;
int DieuKienNgoc09Soul;
int DieuKienNgoc09Life;
int DieuKienNgoc09Cre;
int DieuKienNgoc10Chaos;
int DieuKienNgoc10Bless;
int DieuKienNgoc10Soul;
int DieuKienNgoc10Life;
int DieuKienNgoc10Cre;
};
//-----------------------------------------------------------------------------------------------------------------------------------------------------
class XMTEAM_TAISINH
{
public:
//-----------------------------------------------------------------------------------------------------------------------------------------------------
XMTEAM_TAISINH();
void DRAW_TAISINH();
void BIND();
bool HIENTHITAISINH;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
float MainWidth;
float MainHeight;
float StartY;
float StartX;
DWORD ClickTick;
void TAISINH_ATIVE(int Number);
//-----------------------------------------------------------------------------------------------------------------------------------------------------
void OPEN_WINDOW_TAISINH() { gInterface.Data[XMTEAM_TAISINH_MAIN].OnShow = true; pSetCursorFocus = true; };
void CLOSE_WINDOW_TAISINH() { gInterface.Data[XMTEAM_TAISINH_MAIN].OnShow = false; pSetCursorFocus = false; };
bool CHECK_WINDOW_TAISINH() { return gInterface.Data[XMTEAM_TAISINH_MAIN].OnShow; };
void DRAW_WINDOW_TAISINH();
bool MAIN_TAISINH(DWORD Event);
bool CLOSE_TAISINH(DWORD Event);
void TaiSinhCheckRecv(TAISINHCHECK_UPDATE* aRecv);
void TaiSinhDiemRecv(TAISINHDIEM_UPDATE* aRecv);
void DieuKienNgoc01Recv(DIEUKIENNGOC01_UPDATE* aRecv);
void DieuKienNgoc02Recv(DIEUKIENNGOC02_UPDATE* aRecv);
void JewelBankInfoRecv(PSBMSG_JEWELBANK_RECV2* lpMsg);
char Text_TrungSinh[500][500];
private:
// ---
CUSTOM_JEWELBANK_DATA2 m_Data;
//-----------------------------------------------------------------------------------------------------------------------------------------------------
}; extern XMTEAM_TAISINH G_XMTEAM_TAISINH;
//===================================================================================================================================================================
#endif
#if(RELIFE == 1)
G_XMTEAM_TAISINH.MAIN_TAISINH(wParam);
#endif
#if(RELIFE == 1)
G_XMTEAM_TAISINH.DRAW_TAISINH();
#endif
#if(RELIFE == 1)
if (GetKeyState(VK_F4) & 0x4000)
{
G_XMTEAM_TAISINH.OPEN_WINDOW_TAISINH();
G_XMTEAM_TAISINH.TAISINH_ATIVE(100);
}
#endif
#if (RELIFE == 1)
G_XMTEAM_TAISINH.BIND();
#endif
#if(RELIFE == 1)
XMTEAM_TAISINH_MAIN,
XMTEAM_TAISINH_CLOSE,
TAISINH1,
TAISINH2,
TAISINH3,
TAISINH4,
TAISINH5,
TAISINH6,
TAISINH7,
TAISINH8,
TAISINH9,
TAISINH10,
#endif
#if(RELIFE == 1)
case 107:
G_XMTEAM_TAISINH.TaiSinhCheckRecv((TAISINHCHECK_UPDATE*)lpMsg);
break;
case 108:
G_XMTEAM_TAISINH.TaiSinhDiemRecv((TAISINHDIEM_UPDATE*)lpMsg);
break;
case 109:
G_XMTEAM_TAISINH.DieuKienNgoc01Recv((DIEUKIENNGOC01_UPDATE*)lpMsg);
break;
case 110:
G_XMTEAM_TAISINH.DieuKienNgoc02Recv((DIEUKIENNGOC02_UPDATE*)lpMsg);
break;
#endif
#if(RELIFE == 1)
int m_TaiSinh;
int m_TrungSinh;
int m_DieuKienLevel;
int DieuKien01;
int DieuKien02;
int DieuKien03;
int DieuKien04;
int DieuKien05;
int DieuKien06;
int DieuKien07;
int DieuKien08;
int DieuKien09;
int DieuKien10;
int ResetLife;
//---
int DiemPointTaiSinh01;
int DiemPointTaiSinh02;
int DiemPointTaiSinh03;
int DiemPointTaiSinh04;
int DiemPointTaiSinh05;
int DiemPointTaiSinh06;
int DiemPointTaiSinh07;
int DiemPointTaiSinh08;
int DiemPointTaiSinh09;
int DiemPointTaiSinh10;
int DiemPointTrungSinh01;
int DiemPointTrungSinh02;
int DiemPointTrungSinh03;
int DiemPointTrungSinh04;
int DiemPointTrungSinh05;
int DiemPointTrungSinh06;
int DiemPointTrungSinh07;
int DiemPointTrungSinh08;
int DiemPointTrungSinh09;
int DiemPointTrungSinh10;
//---
int DieuKienNgoc01Chaos;
int DieuKienNgoc01Bless;
int DieuKienNgoc01Soul;
int DieuKienNgoc01Life;
int DieuKienNgoc01Cre;
int DieuKienNgoc02Chaos;
int DieuKienNgoc02Bless;
int DieuKienNgoc02Soul;
int DieuKienNgoc02Life;
int DieuKienNgoc02Cre;
int DieuKienNgoc03Chaos;
int DieuKienNgoc03Bless;
int DieuKienNgoc03Soul;
int DieuKienNgoc03Life;
int DieuKienNgoc03Cre;
int DieuKienNgoc04Chaos;
int DieuKienNgoc04Bless;
int DieuKienNgoc04Soul;
int DieuKienNgoc04Life;
int DieuKienNgoc04Cre;
int DieuKienNgoc05Chaos;
int DieuKienNgoc05Bless;
int DieuKienNgoc05Soul;
int DieuKienNgoc05Life;
int DieuKienNgoc05Cre;
//---
int DieuKienNgoc06Chaos;
int DieuKienNgoc06Bless;
int DieuKienNgoc06Soul;
int DieuKienNgoc06Life;
int DieuKienNgoc06Cre;
int DieuKienNgoc07Chaos;
int DieuKienNgoc07Bless;
int DieuKienNgoc07Soul;
int DieuKienNgoc07Life;
int DieuKienNgoc07Cre;
int DieuKienNgoc08Chaos;
int DieuKienNgoc08Bless;
int DieuKienNgoc08Soul;
int DieuKienNgoc08Life;
int DieuKienNgoc08Cre;
int DieuKienNgoc09Chaos;
int DieuKienNgoc09Bless;
int DieuKienNgoc09Soul;
int DieuKienNgoc09Life;
int DieuKienNgoc09Cre;
int DieuKienNgoc10Chaos;
int DieuKienNgoc10Bless;
int DieuKienNgoc10Soul;
int DieuKienNgoc10Life;
int DieuKienNgoc10Cre;
int Bless;
int Soul;
int Life;
int Creation;
int Guardian;
int GemStone;
int Harmony;
int Chaos;
int LowStone;
int HighStone;
#endif
#include "stdafx.h"
#include "CBUtil.h"
#include "Util.h"
#include "Interface.h"
#include "Import.h"
#include "Defines.h"
#include "Protect.h"
#include "TMemory.h"
#include "WindowsStruct.h"
#include "UITextInputBox.h"
Estos son archivos de cabecera que probablemente contienen definiciones y declaraciones utilizadas en el código, como funciones y estructuras necesarias para la interfaz gráfica y la manipulación de memoria.#define WorldTime *(float*)0x5EF5A1C
CBUtil gCBUtil; // Instancia global de CBUtil
WorldTime es un puntero a una dirección de memoria que almacena el tiempo del mundo del juego. CBUtil::CBUtil() {
SetOp((LPVOID)0x004D935C, (LPVOID)CBUtil::CheckMouseUse, ASM::CALL);
// Más llamadas a SetOp...
this->DelayMouseLock = 0;
gCBUtil.LockButtonHover = 0;
gCBUtil.LockScrollMouse = 0;
this->vCaptcha = this->generateCaptcha(4);
}
SetOp: Esta función se usa para reemplazar la funcionalidad de ciertas direcciones de memoria con la función CheckMouseUse. Esto permite personalizar el comportamiento del mouse en el juego. bool CBUtil::CheckMouseUse(int ThisA) {
if (gCBUtil.DelayMouseLock > 0) {
gCBUtil.DelayMouseLock--;
return 1;
}
return ((bool(__thiscall*)(int ThisA)) 0x00860A60)(ThisA);
}
Este método controla el uso del mouse, implementando un retraso (DelayMouseLock). Si hay un retraso activo, se decrementa y se permite el uso del mouse; de lo contrario, se llama a una función original en la dirección 0x00860A60.void CBUtil::DrawFrame(DWORD ModelID, float X, float Y, float W, float H, float SourceX, float SourceY, float SourceW, float SourceH, float ScaleW, float ScaleH, bool ScaleUp) {
// Cálculos para escalar y dibujar un marco basado en los parámetros dados.
((void(__cdecl*)(DWORD ModelID, float PosX, float PosY, float Width, float Height, float SourceX, float SourceY, float ScaleX, float ScaleY, bool Scale, bool Arg11, float Arg12)) 0x637C60)(ModelID, X, Y, W, H, SourceX / SourceW, SourceY / SourceH, v1, v2, ScaleUp, 1, 0.0);
}
Dibuja un marco en la pantalla utilizando OpenGL, calculando las escalas necesarias para adaptarse a las dimensiones dadas.int CBUtil::DrawText(HFONT font, int PosX, int PosY, DWORD color, DWORD bkcolor, int Width, int Height, BYTE Align, LPCTSTR Text, ...) {
// Formatea y dibuja texto en la pantalla.
}
Este método se encarga de formatear y dibujar texto en la interfaz. Utiliza vsprintf_s para manejar argumentos variables.void CBUtil::MoveWindows(int eNumWindow) {
// Maneja el movimiento de las ventanas en la interfaz.
}
Permite arrastrar ventanas en la interfaz gráfica utilizando el mouse, actualizando su posición según la entrada del usuario.bool CBUtil::gDrawWindowCustom(float* StartX, float* StartY, float CuaSoW, float CuaSoH, int eNumWindow, LPCSTR Text, ...) {
// Dibuja una ventana personalizada con el texto y maneja la interacción del mouse.
}
Dibuja una ventana personalizada en la interfaz, maneja la interacción del mouse y verifica si el cursor está sobre la ventana.std::string CBUtil::generateCaptcha(int n) {
// Genera un captcha aleatorio de longitud n.
}
Crea un captcha aleatorio utilizando números, que puede ser útil para verificar la identidad del usuario.// Establece un rango de 5 bytes en la dirección 0x00864B12 y los reemplaza con NOP (No Operation).
SetRange((LPVOID)0x00864B12, 5, ASM::NOP);
// Establece un rango de 5 bytes en la dirección 0x00864B92 y los reemplaza con NOP.
SetRange((LPVOID)0x00864B92, 5, ASM::NOP);
// Establece un rango de 5 bytes en la dirección 0x008647F8 y los reemplaza con NOP.
SetRange((LPVOID)0x008647F8, 5, ASM::NOP);
// Engancha la función RenderText2Trade en la dirección 0x00864A6E, reemplazando la función original.
SetCompleteHook(0xE9, 0x00864A6E, &RenderText2Trade);
// Engancha la función RenderText1Trade en la dirección 0x00864A36, reemplazando la función original.
SetCompleteHook(0xE9, 0x00864A36, &RenderText1Trade);
// Engancha la función RenderTextTrade en la dirección 0x0086497C, reemplazando la función original.
SetCompleteHook(0xE9, 0x0086497C, &RenderTextTrade);
// Engancha la función RenderTrade en la dirección 0x00864386, reemplazando la función original.
SetCompleteHook(0xE9, 0x00864386, &RenderTrade);
// Engancha la función SetTittlePet en la dirección 0x0084D189, reemplazando la función original.
SetCompleteHook(0xE9, 0x0084D189, &SetTittlePet);
// Engancha la función LoadWindows en la dirección 0x0084D01A, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084D01A, &LoadWindows);
// Engancha la función LoadWindowsNone en la dirección 0x0084D05A, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084D05A, &LoadWindowsNone);
// Engancha la función LoadWindowsNone en la dirección 0x0084D0AC, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084D0AC, &LoadWindowsNone);
// Engancha la función LoadWindowsNone en la dirección 0x0084D116, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084D116, &LoadWindowsNone);
// Engancha la función LoadWindowsNone en la dirección 0x0084D16E, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084D16E, &LoadWindowsNone);
// Engancha la función SetCloseParty en la dirección 0x0084A0E9, reemplazando la función original.
SetCompleteHook(0xE9, 0x0084A0E9, &SetCloseParty);
// Engancha la función SetTittleParty en la dirección 0x0084A67A, reemplazando la función original.
SetCompleteHook(0xE9, 0x0084A67A, &SetTittleParty);
// Engancha la función LoadWindows en la dirección 0x0084A546, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084A546, &LoadWindows);
// Engancha la función LoadWindowsNone en la dirección 0x0084A57A, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084A57A, &LoadWindowsNone);
// Engancha la función LoadWindowsNone en la dirección 0x0084A5BA, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084A5BA, &LoadWindowsNone);
// Engancha la función LoadWindowsNone en la dirección 0x0084A60C, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084A60C, &LoadWindowsNone);
// Engancha la función LoadWindowsNone en la dirección 0x0084A652, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084A652, &LoadWindowsNone);
// Establece un rango de 5 bytes en la dirección 0x0083E6A0 y los reemplaza con NOP.
SetRange((LPVOID)0x0083E6A0, 5, ASM::NOP);
// Engancha la función RenderInfoQuest1 en la dirección 0x0083ED80, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083ED80, &RenderInfoQuest1);
// Engancha la función RenderInfoQuest2 en la dirección 0x0083EDDE, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083EDDE, &RenderInfoQuest2);
// Engancha la función RenderText9Quest en la dirección 0x0083F760, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F760, &RenderText9Quest);
// Engancha la función RenderText8Quest en la dirección 0x0083F9E8, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F9E8, &RenderText8Quest);
// Engancha la función RenderText7Quest en la dirección 0x0083F9B0, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F9B0, &RenderText7Quest);
// Engancha la función RenderText6Quest en la dirección 0x0083F958, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F958, &RenderText6Quest);
// Engancha la función RenderText5Quest en la dirección 0x0083F8A4, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F8A4, &RenderText5Quest);
// Engancha la función RenderText4Quest en la dirección 0x0083F86C, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F86C, &RenderText4Quest);
// Engancha la función RenderText3Quest en la dirección 0x0083F814, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F814, &RenderText3Quest);
// Engancha la función RenderText2Quest en la dirección 0x0083F728, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F728, &RenderText2Quest);
// Engancha la función RenderText1Quest en la dirección 0x0083F6D0, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F6D0, &RenderText1Quest);
// Engancha la función RenderQuestTabPane1 en la dirección 0x0083F4E7, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F4E7, &RenderQuestTabPane1);
// Engancha la función RenderQuestTabPane2 en la dirección 0x0083F516, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F516, &RenderQuestTabPane2);
// Engancha la función RenderQuestTabPane3 en la dirección 0x0083F54C, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F54C, &RenderQuestTabPane3);
// Engancha la función RenderQuestTabPane4 en la dirección 0x0083F582, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083F582, &RenderQuestTabPane4);
// Engancha la función RenderButtonQuestTb en la dirección 0x0083F618, reemplazando la función original.
SetCompleteHook(0xE8, 0x0083F618, &RenderButtonQuestTb);
// Engancha la función RenderButtonQuestTb en la dirección 0x0083F690, reemplazando la función original.
SetCompleteHook(0xE8, 0x0083F690, &RenderButtonQuestTb);
// Engancha la función RenderButtonQuestTb en la dirección 0x0083F7D4, reemplazando la función original.
SetCompleteHook(0xE8, 0x0083F7D4, &RenderButtonQuestTb);
// Engancha la función RenderButtonQuestTb en la dirección 0x0083F918, reemplazando la función original.
SetCompleteHook(0xE8, 0x0083F918, &RenderButtonQuestTb);
// Engancha la función RenderWindowsQuest en la dirección 0x0083EA16, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083EA16, &RenderWindowsQuest);
// Engancha la función RenderGensPointInfo en la dirección 0x00843B87, reemplazando la función original.
SetCompleteHook(0xE9, 0x00843B87, &RenderGensPointInfo);
// Engancha la función RenderGensPointText en la dirección 0x00843D9D, reemplazando la función original.
SetCompleteHook(0xE9, 0x00843D9D, &RenderGensPointText);
// Engancha la función RenderGensPointTexture en la dirección 0x00843D4F, reemplazando la función original.
SetCompleteHook(0xE8, 0x00843D4F, &RenderGensPointTexture);
// Engancha la función RenderWindowsGensBattle en la dirección 0x0084371E, reemplazando la función original.
SetCompleteHook(0xE8, 0x0084371E, &RenderWindowsGensBattle);
// Engancha la función RenderTittleQuestGlobal en la dirección 0x00843B09, reemplazando la función original.
SetCompleteHook(0xE9, 0x00843B09, &RenderTittleQuestGlobal);
// Engancha la función RenderWindowsStore en la dirección 0x00841E26, reemplazando la función original.
SetCompleteHook(0xE9, 0x00841E26, &RenderWindowsStore);
// Engancha la función RenderTittleCommand en la dirección 0x0078E497, reemplazando la función original.
SetCompleteHook(0xE9, 0x0078E497, &RenderTittleCommand);
// Engancha la función RenderWindowsComand en la dirección 0x0078E6A6, reemplazando la función original.
SetCompleteHook(0xE9, 0x0078E6A6, &RenderWindowsComand);
// Establece un rango de 5 bytes en la dirección 0x00858016 y los reemplaza con NOP.
SetRange((LPVOID)0x00858016, 5, ASM::NOP);
// Establece un rango de 5 bytes en la dirección 0x00857898 y los reemplaza con NOP.
SetRange((LPVOID)0x00857898, 5, ASM::NOP);
// Engancha la función RenderWindowsBaul en la dirección 0x00857923, reemplazando la función original.
SetCompleteHook(0xE9, 0x00857923, &RenderWindowsBaul);
// Engancha la función RenderWindowsGuildMaker en la dirección 0x007D1763, reemplazando la función original.
SetCompleteHook(0xE9, 0x007D1763, &RenderWindowsGuildMaker);
// Engancha la función WindowsShop en la dirección 0x00847076, reemplazando la función original.
SetCompleteHook(0xE9, 0x00847076, &WindowsShop);
// Establece un rango de 5 bytes en la dirección 0x00847036 y los reemplaza con NOP.
SetRange((LPVOID)0x00847036, 5, ASM::NOP);
// Establece un rango de 5 bytes en la dirección 0x00847046 y los reemplaza con NOP.
SetRange((LPVOID)0x00847046, 5, ASM::NOP);
// Engancha la función RenderWindowsExt en la dirección 0x007D5576, reemplazando la función original.
SetCompleteHook(0xE8, 0x007D5576, &RenderWindowsExt);
// Establece un rango de 5 bytes en la dirección 0x007D4FA6 y los reemplaza con NOP.
SetRange((LPVOID)0x007D4FA6, 5, ASM::NOP);
// Engancha la función RenderMoveSlotExt en la dirección 0x0083C5CF, reemplazando la función original.
SetCompleteHook(0xE9, 0x0083C5CF, &RenderMoveSlotExt);
//-- Inventory Ext.
SetCompleteHook(0xE8, 0x007D4F9E, &WindowsInfoInventoryExt);
//-- Inventario
SetCompleteHook(0xE8, 0x0083510E, &WindowsInfoInventory);
//-- Character
SetCompleteHook(0xE8, 0x0077F7EE, &CharacterInfoWindow);
//--
//-- Windows Inventory Ext.
SetRange((LPVOID)0x007D4FA6, 5, 0x90); //-- Titulo
SetCompleteHook(0xE8, 0x007D582D, &LoadWindowsNone);//-- parte del inventario extend
SetCompleteHook(0xE8, 0x007D587C, &RenderInvExtSlot);
//SetCompleteHook(0xE8, 0x007D58CF, &RenderInvExtNum);
//-- Windows Inventory
SetRange((LPVOID)0x00835116, 5, 0x90); //-- Titulo + ZEN
SetRange((LPVOID)0x008337B0, 5, 0x90); //-- Equipamiento
SetRange((LPVOID)0x0083443C, 5, 0x90); //-- Equipamiento
SetRange((LPVOID)0x008337B8, 5, 0x90); //-- Button
SetCompleteHook(0xE9, 0x00835CB1, &InfoTooltipSocket); //-- Posicion Mostrar Tooltip de Equipamiento
SetCompleteHook(0xE9, 0x00835C86, &InfoTooltipAncestral); //-- Posicion Mostrar Tooltip de Equipamiento
//--
SetCompleteHook(0xE9, 0x0083516F, &RemoveTextAncestral); //-- Text Ancient
SetCompleteHook(0xE9, 0x008352B1, &RemoveTextSocket); //-- Text Socket
//--
SetCompleteHook(0xE8, 0x0083538A, &CheckMouseSocket); //-- InfoOption Socket Equip
SetCompleteHook(0xE8, 0x00834C8D, &CheckMouseAncestral); //-- InfoOption Ancient Equip
SetCompleteHook(0xE8, 0x007DB7B0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DB812, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DB874, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DB8E0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DB959, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DB9A2, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DBA20, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007DBA69, &LoadWindowsNone);
SetCompleteHook(0xE9, 0x0083BAF4, &RemoveButtonStore1);
SetCompleteHook(0xE9, 0x0083BB94, &RemoveButtonStore2);
//-- CharacterInfo
SetRange((LPVOID)0x0077E906, 5, 0x90); //-- Evento Button
//SetRange((LPVOID)0x0077F81A, 5, 0x90); //-- Titulo
SetCompleteHook(0xE9, 0x0077F8CA, &InformationServer1); //-- Text
SetCompleteHook(0xE9, 0x0077FA1C, &InformationServer2); //-- Text
SetCompleteHook(0xE9, 0x0077FAA7, &InformationServer3); //-- Text
SetRange((LPVOID)0x0077F822, 5, 0x90); //-- Información 1
//-- Stadistica Str
SetCompleteHook(0xE9, 0x007801D7, &InformationSTR1); //-- Text
SetCompleteHook(0xE9, 0x00780215, &InformationSTR2); //-- Point
SetCompleteHook(0xE9, 0x00781758, &InformationSTR3); //-- Dmg
SetCompleteHook(0xE9, 0x00781805, &InformationSTR4); //-- Attack Rate
//-- Stadistica Agi
SetCompleteHook(0xE9, 0x0078190B, &InformationAGI1); //-- Text
SetCompleteHook(0xE9, 0x0078194C, &InformationAGI2); //-- Point
SetCompleteHook(0xE9, 0x00782854, &InformationAGI3); //-- Defense Rate
SetCompleteHook(0xE9, 0x00782A30, &InformationAGI4); //-- AttackSpeed
SetCompleteHook(0xE9, 0x00782B83, &InformationAGI5); //-- Defense
//-- Stadistica Vit
SetCompleteHook(0xE9, 0x00782D13, &InformationVIT1); //-- Text
SetCompleteHook(0xE9, 0x00782D54, &InformationVIT2); //-- Point
SetCompleteHook(0xE9, 0x00782F69, &InformationVIT3); //-- HP
SetCompleteHook(0xE9, 0x00782FDF, &InformationVIT4); //-- Mele %
//--Stadistica Ene
SetCompleteHook(0xE9, 0x007830ED, &InformationENE1); //-- Text
SetCompleteHook(0xE9, 0x0078312E, &InformationENE2); //-- Point
SetCompleteHook(0xE9, 0x007832D5, &InformationENE3); //-- MANA
SetCompleteHook(0xE9, 0x00784029, &InfoMagicDMG1); //-- magic
SetCompleteHook(0xE9, 0x0078482D, &InfoMagicDMG2); //-- curse
SetCompleteHook(0xE9, 0x007848A5, &InfoSkillDMG1); //-- Skill Dmg BK
SetCompleteHook(0xE9, 0x00784904, &InfoSkillDMG2); //-- Skill Dmg MG
SetCompleteHook(0xE9, 0x00784973, &InfoSkillDMG3); //-- Skill Dmg DL
SetCompleteHook(0xE9, 0x007849E4, &InfoSkillDMG4); //-- Skill Dmg DL
SetCompleteHook(0xE9, 0x00784A64, &InfoSkillDMG5); //-- Skill Dmg DL
//--Stadistica Cmd
SetCompleteHook(0xE9, 0x00784B6B, &InformationCMD1); //-- Text
SetCompleteHook(0xE9, 0x00784BAC, &InformationCMD2); //-- Point
//-- Window 1
SetCompleteHook(0xE8, 0x007C1872, &LoadWindows);
SetCompleteHook(0xE8, 0x007C18AC, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C18F5, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C1950, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C199B, &LoadWindowsNone);
//-- Window 2
SetCompleteHook(0xE8, 0x007C2676, &LoadWindows);
SetCompleteHook(0xE8, 0x007C26AA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C26EA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C273C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C2782, &LoadWindowsNone);
//-- Window 3
SetCompleteHook(0xE8, 0x007C46E6, &LoadWindows);
SetCompleteHook(0xE8, 0x007C471A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C4757, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C47A0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C47DF, &LoadWindowsNone);
//-- Window 4
SetCompleteHook(0xE8, 0x007C6BCC, &LoadWindows);
SetCompleteHook(0xE8, 0x007C6C06, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C6C49, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C6C98, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C6CDD, &LoadWindowsNone);
//-- Window 5
SetCompleteHook(0xE8, 0x007C7D0C, &LoadWindows);
SetCompleteHook(0xE8, 0x007C7D46, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C7D89, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C7DD8, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007C7E1D, &LoadWindowsNone);
//-- Window 6 Guild User
SetCompleteHook(0xE8, 0x007CB6F6, &LoadWindows);
SetCompleteHook(0xE8, 0x007CB72A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007CB767, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007CB7B0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007CB7EF, &LoadWindowsNone);
//-- Window 7 Guild Maker
SetCompleteHook(0xE8, 0x007D1786, &LoadWindows);
SetCompleteHook(0xE8, 0x007D17BA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007D17F7, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007D1840, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007D187F, &LoadWindowsNone);
//-- Window 8 Store
//-- Window 9 MuHelper
SetCompleteHook(0xE8, 0x007F65A6, &LoadWindows);
SetCompleteHook(0xE8, 0x007F65E6, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007F6638, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007F66A2, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x007F66FA, &LoadWindowsNone);
//-- Window 10 Config Helper
SetCompleteHook(0xE8, 0x0080C848, &LoadWindows);
SetCompleteHook(0xE8, 0x0080C87C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0080C8BC, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0080C90E, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0080C954, &LoadWindowsNone);
//-- Window 11 ChaosMachine
SetCompleteHook(0xE8, 0x0082CA22, &WindowsChaosBox);
SetCompleteHook(0xE8, 0x0082CB4B, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0082CB00, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0082CAA5, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0082CA5C, &LoadWindowsNone);
//-- Window 12
SetCompleteHook(0xE8, 0x00836EF6, &LoadWindows);
SetCompleteHook(0xE8, 0x00836F2A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00836F67, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00836FB0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00836FEF, &LoadWindowsNone);
//-- Window 13 Quest (T)
SetCompleteHook(0xE8, 0x0083EA46, &LoadWindows);
SetCompleteHook(0xE8, 0x0083EA7A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0083EAB7, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0083EB00, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0083EB3F, &LoadWindowsNone);
//-- Window 14
SetCompleteHook(0xE8, 0x00841E49, &LoadWindows);
SetCompleteHook(0xE8, 0x00841E7D, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00841EBA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00841F03, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00841F42, &LoadWindowsNone);
//-- Window 15 Gens-Quest
SetCompleteHook(0xE8, 0x00843826, &LoadWindows);
SetCompleteHook(0xE8, 0x0084385A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00843897, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008438E0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084391F, &LoadWindowsNone);
//-- Window 16
SetCompleteHook(0xE8, 0x00845956, &LoadWindows);
SetCompleteHook(0xE8, 0x0084598A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008459C7, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00845A10, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00845A4F, &LoadWindowsNone);
//-- Window 17
SetCompleteHook(0xE8, 0x008470A6, &LoadWindows);
SetCompleteHook(0xE8, 0x008470DA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00847117, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00847160, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084719F, &LoadWindowsNone);
//-- Window 18
//-- Window 1
SetCompleteHook(0xE8, 0x0077F209, &LoadWindows);
SetCompleteHook(0xE8, 0x0077F23D, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0077F27A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0077F2C3, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0077F302, &LoadWindowsNone);
//-- Window 1
SetCompleteHook(0xE8, 0x00894226, &LoadWindows);
SetCompleteHook(0xE8, 0x0089425A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00894297, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008942E0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0089431F, &LoadWindowsNone);
//-- Window 4
SetCompleteHook(0xE8, 0x00850966, &LoadWindows);
SetCompleteHook(0xE8, 0x0085099A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008509D7, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00850A20, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00850A5F, &LoadWindowsNone);
//-- Window 5
SetCompleteHook(0xE8, 0x00852476, &LoadWindows);
SetCompleteHook(0xE8, 0x008524AA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008524E7, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00852530, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0085256F, &LoadWindowsNone);
//-- Window 6
SetCompleteHook(0xE8, 0x008540B6, &LoadWindows);
SetCompleteHook(0xE8, 0x008540EA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00854127, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00854170, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008541AF, &LoadWindowsNone);
//-- Window 8
SetCompleteHook(0xE8, 0x0087F886, &LoadWindows);
SetCompleteHook(0xE8, 0x0087F8BA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0087F8F7, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0087F940, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0087F97F, &LoadWindowsNone);
//-- Window 9 NPC CASTLE SIEGE
SetCompleteHook(0xE8, 0x00882F52, &LoadWindows);
SetCompleteHook(0xE8, 0x00882F8C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00882FD5, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00883030, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0088307B, &LoadWindowsNone);
//-- Windows NPC Lugar
SetCompleteHook(0xE8, 0x00893102, &LoadWindows);
SetCompleteHook(0xE8, 0x0089313C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00893185, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008931E0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0089322B, &LoadWindowsNone);
//-- Windows Guard NPC
SetCompleteHook(0xE8, 0x008812A2, &LoadWindows);
SetCompleteHook(0xE8, 0x008812DC, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00881325, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00881380, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008813CB, &LoadWindowsNone);
//-- Windows NPC Senior
SetCompleteHook(0xE8, 0x00879EE2, &LoadWindows);
SetCompleteHook(0xE8, 0x00879F1C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00879F65, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00879FC0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0087A00B, &LoadWindowsNone);
//-- Windows BloodCastle
SetCompleteHook(0xE8, 0x008747B6, &LoadWindows);
SetCompleteHook(0xE8, 0x008747F0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0087483C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008748A0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008748F2, &LoadWindowsNone);
//-- Windows DevilSquare
SetCompleteHook(0xE8, 0x008781BC, &LoadWindows);
SetCompleteHook(0xE8, 0x008781F0, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00878230, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x00878282, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x008782C8, &LoadWindowsNone);
//-- Windows Pet
SetCompleteHook(0xE8, 0x0084D01A, &LoadWindows);
SetCompleteHook(0xE8, 0x0084D05A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084D0AC, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084D116, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084D16E, &LoadWindowsNone);
//-- Windows Party
SetCompleteHook(0xE8, 0x0084A546, &LoadWindows);
SetCompleteHook(0xE8, 0x0084A57A, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084A5BA, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084A60C, &LoadWindowsNone);
SetCompleteHook(0xE8, 0x0084A652, &LoadWindowsNone);
//--
SetCompleteHook(0xE8, 0x007E020C, &PetSpiritHP); //-- PAJARRACO
SetCompleteHook(0xE8, 0x007E0298, &PetSpiritHP); //-- PAJARRACO
// Establece un rango de 5 bytes en la dirección 0x007F0CD1 y los reemplaza con NOP (No Operation).
SetRange((LPVOID)0x007F0CD1, 0x5, 0x90);
// Engancha la función DropTextureHelper en la dirección 0x007F6AC8, reemplazando la función original.
// Esta función probablemente maneja la caída de texturas para la caja de habilidades y el número de entrada.
SetCompleteHook(0xE8, 0x007F6AC8, &DropTextureHelper); //-- Skill Box and InputNumber
// Engancha la función DropTextureHelper en la dirección 0x007F6BB6, reemplazando la función original.
// Esta función está asociada con el número 1 en la interfaz.
SetCompleteHook(0xE8, 0x007F6BB6, &DropTextureHelper); //-- Numero 1
// Engancha la función DropTextureHelper en la dirección 0x007F75DF, reemplazando la función original.
// Esta función probablemente maneja la entrada de cadenas de texto.
SetCompleteHook(0xE8, 0x007F75DF, &DropTextureHelper); //-- Input String
// Engancha la función DropTextureHelper en la dirección 0x007F76CD, reemplazando la función original.
// Esta función está asociada con el número 2 en la interfaz.
SetCompleteHook(0xE8, 0x007F76CD, &DropTextureHelper); //-- Numero 2
// Engancha la función DropBox en la dirección 0x007F7DD9, reemplazando la función original.
// Esta función probablemente maneja la caída de una caja de elementos.
SetCompleteHook(0xE8, 0x007F7DD9, &DropBox);
// Engancha la función DropBoxCornet en varias direcciones, reemplazando la función original.
// Estas funciones están asociadas con diferentes aspectos de la interfaz de usuario que muestran cajas de elementos.
SetCompleteHook(0xE8, 0x007F7E0D, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7E48, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7E83, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7ECB, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7F08, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7F53, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7F9D, &DropBoxCornet);
SetCompleteHook(0xE8, 0x007F7FDB, &DropBoxCornet);
// Comentado: Este bloque establece un byte en la dirección 0x007DC922 + 2, 0x007DC93D + 2 y 0x007DC958 + 2 a 17.
// Esto podría estar relacionado con la visualización de números en la interfaz, pero está desactivado.
/*SetByte((PVOID)(0x007DC922 + 2), 17);
SetByte((PVOID)(0x007DC93D + 2), 17);
SetByte((PVOID)(0x007DC958 + 2), 17);*/
// Fin del bloque de código. Este es un comentario de prueba.
[b]Fuente:[/b] tuservermu.com.ve
Citarfijate que el el index del set agregado en el itemtooltip.bmd coincida con el item.bmd.
el archibo que da la descripcion de las opciones es el itemtooltip.bmd hai tiene que estar la falla bro.
por ejemplo yo lo tengo agregado en el index 211 en el item.bmd del cliente y en el item.txt del sv
211 5 0 2 2 1 1 1 "Temple Guard Knight Gloves" 144 260 7 90 380 200 33 0 0 0 0 0 3 0 0 0 0 0
tiene que estar en el mismo index en el itemtooltip
10 211 "Temple Guard Knight Gloves" 0 1 0 0 1 -1 3 0 6 0 8 0 9 0 10 2 11 0 12 2 13 0 14 2 24 257 -1 0 -1 0