Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

freefragcs - zdjęcie

freefragcs

Rejestracja: 27.12.2013
Aktualnie: Nieaktywny
Poza forum Ostatnio: 25.01.2014 12:40
-----

#601077 Najlepszy gracz rundy

Napisane przez Wielkie Jol w 04.01.2014 11:27

Plugin fajny, tyle, że w logach robi śmietnik:

L 01/04/2014 - 00:00:17: [spree.amxx] 4->2
L 01/04/2014 - 00:00:17: [spree.amxx] (2)4->2
L 01/04/2014 - 00:00:44: [spree.amxx] 2->3
L 01/04/2014 - 00:00:44: [spree.amxx] (2)2->3
L 01/04/2014 - 00:00:45: [spree.amxx] 4->2
L 01/04/2014 - 00:00:45: [spree.amxx] (2)4->2
L 01/04/2014 - 00:01:09: [spree.amxx] 2->4
L 01/04/2014 - 00:01:09: [spree.amxx] (2)2->4
L 01/04/2014 - 00:01:26: [spree.amxx] 2->3
L 01/04/2014 - 00:01:26: [spree.amxx] (2)2->3
L 01/04/2014 - 00:01:57: [spree.amxx] 2->4
L 01/04/2014 - 00:01:57: [spree.amxx] (2)2->4
L 01/04/2014 - 00:02:34: [spree.amxx] 3->2
L 01/04/2014 - 00:02:34: [spree.amxx] (2)3->2
L 01/04/2014 - 00:03:35: [spree.amxx] 2->4
L 01/04/2014 - 00:03:35: [spree.amxx] (2)2->4
L 01/04/2014 - 00:09:15: [spree.amxx] 3->2
L 01/04/2014 - 00:09:15: [spree.amxx] (2)3->2
L 01/04/2014 - 00:09:58: [spree.amxx] 2->3
L 01/04/2014 - 00:09:58: [spree.amxx] (2)2->3

Jak to wyłączyć?

 

W SMA usuń:

    log_amx("(2)%d->%d",kid,vid);
i
    log_amx("%d->%d",kid,vid);

  • +
  • -
  • 1


#583729 Ustawienie obrażeń z inteligencją

Napisane przez RasiaQ w 08.11.2013 21:49

Chciałem w tym temacie zaprezentować, jak ustawić danej klase x(+int) obrażeń z danej broni. (Nie znalazłem takowego w tym dziale ;_; )

 

1. Na sam początek dodajemy:

#include <hamsandwich>

i pod includami:

#define DMG_BULLET (1<<1)

i zmienna:

new bool:ma_klase[33];

2. do plugin_init() dodajemy:

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

3*. Jeśli nie masz to dodaj:

public cod_class_enabled(id)
    ma_klase[id] = true;

public cod_class_disabled(id)
    ma_klase[id] = false;

4. I na koniec .sma

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
    
    if(!ma_klase[idattacker])
        return HAM_IGNORED;
    
    if(damagebits & DMG_BULLET)
    {
        new weapon = get_user_weapon(idattacker);
        

if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET)
cod_inflict_damage(idattacker, this, 5.0, 0.1, idinflictor, damagebits);
                
    }
    
    return HAM_IGNORED;
}

 

CSW_BRON - BRON zmieniasz na nazwę swojej broni np. CSW_M4A1

 

W powyższym kodzie przyjrzyj się temu:

cod_inflict_damage(idattacker, this, 5.0, 0.1, idinflictor, damagebits);

 

5.0 oznacza ile obrażeń będziemy zadawali. W tym przypadku jest to 5(+int). Jeśli zmienimy np. na 50.0 to będziemy zadawać 50(+int) obrażeń więcej.

0.1 Jest to współczynnik/mnożnik tego, jak nasza inteligencja będzie się przekładała na obrażenia. Np.

0.1 - 10int = 1 DMG
0.2 - 5int = 1 DMG
0.15 - 6.(3)int = 1 DMG
0.14 - 7.14int = 1 DMG
0.066666 - 15int = 1 DMG
0.05 - 20int = 1 DMG

 

