I'd say you should be able to do this with a 2 plugins.. One after newthread and another on reply.. That said, looking at the code, it seems like all the repuation add is handled in reputation.php, so you'd have to duplicate some of that code rather than call functions etc, which is a bit sucky (I'm still on 3.6.x, so later versions might vary).
eg.. this bit from reputation.php seems to do the adding
PHP Code:
// init user data manager
$userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
$userdata->set_existing($userinfo);
$userdata->set('reputation', $userinfo['reputation']);
$userdata->set('reputationlevelid', intval($reputationlevel['reputationlevelid']));
($hook = vBulletinHook::fetch_hook('reputation_add_process')) ? eval($hook) : false;
$userdata->pre_save();
/*insert query*/
$db->query_write("
INSERT IGNORE INTO " . TABLE_PREFIX . "reputation (postid, reputation, userid, whoadded, reason, dateline)
VALUES ($postid, $score, $userid, " . $vbulletin->userinfo['userid'] . ", '" . $db->escape_string(fetch_censored_text($vbulletin->GPC['reason'])) . "','" . TIMENOW . "')
");