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

Problem z zadawaniem obrażeń przez hamsandwich (ham_takedamage)Obrażenia nie są zadawane pomimo wykonania się kodu

hamsandwich takedamage brak obrażeń

Najlepsza odpowiedź Jcr, 21.07.2015 09:16

Dobra ogarnałem, nie wiem czemu brakowało mi mózgu przez 2 tygodnie siedzenia z tym, a dzisiaj usiadłem i w 5 minut to zrobiłem... :D

 

Tworzymy zmienna przed public init

new lastattacker[32]

Przy wywołaniu ataku na gracza dajemy sobie

lastattacker[ID OFIARY]=ID ATAKUJACEGO;

W tasku dałem sobie:

ExecuteHamB(Ham_TakeDamage, id, lastattacker[id], lastattacker[id], 1.0, 1<<1)

+ Taki frag dodaje się do csstats + innych rzeczy typu BF2, diablo, cod itp.

 

 

Czy wie ktoś może, jak zlikwidować dzwięk uderzenia przy wywołaniu takiego czegoś?

 

Przejdź do postu


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

#1 Jcr

    Pomocny

  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 13.07.2015 16:05

Widziałem już temat :

http://amxx.pl/topic/149213-executeham-takedamage-nie-zadaje-obra%C5%BCe%C5%84-mimo-i%C5%BC-s%C5%82ycha%C4%87-odg%C5%82os-uderzenia/

ale niestety nie rozwiązał mojego problemu.

Problemy idealnie takie same, tylko, że nie chce żadnego codmoda w to mieszać, bo też nie istnieje w żadnym miejscu w amxx u mnie.

 

Symptomy:

1. Nie są zadawane obrażenia pomimo dźwięku uderzenia

 

+ Chciałbym usunąć dźwięk tego uderzenia.

 

linijka:

ExecuteHamB(Ham_TakeDamage, OFIARA, ATAKUJACY, ATAKUJACY, 1.0, 1<<1)

OFIARA = wiadomo, ofiara

ATAKUJACY = wiadomo, atakujacy

1.0 = 1 dmg

1<<1 = obrażenia od kul

 

zastosowanie w kodzie:

