#include <amxmodx>
#include <fun>
#define REG_HP 23
#define MAX_HP 3000
#define TIME_HP 1
public plugin_init()
register_event("Health", "Health", "be");
public Health(id)
{
if(get_user_team(id) == 1 && is_user_alive(id))
if(!task_exists(id))
set_task(float(TIME_HP), "giveHp", id + 234);
}
public giveHp(id)
{
id -= 234;
new iNowHP = get_user_health(id);
if(iNowHP < MAX_HP)
{
if(task_exists(id + 234)) remove_task(id + 234);
}
for(new i = REG_HP; i > 0; i--)
{
if(iNowHP + i > MAX_HP)
continue;
else
{
if(iNowHP < MAX_HP)
set_user_health(id, (iNowHP + i));
break;
}
}
}
public client_disconnect(id)
{
if(task_exists(id + 234))
remove_task(id + 234);
}
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Guest Message by DevFuse
[ROZWIĄZANE] regeneracja hp
Temat rozp. ExTaza?!, 07.02.2012 01:44
5 odpowiedzi w tym temacie
#1
Napisano 07.02.2012 01:44
Witam skorzystałem z poniższego kodu i powiem tak
Mimo że ustawione jest tylko dla TT to CT też sie regeneruje HP i powiem jeszcze
Czasami sie w ogóle nie regeneruje . Cóż źle ? 
#2
Napisano 07.02.2012 23:24
Sprawdź to.
Spoiler
#3
Napisano 08.02.2012 03:19
Teraz się regeneruje za każdym razem , ale nadal CT też się regeneruje ; /
#4
Napisano 08.02.2012 16:08
Sprawdź tak, bo czas to float:
#include <amxmodx>
#include <cstrike>
#include <fun>
#define REG_HP 23
#define MAX_HP 3000
#define TIME_HP 1.0
#define TASK_HP 234
public plugin_init() register_event("Health", "Health", "be");
public Health(id)
{
if(!is_user_alive(id)) return;
if(cs_get_user_team(id) == CS_TEAM_T){if(!task_exists(id)){set_task(float(TIME_HP), "giveHp",id+TASK_HP);}}
}
public giveHp(id)
{
id -= TASK_HP;
new iNowHP = get_user_health(id);
if(iNowHP < MAX_HP){
if(task_exists(id+TASK_HP)) remove_task(id+TASK_HP);
}
for(new i=REG_HP; i>0; i--)
{
if(iNowHP + i>MAX_HP){continue;}
else{
if(iNowHP < MAX_HP) set_user_health(id, (iNowHP + i));
break;
}
}
}
public client_disconnect(id) remove_task(id+TASK_HP);
#5
Napisano 09.02.2012 02:17
Dzięki Panowie , ale gdyż używam Zombie bez klas przerobiłem jedna klase regeneracyjna i działa
macie poniżej. Można skorzystać
//================================================================================*/
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
#include <fun>
new g_zclass_regen_toggle, g_time, g_amount, g_zclass_zombie
new g_MaxPlayers
/*================================================================================
[Plugin Customization]
=================================================================================*/
// Classic Zombie Attributes
new const zclass1_name[] = { "ZOMBIE" }
new const zclass1_info[] = { "ZABIJ CT" }
new const zclass1_model[] = { "zombie_gonome" }
new const zclass1_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass1_health = 3000
const zclass1_speed = 225
const Float:zclass1_gravity = 1.0
const Float:zclass1_knockback = 1.0
const TASKID_REG = 3000
public plugin_init()
{
g_zclass_regen_toggle = register_cvar("zp_zclass_regen", "1")
g_time = register_cvar("zp_regen_time", "1")
g_amount = register_cvar("zp_regen_amount", "20")
g_MaxPlayers = get_maxplayers()
}
/*============================================================================*/
// Class IDs
// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
register_plugin("[ZP] Default Zombie Classes", "4.3", "MeRcyLeZZ")
// Register all classes
g_zclass_zombie = zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback)
}
public zp_round_ended()
{
for(new id = 1; id <= g_MaxPlayers; id++)
{
if(task_exists(id + TASKID_REG)) remove_task(id + TASKID_REG)
}
}
public zp_user_infected_post(player, infector)
{
if (zp_get_user_zombie_class(player) == g_zclass_zombie)
set_task(get_pcvar_float(g_time), "Regenerate", player + TASKID_REG, _, _, "b")
}
public Regenerate(id)
{
new player = id - TASKID_REG
if(!get_pcvar_num(g_zclass_regen_toggle) || !is_user_connected(player) || !is_user_alive(player) || !zp_get_user_zombie(player))
{
remove_task(player + TASKID_REG)
return
}
if(pev(player, pev_health) <= 10.0)
{
remove_task(player + TASKID_REG)
return
}
new ZMaxHealth = zp_get_zombie_maxhealth(player)
if(pev(player, pev_health) < ZMaxHealth)
{
new RegenHealth = pev(player, pev_health) + get_pcvar_num(g_amount)
set_pev(player, pev_health, float(min(RegenHealth, ZMaxHealth)))
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/
#6
Napisano 10.02.2012 19:28
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz,
raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.Z pozdrowieniami,
Zespół AMXX.PL
Użytkownicy przeglądający ten temat: 2
0 użytkowników, 2 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty








