Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Подправить плагин вампирик

Статус пользователя ThisIsSparta
сообщение 14.3.2015, 15:02
Сообщение #1
Стаж: 11 лет

Сообщений: 566
Благодарностей: 307
Полезность: 600

Здравствуйте.
Нужна помощь гуру скриптинга)
Имеется плагин который дает игрокам и випам хп + броня при убийстве(вампир), каждому разное количество
По идее должно даваться випу максимум 170хп 130брони обычному игроку 100хп 100брони (все значения берутся из кваров), так вот в чем проблема
1) Если у игрока например 99хп и он кого то убивает то ему дается еще + 10 и у его становится 109хп, а должно быть не больше 100, такая же ситуация и с броней.
2) Иногда проскакивает момент что при убийстве игроку дается не правильно хп и броня, например за хед должен получать +15хп +10 брони а дается наоборот(иногда)

Кто сможет помочь исправить буду при много благодарен, если не имеете желания помогать на бесплатной основе, пишите в лс, обсудим derisive.gif

Код:

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

new health_max, heal_killhe, heal_killknife, heal_killhs, heal_kill, health_max_adm, armor_max_adm, armor_killhe_adm, armor_killknife_adm, armor_killhs_adm, armor_kill_adm,
heal_killhe_adm, heal_killknife_adm, heal_killhs_adm, heal_kill_adm

/*
vampirka_maxheal 100
vampirka_heal_killhe 10
vampirka_heal_killknife 10
vampirka_heal_killhs 10
vampirka_heal_kill 5
vampirka_maxheal_admin 170
vampirka_maxarmor_admin 170
vampirka_armor_killhe_admin 30
vampirka_armor_killknife_admin 10
vampirka_armor_killhs_admin 10
vampirka_armor_kill_admin 5
vampirka_heal_killhe_admin 10
vampirka_heal_killknife_admin 30
vampirka_heal_killhs_admin 30
vampirka_heal_kill_admin 10
*/

public plugin_init()
{
register_plugin("Vampirka","0.1","di.alyabev");
hamsandwich_init();
cvar_init();
}

cvar_init()
{
health_max = register_cvar("vampirka_maxheal", "100")
heal_killhe = register_cvar("vampirka_heal_killhe", "150")
heal_killknife = register_cvar("vampirka_heal_killknife", "150")
heal_killhs = register_cvar("vampirka_heal_killhs", "150")
heal_kill = register_cvar("vampirka_heal_kill", "150")
health_max_adm = register_cvar("vampirka_maxheal_admin", "170")
armor_max_adm = register_cvar("vampirka_maxarmor_admin", "150")
armor_killhe_adm = register_cvar("vampirka_armor_killhe_admin", "150")
armor_killknife_adm = register_cvar("vampirka_armor_killknife_admin", "150")
armor_killhs_adm = register_cvar("vampirka_armor_killhs_admin", "150")
armor_kill_adm = register_cvar("vampirka_armor_kill_admin", "150")
heal_killhe_adm = register_cvar("vampirka_heal_killhe_admin", "150")
heal_killknife_adm = register_cvar("vampirka_heal_killknife_admin", "150")
heal_killhs_adm = register_cvar("vampirka_heal_killhs_admin", "150")
heal_kill_adm = register_cvar("vampirka_heal_kill_admin", "150")
}

hamsandwich_init()
{
RegisterHam(Ham_Killed, "player", "player_killed", false);
}

public player_killed(victim, attacker)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || attacker == victim)
return HAM_IGNORED;

if(get_user_flags(attacker) & ADMIN_LEVEL_H)
{
new addheal = 0
new addarm = 0
if(get_pdata_int(victim, 76) & (1<<24))
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max_adm))
{
addheal = get_pcvar_num(heal_killhe_adm)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_killhe_adm));
}
if(fm_get_user_armor(attacker) < get_pcvar_num(armor_max_adm))
{
addarm = get_pcvar_num(armor_killhe_adm)
fm_set_user_armor(attacker, fm_get_user_armor(attacker) + get_pcvar_num(armor_killhe_adm));
}
}
else
if(get_user_weapon(attacker) == CSW_KNIFE)
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max_adm))
{
addheal = get_pcvar_num(heal_killknife_adm)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_killknife_adm));
}
if(fm_get_user_armor(attacker) < get_pcvar_num(armor_max_adm))
{
addarm = get_pcvar_num(armor_killknife_adm)
fm_set_user_armor(attacker, fm_get_user_armor(attacker) + get_pcvar_num(armor_killknife_adm));
}
}
else
if(get_pdata_int(victim, 75, 5) == HIT_HEAD)
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max_adm))
{
addheal = get_pcvar_num(heal_killhs_adm)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_killhs_adm));
}
if(fm_get_user_armor(attacker) < get_pcvar_num(armor_max_adm))
{
addarm = get_pcvar_num(armor_killhs_adm)
fm_set_user_armor(attacker, fm_get_user_armor(attacker) + get_pcvar_num(armor_killhs_adm));
}
}
else
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max_adm))
{
addheal = get_pcvar_num(heal_kill_adm)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_kill_adm));
}
if(fm_get_user_armor(attacker) < get_pcvar_num(armor_max_adm))
{
addarm = get_pcvar_num(armor_kill_adm)
fm_set_user_armor(attacker, fm_get_user_armor(attacker) + get_pcvar_num(armor_kill_adm));
}
}
if(addheal > 0 && addarm > 0)
{
set_hudmessage(0, 0, 255, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(attacker, "+%d hp +%d ap", addheal, addarm)
}
}
else
{
new addheal = 0
if(get_pdata_int(victim, 76) & (1<<24))
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max))
{
addheal = get_pcvar_num(heal_killhe)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_killhe));
}
}
else
if(get_user_weapon(attacker) == CSW_KNIFE)
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max))
{
addheal = get_pcvar_num(heal_killknife)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_killknife));
}
}
else
if(get_pdata_int(victim, 75, 5) == HIT_HEAD)
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max))
{
addheal = get_pcvar_num(heal_killhs)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_killhs));
}
}
else
{
if(fm_get_user_health(attacker) < get_pcvar_num(health_max))
{
addheal = get_pcvar_num(heal_kill)
fm_set_user_health(attacker, fm_get_user_health(attacker) + get_pcvar_num(heal_kill));
}
}
if(addheal > 0)
{
set_hudmessage(0, 0, 255, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(attacker, "+%d hp", addheal)
}
}

return HAM_IGNORED;
}

stock fm_get_user_health(index)
{
return pev(index, pev_health);
}

stock fm_set_user_armor(index, armor)
{
set_pev(index, pev_armorvalue, float(armor));
return 1;
}

stock fm_set_user_health(index, health)
{
set_pev(index, pev_health, float(health));
return 1;
}

stock fm_get_user_armor(index)
{
return pev(index, pev_armorvalue);
}


Отредактировал: ThisIsSparta, - 14.3.2015, 15:04
Прикрепленные файлы:
Прикрепленный файл  vampirka.sma ( 5,93 килобайт ) Кол-во скачиваний: 8
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: