Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Source Auto Login Button (1.04e/S6) - Kapocha  (Visto 26450 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline Betell Host #20 Posteado: March 16, 2022, 12:52:25 PM | Modificado: May 13, 2022, 10:19:35 AM by Betell Host

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 548
  • Gracias recibida: 3624
  • br
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo

Gracias:


Offline vcore30 #21 Posteado: March 16, 2022, 12:55:10 PM

  • 0 puntos por ventas
  • *
  • Rank: Destacado
  • Posts: 97
  • Gracias recibida: 898
  • ru
Offests   1.04D


#define SEASON3B_CheckMouseIn      ((bool(__cdecl*)(int a1, int a2, int a3, int a4)) 0x007909C0)

#define IsPress                  ((int(__cdecl*)(int VKBUTTON)) 0x00790F20)

#define PlayBuffer               ((signed int(__cdecl*)(int a1, int a2, int a3)) 0x006D6AD0)


Offline Robins #22 Posteado: March 16, 2022, 01:11:06 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 435
  • vn
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo


Obrigada. Mas meu código fonte não tem esses

Code: [Select]
#include "stdafx.h"
#include "Interface.h"
#include "TMemory.h"
#include "Protocol.h"
#include "Offset.h"
#include "User.h"
#include "Import.h"
#include "Defines.h"
#include "Camera.h"
#include "Fog.h"
#include "Other.h"
#include "Graphics.h"
#include "Glow.h"
#include "ChatExpanded.h"
#include "Reconnect.h"
#include "Config.h"
#include "CustomMessage.h"
#include "CustomEventTime.h"
#include "post_item.h"
#include "inter3.h"

Interface gInterface;
DWORD CharacterInfoExtern_Buff;
char CharacterInfoExtern_LevelBuff[80];
DWORD AddSomeShine_Buff;
DWORD AddSomeShine_Pointer;
bool Checkbox = true;

Interface::Interface()
{
ZeroMemory(this->Data, sizeof(this->Data));
}
Naked(AddSomeShine)
{
_asm
{
mov eax, dword ptr ds:[ecx + 0x30]
mov AddSomeShine_Buff, eax
}

if( AddSomeShine_Buff == 349 || AddSomeShine_Buff == 406 || AddSomeShine_Buff == 407 || AddSomeShine_Buff == 408 )
{
_asm
{
mov AddSomeShine_Buff, 0x005E4979
jmp AddSomeShine_Buff
}
}
else
{
_asm
{
mov AddSomeShine_Buff, 0x005E4A3C
jmp AddSomeShine_Buff
}
}
}

void Interface::Load()
{
/* this->BindObject(eSkillBox, iNewSkillBox, 32, 38, 305, 443);
// this->BindObject(eDragonLeft, iDragonLeft, 108, 45, 0, 388);
// this->BindObject(eDragonRight, iDragonRight, 108, 45, 532, 388);
// this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
*/
//--
this->BindObject(eSAMPLEBUTTON, 0x7AA4, 16, 15, 175, 1);
this->BindObject(eCheck, 0x9991, 15, 15, -1, -1);
this->BindObject(eUnCheck, 0x9992, 15, 15, -1, -1);
this->BindObject(eTIME, 0x787E, 80, 20, 174, 0);
this->BindObject(eOFFATTACK_BUTTON, 0x787F, 16, 12, -1, -1);
this->BindObject(eOPTIONS_BUTTON, 0x787D, 16, 12, -1, 1);
//---
this->BindObject(eCAMERA_MAIN, 0x787A, 93, 18, 174, 0);
this->BindObject(eCAMERA_BUTTON1, 0x787B, 16, 12, -1, -1);
this->BindObject(eCAMERA_BUTTON2, 0x787C, 16, 12, -1, -1);
//this->BindObject(eLOGO, 0x9989, 63.3, 50, 192.5, 1);
this->BindObject(eSHOP_WC, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_WP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_GP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_B, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_S, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_C, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_L, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Cr, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_G, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Gem, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_H, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_R, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_OFF, 0x7C04, 36, 27, -1, -1);
//---
this->BindObject(eOFFPANEL_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFPANEL_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFPANEL_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eOFFATTACK_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFATTACK_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFATTACK_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFATTACK_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFATTACK_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFATTACK_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eUSERSPANEL_MAIN, 0x7A5A, 222, 256, -1, -1);
this->BindObject(eUSERSPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eUSERSPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eUSERSPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eUSERSPANEL_DIV, 0x7A62, 223, 21, -1, -1);
this->BindObject(eUSERSPANEL_OPTION, 0x7B68, 10, 10, -1, -1);
this->BindObject(eUSERSPANEL_LINE, 0x7B67, 154, 2, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON1, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON2, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_FOG, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CLOSE, 0x7A5E, 128, 29, -1, -1);
this->BindObject(eUSERSPANEL_HPBAR, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_RANKHIDE, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_TRONGLOW, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CHAT, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_MINIMAP, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CAMERA, 0x9991, 15, 15, -1, -1);
//--
//Command info
this->BindObject(eEventTime_MAIN, 0x789F, 222, 195, -1, -1);
this->BindObject(eEventTime_CLOSE, 0x7EC5, 36, 29, -1, -1);

//---
this->Data[eTIME].OnShow = true;
this->showMiniMap = false;
//SetOp((LPVOID)oAllowGUI_Call1, this->AllowGUI, ASM::CALL);
//SetOp((LPVOID)oAllowGUI_Call2, this->AllowGUI, ASM::CALL);
SetOp((LPVOID)oDrawInterface_Call, this->Work, ASM::CALL);
SetOp((LPVOID)oLoadSomeForm_Call, this->LoadImages, ASM::CALL);
SetOp((LPVOID)0x00633FFB, this->LoadModels, ASM::CALL);
SetOp((LPVOID)0x00842468, this->PShopTextInfo, ASM::CALL);
//==========================================
// - Remove Texts PShop
//==========================================
SetRange((LPVOID)0x00842086, 5, ASM::NOP);
SetRange((LPVOID)0x0084234F, 5, ASM::NOP);
SetRange((LPVOID)0x008423C3, 5, ASM::NOP);
// - Draw Post Item
 this->item_post_ = nullptr;
 SetOp((LPVOID)oDrawInterface2_Call, this->Work2, ASM::CALL);
}
void Interface::Work()
{
gInterface.DrawTimeUI();
gObjUser.Refresh();
gCamera.Rotate();
gCamera.Position();
//--
ReconnectMainProc();
gInterface.DrawOffAttack();
gInterface.DrawPSHOP_OFFMODE();
gInterface.DrawUsersPanelWindow();
gInterface.DrawCameraUI();
pDrawInterface();
//--
gCustomEventTime.DrawEventTimePanelWindow();
}
int Interface::PShopTextInfo(int pThis)
{
gInterface.DrawPSHOP();
// ---
return pPShopTextInfo(pThis);
}
void Interface::LoadImages()
{
/* pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu02.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu03_new.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
// pLoadImage("Custom\\Interface\\s3\\2Menu04.tga", iDragonLeft, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu05.tga", iDragonRight, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2win_push.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2menu01_new2.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2SkillBox.jpg", iNewSkillBox, GL_LINEAR, GL_CLAMP, 1, 0);
*/
//--
pLoadImage("Interface\\TimeBar.tga", 0x787E, 0x2601, 0x2901, 1, 0);
pLoadImage("Interface\\CameraUI_BG.tga", 0x787A, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Switch.tga", 0x787B, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Reset.tga", 0x787C, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\OffAttack_Switch.tga", 0x787F, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\MacroSetup.tga", 0x787D, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Interface\\EventTime.tga", 0x789F, 0x2601, 0x2900, 1, 0);
// logo
//pLoadImage("Custom\\logo\\mwebgame.tga", 0x9989, 0x2601, 0x2900, 1, 0);
// MiniMap
pLoadImage("Interface\\check.jpg", 0x9991, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\uncheck.jpg", 0x9992, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\button.tga", 0x9994, 0x2601, 0x2900, 1, 0);
//--
//Here animation for cape. Wing 214.bmd for display only item in Inventory
pLoadImage("Item\\Newdeath01.tga", 0x789C, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Newdeath02.tga", 0x789D, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4dd.tga", 0x78A5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4de.tga", 0x78A6, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\ragefighterwing4db.tga", 0x78A8, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\growlancerwing4dc.tga", 0x78A9, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item801_2_wing.tga", 0x78B1, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item802_2_wing.tga", 0x78B2, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\NCcapeSmall.tga", 0x78B3, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\DarkLordRobeSmall.tga", 0x78B4, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\darklordwing4ddmr.tga", 0x78B5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4demr.tga", 0x78B6, 0x2601, 0x2900, 1, 0);
//--
pLoadSomeForm();
}
void Interface::LoadModels()
{
pInitModelData2();
}
void Interface::BindObject(short MonsterID, DWORD ModelID, float Width, float Height, float X, float Y)
{
this->Data[MonsterID].EventTick = 0;
this->Data[MonsterID].OnClick = false;
this->Data[MonsterID].OnShow = false;
this->Data[MonsterID].ModelID = ModelID;
this->Data[MonsterID].Width = Width;
this->Data[MonsterID].Height = Height;
this->Data[MonsterID].X = X;
this->Data[MonsterID].Y = Y;
this->Data[MonsterID].MaxX = X + Width;
this->Data[MonsterID].MaxY = Y + Height;
this->Data[MonsterID].Attribute = 0;
}
void Interface::DrawSampleButton()
{
float PosX = this->GetResizeX(eSAMPLEBUTTON);

if( this->CheckWindow(ObjWindow::CashShop)
|| this->CheckWindow(ObjWindow::FullMap)
|| this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(MoveList) )
{
return;
}

this->DrawGUI(eSAMPLEBUTTON, PosX, 1);

if( !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

this->DrawToolTip(PosX - 5, 31, "Button tooltip");

if( this->Data[eSAMPLEBUTTON].OnClick )
{
this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(40, 20, 3, 130));
return;
}

this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(255, 204, 20, 130));
}
void Interface::EventSampleButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSAMPLEBUTTON].EventTick);

if( this->CheckWindow(CashShop) || this->CheckWindow(FullMap)
|| this->CheckWindow(SkillTree) || this->CheckWindow(MoveList)
|| !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

if( Event == WM_LBUTTONDOWN )
{
this->Data[eSAMPLEBUTTON].OnClick = true;
return;
}

this->Data[eSAMPLEBUTTON].OnClick = false;

if( Delay < 500 )
{
return;
}

this->Data[eSAMPLEBUTTON].EventTick = GetTickCount();

if( !this->Data[eRANK_MAIN].OnShow )
{
this->Data[eRANK_MAIN].OnShow = true;
}
else
{
this->Data[eRANK_MAIN].OnShow = false;
}
}
void Interface::DrawCameraUI()
{
float PosX = this->GetResizeX(eCAMERA_MAIN);
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
this->DrawGUI(eCAMERA_MAIN, PosX, 0);
this->DrawGUI(eCAMERA_BUTTON1, PosX + 18.5, 1);
this->DrawGUI(eCAMERA_BUTTON2, PosX + 37.0, 1);
//this->DrawGUI(eLOGO, PosX + 370, 20);
this->DrawGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5);
this->DrawGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5);
// ----
if (gCamera.IsActive)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, eShinyGreen);
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
if (gCamera.IsActive)
{
this->DrawToolTip(PosX + 18.5 - 5, 25, "Zoom: %02.f%%", gCamera.ZoomPercent);
}
else
{
this->DrawToolTip(PosX + 18.5 - 5, 25, gCustomMessage.GetMessageB(3243));
}
// ----
if (this->Data[eCAMERA_BUTTON1].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(255, 204, 20, 200));
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
this->DrawToolTip(PosX + 37.0 - 5, 25, gCustomMessage.GetMessageB(3242));
// ----
if (this->Data[eCAMERA_BUTTON2].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(255, 204, 20, 200));
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
{
this->DrawToolTip(PosX + 0.5 - 5, 25, gCustomMessage.GetMessageB(3241));
}
// ----
if (this->Data[eOFFATTACK_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(250, 125, 50, 200));
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
{
this->DrawToolTip(PosX + 55.5 - 5, 25, gCustomMessage.GetMessageB(3240)); //Advanced Options

}
// ----
if (this->Data[eOPTIONS_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 55.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5, pMakeColor(255, 204, 20, 200));
}
// ----
}
// ----------------------------------------------------------------------------------------------
void Interface::EventCameraUI(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON1].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON1].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON1].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON1].EventTick = GetTickCount();
// ----
gCamera.Switch();
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON2].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON2].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON2].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON2].EventTick = GetTickCount();
// ----
gCamera.Init();
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOFFATTACK_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].EventTick = GetTickCount();
// ----
OpenOffAttackWindow();
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOPTIONS_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOPTIONS_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOPTIONS_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOPTIONS_BUTTON].EventTick = GetTickCount();
// ----
gInterface.OpenUsersPanelWindow();
}
}
// ----------------------------------------------------------------------------------------------
bool Interface::CheckWindow(int WindowID)
{
return pCheckWindow(pWindowThis(), WindowID);
}
int Interface::CloseWindow(int WindowID)
{
return pCloseWindow(pWindowThis(), WindowID);
}
int Interface::OpenWindow(int WindowID)
{
return pOpenWindow(pWindowThis(), WindowID);
}

void Interface::DrawTimeUI()
{
if (!this->Data[eTIME].OnShow)
{
return;
}
// ----
if (this->CheckWindow(ObjWindow::CashShop) || this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(ObjWindow::MoveList) || this->CheckWindow(ObjWindow::ChatWindow) || this->CheckWindow(FullMap))
{
return;
}
// ----
this->DrawGUI(eTIME, 0.0f, 412.0f);
// -----
time_t TimeLocal;
struct tm * LocalT;
time(&TimeLocal);
LocalT = localtime(&TimeLocal);
char LocalTime[30];
sprintf(LocalTime, "%2d:%02d:%02d", LocalT->tm_hour, LocalT->tm_min, LocalT->tm_sec);
this->DrawFormat(eWhite, 27.0f, 418.0f, 100.0f, 1.0f, LocalTime);
}
/*
bool Interface::AllowGUI()
{
if( gInterface.CheckResetWindow())
{
return false;
}

return pAllowGUI();
}
*/
void Interface::SetTextColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Opacity)
{
pSetTextColor(pTextThis(), Red, Green, Blue, Opacity);
}
void Interface::DrawText(int X, int Y, LPCTSTR Text)
{
pDrawText(pTextThis(), X, Y, Text, 0, 0, (LPINT)1, 0);
}
int Interface::DrawFormat(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawColorText(Line, PosX, PosY, Width, 0, Color, 0, Align);
PosY += 10;
Line = strtok(NULL, "\n");
}

return PosY;
}
void Interface::DrawFormatEx(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

pDrawColorText(Buff, PosX, PosY, Width, 0, Color, 0, Align);
}
float Interface::DrawRepeatGUI(short MonsterID, float X, float Y, int Count)
{
float StartY = Y;

for( int i = 0; i < Count; i++ )
{
pDrawGUI(this->Data[MonsterID].ModelID, X, StartY,this->Data[MonsterID].Width, this->Data[MonsterID].Height);

StartY += this->Data[MonsterID].Height;
}

return StartY;
}
void Interface::DrawGUI(short ObjectID, float PosX, float PosY)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = PosX;
this->Data[ObjectID].Y = PosY;
this->Data[ObjectID].MaxX = PosX + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = PosY + this->Data[ObjectID].Height;
}

pDrawGUI(this->Data[ObjectID].ModelID, PosX, PosY,this->Data[ObjectID].Width, this->Data[ObjectID].Height);
}
void Interface::DrawColoredGUI(short ObjectID, float X, float Y, DWORD Color)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = X;
this->Data[ObjectID].Y = Y;
this->Data[ObjectID].MaxX = X + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = Y + this->Data[ObjectID].Height;
}

pDrawColorButton(this->Data[ObjectID].ModelID, X, Y,this->Data[ObjectID].Width, this->Data[ObjectID].Height, 0, 0, Color);
}
int Interface::DrawToolTip(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawToolTip(X, Y, Buff);
}
int Interface::DrawToolTipEx(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawToolTip(X, Y, Line);
Y += 10;
Line = strtok(NULL, "\n");
}

return Y;
}
int Interface::DrawMessage(int Mode, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawMessage(Buff, Mode);
}
bool Interface::IsWorkZone(short ObjectID)
{
float PosX = this->Data[ObjectID].X;
float MaxX = PosX + this->Data[ObjectID].Width;

if( ObjectID == eSAMPLEBUTTON )
{
PosX = this->GetResizeX(ObjectID);
MaxX = PosX + this->Data[ObjectID].Width;
}

if( (gObjUser.m_CursorX < PosX || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
bool Interface::IsWorkZone(float X, float Y, float MaxX, float MaxY)
{
if( (gObjUser.m_CursorX < X || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < Y || gObjUser.m_CursorY > MaxY) )
return false;

return true;
}
float Interface::GetResizeX(short ObjectID)
{
if( pWinWidth == 800 )
{
return this->Data[ObjectID].X + 16.0;
}
else if( pWinWidth != 1024 )
{
return this->Data[ObjectID].X - 16.0;
}

return this->Data[ObjectID].X;
}

float Interface::GetResizeY(short ObjectID)
{

return this->Data[ObjectID].Y;
}
// ----------------------------------------------------------------------------------------------
bool Interface::MiniMapCheck()
{
if (this->CheckWindow(Inventory) ||
this->CheckWindow(CashShop) ||
this->CheckWindow(ChaosBox) ||
this->CheckWindow(Character) ||
this->CheckWindow(CommandWindow) ||
this->CheckWindow(ExpandInventory) ||
this->CheckWindow(ExpandWarehouse) ||
this->CheckWindow(FullMap) ||
this->CheckWindow(GensInfo) ||
this->CheckWindow(Guild) ||
this->CheckWindow(NPC_Dialog) ||
this->CheckWindow(NPC_Julia) ||
this->CheckWindow(NPC_Titus) ||
this->CheckWindow(OtherStore) ||
this->CheckWindow(Party) ||
this->CheckWindow(PetInfo) ||
this->CheckWindow(Shop) ||
this->CheckWindow(SkillTree) ||
this->CheckWindow(Store) ||
this->CheckWindow(Trade) ||
this->CheckWindow(FriendList) ||
this->CheckWindow(FastMenu) ||
this->CheckWindow(MuHelper) ||
this->CheckWindow(Quest) ||
this->CheckWindow(Warehouse))
return true;
return false;
}

bool Interface::CombinedChecks()
{
if ((this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Character)
&& this->CheckWindow(Store)))
return true;
return false;
}
// ----------------------------------------------------------------------------------------------
void Interface::DrawUsersPanelWindow()
{
if( !this->Data[eUSERSPANEL_MAIN].OnShow )
{
return;
}
// ----
DWORD ItemNameColor = eWhite;
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 90.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eUSERSPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eUSERSPANEL_TITLE, StartX, StartY);
StartY = this->DrawRepeatGUI(eUSERSPANEL_FRAME, StartX, StartY + 20.0, 13);
this->DrawGUI(eUSERSPANEL_FOOTER, StartX, StartY);
// ----
if( IsWorkZone(eUSERSPANEL_CLOSE) )
{
DWORD Color = eGray100;

if( this->Data[eUSERSPANEL_CLOSE].OnClick )
{
Color = eGray150;
}

this->DrawColoredGUI(eUSERSPANEL_CLOSE, this->Data[eUSERSPANEL_CLOSE].X, this->Data[eUSERSPANEL_CLOSE].Y, Color);
}
// ----
this->DrawGUI(eUSERSPANEL_CLOSE, ButtonX, this->Data[eUSERSPANEL_FOOTER].Y + 0);
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + -205, 210, 3, gCustomMessage.GetMessageB(3240));
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + 10, 210, 3, gCustomMessage.GetMessageB(388));
this->DrawGUI(eUSERSPANEL_DIV, StartX, this->Data[eUSERSPANEL_FOOTER].Y - 20);
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 38);
this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 55);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 40, +125, 1, gCustomMessage.GetMessageB(3795));
{
if(lifebar)
{
}
else
{
this->DrawGUI(eUSERSPANEL_HPBAR, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_RANKHIDE, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 63);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 80);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 65, +125, 1, gCustomMessage.GetMessageB(3796));
{
if(rankbar)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_TRONGLOW, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 88);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 105);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 90, +135, 1, gCustomMessage.GetMessageB(3797));
{
if(g_bEnabled)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
}
// ----
}
// ----
this->DrawGUI(eUSERSPANEL_FOG, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 113);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 130);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 115, +125, 1, gCustomMessage.GetMessageB(3798));
{
if(gFog.EnableFog)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
}
// ----
}
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 138);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 155);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 140, +125, 1, gCustomMessage.GetMessageB(3799));
{
if (!gChatExpanded.IsActive)
        {
}
else
{
this->DrawGUI(eUSERSPANEL_CHAT, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
}
// ----
}

/* // ----
this->DrawGUI(eUSERSPANEL_MINIMAP, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 165);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 182);
this->DrawFormat(eWhite, StartX + 20, this->Data[eUSERSPANEL_MAIN].Y + 167, +120, 3, "Mini Map      ");
{
if (showMiniMap)
        {
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
}
// ----

}
// ----
*/
}
bool Interface::EventUsersPanelWindow_Main(DWORD Event)
{
this->EventUsersPanelWindow_Close(Event);
this->EventUsersPanelWindow_HPBAR(Event);
this->EventUsersPanelWindow_RANKHIDE(Event);
this->EventUsersPanelWindow_TRONGLOW(Event);
this->EventUsersPanelWindow_FOG(Event);
this->EventUsersPanelWindow_CHAT(Event);
this->EventUsersPanelWindow_MINIMAP(Event);
return true;
}
bool Interface::EventUsersPanelWindow_Close(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CLOSE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CLOSE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CLOSE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CLOSE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_CLOSE].EventTick = GetTickCount();
this->CloseUsersPanelWindow();
// ----
return false;
}
bool Interface::EventUsersPanelWindow_HPBAR(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_HPBAR].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_HPBAR) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_HPBAR].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_HPBAR].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_HPBAR].EventTick = GetTickCount();
if(lifebar)
{
lifebar = false;
}
else
{
lifebar = true;
}
}
bool Interface::EventUsersPanelWindow_RANKHIDE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_RANKHIDE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_RANKHIDE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_RANKHIDE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_RANKHIDE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_RANKHIDE].EventTick = GetTickCount();
if(rankbar)
{
rankbar = false;
}
else
{
rankbar = true;
}
}
bool Interface::EventUsersPanelWindow_TRONGLOW(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_TRONGLOW].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_TRONGLOW) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_TRONGLOW].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].EventTick = GetTickCount();
if(g_bEnabled) //Effects
{
g_bEnabled = false;
}
else
{
g_bEnabled = true;
}
}
bool Interface::EventUsersPanelWindow_FOG(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_FOG].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_FOG) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_FOG].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_FOG].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_FOG].EventTick = GetTickCount();
if(gFog.EnableFog) //Fog
{
gFog.EnableFog = false;
}
    else
{
gFog.EnableFog = true;
}
}
bool Interface::EventUsersPanelWindow_CHAT(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CHAT].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CHAT) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CHAT].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CHAT].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_CHAT].EventTick = GetTickCount();
gChatExpanded.Switch();
}
bool Interface::EventUsersPanelWindow_MINIMAP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_MINIMAP].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_MINIMAP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_MINIMAP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_MINIMAP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_MINIMAP].EventTick = GetTickCount();
if(showMiniMap) //Fog
{
gInterface.showMiniMap = false;
}
    else
{
gInterface.showMiniMap = true;
}
}

void Interface::DrawPSHOP()
{
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 100.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
// ---
if(this->CheckWindow(ObjWindow::Store) == true && this->CheckWindow(ObjWindow::ExpandInventory) == true)
{
StartX -= 190;
}
// ---
this->DrawFormat(eGold, StartX + 31, StartY + 77, + 125, 3, gCustomMessage.GetMessageB(3245));
// ---
this->DrawGUI(eSHOP_WC, StartX + 70, StartY + 90);
this->DrawFormat(eWhite, StartX + 80, StartY + 97, 100.0f, 1.0f, "WCoinC");
// ---
this->DrawGUI(eSHOP_B, StartX + 70, StartY + 120);
this->DrawFormat(eYellow, StartX + 85, StartY + 127, 100.0f, 1.0f, "Bless");
// ---
this->DrawGUI(eSHOP_WP, StartX + 125, StartY + 90);
this->DrawFormat(eWhite, StartX + 135, StartY + 97, 100.0f, 1.0f, "WCoinP");
// ---
this->DrawGUI(eSHOP_S, StartX + 125, StartY + 120);
this->DrawFormat(eYellow, StartX + 139, StartY + 127, 100.0f, 1.0f, "Soul");
// ---
this->DrawGUI(eSHOP_GP, StartX + 180, StartY + 90);
this->DrawFormat(eWhite, StartX + 187, StartY + 97, 100.0f, 1.0f, "GoblinPoint");
// ---
this->DrawGUI(eSHOP_C, StartX + 180, StartY + 120);
this->DrawFormat(eYellow, StartX + 195, StartY + 127, 100.0f, 1.0f, "Chaos");
// ---
/*this->DrawGUI(eSHOP_L, StartX + 70, StartY + 150);
this->DrawFormat(eYellow, StartX + 85, StartY + 157, 100.0f, 1.0f, "Life");
// ---
this->DrawGUI(eSHOP_Gem, StartX + 70, StartY + 180);
this->DrawFormat(eYellow, StartX + 80, StartY + 187, 100.0f, 1.0f, "Gemstone");
// ---
this->DrawGUI(eSHOP_Cr, StartX + 125, StartY + 150);
this->DrawFormat(eYellow, StartX + 135, StartY + 157, 100.0f, 1.0f, "Creation");
// ---
this->DrawGUI(eSHOP_H, StartX + 125, StartY + 180);
this->DrawFormat(eYellow, StartX + 137, StartY + 187, 100.0f, 1.0f, "Harmony");
// ---
this->DrawGUI(eSHOP_G, StartX + 180, StartY + 150);
this->DrawFormat(eYellow, StartX + 191, StartY + 157, 100.0f, 1.0f, "Guardian");
// ---
this->DrawGUI(eSHOP_R, StartX + 180, StartY + 180);
this->DrawFormat(eYellow, StartX + 187, StartY + 187, 100.0f, 1.0f, "Refine Stone");*/
// ---
this->DrawGUI(eSHOP_OFF, StartX + 190, StartY + 291);
// ---

if(IsWorkZone(eSHOP_OFF))
{
this->DrawToolTip(StartX + 170, StartY + 280, gCustomMessage.GetMessageB(3244));
}
}
bool Interface::DrawPSHOP_Main(DWORD Event)
{
this->DrawPSHOP_BLESS(Event);
this->DrawPSHOP_SOUL(Event);
this->DrawPSHOP_CHAOS(Event);
this->DrawPSHOP_WCOINC(Event);
this->DrawPSHOP_WCOINP(Event);
this->DrawPSHOP_COINTP(Event);
this->DrawPSHOP_OFFBUTTON(Event);
this->DrawPSHOP_LIFE(Event);
this->DrawPSHOP_CREATION(Event);
this->DrawPSHOP_GUARDIAN(Event);
this->DrawPSHOP_GEMSTONE(Event);
this->DrawPSHOP_HARMONY(Event);
this->DrawPSHOP_REFINE(Event);
return true;
}
bool Interface::DrawPSHOP_BLESS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_B].EventTick);
// ----
if(!this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_B))
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_B].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_B].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x01,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_SOUL(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_S].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_S) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_S].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_S].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_S].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_CHAOS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_C].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_C) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_C].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_C].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_C].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x03,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINC(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WC].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WC) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WC].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WC].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WC].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x04,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x05,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_COINTP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_GP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_GP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_GP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_GP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_GP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x06,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_LIFE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_L].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_L) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_L].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_L].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_L].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x09,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_CREATION(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Cr].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Cr) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Cr].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Cr].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Cr].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x10,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GUARDIAN(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_G].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_G) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_G].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_G].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_G].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x11,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GEMSTONE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Gem].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Gem) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Gem].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Gem].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Gem].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x12,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_HARMONY(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_H].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_H) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_H].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_H].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_H].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x13,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_REFINE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_R].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_R) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_R].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_R].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x14,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_OFFBUTTON(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_OFF].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_OFF) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_OFF].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_OFF].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eSHOP_OFF].EventTick = GetTickCount();
gInterface.OpenOffWindow();
}

