mob_read_sqlskilldb func [CalciumKid]

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15155 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
calciumkid 2011-12-18 01:58:49 +00:00
parent 21d300706a
commit 94483213f9
6 changed files with 6565 additions and 6 deletions

View File

@ -128,9 +128,11 @@ item_db_re_db: item_db_re
item_db2_db: item_db2
mob_db_db: mob_db
mob_db2_db: mob_db2
mob_skill_db_db: mob_skill_db
mob_skill_db2_db: mob_skill_db2
mapreg_db: mapreg
//Use SQL item_db and mob_db for the map server
//Use SQL item_db, mob_db and mob_skill_db for the map server
use_sql_db: no
// Nick for sending mainchat

6385
sql-files/mob_skill_db.sql Normal file

File diff suppressed because it is too large Load Diff

104
sql-files/mob_skill_db2.sql Normal file
View File

@ -0,0 +1,104 @@
#
# Table structure for table `mob_skill_db2`
#
CREATE TABLE IF NOT EXISTS `mob_skill_db2` (
`MOB_ID` smallint(6) NOT NULL,
`INFO` text NOT NULL,
`STATE` text NOT NULL,
`SKILL_ID` smallint(6) NOT NULL,
`SKILL_LV` tinyint(4) NOT NULL,
`RATE` smallint(4) NOT NULL,
`CASTTIME` mediumint(9) NOT NULL,
`DELAY` int(9) NOT NULL,
`CANCELABLE` text NOT NULL,
`TARGET` text NOT NULL,
`CONDITION` text NOT NULL,
`CONDITION_VALUE` text,
`VAL1` mediumint(9) DEFAULT NULL,
`VAL2` mediumint(9) DEFAULT NULL,
`VAL3` mediumint(9) DEFAULT NULL,
`VAL4` mediumint(9) DEFAULT NULL,
`VAL5` mediumint(9) DEFAULT NULL,
`EMOTION` text,
`CHAT` text
) ENGINE=MyISAM;
# Mob Skill Database
#
# Structure of Database:
# INSERT INTO `mob_skill_db2` (`MOB_ID`, `INFO`, `STATE`, `SKILL_ID`, `SKILL_LV`, `RATE`, `CASTTIME`, `DELAY`, `CANCELABLE`, `TARGET`, `CONDITION`, `CONDITION_VALUE`, `VAL1`, `VAL2`, `VAL3`, `VAL4`, `VAL5`, `EMOTION`, `CHAT`);
#
# REPLACE INTO mob_db VALUES(1900, "Valaris@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@AL_TELEPORT", "walk", 26, 1, 500, 0, 5000, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@KN_BRANDISHSPEAR", "attack", 57, 10, 2000, 500, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@MO_BODYRELOCATION", "chase", 264, 1, 200, 200, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_ARMORBRAKE", "attack", 344, 10, 2000, 0, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_CALLSLAVE", "attack", 352, 1, 10000, 0, 30000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_CALLSLAVE", "idle", 352, 1, 10000, 0, 30000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_DARKBREATH", "attack", 202, 5, 2000, 800, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_DARKSTRIKE", "chase", 340, 10, 200, 0, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_GUIDEDATTACK", "attack", 172, 5, 500, 0, 20000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_POWERUP", "attack", 349, 5, 10000, 0, 30000, "yes", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, 6, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_SUMMONSLAVE", "attack", 196, 6, 10000, 700, 10000, "no", "self", "slavele", 3, 1902, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@NPC_SUMMONSLAVE", "idle", 196, 6, 10000, 700, 10000, "no", "self", "slavele", 3, 1902, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@WZ_VERMILION", "attack", 85, 10, 2000, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@WZ_VERMILION", "chase", 85, 10, 200, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1900, "Valaris@WZ_VERMILION", "chase", 85, 10, 500, 500, 2000, "no", "target", "skillused", 18, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_CURSEATTACK", "attack", 181, 3, 500, 800, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_DARKNESSATTACK", "attack", 190, 2, 500, 500, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 6, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_EMOTION", "chase", 197, 1, 20, 0, 5000, "yes", "self", "always", 0, 19, 129, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_EMOTION", "idle", 197, 1, 200, 0, 5000, "yes", "self", "always", 0, 6, 1173, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_EMOTION", "walk", 197, 1, 200, 0, 5000, "yes", "self", "always", 0, 2, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_HALLUCINATION", "attack", 207, 1, 500, 500, 5000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@NPC_HALLUCINATION", "chase", 207, 1, 50, 500, 5000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1901, "Valaris's Worshipper@SA_DISPELL", "attack", 289, 1, 0, 0, 30000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@AL_TELEPORT", "walk", 26, 1, 500, 0, 5000, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@KN_BRANDISHSPEAR", "attack", 57, 10, 2000, 500, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@MO_BODYRELOCATION", "chase", 264, 1, 200, 200, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@NPC_ARMORBRAKE", "attack", 344, 10, 2000, 0, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@NPC_DARKBREATH", "attack", 202, 5, 2000, 800, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@NPC_DARKSTRIKE", "chase", 340, 10, 200, 0, 1000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@NPC_GUIDEDATTACK", "attack", 172, 5, 500, 0, 20000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@NPC_POWERUP", "attack", 349, 5, 10000, 0, 30000, "yes", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, 6, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@WZ_VERMILION", "attack", 85, 10, 2000, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@WZ_VERMILION", "chase", 85, 10, 200, 500, 2000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1902, "MC Cameri@WZ_VERMILION", "chase", 85, 10, 500, 500, 2000, "no", "target", "skillused", 18, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@AC_DOUBLE", "attack", 46, 10, 500, 1000, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@AC_SHOWER", "attack", 47, 8, 2000, 1000, 5000, "no", "target", "attackpcgt", 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@BS_MAXIMIZE", "chase", 114, 5, 500, 1000, 5000, "no", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@BS_MAXIMIZE", "attack", 114, 5, 500, 1000, 5000, "no", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_AGIUP", "chase", 350, 5, 2500, 0, 5000, "no", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_POWERUP", "attack", 349, 5, 500, 0, 30000, "yes", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@SN_SHARPSHOOTING", "attack", 382, 5, 500, 1000, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@HT_SKIDTRAP", "idle", 115, 5, 50, 0, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, 29, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@HT_FREEZINGTRAP", "idle", 120, 5, 50, 0, 300000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@HT_FREEZINGTRAP", "idle", 121, 5, 50, 0, 300000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@AC_CHARGEARROW", "attack", 148, 1, 500, 0, 5000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@HT_FLASHER", "idle", 120, 5, 50, 0, 300000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_SUMMONSLAVE", "idle", 196, 5, 10000, 2000, 120000, "no", "self", "slavele", 1, 1659, 1660, 1661, 1662, 1663, 0, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_CALLSLAVE", "attack", 352, 1, 2000, 0, 10000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_CALLSLAVE", "idle", 352, 1, 2000, 0, 10000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_CHANGEWATER", "attack", 162, 1, 10000, 2000, 600000, "no", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@NPC_CHANGETELEKINESIS", "attack", 169, 1, 500, 2000, 5000, "no", "self", "myhpltmaxrate", 10, NULL, NULL, NULL, NULL, NULL, 7, NULL);
# REPLACE INTO mob_db VALUES(1903, "Poki#3@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1921, "Easter Bunny@NPC_SUMMONSLAVE", "attack", 196, 5, 10000, 3000, 10000, "no", "self", "slavele", 2, 1063, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1921, "Easter Bunny@NPC_SUMMONSLAVE", "idle", 196, 5, 5000, 2000, 40000, "no", "self", "always", 2, 1920, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@AL_HEAL", "idle", 28, 10, 10000, 0, 2000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, 4, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@AL_HEAL", "walk", 28, 10, 10000, 0, 2000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, 4, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@AL_TELEPORT", "attack", 26, 1, 1000, 5000, 60000, "no", "self", "myhpltmaxrate", 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@AL_TELEPORT", "idle", 26, 1, 10000, 0, 0, "yes", "self", "rudeattacked", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@NPC_DARKBLESSING", "attack", 203, 1, 1000, 2000, 5000, "no", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, 18, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@NPC_SUMMONSLAVE", "attack", 196, 16, 10000, 2000, 10000, "no", "self", "slavele", 3, 1491, 1431, 1433, NULL, NULL, 18, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@NPC_SUMMONSLAVE", "idle", 196, 16, 10000, 2000, 10000, "no", "self", "slavele", 3, 1491, 1431, 1433, NULL, NULL, 18, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@RG_INTIMIDATE", "attack", 219, 5, 1000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@RG_STRIPARMOR", "attack", 217, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@RG_STRIPHELM", "attack", 218, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@RG_STRIPSHIELD", "attack", 216, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(1239, "Fire Poring@RG_STRIPWEAPON", "attack", 215, 5, 2000, 0, 3000, "yes", "target", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(3014, "Halloween Whisper@AS_CLOAKING", "idle", 135, 1, 2000, 200, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(3014, "Halloween Whisper@AS_CLOAKING", "chase", 135, 1, 2000, 200, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(3014, "Halloween Whisper@NPC_EMOTION", "idle", 197, 1, 2000, 0, 5000, "yes", "self", "always", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
# REPLACE INTO mob_db VALUES(3014, "Halloween Whisper@NPC_EMOTION", "chase", 197, 1, 200, 0, 5000, "yes", "self", "always", 0, 19, 0x81, NULL, NULL, NULL, NULL, NULL);

