* Removed the conf sql code for now. Maybe will continue later with that project.
Lowered the irc keepalive timer, and added some checks for use_irc that should have been there. Added a return line \n to the beginning of the title screen. [Valaris] git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5241 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
66a453cc74
commit
ad49453e0e
@ -5,6 +5,9 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
|
||||
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
||||
|
||||
2006/02/09
|
||||
* Removed the conf sql code for now. Maybe will continue later with that project.
|
||||
Lowered the irc keepalive timer, and added some checks for use_irc that should have been there.
|
||||
Added a return line \n to the beginning of the title screen. [Valaris]
|
||||
* Added function mob_respawn which makes a mob respawn on spot 3 seconds
|
||||
after defeat if SC_KAIZEL is active. [Skotlex]
|
||||
* Modified NPC_REBIRTH to use Kaizel level 1. [Skotlex]
|
||||
|
@ -159,6 +159,7 @@ static void display_title(void)
|
||||
{
|
||||
//The clearscreeen is usually more of an annoyance than anything else... [Skotlex]
|
||||
// ClearScreen(); // clear screen and go up/left (0, 0 position in text)
|
||||
ShowMessage("\n");
|
||||
ShowMessage(""CL_WTBL" (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)"CL_CLL""CL_NORMAL"\n"); // white writing (37) on blue background (44), \033[K clean until end of file
|
||||
ShowMessage(""CL_XXBL" ("CL_BT_YELLOW" (c)2005 eAthena Development Team presents "CL_XXBL")"CL_CLL""CL_NORMAL"\n"); // yellow writing (33)
|
||||
ShowMessage(""CL_XXBL" ("CL_BOLD" ______ __ __ "CL_XXBL")"CL_CLL""CL_NORMAL"\n"); // 1: bold char, 0: normal char
|
||||
|
@ -149,7 +149,7 @@ int irc_keepalive_timer(int tid, unsigned int tick, int id, int data)
|
||||
|
||||
sprintf(send_string,"PRIVMSG %s : ", irc_nick);
|
||||
irc_send(send_string);
|
||||
add_timer(gettick() + 45000, irc_keepalive_timer, 0, 0);
|
||||
add_timer(gettick() + 30000, irc_keepalive_timer, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -270,6 +270,6 @@ void do_init_irc(void)
|
||||
|
||||
add_timer_func_list(irc_connect_timer, "irc_connect_timer");
|
||||
add_timer_func_list(irc_keepalive_timer, "irc_keepalive_timer");
|
||||
add_timer(gettick() + 45000, irc_keepalive_timer, 0, 0);
|
||||
add_timer(gettick() + 30000, irc_keepalive_timer, 0, 0);
|
||||
}
|
||||
|
||||
|
@ -92,35 +92,6 @@ char item_db2_db[32] = "item_db2";
|
||||
char mob_db_db[32] = "mob_db";
|
||||
char mob_db2_db[32] = "mob_db2";
|
||||
|
||||
// SQL for databases not supported yet. [Valaris]
|
||||
int db_use_newsqldbs = 0;
|
||||
|
||||
char abra_sqldb[32]="abra_db";
|
||||
char attr_fix_sqldb[32]="attr_fix";
|
||||
char cast_sqldb[32]="cast_db";
|
||||
char castle_sqldb[32]="castle_db";
|
||||
char create_arrow_sqldb[32]="create_arrow_db";
|
||||
char exp_sqldb[32]="exp";
|
||||
char exp_guild_sqldb[32]="exp_guild";
|
||||
char item_bluebox_sqldb[32]="item_bluebox";
|
||||
char item_cardalbum_sqldb[32]="item_cardalbum";
|
||||
char item_giftbox_sqldb[32]="item_giftbox";
|
||||
char item_scroll_sqldb[32]="item_scroll";
|
||||
char item_violetbox_sqldb[32]="item_violetbox";
|
||||
char job_sqldb1[32]="job_db1";
|
||||
char mob_boss_sqldb[32]="mob_boss";
|
||||
char mob_branch_sqldb[32]="mob_branch";
|
||||
char mob_poring_sqldb[32]="mob_poring";
|
||||
char mob_skill_sqldb[32]="mob_skill_db";
|
||||
char pet_sqldb[32]="pet_db";
|
||||
char produce_sqldb[32]="produce_db";
|
||||
char refine_sqldb[32]="refine_db";
|
||||
char size_fix_sqldb[32]="size_fix";
|
||||
char skill_sqldb[32]="skill_db";
|
||||
char skill_require_sqldb[32]="skill_require_db";
|
||||
char skill_tree_sqldb[32]="skill_tree";
|
||||
// End [Valaris]
|
||||
|
||||
char login_db[32] = "login";
|
||||
char login_db_level[32] = "level";
|
||||
char login_db_account_id[32] = "account_id";
|
||||
@ -3467,9 +3438,6 @@ int inter_config_read(char *cfgName)
|
||||
} else if(strcmpi(w1,"use_sql_db")==0){
|
||||
db_use_sqldbs = battle_config_switch(w2);
|
||||
ShowStatus ("Using SQL dbs: %s\n",w2);
|
||||
} else if(strcmpi(w1,"use_new_sql_db")==0){
|
||||
db_use_newsqldbs = battle_config_switch(w2);
|
||||
ShowStatus ("Using New SQL dbs: %s\n",w2);
|
||||
//Login Server SQL DB
|
||||
} else if(strcmpi(w1,"login_server_ip")==0){
|
||||
strcpy(login_server_ip, w2);
|
||||
@ -3750,6 +3718,7 @@ void do_final(void) {
|
||||
do_final_pet();
|
||||
do_final_mob();
|
||||
do_final_msg();
|
||||
if(use_irc)
|
||||
do_final_irc();
|
||||
|
||||
map_getallusers(NULL); //Clear the memory allocated for this array.
|
||||
@ -3947,6 +3916,7 @@ int do_init(int argc, char *argv[]) {
|
||||
add_timer_func_list(map_removemobs_timer, "map_removemobs_timer");
|
||||
add_timer_interval(gettick()+1000, map_freeblock_timer, 0, 0, 60*1000);
|
||||
|
||||
if(use_irc)
|
||||
do_init_irc();
|
||||
do_init_atcommand();
|
||||
do_init_battle();
|
||||
|
@ -1365,35 +1365,6 @@ extern char mob_db_db[32];
|
||||
extern char mob_db2_db[32];
|
||||
extern char login_db[32];
|
||||
|
||||
// SQL for databases not supported yet. [Valaris]
|
||||
extern int db_use_newsqldbs;
|
||||
|
||||
extern char abra_sqldb[32];
|
||||
extern char attr_fix_sqldb[32];
|
||||
extern char cast_sqldb[32];
|
||||
extern char castle_sqldb[32];
|
||||
extern char create_arrow_sqldb[32];
|
||||
extern char exp_sqldb[32];
|
||||
extern char exp_guild_sqldb[32];
|
||||
extern char item_bluebox_sqldb[32];
|
||||
extern char item_cardalbum_sqldb[32];
|
||||
extern char item_giftbox_sqldb[32];
|
||||
extern char item_scroll_sqldb[32];
|
||||
extern char item_violetbox_sqldb[32];
|
||||
extern char job_sqldb1[32];
|
||||
extern char mob_boss_sqldb[32];
|
||||
extern char mob_branch_sqldb[32];
|
||||
extern char mob_poring_sqldb[32];
|
||||
extern char mob_skill_sqldb[32];
|
||||
extern char pet_sqldb[32];
|
||||
extern char produce_sqldb[32];
|
||||
extern char refine_sqldb[32];
|
||||
extern char size_fix_sqldb[32];
|
||||
extern char skill_sqldb[32];
|
||||
extern char skill_require_sqldb[32];
|
||||
extern char skill_tree_sqldb[32];
|
||||
// End [Valaris]
|
||||
|
||||
extern char login_db_level[32];
|
||||
extern char login_db_account_id[32];
|
||||
|
||||
|
408
src/map/skill.c
408
src/map/skill.c
@ -11719,408 +11719,6 @@ int skill_readdb(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
// SQL Skill database reading [Valaris]
|
||||
#ifndef TXT_ONLY
|
||||
int skill_read_sqldb(void)
|
||||
{
|
||||
const char unknown_str[NAME_LENGTH] ="unknown";
|
||||
int i,j,k,l,m;
|
||||
FILE *fp;
|
||||
char line[1024],path[1024],*p;
|
||||
char *filename[]={"produce_db.txt","produce_db2.txt"};
|
||||
long unsigned int ln = 0;
|
||||
|
||||
/* スキルデ?タベ?ス */
|
||||
memset(skill_db,0,sizeof(skill_db));
|
||||
|
||||
//For easier handling of converting. [Skotlex]
|
||||
#define TO_INT(a) (sql_row[a]==NULL?0:atoi(sql_row[a]))
|
||||
#define TO_STR(a) (sql_row[a]==NULL?unknown_str:sql_row[a])
|
||||
sprintf (tmp_sql, "SELECT * FROM `%s`", skill_sqldb);
|
||||
if (mysql_query(&mmysql_handle, tmp_sql)) {
|
||||
ShowSQL("DB error (%s) - %s\n", skill_sqldb, mysql_error(&mmysql_handle));
|
||||
ShowDebug("at %s:%d - %s\n", __FILE__,__LINE__,tmp_sql);
|
||||
return 1;
|
||||
}
|
||||
sql_res = mysql_store_result(&mmysql_handle);
|
||||
if (sql_res) {
|
||||
while((sql_row = mysql_fetch_row(sql_res))){
|
||||
i=TO_INT(0);
|
||||
if (i>=10000 && i<10015) // for guild skills [Celest]
|
||||
i -= 9500;
|
||||
else if(i<=0 || i>MAX_SKILL_DB)
|
||||
continue;
|
||||
|
||||
ln++;
|
||||
|
||||
skill_split_atoi(sql_row[1],skill_db[i].range);
|
||||
skill_db[i].hit=TO_INT(2);
|
||||
skill_db[i].inf=TO_INT(3);
|
||||
skill_db[i].pl=TO_INT(4);
|
||||
skill_db[i].nk=TO_INT(5);
|
||||
skill_db[i].max=TO_INT(6);
|
||||
skill_split_atoi(sql_row[7],skill_db[i].num);
|
||||
|
||||
if(strcmpi(TO_STR(8),"yes") == 0)
|
||||
skill_db[i].castcancel=1;
|
||||
else
|
||||
skill_db[i].castcancel=0;
|
||||
skill_db[i].cast_def_rate=TO_INT(9);
|
||||
skill_db[i].inf2=TO_INT(10);
|
||||
skill_db[i].maxcount=TO_INT(11);
|
||||
if(strcmpi(TO_STR(12),"weapon") == 0)
|
||||
skill_db[i].skill_type=BF_WEAPON;
|
||||
else if(strcmpi(TO_STR(12),"magic") == 0)
|
||||
skill_db[i].skill_type=BF_MAGIC;
|
||||
else if(strcmpi(TO_STR(12),"misc") == 0)
|
||||
skill_db[i].skill_type=BF_MISC;
|
||||
else
|
||||
skill_db[i].skill_type=0;
|
||||
skill_split_atoi(sql_row[13],skill_db[i].blewcount);
|
||||
|
||||
for (j = 0; skill_names[j].id != 0; j++)
|
||||
if (skill_names[j].id == i) {
|
||||
skill_db[i].name = skill_names[j].name;
|
||||
skill_db[i].desc = skill_names[j].desc;
|
||||
break;
|
||||
}
|
||||
}
|
||||
mysql_free_result(sql_res);
|
||||
ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", ln, skill_sqldb);
|
||||
ln=0;
|
||||
}
|
||||
|
||||
sprintf (tmp_sql, "SELECT * FROM `%s`", skill_require_sqldb);
|
||||
if (mysql_query(&mmysql_handle, tmp_sql)) {
|
||||
ShowSQL("DB error (%s) - %s\n", skill_require_sqldb, mysql_error(&mmysql_handle));
|
||||
ShowDebug("at %s:%d - %s\n", __FILE__,__LINE__,tmp_sql);
|
||||
return 1;
|
||||
}
|
||||
sql_res = mysql_store_result(&mmysql_handle);
|
||||
if (sql_res) {
|
||||
while((sql_row = mysql_fetch_row(sql_res))){
|
||||
i=TO_INT(0);
|
||||
if (i>=10000 && i<10015) // for guild skills [Celest]
|
||||
i -= 9500;
|
||||
else if(i<=0 || i>MAX_SKILL_DB)
|
||||
continue;
|
||||
|
||||
ln++;
|
||||
|
||||
skill_split_atoi(sql_row[1],skill_db[i].hp);
|
||||
skill_split_atoi(sql_row[2],skill_db[i].mhp);
|
||||
skill_split_atoi(sql_row[3],skill_db[i].sp);
|
||||
skill_split_atoi(sql_row[4],skill_db[i].hp_rate);
|
||||
skill_split_atoi(sql_row[5],skill_db[i].sp_rate);
|
||||
skill_split_atoi(sql_row[6],skill_db[i].zeny);
|
||||
|
||||
p = sql_row[7];
|
||||
for(j=0;j<32;j++){
|
||||
l = atoi(p);
|
||||
if (l==99) {
|
||||
skill_db[i].weapon = 0xffffffff;
|
||||
break;
|
||||
}
|
||||
else
|
||||
skill_db[i].weapon |= 1<<l;
|
||||
p=strchr(p,':');
|
||||
if(!p)
|
||||
break;
|
||||
p++;
|
||||
}
|
||||
|
||||
if( strcmpi(TO_STR(8),"hiding")==0 ) skill_db[i].state=ST_HIDING;
|
||||
else if( strcmpi(TO_STR(8),"cloaking")==0 ) skill_db[i].state=ST_CLOAKING;
|
||||
else if( strcmpi(TO_STR(8),"hidden")==0 ) skill_db[i].state=ST_HIDDEN;
|
||||
else if( strcmpi(TO_STR(8),"riding")==0 ) skill_db[i].state=ST_RIDING;
|
||||
else if( strcmpi(TO_STR(8),"falcon")==0 ) skill_db[i].state=ST_FALCON;
|
||||
else if( strcmpi(TO_STR(8),"cart")==0 ) skill_db[i].state=ST_CART;
|
||||
else if( strcmpi(TO_STR(8),"shield")==0 ) skill_db[i].state=ST_SHIELD;
|
||||
else if( strcmpi(TO_STR(8),"sight")==0 ) skill_db[i].state=ST_SIGHT;
|
||||
else if( strcmpi(TO_STR(8),"explosionspirits")==0 ) skill_db[i].state=ST_EXPLOSIONSPIRITS;
|
||||
else if( strcmpi(TO_STR(8),"cartboost")==0 ) skill_db[i].state=ST_CARTBOOST;
|
||||
else if( strcmpi(TO_STR(8),"recover_weight_rate")==0 ) skill_db[i].state=ST_RECOV_WEIGHT_RATE;
|
||||
else if( strcmpi(TO_STR(8),"move_enable")==0 ) skill_db[i].state=ST_MOVE_ENABLE;
|
||||
else if( strcmpi(TO_STR(8),"water")==0 ) skill_db[i].state=ST_WATER;
|
||||
else skill_db[i].state=ST_NONE;
|
||||
|
||||
skill_split_atoi(sql_row[9],skill_db[i].spiritball);
|
||||
skill_db[i].itemid[0]=TO_INT(10);
|
||||
skill_db[i].amount[0]=TO_INT(11);
|
||||
skill_db[i].itemid[1]=TO_INT(12);
|
||||
skill_db[i].amount[1]=TO_INT(13);
|
||||
skill_db[i].itemid[2]=TO_INT(14);
|
||||
skill_db[i].amount[2]=TO_INT(15);
|
||||
skill_db[i].itemid[3]=TO_INT(16);
|
||||
skill_db[i].amount[3]=TO_INT(17);
|
||||
skill_db[i].itemid[4]=TO_INT(18);
|
||||
skill_db[i].amount[4]=TO_INT(19);
|
||||
skill_db[i].itemid[5]=TO_INT(20);
|
||||
skill_db[i].amount[5]=TO_INT(21);
|
||||
skill_db[i].itemid[6]=TO_INT(22);
|
||||
skill_db[i].amount[6]=TO_INT(23);
|
||||
skill_db[i].itemid[7]=TO_INT(24);
|
||||
skill_db[i].amount[7]=TO_INT(25);
|
||||
skill_db[i].itemid[8]=TO_INT(26);
|
||||
skill_db[i].amount[8]=TO_INT(27);
|
||||
skill_db[i].itemid[9]=TO_INT(28);
|
||||
skill_db[i].amount[9]=TO_INT(29);
|
||||
}
|
||||
mysql_free_result(sql_res);
|
||||
ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", ln, skill_require_sqldb);
|
||||
ln=0;
|
||||
}
|
||||
|
||||
sprintf (tmp_sql, "SELECT * FROM `%s`", cast_sqldb);
|
||||
if (mysql_query(&mmysql_handle, tmp_sql)) {
|
||||
ShowSQL("DB error (%s) - %s\n", cast_sqldb, mysql_error(&mmysql_handle));
|
||||
ShowDebug("at %s:%d - %s\n", __FILE__,__LINE__,tmp_sql);
|
||||
return 1;
|
||||
}
|
||||
sql_res = mysql_store_result(&mmysql_handle);
|
||||
if (sql_res) {
|
||||
while((sql_row = mysql_fetch_row(sql_res))){
|
||||
i=TO_INT(0);
|
||||
if (i>=10000 && i<10015) // for guild skills [Celest]
|
||||
i -= 9500;
|
||||
else if(i<=0 || i>MAX_SKILL_DB)
|
||||
continue;
|
||||
|
||||
ln++;
|
||||
|
||||
skill_split_atoi(sql_row[1],skill_db[i].cast);
|
||||
skill_split_atoi(sql_row[2],skill_db[i].delay);
|
||||
skill_split_atoi(sql_row[3],skill_db[i].upkeep_time);
|
||||
skill_split_atoi(sql_row[4],skill_db[i].upkeep_time2);
|
||||
}
|
||||
mysql_free_result(sql_res);
|
||||
ShowStatus("Done reading '"CL_WHITE"%lu"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n", ln, cast_sqldb);
|
||||
ln=0;
|
||||
}
|
||||
|
||||
/* スキルユニットデ?[タベ?[ス */
|
||||
|
||||
sprintf(path, "%s/skill_unit_db.txt", db_path);
|
||||
fp=fopen(path,"r");
|
||||
if (fp==NULL) {
|
||||
ShowError("can't read %s\n", path);
|
||||
return 1;
|
||||
}
|
||||
k = 0;
|
||||
while (fgets(line,1020,fp)) {
|
||||
char *split[50];
|
||||
if (line[0]=='/' && line[1]=='/')
|
||||
continue;
|
||||
j = skill_split_str(line,split,8);
|
||||
if (split[7]==NULL || j<8)
|
||||
continue;
|
||||
|
||||
i=atoi(split[0]);
|
||||
if (i>=10000 && i<10015) // for guild skills [Celest]
|
||||
i -= 9500;
|
||||
else if(i<=0 || i>MAX_SKILL_DB)
|
||||
continue;
|
||||
skill_db[i].unit_id[0] = strtol(split[1],NULL,16);
|
||||
skill_db[i].unit_id[1] = strtol(split[2],NULL,16);
|
||||
skill_split_atoi(split[3],skill_db[i].unit_layout_type);
|
||||
skill_db[i].unit_range = atoi(split[4]);
|
||||
skill_db[i].unit_interval = atoi(split[5]);
|
||||
|
||||
if( strcmpi(split[6],"noenemy")==0 ) skill_db[i].unit_target=BCT_NOENEMY;
|
||||
else if( strcmpi(split[6],"friend")==0 ) skill_db[i].unit_target=BCT_NOENEMY;
|
||||
else if( strcmpi(split[6],"party")==0 ) skill_db[i].unit_target=BCT_PARTY;
|
||||
else if( strcmpi(split[6],"ally")==0 ) skill_db[i].unit_target=BCT_PARTY|BCT_GUILD;
|
||||
else if( strcmpi(split[6],"all")==0 ) skill_db[i].unit_target=BCT_ALL;
|
||||
else if( strcmpi(split[6],"enemy")==0 ) skill_db[i].unit_target=BCT_ENEMY;
|
||||
else if( strcmpi(split[6],"self")==0 ) skill_db[i].unit_target=BCT_SELF;
|
||||
else if( strcmpi(split[6],"noone")==0 ) skill_db[i].unit_target=BCT_NOONE;
|
||||
else skill_db[i].unit_target = strtol(split[6],NULL,16);
|
||||
|
||||
skill_db[i].unit_flag = strtol(split[7],NULL,16);
|
||||
if (skill_db[i].unit_flag&UF_DEFNOTENEMY && battle_config.defnotenemy)
|
||||
skill_db[i].unit_target=BCT_NOENEMY;
|
||||
|
||||
//By default, target just characters.
|
||||
skill_db[i].unit_target |= BL_CHAR;
|
||||
if (skill_db[i].unit_flag&UF_NOPC)
|
||||
skill_db[i].unit_target &= ~BL_PC;
|
||||
if (skill_db[i].unit_flag&UF_NOMOB)
|
||||
skill_db[i].unit_target &= ~BL_MOB;
|
||||
if (skill_db[i].unit_flag&UF_SKILL)
|
||||
skill_db[i].unit_target |= BL_SKILL;
|
||||
|
||||
k++;
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n",path);
|
||||
skill_init_unit_layout();
|
||||
|
||||
/* ?サ造系スキルデ?タベ?ス */
|
||||
memset(skill_produce_db,0,sizeof(skill_produce_db));
|
||||
for(m=0;m<2;m++){
|
||||
sprintf(path, "%s/%s", db_path, filename[m]);
|
||||
fp=fopen(path,"r");
|
||||
if(fp==NULL){
|
||||
if(m>0)
|
||||
continue;
|
||||
ShowError("can't read %s\n",path);
|
||||
return 1;
|
||||
}
|
||||
k=0;
|
||||
while(fgets(line,1020,fp)){
|
||||
char *split[6 + MAX_PRODUCE_RESOURCE * 2];
|
||||
int x,y;
|
||||
if(line[0]=='/' && line[1]=='/')
|
||||
continue;
|
||||
memset(split,0,sizeof(split));
|
||||
j = skill_split_str(line,split,(3 + MAX_PRODUCE_RESOURCE * 2));
|
||||
if(split[0]==0) //fixed by Lupus
|
||||
continue;
|
||||
i=atoi(split[0]);
|
||||
if(i<=0) continue;
|
||||
|
||||
skill_produce_db[k].nameid=i;
|
||||
skill_produce_db[k].itemlv=atoi(split[1]);
|
||||
skill_produce_db[k].req_skill=atoi(split[2]);
|
||||
|
||||
for(x=3,y=0; split[x] && split[x+1] && y<MAX_PRODUCE_RESOURCE; x+=2,y++){
|
||||
skill_produce_db[k].mat_id[y]=atoi(split[x]);
|
||||
skill_produce_db[k].mat_amount[y]=atoi(split[x+1]);
|
||||
}
|
||||
k++;
|
||||
if(k >= MAX_SKILL_PRODUCE_DB)
|
||||
break;
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n",k,path);
|
||||
}
|
||||
|
||||
memset(skill_arrow_db,0,sizeof(skill_arrow_db));
|
||||
|
||||
sprintf(path, "%s/create_arrow_db.txt", db_path);
|
||||
fp=fopen(path,"r");
|
||||
if(fp==NULL){
|
||||
ShowError("can't read %s\n", path);
|
||||
return 1;
|
||||
}
|
||||
k=0;
|
||||
while(fgets(line,1020,fp)){
|
||||
char *split[16];
|
||||
int x,y;
|
||||
if(line[0]=='/' && line[1]=='/')
|
||||
continue;
|
||||
memset(split,0,sizeof(split));
|
||||
j = skill_split_str(line,split,13);
|
||||
if(split[0]==0) //fixed by Lupus
|
||||
continue;
|
||||
i=atoi(split[0]);
|
||||
if(i<=0)
|
||||
continue;
|
||||
|
||||
skill_arrow_db[k].nameid=i;
|
||||
|
||||
for(x=1,y=0;split[x] && split[x+1] && y<5;x+=2,y++){
|
||||
skill_arrow_db[k].cre_id[y]=atoi(split[x]);
|
||||
skill_arrow_db[k].cre_amount[y]=atoi(split[x+1]);
|
||||
}
|
||||
k++;
|
||||
if(k >= MAX_SKILL_ARROW_DB)
|
||||
break;
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n",k,path);
|
||||
|
||||
memset(skill_abra_db,0,sizeof(skill_abra_db));
|
||||
sprintf(path, "%s/abra_db.txt", db_path);
|
||||
fp=fopen(path,"r");
|
||||
if(fp==NULL){
|
||||
ShowError("can't read %s\n", path);
|
||||
return 1;
|
||||
}
|
||||
k=0;
|
||||
while(fgets(line,1020,fp)){
|
||||
char *split[16];
|
||||
if(line[0]=='/' && line[1]=='/')
|
||||
continue;
|
||||
memset(split,0,sizeof(split));
|
||||
j = skill_split_str(line,split,13);
|
||||
if(split[0]==0) //fixed by Lupus
|
||||
continue;
|
||||
i=atoi(split[0]);
|
||||
if(i<=0)
|
||||
continue;
|
||||
|
||||
skill_abra_db[i].req_lv=atoi(split[2]);
|
||||
skill_abra_db[i].per=atoi(split[3]);
|
||||
|
||||
k++;
|
||||
if(k >= MAX_SKILL_ABRA_DB)
|
||||
break;
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%d"CL_RESET"' entries in '"CL_WHITE"%s"CL_RESET"'.\n",k,path);
|
||||
|
||||
sprintf(path, "%s/skill_castnodex_db.txt", db_path);
|
||||
fp=fopen(path,"r");
|
||||
if(fp==NULL){
|
||||
ShowError("can't read %s\n", path);
|
||||
return 1;
|
||||
}
|
||||
while(fgets(line,1020,fp)){
|
||||
char *split[50];
|
||||
if(line[0]=='/' && line[1]=='/')
|
||||
continue;
|
||||
memset(split,0,sizeof(split));
|
||||
j = skill_split_str(line,split,4);
|
||||
if(split[0]==0) //fixed by Lupus
|
||||
continue;
|
||||
i=atoi(split[0]);
|
||||
if (i>=10000 && i<10015) // for guild skills [Celest]
|
||||
i -= 9500;
|
||||
else if(i<=0 || i>MAX_SKILL_DB)
|
||||
continue;
|
||||
|
||||
skill_split_atoi(split[1],skill_db[i].castnodex);
|
||||
if (!split[2])
|
||||
continue;
|
||||
skill_split_atoi(split[2],skill_db[i].delaynodex);
|
||||
if(!split[3])
|
||||
continue;
|
||||
skill_split_atoi(split[3],skill_db[i].delaynowalk);
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n",path);
|
||||
|
||||
sprintf(path, "%s/skill_nocast_db.txt", db_path);
|
||||
fp=fopen(path,"r");
|
||||
if(fp==NULL){
|
||||
ShowError("can't read %s\n", path);
|
||||
return 1;
|
||||
}
|
||||
k=0;
|
||||
while(fgets(line,1020,fp)){
|
||||
char *split[16];
|
||||
if(line[0]=='/' && line[1]=='/')
|
||||
continue;
|
||||
memset(split,0,sizeof(split));
|
||||
j = skill_split_str(line,split,2);
|
||||
if(split[0]==0) //fixed by Lupus
|
||||
continue;
|
||||
i=atoi(split[0]);
|
||||
if (i>=10000 && i<10015) // for guild skills [Celest]
|
||||
i -= 9500;
|
||||
else if(i<=0 || i>MAX_SKILL_DB)
|
||||
continue;
|
||||
skill_db[i].nocast=atoi(split[1]);
|
||||
k++;
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n",path);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*===============================================
|
||||
* For reading leveluseskillspamount.txt [Celest]
|
||||
*-----------------------------------------------
|
||||
@ -12179,12 +11777,6 @@ void skill_reload(void)
|
||||
*/
|
||||
int do_init_skill(void)
|
||||
{
|
||||
|
||||
#ifndef TXT_ONLY
|
||||
if(db_use_newsqldbs)
|
||||
skill_read_sqldb();
|
||||
else
|
||||
#endif /* TXT_ONLY */
|
||||
skill_readdb();
|
||||
|
||||
if (battle_config.skill_sp_override_grffile)
|
||||
|
Loading…
x
Reference in New Issue
Block a user