void Interface::DrawPSHOP_OFFMODE()
{
if( !this->Data[eOFFPANEL_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFPANEL_TITLE, StartX, StartY);
//StartY = this->DrawRepeatGUI(eOFFPANEL_FRAME, StartX, StartY + 67.0, 13);
this->DrawGUI(eOFFPANEL_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, gCustomMessage.GetMessageB(3244));
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, gCustomMessage.GetMessageB(3246));
this->DrawGUI(eOFFPANEL_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFPANEL_CANE, StartX + 140, StartY + 75);
}

bool Interface::DrawPSHOP_OFFMAIN(DWORD Event)
{
this->DrawPSHOP_OFFYES(Event);
this->DrawPSHOP_OFFCANE(Event);
return true;
}

bool Interface::DrawPSHOP_OFFYES(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_YES].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x07,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffWindow();
}
bool Interface::DrawPSHOP_OFFCANE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_CANE].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_CANE].EventTick = GetTickCount();
this->CloseOffWindow();
}

// OFF ATTACK MODE
void Interface::DrawOffAttack()
{
if( !this->Data[eOFFATTACK_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFATTACK_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFATTACK_TITLE, StartX, StartY);
this->DrawGUI(eOFFATTACK_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, "Offline Attack System");
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, "Leave your Character in OFFATTACK mode?");
this->DrawGUI(eOFFATTACK_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFATTACK_CANE, StartX + 140, StartY + 75);

}

bool Interface::OffAttackEvent_Main(DWORD Event)
{
this->OffAttackEvent_Button1(Event);
this->OffAttackEvent_Button2(Event);
return true;
}

bool Interface::OffAttackEvent_Button1(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_YES].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x08,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffAttackWindow();
}
bool Interface::OffAttackEvent_Button2(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_CANE].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_CANE].EventTick = GetTickCount();
this->CloseOffAttackWindow();
}


void Interface::Work2() {
if (gInterface.item_post_ && pCursorX < 150)
{
gInterface.DrawItemToolTipText(gInterface.item_post_, pCursorX + 80, pCursorY - 80);
if (gInterface.last_tickcount_view_ + 100 < GetTickCount()) {
gInterface.item_post_ = nullptr;
}
}
    pDrawInterface2();
}

void Interface::DrawChat ( int mode, char* character, char* message ) {
    PBMSG_CHATPOSTITEM chat;
    memset ( &chat.character_[0], 0, 10 );
    memset ( &chat.message_[0], 0, 89 );
    memcpy ( &chat.character_[0], &character[0], 10 );
    memcpy ( &chat.message_[0], &message[0], strlen ( message ) );
    pHandlePacketChatData ( &chat );

if (mode >= 1 && mode <= 9 && ChatBoxMuObjectChatDataPtrArrayLength) {
int index = ChatBoxMuObjectChatDataPtrArrayLength - 1;
ChatBoxMuObjectChatDataPtrArray[index]->chat_type_ = mode;
}
}

void Interface::DrawItemToolTipText ( void * item, int x, int y ) {
static DWORD mem = 0;
//static DWORD ItemToolTipAdress1 = 0x00861110; //1.04D-> 0x00860FC0
//static DWORD ItemToolTipAdress2 = 0x00861AA0; //1.04D-> 0x00861950
//static DWORD ItemToolTipAdress3 = 0x007E3E30; //1.04D-> 0x007E3CE0
_asm {
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH item
    PUSH y
    PUSH x
MOV mem,0x00861110
    CALL mem
    MOV ECX, EAX
MOV mem,0x00861AA0
    CALL mem
    MOV ECX, EAX
MOV mem,0x007E3E30
    CALL mem
}

}

void Interface::DrawS2Interface()
{
gInterface.DrawGUI(eSkillBox, 305, 443);
}

void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 435, gCustomMessage.GetMessage(11));
}
if (this->CheckWindow(Party))
{
gInterface.DrawGUI(eParty, 348, 449);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 435, gCustomMessage.GetMessage(12));
}
if (this->CheckWindow(Character))
{
gInterface.DrawGUI(eCharacter, 378.5f, 449);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 435, gCustomMessage.GetMessage(13));
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawGUI(eInventory, 409, 449);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, gCustomMessage.GetMessage(14));
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawGUI(eFriend, 581, 432);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, gCustomMessage.GetMessage(15));
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawGUI(eFastMenu, 5, 432);
}

}

void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}

if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
}


Offline ailsoncost #23 Posteado: March 16, 2022, 01:21:57 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 48
  • Gracias recibida: 584
  • br
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo


Obrigada. Mas meu código fonte não tem esses

Code: [Select]
#include "stdafx.h"
#include "Interface.h"
#include "TMemory.h"
#include "Protocol.h"
#include "Offset.h"
#include "User.h"
#include "Import.h"
#include "Defines.h"
#include "Camera.h"
#include "Fog.h"
#include "Other.h"
#include "Graphics.h"
#include "Glow.h"
#include "ChatExpanded.h"
#include "Reconnect.h"
#include "Config.h"
#include "CustomMessage.h"
#include "CustomEventTime.h"
#include "post_item.h"
#include "inter3.h"

Interface gInterface;
DWORD CharacterInfoExtern_Buff;
char CharacterInfoExtern_LevelBuff[80];
DWORD AddSomeShine_Buff;
DWORD AddSomeShine_Pointer;
bool Checkbox = true;

Interface::Interface()
{
ZeroMemory(this->Data, sizeof(this->Data));
}
Naked(AddSomeShine)
{
_asm
{
mov eax, dword ptr ds:[ecx + 0x30]
mov AddSomeShine_Buff, eax
}

if( AddSomeShine_Buff == 349 || AddSomeShine_Buff == 406 || AddSomeShine_Buff == 407 || AddSomeShine_Buff == 408 )
{
_asm
{
mov AddSomeShine_Buff, 0x005E4979
jmp AddSomeShine_Buff
}
}
else
{
_asm
{
mov AddSomeShine_Buff, 0x005E4A3C
jmp AddSomeShine_Buff
}
}
}

void Interface::Load()
{
/* this->BindObject(eSkillBox, iNewSkillBox, 32, 38, 305, 443);
// this->BindObject(eDragonLeft, iDragonLeft, 108, 45, 0, 388);
// this->BindObject(eDragonRight, iDragonRight, 108, 45, 532, 388);
// this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
*/
//--
this->BindObject(eSAMPLEBUTTON, 0x7AA4, 16, 15, 175, 1);
this->BindObject(eCheck, 0x9991, 15, 15, -1, -1);
this->BindObject(eUnCheck, 0x9992, 15, 15, -1, -1);
this->BindObject(eTIME, 0x787E, 80, 20, 174, 0);
this->BindObject(eOFFATTACK_BUTTON, 0x787F, 16, 12, -1, -1);
this->BindObject(eOPTIONS_BUTTON, 0x787D, 16, 12, -1, 1);
//---
this->BindObject(eCAMERA_MAIN, 0x787A, 93, 18, 174, 0);
this->BindObject(eCAMERA_BUTTON1, 0x787B, 16, 12, -1, -1);
this->BindObject(eCAMERA_BUTTON2, 0x787C, 16, 12, -1, -1);
//this->BindObject(eLOGO, 0x9989, 63.3, 50, 192.5, 1);
this->BindObject(eSHOP_WC, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_WP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_GP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_B, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_S, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_C, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_L, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Cr, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_G, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Gem, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_H, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_R, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_OFF, 0x7C04, 36, 27, -1, -1);
//---
this->BindObject(eOFFPANEL_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFPANEL_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFPANEL_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eOFFATTACK_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFATTACK_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFATTACK_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFATTACK_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFATTACK_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFATTACK_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eUSERSPANEL_MAIN, 0x7A5A, 222, 256, -1, -1);
this->BindObject(eUSERSPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eUSERSPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eUSERSPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eUSERSPANEL_DIV, 0x7A62, 223, 21, -1, -1);
this->BindObject(eUSERSPANEL_OPTION, 0x7B68, 10, 10, -1, -1);
this->BindObject(eUSERSPANEL_LINE, 0x7B67, 154, 2, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON1, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON2, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_FOG, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CLOSE, 0x7A5E, 128, 29, -1, -1);
this->BindObject(eUSERSPANEL_HPBAR, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_RANKHIDE, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_TRONGLOW, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CHAT, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_MINIMAP, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CAMERA, 0x9991, 15, 15, -1, -1);
//--
//Command info
this->BindObject(eEventTime_MAIN, 0x789F, 222, 195, -1, -1);
this->BindObject(eEventTime_CLOSE, 0x7EC5, 36, 29, -1, -1);

//---
this->Data[eTIME].OnShow = true;
this->showMiniMap = false;
//SetOp((LPVOID)oAllowGUI_Call1, this->AllowGUI, ASM::CALL);
//SetOp((LPVOID)oAllowGUI_Call2, this->AllowGUI, ASM::CALL);
SetOp((LPVOID)oDrawInterface_Call, this->Work, ASM::CALL);
SetOp((LPVOID)oLoadSomeForm_Call, this->LoadImages, ASM::CALL);
SetOp((LPVOID)0x00633FFB, this->LoadModels, ASM::CALL);
SetOp((LPVOID)0x00842468, this->PShopTextInfo, ASM::CALL);
//==========================================
// - Remove Texts PShop
//==========================================
SetRange((LPVOID)0x00842086, 5, ASM::NOP);
SetRange((LPVOID)0x0084234F, 5, ASM::NOP);
SetRange((LPVOID)0x008423C3, 5, ASM::NOP);
// - Draw Post Item
 this->item_post_ = nullptr;
 SetOp((LPVOID)oDrawInterface2_Call, this->Work2, ASM::CALL);
}
void Interface::Work()
{
gInterface.DrawTimeUI();
gObjUser.Refresh();
gCamera.Rotate();
gCamera.Position();
//--
ReconnectMainProc();
gInterface.DrawOffAttack();
gInterface.DrawPSHOP_OFFMODE();
gInterface.DrawUsersPanelWindow();
gInterface.DrawCameraUI();
pDrawInterface();
//--
gCustomEventTime.DrawEventTimePanelWindow();
}
int Interface::PShopTextInfo(int pThis)
{
gInterface.DrawPSHOP();
// ---
return pPShopTextInfo(pThis);
}
void Interface::LoadImages()
{
/* pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu02.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu03_new.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
// pLoadImage("Custom\\Interface\\s3\\2Menu04.tga", iDragonLeft, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu05.tga", iDragonRight, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2win_push.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2menu01_new2.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2SkillBox.jpg", iNewSkillBox, GL_LINEAR, GL_CLAMP, 1, 0);
*/
//--
pLoadImage("Interface\\TimeBar.tga", 0x787E, 0x2601, 0x2901, 1, 0);
pLoadImage("Interface\\CameraUI_BG.tga", 0x787A, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Switch.tga", 0x787B, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Reset.tga", 0x787C, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\OffAttack_Switch.tga", 0x787F, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\MacroSetup.tga", 0x787D, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Interface\\EventTime.tga", 0x789F, 0x2601, 0x2900, 1, 0);
// logo
//pLoadImage("Custom\\logo\\mwebgame.tga", 0x9989, 0x2601, 0x2900, 1, 0);
// MiniMap
pLoadImage("Interface\\check.jpg", 0x9991, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\uncheck.jpg", 0x9992, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\button.tga", 0x9994, 0x2601, 0x2900, 1, 0);
//--
//Here animation for cape. Wing 214.bmd for display only item in Inventory
pLoadImage("Item\\Newdeath01.tga", 0x789C, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Newdeath02.tga", 0x789D, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4dd.tga", 0x78A5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4de.tga", 0x78A6, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\ragefighterwing4db.tga", 0x78A8, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\growlancerwing4dc.tga", 0x78A9, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item801_2_wing.tga", 0x78B1, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item802_2_wing.tga", 0x78B2, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\NCcapeSmall.tga", 0x78B3, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\DarkLordRobeSmall.tga", 0x78B4, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\darklordwing4ddmr.tga", 0x78B5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4demr.tga", 0x78B6, 0x2601, 0x2900, 1, 0);
//--
pLoadSomeForm();
}
void Interface::LoadModels()
{
pInitModelData2();
}
void Interface::BindObject(short MonsterID, DWORD ModelID, float Width, float Height, float X, float Y)
{
this->Data[MonsterID].EventTick = 0;
this->Data[MonsterID].OnClick = false;
this->Data[MonsterID].OnShow = false;
this->Data[MonsterID].ModelID = ModelID;
this->Data[MonsterID].Width = Width;
this->Data[MonsterID].Height = Height;
this->Data[MonsterID].X = X;
this->Data[MonsterID].Y = Y;
this->Data[MonsterID].MaxX = X + Width;
this->Data[MonsterID].MaxY = Y + Height;
this->Data[MonsterID].Attribute = 0;
}
void Interface::DrawSampleButton()
{
float PosX = this->GetResizeX(eSAMPLEBUTTON);

if( this->CheckWindow(ObjWindow::CashShop)
|| this->CheckWindow(ObjWindow::FullMap)
|| this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(MoveList) )
{
return;
}

this->DrawGUI(eSAMPLEBUTTON, PosX, 1);

if( !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

this->DrawToolTip(PosX - 5, 31, "Button tooltip");

if( this->Data[eSAMPLEBUTTON].OnClick )
{
this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(40, 20, 3, 130));
return;
}

this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(255, 204, 20, 130));
}
void Interface::EventSampleButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSAMPLEBUTTON].EventTick);

if( this->CheckWindow(CashShop) || this->CheckWindow(FullMap)
|| this->CheckWindow(SkillTree) || this->CheckWindow(MoveList)
|| !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

if( Event == WM_LBUTTONDOWN )
{
this->Data[eSAMPLEBUTTON].OnClick = true;
return;
}

this->Data[eSAMPLEBUTTON].OnClick = false;

if( Delay < 500 )
{
return;
}

this->Data[eSAMPLEBUTTON].EventTick = GetTickCount();

if( !this->Data[eRANK_MAIN].OnShow )
{
this->Data[eRANK_MAIN].OnShow = true;
}
else
{
this->Data[eRANK_MAIN].OnShow = false;
}
}
void Interface::DrawCameraUI()
{
float PosX = this->GetResizeX(eCAMERA_MAIN);
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
this->DrawGUI(eCAMERA_MAIN, PosX, 0);
this->DrawGUI(eCAMERA_BUTTON1, PosX + 18.5, 1);
this->DrawGUI(eCAMERA_BUTTON2, PosX + 37.0, 1);
//this->DrawGUI(eLOGO, PosX + 370, 20);
this->DrawGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5);
this->DrawGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5);
// ----
if (gCamera.IsActive)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, eShinyGreen);
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
if (gCamera.IsActive)
{
this->DrawToolTip(PosX + 18.5 - 5, 25, "Zoom: %02.f%%", gCamera.ZoomPercent);
}
else
{
this->DrawToolTip(PosX + 18.5 - 5, 25, gCustomMessage.GetMessageB(3243));
}
// ----
if (this->Data[eCAMERA_BUTTON1].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(255, 204, 20, 200));
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
this->DrawToolTip(PosX + 37.0 - 5, 25, gCustomMessage.GetMessageB(3242));
// ----
if (this->Data[eCAMERA_BUTTON2].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(255, 204, 20, 200));
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
{
this->DrawToolTip(PosX + 0.5 - 5, 25, gCustomMessage.GetMessageB(3241));
}
// ----
if (this->Data[eOFFATTACK_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(250, 125, 50, 200));
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
{
this->DrawToolTip(PosX + 55.5 - 5, 25, gCustomMessage.GetMessageB(3240)); //Advanced Options

}
// ----
if (this->Data[eOPTIONS_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 55.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5, pMakeColor(255, 204, 20, 200));
}
// ----
}
// ----------------------------------------------------------------------------------------------
void Interface::EventCameraUI(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON1].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON1].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON1].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON1].EventTick = GetTickCount();
// ----
gCamera.Switch();
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON2].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON2].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON2].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON2].EventTick = GetTickCount();
// ----
gCamera.Init();
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOFFATTACK_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].EventTick = GetTickCount();
// ----
OpenOffAttackWindow();
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOPTIONS_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOPTIONS_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOPTIONS_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOPTIONS_BUTTON].EventTick = GetTickCount();
// ----
gInterface.OpenUsersPanelWindow();
}
}
// ----------------------------------------------------------------------------------------------
bool Interface::CheckWindow(int WindowID)
{
return pCheckWindow(pWindowThis(), WindowID);
}
int Interface::CloseWindow(int WindowID)
{
return pCloseWindow(pWindowThis(), WindowID);
}
int Interface::OpenWindow(int WindowID)
{
return pOpenWindow(pWindowThis(), WindowID);
}

void Interface::DrawTimeUI()
{
if (!this->Data[eTIME].OnShow)
{
return;
}
// ----
if (this->CheckWindow(ObjWindow::CashShop) || this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(ObjWindow::MoveList) || this->CheckWindow(ObjWindow::ChatWindow) || this->CheckWindow(FullMap))
{
return;
}
// ----
this->DrawGUI(eTIME, 0.0f, 412.0f);
// -----
time_t TimeLocal;
struct tm * LocalT;
time(&TimeLocal);
LocalT = localtime(&TimeLocal);
char LocalTime[30];
sprintf(LocalTime, "%2d:%02d:%02d", LocalT->tm_hour, LocalT->tm_min, LocalT->tm_sec);
this->DrawFormat(eWhite, 27.0f, 418.0f, 100.0f, 1.0f, LocalTime);
}
/*
bool Interface::AllowGUI()
{
if( gInterface.CheckResetWindow())
{
return false;
}

return pAllowGUI();
}
*/
void Interface::SetTextColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Opacity)
{
pSetTextColor(pTextThis(), Red, Green, Blue, Opacity);
}
void Interface::DrawText(int X, int Y, LPCTSTR Text)
{
pDrawText(pTextThis(), X, Y, Text, 0, 0, (LPINT)1, 0);
}
int Interface::DrawFormat(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawColorText(Line, PosX, PosY, Width, 0, Color, 0, Align);
PosY += 10;
Line = strtok(NULL, "\n");
}

return PosY;
}
void Interface::DrawFormatEx(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

pDrawColorText(Buff, PosX, PosY, Width, 0, Color, 0, Align);
}
float Interface::DrawRepeatGUI(short MonsterID, float X, float Y, int Count)
{
float StartY = Y;

for( int i = 0; i < Count; i++ )
{
pDrawGUI(this->Data[MonsterID].ModelID, X, StartY,this->Data[MonsterID].Width, this->Data[MonsterID].Height);

StartY += this->Data[MonsterID].Height;
}

return StartY;
}
void Interface::DrawGUI(short ObjectID, float PosX, float PosY)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = PosX;
this->Data[ObjectID].Y = PosY;
this->Data[ObjectID].MaxX = PosX + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = PosY + this->Data[ObjectID].Height;
}

pDrawGUI(this->Data[ObjectID].ModelID, PosX, PosY,this->Data[ObjectID].Width, this->Data[ObjectID].Height);
}
void Interface::DrawColoredGUI(short ObjectID, float X, float Y, DWORD Color)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = X;
this->Data[ObjectID].Y = Y;
this->Data[ObjectID].MaxX = X + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = Y + this->Data[ObjectID].Height;
}

pDrawColorButton(this->Data[ObjectID].ModelID, X, Y,this->Data[ObjectID].Width, this->Data[ObjectID].Height, 0, 0, Color);
}
int Interface::DrawToolTip(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawToolTip(X, Y, Buff);
}
int Interface::DrawToolTipEx(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawToolTip(X, Y, Line);
Y += 10;
Line = strtok(NULL, "\n");
}

return Y;
}
int Interface::DrawMessage(int Mode, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawMessage(Buff, Mode);
}
bool Interface::IsWorkZone(short ObjectID)
{
float PosX = this->Data[ObjectID].X;
float MaxX = PosX + this->Data[ObjectID].Width;

if( ObjectID == eSAMPLEBUTTON )
{
PosX = this->GetResizeX(ObjectID);
MaxX = PosX + this->Data[ObjectID].Width;
}

if( (gObjUser.m_CursorX < PosX || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
bool Interface::IsWorkZone(float X, float Y, float MaxX, float MaxY)
{
if( (gObjUser.m_CursorX < X || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < Y || gObjUser.m_CursorY > MaxY) )
return false;

return true;
}
float Interface::GetResizeX(short ObjectID)
{
if( pWinWidth == 800 )
{
return this->Data[ObjectID].X + 16.0;
}
else if( pWinWidth != 1024 )
{
return this->Data[ObjectID].X - 16.0;
}

return this->Data[ObjectID].X;
}

float Interface::GetResizeY(short ObjectID)
{

return this->Data[ObjectID].Y;
}
// ----------------------------------------------------------------------------------------------
bool Interface::MiniMapCheck()
{
if (this->CheckWindow(Inventory) ||
this->CheckWindow(CashShop) ||
this->CheckWindow(ChaosBox) ||
this->CheckWindow(Character) ||
this->CheckWindow(CommandWindow) ||
this->CheckWindow(ExpandInventory) ||
this->CheckWindow(ExpandWarehouse) ||
this->CheckWindow(FullMap) ||
this->CheckWindow(GensInfo) ||
this->CheckWindow(Guild) ||
this->CheckWindow(NPC_Dialog) ||
this->CheckWindow(NPC_Julia) ||
this->CheckWindow(NPC_Titus) ||
this->CheckWindow(OtherStore) ||
this->CheckWindow(Party) ||
this->CheckWindow(PetInfo) ||
this->CheckWindow(Shop) ||
this->CheckWindow(SkillTree) ||
this->CheckWindow(Store) ||
this->CheckWindow(Trade) ||
this->CheckWindow(FriendList) ||
this->CheckWindow(FastMenu) ||
this->CheckWindow(MuHelper) ||
this->CheckWindow(Quest) ||
this->CheckWindow(Warehouse))
return true;
return false;
}

bool Interface::CombinedChecks()
{
if ((this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Character)
&& this->CheckWindow(Store)))
return true;
return false;
}
// ----------------------------------------------------------------------------------------------
void Interface::DrawUsersPanelWindow()
{
if( !this->Data[eUSERSPANEL_MAIN].OnShow )
{
return;
}
// ----
DWORD ItemNameColor = eWhite;
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 90.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eUSERSPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eUSERSPANEL_TITLE, StartX, StartY);
StartY = this->DrawRepeatGUI(eUSERSPANEL_FRAME, StartX, StartY + 20.0, 13);
this->DrawGUI(eUSERSPANEL_FOOTER, StartX, StartY);
// ----
if( IsWorkZone(eUSERSPANEL_CLOSE) )
{
DWORD Color = eGray100;

if( this->Data[eUSERSPANEL_CLOSE].OnClick )
{
Color = eGray150;
}

this->DrawColoredGUI(eUSERSPANEL_CLOSE, this->Data[eUSERSPANEL_CLOSE].X, this->Data[eUSERSPANEL_CLOSE].Y, Color);
}
// ----
this->DrawGUI(eUSERSPANEL_CLOSE, ButtonX, this->Data[eUSERSPANEL_FOOTER].Y + 0);
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + -205, 210, 3, gCustomMessage.GetMessageB(3240));
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + 10, 210, 3, gCustomMessage.GetMessageB(388));
this->DrawGUI(eUSERSPANEL_DIV, StartX, this->Data[eUSERSPANEL_FOOTER].Y - 20);
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 38);
this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 55);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 40, +125, 1, gCustomMessage.GetMessageB(3795));
{
if(lifebar)
{
}
else
{
this->DrawGUI(eUSERSPANEL_HPBAR, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_RANKHIDE, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 63);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 80);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 65, +125, 1, gCustomMessage.GetMessageB(3796));
{
if(rankbar)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_TRONGLOW, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 88);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 105);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 90, +135, 1, gCustomMessage.GetMessageB(3797));
{
if(g_bEnabled)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
}
// ----
}
// ----
this->DrawGUI(eUSERSPANEL_FOG, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 113);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 130);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 115, +125, 1, gCustomMessage.GetMessageB(3798));
{
if(gFog.EnableFog)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
}
// ----
}
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 138);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 155);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 140, +125, 1, gCustomMessage.GetMessageB(3799));
{
if (!gChatExpanded.IsActive)
        {
}
else
{
this->DrawGUI(eUSERSPANEL_CHAT, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
}
// ----
}

/* // ----
this->DrawGUI(eUSERSPANEL_MINIMAP, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 165);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 182);
this->DrawFormat(eWhite, StartX + 20, this->Data[eUSERSPANEL_MAIN].Y + 167, +120, 3, "Mini Map      ");
{
if (showMiniMap)
        {
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
}
// ----

}
// ----
*/
}
bool Interface::EventUsersPanelWindow_Main(DWORD Event)
{
this->EventUsersPanelWindow_Close(Event);
this->EventUsersPanelWindow_HPBAR(Event);
this->EventUsersPanelWindow_RANKHIDE(Event);
this->EventUsersPanelWindow_TRONGLOW(Event);
this->EventUsersPanelWindow_FOG(Event);
this->EventUsersPanelWindow_CHAT(Event);
this->EventUsersPanelWindow_MINIMAP(Event);
return true;
}
bool Interface::EventUsersPanelWindow_Close(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CLOSE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CLOSE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CLOSE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CLOSE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_CLOSE].EventTick = GetTickCount();
this->CloseUsersPanelWindow();
// ----
return false;
}
bool Interface::EventUsersPanelWindow_HPBAR(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_HPBAR].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_HPBAR) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_HPBAR].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_HPBAR].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_HPBAR].EventTick = GetTickCount();
if(lifebar)
{
lifebar = false;
}
else
{
lifebar = true;
}
}
bool Interface::EventUsersPanelWindow_RANKHIDE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_RANKHIDE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_RANKHIDE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_RANKHIDE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_RANKHIDE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_RANKHIDE].EventTick = GetTickCount();
if(rankbar)
{
rankbar = false;
}
else
{
rankbar = true;
}
}
bool Interface::EventUsersPanelWindow_TRONGLOW(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_TRONGLOW].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_TRONGLOW) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_TRONGLOW].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].EventTick = GetTickCount();
if(g_bEnabled) //Effects
{
g_bEnabled = false;
}
else
{
g_bEnabled = true;
}
}
bool Interface::EventUsersPanelWindow_FOG(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_FOG].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_FOG) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_FOG].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_FOG].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_FOG].EventTick = GetTickCount();
if(gFog.EnableFog) //Fog
{
gFog.EnableFog = false;
}
    else
{
gFog.EnableFog = true;
}
}
bool Interface::EventUsersPanelWindow_CHAT(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CHAT].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CHAT) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CHAT].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CHAT].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_CHAT].EventTick = GetTickCount();
gChatExpanded.Switch();
}
bool Interface::EventUsersPanelWindow_MINIMAP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_MINIMAP].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_MINIMAP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_MINIMAP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_MINIMAP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_MINIMAP].EventTick = GetTickCount();
if(showMiniMap) //Fog
{
gInterface.showMiniMap = false;
}
    else
{
gInterface.showMiniMap = true;
}
}

void Interface::DrawPSHOP()
{
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 100.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
// ---
if(this->CheckWindow(ObjWindow::Store) == true && this->CheckWindow(ObjWindow::ExpandInventory) == true)
{
StartX -= 190;
}
// ---
this->DrawFormat(eGold, StartX + 31, StartY + 77, + 125, 3, gCustomMessage.GetMessageB(3245));
// ---
this->DrawGUI(eSHOP_WC, StartX + 70, StartY + 90);
this->DrawFormat(eWhite, StartX + 80, StartY + 97, 100.0f, 1.0f, "WCoinC");
// ---
this->DrawGUI(eSHOP_B, StartX + 70, StartY + 120);
this->DrawFormat(eYellow, StartX + 85, StartY + 127, 100.0f, 1.0f, "Bless");
// ---
this->DrawGUI(eSHOP_WP, StartX + 125, StartY + 90);
this->DrawFormat(eWhite, StartX + 135, StartY + 97, 100.0f, 1.0f, "WCoinP");
// ---
this->DrawGUI(eSHOP_S, StartX + 125, StartY + 120);
this->DrawFormat(eYellow, StartX + 139, StartY + 127, 100.0f, 1.0f, "Soul");
// ---
this->DrawGUI(eSHOP_GP, StartX + 180, StartY + 90);
this->DrawFormat(eWhite, StartX + 187, StartY + 97, 100.0f, 1.0f, "GoblinPoint");
// ---
this->DrawGUI(eSHOP_C, StartX + 180, StartY + 120);
this->DrawFormat(eYellow, StartX + 195, StartY + 127, 100.0f, 1.0f, "Chaos");
// ---
/*this->DrawGUI(eSHOP_L, StartX + 70, StartY + 150);
this->DrawFormat(eYellow, StartX + 85, StartY + 157, 100.0f, 1.0f, "Life");
// ---
this->DrawGUI(eSHOP_Gem, StartX + 70, StartY + 180);
this->DrawFormat(eYellow, StartX + 80, StartY + 187, 100.0f, 1.0f, "Gemstone");
// ---
this->DrawGUI(eSHOP_Cr, StartX + 125, StartY + 150);
this->DrawFormat(eYellow, StartX + 135, StartY + 157, 100.0f, 1.0f, "Creation");
// ---
this->DrawGUI(eSHOP_H, StartX + 125, StartY + 180);
this->DrawFormat(eYellow, StartX + 137, StartY + 187, 100.0f, 1.0f, "Harmony");
// ---
this->DrawGUI(eSHOP_G, StartX + 180, StartY + 150);
this->DrawFormat(eYellow, StartX + 191, StartY + 157, 100.0f, 1.0f, "Guardian");
// ---
this->DrawGUI(eSHOP_R, StartX + 180, StartY + 180);
this->DrawFormat(eYellow, StartX + 187, StartY + 187, 100.0f, 1.0f, "Refine Stone");*/
// ---
this->DrawGUI(eSHOP_OFF, StartX + 190, StartY + 291);
// ---

if(IsWorkZone(eSHOP_OFF))
{
this->DrawToolTip(StartX + 170, StartY + 280, gCustomMessage.GetMessageB(3244));
}
}
bool Interface::DrawPSHOP_Main(DWORD Event)
{
this->DrawPSHOP_BLESS(Event);
this->DrawPSHOP_SOUL(Event);
this->DrawPSHOP_CHAOS(Event);
this->DrawPSHOP_WCOINC(Event);
this->DrawPSHOP_WCOINP(Event);
this->DrawPSHOP_COINTP(Event);
this->DrawPSHOP_OFFBUTTON(Event);
this->DrawPSHOP_LIFE(Event);
this->DrawPSHOP_CREATION(Event);
this->DrawPSHOP_GUARDIAN(Event);
this->DrawPSHOP_GEMSTONE(Event);
this->DrawPSHOP_HARMONY(Event);
this->DrawPSHOP_REFINE(Event);
return true;
}
bool Interface::DrawPSHOP_BLESS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_B].EventTick);
// ----
if(!this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_B))
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_B].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_B].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x01,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_SOUL(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_S].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_S) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_S].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_S].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_S].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_CHAOS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_C].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_C) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_C].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_C].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_C].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x03,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINC(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WC].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WC) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WC].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WC].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WC].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x04,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x05,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_COINTP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_GP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_GP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_GP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_GP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_GP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x06,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_LIFE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_L].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_L) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_L].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_L].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_L].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x09,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_CREATION(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Cr].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Cr) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Cr].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Cr].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Cr].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x10,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GUARDIAN(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_G].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_G) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_G].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_G].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_G].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x11,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GEMSTONE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Gem].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Gem) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Gem].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Gem].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Gem].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x12,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_HARMONY(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_H].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_H) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_H].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_H].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_H].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x13,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_REFINE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_R].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_R) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_R].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_R].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x14,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_OFFBUTTON(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_OFF].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_OFF) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_OFF].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_OFF].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eSHOP_OFF].EventTick = GetTickCount();
gInterface.OpenOffWindow();
}

void Interface::DrawPSHOP_OFFMODE()
{
if( !this->Data[eOFFPANEL_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFPANEL_TITLE, StartX, StartY);
//StartY = this->DrawRepeatGUI(eOFFPANEL_FRAME, StartX, StartY + 67.0, 13);
this->DrawGUI(eOFFPANEL_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, gCustomMessage.GetMessageB(3244));
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, gCustomMessage.GetMessageB(3246));
this->DrawGUI(eOFFPANEL_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFPANEL_CANE, StartX + 140, StartY + 75);
}

bool Interface::DrawPSHOP_OFFMAIN(DWORD Event)
{
this->DrawPSHOP_OFFYES(Event);
this->DrawPSHOP_OFFCANE(Event);
return true;
}

bool Interface::DrawPSHOP_OFFYES(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_YES].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x07,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffWindow();
}
bool Interface::DrawPSHOP_OFFCANE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_CANE].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_CANE].EventTick = GetTickCount();
this->CloseOffWindow();
}

// OFF ATTACK MODE
void Interface::DrawOffAttack()
{
if( !this->Data[eOFFATTACK_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFATTACK_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFATTACK_TITLE, StartX, StartY);
this->DrawGUI(eOFFATTACK_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, "Offline Attack System");
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, "Leave your Character in OFFATTACK mode?");
this->DrawGUI(eOFFATTACK_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFATTACK_CANE, StartX + 140, StartY + 75);

}

bool Interface::OffAttackEvent_Main(DWORD Event)
{
this->OffAttackEvent_Button1(Event);
this->OffAttackEvent_Button2(Event);
return true;
}

bool Interface::OffAttackEvent_Button1(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_YES].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x08,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffAttackWindow();
}
bool Interface::OffAttackEvent_Button2(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_CANE].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_CANE].EventTick = GetTickCount();
this->CloseOffAttackWindow();
}


void Interface::Work2() {
if (gInterface.item_post_ && pCursorX < 150)
{
gInterface.DrawItemToolTipText(gInterface.item_post_, pCursorX + 80, pCursorY - 80);
if (gInterface.last_tickcount_view_ + 100 < GetTickCount()) {
gInterface.item_post_ = nullptr;
}
}
    pDrawInterface2();
}

void Interface::DrawChat ( int mode, char* character, char* message ) {
    PBMSG_CHATPOSTITEM chat;
    memset ( &chat.character_[0], 0, 10 );
    memset ( &chat.message_[0], 0, 89 );
    memcpy ( &chat.character_[0], &character[0], 10 );
    memcpy ( &chat.message_[0], &message[0], strlen ( message ) );
    pHandlePacketChatData ( &chat );

if (mode >= 1 && mode <= 9 && ChatBoxMuObjectChatDataPtrArrayLength) {
int index = ChatBoxMuObjectChatDataPtrArrayLength - 1;
ChatBoxMuObjectChatDataPtrArray[index]->chat_type_ = mode;
}
}

void Interface::DrawItemToolTipText ( void * item, int x, int y ) {
static DWORD mem = 0;
//static DWORD ItemToolTipAdress1 = 0x00861110; //1.04D-> 0x00860FC0
//static DWORD ItemToolTipAdress2 = 0x00861AA0; //1.04D-> 0x00861950
//static DWORD ItemToolTipAdress3 = 0x007E3E30; //1.04D-> 0x007E3CE0
_asm {
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH item
    PUSH y
    PUSH x
MOV mem,0x00861110
    CALL mem
    MOV ECX, EAX
MOV mem,0x00861AA0
    CALL mem
    MOV ECX, EAX
MOV mem,0x007E3E30
    CALL mem
}

}

void Interface::DrawS2Interface()
{
gInterface.DrawGUI(eSkillBox, 305, 443);
}

void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 435, gCustomMessage.GetMessage(11));
}
if (this->CheckWindow(Party))
{
gInterface.DrawGUI(eParty, 348, 449);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 435, gCustomMessage.GetMessage(12));
}
if (this->CheckWindow(Character))
{
gInterface.DrawGUI(eCharacter, 378.5f, 449);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 435, gCustomMessage.GetMessage(13));
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawGUI(eInventory, 409, 449);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, gCustomMessage.GetMessage(14));
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawGUI(eFriend, 581, 432);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, gCustomMessage.GetMessage(15));
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawGUI(eFastMenu, 5, 432);
}

}

void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}

if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
}

LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0);

Gracias:


Offline Robins #24 Posteado: March 16, 2022, 01:45:35 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 435
  • vn
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo


Obrigada. Mas meu código fonte não tem esses

Code: [Select]
#include "stdafx.h"
#include "Interface.h"
#include "TMemory.h"
#include "Protocol.h"
#include "Offset.h"
#include "User.h"
#include "Import.h"
#include "Defines.h"
#include "Camera.h"
#include "Fog.h"
#include "Other.h"
#include "Graphics.h"
#include "Glow.h"
#include "ChatExpanded.h"
#include "Reconnect.h"
#include "Config.h"
#include "CustomMessage.h"
#include "CustomEventTime.h"
#include "post_item.h"
#include "inter3.h"

Interface gInterface;
DWORD CharacterInfoExtern_Buff;
char CharacterInfoExtern_LevelBuff[80];
DWORD AddSomeShine_Buff;
DWORD AddSomeShine_Pointer;
bool Checkbox = true;

Interface::Interface()
{
ZeroMemory(this->Data, sizeof(this->Data));
}
Naked(AddSomeShine)
{
_asm
{
mov eax, dword ptr ds:[ecx + 0x30]
mov AddSomeShine_Buff, eax
}

if( AddSomeShine_Buff == 349 || AddSomeShine_Buff == 406 || AddSomeShine_Buff == 407 || AddSomeShine_Buff == 408 )
{
_asm
{
mov AddSomeShine_Buff, 0x005E4979
jmp AddSomeShine_Buff
}
}
else
{
_asm
{
mov AddSomeShine_Buff, 0x005E4A3C
jmp AddSomeShine_Buff
}
}
}

void Interface::Load()
{
/* this->BindObject(eSkillBox, iNewSkillBox, 32, 38, 305, 443);
// this->BindObject(eDragonLeft, iDragonLeft, 108, 45, 0, 388);
// this->BindObject(eDragonRight, iDragonRight, 108, 45, 532, 388);
// this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
*/
//--
this->BindObject(eSAMPLEBUTTON, 0x7AA4, 16, 15, 175, 1);
this->BindObject(eCheck, 0x9991, 15, 15, -1, -1);
this->BindObject(eUnCheck, 0x9992, 15, 15, -1, -1);
this->BindObject(eTIME, 0x787E, 80, 20, 174, 0);
this->BindObject(eOFFATTACK_BUTTON, 0x787F, 16, 12, -1, -1);
this->BindObject(eOPTIONS_BUTTON, 0x787D, 16, 12, -1, 1);
//---
this->BindObject(eCAMERA_MAIN, 0x787A, 93, 18, 174, 0);
this->BindObject(eCAMERA_BUTTON1, 0x787B, 16, 12, -1, -1);
this->BindObject(eCAMERA_BUTTON2, 0x787C, 16, 12, -1, -1);
//this->BindObject(eLOGO, 0x9989, 63.3, 50, 192.5, 1);
this->BindObject(eSHOP_WC, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_WP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_GP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_B, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_S, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_C, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_L, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Cr, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_G, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Gem, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_H, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_R, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_OFF, 0x7C04, 36, 27, -1, -1);
//---
this->BindObject(eOFFPANEL_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFPANEL_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFPANEL_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eOFFATTACK_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFATTACK_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFATTACK_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFATTACK_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFATTACK_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFATTACK_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eUSERSPANEL_MAIN, 0x7A5A, 222, 256, -1, -1);
this->BindObject(eUSERSPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eUSERSPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eUSERSPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eUSERSPANEL_DIV, 0x7A62, 223, 21, -1, -1);
this->BindObject(eUSERSPANEL_OPTION, 0x7B68, 10, 10, -1, -1);
this->BindObject(eUSERSPANEL_LINE, 0x7B67, 154, 2, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON1, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON2, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_FOG, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CLOSE, 0x7A5E, 128, 29, -1, -1);
this->BindObject(eUSERSPANEL_HPBAR, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_RANKHIDE, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_TRONGLOW, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CHAT, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_MINIMAP, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CAMERA, 0x9991, 15, 15, -1, -1);
//--
//Command info
this->BindObject(eEventTime_MAIN, 0x789F, 222, 195, -1, -1);
this->BindObject(eEventTime_CLOSE, 0x7EC5, 36, 29, -1, -1);

//---
this->Data[eTIME].OnShow = true;
this->showMiniMap = false;
//SetOp((LPVOID)oAllowGUI_Call1, this->AllowGUI, ASM::CALL);
//SetOp((LPVOID)oAllowGUI_Call2, this->AllowGUI, ASM::CALL);
SetOp((LPVOID)oDrawInterface_Call, this->Work, ASM::CALL);
SetOp((LPVOID)oLoadSomeForm_Call, this->LoadImages, ASM::CALL);
SetOp((LPVOID)0x00633FFB, this->LoadModels, ASM::CALL);
SetOp((LPVOID)0x00842468, this->PShopTextInfo, ASM::CALL);
//==========================================
// - Remove Texts PShop
//==========================================
SetRange((LPVOID)0x00842086, 5, ASM::NOP);
SetRange((LPVOID)0x0084234F, 5, ASM::NOP);
SetRange((LPVOID)0x008423C3, 5, ASM::NOP);
// - Draw Post Item
 this->item_post_ = nullptr;
 SetOp((LPVOID)oDrawInterface2_Call, this->Work2, ASM::CALL);
}
void Interface::Work()
{
gInterface.DrawTimeUI();
gObjUser.Refresh();
gCamera.Rotate();
gCamera.Position();
//--
ReconnectMainProc();
gInterface.DrawOffAttack();
gInterface.DrawPSHOP_OFFMODE();
gInterface.DrawUsersPanelWindow();
gInterface.DrawCameraUI();
pDrawInterface();
//--
gCustomEventTime.DrawEventTimePanelWindow();
}
int Interface::PShopTextInfo(int pThis)
{
gInterface.DrawPSHOP();
// ---
return pPShopTextInfo(pThis);
}
void Interface::LoadImages()
{
/* pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu02.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu03_new.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
// pLoadImage("Custom\\Interface\\s3\\2Menu04.tga", iDragonLeft, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu05.tga", iDragonRight, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2win_push.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2menu01_new2.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2SkillBox.jpg", iNewSkillBox, GL_LINEAR, GL_CLAMP, 1, 0);
*/
//--
pLoadImage("Interface\\TimeBar.tga", 0x787E, 0x2601, 0x2901, 1, 0);
pLoadImage("Interface\\CameraUI_BG.tga", 0x787A, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Switch.tga", 0x787B, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Reset.tga", 0x787C, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\OffAttack_Switch.tga", 0x787F, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\MacroSetup.tga", 0x787D, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Interface\\EventTime.tga", 0x789F, 0x2601, 0x2900, 1, 0);
// logo
//pLoadImage("Custom\\logo\\mwebgame.tga", 0x9989, 0x2601, 0x2900, 1, 0);
// MiniMap
pLoadImage("Interface\\check.jpg", 0x9991, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\uncheck.jpg", 0x9992, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\button.tga", 0x9994, 0x2601, 0x2900, 1, 0);
//--
//Here animation for cape. Wing 214.bmd for display only item in Inventory
pLoadImage("Item\\Newdeath01.tga", 0x789C, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Newdeath02.tga", 0x789D, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4dd.tga", 0x78A5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4de.tga", 0x78A6, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\ragefighterwing4db.tga", 0x78A8, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\growlancerwing4dc.tga", 0x78A9, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item801_2_wing.tga", 0x78B1, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item802_2_wing.tga", 0x78B2, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\NCcapeSmall.tga", 0x78B3, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\DarkLordRobeSmall.tga", 0x78B4, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\darklordwing4ddmr.tga", 0x78B5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4demr.tga", 0x78B6, 0x2601, 0x2900, 1, 0);
//--
pLoadSomeForm();
}
void Interface::LoadModels()
{
pInitModelData2();
}
void Interface::BindObject(short MonsterID, DWORD ModelID, float Width, float Height, float X, float Y)
{
this->Data[MonsterID].EventTick = 0;
this->Data[MonsterID].OnClick = false;
this->Data[MonsterID].OnShow = false;
this->Data[MonsterID].ModelID = ModelID;
this->Data[MonsterID].Width = Width;
this->Data[MonsterID].Height = Height;
this->Data[MonsterID].X = X;
this->Data[MonsterID].Y = Y;
this->Data[MonsterID].MaxX = X + Width;
this->Data[MonsterID].MaxY = Y + Height;
this->Data[MonsterID].Attribute = 0;
}
void Interface::DrawSampleButton()
{
float PosX = this->GetResizeX(eSAMPLEBUTTON);

if( this->CheckWindow(ObjWindow::CashShop)
|| this->CheckWindow(ObjWindow::FullMap)
|| this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(MoveList) )
{
return;
}

this->DrawGUI(eSAMPLEBUTTON, PosX, 1);

if( !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

this->DrawToolTip(PosX - 5, 31, "Button tooltip");

if( this->Data[eSAMPLEBUTTON].OnClick )
{
this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(40, 20, 3, 130));
return;
}

this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(255, 204, 20, 130));
}
void Interface::EventSampleButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSAMPLEBUTTON].EventTick);

if( this->CheckWindow(CashShop) || this->CheckWindow(FullMap)
|| this->CheckWindow(SkillTree) || this->CheckWindow(MoveList)
|| !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

if( Event == WM_LBUTTONDOWN )
{
this->Data[eSAMPLEBUTTON].OnClick = true;
return;
}

this->Data[eSAMPLEBUTTON].OnClick = false;

if( Delay < 500 )
{
return;
}

this->Data[eSAMPLEBUTTON].EventTick = GetTickCount();

if( !this->Data[eRANK_MAIN].OnShow )
{
this->Data[eRANK_MAIN].OnShow = true;
}
else
{
this->Data[eRANK_MAIN].OnShow = false;
}
}
void Interface::DrawCameraUI()
{
float PosX = this->GetResizeX(eCAMERA_MAIN);
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
this->DrawGUI(eCAMERA_MAIN, PosX, 0);
this->DrawGUI(eCAMERA_BUTTON1, PosX + 18.5, 1);
this->DrawGUI(eCAMERA_BUTTON2, PosX + 37.0, 1);
//this->DrawGUI(eLOGO, PosX + 370, 20);
this->DrawGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5);
this->DrawGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5);
// ----
if (gCamera.IsActive)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, eShinyGreen);
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
if (gCamera.IsActive)
{
this->DrawToolTip(PosX + 18.5 - 5, 25, "Zoom: %02.f%%", gCamera.ZoomPercent);
}
else
{
this->DrawToolTip(PosX + 18.5 - 5, 25, gCustomMessage.GetMessageB(3243));
}
// ----
if (this->Data[eCAMERA_BUTTON1].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(255, 204, 20, 200));
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
this->DrawToolTip(PosX + 37.0 - 5, 25, gCustomMessage.GetMessageB(3242));
// ----
if (this->Data[eCAMERA_BUTTON2].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(255, 204, 20, 200));
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
{
this->DrawToolTip(PosX + 0.5 - 5, 25, gCustomMessage.GetMessageB(3241));
}
// ----
if (this->Data[eOFFATTACK_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(250, 125, 50, 200));
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
{
this->DrawToolTip(PosX + 55.5 - 5, 25, gCustomMessage.GetMessageB(3240)); //Advanced Options

}
// ----
if (this->Data[eOPTIONS_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 55.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5, pMakeColor(255, 204, 20, 200));
}
// ----
}
// ----------------------------------------------------------------------------------------------
void Interface::EventCameraUI(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON1].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON1].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON1].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON1].EventTick = GetTickCount();
// ----
gCamera.Switch();
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON2].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON2].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON2].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON2].EventTick = GetTickCount();
// ----
gCamera.Init();
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOFFATTACK_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].EventTick = GetTickCount();
// ----
OpenOffAttackWindow();
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOPTIONS_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOPTIONS_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOPTIONS_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOPTIONS_BUTTON].EventTick = GetTickCount();
// ----
gInterface.OpenUsersPanelWindow();
}
}
// ----------------------------------------------------------------------------------------------
bool Interface::CheckWindow(int WindowID)
{
return pCheckWindow(pWindowThis(), WindowID);
}
int Interface::CloseWindow(int WindowID)
{
return pCloseWindow(pWindowThis(), WindowID);
}
int Interface::OpenWindow(int WindowID)
{
return pOpenWindow(pWindowThis(), WindowID);
}

void Interface::DrawTimeUI()
{
if (!this->Data[eTIME].OnShow)
{
return;
}
// ----
if (this->CheckWindow(ObjWindow::CashShop) || this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(ObjWindow::MoveList) || this->CheckWindow(ObjWindow::ChatWindow) || this->CheckWindow(FullMap))
{
return;
}
// ----
this->DrawGUI(eTIME, 0.0f, 412.0f);
// -----
time_t TimeLocal;
struct tm * LocalT;
time(&TimeLocal);
LocalT = localtime(&TimeLocal);
char LocalTime[30];
sprintf(LocalTime, "%2d:%02d:%02d", LocalT->tm_hour, LocalT->tm_min, LocalT->tm_sec);
this->DrawFormat(eWhite, 27.0f, 418.0f, 100.0f, 1.0f, LocalTime);
}
/*
bool Interface::AllowGUI()
{
if( gInterface.CheckResetWindow())
{
return false;
}

return pAllowGUI();
}
*/
void Interface::SetTextColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Opacity)
{
pSetTextColor(pTextThis(), Red, Green, Blue, Opacity);
}
void Interface::DrawText(int X, int Y, LPCTSTR Text)
{
pDrawText(pTextThis(), X, Y, Text, 0, 0, (LPINT)1, 0);
}
int Interface::DrawFormat(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawColorText(Line, PosX, PosY, Width, 0, Color, 0, Align);
PosY += 10;
Line = strtok(NULL, "\n");
}

return PosY;
}
void Interface::DrawFormatEx(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

pDrawColorText(Buff, PosX, PosY, Width, 0, Color, 0, Align);
}
float Interface::DrawRepeatGUI(short MonsterID, float X, float Y, int Count)
{
float StartY = Y;

for( int i = 0; i < Count; i++ )
{
pDrawGUI(this->Data[MonsterID].ModelID, X, StartY,this->Data[MonsterID].Width, this->Data[MonsterID].Height);

StartY += this->Data[MonsterID].Height;
}

return StartY;
}
void Interface::DrawGUI(short ObjectID, float PosX, float PosY)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = PosX;
this->Data[ObjectID].Y = PosY;
this->Data[ObjectID].MaxX = PosX + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = PosY + this->Data[ObjectID].Height;
}

pDrawGUI(this->Data[ObjectID].ModelID, PosX, PosY,this->Data[ObjectID].Width, this->Data[ObjectID].Height);
}
void Interface::DrawColoredGUI(short ObjectID, float X, float Y, DWORD Color)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = X;
this->Data[ObjectID].Y = Y;
this->Data[ObjectID].MaxX = X + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = Y + this->Data[ObjectID].Height;
}

pDrawColorButton(this->Data[ObjectID].ModelID, X, Y,this->Data[ObjectID].Width, this->Data[ObjectID].Height, 0, 0, Color);
}
int Interface::DrawToolTip(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawToolTip(X, Y, Buff);
}
int Interface::DrawToolTipEx(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawToolTip(X, Y, Line);
Y += 10;
Line = strtok(NULL, "\n");
}

return Y;
}
int Interface::DrawMessage(int Mode, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawMessage(Buff, Mode);
}
bool Interface::IsWorkZone(short ObjectID)
{
float PosX = this->Data[ObjectID].X;
float MaxX = PosX + this->Data[ObjectID].Width;

if( ObjectID == eSAMPLEBUTTON )
{
PosX = this->GetResizeX(ObjectID);
MaxX = PosX + this->Data[ObjectID].Width;
}

if( (gObjUser.m_CursorX < PosX || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
bool Interface::IsWorkZone(float X, float Y, float MaxX, float MaxY)
{
if( (gObjUser.m_CursorX < X || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < Y || gObjUser.m_CursorY > MaxY) )
return false;

return true;
}
float Interface::GetResizeX(short ObjectID)
{
if( pWinWidth == 800 )
{
return this->Data[ObjectID].X + 16.0;
}
else if( pWinWidth != 1024 )
{
return this->Data[ObjectID].X - 16.0;
}

return this->Data[ObjectID].X;
}

float Interface::GetResizeY(short ObjectID)
{

return this->Data[ObjectID].Y;
}
// ----------------------------------------------------------------------------------------------
bool Interface::MiniMapCheck()
{
if (this->CheckWindow(Inventory) ||
this->CheckWindow(CashShop) ||
this->CheckWindow(ChaosBox) ||
this->CheckWindow(Character) ||
this->CheckWindow(CommandWindow) ||
this->CheckWindow(ExpandInventory) ||
this->CheckWindow(ExpandWarehouse) ||
this->CheckWindow(FullMap) ||
this->CheckWindow(GensInfo) ||
this->CheckWindow(Guild) ||
this->CheckWindow(NPC_Dialog) ||
this->CheckWindow(NPC_Julia) ||
this->CheckWindow(NPC_Titus) ||
this->CheckWindow(OtherStore) ||
this->CheckWindow(Party) ||
this->CheckWindow(PetInfo) ||
this->CheckWindow(Shop) ||
this->CheckWindow(SkillTree) ||
this->CheckWindow(Store) ||
this->CheckWindow(Trade) ||
this->CheckWindow(FriendList) ||
this->CheckWindow(FastMenu) ||
this->CheckWindow(MuHelper) ||
this->CheckWindow(Quest) ||
this->CheckWindow(Warehouse))
return true;
return false;
}

bool Interface::CombinedChecks()
{
if ((this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Character)
&& this->CheckWindow(Store)))
return true;
return false;
}
// ----------------------------------------------------------------------------------------------
void Interface::DrawUsersPanelWindow()
{
if( !this->Data[eUSERSPANEL_MAIN].OnShow )
{
return;
}
// ----
DWORD ItemNameColor = eWhite;
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 90.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eUSERSPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eUSERSPANEL_TITLE, StartX, StartY);
StartY = this->DrawRepeatGUI(eUSERSPANEL_FRAME, StartX, StartY + 20.0, 13);
this->DrawGUI(eUSERSPANEL_FOOTER, StartX, StartY);
// ----
if( IsWorkZone(eUSERSPANEL_CLOSE) )
{
DWORD Color = eGray100;

if( this->Data[eUSERSPANEL_CLOSE].OnClick )
{
Color = eGray150;
}

this->DrawColoredGUI(eUSERSPANEL_CLOSE, this->Data[eUSERSPANEL_CLOSE].X, this->Data[eUSERSPANEL_CLOSE].Y, Color);
}
// ----
this->DrawGUI(eUSERSPANEL_CLOSE, ButtonX, this->Data[eUSERSPANEL_FOOTER].Y + 0);
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + -205, 210, 3, gCustomMessage.GetMessageB(3240));
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + 10, 210, 3, gCustomMessage.GetMessageB(388));
this->DrawGUI(eUSERSPANEL_DIV, StartX, this->Data[eUSERSPANEL_FOOTER].Y - 20);
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 38);
this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 55);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 40, +125, 1, gCustomMessage.GetMessageB(3795));
{
if(lifebar)
{
}
else
{
this->DrawGUI(eUSERSPANEL_HPBAR, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_RANKHIDE, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 63);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 80);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 65, +125, 1, gCustomMessage.GetMessageB(3796));
{
if(rankbar)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_TRONGLOW, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 88);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 105);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 90, +135, 1, gCustomMessage.GetMessageB(3797));
{
if(g_bEnabled)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
}
// ----
}
// ----
this->DrawGUI(eUSERSPANEL_FOG, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 113);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 130);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 115, +125, 1, gCustomMessage.GetMessageB(3798));
{
if(gFog.EnableFog)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
}
// ----
}
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 138);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 155);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 140, +125, 1, gCustomMessage.GetMessageB(3799));
{
if (!gChatExpanded.IsActive)
        {
}
else
{
this->DrawGUI(eUSERSPANEL_CHAT, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
}
// ----
}

/* // ----
this->DrawGUI(eUSERSPANEL_MINIMAP, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 165);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 182);
this->DrawFormat(eWhite, StartX + 20, this->Data[eUSERSPANEL_MAIN].Y + 167, +120, 3, "Mini Map      ");
{
if (showMiniMap)
        {
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
}
// ----

}
// ----
*/
}
bool Interface::EventUsersPanelWindow_Main(DWORD Event)
{
this->EventUsersPanelWindow_Close(Event);
this->EventUsersPanelWindow_HPBAR(Event);
this->EventUsersPanelWindow_RANKHIDE(Event);
this->EventUsersPanelWindow_TRONGLOW(Event);
this->EventUsersPanelWindow_FOG(Event);
this->EventUsersPanelWindow_CHAT(Event);
this->EventUsersPanelWindow_MINIMAP(Event);
return true;
}
bool Interface::EventUsersPanelWindow_Close(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CLOSE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CLOSE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CLOSE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CLOSE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_CLOSE].EventTick = GetTickCount();
this->CloseUsersPanelWindow();
// ----
return false;
}
bool Interface::EventUsersPanelWindow_HPBAR(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_HPBAR].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_HPBAR) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_HPBAR].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_HPBAR].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_HPBAR].EventTick = GetTickCount();
if(lifebar)
{
lifebar = false;
}
else
{
lifebar = true;
}
}
bool Interface::EventUsersPanelWindow_RANKHIDE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_RANKHIDE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_RANKHIDE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_RANKHIDE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_RANKHIDE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_RANKHIDE].EventTick = GetTickCount();
if(rankbar)
{
rankbar = false;
}
else
{
rankbar = true;
}
}
bool Interface::EventUsersPanelWindow_TRONGLOW(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_TRONGLOW].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_TRONGLOW) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_TRONGLOW].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].EventTick = GetTickCount();
if(g_bEnabled) //Effects
{
g_bEnabled = false;
}
else
{
g_bEnabled = true;
}
}
bool Interface::EventUsersPanelWindow_FOG(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_FOG].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_FOG) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_FOG].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_FOG].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_FOG].EventTick = GetTickCount();
if(gFog.EnableFog) //Fog
{
gFog.EnableFog = false;
}
    else
{
gFog.EnableFog = true;
}
}
bool Interface::EventUsersPanelWindow_CHAT(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CHAT].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CHAT) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CHAT].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CHAT].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_CHAT].EventTick = GetTickCount();
gChatExpanded.Switch();
}
bool Interface::EventUsersPanelWindow_MINIMAP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_MINIMAP].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_MINIMAP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_MINIMAP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_MINIMAP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_MINIMAP].EventTick = GetTickCount();
if(showMiniMap) //Fog
{
gInterface.showMiniMap = false;
}
    else
{
gInterface.showMiniMap = true;
}
}

void Interface::DrawPSHOP()
{
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 100.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
// ---
if(this->CheckWindow(ObjWindow::Store) == true && this->CheckWindow(ObjWindow::ExpandInventory) == true)
{
StartX -= 190;
}
// ---
this->DrawFormat(eGold, StartX + 31, StartY + 77, + 125, 3, gCustomMessage.GetMessageB(3245));
// ---
this->DrawGUI(eSHOP_WC, StartX + 70, StartY + 90);
this->DrawFormat(eWhite, StartX + 80, StartY + 97, 100.0f, 1.0f, "WCoinC");
// ---
this->DrawGUI(eSHOP_B, StartX + 70, StartY + 120);
this->DrawFormat(eYellow, StartX + 85, StartY + 127, 100.0f, 1.0f, "Bless");
// ---
this->DrawGUI(eSHOP_WP, StartX + 125, StartY + 90);
this->DrawFormat(eWhite, StartX + 135, StartY + 97, 100.0f, 1.0f, "WCoinP");
// ---
this->DrawGUI(eSHOP_S, StartX + 125, StartY + 120);
this->DrawFormat(eYellow, StartX + 139, StartY + 127, 100.0f, 1.0f, "Soul");
// ---
this->DrawGUI(eSHOP_GP, StartX + 180, StartY + 90);
this->DrawFormat(eWhite, StartX + 187, StartY + 97, 100.0f, 1.0f, "GoblinPoint");
// ---
this->DrawGUI(eSHOP_C, StartX + 180, StartY + 120);
this->DrawFormat(eYellow, StartX + 195, StartY + 127, 100.0f, 1.0f, "Chaos");
// ---
/*this->DrawGUI(eSHOP_L, StartX + 70, StartY + 150);
this->DrawFormat(eYellow, StartX + 85, StartY + 157, 100.0f, 1.0f, "Life");
// ---
this->DrawGUI(eSHOP_Gem, StartX + 70, StartY + 180);
this->DrawFormat(eYellow, StartX + 80, StartY + 187, 100.0f, 1.0f, "Gemstone");
// ---
this->DrawGUI(eSHOP_Cr, StartX + 125, StartY + 150);
this->DrawFormat(eYellow, StartX + 135, StartY + 157, 100.0f, 1.0f, "Creation");
// ---
this->DrawGUI(eSHOP_H, StartX + 125, StartY + 180);
this->DrawFormat(eYellow, StartX + 137, StartY + 187, 100.0f, 1.0f, "Harmony");
// ---
this->DrawGUI(eSHOP_G, StartX + 180, StartY + 150);
this->DrawFormat(eYellow, StartX + 191, StartY + 157, 100.0f, 1.0f, "Guardian");
// ---
this->DrawGUI(eSHOP_R, StartX + 180, StartY + 180);
this->DrawFormat(eYellow, StartX + 187, StartY + 187, 100.0f, 1.0f, "Refine Stone");*/
// ---
this->DrawGUI(eSHOP_OFF, StartX + 190, StartY + 291);
// ---

if(IsWorkZone(eSHOP_OFF))
{
this->DrawToolTip(StartX + 170, StartY + 280, gCustomMessage.GetMessageB(3244));
}
}
bool Interface::DrawPSHOP_Main(DWORD Event)
{
this->DrawPSHOP_BLESS(Event);
this->DrawPSHOP_SOUL(Event);
this->DrawPSHOP_CHAOS(Event);
this->DrawPSHOP_WCOINC(Event);
this->DrawPSHOP_WCOINP(Event);
this->DrawPSHOP_COINTP(Event);
this->DrawPSHOP_OFFBUTTON(Event);
this->DrawPSHOP_LIFE(Event);
this->DrawPSHOP_CREATION(Event);
this->DrawPSHOP_GUARDIAN(Event);
this->DrawPSHOP_GEMSTONE(Event);
this->DrawPSHOP_HARMONY(Event);
this->DrawPSHOP_REFINE(Event);
return true;
}
bool Interface::DrawPSHOP_BLESS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_B].EventTick);
// ----
if(!this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_B))
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_B].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_B].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x01,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_SOUL(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_S].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_S) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_S].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_S].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_S].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_CHAOS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_C].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_C) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_C].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_C].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_C].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x03,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINC(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WC].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WC) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WC].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WC].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WC].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x04,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x05,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_COINTP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_GP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_GP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_GP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_GP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_GP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x06,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_LIFE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_L].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_L) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_L].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_L].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_L].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x09,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_CREATION(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Cr].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Cr) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Cr].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Cr].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Cr].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x10,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GUARDIAN(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_G].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_G) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_G].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_G].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_G].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x11,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GEMSTONE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Gem].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Gem) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Gem].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Gem].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Gem].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x12,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_HARMONY(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_H].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_H) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_H].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_H].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_H].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x13,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_REFINE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_R].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_R) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_R].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_R].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x14,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_OFFBUTTON(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_OFF].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_OFF) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_OFF].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_OFF].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eSHOP_OFF].EventTick = GetTickCount();
gInterface.OpenOffWindow();
}

void Interface::DrawPSHOP_OFFMODE()
{
if( !this->Data[eOFFPANEL_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFPANEL_TITLE, StartX, StartY);
//StartY = this->DrawRepeatGUI(eOFFPANEL_FRAME, StartX, StartY + 67.0, 13);
this->DrawGUI(eOFFPANEL_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, gCustomMessage.GetMessageB(3244));
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, gCustomMessage.GetMessageB(3246));
this->DrawGUI(eOFFPANEL_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFPANEL_CANE, StartX + 140, StartY + 75);
}

bool Interface::DrawPSHOP_OFFMAIN(DWORD Event)
{
this->DrawPSHOP_OFFYES(Event);
this->DrawPSHOP_OFFCANE(Event);
return true;
}

bool Interface::DrawPSHOP_OFFYES(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_YES].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x07,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffWindow();
}
bool Interface::DrawPSHOP_OFFCANE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_CANE].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_CANE].EventTick = GetTickCount();
this->CloseOffWindow();
}

// OFF ATTACK MODE
void Interface::DrawOffAttack()
{
if( !this->Data[eOFFATTACK_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFATTACK_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFATTACK_TITLE, StartX, StartY);
this->DrawGUI(eOFFATTACK_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, "Offline Attack System");
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, "Leave your Character in OFFATTACK mode?");
this->DrawGUI(eOFFATTACK_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFATTACK_CANE, StartX + 140, StartY + 75);

}

bool Interface::OffAttackEvent_Main(DWORD Event)
{
this->OffAttackEvent_Button1(Event);
this->OffAttackEvent_Button2(Event);
return true;
}

bool Interface::OffAttackEvent_Button1(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_YES].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x08,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffAttackWindow();
}
bool Interface::OffAttackEvent_Button2(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_CANE].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_CANE].EventTick = GetTickCount();
this->CloseOffAttackWindow();
}


void Interface::Work2() {
if (gInterface.item_post_ && pCursorX < 150)
{
gInterface.DrawItemToolTipText(gInterface.item_post_, pCursorX + 80, pCursorY - 80);
if (gInterface.last_tickcount_view_ + 100 < GetTickCount()) {
gInterface.item_post_ = nullptr;
}
}
    pDrawInterface2();
}

void Interface::DrawChat ( int mode, char* character, char* message ) {
    PBMSG_CHATPOSTITEM chat;
    memset ( &chat.character_[0], 0, 10 );
    memset ( &chat.message_[0], 0, 89 );
    memcpy ( &chat.character_[0], &character[0], 10 );
    memcpy ( &chat.message_[0], &message[0], strlen ( message ) );
    pHandlePacketChatData ( &chat );

if (mode >= 1 && mode <= 9 && ChatBoxMuObjectChatDataPtrArrayLength) {
int index = ChatBoxMuObjectChatDataPtrArrayLength - 1;
ChatBoxMuObjectChatDataPtrArray[index]->chat_type_ = mode;
}
}

void Interface::DrawItemToolTipText ( void * item, int x, int y ) {
static DWORD mem = 0;
//static DWORD ItemToolTipAdress1 = 0x00861110; //1.04D-> 0x00860FC0
//static DWORD ItemToolTipAdress2 = 0x00861AA0; //1.04D-> 0x00861950
//static DWORD ItemToolTipAdress3 = 0x007E3E30; //1.04D-> 0x007E3CE0
_asm {
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH item
    PUSH y
    PUSH x
MOV mem,0x00861110
    CALL mem
    MOV ECX, EAX
MOV mem,0x00861AA0
    CALL mem
    MOV ECX, EAX
MOV mem,0x007E3E30
    CALL mem
}

}

void Interface::DrawS2Interface()
{
gInterface.DrawGUI(eSkillBox, 305, 443);
}

void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 435, gCustomMessage.GetMessage(11));
}
if (this->CheckWindow(Party))
{
gInterface.DrawGUI(eParty, 348, 449);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 435, gCustomMessage.GetMessage(12));
}
if (this->CheckWindow(Character))
{
gInterface.DrawGUI(eCharacter, 378.5f, 449);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 435, gCustomMessage.GetMessage(13));
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawGUI(eInventory, 409, 449);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, gCustomMessage.GetMessage(14));
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawGUI(eFriend, 581, 432);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, gCustomMessage.GetMessage(15));
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawGUI(eFastMenu, 5, 432);
}

}

void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}

if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
}

LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0);

tentei mas erro :(

error C2660: 'LoadBitmapA' : function does not take 6 arguments

IntelliSense: argument of type "const char *" is incompatible with parameter of type "HINSTANCE"   

IntelliSense: argument of type "int" is incompatible with parameter of type "LPCSTR"

IntelliSense: too many arguments in function call   


Offline ailsoncost #25 Posteado: March 16, 2022, 01:59:51 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 48
  • Gracias recibida: 584
  • br
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo


Obrigada. Mas meu código fonte não tem esses

Code: [Select]
#include "stdafx.h"
#include "Interface.h"
#include "TMemory.h"
#include "Protocol.h"
#include "Offset.h"
#include "User.h"
#include "Import.h"
#include "Defines.h"
#include "Camera.h"
#include "Fog.h"
#include "Other.h"
#include "Graphics.h"
#include "Glow.h"
#include "ChatExpanded.h"
#include "Reconnect.h"
#include "Config.h"
#include "CustomMessage.h"
#include "CustomEventTime.h"
#include "post_item.h"
#include "inter3.h"

Interface gInterface;
DWORD CharacterInfoExtern_Buff;
char CharacterInfoExtern_LevelBuff[80];
DWORD AddSomeShine_Buff;
DWORD AddSomeShine_Pointer;
bool Checkbox = true;

Interface::Interface()
{
ZeroMemory(this->Data, sizeof(this->Data));
}
Naked(AddSomeShine)
{
_asm
{
mov eax, dword ptr ds:[ecx + 0x30]
mov AddSomeShine_Buff, eax
}

if( AddSomeShine_Buff == 349 || AddSomeShine_Buff == 406 || AddSomeShine_Buff == 407 || AddSomeShine_Buff == 408 )
{
_asm
{
mov AddSomeShine_Buff, 0x005E4979
jmp AddSomeShine_Buff
}
}
else
{
_asm
{
mov AddSomeShine_Buff, 0x005E4A3C
jmp AddSomeShine_Buff
}
}
}

void Interface::Load()
{
/* this->BindObject(eSkillBox, iNewSkillBox, 32, 38, 305, 443);
// this->BindObject(eDragonLeft, iDragonLeft, 108, 45, 0, 388);
// this->BindObject(eDragonRight, iDragonRight, 108, 45, 532, 388);
// this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
*/
//--
this->BindObject(eSAMPLEBUTTON, 0x7AA4, 16, 15, 175, 1);
this->BindObject(eCheck, 0x9991, 15, 15, -1, -1);
this->BindObject(eUnCheck, 0x9992, 15, 15, -1, -1);
this->BindObject(eTIME, 0x787E, 80, 20, 174, 0);
this->BindObject(eOFFATTACK_BUTTON, 0x787F, 16, 12, -1, -1);
this->BindObject(eOPTIONS_BUTTON, 0x787D, 16, 12, -1, 1);
//---
this->BindObject(eCAMERA_MAIN, 0x787A, 93, 18, 174, 0);
this->BindObject(eCAMERA_BUTTON1, 0x787B, 16, 12, -1, -1);
this->BindObject(eCAMERA_BUTTON2, 0x787C, 16, 12, -1, -1);
//this->BindObject(eLOGO, 0x9989, 63.3, 50, 192.5, 1);
this->BindObject(eSHOP_WC, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_WP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_GP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_B, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_S, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_C, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_L, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Cr, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_G, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Gem, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_H, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_R, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_OFF, 0x7C04, 36, 27, -1, -1);
//---
this->BindObject(eOFFPANEL_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFPANEL_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFPANEL_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eOFFATTACK_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFATTACK_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFATTACK_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFATTACK_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFATTACK_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFATTACK_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eUSERSPANEL_MAIN, 0x7A5A, 222, 256, -1, -1);
this->BindObject(eUSERSPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eUSERSPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eUSERSPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eUSERSPANEL_DIV, 0x7A62, 223, 21, -1, -1);
this->BindObject(eUSERSPANEL_OPTION, 0x7B68, 10, 10, -1, -1);
this->BindObject(eUSERSPANEL_LINE, 0x7B67, 154, 2, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON1, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON2, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_FOG, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CLOSE, 0x7A5E, 128, 29, -1, -1);
this->BindObject(eUSERSPANEL_HPBAR, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_RANKHIDE, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_TRONGLOW, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CHAT, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_MINIMAP, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CAMERA, 0x9991, 15, 15, -1, -1);
//--
//Command info
this->BindObject(eEventTime_MAIN, 0x789F, 222, 195, -1, -1);
this->BindObject(eEventTime_CLOSE, 0x7EC5, 36, 29, -1, -1);

//---
this->Data[eTIME].OnShow = true;
this->showMiniMap = false;
//SetOp((LPVOID)oAllowGUI_Call1, this->AllowGUI, ASM::CALL);
//SetOp((LPVOID)oAllowGUI_Call2, this->AllowGUI, ASM::CALL);
SetOp((LPVOID)oDrawInterface_Call, this->Work, ASM::CALL);
SetOp((LPVOID)oLoadSomeForm_Call, this->LoadImages, ASM::CALL);
SetOp((LPVOID)0x00633FFB, this->LoadModels, ASM::CALL);
SetOp((LPVOID)0x00842468, this->PShopTextInfo, ASM::CALL);
//==========================================
// - Remove Texts PShop
//==========================================
SetRange((LPVOID)0x00842086, 5, ASM::NOP);
SetRange((LPVOID)0x0084234F, 5, ASM::NOP);
SetRange((LPVOID)0x008423C3, 5, ASM::NOP);
// - Draw Post Item
 this->item_post_ = nullptr;
 SetOp((LPVOID)oDrawInterface2_Call, this->Work2, ASM::CALL);
}
void Interface::Work()
{
gInterface.DrawTimeUI();
gObjUser.Refresh();
gCamera.Rotate();
gCamera.Position();
//--
ReconnectMainProc();
gInterface.DrawOffAttack();
gInterface.DrawPSHOP_OFFMODE();
gInterface.DrawUsersPanelWindow();
gInterface.DrawCameraUI();
pDrawInterface();
//--
gCustomEventTime.DrawEventTimePanelWindow();
}
int Interface::PShopTextInfo(int pThis)
{
gInterface.DrawPSHOP();
// ---
return pPShopTextInfo(pThis);
}
void Interface::LoadImages()
{
/* pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu02.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu03_new.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
// pLoadImage("Custom\\Interface\\s3\\2Menu04.tga", iDragonLeft, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu05.tga", iDragonRight, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2win_push.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2menu01_new2.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2SkillBox.jpg", iNewSkillBox, GL_LINEAR, GL_CLAMP, 1, 0);
*/
//--
pLoadImage("Interface\\TimeBar.tga", 0x787E, 0x2601, 0x2901, 1, 0);
pLoadImage("Interface\\CameraUI_BG.tga", 0x787A, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Switch.tga", 0x787B, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Reset.tga", 0x787C, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\OffAttack_Switch.tga", 0x787F, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\MacroSetup.tga", 0x787D, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Interface\\EventTime.tga", 0x789F, 0x2601, 0x2900, 1, 0);
// logo
//pLoadImage("Custom\\logo\\mwebgame.tga", 0x9989, 0x2601, 0x2900, 1, 0);
// MiniMap
pLoadImage("Interface\\check.jpg", 0x9991, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\uncheck.jpg", 0x9992, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\button.tga", 0x9994, 0x2601, 0x2900, 1, 0);
//--
//Here animation for cape. Wing 214.bmd for display only item in Inventory
pLoadImage("Item\\Newdeath01.tga", 0x789C, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Newdeath02.tga", 0x789D, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4dd.tga", 0x78A5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4de.tga", 0x78A6, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\ragefighterwing4db.tga", 0x78A8, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\growlancerwing4dc.tga", 0x78A9, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item801_2_wing.tga", 0x78B1, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item802_2_wing.tga", 0x78B2, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\NCcapeSmall.tga", 0x78B3, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\DarkLordRobeSmall.tga", 0x78B4, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\darklordwing4ddmr.tga", 0x78B5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4demr.tga", 0x78B6, 0x2601, 0x2900, 1, 0);
//--
pLoadSomeForm();
}
void Interface::LoadModels()
{
pInitModelData2();
}
void Interface::BindObject(short MonsterID, DWORD ModelID, float Width, float Height, float X, float Y)
{
this->Data[MonsterID].EventTick = 0;
this->Data[MonsterID].OnClick = false;
this->Data[MonsterID].OnShow = false;
this->Data[MonsterID].ModelID = ModelID;
this->Data[MonsterID].Width = Width;
this->Data[MonsterID].Height = Height;
this->Data[MonsterID].X = X;
this->Data[MonsterID].Y = Y;
this->Data[MonsterID].MaxX = X + Width;
this->Data[MonsterID].MaxY = Y + Height;
this->Data[MonsterID].Attribute = 0;
}
void Interface::DrawSampleButton()
{
float PosX = this->GetResizeX(eSAMPLEBUTTON);

if( this->CheckWindow(ObjWindow::CashShop)
|| this->CheckWindow(ObjWindow::FullMap)
|| this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(MoveList) )
{
return;
}

this->DrawGUI(eSAMPLEBUTTON, PosX, 1);

if( !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

this->DrawToolTip(PosX - 5, 31, "Button tooltip");

if( this->Data[eSAMPLEBUTTON].OnClick )
{
this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(40, 20, 3, 130));
return;
}

this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(255, 204, 20, 130));
}
void Interface::EventSampleButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSAMPLEBUTTON].EventTick);

if( this->CheckWindow(CashShop) || this->CheckWindow(FullMap)
|| this->CheckWindow(SkillTree) || this->CheckWindow(MoveList)
|| !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

if( Event == WM_LBUTTONDOWN )
{
this->Data[eSAMPLEBUTTON].OnClick = true;
return;
}

this->Data[eSAMPLEBUTTON].OnClick = false;

if( Delay < 500 )
{
return;
}

this->Data[eSAMPLEBUTTON].EventTick = GetTickCount();

if( !this->Data[eRANK_MAIN].OnShow )
{
this->Data[eRANK_MAIN].OnShow = true;
}
else
{
this->Data[eRANK_MAIN].OnShow = false;
}
}
void Interface::DrawCameraUI()
{
float PosX = this->GetResizeX(eCAMERA_MAIN);
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
this->DrawGUI(eCAMERA_MAIN, PosX, 0);
this->DrawGUI(eCAMERA_BUTTON1, PosX + 18.5, 1);
this->DrawGUI(eCAMERA_BUTTON2, PosX + 37.0, 1);
//this->DrawGUI(eLOGO, PosX + 370, 20);
this->DrawGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5);
this->DrawGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5);
// ----
if (gCamera.IsActive)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, eShinyGreen);
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
if (gCamera.IsActive)
{
this->DrawToolTip(PosX + 18.5 - 5, 25, "Zoom: %02.f%%", gCamera.ZoomPercent);
}
else
{
this->DrawToolTip(PosX + 18.5 - 5, 25, gCustomMessage.GetMessageB(3243));
}
// ----
if (this->Data[eCAMERA_BUTTON1].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(255, 204, 20, 200));
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
this->DrawToolTip(PosX + 37.0 - 5, 25, gCustomMessage.GetMessageB(3242));
// ----
if (this->Data[eCAMERA_BUTTON2].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(255, 204, 20, 200));
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
{
this->DrawToolTip(PosX + 0.5 - 5, 25, gCustomMessage.GetMessageB(3241));
}
// ----
if (this->Data[eOFFATTACK_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(250, 125, 50, 200));
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
{
this->DrawToolTip(PosX + 55.5 - 5, 25, gCustomMessage.GetMessageB(3240)); //Advanced Options

}
// ----
if (this->Data[eOPTIONS_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 55.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5, pMakeColor(255, 204, 20, 200));
}
// ----
}
// ----------------------------------------------------------------------------------------------
void Interface::EventCameraUI(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON1].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON1].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON1].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON1].EventTick = GetTickCount();
// ----
gCamera.Switch();
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON2].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON2].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON2].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON2].EventTick = GetTickCount();
// ----
gCamera.Init();
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOFFATTACK_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].EventTick = GetTickCount();
// ----
OpenOffAttackWindow();
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOPTIONS_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOPTIONS_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOPTIONS_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOPTIONS_BUTTON].EventTick = GetTickCount();
// ----
gInterface.OpenUsersPanelWindow();
}
}
// ----------------------------------------------------------------------------------------------
bool Interface::CheckWindow(int WindowID)
{
return pCheckWindow(pWindowThis(), WindowID);
}
int Interface::CloseWindow(int WindowID)
{
return pCloseWindow(pWindowThis(), WindowID);
}
int Interface::OpenWindow(int WindowID)
{
return pOpenWindow(pWindowThis(), WindowID);
}

