diff options
-rw-r--r-- | Changelog-Trunk.txt | 3 | ||||
-rw-r--r-- | src/map/pc.c | 36 |
2 files changed, 24 insertions, 15 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 6e0a525d0..bfd2c1a87 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added 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. +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 * Small update to the dgbhelpplug plugin: [FlavioJS] - fixed only half of wide character strings being printed diff --git a/src/map/pc.c b/src/map/pc.c index 19781f1e5..3d0d0fc95 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4976,7 +4976,15 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) mob_script_callback(md, &sd->bl, CALLBACK_KILL); } 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; 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; if(ssd->status.manner < 0) sc_start(src,SC_NOCHAT,100,0,0); - - // PK/Karma system code (not enabled yet) [celest] - // 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, - // karma going down = more 'good' / more honourable. - // The Karma System way... - /* +#if 0 + // PK/Karma system code (not enabled yet) [celest] + // 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, + // karma going down = more 'good' / more honourable. + // The Karma System way... + if (sd->status.karma > ssd->status.karma) { // If player killed was more evil sd->status.karma--; ssd->status.karma--; } else if (sd->status.karma < ssd->status.karma) // If player killed was more good ssd->status.karma++; - */ + - // or the PK System way... - /* + // or the PK System way... + if (sd->status.karma > 0) // player killed is dishonourable? ssd->status.karma--; // honour points earned sd->status.karma++; // honour points lost - */ + // To-do: Receive exp on certain occasions +#endif } } - break; - } - // PK/Karma system code (not enabled yet) [celest] /* |