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

read_data a Wpływanie na obrażenia


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

#1 Eustachy8

    Wszechpomocny

  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 27.09.2012 15:15

zrobiłem to tak:
RegisterHam(Ham_TakeDamage, "player", "Fw_HamPlayerTakeDamage", 0)
(...)

public Fw_HamPlayerTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if (ma_g36c[this])
{
new iWeapon = read_data(2);
if(iWeapon == CSW_P90)
{
        SetHamParamFloat(4, damage*2) //Wszystkie obrażenia są zmienione na 1 obojętnie od miejsca trafienia i broni

}
}
}
a dmg się nie zmienia ;<

if (ma_g36c[this])
ten warunek na pewno przechodzi, ponieważ w innej funkcji podmienia dobrze broń
(27.09.2012 20:48):
Temat został wydzielony stąd

  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#2 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 27.09.2012 17:15



new iWeapon = read_data(2);
if(iWeapon == CSW_P90)
{

read_data tu nie zadziała użyj get_user_weapon( this );
  • +
  • -
  • 1

#3 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 27.09.2012 20:50

Fili:P ma rację. Od siebie dodam, że read_data służy odczytaniu wartości danego parametru forwardu, w tym wypadku będzie to idinflictor.

#4 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 28.09.2012 12:16

dziękować ;)
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#5 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 30.09.2012 19:39

jest tak:

public Fw_HamPlayerTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if (ma_g36c[this])
{
new iWeapon=get_user_weapon( this ); 
if(iWeapon == CSW_P90)
{
ExecuteHam(Ham_TakeDamage, idinflictor, this, this, damage*2, (1<<31) | damagebits);
}
}
}
i zdarza się, że jak ktoś mnie zabije, sam również ginie
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 14.10.2012 21:01

Nie bardzo rozumiem, co chcesz tutaj uzyskać.

Jeśli ofiara ataku ma g36c i jej obecna broń to CSW_P90,
to bytowi zadającemu obrażenia, ofiara sama z siebie zadaje dwukrotnie większe obrażenia od otrzymanych.

Nic dziwnego, że atakujący czasem ginie, ale chyba jest coś źle,
bo nie sądzę, żebyś chciał bytowi zadawać obrażenia (np. granatowi czy ścianie)
Sprecyzuj jeszcze raz, dokładnie, na czym Ci zależy (co chcesz osiągnąć).

#7 Eustachy8

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 116
Zaawansowany

  • Postów:304
  • Imię:Kuba
  • Lokalizacja:Buczacz
Offline

Napisano 21.10.2012 21:24

kupuje g36c i zadaje 2x obrażenia przeciwnikom. Jak standardowo strzał p90 w noge zabiera np. 15dmg to ma 2x15
  • +
  • -
  • 0

24azdk0.jpg
b_350_20_692108_381007_FFFFFF_000000.png
 


#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 21.10.2012 21:37

public Fw_HamPlayerTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){
if(ma_g36c[idattacker] && get_user_weapon(idattacker)==CSW_P90){
SetHamParamFloat(4, damage*2);
}
}

(22.10.2012 22:22):
Kod poprawiłem (w kanapce nie ma read_data).
Nie wiem, czemu wcześniej źle napisałem :(
(22.10.2012 22:23):
W każdym razie, wygląda to identycznie, jak w poradniku r3xa, czyli zwracasz zwiększony argument czwarty, który odpowiada za damage.
(23.10.2012 01:14):
Ja mam wrażenie, że skopiowałem zły kod.
@down: Oczywiście masz rację, Poprawione.

Użytkownik benio101 edytował ten post 23.10.2012 01:11
Poprawiłem kod pod HamSandwich


#9 AztekHQS

    Banned

  • Zbanowany

Reputacja: 98
Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Napisano 23.10.2012 00:49

czemu this skoro to jest ofiara ?
powinno być idattacker ;)
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#10 Jak się nazwać

    Wszechmogący

  • Power User

Reputacja: 169
Profesjonalista

  • Postów:617
  • Imię:a
  • Lokalizacja:a
Offline

Napisano 23.10.2012 17:04

public Fw_HamPlayerTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits){
if(ma_g36c[idattacker] && get_user_weapon(idattacker)==CSW_P90){
SetHamParamFloat(4, damage*2);
}
}

A co gdy rzucimy granat i szybko zmienimy na P90 ?
  • +
  • -
  • 0
Pisze na zamówienie statystyki pod nvault. GG: 15600964

#11 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 23.10.2012 17:55

Można zawsze poszukać podobnego problemu, np. w cod starym był właśnie taki bug z HE + Awp Sniper, wystarczy w dziale z łatkami coda poszukać.
dasiek (23.10.2012 17:58):
Wystarczy sprawdzić "rodzaj" zadawanych obrażeń.

  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować





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

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