void Interface::DrawTimeUI()
{
if (!this->Data[eTIME].OnShow)
{
return;
}
// ----
if (this->CheckWindow(ObjWindow::CashShop) || this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(ObjWindow::MoveList) || this->CheckWindow(ObjWindow::ChatWindow) || this->CheckWindow(FullMap))
{
return;
}
// ----
this->DrawGUI(eTIME, 0.0f, 412.0f);
// -----
time_t TimeLocal;
struct tm * LocalT;
time(&TimeLocal);
LocalT = localtime(&TimeLocal);
char LocalTime[30];
sprintf(LocalTime, "%2d:%02d:%02d", LocalT->tm_hour, LocalT->tm_min, LocalT->tm_sec);
this->DrawFormat(eWhite, 27.0f, 418.0f, 100.0f, 1.0f, LocalTime);
}
/*
bool Interface::AllowGUI()
{
if( gInterface.CheckResetWindow())
{
return false;
}

return pAllowGUI();
}
*/
void Interface::SetTextColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Opacity)
{
pSetTextColor(pTextThis(), Red, Green, Blue, Opacity);
}
void Interface::DrawText(int X, int Y, LPCTSTR Text)
{
pDrawText(pTextThis(), X, Y, Text, 0, 0, (LPINT)1, 0);
}
int Interface::DrawFormat(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawColorText(Line, PosX, PosY, Width, 0, Color, 0, Align);
PosY += 10;
Line = strtok(NULL, "\n");
}

return PosY;
}
void Interface::DrawFormatEx(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

pDrawColorText(Buff, PosX, PosY, Width, 0, Color, 0, Align);
}
float Interface::DrawRepeatGUI(short MonsterID, float X, float Y, int Count)
{
float StartY = Y;

for( int i = 0; i < Count; i++ )
{
pDrawGUI(this->Data[MonsterID].ModelID, X, StartY,this->Data[MonsterID].Width, this->Data[MonsterID].Height);

StartY += this->Data[MonsterID].Height;
}

return StartY;
}
void Interface::DrawGUI(short ObjectID, float PosX, float PosY)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = PosX;
this->Data[ObjectID].Y = PosY;
this->Data[ObjectID].MaxX = PosX + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = PosY + this->Data[ObjectID].Height;
}

pDrawGUI(this->Data[ObjectID].ModelID, PosX, PosY,this->Data[ObjectID].Width, this->Data[ObjectID].Height);
}
void Interface::DrawColoredGUI(short ObjectID, float X, float Y, DWORD Color)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = X;
this->Data[ObjectID].Y = Y;
this->Data[ObjectID].MaxX = X + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = Y + this->Data[ObjectID].Height;
}

pDrawColorButton(this->Data[ObjectID].ModelID, X, Y,this->Data[ObjectID].Width, this->Data[ObjectID].Height, 0, 0, Color);
}
int Interface::DrawToolTip(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawToolTip(X, Y, Buff);
}
int Interface::DrawToolTipEx(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawToolTip(X, Y, Line);
Y += 10;
Line = strtok(NULL, "\n");
}

return Y;
}
int Interface::DrawMessage(int Mode, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawMessage(Buff, Mode);
}
bool Interface::IsWorkZone(short ObjectID)
{
float PosX = this->Data[ObjectID].X;
float MaxX = PosX + this->Data[ObjectID].Width;

if( ObjectID == eSAMPLEBUTTON )
{
PosX = this->GetResizeX(ObjectID);
MaxX = PosX + this->Data[ObjectID].Width;
}

if( (gObjUser.m_CursorX < PosX || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
bool Interface::IsWorkZone(float X, float Y, float MaxX, float MaxY)
{
if( (gObjUser.m_CursorX < X || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < Y || gObjUser.m_CursorY > MaxY) )
return false;

return true;
}
float Interface::GetResizeX(short ObjectID)
{
if( pWinWidth == 800 )
{
return this->Data[ObjectID].X + 16.0;
}
else if( pWinWidth != 1024 )
{
return this->Data[ObjectID].X - 16.0;
}

return this->Data[ObjectID].X;
}

float Interface::GetResizeY(short ObjectID)
{

return this->Data[ObjectID].Y;
}
// ----------------------------------------------------------------------------------------------
bool Interface::MiniMapCheck()
{
if (this->CheckWindow(Inventory) ||
this->CheckWindow(CashShop) ||
this->CheckWindow(ChaosBox) ||
this->CheckWindow(Character) ||
this->CheckWindow(CommandWindow) ||
this->CheckWindow(ExpandInventory) ||
this->CheckWindow(ExpandWarehouse) ||
this->CheckWindow(FullMap) ||
this->CheckWindow(GensInfo) ||
this->CheckWindow(Guild) ||
this->CheckWindow(NPC_Dialog) ||
this->CheckWindow(NPC_Julia) ||
this->CheckWindow(NPC_Titus) ||
this->CheckWindow(OtherStore) ||
this->CheckWindow(Party) ||
this->CheckWindow(PetInfo) ||
this->CheckWindow(Shop) ||
this->CheckWindow(SkillTree) ||
this->CheckWindow(Store) ||
this->CheckWindow(Trade) ||
this->CheckWindow(FriendList) ||
this->CheckWindow(FastMenu) ||
this->CheckWindow(MuHelper) ||
this->CheckWindow(Quest) ||
this->CheckWindow(Warehouse))
return true;
return false;
}

bool Interface::CombinedChecks()
{
if ((this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Character)
&& this->CheckWindow(Store)))
return true;
return false;
}
// ----------------------------------------------------------------------------------------------
void Interface::DrawUsersPanelWindow()
{
if( !this->Data[eUSERSPANEL_MAIN].OnShow )
{
return;
}
// ----
DWORD ItemNameColor = eWhite;
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 90.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eUSERSPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eUSERSPANEL_TITLE, StartX, StartY);
StartY = this->DrawRepeatGUI(eUSERSPANEL_FRAME, StartX, StartY + 20.0, 13);
this->DrawGUI(eUSERSPANEL_FOOTER, StartX, StartY);
// ----
if( IsWorkZone(eUSERSPANEL_CLOSE) )
{
DWORD Color = eGray100;

if( this->Data[eUSERSPANEL_CLOSE].OnClick )
{
Color = eGray150;
}

this->DrawColoredGUI(eUSERSPANEL_CLOSE, this->Data[eUSERSPANEL_CLOSE].X, this->Data[eUSERSPANEL_CLOSE].Y, Color);
}
// ----
this->DrawGUI(eUSERSPANEL_CLOSE, ButtonX, this->Data[eUSERSPANEL_FOOTER].Y + 0);
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + -205, 210, 3, gCustomMessage.GetMessageB(3240));
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + 10, 210, 3, gCustomMessage.GetMessageB(388));
this->DrawGUI(eUSERSPANEL_DIV, StartX, this->Data[eUSERSPANEL_FOOTER].Y - 20);
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 38);
this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 55);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 40, +125, 1, gCustomMessage.GetMessageB(3795));
{
if(lifebar)
{
}
else
{
this->DrawGUI(eUSERSPANEL_HPBAR, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_RANKHIDE, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 63);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 80);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 65, +125, 1, gCustomMessage.GetMessageB(3796));
{
if(rankbar)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_TRONGLOW, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 88);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 105);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 90, +135, 1, gCustomMessage.GetMessageB(3797));
{
if(g_bEnabled)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
}
// ----
}
// ----
this->DrawGUI(eUSERSPANEL_FOG, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 113);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 130);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 115, +125, 1, gCustomMessage.GetMessageB(3798));
{
if(gFog.EnableFog)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
}
// ----
}
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 138);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 155);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 140, +125, 1, gCustomMessage.GetMessageB(3799));
{
if (!gChatExpanded.IsActive)
        {
}
else
{
this->DrawGUI(eUSERSPANEL_CHAT, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
}
// ----
}

/* // ----
this->DrawGUI(eUSERSPANEL_MINIMAP, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 165);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 182);
this->DrawFormat(eWhite, StartX + 20, this->Data[eUSERSPANEL_MAIN].Y + 167, +120, 3, "Mini Map      ");
{
if (showMiniMap)
        {
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
}
// ----

}
// ----
*/
}
bool Interface::EventUsersPanelWindow_Main(DWORD Event)
{
this->EventUsersPanelWindow_Close(Event);
this->EventUsersPanelWindow_HPBAR(Event);
this->EventUsersPanelWindow_RANKHIDE(Event);
this->EventUsersPanelWindow_TRONGLOW(Event);
this->EventUsersPanelWindow_FOG(Event);
this->EventUsersPanelWindow_CHAT(Event);
this->EventUsersPanelWindow_MINIMAP(Event);
return true;
}
bool Interface::EventUsersPanelWindow_Close(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CLOSE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CLOSE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CLOSE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CLOSE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_CLOSE].EventTick = GetTickCount();
this->CloseUsersPanelWindow();
// ----
return false;
}
bool Interface::EventUsersPanelWindow_HPBAR(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_HPBAR].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_HPBAR) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_HPBAR].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_HPBAR].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_HPBAR].EventTick = GetTickCount();
if(lifebar)
{
lifebar = false;
}
else
{
lifebar = true;
}
}
bool Interface::EventUsersPanelWindow_RANKHIDE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_RANKHIDE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_RANKHIDE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_RANKHIDE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_RANKHIDE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_RANKHIDE].EventTick = GetTickCount();
if(rankbar)
{
rankbar = false;
}
else
{
rankbar = true;
}
}
bool Interface::EventUsersPanelWindow_TRONGLOW(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_TRONGLOW].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_TRONGLOW) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_TRONGLOW].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].EventTick = GetTickCount();
if(g_bEnabled) //Effects
{
g_bEnabled = false;
}
else
{
g_bEnabled = true;
}
}
bool Interface::EventUsersPanelWindow_FOG(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_FOG].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_FOG) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_FOG].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_FOG].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_FOG].EventTick = GetTickCount();
if(gFog.EnableFog) //Fog
{
gFog.EnableFog = false;
}
    else
{
gFog.EnableFog = true;
}
}
bool Interface::EventUsersPanelWindow_CHAT(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CHAT].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CHAT) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CHAT].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CHAT].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_CHAT].EventTick = GetTickCount();
gChatExpanded.Switch();
}
bool Interface::EventUsersPanelWindow_MINIMAP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_MINIMAP].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_MINIMAP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_MINIMAP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_MINIMAP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_MINIMAP].EventTick = GetTickCount();
if(showMiniMap) //Fog
{
gInterface.showMiniMap = false;
}
    else
{
gInterface.showMiniMap = true;
}
}

void Interface::DrawPSHOP()
{
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 100.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
// ---
if(this->CheckWindow(ObjWindow::Store) == true && this->CheckWindow(ObjWindow::ExpandInventory) == true)
{
StartX -= 190;
}
// ---
this->DrawFormat(eGold, StartX + 31, StartY + 77, + 125, 3, gCustomMessage.GetMessageB(3245));
// ---
this->DrawGUI(eSHOP_WC, StartX + 70, StartY + 90);
this->DrawFormat(eWhite, StartX + 80, StartY + 97, 100.0f, 1.0f, "WCoinC");
// ---
this->DrawGUI(eSHOP_B, StartX + 70, StartY + 120);
this->DrawFormat(eYellow, StartX + 85, StartY + 127, 100.0f, 1.0f, "Bless");
// ---
this->DrawGUI(eSHOP_WP, StartX + 125, StartY + 90);
this->DrawFormat(eWhite, StartX + 135, StartY + 97, 100.0f, 1.0f, "WCoinP");
// ---
this->DrawGUI(eSHOP_S, StartX + 125, StartY + 120);
this->DrawFormat(eYellow, StartX + 139, StartY + 127, 100.0f, 1.0f, "Soul");
// ---
this->DrawGUI(eSHOP_GP, StartX + 180, StartY + 90);
this->DrawFormat(eWhite, StartX + 187, StartY + 97, 100.0f, 1.0f, "GoblinPoint");
// ---
this->DrawGUI(eSHOP_C, StartX + 180, StartY + 120);
this->DrawFormat(eYellow, StartX + 195, StartY + 127, 100.0f, 1.0f, "Chaos");
// ---
/*this->DrawGUI(eSHOP_L, StartX + 70, StartY + 150);
this->DrawFormat(eYellow, StartX + 85, StartY + 157, 100.0f, 1.0f, "Life");
// ---
this->DrawGUI(eSHOP_Gem, StartX + 70, StartY + 180);
this->DrawFormat(eYellow, StartX + 80, StartY + 187, 100.0f, 1.0f, "Gemstone");
// ---
this->DrawGUI(eSHOP_Cr, StartX + 125, StartY + 150);
this->DrawFormat(eYellow, StartX + 135, StartY + 157, 100.0f, 1.0f, "Creation");
// ---
this->DrawGUI(eSHOP_H, StartX + 125, StartY + 180);
this->DrawFormat(eYellow, StartX + 137, StartY + 187, 100.0f, 1.0f, "Harmony");
// ---
this->DrawGUI(eSHOP_G, StartX + 180, StartY + 150);
this->DrawFormat(eYellow, StartX + 191, StartY + 157, 100.0f, 1.0f, "Guardian");
// ---
this->DrawGUI(eSHOP_R, StartX + 180, StartY + 180);
this->DrawFormat(eYellow, StartX + 187, StartY + 187, 100.0f, 1.0f, "Refine Stone");*/
// ---
this->DrawGUI(eSHOP_OFF, StartX + 190, StartY + 291);
// ---

if(IsWorkZone(eSHOP_OFF))
{
this->DrawToolTip(StartX + 170, StartY + 280, gCustomMessage.GetMessageB(3244));
}
}
bool Interface::DrawPSHOP_Main(DWORD Event)
{
this->DrawPSHOP_BLESS(Event);
this->DrawPSHOP_SOUL(Event);
this->DrawPSHOP_CHAOS(Event);
this->DrawPSHOP_WCOINC(Event);
this->DrawPSHOP_WCOINP(Event);
this->DrawPSHOP_COINTP(Event);
this->DrawPSHOP_OFFBUTTON(Event);
this->DrawPSHOP_LIFE(Event);
this->DrawPSHOP_CREATION(Event);
this->DrawPSHOP_GUARDIAN(Event);
this->DrawPSHOP_GEMSTONE(Event);
this->DrawPSHOP_HARMONY(Event);
this->DrawPSHOP_REFINE(Event);
return true;
}
bool Interface::DrawPSHOP_BLESS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_B].EventTick);
// ----
if(!this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_B))
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_B].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_B].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x01,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_SOUL(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_S].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_S) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_S].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_S].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_S].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_CHAOS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_C].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_C) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_C].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_C].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_C].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x03,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINC(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WC].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WC) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WC].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WC].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WC].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x04,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x05,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_COINTP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_GP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_GP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_GP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_GP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_GP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x06,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_LIFE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_L].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_L) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_L].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_L].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_L].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x09,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_CREATION(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Cr].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Cr) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Cr].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Cr].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Cr].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x10,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GUARDIAN(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_G].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_G) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_G].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_G].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_G].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x11,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GEMSTONE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Gem].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Gem) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Gem].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Gem].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Gem].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x12,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_HARMONY(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_H].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_H) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_H].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_H].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_H].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x13,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_REFINE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_R].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_R) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_R].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_R].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x14,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_OFFBUTTON(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_OFF].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_OFF) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_OFF].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_OFF].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eSHOP_OFF].EventTick = GetTickCount();
gInterface.OpenOffWindow();
}

void Interface::DrawPSHOP_OFFMODE()
{
if( !this->Data[eOFFPANEL_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFPANEL_TITLE, StartX, StartY);
//StartY = this->DrawRepeatGUI(eOFFPANEL_FRAME, StartX, StartY + 67.0, 13);
this->DrawGUI(eOFFPANEL_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, gCustomMessage.GetMessageB(3244));
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, gCustomMessage.GetMessageB(3246));
this->DrawGUI(eOFFPANEL_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFPANEL_CANE, StartX + 140, StartY + 75);
}

bool Interface::DrawPSHOP_OFFMAIN(DWORD Event)
{
this->DrawPSHOP_OFFYES(Event);
this->DrawPSHOP_OFFCANE(Event);
return true;
}

bool Interface::DrawPSHOP_OFFYES(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_YES].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x07,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffWindow();
}
bool Interface::DrawPSHOP_OFFCANE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_CANE].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_CANE].EventTick = GetTickCount();
this->CloseOffWindow();
}

// OFF ATTACK MODE
void Interface::DrawOffAttack()
{
if( !this->Data[eOFFATTACK_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFATTACK_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFATTACK_TITLE, StartX, StartY);
this->DrawGUI(eOFFATTACK_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, "Offline Attack System");
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, "Leave your Character in OFFATTACK mode?");
this->DrawGUI(eOFFATTACK_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFATTACK_CANE, StartX + 140, StartY + 75);

}

bool Interface::OffAttackEvent_Main(DWORD Event)
{
this->OffAttackEvent_Button1(Event);
this->OffAttackEvent_Button2(Event);
return true;
}

bool Interface::OffAttackEvent_Button1(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_YES].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x08,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffAttackWindow();
}
bool Interface::OffAttackEvent_Button2(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_CANE].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_CANE].EventTick = GetTickCount();
this->CloseOffAttackWindow();
}


void Interface::Work2() {
if (gInterface.item_post_ && pCursorX < 150)
{
gInterface.DrawItemToolTipText(gInterface.item_post_, pCursorX + 80, pCursorY - 80);
if (gInterface.last_tickcount_view_ + 100 < GetTickCount()) {
gInterface.item_post_ = nullptr;
}
}
    pDrawInterface2();
}

void Interface::DrawChat ( int mode, char* character, char* message ) {
    PBMSG_CHATPOSTITEM chat;
    memset ( &chat.character_[0], 0, 10 );
    memset ( &chat.message_[0], 0, 89 );
    memcpy ( &chat.character_[0], &character[0], 10 );
    memcpy ( &chat.message_[0], &message[0], strlen ( message ) );
    pHandlePacketChatData ( &chat );

if (mode >= 1 && mode <= 9 && ChatBoxMuObjectChatDataPtrArrayLength) {
int index = ChatBoxMuObjectChatDataPtrArrayLength - 1;
ChatBoxMuObjectChatDataPtrArray[index]->chat_type_ = mode;
}
}

void Interface::DrawItemToolTipText ( void * item, int x, int y ) {
static DWORD mem = 0;
//static DWORD ItemToolTipAdress1 = 0x00861110; //1.04D-> 0x00860FC0
//static DWORD ItemToolTipAdress2 = 0x00861AA0; //1.04D-> 0x00861950
//static DWORD ItemToolTipAdress3 = 0x007E3E30; //1.04D-> 0x007E3CE0
_asm {
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH item
    PUSH y
    PUSH x
MOV mem,0x00861110
    CALL mem
    MOV ECX, EAX
MOV mem,0x00861AA0
    CALL mem
    MOV ECX, EAX
MOV mem,0x007E3E30
    CALL mem
}

}

void Interface::DrawS2Interface()
{
gInterface.DrawGUI(eSkillBox, 305, 443);
}

void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 435, gCustomMessage.GetMessage(11));
}
if (this->CheckWindow(Party))
{
gInterface.DrawGUI(eParty, 348, 449);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 435, gCustomMessage.GetMessage(12));
}
if (this->CheckWindow(Character))
{
gInterface.DrawGUI(eCharacter, 378.5f, 449);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 435, gCustomMessage.GetMessage(13));
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawGUI(eInventory, 409, 449);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, gCustomMessage.GetMessage(14));
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawGUI(eFriend, 581, 432);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, gCustomMessage.GetMessage(15));
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawGUI(eFastMenu, 5, 432);
}

}

void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}

if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
}

tenta aqui
pLoadImage("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0);

tentei mas erro :(

error C2660: 'LoadBitmapA' : function does not take 6 arguments

IntelliSense: argument of type "const char *" is incompatible with parameter of type "HINSTANCE"   

IntelliSense: argument of type "int" is incompatible with parameter of type "LPCSTR"

IntelliSense: too many arguments in function call

Gracias:


Offline vcore30 #26 Posteado: March 16, 2022, 02:02:20 PM

  • 0 puntos por ventas
  • *
  • Rank: Destacado
  • Posts: 97
  • Gracias recibida: 898
  • ru
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo


Obrigada. Mas meu código fonte não tem esses

Code: [Select]
#include "stdafx.h"
#include "Interface.h"
#include "TMemory.h"
#include "Protocol.h"
#include "Offset.h"
#include "User.h"
#include "Import.h"
#include "Defines.h"
#include "Camera.h"
#include "Fog.h"
#include "Other.h"
#include "Graphics.h"
#include "Glow.h"
#include "ChatExpanded.h"
#include "Reconnect.h"
#include "Config.h"
#include "CustomMessage.h"
#include "CustomEventTime.h"
#include "post_item.h"
#include "inter3.h"

Interface gInterface;
DWORD CharacterInfoExtern_Buff;
char CharacterInfoExtern_LevelBuff[80];
DWORD AddSomeShine_Buff;
DWORD AddSomeShine_Pointer;
bool Checkbox = true;

Interface::Interface()
{
ZeroMemory(this->Data, sizeof(this->Data));
}
Naked(AddSomeShine)
{
_asm
{
mov eax, dword ptr ds:[ecx + 0x30]
mov AddSomeShine_Buff, eax
}

if( AddSomeShine_Buff == 349 || AddSomeShine_Buff == 406 || AddSomeShine_Buff == 407 || AddSomeShine_Buff == 408 )
{
_asm
{
mov AddSomeShine_Buff, 0x005E4979
jmp AddSomeShine_Buff
}
}
else
{
_asm
{
mov AddSomeShine_Buff, 0x005E4A3C
jmp AddSomeShine_Buff
}
}
}

void Interface::Load()
{
/* this->BindObject(eSkillBox, iNewSkillBox, 32, 38, 305, 443);
// this->BindObject(eDragonLeft, iDragonLeft, 108, 45, 0, 388);
// this->BindObject(eDragonRight, iDragonRight, 108, 45, 532, 388);
// this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
*/
//--
this->BindObject(eSAMPLEBUTTON, 0x7AA4, 16, 15, 175, 1);
this->BindObject(eCheck, 0x9991, 15, 15, -1, -1);
this->BindObject(eUnCheck, 0x9992, 15, 15, -1, -1);
this->BindObject(eTIME, 0x787E, 80, 20, 174, 0);
this->BindObject(eOFFATTACK_BUTTON, 0x787F, 16, 12, -1, -1);
this->BindObject(eOPTIONS_BUTTON, 0x787D, 16, 12, -1, 1);
//---
this->BindObject(eCAMERA_MAIN, 0x787A, 93, 18, 174, 0);
this->BindObject(eCAMERA_BUTTON1, 0x787B, 16, 12, -1, -1);
this->BindObject(eCAMERA_BUTTON2, 0x787C, 16, 12, -1, -1);
//this->BindObject(eLOGO, 0x9989, 63.3, 50, 192.5, 1);
this->BindObject(eSHOP_WC, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_WP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_GP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_B, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_S, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_C, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_L, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Cr, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_G, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Gem, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_H, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_R, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_OFF, 0x7C04, 36, 27, -1, -1);
//---
this->BindObject(eOFFPANEL_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFPANEL_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFPANEL_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eOFFATTACK_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFATTACK_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFATTACK_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFATTACK_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFATTACK_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFATTACK_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eUSERSPANEL_MAIN, 0x7A5A, 222, 256, -1, -1);
this->BindObject(eUSERSPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eUSERSPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eUSERSPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eUSERSPANEL_DIV, 0x7A62, 223, 21, -1, -1);
this->BindObject(eUSERSPANEL_OPTION, 0x7B68, 10, 10, -1, -1);
this->BindObject(eUSERSPANEL_LINE, 0x7B67, 154, 2, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON1, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON2, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_FOG, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CLOSE, 0x7A5E, 128, 29, -1, -1);
this->BindObject(eUSERSPANEL_HPBAR, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_RANKHIDE, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_TRONGLOW, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CHAT, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_MINIMAP, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CAMERA, 0x9991, 15, 15, -1, -1);
//--
//Command info
this->BindObject(eEventTime_MAIN, 0x789F, 222, 195, -1, -1);
this->BindObject(eEventTime_CLOSE, 0x7EC5, 36, 29, -1, -1);

//---
this->Data[eTIME].OnShow = true;
this->showMiniMap = false;
//SetOp((LPVOID)oAllowGUI_Call1, this->AllowGUI, ASM::CALL);
//SetOp((LPVOID)oAllowGUI_Call2, this->AllowGUI, ASM::CALL);
SetOp((LPVOID)oDrawInterface_Call, this->Work, ASM::CALL);
SetOp((LPVOID)oLoadSomeForm_Call, this->LoadImages, ASM::CALL);
SetOp((LPVOID)0x00633FFB, this->LoadModels, ASM::CALL);
SetOp((LPVOID)0x00842468, this->PShopTextInfo, ASM::CALL);
//==========================================
// - Remove Texts PShop
//==========================================
SetRange((LPVOID)0x00842086, 5, ASM::NOP);
SetRange((LPVOID)0x0084234F, 5, ASM::NOP);
SetRange((LPVOID)0x008423C3, 5, ASM::NOP);
// - Draw Post Item
 this->item_post_ = nullptr;
 SetOp((LPVOID)oDrawInterface2_Call, this->Work2, ASM::CALL);
}
void Interface::Work()
{
gInterface.DrawTimeUI();
gObjUser.Refresh();
gCamera.Rotate();
gCamera.Position();
//--
ReconnectMainProc();
gInterface.DrawOffAttack();
gInterface.DrawPSHOP_OFFMODE();
gInterface.DrawUsersPanelWindow();
gInterface.DrawCameraUI();
pDrawInterface();
//--
gCustomEventTime.DrawEventTimePanelWindow();
}
int Interface::PShopTextInfo(int pThis)
{
gInterface.DrawPSHOP();
// ---
return pPShopTextInfo(pThis);
}
void Interface::LoadImages()
{
/* pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu02.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu03_new.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
// pLoadImage("Custom\\Interface\\s3\\2Menu04.tga", iDragonLeft, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu05.tga", iDragonRight, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2win_push.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2menu01_new2.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2SkillBox.jpg", iNewSkillBox, GL_LINEAR, GL_CLAMP, 1, 0);
*/
//--
pLoadImage("Interface\\TimeBar.tga", 0x787E, 0x2601, 0x2901, 1, 0);
pLoadImage("Interface\\CameraUI_BG.tga", 0x787A, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Switch.tga", 0x787B, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Reset.tga", 0x787C, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\OffAttack_Switch.tga", 0x787F, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\MacroSetup.tga", 0x787D, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Interface\\EventTime.tga", 0x789F, 0x2601, 0x2900, 1, 0);
// logo
//pLoadImage("Custom\\logo\\mwebgame.tga", 0x9989, 0x2601, 0x2900, 1, 0);
// MiniMap
pLoadImage("Interface\\check.jpg", 0x9991, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\uncheck.jpg", 0x9992, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\button.tga", 0x9994, 0x2601, 0x2900, 1, 0);
//--
//Here animation for cape. Wing 214.bmd for display only item in Inventory
pLoadImage("Item\\Newdeath01.tga", 0x789C, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Newdeath02.tga", 0x789D, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4dd.tga", 0x78A5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4de.tga", 0x78A6, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\ragefighterwing4db.tga", 0x78A8, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\growlancerwing4dc.tga", 0x78A9, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item801_2_wing.tga", 0x78B1, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item802_2_wing.tga", 0x78B2, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\NCcapeSmall.tga", 0x78B3, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\DarkLordRobeSmall.tga", 0x78B4, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\darklordwing4ddmr.tga", 0x78B5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4demr.tga", 0x78B6, 0x2601, 0x2900, 1, 0);
//--
pLoadSomeForm();
}
void Interface::LoadModels()
{
pInitModelData2();
}
void Interface::BindObject(short MonsterID, DWORD ModelID, float Width, float Height, float X, float Y)
{
this->Data[MonsterID].EventTick = 0;
this->Data[MonsterID].OnClick = false;
this->Data[MonsterID].OnShow = false;
this->Data[MonsterID].ModelID = ModelID;
this->Data[MonsterID].Width = Width;
this->Data[MonsterID].Height = Height;
this->Data[MonsterID].X = X;
this->Data[MonsterID].Y = Y;
this->Data[MonsterID].MaxX = X + Width;
this->Data[MonsterID].MaxY = Y + Height;
this->Data[MonsterID].Attribute = 0;
}
void Interface::DrawSampleButton()
{
float PosX = this->GetResizeX(eSAMPLEBUTTON);

if( this->CheckWindow(ObjWindow::CashShop)
|| this->CheckWindow(ObjWindow::FullMap)
|| this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(MoveList) )
{
return;
}

this->DrawGUI(eSAMPLEBUTTON, PosX, 1);

if( !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

this->DrawToolTip(PosX - 5, 31, "Button tooltip");

if( this->Data[eSAMPLEBUTTON].OnClick )
{
this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(40, 20, 3, 130));
return;
}

this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(255, 204, 20, 130));
}
void Interface::EventSampleButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSAMPLEBUTTON].EventTick);

if( this->CheckWindow(CashShop) || this->CheckWindow(FullMap)
|| this->CheckWindow(SkillTree) || this->CheckWindow(MoveList)
|| !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

if( Event == WM_LBUTTONDOWN )
{
this->Data[eSAMPLEBUTTON].OnClick = true;
return;
}

this->Data[eSAMPLEBUTTON].OnClick = false;

if( Delay < 500 )
{
return;
}

this->Data[eSAMPLEBUTTON].EventTick = GetTickCount();

if( !this->Data[eRANK_MAIN].OnShow )
{
this->Data[eRANK_MAIN].OnShow = true;
}
else
{
this->Data[eRANK_MAIN].OnShow = false;
}
}
void Interface::DrawCameraUI()
{
float PosX = this->GetResizeX(eCAMERA_MAIN);
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
this->DrawGUI(eCAMERA_MAIN, PosX, 0);
this->DrawGUI(eCAMERA_BUTTON1, PosX + 18.5, 1);
this->DrawGUI(eCAMERA_BUTTON2, PosX + 37.0, 1);
//this->DrawGUI(eLOGO, PosX + 370, 20);
this->DrawGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5);
this->DrawGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5);
// ----
if (gCamera.IsActive)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, eShinyGreen);
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
if (gCamera.IsActive)
{
this->DrawToolTip(PosX + 18.5 - 5, 25, "Zoom: %02.f%%", gCamera.ZoomPercent);
}
else
{
this->DrawToolTip(PosX + 18.5 - 5, 25, gCustomMessage.GetMessageB(3243));
}
// ----
if (this->Data[eCAMERA_BUTTON1].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(255, 204, 20, 200));
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
this->DrawToolTip(PosX + 37.0 - 5, 25, gCustomMessage.GetMessageB(3242));
// ----
if (this->Data[eCAMERA_BUTTON2].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(255, 204, 20, 200));
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
{
this->DrawToolTip(PosX + 0.5 - 5, 25, gCustomMessage.GetMessageB(3241));
}
// ----
if (this->Data[eOFFATTACK_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(250, 125, 50, 200));
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
{
this->DrawToolTip(PosX + 55.5 - 5, 25, gCustomMessage.GetMessageB(3240)); //Advanced Options

}
// ----
if (this->Data[eOPTIONS_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 55.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5, pMakeColor(255, 204, 20, 200));
}
// ----
}
// ----------------------------------------------------------------------------------------------
void Interface::EventCameraUI(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON1].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON1].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON1].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON1].EventTick = GetTickCount();
// ----
gCamera.Switch();
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON2].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON2].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON2].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON2].EventTick = GetTickCount();
// ----
gCamera.Init();
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOFFATTACK_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].EventTick = GetTickCount();
// ----
OpenOffAttackWindow();
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOPTIONS_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOPTIONS_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOPTIONS_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOPTIONS_BUTTON].EventTick = GetTickCount();
// ----
gInterface.OpenUsersPanelWindow();
}
}
// ----------------------------------------------------------------------------------------------
bool Interface::CheckWindow(int WindowID)
{
return pCheckWindow(pWindowThis(), WindowID);
}
int Interface::CloseWindow(int WindowID)
{
return pCloseWindow(pWindowThis(), WindowID);
}
int Interface::OpenWindow(int WindowID)
{
return pOpenWindow(pWindowThis(), WindowID);
}

void Interface::DrawTimeUI()
{
if (!this->Data[eTIME].OnShow)
{
return;
}
// ----
if (this->CheckWindow(ObjWindow::CashShop) || this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(ObjWindow::MoveList) || this->CheckWindow(ObjWindow::ChatWindow) || this->CheckWindow(FullMap))
{
return;
}
// ----
this->DrawGUI(eTIME, 0.0f, 412.0f);
// -----
time_t TimeLocal;
struct tm * LocalT;
time(&TimeLocal);
LocalT = localtime(&TimeLocal);
char LocalTime[30];
sprintf(LocalTime, "%2d:%02d:%02d", LocalT->tm_hour, LocalT->tm_min, LocalT->tm_sec);
this->DrawFormat(eWhite, 27.0f, 418.0f, 100.0f, 1.0f, LocalTime);
}
/*
bool Interface::AllowGUI()
{
if( gInterface.CheckResetWindow())
{
return false;
}

return pAllowGUI();
}
*/
void Interface::SetTextColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Opacity)
{
pSetTextColor(pTextThis(), Red, Green, Blue, Opacity);
}
void Interface::DrawText(int X, int Y, LPCTSTR Text)
{
pDrawText(pTextThis(), X, Y, Text, 0, 0, (LPINT)1, 0);
}
int Interface::DrawFormat(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawColorText(Line, PosX, PosY, Width, 0, Color, 0, Align);
PosY += 10;
Line = strtok(NULL, "\n");
}

return PosY;
}
void Interface::DrawFormatEx(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

pDrawColorText(Buff, PosX, PosY, Width, 0, Color, 0, Align);
}
float Interface::DrawRepeatGUI(short MonsterID, float X, float Y, int Count)
{
float StartY = Y;

for( int i = 0; i < Count; i++ )
{
pDrawGUI(this->Data[MonsterID].ModelID, X, StartY,this->Data[MonsterID].Width, this->Data[MonsterID].Height);

StartY += this->Data[MonsterID].Height;
}

return StartY;
}
void Interface::DrawGUI(short ObjectID, float PosX, float PosY)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = PosX;
this->Data[ObjectID].Y = PosY;
this->Data[ObjectID].MaxX = PosX + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = PosY + this->Data[ObjectID].Height;
}

pDrawGUI(this->Data[ObjectID].ModelID, PosX, PosY,this->Data[ObjectID].Width, this->Data[ObjectID].Height);
}
void Interface::DrawColoredGUI(short ObjectID, float X, float Y, DWORD Color)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = X;
this->Data[ObjectID].Y = Y;
this->Data[ObjectID].MaxX = X + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = Y + this->Data[ObjectID].Height;
}

pDrawColorButton(this->Data[ObjectID].ModelID, X, Y,this->Data[ObjectID].Width, this->Data[ObjectID].Height, 0, 0, Color);
}
int Interface::DrawToolTip(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawToolTip(X, Y, Buff);
}
int Interface::DrawToolTipEx(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawToolTip(X, Y, Line);
Y += 10;
Line = strtok(NULL, "\n");
}

return Y;
}
int Interface::DrawMessage(int Mode, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawMessage(Buff, Mode);
}
bool Interface::IsWorkZone(short ObjectID)
{
float PosX = this->Data[ObjectID].X;
float MaxX = PosX + this->Data[ObjectID].Width;

if( ObjectID == eSAMPLEBUTTON )
{
PosX = this->GetResizeX(ObjectID);
MaxX = PosX + this->Data[ObjectID].Width;
}

if( (gObjUser.m_CursorX < PosX || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
bool Interface::IsWorkZone(float X, float Y, float MaxX, float MaxY)
{
if( (gObjUser.m_CursorX < X || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < Y || gObjUser.m_CursorY > MaxY) )
return false;

return true;
}
float Interface::GetResizeX(short ObjectID)
{
if( pWinWidth == 800 )
{
return this->Data[ObjectID].X + 16.0;
}
else if( pWinWidth != 1024 )
{
return this->Data[ObjectID].X - 16.0;
}

return this->Data[ObjectID].X;
}

float Interface::GetResizeY(short ObjectID)
{

return this->Data[ObjectID].Y;
}
// ----------------------------------------------------------------------------------------------
bool Interface::MiniMapCheck()
{
if (this->CheckWindow(Inventory) ||
this->CheckWindow(CashShop) ||
this->CheckWindow(ChaosBox) ||
this->CheckWindow(Character) ||
this->CheckWindow(CommandWindow) ||
this->CheckWindow(ExpandInventory) ||
this->CheckWindow(ExpandWarehouse) ||
this->CheckWindow(FullMap) ||
this->CheckWindow(GensInfo) ||
this->CheckWindow(Guild) ||
this->CheckWindow(NPC_Dialog) ||
this->CheckWindow(NPC_Julia) ||
this->CheckWindow(NPC_Titus) ||
this->CheckWindow(OtherStore) ||
this->CheckWindow(Party) ||
this->CheckWindow(PetInfo) ||
this->CheckWindow(Shop) ||
this->CheckWindow(SkillTree) ||
this->CheckWindow(Store) ||
this->CheckWindow(Trade) ||
this->CheckWindow(FriendList) ||
this->CheckWindow(FastMenu) ||
this->CheckWindow(MuHelper) ||
this->CheckWindow(Quest) ||
this->CheckWindow(Warehouse))
return true;
return false;
}

bool Interface::CombinedChecks()
{
if ((this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Character)
&& this->CheckWindow(Store)))
return true;
return false;
}
// ----------------------------------------------------------------------------------------------
void Interface::DrawUsersPanelWindow()
{
if( !this->Data[eUSERSPANEL_MAIN].OnShow )
{
return;
}
// ----
DWORD ItemNameColor = eWhite;
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 90.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eUSERSPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eUSERSPANEL_TITLE, StartX, StartY);
StartY = this->DrawRepeatGUI(eUSERSPANEL_FRAME, StartX, StartY + 20.0, 13);
this->DrawGUI(eUSERSPANEL_FOOTER, StartX, StartY);
// ----
if( IsWorkZone(eUSERSPANEL_CLOSE) )
{
DWORD Color = eGray100;

if( this->Data[eUSERSPANEL_CLOSE].OnClick )
{
Color = eGray150;
}

this->DrawColoredGUI(eUSERSPANEL_CLOSE, this->Data[eUSERSPANEL_CLOSE].X, this->Data[eUSERSPANEL_CLOSE].Y, Color);
}
// ----
this->DrawGUI(eUSERSPANEL_CLOSE, ButtonX, this->Data[eUSERSPANEL_FOOTER].Y + 0);
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + -205, 210, 3, gCustomMessage.GetMessageB(3240));
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + 10, 210, 3, gCustomMessage.GetMessageB(388));
this->DrawGUI(eUSERSPANEL_DIV, StartX, this->Data[eUSERSPANEL_FOOTER].Y - 20);
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 38);
this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 55);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 40, +125, 1, gCustomMessage.GetMessageB(3795));
{
if(lifebar)
{
}
else
{
this->DrawGUI(eUSERSPANEL_HPBAR, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_RANKHIDE, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 63);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 80);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 65, +125, 1, gCustomMessage.GetMessageB(3796));
{
if(rankbar)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_TRONGLOW, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 88);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 105);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 90, +135, 1, gCustomMessage.GetMessageB(3797));
{
if(g_bEnabled)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
}
// ----
}
// ----
this->DrawGUI(eUSERSPANEL_FOG, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 113);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 130);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 115, +125, 1, gCustomMessage.GetMessageB(3798));
{
if(gFog.EnableFog)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
}
// ----
}
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 138);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 155);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 140, +125, 1, gCustomMessage.GetMessageB(3799));
{
if (!gChatExpanded.IsActive)
        {
}
else
{
this->DrawGUI(eUSERSPANEL_CHAT, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
}
// ----
}

/* // ----
this->DrawGUI(eUSERSPANEL_MINIMAP, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 165);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 182);
this->DrawFormat(eWhite, StartX + 20, this->Data[eUSERSPANEL_MAIN].Y + 167, +120, 3, "Mini Map      ");
{
if (showMiniMap)
        {
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
}
// ----

}
// ----
*/
}
bool Interface::EventUsersPanelWindow_Main(DWORD Event)
{
this->EventUsersPanelWindow_Close(Event);
this->EventUsersPanelWindow_HPBAR(Event);
this->EventUsersPanelWindow_RANKHIDE(Event);
this->EventUsersPanelWindow_TRONGLOW(Event);
this->EventUsersPanelWindow_FOG(Event);
this->EventUsersPanelWindow_CHAT(Event);
this->EventUsersPanelWindow_MINIMAP(Event);
return true;
}
bool Interface::EventUsersPanelWindow_Close(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CLOSE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CLOSE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CLOSE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CLOSE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_CLOSE].EventTick = GetTickCount();
this->CloseUsersPanelWindow();
// ----
return false;
}
bool Interface::EventUsersPanelWindow_HPBAR(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_HPBAR].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_HPBAR) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_HPBAR].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_HPBAR].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_HPBAR].EventTick = GetTickCount();
if(lifebar)
{
lifebar = false;
}
else
{
lifebar = true;
}
}
bool Interface::EventUsersPanelWindow_RANKHIDE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_RANKHIDE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_RANKHIDE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_RANKHIDE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_RANKHIDE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_RANKHIDE].EventTick = GetTickCount();
if(rankbar)
{
rankbar = false;
}
else
{
rankbar = true;
}
}
bool Interface::EventUsersPanelWindow_TRONGLOW(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_TRONGLOW].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_TRONGLOW) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_TRONGLOW].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].EventTick = GetTickCount();
if(g_bEnabled) //Effects
{
g_bEnabled = false;
}
else
{
g_bEnabled = true;
}
}
bool Interface::EventUsersPanelWindow_FOG(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_FOG].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_FOG) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_FOG].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_FOG].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_FOG].EventTick = GetTickCount();
if(gFog.EnableFog) //Fog
{
gFog.EnableFog = false;
}
    else
{
gFog.EnableFog = true;
}
}
bool Interface::EventUsersPanelWindow_CHAT(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CHAT].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CHAT) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CHAT].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CHAT].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_CHAT].EventTick = GetTickCount();
gChatExpanded.Switch();
}
bool Interface::EventUsersPanelWindow_MINIMAP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_MINIMAP].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_MINIMAP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_MINIMAP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_MINIMAP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_MINIMAP].EventTick = GetTickCount();
if(showMiniMap) //Fog
{
gInterface.showMiniMap = false;
}
    else
{
gInterface.showMiniMap = true;
}
}

void Interface::DrawPSHOP()
{
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 100.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
// ---
if(this->CheckWindow(ObjWindow::Store) == true && this->CheckWindow(ObjWindow::ExpandInventory) == true)
{
StartX -= 190;
}
// ---
this->DrawFormat(eGold, StartX + 31, StartY + 77, + 125, 3, gCustomMessage.GetMessageB(3245));
// ---
this->DrawGUI(eSHOP_WC, StartX + 70, StartY + 90);
this->DrawFormat(eWhite, StartX + 80, StartY + 97, 100.0f, 1.0f, "WCoinC");
// ---
this->DrawGUI(eSHOP_B, StartX + 70, StartY + 120);
this->DrawFormat(eYellow, StartX + 85, StartY + 127, 100.0f, 1.0f, "Bless");
// ---
this->DrawGUI(eSHOP_WP, StartX + 125, StartY + 90);
this->DrawFormat(eWhite, StartX + 135, StartY + 97, 100.0f, 1.0f, "WCoinP");
// ---
this->DrawGUI(eSHOP_S, StartX + 125, StartY + 120);
this->DrawFormat(eYellow, StartX + 139, StartY + 127, 100.0f, 1.0f, "Soul");
// ---
this->DrawGUI(eSHOP_GP, StartX + 180, StartY + 90);
this->DrawFormat(eWhite, StartX + 187, StartY + 97, 100.0f, 1.0f, "GoblinPoint");
// ---
this->DrawGUI(eSHOP_C, StartX + 180, StartY + 120);
this->DrawFormat(eYellow, StartX + 195, StartY + 127, 100.0f, 1.0f, "Chaos");
// ---
/*this->DrawGUI(eSHOP_L, StartX + 70, StartY + 150);
this->DrawFormat(eYellow, StartX + 85, StartY + 157, 100.0f, 1.0f, "Life");
// ---
this->DrawGUI(eSHOP_Gem, StartX + 70, StartY + 180);
this->DrawFormat(eYellow, StartX + 80, StartY + 187, 100.0f, 1.0f, "Gemstone");
// ---
this->DrawGUI(eSHOP_Cr, StartX + 125, StartY + 150);
this->DrawFormat(eYellow, StartX + 135, StartY + 157, 100.0f, 1.0f, "Creation");
// ---
this->DrawGUI(eSHOP_H, StartX + 125, StartY + 180);
this->DrawFormat(eYellow, StartX + 137, StartY + 187, 100.0f, 1.0f, "Harmony");
// ---
this->DrawGUI(eSHOP_G, StartX + 180, StartY + 150);
this->DrawFormat(eYellow, StartX + 191, StartY + 157, 100.0f, 1.0f, "Guardian");
// ---
this->DrawGUI(eSHOP_R, StartX + 180, StartY + 180);
this->DrawFormat(eYellow, StartX + 187, StartY + 187, 100.0f, 1.0f, "Refine Stone");*/
// ---
this->DrawGUI(eSHOP_OFF, StartX + 190, StartY + 291);
// ---

if(IsWorkZone(eSHOP_OFF))
{
this->DrawToolTip(StartX + 170, StartY + 280, gCustomMessage.GetMessageB(3244));
}
}
bool Interface::DrawPSHOP_Main(DWORD Event)
{
this->DrawPSHOP_BLESS(Event);
this->DrawPSHOP_SOUL(Event);
this->DrawPSHOP_CHAOS(Event);
this->DrawPSHOP_WCOINC(Event);
this->DrawPSHOP_WCOINP(Event);
this->DrawPSHOP_COINTP(Event);
this->DrawPSHOP_OFFBUTTON(Event);
this->DrawPSHOP_LIFE(Event);
this->DrawPSHOP_CREATION(Event);
this->DrawPSHOP_GUARDIAN(Event);
this->DrawPSHOP_GEMSTONE(Event);
this->DrawPSHOP_HARMONY(Event);
this->DrawPSHOP_REFINE(Event);
return true;
}
bool Interface::DrawPSHOP_BLESS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_B].EventTick);
// ----
if(!this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_B))
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_B].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_B].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x01,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_SOUL(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_S].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_S) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_S].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_S].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_S].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_CHAOS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_C].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_C) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_C].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_C].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_C].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x03,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINC(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WC].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WC) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WC].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WC].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WC].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x04,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x05,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_COINTP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_GP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_GP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_GP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_GP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_GP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x06,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_LIFE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_L].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_L) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_L].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_L].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_L].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x09,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_CREATION(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Cr].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Cr) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Cr].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Cr].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Cr].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x10,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GUARDIAN(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_G].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_G) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_G].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_G].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_G].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x11,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GEMSTONE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Gem].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Gem) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Gem].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Gem].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Gem].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x12,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_HARMONY(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_H].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_H) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_H].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_H].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_H].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x13,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_REFINE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_R].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_R) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_R].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_R].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x14,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_OFFBUTTON(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_OFF].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_OFF) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_OFF].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_OFF].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eSHOP_OFF].EventTick = GetTickCount();
gInterface.OpenOffWindow();
}

void Interface::DrawPSHOP_OFFMODE()
{
if( !this->Data[eOFFPANEL_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFPANEL_TITLE, StartX, StartY);
//StartY = this->DrawRepeatGUI(eOFFPANEL_FRAME, StartX, StartY + 67.0, 13);
this->DrawGUI(eOFFPANEL_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, gCustomMessage.GetMessageB(3244));
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, gCustomMessage.GetMessageB(3246));
this->DrawGUI(eOFFPANEL_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFPANEL_CANE, StartX + 140, StartY + 75);
}

bool Interface::DrawPSHOP_OFFMAIN(DWORD Event)
{
this->DrawPSHOP_OFFYES(Event);
this->DrawPSHOP_OFFCANE(Event);
return true;
}

bool Interface::DrawPSHOP_OFFYES(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_YES].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x07,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffWindow();
}
bool Interface::DrawPSHOP_OFFCANE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_CANE].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_CANE].EventTick = GetTickCount();
this->CloseOffWindow();
}

// OFF ATTACK MODE
void Interface::DrawOffAttack()
{
if( !this->Data[eOFFATTACK_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFATTACK_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFATTACK_TITLE, StartX, StartY);
this->DrawGUI(eOFFATTACK_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, "Offline Attack System");
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, "Leave your Character in OFFATTACK mode?");
this->DrawGUI(eOFFATTACK_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFATTACK_CANE, StartX + 140, StartY + 75);

}

bool Interface::OffAttackEvent_Main(DWORD Event)
{
this->OffAttackEvent_Button1(Event);
this->OffAttackEvent_Button2(Event);
return true;
}

bool Interface::OffAttackEvent_Button1(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_YES].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x08,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffAttackWindow();
}
bool Interface::OffAttackEvent_Button2(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_CANE].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_CANE].EventTick = GetTickCount();
this->CloseOffAttackWindow();
}


void Interface::Work2() {
if (gInterface.item_post_ && pCursorX < 150)
{
gInterface.DrawItemToolTipText(gInterface.item_post_, pCursorX + 80, pCursorY - 80);
if (gInterface.last_tickcount_view_ + 100 < GetTickCount()) {
gInterface.item_post_ = nullptr;
}
}
    pDrawInterface2();
}

void Interface::DrawChat ( int mode, char* character, char* message ) {
    PBMSG_CHATPOSTITEM chat;
    memset ( &chat.character_[0], 0, 10 );
    memset ( &chat.message_[0], 0, 89 );
    memcpy ( &chat.character_[0], &character[0], 10 );
    memcpy ( &chat.message_[0], &message[0], strlen ( message ) );
    pHandlePacketChatData ( &chat );

if (mode >= 1 && mode <= 9 && ChatBoxMuObjectChatDataPtrArrayLength) {
int index = ChatBoxMuObjectChatDataPtrArrayLength - 1;
ChatBoxMuObjectChatDataPtrArray[index]->chat_type_ = mode;
}
}

void Interface::DrawItemToolTipText ( void * item, int x, int y ) {
static DWORD mem = 0;
//static DWORD ItemToolTipAdress1 = 0x00861110; //1.04D-> 0x00860FC0
//static DWORD ItemToolTipAdress2 = 0x00861AA0; //1.04D-> 0x00861950
//static DWORD ItemToolTipAdress3 = 0x007E3E30; //1.04D-> 0x007E3CE0
_asm {
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH item
    PUSH y
    PUSH x
MOV mem,0x00861110
    CALL mem
    MOV ECX, EAX
MOV mem,0x00861AA0
    CALL mem
    MOV ECX, EAX
MOV mem,0x007E3E30
    CALL mem
}

}

void Interface::DrawS2Interface()
{
gInterface.DrawGUI(eSkillBox, 305, 443);
}

void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 435, gCustomMessage.GetMessage(11));
}
if (this->CheckWindow(Party))
{
gInterface.DrawGUI(eParty, 348, 449);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 435, gCustomMessage.GetMessage(12));
}
if (this->CheckWindow(Character))
{
gInterface.DrawGUI(eCharacter, 378.5f, 449);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 435, gCustomMessage.GetMessage(13));
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawGUI(eInventory, 409, 449);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, gCustomMessage.GetMessage(14));
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawGUI(eFriend, 581, 432);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, gCustomMessage.GetMessage(15));
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawGUI(eFastMenu, 5, 432);
}

}

void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}

if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
}

LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0);

