* Fixed "--en/ja--" usage in 'monster' script not working properly

* Speedup player autosaving
* Optimised guild castle saving when autosaving player data
* Added sd check in mob_damage

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1224 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
celest 2005-03-11 16:33:21 +00:00
parent fac2e7f552
commit a3fbd42dd5
5 changed files with 58 additions and 17 deletions

View File

@ -1,6 +1,13 @@
Date Added
03/11
* Fixed "--en/ja--" usage in 'monster' script not working properly, thanks
to sbilly [celest]
* Speedup player autosaving -- don't save guild castle data at the same time,
thanks to Alex14 [celest]
* Optimised guild castle saving when autosaving player data, thanks to Yor /
Freya (UPDATE: view above)
* Added sd check in mob_damage, thanks to sbilly [celest]
* Added Sage enchanting skills can only be cast on party members [celest]
* Fixed Magic Power not working for ground-targeted skills [celest]
* Fixed Frost Diver having double freezing chances [celest]

View File

@ -35,6 +35,9 @@ Other Ppl
Date Added
======
03/11
* Reverted the Moving HP skill quest change, thanks to DracoRPG [celest]
03/07
* Fixed a typo in high mage job changing, thanks to hongmei [celest]

View File

@ -234,7 +234,8 @@ L_Check:
mes "Haha! You have just learned HP Moving Recovery!";
delitem 713,200;
delitem 1058,1;
delitem 2312,1;
//-- Padded armor does not have to be deleted! --
// delitem 2312,1;
skill 144,1,0;
set MOVHPREC, 0;
next;

View File

@ -2612,7 +2612,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
}
// Ore Discovery [Celest]
if (pc_checkskill(sd,BS_FINDINGORE)>0 && battle_config.finding_ore_rate/100 >= rand()%1000) {
if (sd && pc_checkskill(sd,BS_FINDINGORE)>0 && battle_config.finding_ore_rate/100 >= rand()%1000) {
struct delay_item_drop *ditem;
int itemid[17] = { 714, 756, 757, 969, 984, 985, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1002 };
ditem=(struct delay_item_drop *)aCalloc(1,sizeof(struct delay_item_drop));
@ -2631,7 +2631,7 @@ int mob_damage(struct block_list *src,struct mob_data *md,int damage,int type)
}
//this drop log contains ALL dropped items + ORE (if there was ORE Recovery) [Lupus]
if(log_config.drop > 0 && drop_items) //we check were there any drops.. and if not - don't write the log
if(sd && log_config.drop > 0 && drop_items) //we check were there any drops.. and if not - don't write the log
log_drop(sd, md->class_, log_item); //mvp_sd
if(sd && sd->state.attack_type == BF_WEAPON) {

View File

@ -6821,6 +6821,8 @@ int pc_setsavepoint(struct map_session_data *sd,char *mapname,int x,int y)
*------------------------------------------
*/
static int last_save_fd,save_flag;
static int Ghp[MAX_GUILDCASTLE][8]; // so save only if HP are changed // experimental code [Yor]
static int pc_autosave_sub(struct map_session_data *sd,va_list ap)
{
nullpo_retr(0, sd);
@ -6828,8 +6830,11 @@ static int pc_autosave_sub(struct map_session_data *sd,va_list ap)
Assert((sd->status.pet_id == 0 || sd->pd == 0) || sd->pd->msd == sd);
if(save_flag==0 && sd->fd>last_save_fd && !sd->state.waitingdisconnect){
struct guild_castle *gc=NULL;
int i;
// --- uncomment to reenable guild castle saving ---//
// struct guild_castle *gc=NULL;
// int i;
//
// if(battle_config.save_log)
// printf("autosave %d\n",sd->fd);
// pet
@ -6839,18 +6844,43 @@ static int pc_autosave_sub(struct map_session_data *sd,va_list ap)
chrif_save(sd);
storage_storage_save(sd);
for(i=0;i<MAX_GUILDCASTLE;i++){
gc=guild_castle_search(i);
if(!gc) continue;
if(gc->visibleG0==1) guild_castledatasave(gc->castle_id,18,gc->Ghp0);
if(gc->visibleG1==1) guild_castledatasave(gc->castle_id,19,gc->Ghp1);
if(gc->visibleG2==1) guild_castledatasave(gc->castle_id,20,gc->Ghp2);
if(gc->visibleG3==1) guild_castledatasave(gc->castle_id,21,gc->Ghp3);
if(gc->visibleG4==1) guild_castledatasave(gc->castle_id,22,gc->Ghp4);
if(gc->visibleG5==1) guild_castledatasave(gc->castle_id,23,gc->Ghp5);
if(gc->visibleG6==1) guild_castledatasave(gc->castle_id,24,gc->Ghp6);
if(gc->visibleG7==1) guild_castledatasave(gc->castle_id,25,gc->Ghp7);
}
// --- uncomment to reenable guild castle saving ---//
/* for(i = 0; i < MAX_GUILDCASTLE; i++) { // [Yor]
gc = guild_castle_search(i);
if (!gc) continue;
if (gc->visibleG0 == 1 && Ghp[i][0] != gc->Ghp0) {
guild_castledatasave(gc->castle_id, 18, gc->Ghp0);
Ghp[i][0] = gc->Ghp0;
}
if (gc->visibleG1 == 1 && Ghp[i][1] != gc->Ghp1) {
guild_castledatasave(gc->castle_id, 19, gc->Ghp1);
Ghp[i][1] = gc->Ghp1;
}
if (gc->visibleG2 == 1 && Ghp[i][2] != gc->Ghp2) {
guild_castledatasave(gc->castle_id, 20, gc->Ghp2);
Ghp[i][2] = gc->Ghp2;
}
if (gc->visibleG3 == 1 && Ghp[i][3] != gc->Ghp3) {
guild_castledatasave(gc->castle_id, 21, gc->Ghp3);
Ghp[i][3] = gc->Ghp3;
}
if (gc->visibleG4 == 1 && Ghp[i][4] != gc->Ghp4) {
guild_castledatasave(gc->castle_id, 22, gc->Ghp4);
Ghp[i][4] = gc->Ghp4;
}
if (gc->visibleG5 == 1 && Ghp[i][5] != gc->Ghp5) {
guild_castledatasave(gc->castle_id, 23, gc->Ghp5);
Ghp[i][5] = gc->Ghp5;
}
if (gc->visibleG6 == 1 && Ghp[i][6] != gc->Ghp6) {
guild_castledatasave(gc->castle_id, 24, gc->Ghp6);
Ghp[i][6] = gc->Ghp6;
}
if (gc->visibleG7 == 1 && Ghp[i][7] != gc->Ghp7) {
guild_castledatasave(gc->castle_id, 25, gc->Ghp7);
Ghp[i][7] = gc->Ghp7;
}
}*/
save_flag=1;
last_save_fd = sd->fd;