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 ze StripWeapons


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

#1 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 28.03.2013 10:44

Witam
Mój problem jest następujący:
Postanowiłem, że stworzę perk do CODa, który będzie wywalał przeciwnikowi granaty po strzale.
Podczas kompilacji wywala 1 warninga, a granatów już nie ;]
Oto sma:
Spoiler

Proszę o pomoc.
Z góry dziękuję i pozdrawiam :D
  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 983
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 28.03.2013 11:37

if DMG_BULLET
return HAM_IGNORED;
zawsze prawdziwy warunek

http://amxx.pl/topic...e-na-obrazenia/

public Grenades_Drop(idattacker, this, damagebits, id)
sprawdź sobie listę parametrów w poradniku ;)
  • +
  • -
  • 0

#3 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 28.03.2013 12:22

To gdzie mam te id wcisnąć??
  • +
  • -
  • 0

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 28.03.2013 19:15

if(random_num(1, 1) != 1)
return HAM_IGNORED;

A tu zawsze fałszywy warunek.

@edit.
W pliku ham_const.inc znajdziesz bez problemu
	 /**
* Description: Usually called whenever an entity takes any kind of damage.
* Inflictor is the entity that caused the damage (such as a gun).
* Attacker is the entity that tirggered the damage (such as the gun's owner).
* Forward params: function(this, idinflictor, idattacker, Float:damage, damagebits);
* Return type: Integer.
* Execute params: ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
*/
Ham_TakeDamage,


damagebits to suma binarna typów obrażeń, ty potrzebujesz jedynie sprawdzić, czy jest to DMG_BULLET, więc użujesz warunku
damagebits & DMG_BULLET


Dla this (ofiary) wypadałoby sprawdzić, czy w ogóle jest graczem, a następnie, czy żyje, skoro chcesz zabrać jej granaty.
IsPlayer(this) && is_user_alive(this)


Nieco poprawiony kod:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <StripWeapons>

#define DMG_BULLET (1<<1)
#define IsPlayer(%1) (1<=%1<=maxPlayers)

new const perk_name[] = "Rozbrajacz";
new const perk_desc[] = "1/1 szans na wyrzucenie granatow przeciwnika";

new ma_perk[33];
new bool:bSwitchIfActive[33];
new maxPlayers;

public plugin_init()
{
register_plugin(perk_name, "1.0", "amxx.pl");

cod_register_perk(perk_name, perk_desc);

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

maxPlayers=get_maxplayers();
}
public Grenades_Drop(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(
damagebits & DMG_BULLET
&& IsPlayer(this)
&& is_user_alive(this)
&& is_user_connected(idattacker)
&& ma_perk[idattacker]
)

bSwitchIfActive[this] = true;
StripWeapons(this, Grenades)
client_print(this, print_chat, "Straciles granaty!");

return HAM_IGNORED;
}





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

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