- Modified the party_data structure on the map server to remove some redundant data. Added a party_data structure on the char-server to hold a more complete set of information about parties. Added to the party_member structure the class of each member so that the map server can do the appropiate checks even if the character is on another mapserver/offline. Due to the format changes in the party structure, txt servers will have to wipe their party file... (sql save format has not been changed)

- Added function char_family to check if there's a family state given the three character ids, instead of doing individual checks all the time.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7553 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex
2006-07-06 23:39:24 +00:00
parent a4d0df735d
commit b7fa70b741
15 changed files with 612 additions and 377 deletions

View File

@@ -4408,3 +4408,48 @@ int char_married(int pl1,int pl2) {
else
return 0;
}
int char_family(int pl1,int pl2,int pl3) {
int charid, partnerid, childid;
sprintf (tmp_sql, "SELECT `char_id`,`partner_id`,`child` FROM `%s` WHERE `char_id` IN ('%d','%d','%d')", char_db, pl1, pl2, pl3);
if (mysql_query (&mysql_handle, tmp_sql)) {
ShowSQL("DB error - %s\n",mysql_error(&mysql_handle));
ShowDebug("at %s:%d - %s\n", __FILE__,__LINE__,tmp_sql);
return 0;
}
sql_res = mysql_store_result (&mysql_handle);
if (!sql_res) return 0;
while((sql_row = mysql_fetch_row(sql_res)))
{
charid = atoi(sql_row[0]);
partnerid = atoi(sql_row[1]);
childid = atoi(sql_row[2]);
if (charid == pl1) {
if ((pl2 == partnerid && pl3 == childid) ||
(pl3 == partnerid && pl2 == childid)
) {
mysql_free_result (sql_res);
return 1;
}
}
if(charid == pl2) {
if ((pl1 == partnerid && pl3 == childid) ||
(pl3 == partnerid && pl1 == childid)
) {
mysql_free_result (sql_res);
return 1;
}
}
if(charid == pl3) {
if ((pl1 == partnerid && pl2 == childid) ||
(pl2 == partnerid && pl1 == childid)
) {
mysql_free_result (sql_res);
return 1;
}
}
}
mysql_free_result (sql_res);
return 0;
}