hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.06.18. 16:36



Jelenlévő felhasználók

Jelenleg 397 felhasználó van jelen :: 2 regisztrált, 0 rejtett és 395 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot], Google [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: Hitbox
HozzászólásElküldve:2012.01.18. 14:03 
Offline
Tud valamit

Csatlakozott:2011.12.31. 01:03
Hozzászólások:125
Kód:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <regex>
#define MAX_PLAYERS 32
#define MAXINPUT 7
#define SANITARY "abcdefg"
new bool:g_restart_attempt[MAX_PLAYERS + 1]
new amx_show_activity
//new hitbox_allow_knife
//new hitbox_allow_he
new hitbox_bit
public plugin_init(){
   register_plugin("Hitbox Manipulator", "1.00", "Migs Davis")
   register_event("ResetHUD", "event_hud_reset", "be")
   register_event("TextMsg", "event_restart_attempt", "a", "2=#Game_will_restart_in")
   register_clcmd("fullupdate", "clcmd_fullupdate")
   register_concmd("amx_hitbox", "admin_set_hitbox", ADMIN_KICK, "<0|a|b|c|d|e|f|g> - Set hitboxes. Letters equal the body part, can combine letters.")
   //hitbox_allow_knife = register_cvar("hitbox_allow_knife", "1")
   //hitbox_allow_he = register_cvar("hitbox_allow_he", "1")
   hitbox_bit = register_cvar("hitbox_bit", "255")
   amx_show_activity = get_cvar_pointer("amx_show_activity")
}
public clcmd_fullupdate() {
   return PLUGIN_HANDLED
}
public event_restart_attempt(){
   new players[32], num
   get_players(players, num, "a")
   for ( new i; i < num; ++i )
      g_restart_attempt[players[i]] = true
}
public event_hud_reset(id){
   if (g_restart_attempt[id]) {
      g_restart_attempt[id] = false
      return
   }
   set_properties(id)
}
public set_properties(id){
   set_user_hitzones(0, 0, get_pcvar_num(hitbox_bit))
}
public admin_set_hitbox(id, level, cid){
   new flags[MAXINPUT+1], name[32], error[128], result_code, bit = 1
   if ( !cmd_access(id, level, cid, 2) )
      return PLUGIN_HANDLED
   read_argv(1, flags, MAXINPUT)
   strtolower(flags)
   new Regex:re = regex_match(flags, "0", result_code, error, 127)
   if (re >= REGEX_OK) { //This if/else will detect strange syntax, even if it doesn't need to
      regex_free(re)
      if (flags[0] == '0') {
         if (flags[1] == '^0'){
            bit = 0;
         } else {
            bit = 0; //they have a 0 followed by unnecessary characters
         }
      } else{
         bit =  1 // there is a 0 mixed in with other characters
      }
   } else {
      new buf[2] = {0,0}
      for (new i = 0; i<MAXINPUT; i++){
         buf[0] = flags[i];
         re = regex_match(SANITARY, buf[0], result_code, error, 127)
         if (re >= REGEX_OK){
            regex_free(re)
         } else {
            flags[i] = 0 //They have weird characters in here
         }
      }
   }
   if (bit) {
      new buf2[2] = {97,0} //97 = a.
      for (new j = 2; j <= 128; j*=2, buf2[0]++){
         re = regex_match(flags, buf2, result_code, error, 127)
         if (re >= REGEX_OK){
            regex_free(re)
            bit += j
         }
      }
   }
   if (bit == 1){
      //They didn't type any valid flags at all
   }
   set_pcvar_num(hitbox_bit, bit)
   get_user_name(id, name, 31)
   switch ( get_pcvar_num(amx_show_activity) ){
      case 2:   client_print(0, print_chat, "[AMXX] ADMIN %s has manipulated the hitboxes!", name)
      case 1:   client_print(0, print_chat, "[AMXX] ADMIN has manipulated the hitboxes!")
   }
   set_properties(0)
   log_amx("[AMXX] ADMIN %s: set hitboxes to %d", name, bit)
   return PLUGIN_HANDLED
}


valaki segitene ebbe hogy ne csak fejest löjön hanem pl hsa kez stb ?:)


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Hitbox
HozzászólásElküldve:2012.01.18. 14:51 
Offline
Imperátor
Avatar

Csatlakozott:2009.04.21. 09:33
Hozzászólások:3991
Megköszönt másnak: 5 alkalommal
Megköszönték neki: 135 alkalommal
hitbox_bit alapértelmezetten 255, azaz mindent el tudsz lőni. Ezt kell állítani, hogy mit lehessen eltalálni.

A set_user_hitzones/get_user_hitzones ban használt bit szerint kell beállítani.

Kód:
Sets hit zones for player. 
Parts of body are as bits:
1 - generic
2 - head
4 - chest
8 - stomach
16 - left arm
32 - right arm
64 - left leg
128 - right leg

Set index to a player's index and leave target at 0 to define what bodyparts this player can hit when he is firing.

_________________
Kód:
I'm back

Kép


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 28 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