Sposób przeliczania tego jest bardzo prosty (nauczył mnie go dzisiaj rano Vasto_Lorde[btw. dzięki :D]), otóż 1(jeden) dzielimy przez tyle ile chcemy inteligencji na 1 DMG. Np.

1/20 = 0.05 ( / zastępuje znak dzielenia ( patrz kod powyżej. Co wyszło ?)
1/15 = 0.66666

 

Łatwo sprawdzić na kalkulatorze ;P

 

5. A więc nasz finalny kod będzie wyglądał tak:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1) 

new bool:ma_klase[33];

new const nazwa[] = "TEST";
new const opis[] = "Zadajesz 5(+int) obrazen z xxx";
new const bronie = 1<<CSW_M3;
new const zdrowie = 20;
new const kondycja = 40;
new const inteligencja = 50;
new const wytrzymalosc = 60;

public plugin_init() 
{
    register_plugin(nazwa, "1.0", "Drizzt");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
    ma_klase[id] = true;

public cod_class_disabled(id)
    ma_klase[id] = false;

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
    
    if(!ma_klase[idattacker])
        return HAM_IGNORED;
    
    if(damagebits & DMG_BULLET)
    {
        new weapon = get_user_weapon(idattacker);
        

if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET)
cod_inflict_damage(idattacker, this, 5.0, 0.1, idinflictor, damagebits);
                
    }
    
    return HAM_IGNORED;
}

 

To chyba wszystko jasne ;>

Dziękuję za uwagę. Gdyby ktoś czegoś nie rozumiał, będę wyjaśniał.

 


  • +
  • -
  • 13


#587145 Jak dodać 1/x z wybranej broni w klasie

Napisane przez RasiaQ w 21.11.2013 18:29

Witam,
W związku z masą tematów "Nie mogę dodać 1/x z broni" albo "Jak dodać 1/x z broni" postanowiłem napisać poradnik, który pokaże, jak to zrobić.
 
1.W includach dodaj:

#include <hamsandwich>

 
*Jeśli już masz, to nie musisz dodawać
 
2.Pod wszystkimi include:

#define DMG_BULLET (1<<1)

3.Zmienna:

new ma_klase[33];

 
4. W plugin_init rejestrujemy:

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

*Jeśli nie mamy, to dodajemy:

public cod_class_enabled(id)
{
    ma_klase[id] = true;

}

public cod_class_disabled(id)
{
        ma_klase[id] = false;

}

5. A następnie dodajemy public:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
        
    if(!ma_klase[idattacker])
        return HAM_IGNORED;      
        
    if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET && random_num(1, x) == 1)
        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
            
    return HAM_IGNORED;
}

 
CSW_BRON - Zmieniasz na wybraną broń np. CSW_AK47
 
6. W zarejestrowanym publicu zwróć uwagę na to:

random_num(1, x) == 1)

x zmieniasz na szansę na zabicie. Jeśli ustawisz 3, to klasa będzie miała 1/3 szans na zabicie z danej broni.
 
7. Jeśli chcemy, aby klasa miała natychmiastowe zabicie, to usuwamy:

&& random_num(1, x) == 1

Czyli nasz warunek będzie wyglądał tak:

if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET)
    cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

 
8*. Jeśli w klasie zarejestrowany jest już powyższy public, a chcemy dodać 1/x z innej broni to pod:

if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET && random_num(1, x) == 1)
    cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

dodajemy:

if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_BRON && damagebits & DMG_BULLET && random_num(1, x) == 1)
    cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

 
To chyba wszystko jasne.
 
Aby dodać 1/x z kosy (PPM):

Spoiler

 

Aby dodać 1/x z HE:

Spoiler

 

Mam nadzieję, że poradnik zrozumiały i w miarę się przydał. POWODZENIA !


  • +
  • -
  • 21


#598628 Call of Duty [COD] by Mentos

Napisane przez Daj buziaka w 29.12.2013 20:06

ja testowałem i mi działały.

może modułów nie masz odblokowanych albo coś w tym stylu.