Any new update?
Printable View
Any new update?
anyone fix gift system in cash shop?
anyone know how to fix this?
http://i67.tinypic.com/2w4h6x4.jpg
http://i67.tinypic.com/16k3mmx.png
My new repack(update):
http://dox.bg/files/dw?a=38108d99b7
great, thx Omaruu
some test:
- can disable Z button in client(when disable MUHelper)
- can disable X buttno in client(when disable CashShop)
- disable in client Sum and RF to create(don't apear)
- explain item option in comonserver.cfg
CHAOSMIX_PLUSITEMLEVEL_TYPE1_1 = 50 //like this )
CHAOSMIX_PLUSITEMLEVEL_TYPE2_1 = 50
CHAOSMIX_PLUSITEMLEVEL_TYPE3_1 = 50
CHAOSMIX_PLUSITEMLEVEL_TYPE1_2 = 40
CHAOSMIX_PLUSITEMLEVEL_TYPE2_2 = 40
CHAOSMIX_PLUSITEMLEVEL_TYPE3_2 = 40
CHAOSMIX_PLUSITEMLEVEL_TYPE1_3 = 20
CHAOSMIX_PLUSITEMLEVEL_TYPE2_3 = 20
CHAOSMIX_PLUSITEMLEVEL_TYPE3_3 = 20 //..
and this
EB_DefenseLevelDiv = 5 //?
EB_DefenseStart = 50
EB_AttackLevelDiv = 3
EB_AttackStart = 45
EB_BuffTime = 1800
-how to use monsterspawner.xml ?
and visual bug box+2+3+4+5
New Update:
DOX.bg - Файл организатор за лесно споделяне и съхранение на файлове
Bug fixes:
- Your premium access code is wrong for this command bug Fixed
- Ertel RankUp +3 to +5 Fixed(Need client update replace files from Client->Data->Local(Folder))
Use this - https://failiem.lv/u/6cywaxjj
Thank man but i have error to, game server starts and than compilator says mi Поток 'Поток Win32' (0x1d00) завершился с кодом -1073740777 (0xc0000417).
Поток 'Поток Win32' (0xeb0) завершился с кодом -1073740777 (0xc0000417).
Поток 'Поток Win32' (0x1fe4) завершился с кодом -1073740777 (0xc0000417).
Программа "[192] zGameServer.exe: Машинный код" завершилась с кодом -1073740777 (0xc0000417).
It's mecanic mistake, in ComandManager.cpp replace
from 1714 line to 1752 like thisCode:}
http://i.imgur.com/2CSseri.png
can someonme give the last GS compile?
nope, it is last gs compiled by Omarru source with VS2013
Good, I share the following commands for those wanting to add them to source code S8.2
the command to add points do not need to select character or server.
//=== COMMAND RESET ===//
case Command::Reset:
{
// ----
int ResetCmd = GetPrivateProfileInt("Reset", "EnableCommand", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
if( ResetCmd == 0 )
{
MsgOutput(lpUser->m_Index, "[Free_Reset]:Disable for the Moment..");
return;
}
if ( ResetCmd )
{
int m_ReqLevel = GetPrivateProfileInt("Reset", "Level.Req", 400, gDirPath.GetNewPath(FILE_COMMAND_RESET));
int PointAdd = GetPrivateProfileInt("Reset", "AddPoint", 0, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool ClearStats = GetPrivateProfileInt("ClearStats", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool ClearMasterTree = GetPrivateProfileInt("ClearMasterLevel", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool ClearMasterPoint = GetPrivateProfileInt("ClearMasterPoint", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool ClearQuestMarlon = GetPrivateProfileInt("ClearQuestMarlon", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool ClearSkills = GetPrivateProfileInt("ClearSkills", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
int PointMode = GetPrivateProfileInt("Reset", "PointMode", 0, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool ClearInventory = GetPrivateProfileInt("ClearInventory", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
int RewardGens = GetPrivateProfileInt("Reward", "GensContribute", 0, gDirPath.GetNewPath(FILE_COMMAND_RESET));
bool Reward = GetPrivateProfileInt("Reward", "IsEnable", 1, gDirPath.GetNewPath(FILE_COMMAND_RESET));
if( ClearInventory == 1 ) // clear inventoy
{
for (int ItemPos = INVETORY_WEAR_SIZE; ItemPos < MAIN_INVENTORY_SIZE; ItemPos++ )
{
if (lpUser->pInventory[ItemPos].IsItem() )
{
gObjInventoryItemSet(lpUser->m_Index, ItemPos, -1);
lpUser->pInventory[ItemPos].Clear();
}
}
}
if( lpUser->Level < m_ReqLevel )
{
MsgOutput(lpUser->m_Index, "[CommandReset]: Level Required is %d",m_ReqLevel);
return;
}
if ( PointMode == 0 )
{
lpUser->LevelUpPoint += PointAdd;
}
if ( PointMode == 1 )
{
lpUser->LevelUpPoint = PointAdd * lpUser->iResetCount;
}
if ( ClearStats )
{
lpUser->Strength = DCInfo.DefClass[lpUser->Class].Strength;
lpUser->Dexterity = DCInfo.DefClass[lpUser->Class].Dexterity;
lpUser->Energy = DCInfo.DefClass[lpUser->Class].Energy;
lpUser->Vitality = DCInfo.DefClass[lpUser->Class].Vitality;
lpUser->Leadership = DCInfo.DefClass[lpUser->Class].Leadership;
}
if ( ClearMasterTree )
{
lpUser->MasterLevel = 0;
lpUser->MasterExperience = 0;
g_MasterExp.SetNextExp(lpUser);
}
if ( ClearMasterPoint )
{
lpUser->MasterPoint = 0;
}
if ( Reward )
{
lpUser->m_GensInfo.iContribution += RewardGens;
}
if ( ClearSkills )
{
for (int n = 0; n < MAGIC_SIZE;n++)
{
if (lpUser->Magic[n].IsMagic() == TRUE)
{
lpUser->Magic[n].Clear();
}
}
}
if ( ClearQuestMarlon )
{
g_QuestInfo.ReSetQuestState(lpUser, 2);
g_QuestInfo.ReSetQuestState(lpUser, 3);
}
lpUser->Money -= lpCommand->Price * lpUser->iResetCount;
GCMoneySend(lpUser->m_Index, lpUser->Money);
int LevelX = lpUser->MasterLevel + 1;
lpUser->Experience = 0;
lpUser->Level = 1;
lpUser->iResetCount += 1;
// ----
BYTE btClass = (lpUser->Class * 32) + 24;
GCSendQuestPrize(lpUser->m_Index, 0xCC, btClass);
gObjViewportListProtocolCreate(lpUser);
//----
gObjCloseSet(lpUser->m_Index, 1);
//-----
char Msg[100];
sprintf(Msg, "[ResetSystem]: You have Reset:[%d].", lpUser->iResetCount);
GCServerMsgStringSend(Msg,lpUser->m_Index,1);;
}
}
break;
//=== COMAND ADD NOT RELOG ===//
case Command::AddEne:
{
int Pontos;
Pontos = GetTokenNumber();
if(Pontos == NULL)
{
GCServerMsgStringSend("[CmdAdd]: syntax error",lpUser->m_Index,1);
return;
}
if(lpUser->LevelUpPoint < Pontos || Pontos < 1)
{
GCServerMsgStringSend("[CmdAdd]: not enough point.",lpUser->m_Index,1);
return;
}
if((Pontos + lpUser->Energy) > g_MaxStatValue)
{
GCServerMsgStringSend("[CmdAdd]: Cant add more than %d!.",lpUser->m_Index,g_MaxStatValue);
return;
}
if(Pontos > 200)
{
GCServerMsgStringSend("[CmdAdd]: Dont add more than 200 point in time!.",lpUser->m_Index,1);
return;
}
for(int p=0;p<Pontos;p++)
{
gObjLevelUpPointAdd(3,lpUser);
PMSG_LVPOINTADDRESULT pMsg;
PHeadSubSetB((LPBYTE)&pMsg, 0xF3, 0x06, sizeof(pMsg));
pMsg.ResultType = 0x10;
pMsg.ResultType += 3;
pMsg.wMaxShield = gObj[lpUser->m_Index].iMaxShield + gObj[lpUser->m_Index].iAddShield;
gObjSetBP(lpUser->m_Index);
pMsg.MaxBP = gObj[lpUser->m_Index].MaxBP + gObj[lpUser->m_Index].AddBP;
DataSend(lpUser->m_Index, (UCHAR *)&pMsg, pMsg.h.size);
}
char Msg[100];
sprintf(Msg, "[CmdAdd]: Points added [%d] to energy.", Pontos);
GCServerMsgStringSend(Msg,lpUser->m_Index,1);
gObjCalCharacter(lpUser->m_Index);
return;
}
break;
case Command::AddVit:
{
int Pontos;
Pontos = GetTokenNumber();
if(Pontos == NULL)
{
GCServerMsgStringSend("[CmdAdd]: syntax error",lpUser->m_Index,1);
return;
}
if(lpUser->LevelUpPoint < Pontos || Pontos < 1)
{
GCServerMsgStringSend("[CmdAdd]: not enough point.",lpUser->m_Index,1);
return;
}
if((Pontos + lpUser->Vitality) > g_MaxStatValue)
{
GCServerMsgStringSend("[CmdAdd]: Cant add more than %d!.",lpUser->m_Index,g_MaxStatValue);
return;
}
if(Pontos > 200)
{
GCServerMsgStringSend("[CmdAdd]: Dont add more than 200 point in time",lpUser->m_Index,1);
return;
}
for(int p=0;p<Pontos;p++)
{
gObjLevelUpPointAdd(2,lpUser);
PMSG_LVPOINTADDRESULT pMsg;
PHeadSubSetB((LPBYTE)&pMsg, 0xF3, 0x06, sizeof(pMsg));
pMsg.ResultType = 0x10;
pMsg.ResultType += 2;
pMsg.wMaxShield = gObj[lpUser->m_Index].iMaxShield + gObj[lpUser->m_Index].iAddShield;
gObjSetBP(lpUser->m_Index);
pMsg.MaxBP = gObj[lpUser->m_Index].MaxBP + gObj[lpUser->m_Index].AddBP;
DataSend(lpUser->m_Index, (UCHAR *)&pMsg, pMsg.h.size);
}
char Msg[100];
sprintf(Msg, "[CmdAdd]: Points added [%d] to vitality.", Pontos);
GCServerMsgStringSend(Msg,lpUser->m_Index,1);
gObjCalCharacter(lpUser->m_Index);
return;
}
break;
case Command::AddAgi:
{
int Pontos;
Pontos = GetTokenNumber();
if(Pontos == NULL)
{
GCServerMsgStringSend("[CmdAdd]: syntax error",lpUser->m_Index,1);
return;
}
if(lpUser->LevelUpPoint < Pontos || Pontos < 1)
{
GCServerMsgStringSend("[CmdAdd]: not enough point.",lpUser->m_Index,1);
return;
}
if((Pontos + lpUser->Dexterity) > g_MaxStatValue)
{
GCServerMsgStringSend("[CmdAdd]: Cant add more than %d!.",lpUser->m_Index,g_MaxStatValue);
return;
}
if(Pontos > 200)
{
GCServerMsgStringSend("[CmdAdd]: Dont add more than 200 point in time",lpUser->m_Index,1);
return;
}
for(int p=0;p<Pontos;p++)
{
gObjLevelUpPointAdd(1,lpUser);
PMSG_LVPOINTADDRESULT pMsg;
PHeadSubSetB((LPBYTE)&pMsg, 0xF3, 0x06, sizeof(pMsg));
pMsg.ResultType = 0x10;
pMsg.ResultType += 1;
pMsg.wMaxShield = gObj[lpUser->m_Index].iMaxShield + gObj[lpUser->m_Index].iAddShield;
gObjSetBP(lpUser->m_Index);
pMsg.MaxBP = gObj[lpUser->m_Index].MaxBP + gObj[lpUser->m_Index].AddBP;
DataSend(lpUser->m_Index, (UCHAR *)&pMsg, pMsg.h.size);
}
char Msg[100];
sprintf(Msg, "[CmdAdd]: Points added [%d] to agility.", Pontos);
GCServerMsgStringSend(Msg,lpUser->m_Index,1);
return;
}
break;
case Command::AddStr:
{
int Pontos;
Pontos = GetTokenNumber();
if(Pontos == NULL)
{
GCServerMsgStringSend("[CmdAdd]: syntax error",lpUser->m_Index,1);
return;
}
if(lpUser->LevelUpPoint < Pontos || Pontos < 1)
{
GCServerMsgStringSend("[CmdAdd]: not enough point.",lpUser->m_Index,1);
return;
}
if((Pontos + lpUser->Strength) > g_MaxStatValue)
{
GCServerMsgStringSend("[CmdAdd]: Cant add more than %d!.",lpUser->m_Index,g_MaxStatValue);
return;
}
if(Pontos > 200)
{
GCServerMsgStringSend("[CmdAdd]: Dont add more than 200 point in time",lpUser->m_Index,1);
return;
}
for(int p=0;p<Pontos;p++)
{
gObjLevelUpPointAdd(0,lpUser);
PMSG_LVPOINTADDRESULT pMsg;
PHeadSubSetB((LPBYTE)&pMsg, 0xF3, 0x06, sizeof(pMsg));
pMsg.ResultType = 0x10;
pMsg.ResultType += 0;
pMsg.wMaxShield = gObj[lpUser->m_Index].iMaxShield + gObj[lpUser->m_Index].iAddShield;
gObjSetBP(lpUser->m_Index);
pMsg.MaxBP = gObj[lpUser->m_Index].MaxBP + gObj[lpUser->m_Index].AddBP;
DataSend(lpUser->m_Index, (UCHAR *)&pMsg, pMsg.h.size);
}
char Msg[100];
sprintf(Msg, "[CmdAdd]: Points added [%d] to strength.", Pontos);
GCServerMsgStringSend(Msg,lpUser->m_Index,1);
return;
}
break;
case Command::AddCom:
{
if(lpUser->Class != 4)
{
GCServerMsgStringSend("[UCD]: Only Dark Lord Can use /AddCom.",lpUser->m_Index,1);
return;
}
int Pontos;
Pontos = GetTokenNumber();
if(Pontos == NULL)
{
GCServerMsgStringSend("[CmdAdd]: syntax error",lpUser->m_Index,1);
return;
}
if(lpUser->LevelUpPoint < Pontos || Pontos < 1)
{
GCServerMsgStringSend("[CmdAdd]: not enough point.",lpUser->m_Index,1);
return;
}
if((Pontos + lpUser->Leadership) > g_MaxStatValue)
{
GCServerMsgStringSend("[CmdAdd]: Cant add more than %d!.",lpUser->m_Index,g_MaxStatValue);
return;
}
if(Pontos > 200)
{
GCServerMsgStringSend("[CmdAdd]: Dont add more than 200 point in time",lpUser->m_Index,1);
return;
}
for(int p=0;p<Pontos;p++)
{
gObjLevelUpPointAdd(4,lpUser);
PMSG_LVPOINTADDRESULT pMsg;
PHeadSubSetB((LPBYTE)&pMsg, 0xF3, 0x06, sizeof(pMsg));
pMsg.ResultType = 0x10;
pMsg.ResultType += 4;
pMsg.wMaxShield = gObj[lpUser->m_Index].iMaxShield + gObj[lpUser->m_Index].iAddShield;
gObjSetBP(lpUser->m_Index);
pMsg.MaxBP = gObj[lpUser->m_Index].MaxBP + gObj[lpUser->m_Index].AddBP;
DataSend(lpUser->m_Index, (UCHAR *)&pMsg, pMsg.h.size);
}
char Msg[100];
sprintf(Msg, "[CmdAdd]: Points added [%d] to Command.", Pontos);
GCServerMsgStringSend(Msg,lpUser->m_Index,1);
return;
}
break;
//=== COMMAND ONLINE ===//
case Command::Online:
{
int oncount = 0;
int gmoncount = 0;
for(int g=OBJ_STARTUSERINDEX;g<OBJMAX;g++)
{
if(gObj[g].Connected == 3)
{
oncount++;
}
if(gObj[g].Connected == 3 && gObj[g].Authority == 32)
{
gmoncount++;
}
}
MsgOutput(lpUser->m_Index,"[CmdOnline] Players Online %d, GM Online %d",oncount,gmoncount);
return;
}
break;
Link FreeReset.txt: https://mega.nz/#!Ghd0XZqQ!iCssaHugR...2VKl5bCFbr8Kpk
PS: I HOPE THEY SERVE.
how to bug fix 3000 level experience bar :(
anyone fix compatible with xp sp3? the zclient?