Вариантов много. Всё зависит от того, какой уровень костылей вам подходит.
На сколько я помню, в реапи есть нативы отвечающие за выдачу денег или в рехлдс. За что они там точно отвечают, я не помню.
На уровне самого движка, все суммы жестко записаны в код и без хука функции:
Код
void CBasePlayer::AddAccount(int amount, bool bTrackChange)
{
m_iAccount += amount;
if (m_iAccount < 0)
m_iAccount = 0;
else if (m_iAccount > 16000)
m_iAccount = 16000;
MESSAGE_BEGIN(MSG_ONE, gmsgMoney, NULL, pev);
WRITE_LONG(m_iAccount);
WRITE_BYTE(bTrackChange);
MESSAGE_END();
}
так просто, вы к ним не подберетесь.
Работа с бабосами зиждиться на клиентском оффсете "m_iAccount" и двух мессагах "Money" и "BlinkAcct"
"m_iAccount" - фактическое количество бабла. Если вы покупаете какое-то оружие, то данные по наличие необходимой суммы у игрока берутся именно с этого оффсета.
"Money" - клиентская мессага. По факту, рисует количество денег на экране игрока.
"BlinkAcct" - вызывает мегание объекта с деньгами (допустим, когда их не достаточно, при попытке купить оружие).
Так же, есть два серверных оффсета:
m_iAccountCT
m_iAccountTerrorist
Они регулируют количество бабла, выдаваемого в следующем раунде, игрокам той или иной команды. Доступ к серверным оффсетам есть на реапи и Amx 1.8.3+
В вашем случае, нужен доступ к серверным оффсетам или жесткие костыли, в виде перехвата мессаги "Money" в нужные моменты и последующим изменением значения оффсета m_iAccount и отправку нужного значения в мессагу через set_msg_arg_int.
Отредактировал: SISA, - 27.1.2019, 20:37