←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] regeneracja hp

Zablokowany

  • +
  • -
ExTaza?! - zdjęcie ExTaza?! 07.02.2012

Witam skorzystałem z poniższego kodu i powiem tak ;P Mimo że ustawione jest tylko dla TT to CT też sie regeneruje HP i powiem jeszcze xD Czasami sie w ogóle nie regeneruje . Cóż źle ? ;>

#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);
}
Odpowiedz

hardbot - zdjęcie hardbot 07.02.2012

Sprawdź to.

Spoiler
Odpowiedz

  • +
  • -
ExTaza?! - zdjęcie ExTaza?! 08.02.2012

Teraz się regeneruje za każdym razem , ale nadal CT też się regeneruje ; /
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 08.02.2012

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);
Odpowiedz

  • +
  • -
ExTaza?! - zdjęcie ExTaza?! 09.02.2012

Dzięki Panowie , ale gdyż używam Zombie bez klas przerobiłem jedna klase regeneracyjna i działa ;P 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 }
*/
Odpowiedz

  • +
  • -
Ojciec Dyrektor - zdjęcie Ojciec Dyrektor 10.02.2012

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany