Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1103 lines
36 KiB
C++
1103 lines
36 KiB
C++
// HumanChatWindow.cpp: implementation of the CHumanChatWindow class.
|
||
//
|
||
//////////////////////////////////////////////////////////////////////
|
||
|
||
//#include <crtdbg.h>
|
||
#include "ClientMain.h"
|
||
#include "WinInput.h"
|
||
#include "HumanChatWindow.h"
|
||
#include "GUITextEdit.h"
|
||
#include "FrameTimer.h"
|
||
|
||
#include "StringFilter.h"
|
||
|
||
#include "GUIMessageBox.h"
|
||
#include "BaseGraphicsLayer.h"
|
||
|
||
#include "Creature\Monster\MonsterMgr.h"
|
||
|
||
//////////////////////////////////////////////////////////////////////
|
||
// Construction/Destruction
|
||
//////////////////////////////////////////////////////////////////////
|
||
|
||
CHumanChatWindow::CHumanChatWindow()
|
||
{
|
||
|
||
}
|
||
|
||
CHumanChatWindow::~CHumanChatWindow()
|
||
{
|
||
}
|
||
|
||
BOOL CHumanChatWindow::Init(unsigned short x, unsigned short y)
|
||
{
|
||
CSprite *lpSprite;
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x, y, 0, 0, 256, 120, g_ClientMain.m_lpInterface->m_lstTexture[1]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x + 256, y, 0, 120, 254, 240, g_ClientMain.m_lpInterface->m_lstTexture[1]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x + 1, y + 101, 0, 0, 162, 16, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x + 1, y + 101, 0, 16, 162, 32, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
lpSprite = new CSprite;
|
||
lpSprite->Create(x + 1, y + 101, 0, 32, 162, 48, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
m_lstSprite.push_back(lpSprite);
|
||
|
||
CGUIButton *lpButton;
|
||
lpButton = new CGUIButton;
|
||
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
|
||
lpButton->m_lpNormalButton = new CSprite;
|
||
lpButton->m_lpNormalButton->Create(163, 101, 0, 54, 85, 71, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->m_lpClickMouseButton = new CSprite;
|
||
lpButton->m_lpClickMouseButton->Create(163, 101, 0, 71, 85, 88, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[101]);
|
||
lpButton->SetMove(x, y);
|
||
m_ButtonManager.AddButton(lpButton);
|
||
|
||
lpButton = new CGUIButton;
|
||
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
|
||
lpButton->m_lpNormalButton = new CSprite;
|
||
lpButton->m_lpNormalButton->Create(249, 101, 0, 88, 85, 105, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->m_lpClickMouseButton = new CSprite;
|
||
lpButton->m_lpClickMouseButton->Create(249, 101, 0, 105, 85, 122, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[102]);
|
||
lpButton->SetMove(x, y);
|
||
m_ButtonManager.AddButton(lpButton);
|
||
|
||
lpButton = new CGUIButton;
|
||
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
|
||
lpButton->m_lpNormalButton = new CSprite;
|
||
lpButton->m_lpNormalButton->Create(335, 101, 85, 54, 170, 71, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->m_lpClickMouseButton = new CSprite;
|
||
lpButton->m_lpClickMouseButton->Create(335, 101, 85, 71, 170, 88, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[103]);
|
||
lpButton->SetMove(x, y);
|
||
m_ButtonManager.AddButton(lpButton);
|
||
|
||
lpButton = new CGUIButton;
|
||
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
|
||
lpButton->m_lpNormalButton = new CSprite;
|
||
lpButton->m_lpNormalButton->Create(421, 101, 85, 88, 170, 105, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->m_lpClickMouseButton = new CSprite;
|
||
lpButton->m_lpClickMouseButton->Create(421, 101, 85, 105, 170, 122, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[105]);
|
||
lpButton->SetMove(x, y);
|
||
m_ButtonManager.AddButton(lpButton);
|
||
|
||
CGUIScroll *lpScroll;
|
||
lpScroll = new CGUIScroll;
|
||
lpScroll->m_lpBarButton = new CGUIButton;
|
||
lpScroll->m_lpBarButton->m_nMethod = BUTTON_SIMPLE;
|
||
lpScroll->m_lpBarButton->m_lpNormalButton = new CSprite;
|
||
lpScroll->m_lpBarButton->m_lpNormalButton->Create(491, 14, 170, 74, 182, 83, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpScroll->m_lpBarButton->m_lpClickMouseButton = new CSprite;
|
||
lpScroll->m_lpBarButton->m_lpClickMouseButton->Create(491, 14, 170, 74, 182, 83, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
|
||
lpScroll->m_lpUpArrowButton = new CGUIButton;
|
||
lpScroll->m_lpUpArrowButton->m_nMethod = BUTTON_SIMPLE;
|
||
lpScroll->m_lpUpArrowButton->m_lpNormalButton = new CSprite;
|
||
lpScroll->m_lpUpArrowButton->m_lpNormalButton->Create(491, 4, 170, 54, 182, 64, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpScroll->m_lpUpArrowButton->m_lpClickMouseButton = new CSprite;
|
||
lpScroll->m_lpUpArrowButton->m_lpClickMouseButton->Create(491, 4, 182, 54, 194, 64, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
|
||
lpScroll->m_lpDownArrowButton = new CGUIButton;
|
||
lpScroll->m_lpDownArrowButton->m_nMethod = BUTTON_SIMPLE;
|
||
lpScroll->m_lpDownArrowButton->m_lpNormalButton = new CSprite;
|
||
lpScroll->m_lpDownArrowButton->m_lpNormalButton->Create(491, 69, 170, 64, 182, 74, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
lpScroll->m_lpDownArrowButton->m_lpClickMouseButton = new CSprite;
|
||
lpScroll->m_lpDownArrowButton->m_lpClickMouseButton->Create(491, 69, 182, 64, 194, 74, g_ClientMain.m_lpInterface->m_lstTexture[2]);
|
||
|
||
lpScroll->m_lValue = (long *)&g_TextEdit.m_dwStartChat;
|
||
lpScroll->SetMove(x, y);
|
||
lpScroll->SetPosition(491, 14);
|
||
lpScroll->SetEdge(0, 0, 10, 46);
|
||
lpScroll->SetRange(0, 0);
|
||
m_lstScroll.push_back(lpScroll);
|
||
|
||
m_dwWindowKind = WINDOW_FIX;
|
||
|
||
m_rcWindowSize.left = x; m_rcWindowSize.top = y;
|
||
m_rcWindowSize.right = x + 510; m_rcWindowSize.bottom = y + 120;
|
||
|
||
m_rcMoveEdge.left = x; m_rcMoveEdge.top = y;
|
||
m_rcMoveEdge.right = x + 510; m_rcMoveEdge.bottom = y + 20;
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
BOOL CHumanChatWindow::Update(BOOL &bClick, BOOL &bEdge)
|
||
{
|
||
if(g_DeviceInput.InRect(m_rcWindowSize.left, m_rcWindowSize.top, m_rcWindowSize.right, m_rcWindowSize.bottom))
|
||
{
|
||
bEdge = TRUE;
|
||
|
||
if(g_DeviceInput.GetIsLeftMouseDown() || g_DeviceInput.GetIsMiddleMouseDown() || g_DeviceInput.GetIsRightMouseDown() ||
|
||
g_DeviceInput.GetIsLeftMousePress() || g_DeviceInput.GetIsMiddleMousePress() || g_DeviceInput.GetIsRightMousePress() ||
|
||
g_DeviceInput.GetIsLeftMouseUp() || g_DeviceInput.GetIsMiddleMouseUp() || g_DeviceInput.GetIsRightMouseUp())
|
||
{
|
||
bClick = TRUE;
|
||
}
|
||
}
|
||
|
||
POINT *ptMousePos = g_DeviceInput.GetMousePosition();
|
||
|
||
if(m_dwWindowKind == WINDOW_FLOAT)
|
||
{
|
||
if(WindowMoving(*ptMousePos))
|
||
{
|
||
m_ButtonManager.SetMove(m_ptWindowMovePos.x, m_ptWindowMovePos.y);
|
||
|
||
m_lstSprite[0]->SetPosition(m_ptWindowMovePos.x, m_ptWindowMovePos.y);
|
||
m_lstSprite[1]->SetPosition(m_ptWindowMovePos.x + 256, m_ptWindowMovePos.y);
|
||
|
||
m_lstSprite[2]->SetPosition(m_ptWindowMovePos.x + 1, m_ptWindowMovePos.y + 101);
|
||
m_lstSprite[3]->SetPosition(m_ptWindowMovePos.x + 1, m_ptWindowMovePos.y + 101);
|
||
m_lstSprite[4]->SetPosition(m_ptWindowMovePos.x + 1, m_ptWindowMovePos.y + 101);
|
||
|
||
m_lstScroll[0]->SetMove(m_ptWindowMovePos.x, m_ptWindowMovePos.y);
|
||
}
|
||
}
|
||
|
||
m_ButtonManager.Update();
|
||
m_TooltipManager.Update();
|
||
|
||
if(g_DeviceInput.KeyHold(VK_PRIOR))
|
||
{
|
||
switch(g_TextEdit.m_dwChatMode)
|
||
{
|
||
case CHATMODE_CHAT:
|
||
if(g_TextEdit.m_deqChatMessage.size() > 5)
|
||
{
|
||
if(g_TextEdit.m_dwStartChat != 0) g_TextEdit.m_dwStartChat--;
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_PARTY:
|
||
if(g_TextEdit.m_deqPartyMessage.size() > 5)
|
||
{
|
||
if(g_TextEdit.m_dwStartParty != 0) g_TextEdit.m_dwStartParty--;
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_GUILD:
|
||
if(g_TextEdit.m_deqGuildMessage.size() > 5)
|
||
{
|
||
if(g_TextEdit.m_dwStartGuild != 0) g_TextEdit.m_dwStartGuild--;
|
||
}
|
||
break;
|
||
}
|
||
} else if(g_DeviceInput.KeyHold(VK_NEXT))
|
||
{
|
||
switch(g_TextEdit.m_dwChatMode)
|
||
{
|
||
case CHATMODE_CHAT:
|
||
if(g_TextEdit.m_deqChatMessage.size() > 5)
|
||
{
|
||
if(g_TextEdit.m_dwStartChat != g_TextEdit.m_deqChatMessage.size() - 5) g_TextEdit.m_dwStartChat++;
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_PARTY:
|
||
if(g_TextEdit.m_deqPartyMessage.size() > 5)
|
||
{
|
||
if(g_TextEdit.m_dwStartParty != g_TextEdit.m_deqPartyMessage.size() - 5) g_TextEdit.m_dwStartParty++;
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_GUILD:
|
||
if(g_TextEdit.m_deqGuildMessage.size() > 5)
|
||
{
|
||
if(g_TextEdit.m_dwStartGuild != g_TextEdit.m_deqGuildMessage.size() - 5) g_TextEdit.m_dwStartGuild++;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
|
||
if(g_DeviceInput.InRect(m_rcWindowSize.left + 1, m_rcWindowSize.top + 101, m_rcWindowSize.left + 55, m_rcWindowSize.top + 117) && g_DeviceInput.GetIsLeftMouseDown())
|
||
{
|
||
g_TextEdit.m_dwChatMode = CHATMODE_CHAT;
|
||
m_lstScroll[0]->m_lValue = (long *)&g_TextEdit.m_dwStartChat;
|
||
if(g_TextEdit.m_dwEditMode == EDITMODE_STALL)
|
||
{
|
||
g_TextEdit.m_dwEditMode = EDITMODE_CHAT;
|
||
g_TextEdit.SetFocus();
|
||
g_TextEdit.InitMessage();
|
||
}
|
||
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 55, m_rcWindowSize.top + 101, m_rcWindowSize.left + 109, m_rcWindowSize.top + 117) && g_DeviceInput.GetIsLeftMouseDown())
|
||
{
|
||
g_TextEdit.m_dwChatMode = CHATMODE_PARTY;
|
||
m_lstScroll[0]->m_lValue = (long *)&g_TextEdit.m_dwStartParty;
|
||
if(g_TextEdit.m_dwEditMode == EDITMODE_STALL)
|
||
{
|
||
g_TextEdit.m_dwEditMode = EDITMODE_CHAT;
|
||
g_TextEdit.SetFocus();
|
||
g_TextEdit.InitMessage();
|
||
}
|
||
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 109, m_rcWindowSize.top + 101, m_rcWindowSize.left + 163, m_rcWindowSize.top + 117) && g_DeviceInput.GetIsLeftMouseDown())
|
||
{
|
||
// g_TextEdit.m_dwChatMode = CHATMODE_GUILD;
|
||
// m_lstScroll[0]->m_lValue = (long *)&g_TextEdit.m_dwStartGuild;
|
||
g_TextEdit.m_dwChatMode = CHATMODE_PARTY;
|
||
m_lstScroll[0]->m_lValue = (long *)&g_TextEdit.m_dwStartParty;
|
||
if(g_TextEdit.m_dwEditMode == EDITMODE_STALL)
|
||
{
|
||
g_TextEdit.m_dwEditMode = EDITMODE_CHAT;
|
||
g_TextEdit.SetFocus();
|
||
g_TextEdit.InitMessage();
|
||
}
|
||
}
|
||
|
||
if(!g_ClientMain.m_lpInterface->GetBusy())
|
||
{
|
||
if(m_ButtonManager.m_lstButton[0]->m_nState == BUTTON_ON || m_ButtonManager.m_lstButton[0]->m_nState == BUTTON_OFF)
|
||
{
|
||
g_ClientMain.m_bMouseMode = !g_ClientMain.m_bMouseMode;
|
||
CEffScript *test_script;
|
||
// _ASSERTE(_CrtCheckMemory());
|
||
test_script = new CEffScript;
|
||
if(g_ClientMain.m_bMouseMode)
|
||
{
|
||
//g_CharacterData.m_Camera.m_nCameraMode = 0;
|
||
g_CharacterData.MouseModeChange();
|
||
g_ClientMain.m_bShowCursor = TRUE;
|
||
test_script->GetScriptBinData("inter_interface-type-mouse.esf");
|
||
} else
|
||
{
|
||
//g_CharacterData.m_Camera.m_nCameraMode = 1;
|
||
g_CharacterData.MouseModeChange();
|
||
g_ClientMain.m_bShowCursor = FALSE;
|
||
test_script->GetScriptBinData("inter_interface-type-keyboard.esf");
|
||
}
|
||
test_script->m_InterfacePos[0] += 0.0f;
|
||
test_script->m_InterfacePos[1] += 310.0f;
|
||
CSceneManager::m_EffectManager.AddInterfaceScript(test_script);
|
||
}
|
||
if(m_ButtonManager.m_lstButton[1]->m_nState == BUTTON_ON || m_ButtonManager.m_lstButton[1]->m_nState == BUTTON_OFF)
|
||
{
|
||
g_ClientMain.m_bAutoRunMode = !g_ClientMain.m_bAutoRunMode;
|
||
}
|
||
if(m_ButtonManager.m_lstButton[2]->m_nState == BUTTON_ON || m_ButtonManager.m_lstButton[2]->m_nState == BUTTON_OFF)
|
||
{
|
||
g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->CrouchAndStandup();
|
||
}
|
||
if(m_ButtonManager.m_lstButton[3]->m_nState == BUTTON_ON || m_ButtonManager.m_lstButton[3]->m_nState == BUTTON_OFF)
|
||
{
|
||
g_ClientMain.m_bSimpleMode = !g_ClientMain.m_bSimpleMode;
|
||
}
|
||
}
|
||
|
||
/* if(g_DeviceInput.GetIsLeftMouseDown() && g_DeviceInput.InRect(30 + m_rcWindowSize.left, 83 + m_rcWindowSize.top, 107 + m_rcWindowSize.left, 98 + m_rcWindowSize.top))
|
||
{
|
||
g_TextEdit.m_dwEditMode = EDITMODE_WHISPER;
|
||
g_TextEdit.InitMessage();
|
||
g_TextEdit.SetFocus();
|
||
}
|
||
*/
|
||
/////////////// <20><>ũ<EFBFBD><C5A9> <20>κ<EFBFBD>
|
||
if(g_TextEdit.m_deqChatMessage.size() <= MAX_DRAWCHAT)
|
||
m_lstScroll[0]->SetRange(0, 0);
|
||
else
|
||
m_lstScroll[0]->SetRange(0, g_TextEdit.m_deqChatMessage.size() - MAX_DRAWCHAT);
|
||
m_lstScroll[0]->Update();
|
||
// m_lstScroll[0]->m_lValue = g_TextEdit.m_dwStartChat;
|
||
// m_lstScroll[0]->Update();
|
||
// g_TextEdit.m_dwStartChat = m_lstScroll[0]->m_lValue;
|
||
|
||
if(g_TextEdit.m_dwEditMode == EDITMODE_CHAT && GetAsyncKeyState(VK_RETURN) && !g_TextEdit.IsFocus())
|
||
{
|
||
if(strcmp(g_TextEdit.GetMessage(), ""))
|
||
{
|
||
char strChat[MAX_PATH];
|
||
unsigned long dwTotalLength;
|
||
strcpy(strChat, g_TextEdit.GetMessage());
|
||
dwTotalLength = strlen(strChat);
|
||
|
||
if(strChat[0] == '/')
|
||
{
|
||
char seps[] = " ,\t\n";
|
||
char *token, strCommand[MAX_PATH];
|
||
|
||
token = strtok(strChat, seps);
|
||
strcpy(strCommand, token);
|
||
token = strlwr(strCommand);
|
||
|
||
if(!strcmp(token,"/kill"))
|
||
{
|
||
g_ClientMain.SetKillCounter(15000);
|
||
} else if(!strcmp(token, "/p"))
|
||
{
|
||
if(g_ClientMain.m_csStatus.m_PartyInfo.m_dwPartyID)
|
||
{
|
||
int len = strlen(token) + 1;
|
||
if(dwTotalLength >= len)
|
||
{
|
||
if(g_ClientMain.m_dwInternationalCode || g_StringFilter.Filter(&strChat[len]))
|
||
{
|
||
g_ClientMain.m_Network.SendChatMessage(NULL, &strChat[len], CHATMODE_PARTY);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SendClientLog(1, &strChat[len], g_StringFilter.m_lpSearched);
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[570], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
}
|
||
}
|
||
} else if(!strcmp(token, "/s") || !strcmp(token, "/<2F><>")) // <20>ӼӸ<D3BC>
|
||
{
|
||
int count = 0;
|
||
count += strlen(token) + 1;
|
||
|
||
unsigned long dwLen = strlen(&strChat[count]);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
unsigned long dwCount = strlen(token);
|
||
|
||
if(dwLen > dwCount)
|
||
{
|
||
count += dwCount + 1;
|
||
|
||
if(token && (strlen(token) < 16))
|
||
{
|
||
if(g_ClientMain.m_dwInternationalCode || g_StringFilter.Filter(&strChat[count]))
|
||
{
|
||
g_ClientMain.m_Network.SendChatMessage(token, &strChat[count], 10);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SendClientLog(1, &strChat[count], g_StringFilter.m_lpSearched);
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[570], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else if(!strcmp(token, "/c") || !strcmp(token, "/<2F><>")) // <20><>ġ<EFBFBD><C4A1>
|
||
{
|
||
int len = strlen(token) + 1;
|
||
if(dwTotalLength >= len)
|
||
{
|
||
if(g_ClientMain.m_dwInternationalCode || g_StringFilter.Filter(&strChat[len]))
|
||
{
|
||
if(!g_ClientMain.m_Network.SendChatMessage(NULL, &strChat[len], ClientSocket::ChatType_Shout))
|
||
{
|
||
char strMessage[MAX_PATH];
|
||
sprintf(strMessage, "%4.2f<EFBFBD><EFBFBD> <20>Ŀ<EFBFBD> <20><>ġ<EFBFBD>Ⱑ <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.", g_ClientMain.m_Network.m_lShoutCounter / 1000.0f);
|
||
g_TextEdit.AddMessage(strMessage, g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SendClientLog(1, &strChat[len], g_StringFilter.m_lpSearched);
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[570], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
}
|
||
} else if(!strcmp(token, "/cursor"))
|
||
{
|
||
g_ClientMain.m_bHardwareCursor = !g_ClientMain.m_bHardwareCursor;
|
||
if(g_ClientMain.m_bHardwareCursor)
|
||
{
|
||
g_DeviceInput.ShowCursor(TRUE);
|
||
} else
|
||
{
|
||
g_DeviceInput.ShowCursor(FALSE);
|
||
}
|
||
} else if(!strcmp(token, "/fame"))
|
||
{
|
||
g_ClientMain.m_Network.SendFameInfo(ClientSocket::FameInfoType_Fame);
|
||
} else if(!strcmp(token, "/merits"))
|
||
{
|
||
g_ClientMain.m_Network.SendFameInfo(ClientSocket::FameInfoType_Merits);
|
||
} else if(!strcmp(token, "/shop"))
|
||
{
|
||
if(!g_ClientMain.m_lpInterface->GetBusy())
|
||
{
|
||
g_ClientMain.m_lpInterface->InitStreetStall(g_ClientMain.m_dwMyChrID, NULL);
|
||
}
|
||
} else
|
||
{
|
||
if(g_ClientMain.m_bAdminMode)
|
||
{
|
||
if(!strcmp(token, "/#moviemode!") || !strcmp(token, "/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"))
|
||
{
|
||
g_ClientMain.m_bMovieVersion = TRUE;
|
||
g_ClientMain.m_bSimpleMode = TRUE;
|
||
} else if(!strcmp(token, "/#gamemode!") || !strcmp(token, "/<2F><><EFBFBD>Ӹ<EFBFBD><D3B8><EFBFBD>"))
|
||
{
|
||
g_ClientMain.m_bMovieVersion = FALSE;
|
||
} else if(!strcmp(token, "/goto") || !strcmp(token, "/<2F>̵<EFBFBD>"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
double y = atof(token);
|
||
|
||
vector3 vecPos = vector3(x, 0.0f, y);
|
||
vecPos.y = g_ClientMain.m_lpSceneManager->m_HeightField.GetHeight(vecPos) + 15.0f;
|
||
POS psPos = { vecPos.x, vecPos.y / 100.0f, vecPos.z };
|
||
g_ClientMain.m_Network.m_pSocket->CharBindPos(g_ClientMain.m_dwMyChrID, 1, &psPos, 0);
|
||
} else if(!strcmp(token, "/#setsize!"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
int a = atoi(token);
|
||
|
||
MAXCHRLOAD = a;
|
||
} else if(!strcmp(token, "/changetipcounter"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
int a = atoi(token);
|
||
|
||
g_ClientMain.m_lTipBroadCounterSeed = a;
|
||
} else if(!strcmp(token, "/#systeminfo!"))
|
||
{
|
||
g_ClientMain.m_bSystemConsoleShow = !g_ClientMain.m_bSystemConsoleShow;
|
||
if(g_ClientMain.m_bSystemConsoleShow == TRUE)
|
||
{
|
||
AllocConsole();
|
||
SetConsoleTitle("R.Y.L.<2E><> <20><><EFBFBD><EFBFBD> <20>ý<EFBFBD><C3BD><EFBFBD> <20>ܼ<EFBFBD>");
|
||
} else
|
||
{
|
||
FreeConsole();
|
||
}
|
||
} else if(!strcmp(token, "/#showinfo!"))
|
||
{
|
||
g_ClientMain.m_bShowInfo = !g_ClientMain.m_bShowInfo;
|
||
} else if(!strcmp(token, "/pos") || !strcmp(token, "/<2F><>ǥ"))
|
||
{
|
||
char strText[MAX_PATH];
|
||
float fDir = g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_fDirection - FLOAT_PHI;
|
||
if(fDir < 0.0f) fDir = FLOAT_PHI * 2 + fDir;
|
||
|
||
sprintf(strText, "X = %f, Y = %f, Z = %f, Dir = %f", g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_vecPos.x / 100.0f,
|
||
g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_vecPos.y / 100.0f,
|
||
g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_vecPos.z / 100.0f,
|
||
fDir);
|
||
g_TextEdit.AddMessage(strText, g_ClientMain.m_dwMyChrID, 128);
|
||
} else if(!strcmp(token, "/zone"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
int zone = atoi(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double y = atof(token);
|
||
|
||
POS psPos = { x, 100.0f, y };
|
||
g_ClientMain.m_Network.m_pSocket->CharMoveZone(zone, psPos);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/move") || !strcmp(token, "/<2F><><EFBFBD>̵<EFBFBD>"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
char strName[16];
|
||
if(token)
|
||
{
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
int zone = atoi(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double y = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double z = atof(token);
|
||
|
||
POS psPos = { x, y + 0.2f, z };
|
||
if(zone == 100)
|
||
{
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::MoveChar, strName, zone, 0, 0, psPos, 0);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::MoveZoneChar, strName, zone, 0, 0, psPos, 0);
|
||
}
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/moveparty") || !strcmp(token, "/<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>Ƽ"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
int zone = atoi(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double y = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double z = atof(token);
|
||
|
||
POS psPos = { x, y + 0.2f, z };
|
||
if(zone == 100)
|
||
{
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::MoveParty, strName, zone, 0, 0, psPos, 0);
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::MoveZoneParty, strName, zone, 0, 0, psPos, 0);
|
||
}
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/moveit") || !strcmp(token, "/<2F><><EFBFBD><EFBFBD>"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double y = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double z = atof(token);
|
||
|
||
POS psPos = { x, y + 0.2f, z };
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::MoveChar, strName, 0, 0, 0, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/moveitparty") || !strcmp(token, "/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double y = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double z = atof(token);
|
||
|
||
POS psPos = { x, y + 0.2f, z };
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::MoveParty, strName, 0, 0, 0, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/respawn") || !strcmp(token, "/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::RespawnChar, strName, 0, 0, 0, psPos, 0);
|
||
}
|
||
} else if(!strcmp(token, "/kick"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::KillChar, strName, 0, 0, 0, psPos, 0);
|
||
}
|
||
} else if(!strcmp(token, "/duelinit") || !strcmp(token, "/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::DuelInit, strName, 0, 0, 0, psPos, 0);
|
||
}
|
||
} else if(!strcmp(token, "/hp"))
|
||
{
|
||
token = strtok(NULL, seps);
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::InfoChar, strName, 0, 0, 0, psPos, 0);
|
||
}
|
||
} else if(!strcmp(token, "/createmob"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
char strMobName[MAX_PATH];
|
||
if(token)
|
||
{
|
||
strcpy(strMobName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double x = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double y = atof(token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
double z = atof(token);
|
||
|
||
POS psPos = { x, y + 0.2f, z };
|
||
const CMonsterMgr::MonsterProtoType *lpMonster = g_MonsterMgr.GetMonsterProtoType(strMobName);
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::CreateMon,
|
||
g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_strName,
|
||
0, 0, lpMonster->m_MonsterInfo.m_dwKID, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
}
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/dropitem"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
int nItemID = atoi(token);
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::CreateItem, strName, 0, 0, (unsigned short)nItemID, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/giveexp"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
int nAmount = atoi(token);
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::GetExp, strName, 0, 0, 0, psPos, (unsigned long)nAmount);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/givegold"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
int nAmount = atoi(token);
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::GetGold, strName, 0, 0, 0, psPos, (unsigned long)nAmount);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/levelup"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::LevelUp, strName, 0, 0, 0, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/peacemode"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::PeaceMode, strName, 0, 0, 0, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else if(!strcmp(token, "/battlemode"))
|
||
{
|
||
BOOL bExcept = FALSE;
|
||
|
||
token = strtok(NULL, seps);
|
||
if(token)
|
||
{
|
||
char strName[16];
|
||
if(strlen(token) < 16)
|
||
{
|
||
strcpy(strName, token);
|
||
POS psPos = { 0.0f, 0.0f, 0.0f };
|
||
|
||
g_ClientMain.m_Network.m_pSocket->CharAdmin(ClientSocket::WarMode, strName, 0, 0, 0, psPos, 0);
|
||
} else bExcept = TRUE;
|
||
} else bExcept = TRUE;
|
||
|
||
if(bExcept)
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[571], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else if(strcmp(g_ClientMain.m_strWhisperChrID, ""))
|
||
{
|
||
if(g_ClientMain.m_dwInternationalCode || g_StringFilter.Filter(g_TextEdit.GetMessage()))
|
||
{
|
||
g_ClientMain.m_Network.SendChatMessage(g_ClientMain.m_strWhisperChrID, g_TextEdit.GetMessage(), 10);
|
||
if(g_ClientMain.m_bInstanceWhisper)
|
||
{
|
||
strcpy(g_ClientMain.m_strWhisperChrID, "");
|
||
g_ClientMain.m_bInstanceWhisper = FALSE;
|
||
}
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SendClientLog(1, g_TextEdit.GetMessage(), g_StringFilter.m_lpSearched);
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[570], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
} else
|
||
{
|
||
if(g_ClientMain.m_dwInternationalCode || g_StringFilter.Filter(g_TextEdit.GetMessage()))
|
||
{
|
||
switch(g_TextEdit.m_dwChatMode)
|
||
{
|
||
case CHATMODE_CHAT:
|
||
{
|
||
char strMessage[MAX_PATH];
|
||
unsigned long Count = 0;
|
||
strcpy(strMessage, g_TextEdit.GetMessage());
|
||
for(int i = 0; i < 3; i++)
|
||
{
|
||
if(!strcmp(g_ClientMain.m_strChatMessage[i], strMessage)) Count++;
|
||
}
|
||
if(Count < 2)
|
||
{
|
||
for(i = 0; i < 2; i++)
|
||
{
|
||
strcpy(g_ClientMain.m_strChatMessage[i], g_ClientMain.m_strChatMessage[i + 1]);
|
||
}
|
||
strcpy(g_ClientMain.m_strChatMessage[2], strMessage);
|
||
g_ClientMain.m_Network.SendChatMessage(NULL, strMessage, CHATMODE_CHAT);
|
||
} else
|
||
{
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[104], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_PARTY:
|
||
g_ClientMain.m_Network.SendChatMessage(NULL, g_TextEdit.GetMessage(), CHATMODE_PARTY);
|
||
break;
|
||
|
||
case CHATMODE_GUILD:
|
||
g_ClientMain.m_Network.SendChatMessage(NULL, g_TextEdit.GetMessage(), CHATMODE_GUILD);
|
||
break;
|
||
}
|
||
} else
|
||
{
|
||
g_ClientMain.m_Network.SendClientLog(1, g_TextEdit.GetMessage(), g_StringFilter.m_lpSearched);
|
||
g_TextEdit.AddMessage(g_StringTable.m_strString[570], g_ClientMain.m_dwMyChrID, 129);
|
||
}
|
||
}
|
||
} else
|
||
{
|
||
if(g_ClientMain.m_bInstanceWhisper)
|
||
{
|
||
strcpy(g_ClientMain.m_strWhisperChrID, "");
|
||
g_ClientMain.m_bInstanceWhisper = FALSE;
|
||
}
|
||
}
|
||
g_TextEdit.InitMessage();
|
||
}
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
void CHumanChatWindow::Render(LPDIRECT3DDEVICE8 lpD3DDevice)
|
||
{
|
||
m_lstSprite[0]->Render(lpD3DDevice, m_cAlpha);
|
||
m_lstSprite[1]->Render(lpD3DDevice, m_cAlpha);
|
||
|
||
RECT rcRect;
|
||
int i;
|
||
|
||
switch(g_TextEdit.m_dwChatMode)
|
||
{
|
||
case CHATMODE_CHAT:
|
||
m_lstSprite[2]->Render(lpD3DDevice, m_cAlpha);
|
||
|
||
SetRect(&rcRect, m_rcWindowSize.left + 4, m_rcWindowSize.top + 4, m_rcWindowSize.left + 487, m_rcWindowSize.top + 4 + 15);
|
||
for(i = 0; i < MAX_DRAWCHAT; i++)
|
||
{
|
||
if(g_TextEdit.m_deqChatMessage.size() < i + 1) break;
|
||
|
||
g_TextEdit.DrawText(g_TextEdit.m_deqChatMessage[i + g_TextEdit.m_dwStartChat]->strMessage, &rcRect, DT_LEFT | DT_VCENTER, g_TextEdit.m_deqChatMessage[i + g_TextEdit.m_dwStartChat]->dwColor);
|
||
|
||
rcRect.top += 15;
|
||
rcRect.bottom = rcRect.top + 15;
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_PARTY:
|
||
m_lstSprite[3]->Render(lpD3DDevice, m_cAlpha);
|
||
|
||
SetRect(&rcRect, m_rcWindowSize.left + 4, m_rcWindowSize.top + 4, m_rcWindowSize.left + 487, m_rcWindowSize.top + 4 + 15);
|
||
for(i = 0; i < MAX_DRAWCHAT; i++)
|
||
{
|
||
if(g_TextEdit.m_deqPartyMessage.size() < i + 1) break;
|
||
|
||
g_TextEdit.DrawText(g_TextEdit.m_deqPartyMessage[i + g_TextEdit.m_dwStartParty]->strMessage, &rcRect, DT_LEFT | DT_VCENTER, g_TextEdit.m_deqPartyMessage[i + g_TextEdit.m_dwStartParty]->dwColor);
|
||
|
||
rcRect.top += 15;
|
||
rcRect.bottom = rcRect.top + 15;
|
||
}
|
||
break;
|
||
|
||
case CHATMODE_GUILD:
|
||
m_lstSprite[4]->Render(lpD3DDevice, m_cAlpha);
|
||
|
||
SetRect(&rcRect, m_rcWindowSize.left + 4, m_rcWindowSize.top + 4, m_rcWindowSize.left + 487, m_rcWindowSize.top + 4 + 15);
|
||
for(i = 0; i < MAX_DRAWCHAT; i++)
|
||
{
|
||
if(g_TextEdit.m_deqGuildMessage.size() < i + 1) break;
|
||
|
||
g_TextEdit.DrawText(g_TextEdit.m_deqGuildMessage[i + g_TextEdit.m_dwStartGuild]->strMessage, &rcRect, DT_LEFT | DT_VCENTER, g_TextEdit.m_deqGuildMessage[i + g_TextEdit.m_dwStartGuild]->dwColor);
|
||
|
||
rcRect.top += 15;
|
||
rcRect.bottom = rcRect.top + 15;
|
||
}
|
||
break;
|
||
}
|
||
|
||
m_lstScroll[0]->Render(lpD3DDevice, m_cAlpha);
|
||
|
||
if(g_TextEdit.IsFocus())
|
||
{
|
||
if(g_TextEdit.m_dwEditMode == EDITMODE_CHAT)
|
||
{
|
||
SetRect(&rcRect, m_rcWindowSize.left + 112, m_rcWindowSize.top + 83, m_rcWindowSize.left + 501, m_rcWindowSize.top + 98);
|
||
if(g_ClientMain.m_bCursorToggle)
|
||
{
|
||
char strChat[MAX_PATH];
|
||
sprintf(strChat, "%s_", g_TextEdit.GetMessage());
|
||
g_TextEdit.DrawText(strChat, &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255));
|
||
} else
|
||
{
|
||
g_TextEdit.DrawText(g_TextEdit.GetMessage(), &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255));
|
||
}
|
||
} else if(g_TextEdit.m_dwEditMode == EDITMODE_WHISPER)
|
||
{
|
||
SetRect(&rcRect, m_rcWindowSize.left + 30, m_rcWindowSize.top + 83, m_rcWindowSize.left + 107, m_rcWindowSize.top + 98);
|
||
if(g_ClientMain.m_bCursorToggle)
|
||
{
|
||
char strChat[MAX_PATH];
|
||
sprintf(strChat, "%s_", g_TextEdit.GetMessage());
|
||
g_TextEdit.DrawText(strChat, &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255));
|
||
} else
|
||
{
|
||
g_TextEdit.DrawText(g_TextEdit.GetMessage(), &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255));
|
||
}
|
||
}
|
||
}
|
||
|
||
if(strcmp(g_ClientMain.m_strWhisperChrID, ""))
|
||
{
|
||
SetRect(&rcRect, m_rcWindowSize.left + 30, m_rcWindowSize.top + 83, m_rcWindowSize.left + 107, m_rcWindowSize.top + 98);
|
||
g_TextEdit.DrawText(g_ClientMain.m_strWhisperChrID, &rcRect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255));
|
||
}
|
||
|
||
if(g_ClientMain.m_bMouseMode)
|
||
{
|
||
m_ButtonManager.m_lstButton[0]->m_nState = BUTTON_OFF;
|
||
m_ButtonManager.m_lstButton[0]->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[101]);
|
||
} else
|
||
{
|
||
m_ButtonManager.m_lstButton[0]->m_nState = BUTTON_ON;
|
||
m_ButtonManager.m_lstButton[0]->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[106]);
|
||
}
|
||
|
||
if(g_ClientMain.m_bAutoRunMode)
|
||
{
|
||
m_ButtonManager.m_lstButton[1]->m_nState = BUTTON_OFF;
|
||
m_ButtonManager.m_lstButton[1]->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[107]);
|
||
} else
|
||
{
|
||
m_ButtonManager.m_lstButton[1]->m_nState = BUTTON_ON;
|
||
m_ButtonManager.m_lstButton[1]->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[108]);
|
||
}
|
||
|
||
if(g_CharacterData.m_lstCharData.num>0 && g_CharacterData.m_lstCharData[g_CharacterData.m_nFocusCharacter]->m_bSitMode)
|
||
{
|
||
m_ButtonManager.m_lstButton[2]->m_nState = BUTTON_ON;
|
||
m_ButtonManager.m_lstButton[2]->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[109]);
|
||
} else
|
||
{
|
||
m_ButtonManager.m_lstButton[2]->m_nState = BUTTON_OFF;
|
||
m_ButtonManager.m_lstButton[2]->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[103]);
|
||
}
|
||
|
||
if(g_ClientMain.m_bSimpleMode)
|
||
{
|
||
m_ButtonManager.m_lstButton[3]->m_nState = BUTTON_ON;
|
||
} else
|
||
{
|
||
m_ButtonManager.m_lstButton[3]->m_nState = BUTTON_OFF;
|
||
}
|
||
m_ButtonManager.Render(lpD3DDevice);
|
||
}
|