re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
fabiann1
If you download their sources are at 100%, but not if the latest update also.
- - - Updated - - -
I think it does not run on Windows XP, in season 6 of Zteam also had some problems, also it tells you that it is a mistake of kernel.dll
ResetSystem.xml in custom Folder
LOL, I Know but I want know how is the config for, cleaning stats and give 1000 points per reset, I have this config
Code:
<resetsystem>
<!-- Reset settings -->
<normal>
<!-- Switch (0: Disabled, 1: Enabled) -->
<enabled>1</enabled>
<!-- NPC configuration (First need add npc in MonsterSetBase.xml -->
<npc id="250" map="0" x="130" y="127" />
<!-- Group list -->
<grouplist>
<!--
minlevel: Min. level for reset
maxlevel: Max. level for reset
minreset: Min. reset for this group
maxreset: Max. reset for this group
money: Payment for reset (Money * <UserReset>)
gensp: Contribution for reset
credits: Credits for skip delay (0: without skips)
delay: Delay for making reset (minutes)
-->
<group minlevel="350" maxlevel="400" minreset="0" maxreset="500" money="100000" gensp="0" credits="50" delay="0">
<!-- Cleaning configuration (0: No, 1: Yes) -->
<cleaning>
<stats>1</stats>
<points>0</points>
<skills>0</skills>
<equipment>0</equipment>
<inventory>0</inventory>
<shop>0</shop>
<masterlevel>1</masterlevel>
<masterpoints>0</masterpoints>
<masterskills>0</masterskills>
<marlonquest>0</marlonquest>
</cleaning>
<!-- Checks configuration (0: Disabled, 1: Enabled) -->
<checks>
<equipment>0</equipment>
<inventory>0</inventory>
<shop>0</shop>
</checks>
<!--
pointmode: 1: Points * <UserReset>, 1: Points
-->
<reward pointmode="1">
<class id="0" point="1000" gensp="100" credits="250"/> <!-- Wizard -->
<class id="1" point="1000" gensp="100" credits="250"/> <!-- Knight -->
<class id="2" point="1000" gensp="100" credits="250"/> <!-- Elf -->
<class id="3" point="1000" gensp="100" credits="250"/> <!-- Gladiator -->
<class id="4" point="1000" gensp="100" credits="250"/> <!-- Lord -->
<class id="5" point="1000" gensp="100" credits="250"/> <!-- Summoner -->
<class id="6" point="1000" gensp="100" credits="250"/> <!-- Fighter -->
</reward>
</group>
</grouplist>
</normal>
</resetsystem>
and this is not giving 1000 per reset only give 1000 :S:(:
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
Gm2gustavo
No, you-re wrong... Kernell32 its about Service pack 3 as i remember :D
Or it-s different. i don-t know very good, by the way, when you got that kind of error, must update to Service pack 3 -just in case-
there is no problem on Windows mate but its on the zClient.dll if you use this zClient Old it works very well.
re: [Release] zTeam Season 8 Episode 2 (Source)
@michi28 fix run win xp sp3 not run. :(
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
16102012
@
michi28 fix run win xp sp3 not run. :(
try this zClient Old for temporary.
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
MaskARRA
zClient Old not update and fix :(
- - - Updated - - -
Quote:
Originally Posted by
MaskARRA
same problem here!
I fix run xp hahaha :)
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
16102012
I fix run xp hahaha :)
You might want to share how you fixed it for some XP users who might be trying to use the source, :).
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
16102012
zClient Old not update and fix :(
- - - Updated - - -
I fix run xp hahaha :)
good to hear that mate, post here your fixes mate :)
re: [Release] zTeam Season 8 Episode 2 (Source)
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
walter29
the problem is in the client
tnx. can you tell me what or how i need to do or some hints to make it ?
Quote:
Originally Posted by
DarkDown
how to configure resetsystem for cleaning stats and give 1000 points per reset
go data/custom then open ResetSystem. you can configure what you want.
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
samsunggon
tnx. can you tell me what or how i need to do or some hints to make it ?
so I learned missing piece of code on the client for this to work
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
samsunggon
tnx. can you tell me what or how i need to do or some hints to make it ?
go data/custom then open ResetSystem. you can configure what you want.
lol,please read last page my posts, i know where config but i need to know how is the config for clean stats and give 1000 points per reset, this is my config
Code:
<resetsystem>
<!-- Reset settings -->
<normal>
<!-- Switch (0: Disabled, 1: Enabled) -->
<enabled>1</enabled>
<!-- NPC configuration (First need add npc in MonsterSetBase.xml -->
<npc id="250" map="0" x="130" y="127" />
<!-- Group list -->
<grouplist>
<!--
minlevel: Min. level for reset
maxlevel: Max. level for reset
minreset: Min. reset for this group
maxreset: Max. reset for this group
money: Payment for reset (Money * <UserReset>)
gensp: Contribution for reset
credits: Credits for skip delay (0: without skips)
delay: Delay for making reset (minutes)
-->
<group minlevel="350" maxlevel="400" minreset="0" maxreset="500" money="100000" gensp="0" credits="50" delay="0">
<!-- Cleaning configuration (0: No, 1: Yes) -->
<cleaning>
<stats>1</stats>
<points>0</points>
<skills>0</skills>
<equipment>0</equipment>
<inventory>0</inventory>
<shop>0</shop>
<masterlevel>1</masterlevel>
<masterpoints>0</masterpoints>
<masterskills>0</masterskills>
<marlonquest>0</marlonquest>
</cleaning>
<!-- Checks configuration (0: Disabled, 1: Enabled) -->
<checks>
<equipment>0</equipment>
<inventory>0</inventory>
<shop>0</shop>
</checks>
<!--
pointmode: 1: Points * <UserReset>, 1: Points
-->
<reward pointmode="1">
<class id="0" point="1000" gensp="100" credits="250"/> <!-- Wizard -->
<class id="1" point="1000" gensp="100" credits="250"/> <!-- Knight -->
<class id="2" point="1000" gensp="100" credits="250"/> <!-- Elf -->
<class id="3" point="1000" gensp="100" credits="250"/> <!-- Gladiator -->
<class id="4" point="1000" gensp="100" credits="250"/> <!-- Lord -->
<class id="5" point="1000" gensp="100" credits="250"/> <!-- Summoner -->
<class id="6" point="1000" gensp="100" credits="250"/> <!-- Fighter -->
</reward>
</group>
</grouplist>
</normal>
</resetsystem>
and only gives 1000 points NOT stackable
re: [Release] zTeam Season 8 Episode 2 (Source)
@DarkDown is it difficult to read the config file?
Code:
pointmode: 0: Points * <UserReset>, 1: Points
In the next line there's <reward pointmode="1">, all you have to do is change to 0
re: [Release] zTeam Season 8 Episode 2 (Source)
Quote:
Originally Posted by
gustavobm
@
DarkDown is it difficult to read the config file?
Code:
pointmode: 0: Points * <UserReset>, 1: Points
In the next line there's
<reward pointmode="1">, all you have to do is change to
0
is it difficult to help the people?, thank you for the info
re: [Release] zTeam Season 8 Episode 2 (Source)
I have the following error leveling characters and at any moment they put the exp at 0 and can not go any higher level
re: [Release] zTeam Season 8 Episode 2 (Source)
The following code solves (i guess) 95% of Premium System problems. What is missing? A way to block user connection when the premium time is over, i hope someone could help.
JoinServerDB.cpp:
Code:
int IsUser(char *szId, char *pass, char * JoominNumber, char & Block, int & DBNumber)
{
char TimeBuff[100] = { 0 };
SYSTEMTIME Time;
GetLocalTime(&Time);
char szQuery[512];
char insertPremiumData[512];
char checkPremiumData[512];
sprintf(szQuery,"SELECT memb_guid, memb___id, sno__numb, bloc_code from MEMB_INFO WHERE memb___id='%s'",
szId);
if(g_JoinServerDB.Exec(szQuery) == FALSE)
{
g_Window.ServerLogAdd(ST_JOINSERVER,"error-L3 : ID:'%s' PASS:'%s'",szId, pass);
g_JoinServerDB.Clear();
return 2;
}
if(g_JoinServerDB.Fetch() == SQL_NO_DATA)
{
g_JoinServerDB.Clear();
if( g_JSInfo.bAutoreg == TRUE && strlen(szId) >= g_JSInfo.AutoRegMinLength && strlen(pass) >= g_JSInfo.AutoRegMinLength )
{
if( g_JSInfo.bMD5 == TRUE )
{
sprintf(szQuery,"INSERT INTO MEMB_INFO (memb___id,memb__pwd,bloc_code,ctl1_code) VALUES ('%s',dbo.fn_md5('%s','%s'),0,0)",
szId,pass,szId);
// auto reg insert premiumdata
sprintf(insertPremiumData,"INSERT INTO PremiumData (AccountID, PayCode, ExpireDate) VALUES ('%s','0','%04d%02d%02d')",
szId, Time.wYear, Time.wMonth, Time.wDay);
g_JoinServerDB.Exec(insertPremiumData);
}
else
{
sprintf(szQuery,"INSERT INTO MEMB_INFO (memb___id,memb__pwd,bloc_code,ctl1_code) VALUES ('%s','%s',0,0)",
szId,pass);
// auto reg insert premiumdata
sprintf(insertPremiumData,"INSERT INTO PremiumData (AccountID, PayCode, ExpireDate) VALUES ('%s','0','%04d%02d%02d')",
szId, Time.wYear, Time.wMonth, Time.wDay);
g_JoinServerDB.Exec(insertPremiumData);
}
if( g_JoinServerDB.Exec(szQuery) == FALSE )
{
g_Window.ServerLogAdd(ST_JOINSERVER,"error-L3 : ID:'%s' PASS:'%s'",szId, pass);
g_JoinServerDB.Clear();
return 2;
}
g_JoinServerDB.Clear();
sprintf(szQuery,"SELECT memb_guid, memb___id, sno__numb, bloc_code from MEMB_INFO WHERE memb___id='%s'",szId);
if(g_JoinServerDB.Exec(szQuery) == FALSE)
{
g_Window.ServerLogAdd(ST_JOINSERVER,"error-L3 : ID:'%s' PASS:'%s'",szId, pass);
g_JoinServerDB.Clear();
return 2;
}
if(g_JoinServerDB.Fetch() == SQL_NO_DATA)
{
g_JoinServerDB.Clear();
return 2;
}
}
else
{
return 2;
}
}
else
{
g_JoinServerDB.Clear();
#ifdef ZTEAMDB
sprintf(checkPremiumData,"SELECT PayCode,DATEDIFF(mi,GETDATE(),ExpireDate) as LeftTime,DATEPART(year,ExpireDate) as EYEAR,DATEPART(month,ExpireDate) as EMONTH,DATEPART(day,ExpireDate) as EDAY,DATEPART(hour,ExpireDate) as EHOUR,DATEPART(minute,ExpireDate) as EMINUTE FROM PremiumData WHERE AccountID = '%s'",szId);
#else
sprintf(checkPremiumData,"SELECT pay_code,DATEDIFF(mi,GETDATE(),ExpireDate) as LeftTime,DATEPART(year,ExpireDate) as EYEAR,DATEPART(month,ExpireDate) as EMONTH,DATEPART(day,ExpireDate) as EDAY,DATEPART(hour,ExpireDate) as EHOUR,DATEPART(minute,ExpireDate) as EMINUTE FROM MEMB_PREMIUM WHERE memb___id = '%s'",szId);
#endif
g_JoinServerDB.Exec(checkPremiumData);
if( g_JoinServerDB.Fetch() == SQL_NO_DATA)
{
g_JoinServerDB.Clear();
// insert premiumdata
sprintf(insertPremiumData,"INSERT INTO PremiumData (AccountID, PayCode, ExpireDate) VALUES ('%s','0','%04d%02d%02d')",
szId, Time.wYear, Time.wMonth, Time.wDay);
g_JoinServerDB.Exec(insertPremiumData);
}
}
DBNumber = g_JoinServerDB.GetInt("memb_guid");
char szBlock[2]="";
g_JoinServerDB.GetStr("sno__numb", JoominNumber);
g_JoinServerDB.GetStr("bloc_code", szBlock);
Block = szBlock[0];
if(g_JSInfo.bMD5 == TRUE)
{
BYTE btPass[16]={0};
g_JoinServerDB.Clear();
sprintf(szQuery,"SELECT memb__pwd FROM MEMB_INFO WHERE memb___id = '%s'",szId);
if(g_JoinServerDB.ReadBlob(szQuery,btPass) <= 0)
{
g_JoinServerDB.Clear();
return 0;
}
DWORD dwAccKey = MakeAccountKey(szId);
MD5 pMD5Hash;
if( pMD5Hash.MD5_CheckValue(pass, (char*)btPass, dwAccKey) == FALSE )
{
g_JoinServerDB.Clear();
return 0;
}
}
else
{
char szPass[MAX_IDSTRING+1] = {0};
g_JoinServerDB.Clear();
sprintf(szQuery,"SELECT memb__pwd FROM MEMB_INFO WHERE memb___id = '%s'",szId);
if(g_JoinServerDB.Exec(szQuery) == FALSE || g_JoinServerDB.Fetch() == SQL_NO_DATA)
{
g_JoinServerDB.Clear();
return 0;
}
g_JoinServerDB.GetStr("memb__pwd",szPass);
g_JoinServerDB.Clear();
if(strlen(szPass) < 1)
{
return 0;
}
if(strcmp(szPass,pass) != NULL)
{
return 0;
}
}
g_JoinServerDB.Clear();
return TRUE;
}
Code:
int GetBill(int number,char* szId,SDHP_BILLSEARCH_RESULT * lpMsg)
{
char szQuery[512];
char szQuerys[512];
int iIndex = gObjSearchUser(szId);
if(iIndex < 0 || iIndex >= MAX_USEROBJECT)
return FALSE;
int PayCode = 0;
int LeftTime = -1;
#ifdef ZTEAMDB
sprintf(szQuery,"SELECT PayCode,DATEDIFF(mi,GETDATE(),ExpireDate) as LeftTime,DATEPART(year,ExpireDate) as EYEAR,DATEPART(month,ExpireDate) as EMONTH,DATEPART(day,ExpireDate) as EDAY,DATEPART(hour,ExpireDate) as EHOUR,DATEPART(minute,ExpireDate) as EMINUTE FROM PremiumData WHERE AccountID = '%s'",szId);
#else
sprintf(szQuery,"SELECT pay_code,DATEDIFF(mi,GETDATE(),ExpireDate) as LeftTime,DATEPART(year,ExpireDate) as EYEAR,DATEPART(month,ExpireDate) as EMONTH,DATEPART(day,ExpireDate) as EDAY,DATEPART(hour,ExpireDate) as EHOUR,DATEPART(minute,ExpireDate) as EMINUTE FROM MEMB_PREMIUM WHERE memb___id = '%s'",szId);
#endif
if( g_JoinServerConnectDB.Exec(szQuery) == TRUE && g_JoinServerConnectDB.Fetch() != SQL_NO_DATA)
{
LeftTime = g_JoinServerConnectDB.GetInt("LeftTime");
#ifdef ZTEAMDB
PayCode = g_JoinServerConnectDB.GetInt("PayCode");
#else
PayCode = g_JoinServerConnectDB.GetInt("pay_code");
#endif
int end_year = g_JoinServerConnectDB.GetInt("EYEAR");
int end_month = g_JoinServerConnectDB.GetInt("EMONTH");
int end_day = g_JoinServerConnectDB.GetInt("EDAY");
int end_hour = g_JoinServerConnectDB.GetInt("EHOUR");
int end_minute = g_JoinServerConnectDB.GetInt("EMINUTE");
g_JoinServerConnectDB.Clear();
if(LeftTime <= 0)
{
PayCode = 0;
//RemoveBill(szId); -> Remove user from dbo.PremiumData and cause gs crash
lpMsg->EndTime = 0;
delete gObj[iIndex].lpBill;
sprintf(lpMsg->EndDays,"%04d%02d%02d%02d%02d",end_year,end_month,end_day,end_hour,end_minute);
g_Window.ServerLogAdd(ST_JOINSERVER,"[PREMIUM] User: [%s] PayCode: [%d] Expire Date: (%04d-%02d-%02d %02d:%02d)",szId,PayCode,end_year,end_month,end_day,end_hour,end_minute);
}
else
{
if( gObj[iIndex].lpBill != NULL )
delete gObj[iIndex].lpBill;
gObj[iIndex].lpBill = new BillStruct;
gObj[iIndex].lpBill->number = number;
gObj[iIndex].lpBill->PayCode = PayCode;
gObj[iIndex].lpBill->EndTime = LeftTime;
lpMsg->EndTime = LeftTime;
sprintf(lpMsg->EndDays,"%04d%02d%02d%02d%02d",end_year,end_month,end_day,end_hour,end_minute);
g_Window.ServerLogAdd(ST_JOINSERVER,"[PREMIUM] User: [%s] PayCode: [%d] Expire Date: (%04d-%02d-%02d %02d:%02d)",szId,PayCode,end_year,end_month,end_day,end_hour,end_minute);
}
}
return PayCode;
}
What is fixed?
Code:
-> GS crash when there's no data in MuOnline.dbo.PremiumData
-> GS crash when auto register is activated
-> GS crash when ExpireDate (LeftTime) < 0
Obs: Just replace this two functions in your JoinServerDB.cpp