PDA

Просмотр полной версии : Хонор на арене


Nordway
22.11.2009, 12:34
Уважаемые кодеры, помогите сделать так, чтобы на арене давался хонор либо за обычный килл, либо за победу (фиксированное количество) :(

Пытался сам сделать, но так как в С++ полный ноль ничего не получилось. Изучал файлы BattleGround.cpp и Player.cpp

BattleGround.cpp

Здесь нашёл два участка кода, котрые возможно смогли бы мне помочь, это:

1. UpdatePlayerScore()

// do not add honor in arenas
if (isBattleGround())
{
// reward honor instantly
if (Source->RewardHonor(NULL, 1, value))
itr->second->BonusHonor += value;
}
break;


Пробовал удалять условие if (isBattleGround()) и оставлять только мгновенное получение хонора. Исходники компилируются, но эффекта никакого нет.

2. EndBattleGround()

После вычисления рейтингов идёт

if (team == winner)
{
RewardMark(plr,ITEM_WINNER_COUNT);
RewardQuestComplete(plr);
}
else
RewardMark(plr,ITEM_LOSER_COUNT);

может быть можно туда как-то прицепить выдачу хонора, но так как просто незнаю как не пробовал этот вариант. Есть мысль, сделать по аналогии, что-то типа RewardHonor(plr,количество_хонора) ; правильно ли?:)


Player.cpp

Ну тут только одно место смог найти, это в RewardHonor()

// do not reward honor in arenas, but enable onkill spellproc
if(InArena())
{
if(!uVictim || uVictim == this || uVictim->GetTypeId() != TYPEID_PLAYER)
return false;

if( GetBGTeam() == ((Player*)uVictim)->GetBGTeam() )
return false;

return true;
}

Здесь была попытка просто false заменить на true :D
Сервер собрался, но эффекта никакого.


Надеюсь на вашу помощь :)