tentei mas erro :(

error C2660: 'LoadBitmapA' : function does not take 6 arguments

IntelliSense: argument of type "const char *" is incompatible with parameter of type "HINSTANCE"   

IntelliSense: argument of type "int" is incompatible with parameter of type "LPCSTR"

IntelliSense: too many arguments in function call


Find this function in Interface.cpp and add this line.

void Interface::LoadImages()
{
  pLoadImage("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);


Gracias:


Offline Robins #27 Posteado: March 16, 2022, 02:14:20 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 40
  • Gracias recibida: 435
  • vn
alguem me orienta onde colocar esse codigo com "LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);" Não sou muito boa nisso

Interface.cpp

busca > "LoadBitmapA"
obrigado, mas no meu Interface.cpp não há palavra LoadBitmapA

Segue ai meu amigo e vai da certo


Obrigada. Mas meu código fonte não tem esses

Code: [Select]
#include "stdafx.h"
#include "Interface.h"
#include "TMemory.h"
#include "Protocol.h"
#include "Offset.h"
#include "User.h"
#include "Import.h"
#include "Defines.h"
#include "Camera.h"
#include "Fog.h"
#include "Other.h"
#include "Graphics.h"
#include "Glow.h"
#include "ChatExpanded.h"
#include "Reconnect.h"
#include "Config.h"
#include "CustomMessage.h"
#include "CustomEventTime.h"
#include "post_item.h"
#include "inter3.h"

Interface gInterface;
DWORD CharacterInfoExtern_Buff;
char CharacterInfoExtern_LevelBuff[80];
DWORD AddSomeShine_Buff;
DWORD AddSomeShine_Pointer;
bool Checkbox = true;

Interface::Interface()
{
ZeroMemory(this->Data, sizeof(this->Data));
}
Naked(AddSomeShine)
{
_asm
{
mov eax, dword ptr ds:[ecx + 0x30]
mov AddSomeShine_Buff, eax
}

if( AddSomeShine_Buff == 349 || AddSomeShine_Buff == 406 || AddSomeShine_Buff == 407 || AddSomeShine_Buff == 408 )
{
_asm
{
mov AddSomeShine_Buff, 0x005E4979
jmp AddSomeShine_Buff
}
}
else
{
_asm
{
mov AddSomeShine_Buff, 0x005E4A3C
jmp AddSomeShine_Buff
}
}
}

void Interface::Load()
{
/* this->BindObject(eSkillBox, iNewSkillBox, 32, 38, 305, 443);
// this->BindObject(eDragonLeft, iDragonLeft, 108, 45, 0, 388);
// this->BindObject(eDragonRight, iDragonRight, 108, 45, 532, 388);
// this->BindObject(eParty, iNewParty, 25, 25, 348, 449);
this->BindObject(eCharacter, iNewCharacter, 25, 25, 379, 449);
this->BindObject(eInventory, iNewInventory, 25, 25, 409, 449);
this->BindObject(eFriend, iNewWinpush, 54, 20, 581, 432);
this->BindObject(eFastMenu, iNewFastMenu, 55, 21, 5, 432);
*/
//--
this->BindObject(eSAMPLEBUTTON, 0x7AA4, 16, 15, 175, 1);
this->BindObject(eCheck, 0x9991, 15, 15, -1, -1);
this->BindObject(eUnCheck, 0x9992, 15, 15, -1, -1);
this->BindObject(eTIME, 0x787E, 80, 20, 174, 0);
this->BindObject(eOFFATTACK_BUTTON, 0x787F, 16, 12, -1, -1);
this->BindObject(eOPTIONS_BUTTON, 0x787D, 16, 12, -1, 1);
//---
this->BindObject(eCAMERA_MAIN, 0x787A, 93, 18, 174, 0);
this->BindObject(eCAMERA_BUTTON1, 0x787B, 16, 12, -1, -1);
this->BindObject(eCAMERA_BUTTON2, 0x787C, 16, 12, -1, -1);
//this->BindObject(eLOGO, 0x9989, 63.3, 50, 192.5, 1);
this->BindObject(eSHOP_WC, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_WP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_GP, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_B, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_S, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_C, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_L, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Cr, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_G, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_Gem, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_H, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_R, 0x7E54, 52, 25, -1, -1);
this->BindObject(eSHOP_OFF, 0x7C04, 36, 27, -1, -1);
//---
this->BindObject(eOFFPANEL_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFPANEL_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFPANEL_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eOFFATTACK_MAIN, 0x7A5A, 222, 120, -1, -1);
this->BindObject(eOFFATTACK_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eOFFATTACK_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eOFFATTACK_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eOFFATTACK_YES, 0x7B12, 54, 30, -1, -1);
this->BindObject(eOFFATTACK_CANE, 0x7B0C, 54, 30, -1, -1);
//---
this->BindObject(eUSERSPANEL_MAIN, 0x7A5A, 222, 256, -1, -1);
this->BindObject(eUSERSPANEL_TITLE, 0x7A63, 230, 67, -1, -1);
this->BindObject(eUSERSPANEL_FRAME, 0x7A58, 230, 15, -1, -1);
this->BindObject(eUSERSPANEL_FOOTER, 0x7A59, 230, 50, -1, -1);
this->BindObject(eUSERSPANEL_DIV, 0x7A62, 223, 21, -1, -1);
this->BindObject(eUSERSPANEL_OPTION, 0x7B68, 10, 10, -1, -1);
this->BindObject(eUSERSPANEL_LINE, 0x7B67, 154, 2, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON1, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_BUTTON2, 0x9994, 40, 19, -1, -1);
this->BindObject(eUSERSPANEL_FOG, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CLOSE, 0x7A5E, 128, 29, -1, -1);
this->BindObject(eUSERSPANEL_HPBAR, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_RANKHIDE, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_TRONGLOW, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CHAT, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_MINIMAP, 0x9991, 15, 15, -1, -1);
this->BindObject(eUSERSPANEL_CAMERA, 0x9991, 15, 15, -1, -1);
//--
//Command info
this->BindObject(eEventTime_MAIN, 0x789F, 222, 195, -1, -1);
this->BindObject(eEventTime_CLOSE, 0x7EC5, 36, 29, -1, -1);

//---
this->Data[eTIME].OnShow = true;
this->showMiniMap = false;
//SetOp((LPVOID)oAllowGUI_Call1, this->AllowGUI, ASM::CALL);
//SetOp((LPVOID)oAllowGUI_Call2, this->AllowGUI, ASM::CALL);
SetOp((LPVOID)oDrawInterface_Call, this->Work, ASM::CALL);
SetOp((LPVOID)oLoadSomeForm_Call, this->LoadImages, ASM::CALL);
SetOp((LPVOID)0x00633FFB, this->LoadModels, ASM::CALL);
SetOp((LPVOID)0x00842468, this->PShopTextInfo, ASM::CALL);
//==========================================
// - Remove Texts PShop
//==========================================
SetRange((LPVOID)0x00842086, 5, ASM::NOP);
SetRange((LPVOID)0x0084234F, 5, ASM::NOP);
SetRange((LPVOID)0x008423C3, 5, ASM::NOP);
// - Draw Post Item
 this->item_post_ = nullptr;
 SetOp((LPVOID)oDrawInterface2_Call, this->Work2, ASM::CALL);
}
void Interface::Work()
{
gInterface.DrawTimeUI();
gObjUser.Refresh();
gCamera.Rotate();
gCamera.Position();
//--
ReconnectMainProc();
gInterface.DrawOffAttack();
gInterface.DrawPSHOP_OFFMODE();
gInterface.DrawUsersPanelWindow();
gInterface.DrawCameraUI();
pDrawInterface();
//--
gCustomEventTime.DrawEventTimePanelWindow();
}
int Interface::PShopTextInfo(int pThis)
{
gInterface.DrawPSHOP();
// ---
return pPShopTextInfo(pThis);
}
void Interface::LoadImages()
{
/* pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu02.jpg", 31293, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu03_new.jpg", 31294, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\none.tga", 31295, GL_LINEAR, GL_CLAMP, 1, 0); //replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Red.jpg", 0x7A42, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Green.jpg", 0x7A41, GL_LINEAR, GL_CLAMP, 1, 0);//replace
pLoadImage("Custom\\Interface\\s3\\2Menu_Blue.jpg", 0x7A40, GL_LINEAR, GL_CLAMP, 1, 0);//replace
// pLoadImage("Custom\\Interface\\s3\\2Menu04.tga", iDragonLeft, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu05.tga", iDragonRight, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Inventory.jpg", iNewInventory, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu_Character.jpg", iNewCharacter, GL_LINEAR, GL_CLAMP, 1, 0);
// pLoadImage("Custom\\Interface\\s3\\2Menu_Party.jpg", iNewParty, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2win_push.jpg", iNewWinpush, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2menu01_new2.jpg", iNewFastMenu, GL_LINEAR, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2SkillBox.jpg", iNewSkillBox, GL_LINEAR, GL_CLAMP, 1, 0);
*/
//--
pLoadImage("Interface\\TimeBar.tga", 0x787E, 0x2601, 0x2901, 1, 0);
pLoadImage("Interface\\CameraUI_BG.tga", 0x787A, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Switch.tga", 0x787B, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\CameraUI_Reset.tga", 0x787C, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\OffAttack_Switch.tga", 0x787F, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\MacroSetup.tga", 0x787D, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Interface\\EventTime.tga", 0x789F, 0x2601, 0x2900, 1, 0);
// logo
//pLoadImage("Custom\\logo\\mwebgame.tga", 0x9989, 0x2601, 0x2900, 1, 0);
// MiniMap
pLoadImage("Interface\\check.jpg", 0x9991, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\uncheck.jpg", 0x9992, 0x2601, 0x2900, 1, 0);
pLoadImage("Interface\\button.tga", 0x9994, 0x2601, 0x2900, 1, 0);
//--
//Here animation for cape. Wing 214.bmd for display only item in Inventory
pLoadImage("Item\\Newdeath01.tga", 0x789C, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Newdeath02.tga", 0x789D, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4dd.tga", 0x78A5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4de.tga", 0x78A6, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\ragefighterwing4db.tga", 0x78A8, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\growlancerwing4dc.tga", 0x78A9, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item801_2_wing.tga", 0x78B1, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\Item802_2_wing.tga", 0x78B2, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\NCcapeSmall.tga", 0x78B3, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\DarkLordRobeSmall.tga", 0x78B4, 0x2601, 0x2900, 1, 0);
//--
pLoadImage("Item\\darklordwing4ddmr.tga", 0x78B5, 0x2601, 0x2900, 1, 0);
pLoadImage("Item\\darklordwing4demr.tga", 0x78B6, 0x2601, 0x2900, 1, 0);
//--
pLoadSomeForm();
}
void Interface::LoadModels()
{
pInitModelData2();
}
void Interface::BindObject(short MonsterID, DWORD ModelID, float Width, float Height, float X, float Y)
{
this->Data[MonsterID].EventTick = 0;
this->Data[MonsterID].OnClick = false;
this->Data[MonsterID].OnShow = false;
this->Data[MonsterID].ModelID = ModelID;
this->Data[MonsterID].Width = Width;
this->Data[MonsterID].Height = Height;
this->Data[MonsterID].X = X;
this->Data[MonsterID].Y = Y;
this->Data[MonsterID].MaxX = X + Width;
this->Data[MonsterID].MaxY = Y + Height;
this->Data[MonsterID].Attribute = 0;
}
void Interface::DrawSampleButton()
{
float PosX = this->GetResizeX(eSAMPLEBUTTON);

if( this->CheckWindow(ObjWindow::CashShop)
|| this->CheckWindow(ObjWindow::FullMap)
|| this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(MoveList) )
{
return;
}

this->DrawGUI(eSAMPLEBUTTON, PosX, 1);

if( !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

this->DrawToolTip(PosX - 5, 31, "Button tooltip");

if( this->Data[eSAMPLEBUTTON].OnClick )
{
this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(40, 20, 3, 130));
return;
}

this->DrawColoredGUI(eSAMPLEBUTTON, PosX, 1, pMakeColor(255, 204, 20, 130));
}
void Interface::EventSampleButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSAMPLEBUTTON].EventTick);

if( this->CheckWindow(CashShop) || this->CheckWindow(FullMap)
|| this->CheckWindow(SkillTree) || this->CheckWindow(MoveList)
|| !IsWorkZone(eSAMPLEBUTTON) )
{
return;
}

if( Event == WM_LBUTTONDOWN )
{
this->Data[eSAMPLEBUTTON].OnClick = true;
return;
}

this->Data[eSAMPLEBUTTON].OnClick = false;

if( Delay < 500 )
{
return;
}

this->Data[eSAMPLEBUTTON].EventTick = GetTickCount();

if( !this->Data[eRANK_MAIN].OnShow )
{
this->Data[eRANK_MAIN].OnShow = true;
}
else
{
this->Data[eRANK_MAIN].OnShow = false;
}
}
void Interface::DrawCameraUI()
{
float PosX = this->GetResizeX(eCAMERA_MAIN);
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
this->DrawGUI(eCAMERA_MAIN, PosX, 0);
this->DrawGUI(eCAMERA_BUTTON1, PosX + 18.5, 1);
this->DrawGUI(eCAMERA_BUTTON2, PosX + 37.0, 1);
//this->DrawGUI(eLOGO, PosX + 370, 20);
this->DrawGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5);
this->DrawGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5);
// ----
if (gCamera.IsActive)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, eShinyGreen);
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
if (gCamera.IsActive)
{
this->DrawToolTip(PosX + 18.5 - 5, 25, "Zoom: %02.f%%", gCamera.ZoomPercent);
}
else
{
this->DrawToolTip(PosX + 18.5 - 5, 25, gCustomMessage.GetMessageB(3243));
}
// ----
if (this->Data[eCAMERA_BUTTON1].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON1, PosX + 18.5, 1, pMakeColor(255, 204, 20, 200));
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
this->DrawToolTip(PosX + 37.0 - 5, 25, gCustomMessage.GetMessageB(3242));
// ----
if (this->Data[eCAMERA_BUTTON2].OnClick)
{
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eCAMERA_BUTTON2, PosX + 37.0, 1, pMakeColor(255, 204, 20, 200));
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
{
this->DrawToolTip(PosX + 0.5 - 5, 25, gCustomMessage.GetMessageB(3241));
}
// ----
if (this->Data[eOFFATTACK_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 0.5, 1.5, pMakeColor(250, 125, 50, 200));
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
{
this->DrawToolTip(PosX + 55.5 - 5, 25, gCustomMessage.GetMessageB(3240)); //Advanced Options

}
// ----
if (this->Data[eOPTIONS_BUTTON].OnClick)
{
this->DrawColoredGUI(eOFFATTACK_BUTTON, PosX + 55.5, 1.5, pMakeColor(40, 20, 3, 130));
return;
}
// ----
this->DrawColoredGUI(eOPTIONS_BUTTON, PosX + 55.5, 1.5, pMakeColor(255, 204, 20, 200));
}
// ----
}
// ----------------------------------------------------------------------------------------------
void Interface::EventCameraUI(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
// ----
if (this->CheckWindow(CashShop)
|| this->CheckWindow(SkillTree)
|| this->CheckWindow(FullMap)
|| this->CheckWindow(MoveList)
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store))
|| (this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)))
{
return;
}
// ----
if (IsWorkZone(eCAMERA_BUTTON1))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON1].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON1].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON1].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON1].EventTick = GetTickCount();
// ----
gCamera.Switch();
}
else if (IsWorkZone(eCAMERA_BUTTON2))
{
DWORD Delay = (CurrentTick - this->Data[eCAMERA_BUTTON2].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eCAMERA_BUTTON2].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eCAMERA_BUTTON2].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eCAMERA_BUTTON2].EventTick = GetTickCount();
// ----
gCamera.Init();
}

// ----
else if (IsWorkZone(eOFFATTACK_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOFFATTACK_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOFFATTACK_BUTTON].EventTick = GetTickCount();
// ----
OpenOffAttackWindow();
}
// ----
else if (IsWorkZone(eOPTIONS_BUTTON))
{
DWORD Delay = (CurrentTick - this->Data[eOPTIONS_BUTTON].EventTick);
// ----
if (Event == WM_LBUTTONDOWN)
{
this->Data[eOPTIONS_BUTTON].OnClick = true;
pSetCursorFocus = true;
return;
}
// ----
this->Data[eOPTIONS_BUTTON].OnClick = false;
pSetCursorFocus = false;
// ----
if (Delay < 500)
{
return;
}
// ----
this->Data[eOPTIONS_BUTTON].EventTick = GetTickCount();
// ----
gInterface.OpenUsersPanelWindow();
}
}
// ----------------------------------------------------------------------------------------------
bool Interface::CheckWindow(int WindowID)
{
return pCheckWindow(pWindowThis(), WindowID);
}
int Interface::CloseWindow(int WindowID)
{
return pCloseWindow(pWindowThis(), WindowID);
}
int Interface::OpenWindow(int WindowID)
{
return pOpenWindow(pWindowThis(), WindowID);
}

void Interface::DrawTimeUI()
{
if (!this->Data[eTIME].OnShow)
{
return;
}
// ----
if (this->CheckWindow(ObjWindow::CashShop) || this->CheckWindow(ObjWindow::SkillTree)
|| this->CheckWindow(ObjWindow::MoveList) || this->CheckWindow(ObjWindow::ChatWindow) || this->CheckWindow(FullMap))
{
return;
}
// ----
this->DrawGUI(eTIME, 0.0f, 412.0f);
// -----
time_t TimeLocal;
struct tm * LocalT;
time(&TimeLocal);
LocalT = localtime(&TimeLocal);
char LocalTime[30];
sprintf(LocalTime, "%2d:%02d:%02d", LocalT->tm_hour, LocalT->tm_min, LocalT->tm_sec);
this->DrawFormat(eWhite, 27.0f, 418.0f, 100.0f, 1.0f, LocalTime);
}
/*
bool Interface::AllowGUI()
{
if( gInterface.CheckResetWindow())
{
return false;
}

return pAllowGUI();
}
*/
void Interface::SetTextColor(BYTE Red, BYTE Green, BYTE Blue, BYTE Opacity)
{
pSetTextColor(pTextThis(), Red, Green, Blue, Opacity);
}
void Interface::DrawText(int X, int Y, LPCTSTR Text)
{
pDrawText(pTextThis(), X, Y, Text, 0, 0, (LPINT)1, 0);
}
int Interface::DrawFormat(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawColorText(Line, PosX, PosY, Width, 0, Color, 0, Align);
PosY += 10;
Line = strtok(NULL, "\n");
}

return PosY;
}
void Interface::DrawFormatEx(DWORD Color, int PosX, int PosY, int Width, int Align, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff)-1;
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

pDrawColorText(Buff, PosX, PosY, Width, 0, Color, 0, Align);
}
float Interface::DrawRepeatGUI(short MonsterID, float X, float Y, int Count)
{
float StartY = Y;

for( int i = 0; i < Count; i++ )
{
pDrawGUI(this->Data[MonsterID].ModelID, X, StartY,this->Data[MonsterID].Width, this->Data[MonsterID].Height);

StartY += this->Data[MonsterID].Height;
}

return StartY;
}
void Interface::DrawGUI(short ObjectID, float PosX, float PosY)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = PosX;
this->Data[ObjectID].Y = PosY;
this->Data[ObjectID].MaxX = PosX + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = PosY + this->Data[ObjectID].Height;
}

pDrawGUI(this->Data[ObjectID].ModelID, PosX, PosY,this->Data[ObjectID].Width, this->Data[ObjectID].Height);
}
void Interface::DrawColoredGUI(short ObjectID, float X, float Y, DWORD Color)
{
if( this->Data[ObjectID].X == -1 || this->Data[ObjectID].Y == -1 )
{
this->Data[ObjectID].X = X;
this->Data[ObjectID].Y = Y;
this->Data[ObjectID].MaxX = X + this->Data[ObjectID].Width;
this->Data[ObjectID].MaxY = Y + this->Data[ObjectID].Height;
}

pDrawColorButton(this->Data[ObjectID].ModelID, X, Y,this->Data[ObjectID].Width, this->Data[ObjectID].Height, 0, 0, Color);
}
int Interface::DrawToolTip(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawToolTip(X, Y, Buff);
}
int Interface::DrawToolTipEx(int X, int Y, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

int LineCount = 0;

char * Line = strtok(Buff, "\n");

while( Line != NULL )
{
pDrawToolTip(X, Y, Line);
Y += 10;
Line = strtok(NULL, "\n");
}

return Y;
}
int Interface::DrawMessage(int Mode, LPCSTR Text, ...)
{
char Buff[2048];
int BuffLen = sizeof(Buff);
ZeroMemory(Buff, BuffLen);

va_list args;
va_start(args, Text);
int Len = vsprintf_s(Buff, BuffLen, Text, args);
va_end(args);

return pDrawMessage(Buff, Mode);
}
bool Interface::IsWorkZone(short ObjectID)
{
float PosX = this->Data[ObjectID].X;
float MaxX = PosX + this->Data[ObjectID].Width;

if( ObjectID == eSAMPLEBUTTON )
{
PosX = this->GetResizeX(ObjectID);
MaxX = PosX + this->Data[ObjectID].Width;
}

if( (gObjUser.m_CursorX < PosX || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < this->Data[ObjectID].Y || gObjUser.m_CursorY > this->Data[ObjectID].MaxY) )
return false;

return true;
}
bool Interface::IsWorkZone(float X, float Y, float MaxX, float MaxY)
{
if( (gObjUser.m_CursorX < X || gObjUser.m_CursorX > MaxX) || (gObjUser.m_CursorY < Y || gObjUser.m_CursorY > MaxY) )
return false;

return true;
}
float Interface::GetResizeX(short ObjectID)
{
if( pWinWidth == 800 )
{
return this->Data[ObjectID].X + 16.0;
}
else if( pWinWidth != 1024 )
{
return this->Data[ObjectID].X - 16.0;
}

return this->Data[ObjectID].X;
}

float Interface::GetResizeY(short ObjectID)
{

return this->Data[ObjectID].Y;
}
// ----------------------------------------------------------------------------------------------
bool Interface::MiniMapCheck()
{
if (this->CheckWindow(Inventory) ||
this->CheckWindow(CashShop) ||
this->CheckWindow(ChaosBox) ||
this->CheckWindow(Character) ||
this->CheckWindow(CommandWindow) ||
this->CheckWindow(ExpandInventory) ||
this->CheckWindow(ExpandWarehouse) ||
this->CheckWindow(FullMap) ||
this->CheckWindow(GensInfo) ||
this->CheckWindow(Guild) ||
this->CheckWindow(NPC_Dialog) ||
this->CheckWindow(NPC_Julia) ||
this->CheckWindow(NPC_Titus) ||
this->CheckWindow(OtherStore) ||
this->CheckWindow(Party) ||
this->CheckWindow(PetInfo) ||
this->CheckWindow(Shop) ||
this->CheckWindow(SkillTree) ||
this->CheckWindow(Store) ||
this->CheckWindow(Trade) ||
this->CheckWindow(FriendList) ||
this->CheckWindow(FastMenu) ||
this->CheckWindow(MuHelper) ||
this->CheckWindow(Quest) ||
this->CheckWindow(Warehouse))
return true;
return false;
}

bool Interface::CombinedChecks()
{
if ((this->CheckWindow(Inventory)
&& this->CheckWindow(ExpandInventory)
&& this->CheckWindow(Store)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Warehouse)
&& this->CheckWindow(ExpandWarehouse)) ||
(this->CheckWindow(Inventory)
&& this->CheckWindow(Character)
&& this->CheckWindow(Store)))
return true;
return false;
}
// ----------------------------------------------------------------------------------------------
void Interface::DrawUsersPanelWindow()
{
if( !this->Data[eUSERSPANEL_MAIN].OnShow )
{
return;
}
// ----
DWORD ItemNameColor = eWhite;
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 90.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eUSERSPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eUSERSPANEL_TITLE, StartX, StartY);
StartY = this->DrawRepeatGUI(eUSERSPANEL_FRAME, StartX, StartY + 20.0, 13);
this->DrawGUI(eUSERSPANEL_FOOTER, StartX, StartY);
// ----
if( IsWorkZone(eUSERSPANEL_CLOSE) )
{
DWORD Color = eGray100;

if( this->Data[eUSERSPANEL_CLOSE].OnClick )
{
Color = eGray150;
}

this->DrawColoredGUI(eUSERSPANEL_CLOSE, this->Data[eUSERSPANEL_CLOSE].X, this->Data[eUSERSPANEL_CLOSE].Y, Color);
}
// ----
this->DrawGUI(eUSERSPANEL_CLOSE, ButtonX, this->Data[eUSERSPANEL_FOOTER].Y + 0);
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + -205, 210, 3, gCustomMessage.GetMessageB(3240));
this->DrawFormat(eWhite, StartX + 8, this->Data[eUSERSPANEL_FOOTER].Y + 10, 210, 3, gCustomMessage.GetMessageB(388));
this->DrawGUI(eUSERSPANEL_DIV, StartX, this->Data[eUSERSPANEL_FOOTER].Y - 20);
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 38);
this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 55);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 40, +125, 1, gCustomMessage.GetMessageB(3795));
{
if(lifebar)
{
}
else
{
this->DrawGUI(eUSERSPANEL_HPBAR, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 37);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_RANKHIDE, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 63);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 80);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 65, +125, 1, gCustomMessage.GetMessageB(3796));
{
if(rankbar)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 62);
}
// ----
}
// ----
    this->DrawGUI(eUSERSPANEL_TRONGLOW, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 88);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 105);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 90, +135, 1, gCustomMessage.GetMessageB(3797));
{
if(g_bEnabled)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 87);
}
// ----
}
// ----
this->DrawGUI(eUSERSPANEL_FOG, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 113);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 130);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 115, +125, 1, gCustomMessage.GetMessageB(3798));
{
if(gFog.EnableFog)
{
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 112);
}
// ----
}
// ----
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 138);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 155);
this->DrawFormat(eWhite, StartX + 50, this->Data[eUSERSPANEL_MAIN].Y + 140, +125, 1, gCustomMessage.GetMessageB(3799));
{
if (!gChatExpanded.IsActive)
        {
}
else
{
this->DrawGUI(eUSERSPANEL_CHAT, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 137);
}
// ----
}

