Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Development] Community Edition Season6 Episode3 z-Team

Newbie Spellweaver
Joined
Oct 11, 2009
Messages
25
Reaction score
3
...lol.. I compile my source without errors with ItemRank, but main dont start...
here my source... i only add new weapon option and delete all __RMOS__ define, because it activate ItemRank...

I think that the case in Encoder.exe, because i have 2 version of this... Share your and what encoding u use?(ANSI/UTF-8)

link off =(
 
Don't be afraid to ask!
Loyal Member
Joined
Jun 2, 2012
Messages
1,454
Reaction score
252
@oneDmitry what do you want to get?

And I have a question:

FilterMain system is working for somebody? Today I started to debug it, because its not working for me... The filterslist doesnt load when the GS start.

Somebody know anything from this?
 
Don't be afraid to ask!
Loyal Member
Joined
Jun 2, 2012
Messages
1,454
Reaction score
252
if the exdb doesnt fix the problem, try with another database (zteam database) and if its not fix the problem, you need to use another zteam gs, because the bug was in the gs if i remember well...
 
Joined
Sep 24, 2012
Messages
405
Reaction score
63
THX I FAUND :)
plizzz help!! i need script -> zmain.exe -> open mu.exe autoupdate.

zclient.dll -> Other.cpp -> SetByte((PVOID)0x004D1E69, 0xEB); //-> Disable MU.exe call
 
Last edited:
Newbie Spellweaver
Joined
Nov 20, 2014
Messages
9
Reaction score
0
how you added effect on this wings?
QP9tw6v - [Development] Community Edition Season6 Episode3 z-Team - RaGEZONE Forums

yes how ? I'm donating (paypal) for helping MP
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Oct 15, 2013
Messages
24
Reaction score
10
who knows why
Code:
bool OfflineTrade::EmptyPointInventory(LPOBJ lpUser, int SoulNeed)
allways returns true, even if i have full inventory! Please someone help!
 
Junior Spellweaver
Joined
Aug 11, 2013
Messages
112
Reaction score
64
This is what I've done.


Can someone tell me how to change time of disappearing HP Bar? - I want to do it disappear when monster is dead, not when monster disappear.

And how to fix showing of HP (the red one bar) ? It's sometimes working, sometimes not & sometimes it's blinking.

S. Code that I use:


hello TraspyAble, you had some solution for hp bar.. :)
 
Experienced Elementalist
Joined
Sep 20, 2012
Messages
288
Reaction score
74
hello TraspyAble, you had some solution for hp bar.. :)

the problem with blinking bar (and the bar dissapearing) is that when your client receives a packet about a monsters hp it doesnt know which monsters is.
the solution is to make an array that indexes each monster and then calculates each one's separately
 