set_task(float(10), "zabierzhp", id, _, _, "b"); public zabierzhp(id)
{
    if(is_user_alive(id))
    {
        ExecuteHamB(Ham_TakeDamage, OFIARA, ATAKUJACY, ATAKUJACY, 1.0, 1<<1)
    {
{

Kod wykonuje się co sekundę przez 10 sekund.

Słychać "uderzenia" gracza z taskiem

 

ps: jeśli zamierza ktoś zamknąć (znowu) za niezrozumiały temat, to proszę o przykład zrozumiałego tematu dla tego wątku.


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.07.2015 18:55


Kod wykonuje się co sekundę przez 10 sekund.


set_task(float(10), "zabierzhp", id, _, _, "b");

 

Ten kod wykonuje się co 10s w nieskończoność....

 

Tu poprawny task na 10 razy co sekunde

set_task(1.0, "zabierzhp", id, _, _, "a", 10);

id- to ofiara?

skąd masz attackera wziąć? Podaj troszkę więcej kodu :D


  • +
  • -
  • 0

#3 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 14.07.2015 08:33

 


Kod wykonuje się co sekundę przez 10 sekund.

 

 


set_task(float(10), "zabierzhp", id, _, _, "b");

 

Ten kod wykonuje się co 10s w nieskończoność....

 

Tu poprawny task na 10 razy co sekunde

set_task(1.0, "zabierzhp", id, _, _, "a", 10);

id- to ofiara?

skąd masz attackera wziąć? Podaj troszkę więcej kodu :D

 

Racja rypłem z tymi 10 sekundami, pomyliłem sie :P

 

Po południu kopsne wincyj kodu jak będe w domu, czy poprawne zdefiniowanie ATTACKERA, może zacząć zadawać obrażenia?
Może to być tak, że nie zadaje obrażeń, bo jakby nie ma kto ich zadawać?
 


  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.07.2015 11:18

Myślę, że tak

Lepiej zrobić tablicę i przesłać przez task niż kombinować z id taska
  • +
  • -
  • 0

#5 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 16.07.2015 16:50

Myślę, że tak

Lepiej zrobić tablicę i przesłać przez task niż kombinować z id taska

 

Możesz podesłać jakiś przykład? Dalej mam problem z ustawieniem ID atakującego :/
 


  • +
  • -
  • 0

#6 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 16.07.2015 17:00

Ostatni przykład

http://amxx.pl/dokum...a/f120/set-task


  • +
  • -
  • 0

#7 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 17.07.2015 09:04

Dzięki, dzisiaj sobie to sprawdze i dam znać czy pomogło, ostatnio mało czasu mam :)

 

A właśnie, jeśli:

  1. public plugin_init(){
  2. RegisterHam(Ham_Killed, "player", "HamKilledPost", 1);
  3. }

pobiera informacje o zabiciu gracza, a żeby pobrać info o samym postrzale, to używam sobie tego?:

  1. public plugin_init(){
  2. RegisterHam(Ham_TakeDamage, "player", "Fw_PlayerTakeDamage", 0)'
  3. }

I tu pytanie jeszcze jedno, "player" to jest ofiara, a jak pobrać atakującego?


Użytkownik Jcr edytował ten post 17.07.2015 09:05

  • +
  • -
  • 0

#8 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 17.07.2015 11:07

RegisterHam(Ham_Killed, "player", "HamKilledPost", 1);

To łapie zdarzenie śmierci bytu o classname = "player" (czyli gracza), na dodatek jest to zdarzenie POST, czyli nie możesz wpłynąć na zdarzenie już :/, ale info można pobrać.

RegisterHam(Ham_TakeDamage, "player", "Fw_PlayerTakeDamage", 0)

Postrzał jak postrzał... Zadanie obrażeń bytowi o classname = "player" (czyli gracz), to zdarzenie jest PRE, czyli możesz zmienić np. obrażenia lub atakującego lub damagebits.

 

 

 

To co podasz w miejsce classname, zawsze będzie w handlerze fukcji jako pierwszy parametr...

public Fw_PlayerTakeDamage(ofiara, byt_atakujacy, idatakujacego, Float:damage, damagebits)

w przypadku broni palnych jak i noża 2 i 3 parametr są równe

 


  • +
  • -
  • 0

#9 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 19.07.2015 19:24

A mogę prosić o jakiś przykład takiego pluginu? Bo dalej nie mogę sobie poradzić z tym :(

(takiego który modyfikuje / zadaje obrazenia)


  • +
  • -
  • 0

#10 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 21.07.2015 09:16   Najlepsza odpowiedź

Dobra ogarnałem, nie wiem czemu brakowało mi mózgu przez 2 tygodnie siedzenia z tym, a dzisiaj usiadłem i w 5 minut to zrobiłem... :D

 

Tworzymy zmienna przed public init

new lastattacker[32]

Przy wywołaniu ataku na gracza dajemy sobie

lastattacker[ID OFIARY]=ID ATAKUJACEGO;

W tasku dałem sobie:

ExecuteHamB(Ham_TakeDamage, id, lastattacker[id], lastattacker[id], 1.0, 1<<1)

+ Taki frag dodaje się do csstats + innych rzeczy typu BF2, diablo, cod itp.

 

 

Czy wie ktoś może, jak zlikwidować dzwięk uderzenia przy wywołaniu takiego czegoś?

 


  • +
  • -
  • 0

#11 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 21.07.2015 10:39

Jeszcze jedna uwaga do takiego kodu, taki typ ataku, zabiera także kevlar, więc jeśli chcemy zadawać po 1 hp to się troche naczekamy, przy zadawaniu 20 dmg, znika ok 10 kevlaru i 10 hp, przy 10 hp, 10 kevlaru i 10 hp, ale przy 2 dmg, znika po 0 / 1 kevlaru i 0 / 1 hp


  • +
  • -
  • 0

#12 Jcr

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: -3
Nowy

  • Postów:69
  • Lokalizacja:Wroclaw
Offline

Napisano 21.07.2015 12:31

Do zamknięcia


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: hamsandwich, takedamage, brak obrażeń

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

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