View File

@ -71,6 +71,8 @@ char item_db2_db[32] = "item_db2";
char item_db_re_db[32] = "item_db_re";
char mob_db_db[32] = "mob_db";
char mob_db2_db[32] = "mob_db2";
char mob_skill_db_db[32] = "mob_skill_db";
char mob_skill_db2_db[32] = "mob_skill_db2";
// log database
char log_db_ip[32] = "127.0.0.1";

View File

@ -733,6 +733,8 @@ extern char item_db2_db[32];
extern char item_db_re_db[32];
extern char mob_db_db[32];
extern char mob_db2_db[32];
extern char mob_skill_db_db[32];
extern char mob_skill_db2_db[32];
#endif /* not TXT_ONLY */

View File

@ -4266,6 +4266,66 @@ static void mob_readskilldb(void)
sv_readdb(db_path, filename[fi], ',', 19, 19, -1, &mob_parse_row_mobskilldb);
}
}
#ifndef TXT_ONLY
/**
* mob_skill_db table reading [CalciumKid]
* not overly sure if this is all correct
* seems to work though...
*/
static int mob_read_sqlskilldb(void)
{
const char* mob_skill_db_name[] = { mob_skill_db_db, mob_skill_db2_db };
int fi;
if( battle_config.mob_skill_rate == 0 )
{
ShowStatus("Mob skill use disabled. Not reading mob skills.\n");
return 0;
}
for( fi = 0; fi < ARRAYLENGTH(mob_skill_db_name); ++fi )
{
uint32 lines = 0, count = 0;
// retrieve all rows from the mob skill database
if( SQL_ERROR == Sql_Query(mmysql_handle, "SELECT * FROM `%s`", mob_skill_db_name[fi]) )
{
Sql_ShowDebug(mmysql_handle);
continue;
}
// process rows one by one
while( SQL_SUCCESS == Sql_NextRow(mmysql_handle) )
{
// wrap the result into a TXT-compatible format
char* str[19];
char* dummy = "";
int i;
++lines;
for( i = 0; i < 19; ++i )
{
Sql_GetData(mmysql_handle, i, &str[i], NULL);
if( str[i] == NULL ) str[i] = dummy; // get rid of NULL columns
}
if (!mob_parse_row_mobskilldb(str, 19, count))
continue;
count++;
}
// free the query result
Sql_FreeResult(mmysql_handle);
ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", count, mob_skill_db_name[fi]);
count = 0;
}
return 0;
}
#endif /* not TXT_ONLY */
/*==========================================
* mob_race2_db.txt reading
*------------------------------------------*/
@ -4294,19 +4354,23 @@ static bool mob_readdb_race2(char* fields[], int columns, int current)
return true;
}
/**
* read all mob-related databases
*/
static void mob_load(void)
{
#ifndef TXT_ONLY
if(db_use_sqldbs)
if(db_use_sqldbs) {
mob_read_sqldb();
else
mob_read_sqlskilldb();
} else {
#endif /* TXT_ONLY */
mob_readdb();
mob_readdb();
mob_readskilldb();
}
sv_readdb(db_path, "mob_avail.txt", ',', 2, 12, -1, &mob_readdb_mobavail);
mob_read_randommonster();
mob_readchatdb();
mob_readskilldb();
sv_readdb(db_path, "mob_race2_db.txt", ',', 2, 20, -1, &mob_readdb_race2);
}