Chciałbym zrobić tak, że tyle ile zadałem obrażeń to tyle mi wpisuje się punktów. Działa to, ale nie tak jak trzeba.
public bacon_takedamage_player(victim, inflictor, attacker, Float:damage, damagetype)
{
if(damagetype & DMG_GENERIC || victim == attacker || !is_user_alive(victim) || !is_user_connected(attacker))
return HAM_IGNORED
if(!g_gamestarted || (!g_zombie[victim] && !g_zombie[attacker]) || ((damagetype & DMG_HEGRENADE) && g_zombie[attacker]))
return HAM_SUPERCEDE
if(!g_zombie[attacker])
{
static pclass
pclass = g_player_class[victim]
new origin[3]
get_user_origin(victim, origin)
damage *= (damagetype & DMG_HEGRENADE) ? g_class_data[pclass][DATA_HEDEFENCE] : g_class_data[pclass][DATA_DEFENCE]
SetHamParamFloat(4, damage)
if(damagetype & (1<<1))
{
point[attacker]+=floatround(damage)
set_hudmessage(0, 255,0, _, _, 0, 1.0, _)
show_hudmessage(attacker, "Punktow: %i",point[attacker]);
return HAM_HANDLED;
}
}
i niestety, problem polega na tym, że otrzymuję 2x mniej punktów niż je zadałem. Przykład, zadałem 10 obrażeń, to wlicza mi zamiast 10 to 5. Sądzę, że to wszystko przez:
damage *= (damagetype & DMG_HEGRENADE) ? g_class_data[pclass][DATA_HEDEFENCE] : g_class_data[pclass][DATA_DEFENCE] SetHamParamFloat(4, damage)
ale jak to naprawić? Może return HAM_HANDLED ma coś z tym też wspólnego ? Pomożecie mi naprawić, aby zadane obrażenia = punty?
2. Jak usunąć, aby nie pisało na serwerze gdy najedziemy na danego gracza Friend: nick jego w lewym dolnym rogu? Po prostu aby nic nie pisało. Jakiś cvar?
Użytkownik Nenczoks edytował ten post 04.03.2012 15:37