hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.08.13. 18:29



Jelenlévő felhasználók

Jelenleg 382 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 381 vendég

A legtöbb felhasználó (2883 fő) 2025.07.30. 16:00-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Ez a plugin mit csinál?
HozzászólásElküldve:2012.03.28. 17:24 
Offline
Őskövület
Avatar

Csatlakozott:2011.09.26. 20:33
Hozzászólások:2105
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 33 alkalommal
kérdés a téma címében
Kód:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>

#define PLUGIN "Damage Fire"
#define VERSION "1.0"
#define AUTHOR "NST"
#define MAX_KILLS 50
#define is_valid_player(%1) (1 <= %1 <= 32)

new max_show = 16, max_len = 15
new kills[33][MAX_KILLS][4], list_victims[2000], num_victims[33], g_hudmsg2, cvar_show_damage

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
   register_logevent("logevent_round_end", 2, "1=Round_End")
   
   // cvar
   cvar_show_damage = register_cvar("nst_show_damage_fire","0")
   
   // msg
   g_hudmsg2 = CreateHudSyncObj()
}
// Log Event Round End
public logevent_round_end()
{
   for (new id = 1; id <= 32; id++)
   {
      if (!is_user_connected(id)) continue;
      show_victims(id)
   }
}

public on_damage(id)
{
   static attacker; attacker = get_user_attacker(id)
   static damage; damage = read_data(2)
   
   if (!is_user_connected(id) || !is_user_connected(attacker) || attacker==id) return;
   

   new damage_fire
   new health_old = get_user_health(id)+damage
   if (damage <= health_old) damage_fire = damage
   else damage_fire = health_old

   new i = 0, e = 0, check_e = 0, victim_id = 1
   while (i < MAX_KILLS && check_e != 1 && victim_id > 0)
   {
      victim_id = kills[attacker][i][0]
      if (victim_id == id && kills[attacker][i][1] != 1) {
         e = i
         check_e = 1
      }

      i += 1
   }
   if (e == 0 && check_e != 1) {
      e = num_victims[attacker]
      num_victims[attacker] += 1
   }
   if (e < MAX_KILLS)
   {
      kills[attacker][e][0] = id
      kills[attacker][e][1] = 0
      kills[attacker][e][2] += damage_fire
   }
   if (get_pcvar_num(cvar_show_damage))
   {
      set_hudmessage(255, 0, 0, -1.0, 0.55, 2, 0.1, 2.0, 0.1, 0.1, -1)
      ShowSyncHudMsg(attacker, g_hudmsg2, "%i", damage)
   }
}
public client_death(killer, victim, wpnindex, hitplace, TK, id)
{
   if (!is_user_connected(victim) || !is_user_connected(killer) || killer==victim) return;

   if (wpnindex != CSW_C4)
   {
      // UPDATE VICTIMS OF VICTIM
      new headshot = (hitplace == HIT_HEAD) ? 1 : 0
      new vic_wpn, num_vic = num_victims[killer]
      if (num_vic<=0 || num_vic>=MAX_KILLS) return;
      
      if (headshot && wpnindex) vic_wpn = 1
      else if (wpnindex == CSW_KNIFE) vic_wpn = 2
      else if (wpnindex == CSW_HEGRENADE) vic_wpn = 3
      else vic_wpn = 4
      kills[killer][(num_vic-1)][3] = vic_wpn
      
      for (new e = 0; e < 33; e++)
      {
         for (new ee = 0; ee < num_victims[e]; ee++)
         {
            if (kills[e][ee][0] == victim) kills[e][ee][1] = 1
         }
      }
      
      // SHOW VICTIMS OF PLAYER
      show_victims(victim)
   }
}
reset_victims(idpl)
{
   for (new i = 0; i < MAX_KILLS; i++)
   {
      kills[idpl][i][0] = 0
      kills[idpl][i][1] = 0
      kills[idpl][i][2] = 0
      kills[idpl][i][3] = 0
   }
   num_victims[idpl] = 0
}
show_victims(idpl)
{
   new i = 0, victim_id = 1, num_die = 0
   while (i < MAX_KILLS && victim_id > 0)
   {
      victim_id = kills[idpl][i][0]
      if (victim_id > 0)
      {
         if (kills[idpl][i][3] > 0 || kills[idpl][i][2] >= 100) num_die += 1
         
         if (i < max_show)
         {
            new victim_idwpn = kills[idpl][i][3]
            new victim_wpn[10]
            if (victim_idwpn == 1) victim_wpn = "[HS]"
            else if (victim_idwpn == 2) victim_wpn = "[KF]"
            else if (victim_idwpn == 3) victim_wpn = "[HE]"
            else victim_wpn = ""
      
            new victim_name[33], victim_row[33], victim_name_fix[33]
            get_user_name(kills[idpl][i][0],victim_name,33)
            new num_name = strlen(victim_name)
            if (num_name > max_len) {
               copy(victim_name_fix,(max_len-3),victim_name)
               add (victim_name_fix,max_len,"...")
            }
            else victim_name_fix = victim_name
         
            format (victim_row ,33, "%s: %i %s^n", victim_name_fix, kills[idpl][i][2], victim_wpn)
            add (list_victims,1999,victim_row)
         }
      }
      i += 1
   }
   new num_player = num_victims[idpl]
   new add1[10]
   if (num_player > 0)
   {
      if (num_player > max_show) add1 = "...."
      format (list_victims ,2000, "%i Player / %i Die^n%s %s", num_player, num_die, list_victims,add1)
      show_menu(idpl, 5, list_victims, 5, "list_victims")
   }
   
   reset_victims(idpl)
   list_victims = ""
   
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Ez a plugin mit csinál?
HozzászólásElküldve:2012.03.28. 18:32 
Offline
Őstag

Csatlakozott:2011.06.12. 20:51
Hozzászólások:1089
Megköszönt másnak: 3 alkalommal
Megköszönték neki: 44 alkalommal
Sebzés kiíró.

_________________
[img]semmi[/img]


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 31 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole