re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
laulinh2
You dont need dll source , because its not clientside message.
You can make a new message in the GS source like "welcome message", just with the good command
GCServerMsgStringSend(gWelcomeMessage, lpObj->m_Index, 0);
I think you can use the
GCServerMsgStringSend("Welcome on the server", lpObj->m_Index, 0);
I dont remember when I made something like this, but I think if you change the 0 at the end of the row it will be on different position.
Try it and i think it will works.
re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
djsad94
You dont need dll source , because its not clientside message.
You can make a new message in the GS source like "welcome message", just with the good command
GCServerMsgStringSend(gWelcomeMessage, lpObj->m_Index, 0);
I think you can use the
GCServerMsgStringSend("Welcome on the server", lpObj->m_Index, 0);
I dont remember when I made something like this, but I think if you change the 0 at the end of the row it will be on different position.
Try it and i think it will works.
i did it using the post command function like a global message but you can pretty much use any of the functions to send string messages in the source.
just look in user.cpp for
Code:
if ( (lpMsg->CtlCode & 0x20 ) == 0x20 ) {
lpObj->Authority = 0x20;
LogAddC(2, "(%s)(%s) Set Event GM", lpObj->AccountID, lpObj->Name);
cManager.ManagerAdd(lpObj->Name, lpObj->m_Index); //Season 2.5 add-on
gObjAddBuffEffect(lpObj, AT_GAMEMASTER_LOGO, 0, 0, 0, 0, -10);
char szTemp[128];
sprintf(szTemp, "GameMaster %s is now online!", lpObj->Name);
AllSendServerMsg(szTemp);
}
and below it add
Code:
if ((lpMsg->CtlCode & 0x00) == 0x00) {
char szTemp[128];
sprintf(szTemp, "User %s has logged in!", lpObj->Name);
MessageSendEx2(g_UserNotice, "%s", szTemp);
}
and in that same .cpp search for
Code:
void gObjSetBP(int aIndex)
and add above it
Code:
void MessageSendEx2(int Type, char * Message, ...)
{
char szTemp[1024];
va_list pArguments;
va_start(pArguments, Message);
vsprintf(szTemp, Message, pArguments);
va_end(pArguments);
// ----
CHAT_WHISPER_EX pMessage;
memcpy(pMessage.Message, szTemp, 90);
pMessage.Type = Type;
pMessage.Head.set((LPBYTE)&pMessage, 2, sizeof(CHAT_WHISPER_EX));
DataSendAll((LPBYTE)&pMessage, pMessage.Head.size);
}
re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
natzugen
i did it using the post command function like a global message but you can pretty much use any of the functions to send string messages in the source.
just look in user.cpp for
Code:
if ( (lpMsg->CtlCode & 0x20 ) == 0x20 ) {
lpObj->Authority = 0x20;
LogAddC(2, "(%s)(%s) Set Event GM", lpObj->AccountID, lpObj->Name);
cManager.ManagerAdd(lpObj->Name, lpObj->m_Index); //Season 2.5 add-on
gObjAddBuffEffect(lpObj, AT_GAMEMASTER_LOGO, 0, 0, 0, 0, -10);
char szTemp[128];
sprintf(szTemp, "GameMaster %s is now online!", lpObj->Name);
AllSendServerMsg(szTemp);
}
and below it add
Code:
if ((lpMsg->CtlCode & 0x00) == 0x00) {
char szTemp[128];
sprintf(szTemp, "User %s has logged in!", lpObj->Name);
MessageSendEx2(g_UserNotice, "%s", szTemp);
}
and in that same .cpp search for
Code:
void gObjSetBP(int aIndex)
and add above it
Code:
void MessageSendEx2(int Type, char * Message, ...)
{
char szTemp[1024];
va_list pArguments;
va_start(pArguments, Message);
vsprintf(szTemp, Message, pArguments);
va_end(pArguments);
// ----
CHAT_WHISPER_EX pMessage;
memcpy(pMessage.Message, szTemp, 90);
pMessage.Type = Type;
pMessage.Head.set((LPBYTE)&pMessage, 2, sizeof(CHAT_WHISPER_EX));
DataSendAll((LPBYTE)&pMessage, pMessage.Head.size);
}
And why you want to use this epic big source if you can make it with 1 row? wow. :D
If you put it after the global message row and change the position of the text to the left side post side, its just one row in the code and everything is working... .:)
because this text will show just the ->Name, not for veverybody, so you dont need to use the source like in the post... :)
re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
djsad94
And why you want to use this epic big source if you can make it with 1 row? wow. :D
If you put it after the global message row and change the position of the text to the left side post side, its just one row in the code and everything is working... .:)
i was too lazy to think at that moment so i just lokoed at the gm message and did something similar with the other one, everyone has his moments of stupidty :sleep:
besides the GCServerMsgStringSend("Welcome on the server", lpObj->m_Index, 0); only shows the message to the player that logged in
re: [Development] Community Edition Season6 Episode3 z-Team
re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
natzugen
i was too lazy to think at that moment so i just lokoed at the gm message and did something similar with the other one, everyone has his moments of stupidty :sleep:
besides the GCServerMsgStringSend("Welcome on the server", lpObj->m_Index, 0); only shows the message to the player that logged in
https://forum.ragezone.com/cache.php...23_31-0000.jpg
I answered to this question.. ::) I dont think or i dont know It need to show to everybody.
I have 100-200 players online with this count of players not a good idea to show everybody "somebody connected" because its useless...
Or i dont know:D But I am using the msgstringsend to show some errors to users.
char Text[256];
ZeroMemory(Text, sizeof(Text));
sprintf(Text, " Welcome back on the server: %s !", lpObj->Name);
AllSendServerMsg(Text);
And there is another way to make this if you want to show it for everybody.
And after you have made it just need to search the AllSendServerMsg copy paste rename it to AllSendWelcomeMsg and change the text position or color or what you want.
re: [Development] Community Edition Season6 Episode3 z-Team
Can anyone share last zclient source? i use zclient by BlackHorse https://mega.co.nz/#!ldkVVSzC!T_emM6...R4A2BnyO6XNq9Q. I compile file without any errors, but cannot open Main.exe. Or tell me please how to fix :*:
Sorry for my english
re: [Development] Community Edition Season6 Episode3 z-Team
How to fix Castle Deep, Drop Event source zTeam season 6.3 ?
re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
anh3nang
How to fix Castle Deep, Drop Event source zTeam season 6.3 ?
Whats the problem with the Castle Deep event?
Everything okey for me.
Maybe compare with this source
https://github.com/MuSeason6FixTeam/zTeamS6.3
and check the difference... But i think its just a configure problem for you.
- - - Updated - - -
Quote:
Originally Posted by
Fearzord
No any error? did you changed anything? It can be a loop in it and thats why its not open up ^^
re: [Development] Community Edition Season6 Episode3 z-Team
omg, guys why are you still bothered with these files, when I've already posted 99% bugless version of this almost 2 years ago, pffff
re: [Development] Community Edition Season6 Episode3 z-Team
the problem about the infinitd loop in login screen is because of the xor keys, the solution has been shared around 50 times in the original thread, just take the time to sesrch a little...
PS: ferrarezi source has most of the bugs fixed including the mail system.
re: [Development] Community Edition Season6 Episode3 z-Team
Quote:
Originally Posted by
fabiann1
i post source :
// SetOp((LPVOID)0x005B96E8, (LPVOID)this->DrawPartyHP, ASM::CALL);
SetOp((LPVOID)0x005B96E8, (LPVOID)this->DrawSome, ASM::CALL);
void User::DrawSome()
{
VAngle Angle;
int PosX, PosY, LifeProgress;
// ----
lifebar=true;
if (!lifebar)
{
return;
}
else
{
for( int PartySlot = 0; PartySlot < 30; PartySlot++ )
{
lpViewObj lpObj = &*(ObjectPreview*)pGetPreviewStruct(pPreviewThis(), PartySlot);
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - gObjUser.m_TargetUpdateTick);
// ----
if( !lpObj || lpObj->m_Model.ObjectType != emMonster || !lpObj->m_Model.Unknown4 )
{
continue;
}
// ----
PMSG_TARGETDATA_REQ pRequest;
pRequest.h.set((LPBYTE)&pRequest, 0xFB, 7, sizeof(pRequest));
pRequest.aIndex = lpObj->aIndex;
//gObjUser.SetTargetData((PMSG_TARGETDATA_ANS*)pRequest.aIndex);
// ----
if( Delay >= 10 )
{
gProtocol.DataSend((LPBYTE)&pRequest, pRequest.h.size);
}
// ----
Angle.X = lpObj->m_Model.VecPosX;
Angle.Y = lpObj->m_Model.VecPosY;
Angle.Z = lpObj->m_Model.VecPosZ + lpObj->m_Model.Unknown216.Z + 100.0;
// ----
float BarWidth = (64.5f / 100.0f) * gObjUser.m_TargetLifePercent;
float LifeBarWidth = 65.0f;
// ----
pGetPosFromAngle(&Angle, &PosX, &PosY);
PosX -= (int)floor(LifeBarWidth / (double)2.0);
// ----
if(gObjUser.m_TargetLifePercent <= 0.1f)
{
continue;
}
// ----
pDrawColorText(lpObj->Name, PosX -1, PosY - 9, 67, 1, eWhite, 9, 3);
// ----
pDrawGUI(32514, (float)PosX - 1.2, (float)PosY - 1.5, 66.95, 6);
pDrawGUI(32513, (float)PosX, (float)PosY, BarWidth, 3);
// ----
if( (int)(gObjUser.m_TargetLifePercent / 10) > 10 )
{
LifeProgress = 10;
}
else
{
LifeProgress = (int)(gObjUser.m_TargetLifePercent / 10);
}
// ----
pGLSwitch();
}
pGLSwitch();
glColor3f(1.0, 1.0, 1.0);
//}
}
you can start with that and modify to read every monster hp. sorry i dont use this function but did it and dont finish u.u
gObjUser.m_TargetLifePercent
this is your target hp, you need to create a function monlife() to find every monster hp .
sorry poor english
Please help me I can not seem to understand that it is necessary to add to remove this error
Quote:
1>------ Построение начато: проект: zClient, Конфигурация: Release Win32 ------1>Построение начато 19.10.2016 1:54:28.
1>InitializeBuildStatus:
1> Создание "Release\zClient.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> Interface.cpp
1> User.cpp
1>User.cpp(413): error C2065: lifebar: необъявленный идентификатор
1>User.cpp(414): error C2065: lifebar: необъявленный идентификатор
1>User.cpp(479): fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "User.cpp(409)"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.00
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
the problem is in the lines
void User::DrawSome()
{
VAngle Angle;
int PosX, PosY, LifeProgress;
// ----
lifebar=true;
if (!lifebar)
{
return;
}
else
{
for( int PartySlot = 0; PartySlot < 30; PartySlot++ )
re: [Development] Community Edition Season6 Episode3 z-Team