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

[ROZWIĄZANE] Zmiana damage deagla


  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 Filip1512

    Wszechmogący

  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 15.09.2012 11:32

Cześć,
próbuje zmienić damage deagla * 100, ale wywala mi 1 błąd

Error: Syntax error in the expression, or invalid function call on line 122


Tak wygląda funkcja

    RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage", 0);
}

new weapon = get_user_weapon;

public HamTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(weapon == CSW_DEAGLE) {
SetHamParamFloat(4, damage*100);
}
}


Co tu jest źle?


I drugie pytanie - do czego służy #pragma ?

Użytkownik `NN edytował ten post 15.09.2012 11:35

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#2 Dzizzy

    Banned

  • Zbanowany

Reputacja: 3
Nowy

  • Postów:6
  • Lokalizacja:Polska
Offline

Napisano 15.09.2012 13:17

Sprawdz :D

Dodaj:

#include <hamsandwich>

Pod ostatnią biblioteką dodaj:

#define DMG_BULLET (1<<1)

W public plugin_init() dodaj takie coś:

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

Na sam koniec kodu źrÓdłowego dodaj:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
		if(!is_user_connected(idattacker))
				return HAM_IGNORED;
		
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
				return PLUGIN_HANDLED;

		if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_DEAGLE
&& damagebits & DMG_BULLET)
				cod_inflict_damage(idattacker, this, 100.0, 0.0, idinflictor, damagebits);
		
		return HAM_IGNORED;
}

Użytkownik Dzizzy edytował ten post 15.09.2012 13:19


#3 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 15.09.2012 14:03

Chyba coś pomyliłeś tematy albo skopiowałeś nie patrząc na treść.
Używając fukcji hamsandwich, nie zapominam o dodaniu biblioteki (include).
Jak bys tez nie zauwazył

    RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage", 0);

to już mam.

if(!(get_user_flags(id) & ADMIN_LEVEL_H))


To nie ma być tylko dla osób z flagą t (czy jaką tam). Pozatym:

cod_inflict_damage(idattacker, this, 100.0, 0.0, idinflictor, damagebits);


Ten plugin to nie żaden mod, żaden cod czy diablo, tylko normalny zwykły plugin, a "cod_inflict_damage" jest od cod moda z tego co widzę?
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#4 Maniek974

    Wszechwiedzący

  • Power User

Reputacja: 352
Wszechpomocny

  • Postów:594
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Tomaszów Maz.
Offline

Napisano 16.09.2012 07:51

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


Gdzieś w .sma

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits, id)
{
if (!is_user_alive(idattacker)) return;



new weapon = get_user_weapon(idattacker);
new pobierz = 100

if(weapon == CSW_DEAGLE && pobierz && this != idattacker){
damage *= pobierz

}

SetHamParamFloat(4, damage);


}

Tam gdzie 100 daj swoją wartość.
  • +
  • -
  • 0

#5 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 16.09.2012 09:32

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits, id)

{

if ((!is_user_alive(idattacker) || !is_user_alive(this)) && idattacker != this) return HAM_IGNORED;



new weapon = get_user_weapon(idattacker);



if(weapon == CSW_DEAGLE)

damage *= 100;  // ile razy ma mnozyc



  SetHamParamFloat(4, damage);



return HAM_IGNORED;

}

Użytkownik HubertTM edytował ten post 16.09.2012 09:33

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#6 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 16.09.2012 18:45

Hubert, czemu zwracamy HAM_IGNORED a nie HAM_HANDLED? Z tego to czytałem, to jak zmieniamy parametry czy tam wartości czegoś to się używa handled, a jak nic się nie robi to wtedy HAM_IGNORED, a tu ma mnożyć obrażenia razy 100, więc trochę nie rozumiem.
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#7 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 17.09.2012 17:03

Hubert się pomylił, powinno być HAM_HANDLED i all będzie działać
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#8 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 17.09.2012 18:06

Tzn. ja już sam wczoraj zmieniłem jeszcze zanim wgrałem na serwer i działało, chciałem się upewnić tylko :P dzięki, do zamknięcia

Użytkownik `NN edytował ten post 17.09.2012 18:06

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#9 Kawon

    Godlike

  • Przyjaciel

Reputacja: 887
Czempion

  • Postów:5 165
  • Steam:steam
  • Imię:Paweł
  • Lokalizacja:Dzierzgoń
Offline

Napisano 17.09.2012 18:12

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

DarkGL to mój autorytet.


#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.09.2012 18:46

Wystarczyło zmienić 100 na 100.0, bo mamy typ float.




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

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