- Modified pc_dead so that the src is passed on to the master when it is a pet or homunculus.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12150 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2008-01-29 13:17:15 +00:00
parent e727c51605
commit 220fb381a2
2 changed files with 24 additions and 15 deletions

View File

@ -3,6 +3,9 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2008/01/29
* Modified pc_dead so that the src is passed on to the master when it is a
pet or homunculus. [Skotlex]
2008/01/26 2008/01/26
* Small update to the dgbhelpplug plugin: [FlavioJS] * Small update to the dgbhelpplug plugin: [FlavioJS]
- fixed only half of wide character strings being printed - fixed only half of wide character strings being printed

View File

@ -4976,7 +4976,15 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
mob_script_callback(md, &sd->bl, CALLBACK_KILL); mob_script_callback(md, &sd->bl, CALLBACK_KILL);
} }
break; break;
case BL_PC: case BL_PET: //Pass on to master...
src = &((TBL_PET*)src)->msd->bl;
break;
case BL_HOM:
src = &((TBL_HOM*)src)->master->bl;
break;
}
if (src && src->type == BL_PC)
{ {
struct map_session_data *ssd = (struct map_session_data *)src; struct map_session_data *ssd = (struct map_session_data *)src;
pc_setglobalreg(ssd, "killedrid", sd->bl.id); pc_setglobalreg(ssd, "killedrid", sd->bl.id);
@ -4986,33 +4994,31 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
ssd->status.manner -= 5; ssd->status.manner -= 5;
if(ssd->status.manner < 0) if(ssd->status.manner < 0)
sc_start(src,SC_NOCHAT,100,0,0); sc_start(src,SC_NOCHAT,100,0,0);
#if 0
// PK/Karma system code (not enabled yet) [celest] // PK/Karma system code (not enabled yet) [celest]
// originally from Kade Online, so i don't know if any of these is correct ^^; // originally from Kade Online, so i don't know if any of these is correct ^^;
// note: karma is measured REVERSE, so more karma = more 'evil' / less honourable, // note: karma is measured REVERSE, so more karma = more 'evil' / less honourable,
// karma going down = more 'good' / more honourable. // karma going down = more 'good' / more honourable.
// The Karma System way... // The Karma System way...
/*
if (sd->status.karma > ssd->status.karma) { // If player killed was more evil if (sd->status.karma > ssd->status.karma) { // If player killed was more evil
sd->status.karma--; sd->status.karma--;
ssd->status.karma--; ssd->status.karma--;
} }
else if (sd->status.karma < ssd->status.karma) // If player killed was more good else if (sd->status.karma < ssd->status.karma) // If player killed was more good
ssd->status.karma++; ssd->status.karma++;
*/
// or the PK System way... // or the PK System way...
/*
if (sd->status.karma > 0) // player killed is dishonourable? if (sd->status.karma > 0) // player killed is dishonourable?
ssd->status.karma--; // honour points earned ssd->status.karma--; // honour points earned
sd->status.karma++; // honour points lost sd->status.karma++; // honour points lost
*/
// To-do: Receive exp on certain occasions // To-do: Receive exp on certain occasions
#endif
} }
} }
break;
}
// PK/Karma system code (not enabled yet) [celest] // PK/Karma system code (not enabled yet) [celest]
/* /*