Fixed bugreport:6035, chars will now start with all stats 1 and 48 status points as for clients 2012 march and beyond.
Did some cleanup at clif.c packet parsing and applied some curly brace love. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16308 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
b6bf1444e5
commit
687550db34
@ -1330,13 +1330,12 @@ int check_char_name(char * name, char * esc_name)
|
|||||||
// Function to create a new character
|
// Function to create a new character
|
||||||
//-----------------------------------
|
//-----------------------------------
|
||||||
#if PACKETVER >= 20120307
|
#if PACKETVER >= 20120307
|
||||||
int make_new_char_sql(struct char_session_data* sd, char* name_, int slot, int hair_color, int hair_style)
|
int make_new_char_sql(struct char_session_data* sd, char* name_, int slot, int hair_color, int hair_style) {
|
||||||
{
|
int str = 1, agi = 1, vit = 1, int_ = 1, dex = 1, luk = 1;
|
||||||
int str = 5, agi = 5, vit = 5, int_ = 5, dex = 5,luk = 5;
|
|
||||||
#else
|
#else
|
||||||
int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style)
|
int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int agi, int vit, int int_, int dex, int luk, int slot, int hair_color, int hair_style) {
|
||||||
{
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char name[NAME_LENGTH];
|
char name[NAME_LENGTH];
|
||||||
char esc_name[NAME_LENGTH*2+1];
|
char esc_name[NAME_LENGTH*2+1];
|
||||||
int char_id, flag;
|
int char_id, flag;
|
||||||
@ -1381,18 +1380,31 @@ int make_new_char_sql(struct char_session_data* sd, char* name_, int str, int ag
|
|||||||
charlog_db, "make new char", sd->account_id, slot, esc_name, str, agi, vit, int_, dex, luk, hair_style, hair_color) )
|
charlog_db, "make new char", sd->account_id, slot, esc_name, str, agi, vit, int_, dex, luk, hair_style, hair_color) )
|
||||||
Sql_ShowDebug(sql_handle);
|
Sql_ShowDebug(sql_handle);
|
||||||
}
|
}
|
||||||
|
#if PACKETVER >= 20120307
|
||||||
//Insert the new char entry to the database
|
//Insert the new char entry to the database
|
||||||
if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
|
if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `status_point`,`str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
|
||||||
"`max_sp`, `sp`, `hair`, `hair_color`, `last_map`, `last_x`, `last_y`, `save_map`, `save_x`, `save_y`) VALUES ("
|
"`max_sp`, `sp`, `hair`, `hair_color`, `last_map`, `last_x`, `last_y`, `save_map`, `save_x`, `save_y`) VALUES ("
|
||||||
"'%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d','%d', '%d','%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d')",
|
"'%d', '%d', '%s', '%d', '%d','%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d','%d', '%d','%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d')",
|
||||||
char_db, sd->account_id , slot, esc_name, start_zeny, str, agi, vit, int_, dex, luk,
|
char_db, sd->account_id , slot, esc_name, start_zeny, 48, str, agi, vit, int_, dex, luk,
|
||||||
(40 * (100 + vit)/100) , (40 * (100 + vit)/100 ), (11 * (100 + int_)/100), (11 * (100 + int_)/100), hair_style, hair_color,
|
(40 * (100 + vit)/100) , (40 * (100 + vit)/100 ), (11 * (100 + int_)/100), (11 * (100 + int_)/100), hair_style, hair_color,
|
||||||
mapindex_id2name(start_point.map), start_point.x, start_point.y, mapindex_id2name(start_point.map), start_point.x, start_point.y) )
|
mapindex_id2name(start_point.map), start_point.x, start_point.y, mapindex_id2name(start_point.map), start_point.x, start_point.y) )
|
||||||
{
|
{
|
||||||
Sql_ShowDebug(sql_handle);
|
Sql_ShowDebug(sql_handle);
|
||||||
return -2; //No, stop the procedure!
|
return -2; //No, stop the procedure!
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
//Insert the new char entry to the database
|
||||||
|
if( SQL_ERROR == Sql_Query(sql_handle, "INSERT INTO `%s` (`account_id`, `char_num`, `name`, `zeny`, `str`, `agi`, `vit`, `int`, `dex`, `luk`, `max_hp`, `hp`,"
|
||||||
|
"`max_sp`, `sp`, `hair`, `hair_color`, `last_map`, `last_x`, `last_y`, `save_map`, `save_x`, `save_y`) VALUES ("
|
||||||
|
"'%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d','%d', '%d','%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d')",
|
||||||
|
char_db, sd->account_id , slot, esc_name, start_zeny, str, agi, vit, int_, dex, luk,
|
||||||
|
(40 * (100 + vit)/100) , (40 * (100 + vit)/100 ), (11 * (100 + int_)/100), (11 * (100 + int_)/100), hair_style, hair_color,
|
||||||
|
mapindex_id2name(start_point.map), start_point.x, start_point.y, mapindex_id2name(start_point.map), start_point.x, start_point.y) )
|
||||||
|
{
|
||||||
|
Sql_ShowDebug(sql_handle);
|
||||||
|
return -2; //No, stop the procedure!
|
||||||
|
}
|
||||||
|
#endif
|
||||||
//Retrieve the newly auto-generated char id
|
//Retrieve the newly auto-generated char id
|
||||||
char_id = (int)Sql_LastInsertId(sql_handle);
|
char_id = (int)Sql_LastInsertId(sql_handle);
|
||||||
//Give the char the default items
|
//Give the char the default items
|
||||||
|
@ -16114,7 +16114,7 @@ static int clif_parse(int fd)
|
|||||||
// check authentification packet to know packet version
|
// check authentification packet to know packet version
|
||||||
packet_ver = clif_guess_PacketVer(fd, 0, &err);
|
packet_ver = clif_guess_PacketVer(fd, 0, &err);
|
||||||
if( err ) {// failed to identify packet version
|
if( err ) {// failed to identify packet version
|
||||||
ShowInfo("clif_parse: Disconnecting session #%d with unknown packet version%s (p:0x%04x|l:%d).\n", fd, (
|
ShowInfo("clif_parse: Disconnecting session #%d with unknown packet version%s (p:0x%04x,l:%d).\n", fd, (
|
||||||
err == 1 ? "" :
|
err == 1 ? "" :
|
||||||
err == 2 ? ", possibly for having an invalid account_id" :
|
err == 2 ? ", possibly for having an invalid account_id" :
|
||||||
err == 3 ? ", possibly for having an invalid char_id." :
|
err == 3 ? ", possibly for having an invalid char_id." :
|
||||||
@ -16170,9 +16170,7 @@ static int clif_parse(int fd)
|
|||||||
|
|
||||||
if( packet_db[packet_ver][cmd].func == clif_parse_debug )
|
if( packet_db[packet_ver][cmd].func == clif_parse_debug )
|
||||||
packet_db[packet_ver][cmd].func(fd, sd);
|
packet_db[packet_ver][cmd].func(fd, sd);
|
||||||
else
|
else if( packet_db[packet_ver][cmd].func != NULL ) {
|
||||||
if( packet_db[packet_ver][cmd].func != NULL )
|
|
||||||
{
|
|
||||||
if( !sd && packet_db[packet_ver][cmd].func != clif_parse_WantToConnection )
|
if( !sd && packet_db[packet_ver][cmd].func != clif_parse_WantToConnection )
|
||||||
; //Only valid packet when there is no session
|
; //Only valid packet when there is no session
|
||||||
else
|
else
|
||||||
@ -16185,37 +16183,27 @@ static int clif_parse(int fd)
|
|||||||
packet_db[packet_ver][cmd].func(fd, sd);
|
packet_db[packet_ver][cmd].func(fd, sd);
|
||||||
}
|
}
|
||||||
#ifdef DUMP_UNKNOWN_PACKET
|
#ifdef DUMP_UNKNOWN_PACKET
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
const char* packet_txt = "save/packet.txt";
|
const char* packet_txt = "save/packet.txt";
|
||||||
FILE* fp;
|
FILE* fp;
|
||||||
|
|
||||||
if((fp = fopen(packet_txt, "a"))!=NULL)
|
if( ( fp = fopen( packet_txt , "a" ) ) != NULL ) {
|
||||||
{
|
if( sd ) {
|
||||||
if( sd )
|
|
||||||
{
|
|
||||||
fprintf(fp, "Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
|
fprintf(fp, "Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf(fp, "Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd);
|
fprintf(fp, "Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteDump(fp, RFIFOP(fd,0), packet_len);
|
WriteDump(fp, RFIFOP(fd,0), packet_len);
|
||||||
fprintf(fp, "\n");
|
fprintf(fp, "\n");
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
ShowError("Failed to write '%s'.\n", packet_txt);
|
ShowError("Failed to write '%s'.\n", packet_txt);
|
||||||
|
|
||||||
// Dump on console instead
|
// Dump on console instead
|
||||||
if( sd )
|
if( sd ) {
|
||||||
{
|
|
||||||
ShowDebug("Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
|
ShowDebug("Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
ShowDebug("Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd);
|
ShowDebug("Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -16454,6 +16442,21 @@ static int packetdb_readdb(void)
|
|||||||
0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
//#0x0880
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
//#0x08C0
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
//#0x0900
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
};
|
};
|
||||||
struct {
|
struct {
|
||||||
void (*func)(int, struct map_session_data *);
|
void (*func)(int, struct map_session_data *);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user