/* // ----
this->DrawGUI(eUSERSPANEL_MINIMAP, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
    this->DrawGUI(eUSERSPANEL_OPTION, StartX + 35, this->Data[eUSERSPANEL_MAIN].Y + 165);
    this->DrawGUI(eUSERSPANEL_LINE, StartX + 30, this->Data[eUSERSPANEL_MAIN].Y + 182);
this->DrawFormat(eWhite, StartX + 20, this->Data[eUSERSPANEL_MAIN].Y + 167, +120, 3, "Mini Map      ");
{
if (showMiniMap)
        {
}
else
{
this->DrawGUI(eUnCheck, ButtonX + 100, this->Data[eUSERSPANEL_MAIN].Y + 164);
}
// ----

}
// ----
*/
}
bool Interface::EventUsersPanelWindow_Main(DWORD Event)
{
this->EventUsersPanelWindow_Close(Event);
this->EventUsersPanelWindow_HPBAR(Event);
this->EventUsersPanelWindow_RANKHIDE(Event);
this->EventUsersPanelWindow_TRONGLOW(Event);
this->EventUsersPanelWindow_FOG(Event);
this->EventUsersPanelWindow_CHAT(Event);
this->EventUsersPanelWindow_MINIMAP(Event);
return true;
}
bool Interface::EventUsersPanelWindow_Close(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CLOSE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CLOSE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CLOSE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CLOSE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_CLOSE].EventTick = GetTickCount();
this->CloseUsersPanelWindow();
// ----
return false;
}
bool Interface::EventUsersPanelWindow_HPBAR(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_HPBAR].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_HPBAR) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_HPBAR].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_HPBAR].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_HPBAR].EventTick = GetTickCount();
if(lifebar)
{
lifebar = false;
}
else
{
lifebar = true;
}
}
bool Interface::EventUsersPanelWindow_RANKHIDE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_RANKHIDE].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_RANKHIDE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_RANKHIDE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_RANKHIDE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_RANKHIDE].EventTick = GetTickCount();
if(rankbar)
{
rankbar = false;
}
else
{
rankbar = true;
}
}
bool Interface::EventUsersPanelWindow_TRONGLOW(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_TRONGLOW].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_TRONGLOW) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_TRONGLOW].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eUSERSPANEL_TRONGLOW].EventTick = GetTickCount();
if(g_bEnabled) //Effects
{
g_bEnabled = false;
}
else
{
g_bEnabled = true;
}
}
bool Interface::EventUsersPanelWindow_FOG(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_FOG].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_FOG) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_FOG].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_FOG].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_FOG].EventTick = GetTickCount();
if(gFog.EnableFog) //Fog
{
gFog.EnableFog = false;
}
    else
{
gFog.EnableFog = true;
}
}
bool Interface::EventUsersPanelWindow_CHAT(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_CHAT].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_CHAT) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_CHAT].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_CHAT].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_CHAT].EventTick = GetTickCount();
gChatExpanded.Switch();
}
bool Interface::EventUsersPanelWindow_MINIMAP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eUSERSPANEL_MINIMAP].EventTick);
// ----
if( !this->Data[eUSERSPANEL_MAIN].OnShow || !IsWorkZone(eUSERSPANEL_MINIMAP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eUSERSPANEL_MINIMAP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eUSERSPANEL_MINIMAP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eUSERSPANEL_MINIMAP].EventTick = GetTickCount();
if(showMiniMap) //Fog
{
gInterface.showMiniMap = false;
}
    else
{
gInterface.showMiniMap = true;
}
}

void Interface::DrawPSHOP()
{
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 100.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
// ---
if(this->CheckWindow(ObjWindow::Store) == true && this->CheckWindow(ObjWindow::ExpandInventory) == true)
{
StartX -= 190;
}
// ---
this->DrawFormat(eGold, StartX + 31, StartY + 77, + 125, 3, gCustomMessage.GetMessageB(3245));
// ---
this->DrawGUI(eSHOP_WC, StartX + 70, StartY + 90);
this->DrawFormat(eWhite, StartX + 80, StartY + 97, 100.0f, 1.0f, "WCoinC");
// ---
this->DrawGUI(eSHOP_B, StartX + 70, StartY + 120);
this->DrawFormat(eYellow, StartX + 85, StartY + 127, 100.0f, 1.0f, "Bless");
// ---
this->DrawGUI(eSHOP_WP, StartX + 125, StartY + 90);
this->DrawFormat(eWhite, StartX + 135, StartY + 97, 100.0f, 1.0f, "WCoinP");
// ---
this->DrawGUI(eSHOP_S, StartX + 125, StartY + 120);
this->DrawFormat(eYellow, StartX + 139, StartY + 127, 100.0f, 1.0f, "Soul");
// ---
this->DrawGUI(eSHOP_GP, StartX + 180, StartY + 90);
this->DrawFormat(eWhite, StartX + 187, StartY + 97, 100.0f, 1.0f, "GoblinPoint");
// ---
this->DrawGUI(eSHOP_C, StartX + 180, StartY + 120);
this->DrawFormat(eYellow, StartX + 195, StartY + 127, 100.0f, 1.0f, "Chaos");
// ---
/*this->DrawGUI(eSHOP_L, StartX + 70, StartY + 150);
this->DrawFormat(eYellow, StartX + 85, StartY + 157, 100.0f, 1.0f, "Life");
// ---
this->DrawGUI(eSHOP_Gem, StartX + 70, StartY + 180);
this->DrawFormat(eYellow, StartX + 80, StartY + 187, 100.0f, 1.0f, "Gemstone");
// ---
this->DrawGUI(eSHOP_Cr, StartX + 125, StartY + 150);
this->DrawFormat(eYellow, StartX + 135, StartY + 157, 100.0f, 1.0f, "Creation");
// ---
this->DrawGUI(eSHOP_H, StartX + 125, StartY + 180);
this->DrawFormat(eYellow, StartX + 137, StartY + 187, 100.0f, 1.0f, "Harmony");
// ---
this->DrawGUI(eSHOP_G, StartX + 180, StartY + 150);
this->DrawFormat(eYellow, StartX + 191, StartY + 157, 100.0f, 1.0f, "Guardian");
// ---
this->DrawGUI(eSHOP_R, StartX + 180, StartY + 180);
this->DrawFormat(eYellow, StartX + 187, StartY + 187, 100.0f, 1.0f, "Refine Stone");*/
// ---
this->DrawGUI(eSHOP_OFF, StartX + 190, StartY + 291);
// ---

if(IsWorkZone(eSHOP_OFF))
{
this->DrawToolTip(StartX + 170, StartY + 280, gCustomMessage.GetMessageB(3244));
}
}
bool Interface::DrawPSHOP_Main(DWORD Event)
{
this->DrawPSHOP_BLESS(Event);
this->DrawPSHOP_SOUL(Event);
this->DrawPSHOP_CHAOS(Event);
this->DrawPSHOP_WCOINC(Event);
this->DrawPSHOP_WCOINP(Event);
this->DrawPSHOP_COINTP(Event);
this->DrawPSHOP_OFFBUTTON(Event);
this->DrawPSHOP_LIFE(Event);
this->DrawPSHOP_CREATION(Event);
this->DrawPSHOP_GUARDIAN(Event);
this->DrawPSHOP_GEMSTONE(Event);
this->DrawPSHOP_HARMONY(Event);
this->DrawPSHOP_REFINE(Event);
return true;
}
bool Interface::DrawPSHOP_BLESS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_B].EventTick);
// ----
if(!this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_B))
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_B].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_B].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x01,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_SOUL(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_S].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_S) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_S].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_S].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_S].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x02,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_CHAOS(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_C].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_C) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_C].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_C].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_C].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x03,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINC(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WC].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WC) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WC].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WC].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WC].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x04,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_WCOINP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_WP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_WP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_WP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_WP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_WP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x05,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}
bool Interface::DrawPSHOP_COINTP(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_GP].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_GP) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_GP].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_GP].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_GP].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x06,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_LIFE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_L].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_L) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_L].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_L].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_L].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x09,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_CREATION(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Cr].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Cr) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Cr].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Cr].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Cr].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x10,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GUARDIAN(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_G].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_G) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_G].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_G].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_G].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x11,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_GEMSTONE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_Gem].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_Gem) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_Gem].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_Gem].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_Gem].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x12,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_HARMONY(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_H].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_H) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_H].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_H].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_H].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x13,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_REFINE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_R].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_R) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_R].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_R].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eSHOP_B].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x14,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
}

bool Interface::DrawPSHOP_OFFBUTTON(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eSHOP_OFF].EventTick);
// ----
if( !this->CheckWindow(ObjWindow::Store) || !IsWorkZone(eSHOP_OFF) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eSHOP_OFF].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eSHOP_OFF].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
this->Data[eSHOP_OFF].EventTick = GetTickCount();
gInterface.OpenOffWindow();
}

void Interface::DrawPSHOP_OFFMODE()
{
if( !this->Data[eOFFPANEL_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFPANEL_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFPANEL_TITLE, StartX, StartY);
//StartY = this->DrawRepeatGUI(eOFFPANEL_FRAME, StartX, StartY + 67.0, 13);
this->DrawGUI(eOFFPANEL_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, gCustomMessage.GetMessageB(3244));
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, gCustomMessage.GetMessageB(3246));
this->DrawGUI(eOFFPANEL_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFPANEL_CANE, StartX + 140, StartY + 75);
}

bool Interface::DrawPSHOP_OFFMAIN(DWORD Event)
{
this->DrawPSHOP_OFFYES(Event);
this->DrawPSHOP_OFFCANE(Event);
return true;
}

bool Interface::DrawPSHOP_OFFYES(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_YES].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x07,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffWindow();
}
bool Interface::DrawPSHOP_OFFCANE(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFPANEL_CANE].EventTick);
// ----
if( !this->Data[eOFFPANEL_MAIN].OnShow || !IsWorkZone(eOFFPANEL_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFPANEL_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFPANEL_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFPANEL_CANE].EventTick = GetTickCount();
this->CloseOffWindow();
}

// OFF ATTACK MODE
void Interface::DrawOffAttack()
{
if( !this->Data[eOFFATTACK_MAIN].OnShow )
{
return;
}
float MainWidth = 230.0;
float MainHeight = 313.0;
float StartY = 80.0;
float StartX = (MAX_WIN_WIDTH / 2) - (MainWidth / 2);
float MainCenter = StartX + (MainWidth / 3);
float ButtonX = MainCenter - (29.0 / 2);

this->DrawGUI(eOFFATTACK_MAIN, StartX, StartY + 2);
this->DrawGUI(eOFFATTACK_TITLE, StartX, StartY);
this->DrawGUI(eOFFATTACK_FOOTER, StartX, StartY + 75);

this->DrawFormat(eGold, StartX + 10, 90, 210, 3, "Offline Attack System");
this->DrawFormat(eWhite, StartX + 10, 130, 210, 3, "Leave your Character in OFFATTACK mode?");
this->DrawGUI(eOFFATTACK_YES, StartX + 30, StartY + 75);
this->DrawGUI(eOFFATTACK_CANE, StartX + 140, StartY + 75);

}

bool Interface::OffAttackEvent_Main(DWORD Event)
{
this->OffAttackEvent_Button1(Event);
this->OffAttackEvent_Button2(Event);
return true;
}

bool Interface::OffAttackEvent_Button1(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_YES].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_YES) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_YES].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_YES].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_YES].EventTick = GetTickCount();
PMSG_TICKET_SEND pMsg;
pMsg.header.set(0xFF,0x08,sizeof(pMsg));
DataSend((BYTE*)&pMsg,pMsg.header.size);
this->CloseOffAttackWindow();
}
bool Interface::OffAttackEvent_Button2(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - this->Data[eOFFATTACK_CANE].EventTick);
// ----
if( !this->Data[eOFFATTACK_MAIN].OnShow || !IsWorkZone(eOFFATTACK_CANE) )
{
return false;
}
// ----
if( Event == WM_LBUTTONDOWN )
{
this->Data[eOFFATTACK_CANE].OnClick = true;
pSetCursorFocus = true;
return true;
}
// ----
this->Data[eOFFATTACK_CANE].OnClick = false;
pSetCursorFocus = false;
// ----
if( Delay < 500 )
{
return false;
}
// ----
// ----
this->Data[eOFFATTACK_CANE].EventTick = GetTickCount();
this->CloseOffAttackWindow();
}


void Interface::Work2() {
if (gInterface.item_post_ && pCursorX < 150)
{
gInterface.DrawItemToolTipText(gInterface.item_post_, pCursorX + 80, pCursorY - 80);
if (gInterface.last_tickcount_view_ + 100 < GetTickCount()) {
gInterface.item_post_ = nullptr;
}
}
    pDrawInterface2();
}

void Interface::DrawChat ( int mode, char* character, char* message ) {
    PBMSG_CHATPOSTITEM chat;
    memset ( &chat.character_[0], 0, 10 );
    memset ( &chat.message_[0], 0, 89 );
    memcpy ( &chat.character_[0], &character[0], 10 );
    memcpy ( &chat.message_[0], &message[0], strlen ( message ) );
    pHandlePacketChatData ( &chat );

if (mode >= 1 && mode <= 9 && ChatBoxMuObjectChatDataPtrArrayLength) {
int index = ChatBoxMuObjectChatDataPtrArrayLength - 1;
ChatBoxMuObjectChatDataPtrArray[index]->chat_type_ = mode;
}
}

void Interface::DrawItemToolTipText ( void * item, int x, int y ) {
static DWORD mem = 0;
//static DWORD ItemToolTipAdress1 = 0x00861110; //1.04D-> 0x00860FC0
//static DWORD ItemToolTipAdress2 = 0x00861AA0; //1.04D-> 0x00861950
//static DWORD ItemToolTipAdress3 = 0x007E3E30; //1.04D-> 0x007E3CE0
_asm {
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH item
    PUSH y
    PUSH x
MOV mem,0x00861110
    CALL mem
    MOV ECX, EAX
MOV mem,0x00861AA0
    CALL mem
    MOV ECX, EAX
MOV mem,0x007E3E30
    CALL mem
}

}

void Interface::DrawS2Interface()
{
gInterface.DrawGUI(eSkillBox, 305, 443);
}

void Interface::DrawMenuButton()
{
if (IsWorkZone(eParty))
{
this->DrawToolTip(345, 435, gCustomMessage.GetMessage(11));
}
if (this->CheckWindow(Party))
{
gInterface.DrawGUI(eParty, 348, 449);
}
if (IsWorkZone(eCharacter))
{
this->DrawToolTip(375, 435, gCustomMessage.GetMessage(12));
}
if (this->CheckWindow(Character))
{
gInterface.DrawGUI(eCharacter, 378.5f, 449);
}
if (IsWorkZone(eInventory))
{
this->DrawToolTip(405, 435, gCustomMessage.GetMessage(13));
}
if (this->CheckWindow(Inventory))
{
gInterface.DrawGUI(eInventory, 409, 449);
}
if (IsWorkZone(eFriend))
{
this->DrawToolTip(580, 420, gCustomMessage.GetMessage(14));
}
if (this->CheckWindow(FriendList))
{
gInterface.DrawGUI(eFriend, 581, 432);
}
if (IsWorkZone(eFastMenu))
{
this->DrawToolTip(13, 420, gCustomMessage.GetMessage(15));
}
if (this->CheckWindow(FastMenu))
{
gInterface.DrawGUI(eFastMenu, 5, 432);
}

}

void Interface::EventMenuButton(DWORD Event)
{
DWORD CurrentTick = GetTickCount();
if (this->CheckWindow(ChaosBox))
{
return;
}

if (IsWorkZone(eParty))
{
DWORD Delay = (CurrentTick - this->Data[eParty].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eParty].OnClick = true;
return;
}
this->Data[eParty].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eParty].EventTick = GetTickCount();
if (this->CheckWindow(Party)) {
this->CloseWindow(Party);
}
else {
this->OpenWindow(Party);
}
}
else if (IsWorkZone(eCharacter))
{
DWORD Delay = (CurrentTick - this->Data[eCharacter].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eCharacter].OnClick = true;
return;
}
this->Data[eCharacter].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eCharacter].EventTick = GetTickCount();
if (this->CheckWindow(Character)) {
this->CloseWindow(Character);
}
else {
this->OpenWindow(Character);
}
}
else if (IsWorkZone(eInventory))
{
DWORD Delay = (CurrentTick - this->Data[eInventory].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eInventory].OnClick = true;
return;
}
this->Data[eInventory].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eInventory].EventTick = GetTickCount();
if (this->CheckWindow(Inventory)) {
this->CloseWindow(Inventory);
}
else {
this->OpenWindow(Inventory);
}
}
else if (IsWorkZone(eFriend))
{
DWORD Delay = (CurrentTick - this->Data[eFriend].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFriend].OnClick = true;
return;
}
this->Data[eFriend].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFriend].EventTick = GetTickCount();
if (this->CheckWindow(FriendList)) {
this->CloseWindow(FriendList);
}
else {
this->OpenWindow(FriendList);
}
}
else if (IsWorkZone(eFastMenu))
{
DWORD Delay = (CurrentTick - this->Data[eFastMenu].EventTick);
if (Event == WM_LBUTTONDOWN) {
this->Data[eFastMenu].OnClick = true;
return;
}
this->Data[eFastMenu].OnClick = false;
if (Delay < 500) {
return;
}
this->Data[eFastMenu].EventTick = GetTickCount();
if (this->CheckWindow(FastMenu)) {
this->CloseWindow(FastMenu);
}
else {
this->OpenWindow(FastMenu);
}
}
}

LoadBitmapA("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
pLoadImage("Custom\\Interface\\s3\\2Menu01_new.jpg", 31292, GL_LINEAR, GL_CLAMP, 1, 0);

tentei mas erro :(

error C2660: 'LoadBitmapA' : function does not take 6 arguments

IntelliSense: argument of type "const char *" is incompatible with parameter of type "HINSTANCE"   

IntelliSense: argument of type "int" is incompatible with parameter of type "LPCSTR"

IntelliSense: too many arguments in function call


Find this function in Interface.cpp and add this line.

void Interface::LoadImages()
{
  pLoadImage("Interface\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);

Obrigado a todos. Mas não funciona, tentei assim :( :( :(


Offline onlinezajzaj #28 Posteado: March 16, 2022, 02:44:02 PM

  • MAESTRO

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 663
  • Gracias recibida: 19902
  • vn
My custom.



copy:
- @Kapocha33
- @takumi12

Uma cópia quase perfeita! Sucesso!!!


 nots nots nots nots nots nots nots nots nots
sin ganas de ofender pero se ve feo con esos botones de colores, que tienen los vietamitas que siempre ponen todo colorido, no se dan cuenta que lo dejan feo nomas..

 jajaja jajaja jajaja jajaja jajaja


Offline Betell Host #29 Posteado: March 16, 2022, 05:10:59 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 548
  • Gracias recibida: 3624
  • br
My custom.



copy:
- @Kapocha33
- @takumi12

Uma cópia quase perfeita! Sucesso!!!


 nots nots nots nots nots nots nots nots nots
sin ganas de ofender pero se ve feo con esos botones de colores, que tienen los vietamitas que siempre ponen todo colorido, no se dan cuenta que lo dejan feo nomas..

 jajaja jajaja jajaja jajaja jajaja

everything is colorful and apart from the fact that he's been stealing sources around to release the source of others since his is a carnival of messy and colorful but wait soon another source appears for him to post from someone, who knows, maybe one day Zaza will release him to paint us in black and white lol


Gracias:


Offline Betell Host #30 Posteado: March 16, 2022, 05:13:15 PM

  • C++ Coder
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 548
  • Gracias recibida: 3624
  • br
My custom.



copy:
- @Kapocha33
- @takumi12

Uma cópia quase perfeita! Sucesso!!!


 nots nots nots nots nots nots nots nots nots
sin ganas de ofender pero se ve feo con esos botones de colores, que tienen los vietamitas que siempre ponen todo colorido, no se dan cuenta que lo dejan feo nomas..

 jajaja jajaja jajaja jajaja jajaja

everything is colorful and apart from the fact that he's been stealing sources around to release the source of others since his is a carnival of messy and colorful but wait soon another source appears for him to post from someone, who knows, maybe one day Zaza will release him to paint us in black and white lol

 jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja


Offline onlinezajzaj #31 Posteado: March 16, 2022, 06:57:44 PM

  • MAESTRO

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 663
  • Gracias recibida: 19902
  • vn
My custom.



copy:
- @Kapocha33
- @takumi12

Uma cópia quase perfeita! Sucesso!!!


 nots nots nots nots nots nots nots nots nots
sin ganas de ofender pero se ve feo con esos botones de colores, que tienen los vietamitas que siempre ponen todo colorido, no se dan cuenta que lo dejan feo nomas..

 jajaja jajaja jajaja jajaja jajaja

everything is colorful and apart from the fact that he's been stealing sources around to release the source of others since his is a carnival of messy and colorful but wait soon another source appears for him to post from someone, who knows, maybe one day Zaza will release him to paint us in black and white lol

 jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja jajaja

 jajaja jajaja jajaja jajaja jajaja jajaja

Gracias:


Offline bimaloha #32 Posteado: March 17, 2022, 02:37:22 PM | Modificado: March 17, 2022, 02:39:18 PM by bimaloha

  • 0 puntos por ventas
  • *
  • Rank: Sup. destacado
  • Posts: 117
  • Gracias recibida: 4289
  • vn
(https://imgur.com/a/Q2dDXm1)

I wish you guys don't call me a colorful man  jajaja jajaja jajaja

Download: http://elfcheat.com/files/MuOnline/Resources/message_auto_b_all.zip (.ozt, .tga and .psd too)

p/s: Don't make Mu being an LGBT game with 7 colors flag, pleaseeeeeeeeeeee!

Gracias:


Offline solar #33 Posteado: March 17, 2022, 05:46:14 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 48
  • Gracias recibida: 1667
  • vn
(https://imgur.com/a/Q2dDXm1)

I wish you guys don't call me a colorful man  jajaja jajaja jajaja

Download: http://elfcheat.com/files/MuOnline/Resources/message_auto_b_all.zip (.ozt, .tga and .psd too)

p/s: Don't make Mu being an LGBT game with 7 colors flag, pleaseeeeeeeeeeee!

cho mình xin thông tin liên lạc của trung với , mình nhắn trên skype không thấy trung phản hồi


Offline solar #34 Posteado: March 17, 2022, 06:05:35 PM

  • 0 puntos por ventas
  • *
  • Rank: Dedicado
  • Posts: 48
  • Gracias recibida: 1667
  • vn

Gracias:


Offline bimaloha #35 Posteado: March 17, 2022, 06:40:19 PM | Modificado: March 17, 2022, 07:30:29 PM by bimaloha

  • 0 puntos por ventas
  • *
  • Rank: Sup. destacado
  • Posts: 117
  • Gracias recibida: 4289
  • vn
Just hook version:


AutoLogin.h

AutoLogin.cpp


It'll save ID, PW, and state of Save password check box to regedit. Only one account, no need to load any image, just #include "AutoLogin.h" to main.cpp and AutoLogin.Load();
@solar tôi không check skype đâu, có gì nhắn box trên này ấy.
@esteban
#define pIsKeyRelease         ((bool(__cdecl*)(int)) 0x791050)

Gracias:

milagros1229, powerpatic, quanghuyit, Peluuca, gambasoxd, mateus2255, MIHARU, WENDEREMULADOR, Matt1995, Lacrox, lizbeth, ukvayha, blogger02, betsabeperu2024, SHILDKING, pedornela, ProjectX, hola23, nhantac, Genilson23, idpnguyeni, OBBY, drakulla, Ryzenn, xlockee, sigrev, wallaceh, herjuni, nescafe, Viper, odin, dasgrid, stopk, DEATH, dakosmu, antonionni, mncastillo, jeuzinn, CezarMaster, usersa, armamor, ProTecno, Shaper, Jarvis, ezesosa, AishaCT, rando, devemu, ledemkhoc, superrin, zekcrom, bustafa, Facundo Jara, acelot, thuongdo07, RifleMaN_, GabrielDev, InFamous, luciferlg, rodrigoo22, warrior, llZeuzll, dark, jhonhy, DjGamer, vokirval, nylanpro, TeamCB, oxey.mu, samsunggon, vitor, ImportedPotato, myway, xianwen, Senhor-D, Nexus, dark32, James, stark98, PhantomKr, BastarDesing, dieguitox, xufqing, quyanxu, Miisoia, zhujianhui, 542201099, sonytfm, Marcela, anhtjm94, tutu100, vaneavanea31, mocorongo, Toshiro, 308508743, Sergio Franco, Sweng, h3yShOk, alexfy, Crowley, nockasdd, angel3858, elcris99, iamzuika, RAGNAR111, deathsquad, victorrz17, VERNERON, walkeny, LuisGaming, whisky123, omgsf, vcore30, HackerMan, HayllanderBR, Nakamura, LuciferXT, korron, AZURE, fos83, andreyzz, skinmuonline, Kosh, Smith200, T-LEGENDARY, FOX, showmax, ziza, Erick05, GoldSun, Shellshock, comelon666, NghienMU, Keko, Betell Host, Quickness, edersonjesus, ailsoncost, matseovt, cri0, mantios, redf0x, vipgale01, lechianh88, Pyke, ldads, tunhi3000, tcbaoanh, SaintZeus, Alinor, ohmagic, c4nhsatcodong, Wikka, spartacus, Cartman, RafhaelSouza, npt.formu, mugloves99, binho, lunaticodeveloper, MaxVoll, JavixFer, Kapocha33, solar, esteban

Offline Alinor #36 Posteado: March 17, 2022, 11:07:07 PM

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 17
  • Gracias recibida: 29
  • cx
Just hook version:


AutoLogin.h AutoLogin.cpp
It'll save ID, PW, and state of Save password check box to regedit. Only one account, no need to load any image, just #include "AutoLogin.h" to main.cpp and AutoLogin.Load();
@solar tôi không check skype đâu, có gì nhắn box trên này ấy.
@esteban
#define pIsKeyRelease         ((bool(__cdecl*)(int)) 0x791050)



Excelent  cool2

Gracias:


Offline Keko #37 Posteado: March 19, 2022, 06:02:42 PM

  • 0 puntos por ventas
  • *
  • Rank: Heroe
  • Posts: 174
  • Gracias recibida: 252
  • ar
i made it a button but it looks like a save button and every time i click login it will automatically save the last account to the account bar



Share?

Gracias:


Offline NghienMU #38 Posteado: March 20, 2022, 12:16:48 AM | Modificado: March 20, 2022, 12:18:53 AM by NghienMU

  • 0 puntos por ventas
  • *
  • Rank: Liga mayor
  • Posts: 189
  • Gracias recibida: 56
  • vn
Just hook version:


AutoLogin.h AutoLogin.cpp
It'll save ID, PW, and state of Save password check box to regedit. Only one account, no need to load any image, just #include "AutoLogin.h" to main.cpp and AutoLogin.Load();
@solar tôi không check skype đâu, có gì nhắn box trên này ấy.
@esteban
#define pIsKeyRelease         ((bool(__cdecl*)(int)) 0x791050)

Thanks for share! but I have a problem..How to keep the check box from getting bigger in large screen resolution?

Gracias:


Offline Keko #39 Posteado: March 21, 2022, 02:26:38 PM | Modificado: March 21, 2022, 03:02:03 PM by Keko

  • 0 puntos por ventas
  • *
  • Rank: Heroe
  • Posts: 174
  • Gracias recibida: 252
  • ar
Just hook version:


AutoLogin.h AutoLogin.cpp
It'll save ID, PW, and state of Save password check box to regedit. Only one account, no need to load any image, just #include "AutoLogin.h" to main.cpp and AutoLogin.Load();
@solar tôi không check skype đâu, có gì nhắn box trên này ấy.
@esteban
#define pIsKeyRelease         ((bool(__cdecl*)(int)) 0x791050)

Thanks for share! but I have a problem..How to keep the check box from getting bigger in large screen resolution?


U must use RenderBitmap function, with this you can "resize" buttons according to the resolution.

Example:


Remember use  / g_fScreenRate_x and  / g_fScreenRate_y to resize and set positions


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
52 Replies
22787 Views
Last post May 30, 2024, 08:02:08 AM
by youfilme
0 Replies
1676 Views
Last post November 21, 2021, 04:56:30 AM
by cuong1372
12 Replies
5083 Views
Last post February 26, 2022, 11:35:35 PM
by Wendigo
1 Replies
1053 Views
Last post June 19, 2022, 11:23:40 AM
by manifestacja
6 Replies
1785 Views
Last post August 07, 2023, 12:37:17 AM
by phuongcuongmsqm