-
[Development] Bug Free Season 2 (Open Source) - 2014 Edition
http://www.muonlinefacil.com.br/imag.../muonline4.png
Hello,
Server will be based on 1.00.18 gameserver which will provide a pretty good base itself for season 2, changelog and latest files will be listed here as the development goes on.
Anyhow i shall ask you to donate a piece of your knowledge if you know any security holes and/or bugs on this particular version that has been left unnoted in other files/servers, this way we can make sure the files are really bugless and offer the best gaming experience possible!
Changelog
Code:
##### 27.9.2014 #####
fixed monster crash packet
added trade crash packets
added create crash packets
##### 26.9.2014 #####
edited sql codes
adjusted compiling settings
##### 24.9.2014 #####
added antihack checks
##### 20.9.2014 #####
fixed golden archer item check
altered /make to support F.O exc drop
##### 16.9.2014 #####
added party gap system
##### 14.9.2014 #####
fixed /banchar crash
##### 12.9.2014 #####
fixed twisting slash w/ weapon bug
added dc hack packet
##### 11.9.2014 #####
added zenrate configuration
fixed error in vip system
##### 8.9.2014 #####
cleaned source code
fixed all commands
removed limit from /add command
fixed golden archer
fixed reset guard
added more options for reset guard
added /info command
##### 7.9.2014 #####
added options for greater fortitude
added options for manashield
fixed pk guard
removed skill level req settings
##### 6.9.2014 #####
fixed twisting slash w/ weapon
added item drop settings for gscs
added serial 0 error fix
added show gm option for /online command
##### 5.9.2014 #####
refixed pk bug
fixed crash packet
##### 4.9.2014 #####
fixed crash bugs in commands
##### 9.1.2012 #####
added /time command
added /online command
added more item drop configurations
##### 18.12.2011 #####
fixed gamemaster login notices
##### 14.12.2011 #####
fixed npc buffer crash (formula configs)
project converted to vs2010, no more loading problems
##### 27.10.2011 #####
fixed /post command
##### 19.10.2011 #####
added renacount config for golden archer
npc function recoded
added configuration for npc buffer formula
##### 18.10.2011 #####
added skin command
##### 17.10.2011 #####
added wheel of fortune
recoded parts of the source
database updated
##### 16.10.2011 #####
recoded gm login notice
fixed dark horse vault bug
fixed commandmanager.cfg
##### 15.10.2011 #####
added reload command
added news system
##### 14.10.2011 #####
added GM login notice
added configuration for dark raven
deleted ancient slot from make command
##### 14.9.2011 #####
added moveall command
##### 7.9.2011 #####
post & notice command color config added
post & make command log saving option added
updated gameserver.exe
##### 6.9.2011 #####
fixed post command
fixed drop system
added new commands
added vip system
added gm system
added firewall
added golden archer
added pk guard
added reset guard
added sql connection
updated database file
updated gameserver.exe
##### 3.9.2011 #####
drop system added
many custom configurations added
commands added
65k stats added + limit checker
skill usage level reqs added
##### 2.9.2011 #####
M:\ drive fixed
Data folder loading & path fixed
ServerInfo.dat path fixed
DestroyGIocp (Error-L10) fixed
GameServerAuth (0x0000 Memory Error) fixed
Socket Serial Error fixed
Potion bug fixed
PK bug fixed
Party zen bug fixed (normal & devil square)
Golden invasion message added
GameGuard plugins deleted
Red dragon durability bug fixed
Chaos card mix duping fixed
MonsterAIElement error fixed
Serial 0 antihack messages fixed
Lahap mix duping fixed
Map explorer added
Connect notice added
##### 29.8.2011 #####
- Project started
Latest Build
Code:
Server Core (0.8.0.0): Here
Server Update (0.8.5.0): Here
Source Code (0.8.5.0): Here
Database Files (0.8.0.0): Here
Client Core (1.2): Here
Client Music Patch: Here
Client Sound Patch: Here
Useful Files
Code:
Decompiled Gameserver PDB's: Here
Visual Studio 2010 Redistributable: Here
Framework 3.5: Here
Project Information
Code:
Platform: Visual Studio 2010 Professional SP1 (C++)
Communication Protocol: Korean
Client Base: 1.02R+
Server Base: 1.00.18
Current Build: 0.8.5.0
- Shatter
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Support the landlord ... good program ... will always be concerned about
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
8.0.5 Revision up, added configurations for zen rate and fixed a bug in vip system.
- S
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Hi Shatter, I started to test for bugs... I found a really big bug : Twisting Slash don't work. On DK/BK/MG the same error message : You need a sword to use this skill (or something like this) And yes I tried it with more swords, but still don't work...
It's maybe just my bad from configuration (but I don't think so).
P.S. : In commonserver.cfg at the max stats options for DL is no command(str, ene,agi,vit is there) so it will be nice if you can add that attribute too.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
shatter add me to pinkof_4 in skype i have some fixs and some customs for this :)
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
sauro
Bug found life reaches 0 and do not kill
could you please provide more info as in how to reproduce the bug and also a better picture? your pic is just a thumbnail so i can't really see anything.
Edit: Revision 8.1.0 online, fixed twisting slash bug and added fix for dc hack.
- S
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@Shatter
you can add pc point or
auto event ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Ty for fixing twisting bug. Still testing I will post all the found bugs here.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
If i do /banchar [ name ] and after disconnect when im trying to connect back ConnectServer stops working and in error log i see this:
Quote:
15:29:59 <<================== ConnectServer Starting ==================>>
15:38:28 Error : File : [D:\Works\Mu-Studio\ConnectServer\Backup\2007-02-01 CS_ÀϺ»LocalIPÃß°¡\Source\giocp.cpp], Line : [591]
15:38:28 Error Thread : GetQueueCompletionStatus() (183, The network connection was aborted by the local system.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
I will check this in 1 hour when I will be at home. Seems really ugly, but /banchar is a GS command it has no relation with the CS... So it should be something else wrong in CS and not that command.
Anyway i will try it myself and come back with a post.
- - - Updated - - -
I just get back home.
For me the /banchar command crashes the gameserver. No error log in gs log files about that (i think that is because of the automatic close of GS).
Anyway this is my windows report :
Code:
Problem signature:
Problem Event Name: APPCRASH
Application Name: gameserver.exe
Application Version: 1.0.18.0
Application Timestamp: 46975bd7
Fault Module Name: MSVCR100.dll
Fault Module Version: 10.0.40219.325
Fault Module Timestamp: 4df2be1e
Exception Code: c0000005
Exception Offset: 0007d0ac
OS Version: 6.1.7601.2.1.0.768.3
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Can you add more monsters in the next fix? 5800 to 9000?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Shatter,
From where dataserver is reading configurations, because here the DS says odbc can't connect to database.?
Thanks in advance.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Hi there, I got a big problem. After a certain time that server is Online ( could be 1 minute or 1 day or anything like that) the log in start to freeze, so players who are already online can play without any problem but if any one try to connect the server it's just freeze after they entered the log in details.
I found out that the problem is with my dataserver1, if I restart dataserver1 log in work's again. I made an auto reset for dataserver1 to reeset every 15 min, because I just can't be always there when it's stop working to restart the dataserver1. Now some data just got lost when dataserver1 restarting.
So my question is : how to configure dataserver 1/2 to don't need to restart and no more freeze.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
walter29
could add wings level 3?
this is season 2, no official support will be given for season 3 items.
Quote:
Originally Posted by
wFX
Shatter,
From where dataserver is reading configurations, because here the DS says odbc can't connect to database.?
Thanks in advance.
you have bad ODBC settings, if you use higher than SQL 2000, for example 2005 you will need to change the connection address for db.
Quote:
Originally Posted by
InsidiousMu
Hi there, I got a big problem. After a certain time that server is Online ( could be 1 minute or 1 day or anything like that) the log in start to freeze, so players who are already online can play without any problem but if any one try to connect the server it's just freeze after they entered the log in details.
I found out that the problem is with my dataserver1, if I restart dataserver1 log in work's again. I made an auto reset for dataserver1 to reeset every 15 min, because I just can't be always there when it's stop working to restart the dataserver1. Now some data just got lost when dataserver1 restarting.
So my question is : how to configure dataserver 1/2 to don't need to restart and no more freeze.
are you sure you have correct settings? not happening to me, first time i hear about this.
- Shatter
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
I test your files and crash packets working. You could fix it?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
What config could be wrong?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
I test your files and crash packets working. You could fix it?
send my packets i upload update
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
this is season 2, no official support will be given for season 3 items.
you have bad ODBC settings, if you use higher than SQL 2000, for example 2005 you will need to change the connection address for db.
are you sure you have correct settings? not happening to me, first time i hear about this.
- Shatter
I find out the problem last night, ODBC was fine, but i configured IP in files without paying attention, and in allowableiplist the entry it's separated by " "(space) not "." (comma), after i figured out my mistake it worked like a charm.
Also, in WZag.rc the afxres.h isn't default in c++ express, i switched to:
But not tested yet to see if crash something.
For now, great source, if I fix or add something, I'll reply here.
Thanks !
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Shatter,
I'm trying to code a gmove command, because i'cant find anything like that in files and basically used MoveAll as base..
But I don't understand how "i" points to characters objects to end the function.
You can give some enlightenment?
The code:
Code:
void GMoveCommand(int aIndex,char* Message)
{
if(conf.commands.gmoveenabled == 0)
{
return;
}
if(VerifyGM(aIndex) == false)
{
return;
}
if(GMSystem.m_Enabled == 1)
{
// Check the "9" value ?
if(GMSystem.CheckGMCommand(aIndex,9) == 1)
{
if(!_strcmpi("/gmove",Message))
{
GCServerMsgStringSend("Usage: /gmove <map> <posx> <posy>",aIndex,1);
return;
}
if(strlen(Message) < 1 || strlen(Message) > 11)
{
GCServerMsgStringSend("Usage: /gmove <map> <posx> <posy>",aIndex,1);
return;
}
int Spaces = 0;
for(int i = 0; i < strlen(Message); i++)
{
if(Message[i] == ' ')
{
Spaces++;
}
}
if(Spaces < 2)
{
GCServerMsgStringSend("Error, please re-check the string you gave.",aIndex,1);
return;
}
int MapNumber = 0;
int PosX = 0;
int PosY = 0;
sscanf(Message,"%d %d %d",&MapNumber,&PosX,&PosY);
for(int i = OBJECT_MIN; i < OBJECT_MAX; i++)
{
//Check i against obj of command requester
//if(i == gObj->Name)
gObjTeleport(i, MapNumber, PosX, PosY);
}
Log.AddTime("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s",gObj[aIndex].Ip_addr,gObj[aIndex].AccountID,gObj[aIndex].Name,"GMove");
Log.GM("Use GM Command -> [ %s ]\t[ %s ]\t[ %s ] : %s\n",gObj[aIndex].Ip_addr,gObj[aIndex].AccountID,gObj[aIndex].Name,"GMove");
}
else
{
GCServerMsgStringSend("You don't have priviledges to this command.",aIndex,1);
}
}
}
Thanks in advance
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
There is already a /gmove command but is /move name mapnumber coordx coordy!
Anybody help with the ds standby problem?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
wFX
Shatter,
I'm trying to code a gmove command, because i'cant find anything like that in files and basically used MoveAll as base..
But I don't understand how "i" points to characters objects to end the function.
You can give some enlightenment?
Thanks in advance
As InsidiousMu already told, there is already similar gm command originally in the files but its /move <name> <map> <posx> <posy>
Code:
// Check the "9" value ?
if(GMSystem.CheckGMCommand(aIndex,9) == 1)
the value 9 is the the number of the command from the list in gamemasters.dat
all online players are between OBJECT_MIN & OBJECT_MAX, and as you define it as int i, you can use i (gObj[i].somethinghere) as a pointer. acts similarly to picking out only your player (gObj[Index].somethinghere) but instead it just selects all players to the affected range.
- S
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Shatter, what OS & SQL you recommend for this files? Is really stable... maybe in other OS I will have no problems with ds.
Now I am using win 7 home edition but I tried it in XP sp2/3 too.
Annoying that standby bug....
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Great work!!. Keep it up dude.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
InsidiousMu
Shatter, what OS & SQL you recommend for this files? Is really stable... maybe in other OS I will have no problems with ds.
Now I am using win 7 home edition but I tried it in XP sp2/3 too.
Annoying that standby bug....
Ty insidious, about your problem, try to setup a little vbox... I'm using a vbox with Win2k8 r2 server and SQL 2k8 r2 express and works flawless...
Shatter, ty for you help too!
Edit: I noticed Firescream causes DL to disconnect, then I messes arround with skilladditionalinfo.dat and speedhack options in comonserver and now it's ok, but I'm pretty sure the ''reload'' to speed hack options isn't working
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
how much ram it should use for it? I have 6 gb but my win 7 is showing me only 3... so... some idea how to make it use all the 6 so i can five 3 for a vbox?
Oh yes and sql 2k8 have option to like sql2005 to work with sql 2000db? I mean i need that sql 2k8 to work with my current db (sql 2005)
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
InsidiousMu
how much ram it should use for it? I have 6 gb but my win 7 is showing me only 3... so... some idea how to make it use all the 6 so i can five 3 for a vbox?
Oh yes and sql 2k8 have option to like sql2005 to work with sql 2000db? I mean i need that sql 2k8 to work with my current db (sql 2005)
Maybe if u install x64 OS and not x86? lol...
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
InsidiousMu
how much ram it should use for it? I have 6 gb but my win 7 is showing me only 3... so... some idea how to make it use all the 6 so i can five 3 for a vbox?
Oh yes and sql 2k8 have option to like sql2005 to work with sql 2000db? I mean i need that sql 2k8 to work with my current db (sql 2005)
you'll need a x64 Win version Insidious!
and a 1,5GB Vbox server is Ok.. 50gb HD, and 1 core cpu.
2000DB can be imported to sql2008 but i always use db as 2008 version. this is up to you.
-
2 Attachment(s)
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Hello everyone.
I want to ask about this case:
FULL STAT:
Attachment 147833
NO FULL STAT:
Attachment 147834
It is the simple bug agility carried by most of season 2 servers?
Any solution?
It also happens with the character: DL / MG / SM
Thank you very much.
PS: I'm testing the files 3 days ago online. Without any overall crash.
EDIT: Solution: Change the player.bmd, the client season2.
Sorry, GoogleTranslate.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Oh ty guys, I thought there is some other option, not just installing a win with 64:D
Anyway, for anyone who use these files : do not use Golden Archer. Bug : if u got 1 rena u can drop unlimited stacks of jwl (10/20 soul/bless) with Golden Archer. Shatter fix if possible. Ty.
- - - Updated - - -
I have to install drivers on the virtual machine like on normal pc?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lattu
Hello everyone.
I want to ask about this case:
FULL STAT:
Attachment 147833
NO FULL STAT:
Attachment 147834
It is the simple bug agility carried by most of season 2 servers?
Any solution?
It also happens with the character: DL / MG / SM
Thank you very much.
PS: I'm testing the files 3 days ago online. Without any overall crash.
Sorry, GoogleTranslate.
Actually, all version of Mu have this behavior, seems to be a way of WZ don't let the spells to crash your GPU, and I believe this can be modified in client, not in Server (which is what the topic is about)
Quote:
Originally Posted by
InsidiousMu
Oh ty guys, I thought there is some other option, not just installing a win with 64:D
Anyway, for anyone who use these files : do not use Golden Archer. Bug : if u got 1 rena u can drop unlimited stacks of jwl (10/20 soul/bless) with Golden Archer. Shatter fix if possible. Ty.
- - - Updated - - -
I have to install drivers on the virtual machine like on normal pc?
Actually golden archer development was kinda dropped by WZ, so it's interesting to use the model of NPC for something else...
Win2k8 Server already have some generic drivers to work with Vbox, I just recommend to install, "Guest Advanced Tools", "Special Vbox Features", or something like that (depends on your software) because works like drivers, give better resolutions, and shared clipboard, and some other stuffs... if you have any problems, let me know
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
InsidiousMu
Oh ty guys, I thought there is some other option, not just installing a win with 64:D
Anyway, for anyone who use these files : do not use Golden Archer. Bug : if u got 1 rena u can drop unlimited stacks of jwl (10/20 soul/bless) with Golden Archer. Shatter fix if possible. Ty.
- - - Updated - - -
I have to install drivers on the virtual machine like on normal pc?
Okay, I fixed Golden Archer. Now when you register rena is deleted from inventory.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
Okay, I fixed Golden Archer. Now when you register rena is deleted from inventory.
Share the fix then :p
-
2 Attachment(s)
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Here you go. Only replace and compile.
P.S. I just looked at the code for IA Source and reworked it a little here to work.
Attachment 147843
Edit:
I little change a "/make" command becouse it was impossible to drop full exc or ancient item.
Attachment 147844
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Now maybe you will laugh at me but : Aida /move don't work. I checked it 200 Times, movereq(client-server) and gate (client-server) same, and still aida move don't work but aida2 move work... Maybe I am stupid but just can't explain it why will not work... Do it have different name in Client ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
InsidiousMu
Now maybe you will laugh at me but : Aida /move don't work. I checked it 200 Times, movereq(client-server) and gate (client-server) same, and still aida move don't work but aida2 move work... Maybe I am stupid but just can't explain it why will not work... Do it have different name in Client ?
Hey! try with these files!
The configured to work with files and client.
FIX MOVE by: Lattu
BIG HUG!
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Ty, i will try with this files.
Another little bug, maybe somebody have solved this. HP bug : Sometimes after reset or dying, HP goes to 0 and any hit will be deadly, and hp goes normal only after several switches.
Ty.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
this is not coded right, thats why you have this problem, i use ENG protocol on my project and this was the first steps to be fixed, dmg, display,rotate and etc..
so about this shatter will need to upgrade the core base
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lattu
Hello everyone.
I want to ask about this case:
FULL STAT:
Attachment 147833
NO FULL STAT:
Attachment 147834
It is the simple bug agility carried by most of season 2 servers?
Any solution?
It also happens with the character: DL / MG / SM
Thank you very much.
PS: I'm testing the files 3 days ago online. Without any overall crash.
EDIT: Solution: Change the player.bmd, the client season2.
Sorry, GoogleTranslate.
What did you change in player.bmd?
@Lejman, your fixes worked well here, i hitnk @Shatter can merge without a problem..
Btw, I can't figure out to drop a ancient item, some example ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Example: /make 10 1 13 1 1 7 0 5
If you enable in commonserver "EnableAncient+ExcOpt" you could drop Ancient F.O. ex. /make 10 1 13 1 1 7 63 5
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
wFX
What did you change in player.bmd?
This is the solution.
You simply replace it and go.
It is the player.bmd my old client: Player.bmd fix bug skill agility by: Lattu
BIG HUG!
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
PKITEMDROP bugged. I have 0 in commonserver but continue dropping sets items
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
Example: /make 10 1 13 1 1 7 0 5
If you enable in commonserver "EnableAncient+ExcOpt" you could drop Ancient F.O. ex. /make 10 1 13 1 1 7 63 5
Indeed, it worked pretty well, but why "5" ? ^^ just curious
And btw..
Dinorant isn't enabling Icarus warp in "m" menu... you can /move icarus normally or walk trough LT but Icarus in menu dont ge enabled with dino only wings..
In stadium(arena), the cages are locked, i changed my terraing in client, but some kind of ''wind force" sometimes push the char... any ideas?
Quote:
Originally Posted by
Lattu
Man ^^ i don't want files, I want a explication of what did you changed, and why it's work... I edit my files manually, one by one..
EDIT:
I'm leaving here my own customization in ResetGuard to give different reset points depending on char class (discards value from ResetGuard.dat) allowing better pvp, and add 2 more parameters in this file to easily create a system of a progressive level for reset.. and putting a limit of max resets..
in my example..
DL/MG = 140 points
Others = 120 points
Max resets = 100
Reset with 100 resets = only to re arrange points
Reset 0 = 10kk and lvl 300
Reset 1 = 20kk and lvl 301
Reset 2 = 30kk and lvl 302
...
Reset 100 = 1kkk and lvl 400
I'll no post files, if do you want some os this features just read the code and implement yourself...
ResetGuard.cpp
Code:
#include "StdAfx.h"
// Reset Guard
CResetGuard ResetGuard;
void CResetGuard::Init(char* File)
{
this->m_Enabled = GetPrivateProfileInt("GameServerInfo","EnableResetGuard",0,COMMONSERVER_PATH);
if(this->m_Enabled == 1)
{
LoadFile(File);
}
}
void CResetGuard::LoadFile(char* File)
{
SMDFile = fopen(File,"r");
if(SMDFile == 0)
{
MessageBoxA(0,"Unable to load ResetGuard.dat - File not found.","Error",MB_OK);
this->m_Enabled = 0;
return;
}
int iToken = 0;
while(true)
{
iToken = GetToken();
if(iToken == 2)
{
break;
}
if(iToken == 1)
{
int SubClass = TokenNumber;
if(SubClass == 0)
{
while (true)
{
iToken = GetToken();
if(iToken == 0)
{
if(strcmp("end",TokenString) == 0)
{
break;
}
}
this->m_KeepQuest = TokenNumber;
iToken = GetToken();
this->m_KeepStat = TokenNumber;
iToken = GetToken();
this->m_AddPoints = TokenNumber;
iToken = GetToken();
this->m_ExtraPoints = TokenNumber;
iToken = GetToken();
this->m_ResetLevel = TokenNumber;
iToken = GetToken();
this->m_NewLevel = TokenNumber;
iToken = GetToken();
this->m_ReqPrice = TokenNumber;
iToken = GetToken();
this->m_Price = TokenNumber;
iToken = GetToken();
this->m_ResetCounter = TokenNumber;
iToken = GetToken();
this->m_ExtraLevel = TokenNumber;
}
}
else if(SubClass == 1)
{
while (true)
{
iToken = GetToken();
if(iToken == 0)
{
if(strcmp("end",TokenString) == 0)
{
break;
}
}
this->m_ReqItem = TokenNumber;
iToken = GetToken();
this->m_ItemType = TokenNumber;
iToken = GetToken();
this->m_ItemIndex = TokenNumber;
}
}
else if(SubClass == 2)
{
while (true)
{
iToken = GetToken();
if(iToken == 0)
{
if(strcmp("end",TokenString) == 0)
{
break;
}
}
this->m_PriceMultiplier = TokenNumber;
iToken = GetToken();
this->m_AddPointMultiplier = TokenNumber;
iToken = GetToken();
this->m_AddLevelMultiplier = TokenNumber;
}
}
}
}
fclose(SMDFile);
}
int CResetGuard::ResetStats(int aIndex,int Class)
{
switch(Class)
{
// Wizard
case 0x00:
gObjWrite(aIndex,gObjStrength,18);
gObjWrite(aIndex,gObjAgility,18);
gObjWrite(aIndex,gObjVitality,15);
gObjWrite(aIndex,gObjEnergy,30);
return 120;
break;
// Knight
case 0x01:
gObjWrite(aIndex,gObjStrength,28);
gObjWrite(aIndex,gObjAgility,20);
gObjWrite(aIndex,gObjVitality,25);
gObjWrite(aIndex,gObjEnergy,10);
return 120;
break;
// Elf
case 0x02:
gObjWrite(aIndex,gObjStrength,22);
gObjWrite(aIndex,gObjAgility,25);
gObjWrite(aIndex,gObjVitality,20);
gObjWrite(aIndex,gObjEnergy,15);
return 120;
break;
// Gladiator
case 0x03:
gObjWrite(aIndex,gObjStrength,26);
gObjWrite(aIndex,gObjAgility,26);
gObjWrite(aIndex,gObjVitality,26);
gObjWrite(aIndex,gObjEnergy,26);
return 140;
break;
// Dark Lord
case 0x04:
gObjWrite(aIndex,gObjStrength,26);
gObjWrite(aIndex,gObjAgility,20);
gObjWrite(aIndex,gObjVitality,20);
gObjWrite(aIndex,gObjEnergy,15);
gObjWrite(aIndex,gObjCommand,25);
return 140;
break;
default:
return 0;
break;
}
}
int CResetGuard::CheckItem(int aIndex)
{
int iType = ITEMGET(this->m_ItemType,this->m_ItemIndex);
for(int i = 12; i < 76; i++)
{
if(gObj[aIndex].pInventory[i].m_Type == iType && gObj[aIndex].pInventory[i].m_Level == 0)
{
gObjInventoryDeleteItem(aIndex,i);
GCInventoryItemDeleteSend(aIndex,i,1);
return true;
}
}
return false;
}
void CResetGuard::Act(int aIndex, int Monster)
{
if(this->m_Enabled == 0)
{
return;
}
if(gObjIsConnected(aIndex) == 0)
{
return;
}
if(this->m_KeepQuest == 0)
{
for(int i = 1; i < 50; i++)
{
gObj[aIndex].m_Quest[i] = 0xFF;
}
}
if(this->m_KeepStat == 0)
{
this->m_ExtraPoints = ResetStats(aIndex,gObj[aIndex].Class);
}
int ResetCount = MuDB.GetResets(gObj[aIndex].Name);
if(ResetCount >= 100)
ResetCount = 99;
if(this->m_AddPoints == 1)
{
if(this->m_AddPointMultiplier == 1)
{
gObj[aIndex].LevelUpPoint = (this->m_ExtraPoints * (ResetCount + 1));
}
else
{
gObj[aIndex].LevelUpPoint = this->m_ExtraPoints;
}
}
if(this->m_ReqPrice == 1)
{
if(this->m_PriceMultiplier == 1)
{
gObjWrite(aIndex,gObjZen,gObjGetInt(aIndex,gObjZen) - (this->m_Price * (ResetCount + 1)));
GCMoneySend(aIndex,gObjGetInt(aIndex,gObjZen));
}
else
{
gObjWrite(aIndex,gObjZen,gObjGetInt(aIndex,gObjZen) - this->m_Price);
GCMoneySend(aIndex,gObjGetInt(aIndex,gObjZen));
}
}
if(this->m_ResetCounter == 1)
{
MuDB.UpdateResets(gObj[aIndex].Name);
}
gObjWrite(aIndex,gObjLvl,this->m_NewLevel);
gObjWrite(aIndex,gObjExp,0);
GCLevelUpMsgSend(aIndex,1);
GCFireworkSend(aIndex,gObj[aIndex].X,gObj[aIndex].Y,1);
GCServerMsgStringSend("You've reborn successfully.",aIndex,1);
GCServerMsgStringSend("Relogging to finish the process..",aIndex,1);
gObjCloseSet(aIndex,1);
Log.AddTime("[Reset Guard] (%s)(%s) Reborn, Map:[%d]",gObj[aIndex].AccountID,gObj[aIndex].Name,gObj[aIndex].MapNumber);
}
void CResetGuard::Npc(int aIndex,int Monster)
{
if(this->m_AddLevelMultiplier == 0){
if(gObj[aIndex].Level < this->m_ResetLevel)
{
ChatTargetSend(&gObj[Monster],"You are too low level to reborn.",aIndex);
return;
}
}else{
if(gObj[aIndex].Level < this->m_ResetLevel + (this->m_ExtraLevel * MuDB.GetResets(gObj[aIndex].Name)))
{
ChatTargetSend(&gObj[Monster],"You are too low level to reborn.",aIndex);
return;
}
}
if(this->m_ReqPrice == 1 && gObj[aIndex].Money < this->m_Price)
{
ChatTargetSend(&gObj[Monster],"You don't have enough zen.",aIndex);
return;
}
if(this->m_ReqItem == 1 && this->CheckItem(aIndex) == 0)
{
ChatTargetSend(&gObj[Monster],"You don't have the required item to reborn.",aIndex);
return;
}
this->Act(aIndex, Monster);
}
ResetGuard.h
Code:
#ifndef __RESETGUARD_H__
#define __RESETGUARD_H__
// Reset Guard
class CResetGuard
{
public:
void Init(char* File);
void LoadFile(char* File);
int ResetStats(int aIndex,int Class);
void UpdateStats(int aIndex);
int CheckItem(int aIndex);
void Act(int aIndex, int Monster);
void Npc(int aIndex,int Monster);
private:
int m_Enabled;
int m_KeepQuest;
int m_KeepStat;
int m_AddPoints;
int m_ExtraPoints;
int m_ResetLevel;
int m_NewLevel;
int m_ReqPrice;
int m_Price;
int m_ResetCounter;
int m_ExtraLevel;
int m_ReqItem;
int m_ItemType;
int m_ItemIndex;
int m_PriceMultiplier;
int m_AddPointMultiplier;
int m_AddLevelMultiplier;
};
extern CResetGuard ResetGuard;
#endif
ResetGuard.dat
Code:
//-------------------------//
// Reset Options //
// ----------------------- //
// KeepQuest //
// - 0 = Reset Quests //
// - 1 = Keep Quests //
// KeepStats //
// - 0 = Reset Stats //
// - 1 = Keep Stats //
// AddStats //
// - 0 = Add Extra Points //
// - 1 = No Extra Points //
// Amount //
// - Add Point Amount //
// ResetLevel //
// - Req. Lvl For Reset //
// NewLevel //
// - Level After Reset //
// ResetCounter //
// - Use DB Reset Count //
// ExtraLevel //
// - Add Level to req * rr //
// PriceMultiplier //
// - Price * Reset Count //
// AddPointMultiplier //
// - Amount * Reset Count //
// AddLevelMultiplier //
// - Level + Reset Count //
//-------------------------//
// KeepQuest KeepStats AddPoints Amount ResetLevel NewLevel Req. Price Price ResetCounter ExtraLevel
0
1 0 1 100 300 1 1 10000000 1 1
end
// Req. Item ItemType ItemIndex
1
0 12 15 // Jewel of Chaos
end
// PriceMultiplier AddPointMultiplier AddLevelMultiplier
2
1 1 1
end
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
wFX
Man ^^ i don't want files, I want a explication of what did you changed, and why it's work... I edit my files manually, one by one..
I simply changed the file and fix automatically...
I did not modify anything in the file.
If you want, compare files.
Original and the one I use.
regards.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lattu
I simply changed the file and fix automatically...
I did not modify anything in the file.
If you want, compare files.
Original and the one I use.
regards.
Hm. i see, i will do it
thanks!
EDIT: which editor did you use? Magic hand and others dont open player.bmd...
Someone tried to use ChatTargetSend with a char * variable as a parameter ? When i do this and click on the NPC , gameserver crashes =(
@Shatter "_" isn't in BadSyntax, and I still couldn't use to create chars with it, and where i disable the filter "Spank me" ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
wFX
@
Shatter "_" isn't in BadSyntax, and I still couldn't use to create chars with it, and where i disable the filter "Spank me" ?
edit Filter.bmd in client.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
So after I finally solved the DS problem with standb mode with new OS, now the GS fucks the game. WSARECV error WSASEND error, error-L1 : CloseClient INVALID_SOCKET. And no working guide found. So I have to Change O.S. another time?:))
P.S. : Oh yes every user DC and no more connection to server after a while.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
edit Filter.bmd in client.
Thanks..
And.. I created /vault (still finishing it to post here) but, everytime i use my new command, or /post (i changed the alias to /anuncio) i receive a GCMsg "Error, function needs a number" i searched all the code, and doesn't exists any entry of this message which justifies the message, any thoughts?
Quote:
Originally Posted by
InsidiousMu
So after I finally solved the DS problem with standb mode with new OS, now the GS fucks the game. WSARECV error WSASEND error, error-L1 : CloseClient INVALID_SOCKET. And no working guide found. So I have to Change O.S. another time?:))
P.S. : Oh yes every user DC and no more connection to server after a while.
Seems like some config isn't right.. double check it!
Also, i noticed every Bow/crossbow in ME inside safezone keep ''jumping'' at her backs, someone know how to fix? .-.
EDIT: Someone know how to check if a player is with vault open ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
wFX
EDIT: Someone know how to check if a player is with vault open ?
Code:
// something else open?
if(gObj[aIndex].m_IfState.type != 6)
{
return;
}
// vault already open
if(gObj[aIndex].m_IfState.type == 6 && gObj[aIndex].m_IfState.state == 1)
{
return;
}
and when you do open the vault, make sure to set state to 1.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@Shatter
you can block packet change nick ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
Code:
// something else open?
if(gObj[aIndex].m_IfState.type != 6)
{
return;
}
// vault already open
if(gObj[aIndex].m_IfState.type == 6 && gObj[aIndex].m_IfState.state == 1)
{
return;
}
and when you do open the vault, make sure to set state to 1.
@Shatter
I want to really thank you, first dev I actually see answering and helping..
About your note Shatter, ''when you do open the vault, make sure to set state to 1", the game client already do that right? because I'll not open the vault, I'll just check if the vault is open to prevent the player to use /vault <number> to easily dupe items like in the old CM/Vault noria way...
Also I found your MsgOutput function to interface custom messages and I'll rewrite to accept custom NPC messages...
Again, very thanks for your support Shatter
EDIT: The vault check worked :) I will implement a 3~ 5 seconds delay between vault changs to prevent accidental dupes, and i'll be done =]
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
@
Shatter
you can block packet change nick ?
I can't investigate unless you provide me the packets to the exploit, all else hack packets are welcome too.
- S
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
I can't investigate unless you provide me the packets to the exploit, all else hack packets are welcome too.
- S
@Shatter
is packet : C1 0F F3 7B 84 FD DE A9 09 29 B8 7E 47 1A 33
you can block and upload update plz ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
@
Shatter
is packet : C1 0F F3 7B 84 FD DE A9 09 29 B8 7E 47 1A 33
you can block and upload update plz ?
this packet should not work anyway(according to .18 dec):
Code:
if ( gObj[aIndex].Connected < PLAYER_LOGGED )
{
LogAdd(lMsg.Get(MSGGET(1, 220)), aIndex, gObj[aIndex].Ip_addr);
CloseClient(aIndex);
return;
}
if ( gObj[aIndex].Connected == PLAYER_PLAYING )
{
LogAddTD("[Anti-HACK][CGPCharacterCreate] Attempted Character Create during GamePlay. [%s][%s]",
gObj[aIndex].AccountID, gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
but the problem is not that you can create character when you even not in the char select screen but the problem is that you can enter "bad characters" so the fix will be:
Code:
switch(protoNum)
{
case 0xF3:
{
if(aRecv[3] == 0x01)
{
if (gObj[aIndex].Connected != 2)
{
Log.Hack("[Anti-Hack][Create Character] [Not in logged state] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
int Length = strlen((char*)&aRecv[4]);
for(int i = 0; i < Length; ++i)
{
if(isalnum(aRecv[4+i] == 0)
{
Log.Hack("[Anti-Hack][Create Character] [Restricted letters] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
}
}
}
break;
}
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@NanoGuy
You can fix crash packets?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@Lejman mind sharing the packets?
There is a filter in client side that excludes special characters and everything you add, but im guessing if you inject them directly to gs it screws up since there's no check for them server side?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
@
NanoGuy
You can fix crash packets?
sure what crash packets?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@Shatter @NanoGuy
I test crash with this packets: C10530F000 to C10530FFFF
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
case 0x30:
if((aRecv[4] + aRecv[3] * 256) > 0 && (aRecv[4] + aRecv[3] * 256) > OBJECT_MIN)
{
AntiHackLog("[Anti-Hack][Cheat Attempt] [Sniffer NPC] (%s)(%s)",gObj->AccountID,gObj->Name);
return;
}
else
InitNPCTalk(aIndex,(aRecv[4] + aRecv[3] * 256));
break;
change in protocol
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
@
Shatter @
NanoGuy
I test crash with this packets: C10530F000 to C10530FFFF
just add this in CNPC::Talk function:
Code:
if ( Monster < 0 || Monster > OBJMAX-1)
{
Log.AddTime("[Anti-Hack][Crash Attempt] [Invalid NPC target number] (%s)(%s)",gObj[aIndex].AccountID,gObj[aIndex].Name);
Log.Hack("[Anti-Hack][Crash Attempt] [Invalid NPC target number] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
anyway @Shatter function missing a lot of checks with seems the original has
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@NanoGuy
you can block packet open guild ?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
@
NanoGuy
you can block packet open guild ?
yes post it here
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
nanoguy
yes post it here
c1 2c 55 dc 26 a9 aa 09 df fa d0 a0 9f 9f ff 34 4a fd fd 9f 0a 90 ff 9f ad dd ff 44 a7 f6 1e 4c eb 86 bc 3f fa 90 fa a0 9f 1c a6 54
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
c1 2c 55 dc 26 a9 aa 09 df fa d0 a0 9f 9f ff 34 4a fd fd 9f 0a 90 ff 9f ad dd ff 44 a7 f6 1e 4c eb 86 bc 3f fa 90 fa a0 9f 1c a6 54
add this:
Code:
switch(protoNum)
{
case 0x55:
{
if (gObj[aIndex].Connected != 3)
{
Log.Hack("[Anti-Hack][Create Guild] [Not in playing state] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
int Length = strlen((char*)&aRecv[4]);
for(int i = 0; i < Length; ++i)
{
if(isalnum(aRecv[4+i] == 0)
{
Log.Hack("[Anti-Hack][Create Guild] [Restricted letters] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
}
}
break;
}
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
NanoGuy
add this:
Code:
switch(protoNum)
{
case 0x55:
{
if (gObj[aIndex].Connected != 3)
{
Log.Hack("[Anti-Hack][Create Guild] [Not in playing state] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
int Length = strlen(&aRecv[5]);
for(int i = 5; i < Length; ++i)
{
if(isalnum(aRecv[i] == 0)
{
Log.Hack("[Anti-Hack][Create Guild] [Restricted letters] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
}
}
break
}
Look :
Find : for(int i = 5; i < Length; ++i)
Change : for(int i = 5; i < Length; ++i))
Find : int Length = strlen(&aRecv[5]);
Change : int Length = strlen((char*)&aRecv[5]);
and :
find : break
change : break;
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
Look :
Find : for(int i = 5; i < Length; ++i)
Change : for(int i = 5; i < Length; ++i))
Find : int Length = strlen(&aRecv[5]);
Change : int Length = strlen((char*)&aRecv[5]);
and :
find : break
change : break;
yes that correct
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
NanoGuy
yes that correct
your code no block packets.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
your code no block packets.
check again the edited code
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
NanoGuy
check again the edited code
your code block packet F3 Packet Login
you code not work
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
This:
Quote:
case 0x30:
if((aRecv[4] + aRecv[3] * 256) > 0 && (aRecv[4] + aRecv[3] * 256) > OBJECT_MIN)
{
AntiHackLog("[Anti-Hack][Cheat Attempt] [Sniffer NPC] (%s)(%s)",gObj->AccountID,gObj->Name);
return;
}
else
InitNPCTalk(aIndex,(aRecv[4] + aRecv[3] * 256));
break;
and this:
Quote:
if ( Monster < 0 || Monster > OBJMAX-1)
{
Log.AddTime("[Anti-Hack][Crash Attempt] [Invalid NPC target number] (%s)(%s)",gObj[aIndex].AccountID,gObj[aIndex].Name);
Log.Hack("[Anti-Hack][Crash Attempt] [Invalid NPC target number] (%s)(%s)\n",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
These are the same fixes?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
This:
and this:
These are the same fixes?
my code block
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Lejman
This:
and this:
These are the same fixes?
they are, though the first one is wrong because its comparing the monster number to OBJECT_MIN, which should be OBJECT_MAX as in the second one.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
they are, though the first one is wrong because its comparing the monster number to OBJECT_MIN, which should be OBJECT_MAX as in the second one.
Shatter i post packets you can block and uplaods update?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
8.5.0 revision posted in first page, new stuff among packet hack fixes. make sure to test them and report back if there are any problems.
party gap system is currently only comparing the level of party leader and the player who's trying to join, i'll be developing it further so it checks everyone's level in the party.
- S
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
8.5.0 revision posted in first page, new stuff among packet hack fixes. make sure to test them and report back if there are any problems.
party gap system is currently only comparing the level of party leader and the player who's trying to join, i'll be developing it further so it checks everyone's level in the party.
- S
Excellent work!! :), I will spend enough time testing your files and report bugs, I hope you do not mind my bad English xD
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
8.5.0 revision posted in first page, new stuff among packet hack fixes. make sure to test them and report back if there are any problems.
party gap system is currently only comparing the level of party leader and the player who's trying to join, i'll be developing it further so it checks everyone's level in the party.
- S
Shatter
case 0x41
case 0x40
and 0x50
waht is packet?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
yes recove you right im made mistake but shatter already notice it^^
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Now all crash packets are fixed?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@Shatter
have bug.
Each player gets a player trade that sends Disconnect
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
8.5.0 revision posted in first page, new stuff among packet hack fixes. make sure to test them and report back if there are any problems.
party gap system is currently only comparing the level of party leader and the player who's trying to join, i'll be developing it further so it checks everyone's level in the party.
- S
@Shatter
What do you think to host your source in github? So it's more easily to track what changed from a version to other, help you with bugfixes, pull request to implement features..
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
@Shatter
Hi Shatter ,
you can block packet : C1 0F F3 7B C7 75 EA 99 BA 12 EC 5A 13 4E 77
create character DW no nick
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Any fix for the 0 hp bug?
Ty.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
@
Shatter
have bug.
Each player gets a player trade that sends Disconnect
What do you mean? trading works fine for me.
Are you saying if you use packet hack now it disconnects all?
Quote:
Originally Posted by
InsidiousMu
Any fix for the 0 hp bug?
Ty.
any info on how to reproduce this bug? never had or heard of it before.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
something from me
Code:
SetRRetn(0x00404886); // HACK TOOL DC Fix
SetByte(0x004D7FE1,0xE9);
SetByte(0x004D7FE2,0x2E);
SetByte(0x004D7FE3,0x01);
SetByte(0x004D7FE4,0x00);
SetByte(0x004D7FE6,0x90);
SetNop(0x00429711,8);//Hp Potion Fix
SetNop(0x004D304E,8);//Mp Potion Fix
void DCBugFixes()
{
if (GetPrivateProfileInt("Fix" ,"FixDCBug",1, Fixes_Path)){
unsigned char DCBug[] = {0xE9,0x2F,0x01,0x00,0x00,0x90};
memcpy ((int*)0x0043183F, DCBug, sizeof(DCBug));
return;
}
}
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Sometimes after log in to character, reset, dying in pvp or from monster you re spawn with 0 hp, pots won't increase your hp, after several switch char or dying for several times, hp get to 1 and potions will work.
Hope it's enough details.
Ty.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
InsidiousMu
Sometimes after log in to character, reset, dying in pvp or from monster you re spawn with 0 hp, pots won't increase your hp, after several switch char or dying for several times, hp get to 1 and potions will work.
Hope it's enough details.
Ty.
this problem comes from /reset function
if bug the tables in db to - stats thats why maybe you got problems have you checked this?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
The bug appears suddenly, not just after reset.
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
What do you mean? trading works fine for me.
Are you saying if you use packet hack now it disconnects all?
any info on how to reproduce this bug? never had or heard of it before.
packet 0x36
i send trade to player i get dc
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
@
Shatter
Hi Shatter ,
you can block packet : C1 0F F3 7B C7 75 EA 99 BA 12 EC 5A 13 4E 77
create character DW no nick
fix:
Code:
case 0xF3:
if(aRecv[3] == 0x01)
{
int Namelength = strlen((char*)&aRecv[4]);
if(NameLength > 0)
{
for(int i = 0; i < Namelength);
++i)
{
if(isalnum(aRecv[4 + i]) == 0)
{
Log.AddTime("[Anti-Hack][Crash Attempt] [Create Character] (%s)(%s)",gObj[aIndex].AccountID,gObj[aIndex].Name);
Log.Hack("[Anti-Hack][Crash Attempt] [Create Character] (%s)(%s)",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
}
}
else
{
Log.AddTime("[Anti-Hack][Crash Attempt] [Create Character] (%s)(%s)",gObj[aIndex].AccountID,gObj[aIndex].Name);
Log.Hack("[Anti-Hack][Crash Attempt] [Create Character] (%s)(%s)",gObj[aIndex].AccountID,gObj[aIndex].Name);
CloseClient(aIndex);
return;
}
}
break;
}
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Recove
packet 0x36
i send trade to player i get dc
I tested this and don't get dc when I send Trade to my second account from first account and back.
P.S.
There is a chance that in these areas showed you what is the vip? Or where I can change this text?
http://puu.sh/bR12m/f80c8e1281.jpg
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
it is possible but requires some work, the left one is in message_kor.wtf and right one in text.bmd, client side.
oh and i'll be posting the sources on github from now on, when i get it up running.
- S
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Quote:
Originally Posted by
Shatter
it is possible but requires some work, the left one is in message_kor.wtf and right one in text.bmd, client side.
oh and i'll be posting the sources on github from now on, when i get it up running.
- S
Shatter you you code packet trade npc not fixed
I send regular user Commerce server and I'm getting disconnecting anyone who sends a detachment receives trade
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
I try add configs for Senior Mix but I have a problem.
I found offsets in GSCS and defined in Configurations.h:
Quote:
#define SENIOR_BLESS (0x004AC597)
#define SENIOR_SOUL (0x004AC59D)
#define SENIOR_GUARDIAN (0x004AC5A3)
#define SENIOR_MAXZEN (0x004AC643)
Next I add configs in Configurations.cpp:
Quote:
void SeniorMix(char* File)
{
#if(GS_CASTLE)
BYTE RequireBless;
RequireBless = GetPrivateProfileInt("GameServerInfo","SeniorMixBundleBlessRequired",3,COMMONSERVER_PATH);
*(unsigned char*) SENIOR_BLESS = RequireBless;
BYTE RequireSoul;
RequireSoul = GetPrivateProfileInt("GameServerInfo","SeniorMixBundleSoulRequired",3,COMMONSERVER_PATH);
*(unsigned char*) SENIOR_SOUL = RequireSoul;
BYTE RequireGuardian;
RequireGuardian = GetPrivateProfileInt("GameServerInfo","SeniorMixGuardianRequired",30,COMMONSERVER_PATH);
*(unsigned char*) SENIOR_GUARDIAN = RequireGuardian;
DWORD maxzen;
maxzen = GetPrivateProfileInt("GameServerInfo","SeniorMixZenRequired",1000000000,COMMONSERVER_PATH);
*(unsigned int*) SENIOR_MAXZEN = maxzen;
#endif
}
But always have Mix Failed. How to fix it?
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Shatter you have sources for client? please add calculator caracter , thxx
-
re: [Development] Bug Free Season 2 (Open Source) - 2014 Edition
Shatter, can you check DataServers? Because have problem StandBy.