Junior Spellweaver
Joined
Feb 10, 2014
Messages
179
Reaction score
9
void User::DrawSome(){
VAngle Angle;
int PosX, PosY, LifeProgress;
// ----
{
for( int PartySlot = 0; PartySlot < 75; 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;
// ----
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(0x7B3F, (float)PosX - 1.2, (float)PosY - 1.5, 66.95, 6);
pDrawGUI(0x7B40, (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);
}
}

Please tell me whereinwhich file should I insertthis code ???
 
Junior Spellweaver
Joined
Aug 11, 2013
Messages
112
Reaction score
64
void User::DrawSome(){
VAngle Angle;
int PosX, PosY, LifeProgress;
// ----
{
for( int PartySlot = 0; PartySlot < 75; 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;
// ----
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(0x7B3F, (float)PosX - 1.2, (float)PosY - 1.5, 66.95, 6);
pDrawGUI(0x7B40, (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);
}
}

Please tell me whereinwhich file should I insertthis code ???

use these source that are already with HPBAR:

https://forum.ragezone.com/f197/server-files-source-mvcore-website-1070450/
 
Newbie Spellweaver
Joined
Jan 13, 2013
Messages
28
Reaction score
12
well.im posting mine


void Interface::DrawHP()
{
VAngle Angle;
int PosX, PosY, LifeProgress;
for (int MonsterViewPort = 0; MonsterViewPort < 30; MonsterViewPort++)
{
lpViewObj lpObj = &*(ObjectPreview*)pGetPreviewStruct(pPreviewThis(), MonsterViewPort);
DWORD CurrentTick = GetTickCount();
DWORD Delay = (CurrentTick - gObjUser.m_TargetUpdateTick);
if (!lpObj || lpObj->m_Model.ObjectType == emNPC || !lpObj->m_Model.Unknown4)
{
continue;
}
PMSG_TARGETDATA_REQ pRequest;
pRequest.h.set((LPBYTE)&pRequest, 0xFB, 7, sizeof(pRequest));
pRequest.aIndex = lpObj->aIndex;
if (Delay >= 75)
{
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[lpObj->aIndex];
float LifeBarWidth = 65.0f;
pGetPosFromAngle(&Angle, &PosX, &PosY);
PosX -= (int)floor(LifeBarWidth / (double)2.0);
if (gObjUser.m_TargetLifePercent[lpObj->aIndex] <= 0.1f || !lpObj->IsLiveObject)
{
continue;
}
// Player HP Bar
if (lpObj->m_Model.ObjectType == emPlayer)
{
pDrawGUI(0x7B3F, (float)PosX - 1.2, (float)PosY - 1.5, 66.95, 6);
pDrawGUI(0x7B40, (float)PosX, (float)PosY, BarWidth, 3);
}
// Monster HP Bar
else if(lpObj->m_Model.ObjectType == emMonster)
{
glColor4f(0.0, 0.0, 0.0, 0.7);
pDrawBarForm((float)(PosX - 1.2), (float)(PosY - 1.5), 66.95, 4.4, 0.0, 0);
pGLSwitchBlend();
glColor3f(1.0, 0.2, 0.0);
pDrawBarForm((float)(PosX), (float)(PosY), BarWidth, 2.1, 0.0, 0);
pDrawText(pTextThis(), PosX - 1, PosY - 11, " ", 67, 0, (LPINT)0, 0);
pDrawText(pTextThis(), PosX + 0.5 * (66.95 - (4.35 * float(strlen(lpObj->Name)))), PosY - 11, lpObj->Name, (4.35 * float(strlen(lpObj->Name))), 0, (LPINT)0, 0);
}
if ((int)(gObjUser.m_TargetLifePercent[lpObj->aIndex] / 10) > 10)
{
LifeProgress = 10;
}
else
{
LifeProgress = (int)(gObjUser.m_TargetLifePercent[lpObj->aIndex] / 10);
}
}
}



void Protocol::SetTargetData(PMSG_TARGETDATA_ANS * aRecv)
{
gObjUser.m_TargetLifePercent[aRecv->aIndex] = 0.0f;
gObjUser.m_TargetLifePercent[aRecv->aIndex] = aRecv->TargetLifePercent;
gObjUser.m_TargetUpdateTick = GetTickCount();
}



#pragma pack(push, 1)
struct PMSG_TARGETDATA_ANS
{
PBMSG_HEAD2 h;
int aIndex;
int PlayerObject;
/*
float TargetLife;
float TargetMaxLife;
int TargetLevel;
int TargetReset;*/
float TargetLifePercent;
};
#pragma pack(pop)



ServerSide:
void TargetDataRequest(int aIndex, PMSG_TARGETDATA_REQ * Request)
{
PMSG_TARGETDATA_ANS pMsg;
pMsg.h.set((LPBYTE)&pMsg, 0xFB, 7, sizeof(pMsg));
if( gObj[Request->aIndex].Live != FALSE )
{
pMsg.MonsterIndex = gObj[Request->aIndex].m_Index;
#ifdef TARGET_HP_BAR
pMsg.TargetLife = gObj[Request->aIndex].Life;
pMsg.TargetMaxLife = gObj[Request->aIndex].MaxLife + gObj[Request->aIndex].AddLife;
pMsg.TargetLevel = gObj[Request->aIndex].Level;
pMsg.TargetReset = gObj[Request->aIndex].Reset;
#endif
pMsg.TargetLifePercent = (gObj[Request->aIndex].Life / (gObj[Request->aIndex].MaxLife + gObj[Request->aIndex].AddLife)) * 100.0f;
DataSend(aIndex, (LPBYTE)&pMsg, sizeof(pMsg));
}
}



if you guys cant get it works. then you are too dumb :D
 
Back
Top