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
 

Zdjęcie
CoD Nowy

Ustawienie obrażeń z inteligencją

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
11 odpowiedzi w tym temacie

#1 RasiaQ

    Wracam.

  • Power User

Reputacja: 307
Wszechpomocny

  • Postów:639
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Browar Namysłów
Offline

Napisano 08.11.2013 21:49

*
Popularny

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

#2 Lukas 9220

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:7
  • Lokalizacja:Staszów
Offline

Napisano 17.11.2013 19:45

Dzięki, bardzo mi tym pomogłeś, jak coś to już wiem do kogo się zwracać, jeszcze raz dzięki !



#3 Magic..

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:13
  • Imię:Konrad
  • Lokalizacja:de_dust
Offline

Napisano 21.12.2013 17:43

Było :D ale trzmaj tego + .


Użytkownik Magic.. edytował ten post 21.12.2013 17:43

  • +
  • -
  • 0

#4 koong

    Profesjonalista

  • Użytkownik

Reputacja: 89
Zaawansowany

  • Postów:209
  • Imię:Dominik
  • Lokalizacja:Poznań
Offline

Napisano 10.01.2014 20:50

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

no to jest że 10 int=1 DMG

a jak chcę 1 int =1DMG to?

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

 

dobrze mówię?


  • +
  • -
  • 0
b_350_20_3A3A3A_3A3A3A_F19A15_111111.png

#5 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 10.01.2014 20:58

Dobrze mówisz.


  • +
  • -
  • 2

#6 koong

    Profesjonalista

  • Użytkownik

Reputacja: 89
Zaawansowany

  • Postów:209
  • Imię:Dominik
  • Lokalizacja:Poznań
Offline

Napisano 10.01.2014 21:01

Okej Dziękuję za info  łap "+"


  • +
  • -
  • 0
b_350_20_3A3A3A_3A3A3A_F19A15_111111.png

#7 WirtualnyFanatyk

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:15
  • Imię:Mateusz
  • Lokalizacja:Polska
Offline

Napisano 16.05.2021 16:19

Czy kto byłby w stanie zrobić %dmg od inteligencji, czyli 10pkt daje np 1%, chodzi mi o fakt, że czy trafimy w glowe za 100 czy nogi za 20 to aktualnie bijemy + pkt dmg czyli np 100+20 Czy 20+20,więc nie trudno zauważyć że mnożenie da lepszy efekt bo 30% da 130dmg za głowę ale już 20+30% czyli jakieś 27dmg i to rozwiąże duży problem który mam przy klasie z awp.

Może być dmg od danej broni, a jak zrobić aby dana klasa otrzymywała bonus dmg od każdej broni a nie tylko od konkretnej.
  • +
  • -
  • 0

#8 Misiu.

    Kochanek DarkGL

  • Power User

Reputacja: 174
Profesjonalista

  • Postów:539
  • GG:
  • Steam:steam
  • Imię:Adrian
  • Lokalizacja:Zgorzelec
Offline

Napisano 16.05.2021 17:16


jak zrobić aby dana klasa otrzymywała bonus dmg od każdej broni a nie tylko od konkretnej

 

Wystarczy usunąć to :)

&& get_user_weapon(idattacker) == CSW_BRON

  • +
  • -
  • 0

PoGrywamy.pl - Pograj Razem Z Nami

 

Tatusiek serwerów:

[ONLY DD2 #2] 1shot2kill.pl

[ONLY DD2] PoGrywamy.pl

Przyjmuje płatne zlecenia!


#9 WirtualnyFanatyk

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:15
  • Imię:Mateusz
  • Lokalizacja:Polska
Offline

Napisano 17.05.2021 20:07

Dobrze a zamiana z dmg w pkt na każdy pkt to dmg zwiększone o 0.1% czyli 10 int da 1%dodatkowego dmg do zadawanej podstawy
  • +
  • -
  • 0

#10 Misiu.

    Kochanek DarkGL

  • Power User

Reputacja: 174
Profesjonalista

  • Postów:539
  • GG:
  • Steam:steam
  • Imię:Adrian
  • Lokalizacja:Zgorzelec
Offline

Napisano 18.05.2021 07:53

Procentowe podnoszenie obrażeń możesz uzyskać poprzez użycie https://amxx.pl/doku...etHamParamFloatdla odpowiedniej broni.

SetHamParamFloat(4, * 5.0)

  • +
  • -
  • 0

PoGrywamy.pl - Pograj Razem Z Nami

 

Tatusiek serwerów:

[ONLY DD2 #2] 1shot2kill.pl

[ONLY DD2] PoGrywamy.pl

Przyjmuje płatne zlecenia!


#11 WirtualnyFanatyk

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:15
  • Imię:Mateusz
  • Lokalizacja:Polska
Offline

Napisano 18.05.2021 18:09

A jak to zrobić, tak aby zależało to od inteligencji, to co dałeś to fajne aby na stałe dać jakiejś klasie dodatkowy dmg
  • +
  • -
  • 0

#12 Misiu.

    Kochanek DarkGL

  • Power User

Reputacja: 174
Profesjonalista

  • Postów:539
  • GG:
  • Steam:steam
  • Imię:Adrian
  • Lokalizacja:Zgorzelec
Offline

Napisano 18.05.2021 19:58

A jak to zrobić, tak aby zależało to od inteligencji, to co dałeś to fajne aby na stałe dać jakiejś klasie dodatkowy dmg

 

Pobrać wartość inteligencji gracza i przemnożyć przez odpowiednią liczbę w zależności jaki chcesz % za int?

 

inteligencja gracza * 0.001 

 

 

Jak pobrać inteligencje gracza masz wyjaśnione w codmod.inc i użyte w silniku coda, śmiało możesz się na tym wzorować.


  • +
  • -
  • 0

PoGrywamy.pl - Pograj Razem Z Nami

 

Tatusiek serwerów:

[ONLY DD2 #2] 1shot2kill.pl

[ONLY DD2] PoGrywamy.pl

Przyjmuje płatne zlecenia!






Również z jednym lub większą ilością słów kluczowych: cod nowy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych