Игрок со 120 hp, убив противника получает 100 hp. Не корректная работа вампиризма

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Ошибка
Игрок со 120 hp, убив противника получает 100 hp. Не корректная работа вампиризма
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5271
Билд
ReHLDS version: 3.7.0.698-dev
ReGamedll
ReGameDLL version: 5.18.0.474-dev
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Список метамодулей
[ 1] SafeNameAndChat      RUN   -    SafeNameAndChat.so          v1.1             ini   ANY  
[ 2] Reunion RUN - reunion_mm_i386_92.so v0.1.0.92c ini Start Never
[ 3] WHBlocker RUN - whblocker_mm_i386.so v1.5.697 ini ANY
[ 4] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC5 ini ANY
[ 5] ReSemiclip RUN - resemiclip.so v2.3.9 ini ANY
[ 6] Rechecker RUN - rechecker_mm_i386.so v2.5 ini ANY
[ 7] ReSRDetector RUN - resrdetector_mm_i386.so v0.1.0 ini ANY
[ 8] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5271 ini Start ANY
[ 9] Yet Another POD-Bot RUN - yapb.so v2.10 ini ANY
[10] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[11] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[12] ReAPI RUN - reapi_amxx_i386.so v5.15.0.197-dev pl8 ANY Never
[13] Engine RUN - engine_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[14] MySQL RUN - mysql_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[15] AuthEmu RUN - authemu_amxx_i386.so v5.2.12.425-dev pl8 ANY Never
[16] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[17] CSX RUN - csx_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[18] ReAimDetector RUN - reaimdetector_amxx_i386.so v0.2.2 pl8 ANY Never
[19] Fun RUN - fun_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
[20] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5271 pl8 ANY ANY
Список плагинов
[  1] KnifeDuel               v08.02.2020  81x08             knifeduel_impro  debug    
[ 2] CSStatsX SQL v0.7.4+2 serfreeman1337 csstatsx_sql.am debug
[ 3] Advanced Experience Sy v0.5.9 [REA serfreeman1337/s aes_main.amxx running
[ 4] DevMsCore v1.2 gyxoBka devms_core.amxx running
[ 5] DevMs CSSTATS v0.1.1 AlexandrFiner devcsru.amxx running
[ 6] AuthEmu API v1.0 Dev-MS Team authemu.amxx debug
[ 7] Admin Loader v3.5 neygomon admin_loader.am running
[ 8] warning_dhud_gs_aes v2.0 stalin_alex warning_dhud_gs running
[ 9] vip_gs v1.0 stalin_alex vip_gs.amxx running
[ 10] DevMs PlayerMenu v1.0 gyxoBka DevMs_PlayerMen running
[ 11] DevMs BlackList v1.5.1 gyxoBka DevMs_BlackList debug
[ 12] [190] Ultimate Weapons v20.06.06 SKAJIbnEJIb ultimate_weapon running
[ 13] [190] Replace Weapons v20.06.06 SKAJIbnEJIb replace_weapons running
[ 14] [GS] Models Replacemen v1.14041 AlexandrFiner gs_usermodels.a running
[ 15] [ReAPI] Custom Models v1.6 neugomon custom_models_f running
[ 16] AES: StatsX v0.5+1 serfreeman1337 aes_statsx_cstr running
[ 17] [ReAPI] Round Balancer v1.1 neygomon round_balancer_ running
[ 18] Ultimate Chats Control v5.2(b) neygomon ucc.amxx debug
[ 19] UCC Addon: VoteGAG v1.2 neygomon ucc_votegag.amx running
[ 20] [190] NewYear RBS v20.06.06 SKAJIbnEJIb newyear_rbs.amx running
[ 21] Time for info v1.0 neugomon time_for_info.a running
[ 22] Knife WarnUP v2.0 Alik & Inline & knife_warnupAli stopped
[ 23] Advanced Client Checke v0.3.7 Mistrick cmdchecker.amxx debug
[ 24] ReAimDetector API v0.2.2 ReHLDS Team reaimdetector.a debug
[ 25] FreshBans v1.4.0b kanagava fresh_bans_140_ running
[ 26] [190] Screen Player v20.06.06 SKAJIbnEJIb screen_player.a running
[ 27] [CS] Dead Alltalk v0.1 Allied dead_alltalk.am running
[ 28] Check Players Online v1.0 breakt cpo2.amxx running
[ 29] [190] VIP RBS v20.07.20 SKAJIbnEJIb vip_rbs.amxx running
[ 30] Vampire v1.0 AlexandrFiner vampire_pro.amx running
[ 31] Maps Menu v1.4.1 neugomon mapsmenu.amxx running
[ 32] menu_votemap_admin v1.0 stalin_alex menu_mapm_start running
[ 33] [190] Blind RBS v20.06.06 SKAJIbnEJIb blind_rbs.amxx running
[ 34] TimeProjector v0.1 ST4life timeprojector.a running
[ 35] LBZ v1.0 ill lbz2.amxx debug
[ 36] Admin Chat v1.8.3-dev+ AMXX Dev Team adminchat.amxx running
[ 37] Admin Commands v1.8.3-Re AMXX Dev Team admincmd.amxx running
[ 38] CS Misc. Stats v1.9.0.5221 AMXX Dev Team miscstats.amxx running
[ 39] CSXSQL: Onlinetime Awa v0.2 serfreeman1337 csstatsx_playra running
[ 40] CSXSQL: Onlinetime Awa v0.2 serfreeman1337 csstatsx_playti running
[ 41] Lite Kill Assist v1.17 neygomon lite_kill_assis running
[ 42] Say me and Say hp v1.4 neygomon sayme_reapi.amx running
[ 43] Commands Menu v1.8.3-Re AMXX Dev Team cmdmenu.amxx running
[ 44] Menus Front-End v1.5 untest neugomon menufront_end.a running
[ 45] Players Menu v1.7 neugomon players_menu.am running
[ 46] Restrict Weapons v1.8.3-Re AMXX Dev Team restmenu.amxx running
[ 47] Admin Votes v1.9.0.5234 AMXX Dev Team adminvote.amxx running
[ 48] Lite Admin ESP v1.0 neygomon admin_esp.amxx running
[ 49] DemoRecoder v1.1 neygomon amx_demorec.amx running
[ 50] Advert Messages v1.2.2 neygomon adverts_dead.am running
[ 51] GameName Changer v1.0 neugomon gamename_change running
[ 52] LogsRemove v1.0 melo4 logsremove.amxx running
[ 53] Rock to Ban v1.02 Safety1st rock2ban.amxx running
[ 54] Show Admins Online v1.1 vato loco [GE-S] show_admin_onli running
[ 55] [190] AfkKicker RBS v20.08.02 SKAJIbnEJIb afkkicker_rbs.a running
[ 56] [190] Damager RBS v20.06.06 SKAJIbnEJIb damager_rbs.amx running
[ 57] Slots Reservation v1.2 pUzzlik admin_slots_gs_ running
[ 58] Proxy Detetor vHackForums.Ru proxy_detector. running
[ 59] Block grande info v1.0 neygomon BlockGrenadeInf running
[ 60] Ping Control v1.31 neygomon Ping_Control.am running
[ 61] Chat Manager v1.1.2-16 Mistrick chatmanager_ski running
[ 62] Chat Manager: Addon v0.0.4-70 Mistrick chatmanager_add running
[ 63] [ReAPI] No Team Flash v0.0.3 Vaqtincha no_team_flash.a running
[ 64] FM ResetScore v0.1 neygomon fm_rs.amxx running
[ 65] Kill Knife ADMIN v1.0 Seroff killadmin.amxx running
[ 66] Parachute v1.3 Fixed KRoT@L/JTP10181 parachute.amxx running
[ 67] Block Spawn For Reconn v0.3 Bos93, Subb98 block_spawn_for running
[ 68] Block Change Name v1.0 DJ_WEST block_change_na running
[ 69] precashe v1.0 stalin precashe.amxx running
[ 70] End Round Music v2.0 Sho0ter endroundmusic.a running
[ 71] MySQL Settings v1.0 AlexandrFiner mysql_save.amxx debug
[ 72] Stats Configuration v1.8.3-dev+ AMXX Dev Team statscfg.amxx running
[ 73] Mode 2x2 v2.5re s1lent mode.amxx running
[ 74] Spectator Banner Ads v0.1.16 iG_os spec_banner_ads running
[ 75] In-Game Ads(MastaMan E v1.83 (Edit stupok in_game_ads_Mas running
[ 76] [ReAPI] AWPoff v1.4.3 PAffAEJIkA :3 awp_off.amxx running
[ 77] GameRules Info v1.2 shadow GameRulesInfo.a running
[ 78] SlayNoobs v1.0 neygomon slay_noobs.amxx running
[ 79] Bomb Taker v0.0.1b Vaqtincha bomb_taker.amxx running
[ 80] sky by mapname v0.2 mx?! sky_by_mapname. running
[ 81] MENU v1.5 AmFeTaM1n menu.amxx running
[ 82] Kills Counter v1.0 No KillsCounter.am running
[ 83] SF Bets v0.1.5 serfreeman1337 sf_bets.amxx running
[ 84] ReTalisman v1.4.2 gyxoBka ReTalisman.amxx running
[ 85] Nice Killer v1.7 Got Milk? / HoHo nice_killer.amx running
[ 86] [190] Analizator v20.06.06 SKAJIbnEJIb analizator.amxx running
[ 87] PM v0.01b AlexandrFiner PrivateMessage. running
[ 88] Name History v1.0 AlexandrFiner name_history.am debug
[ 89] No Players Map v1.03 neygomon no_players_map. running
[ 90] Master Servers Check v4.8 Javekson ms_check.amxx running
[ 91] Auto-Give Privileges v1.0 SerGrib night_vips.amxx stopped
[ 92] Block Key v0.1 Stimul / SaRiOVe block_key.amxx running
[ 93] Chat Additions Core v1.0.0-beta Sergey Shorokhov ChatAdditions_C debug
[ 94] [CA] Mute menu v1.0.0-beta Sergey Shorokhov CA_Mute.amxx debug
[ 95] AES: CStrike Addon v0.5.9 [REA serfreeman1337/s aes_exp_cstrike running
[ 96] AES: Informer v0.5.9 [REA serfreeman1337/s aes_informer.am running
[ 97] AES: Admin Tools v0.5.9 [REA serfreeman1337/s aes_exp_editor. running
[ 98] AES: Bonus System v0.5.9 Vega serfreeman1337/s aes_bonus_syste running
[ 99] AES: Bonus CSTRIKE v0.5.9.1 [R serfreeman1337/s aes_bonus_cstri debug
[100] DevMs Flag 1.0 gyxoBka DevMs_Flag.amxx running
[101] Map Manager: Core 3.0.7 Mistrick map_manager_cor running
[102] Map Manager: Scheduler 0.1.5 Mistrick map_manager_sch running
[103] Map Manager: Rtv 0.1.1 Mistrick map_manager_rtv running
[104] Map Manager: Nominatio 0.1.2 Mistrick map_manager_nom debug
[105] Map Manager: BlockList 0.0.3 Mistrick map_manager_blo running
[106] Map Manager: Online so 0.0.2 Mistrick map_manager_onl running
[107] Map Manager: Effects 0.0.9 Mistrick map_manager_eff running
[108] Map Manager: Informer 0.0.5 Mistrick map_manager_inf running
[109] Map Manager: Advanced 0.0.5 Mistrick map_manager_adv running
Автор плагина
AlexandrFiner
Версия плагина
1.0
Исходный код
#include amxmodx
#include reapi

#define IsValidUser(%0) (%0 && %0 <= MaxClients)

#pragma semicolon 1

enum _:eData_Vampir {
data_flags,
data_value
}
enum _:eData_Types {
type_frag,
type_hs,
type_knife
}
enum _:eData_Cvars {
Float:max_health
}
new Array:g_aArray[eData_Types];
new g_eCvars[eData_Cvars];

public plugin_init() {
register_plugin("Vampire", "1.0", "AlexandrFiner");
register_concmd("healthfrag", "Command_Frag");
register_concmd("healthhs", "Command_HS");
register_concmd("healthknife", "Command_Knife");

RegisterHookChain(RG_CSGameRules_PlayerKilled, "CSGameRules_PlayerKilled", .post = true);
}

public plugin_cfg() {
g_aArray[type_frag] = ArrayCreate(eData_Vampir);
g_aArray[type_hs] = ArrayCreate(eData_Vampir);
g_aArray[type_knife] = ArrayCreate(eData_Vampir);

new szCfgDir[64], szCfgFile[128];
get_localinfo("amxx_configsdir", szCfgDir, charsmax(szCfgDir));
formatex(szCfgFile, charsmax(szCfgFile), "%s/vampire.cfg", szCfgDir);
if(!file_exists(szCfgFile)) {
write_file(szCfgFile, "// Максимальное количество жизней. 0 - не ограничено.");
write_file(szCfgFile, "^"vip_max_health^" ^"100^"");
write_file(szCfgFile, "");
write_file(szCfgFile, "// дополнительные жизни за убийство");
write_file(szCfgFile, "^"healthfrag^" ^"z^" ^"10^"");
write_file(szCfgFile, "^"healthfrag^" ^"b^" ^"10^"");
write_file(szCfgFile, "");
write_file(szCfgFile, "// дополнительные жизни за убийство в голову");
write_file(szCfgFile, "^"healthhs^" ^"b^" ^"10^"");
write_file(szCfgFile, "^"healthhs^" ^"z^" ^"10^"");
write_file(szCfgFile, "^"healthhs^" ^"k^" ^"10^"");
write_file(szCfgFile, "");
write_file(szCfgFile, "// дополнительные жизни за убийство с ножа");
write_file(szCfgFile, "^"healthknife^" ^"q^" ^"15^"");
write_file(szCfgFile, "^"healthknife^" ^"r^" ^"15^"");
write_file(szCfgFile, "^"healthknife^" ^"b^" ^"15^"");
}

new pcvar = create_cvar("vip_max_health", "100", FCVAR_NONE, "Set max health for vampire.");
bind_pcvar_float(pcvar, g_eCvars[max_health]);

server_cmd("exec %s", szCfgFile);
}

public Command_Frag(id) {
if(id)
return PLUGIN_HANDLED;

new szArgs[eData_Vampir][3];
read_argv(1, szArgs[data_flags], charsmax(szArgs[]));
read_argv(2, szArgs[data_value], charsmax(szArgs[]));

new iValue[eData_Vampir];
iValue[data_flags] = read_flags(szArgs[data_flags]);
iValue[data_value] = str_to_num(szArgs[data_value]);

ArrayPushArray(g_aArray[0], iValue);
return PLUGIN_HANDLED;
}

public Command_HS(id) {
if(id)
return PLUGIN_HANDLED;

new szArgs[eData_Vampir][3];
read_argv(1, szArgs[data_flags], charsmax(szArgs[]));
read_argv(2, szArgs[data_value], charsmax(szArgs[]));

new iValue[eData_Vampir];
iValue[data_flags] = read_flags(szArgs[data_flags]);
iValue[data_value] = str_to_num(szArgs[data_value]);

ArrayPushArray(g_aArray[1], iValue);
return PLUGIN_HANDLED;
}

public Command_Knife(id) {
if(id)
return PLUGIN_HANDLED;

new szArgs[eData_Vampir][3];
read_argv(1, szArgs[data_flags], charsmax(szArgs[]));
read_argv(2, szArgs[data_value], charsmax(szArgs[]));

new iValue[eData_Vampir];
iValue[data_flags] = read_flags(szArgs[data_flags]);
iValue[data_value] = str_to_num(szArgs[data_value]);

ArrayPushArray(g_aArray[2], iValue);
return PLUGIN_HANDLED;
}

public CSGameRules_PlayerKilled(const iVictim, iKiller, iGib) {
if(iVictim == iKiller)
return HC_CONTINUE;

if(!IsValidUser(iKiller) || !is_user_alive(iKiller))
return HC_CONTINUE;

new bool:isHeadshot = get_member(iVictim, m_bHeadshotKilled);
new bool:isKnife = get_user_weapon(iKiller) == CSW_KNIFE;
new Float:fHealthKiller = get_entvar(iKiller, var_health);
new Float:fValue;

if(fHealthKiller >= g_eCvars[max_health] && g_eCvars[max_health])
return HC_CONTINUE;

if(isKnife)
fValue = get_value(iKiller, type_knife);

if(isHeadshot && !fValue)
fValue = get_value(iKiller, type_hs);

if(!fValue)
fValue = get_value(iKiller, type_frag);

if(fValue) {
if(g_eCvars[max_health])
set_entvar(iKiller, var_health, floatclamp(fHealthKiller + fValue, fHealthKiller, g_eCvars[max_health]));
else
set_entvar(iKiller, var_health, fHealthKiller + fValue);
}
return HC_CONTINUE;
}

stock Float:get_value(id, type) {
new iFlags = get_user_flags(id);
new iValue[eData_Vampir];
for(new i = 0; i < ArraySize(g_aArray[type]); i++) {
ArrayGetArray(g_aArray[type], i, iValue);
if(iFlags & iValue[data_flags])
return float(iValue[data_value]);
}
return 0.0;
}
Есть плагин LBZ (личных боевых задач) . По выполнению задачи, игрок получает 120 hp
Есть плагин, написанный на заказ, по добавлению жизней... Vampire_pro
В плагине есть такой квар vip_max_health "100"

Суть плагина... В нём имеется такое условие
if(fHealthKiller >= g_eCvars[max_health] && g_eCvars[max_health])
return HC_CONTINUE;


То есть.. если у игрока больше или равно 100, то ничего не делаем.. Если меньше, то добавляем hp согласно его киллам.. Если в голову, то столько то , если в тело, то столько - то.. не важно..

Суть в том, чтобы не добавляло больше, чем указано в vip_max_health. То есть, если у тебя 120 - ты молодец.. Убивай бегай , живи и мы твои hp не трогаем.. Но если меньше, чем vip_max_health, тогда добавим тебе за убийство столько сколько надо..

Так вот... Проблема в том, что работает он сейчас так...Если у игрока 120, он вышел и убил, не потеряв hp, и за убийство он получил награду - 100 hp

Мне кажется, что пол года назад работало всё как надо.. Может обновы reapi или ещё что-то повлияло.. В общем суть я описал.. Судя по условию, всё должно работать, но однако это не так..
 
Последнее редактирование:
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Чекай не квар, а var_max_health. В другом плагине поставь var_max_health = 120.
 
Последнее редактирование:
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
fl0wer, тогда у того кого меньше 100 будет вампирка пополнятся до 120
15 Окт 2020
fl0wer, я так думаю.. Вы условие не совсем поняли
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
stalin_alex, почему она будет пополнятся у других до 120, если мы ставим 120 только кому нужно?
 
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
fl0wer, ты прав и я не знаю.. так ли это.. но ты упустил один момент.. Это ТЕХ ЗАДАНИЕ
15 Окт 2020
1602772730757.png
 

Вложения

Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Ну что я могу сказать, нормально делай - нормально будет.
 
Сообщения
1,293
Реакции
2,294
Помог
57 раз(а)
Есть плагин LBZ (личных боевых задач) . По выполнению задачи, игрок получает 120 hp
Тут сетаем var_max_health = var_max_health + 20 игроку при спавне, или где там надо
Есть плагин, написанный на заказ, по добавлению жизней... Vampire_pro
Тут подчиняемся var_max_health т.е. не лечим больше чем значение в нём
 
Сообщения
1,698
Реакции
1,510
Помог
26 раз(а)
Изначально при спавне, игроку ставится var_health и var_max_health равное 100. Следовательно, можно у любого игрока поставить другое значение var_max_health. А в коде вампиризма избавиться от зависимости квара подставив var_max_health, тем самым упираясь в максимальное здоровье конкретного игрока, а не общего квара.
 
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Спасибо.. подумаю..Как время будет..
 
Сообщения
3,023
Реакции
1,731
Помог
79 раз(а)
тех задания заказываются в платном разделе
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу