1) Берешь и достаешь демейдж нанесенный при player_hurt
2) Берешь и выдаешь деньги значением нанесенного урона
3) Берешь и ловишь профиты
#include <sourcemod>
#include <sdktools>
public OnPluginStart()
{
HookEvent("player_hurt", DamageEvent, EventHookMode_Post)
}
public Action:DamageEvent(Handle:event, const String:name[], bool:dontBroadcast)
{
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
new fMoney = (GetMoney(attacker) + GetEventInt(event, "dmg_health"))
}
Не выдумывай.GetMoney
Не выдумывай.
GetEntProp(client, Prop_Send, "m_iAccount") - это деньги игрока.
SetEntProp(client, Prop_Send, "m_iAccount", money) - установка денег игроку (со значение money).
Не забудь ограничить код проверкой на $16000 и более (как "антиспам").
#include <sourcemod>
#include <sdktools>
public OnPluginStart()
{
HookEvent("player_hurt", DamageEvent)
}
public DamageEvent(Handle:event, const String:name[], bool:dontBroadcast)
{
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if(attacker && attacker != GetClientOfUserId(GetEventInt(event, "userid"))
{
new iNewMoney = GetEntProp(attacker, Prop_Send, "m_iAccount") + GetEventInt(event, "dmg_health");
SetEntProp(attacker, Prop_Send, "m_iAccount", iNewMoney > 16000 ? 16000:iNewMoney);
}
}
Это копипаст)client
Не нужно.Action:
Мда... Чтобы ни было - всё равно проходим все проверки и устанавливаем значение.iNewMoney > 16000 ? 16000:iNewMoney
public OnPluginStart() HookEvent("player_hurt", DamageEvent);
public DamageEvent(Handle:event, const String:name[], bool:dontBroadcast)
{
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if (attacker && GetClientOfUserId(GetEventInt(event, "userid")) != attacker)
{
new money = GetEntProp(attacker, Prop_Send, "m_iAccount");
if (money < 16000 && (money += GetEventInt(event, "dmg_health")) < 16000) SetEntProp(attacker, Prop_Send, "m_iAccount", money);
}
}
AlmazON, свой код исправил. Мне кажется по моему лучше будет.
Сделать то, что попросил компилятор пробовали?
ожидаемый знак: ">", но найден "{"Сделать то, что попросил компилятор пробовали?
Забыл одну скобку.if(attacker && attacker != GetClientOfUserId(GetEventInt(event, "userid"))
if(attacker && attacker != GetClientOfUserId(GetEventInt(event, "userid")))
#include <sourcemod>
#include <sdktools>
public OnPluginStart()
{
HookEvent("player_hurt", DamageEvent)
}
public DamageEvent(Handle:event, const String:name[], bool:dontBroadcast)
{
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if(attacker && attacker != GetClientOfUserId(GetEventInt(event, "userid")))
{
new iNewMoney = GetEntProp(attacker, Prop_Send, "m_iAccount") + GetEventInt(event, "dmg_health");
SetEntProp(attacker, Prop_Send, "m_iAccount", iNewMoney > 16000 ? 16000:iNewMoney);
}
}