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] ustawianie graczowi tlumik na usp/m4a1 przez offset


Najlepsza odpowiedź GwynBleidD, 17.01.2014 16:21

Bo w złym miejscu wykonujesz to.

 

Forward cod_class_enabled wykona się w momencie, gdy gracz wybierze z menu podaną klasę. Nie wykona się ani razu więciej... Więc gdy posiada usp i m4 w momencie wyboru klasy, zostanie mu tłumik na te bronie założony...

 

Musisz wychwycić kupno/podniesienie broni i wtedy tłumik zakładać. Oczywiście jeśli gracz posiada daną klasę.

 

Uwaga! Nie zakładaj w evencie weapon change, bo po 1 doprowadzisz ludzi do szału (nie będzie się dało tłumików zdjąć), a po 2 będzie to wykonywało się o dużo za dużo razy :)

Przejdź do postu


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.01.2014 19:30

Witam.
Chcialbym sie dowiedziec jak ustawic tlumik graczowi poprzes set_pdata_int(id, x, x)
jak to zrobic?
  • +
  • -
  • 0

#2 Hleb

    FC Barcelona <3

  • Użytkownik

Reputacja: 991
Master

  • Postów:405
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:Sochaczew
Offline

Napisano 13.01.2014 20:39

znalezione w pliku usp.inc



#define m_fWeaponState_Usp 74 //(int) Bit flag status of weapon silencer/shield.

#define CBASE_WEAPONSTATE_USP_SILENCED ( 1 << 0 )

#define CBASE_WEAPONSTATE_M4A1_SILENCED ( 1 << 2 )

#define CBASE_WEAPONSTATE_SHIELD_ARMED ( 1 << 5 )

musisz tylko wiedzieć, że to dla id enta broni (nie mylić z id broni)

czyli np. dla USP

new ent = find_ent_by_owner(-1, "weapon_usp", id)

if(ent)       set_pdata_int(ent, m_fWeaponState_Usp, get_pdata_int(ent, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_USP_SILENCED, 4)

 

oraz dla m4a1

 

new ent = find_ent_by_owner(-1, "weapon_m4a1", id)

if(ent)       set_pdata_int(ent, m_fWeaponState_Usp, get_pdata_int(ent, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_M4A1_SILENCED, 4)

 

Oczywiście wszystkie te #define musisz wszystko zdefiniować w pluginie.

Niestety nie znalazłem sumy bitowej na demontaż tłumików dla usp/m4a1.

Oczywiście nie testowałem, więc nie daję gwarancji, że zadziała.


  • +
  • -
  • 1

Sprzedam:

System odznak premium do BF2 Rank Mod (dodatkowy sposób na zarobek)

 

Więcej Informacji na STEAM/GG/PW

 

 


#3 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.01.2014 21:21

super.

A moglbys podac taki kod:

if(ma tlumik)
...
Else
...
  • +
  • -
  • 0

#4 Hleb

    FC Barcelona <3

  • Użytkownik

Reputacja: 991
Master

  • Postów:405
  • GG:
  • Steam:steam
  • Imię:Damian
  • Lokalizacja:Sochaczew
Offline

Napisano 13.01.2014 22:27

new ent  = find_ent_by_owner(-1, "weapon_usp", id) // tu daj albo "weapon_usp", albo "weapon_m4a1"

if(ent)

             if(get_pdata_int(ent, m_fWeaponState_Usp, 4) & CBASE_WEAPONSTATE_USP_SILENCED) // sytuacja, gdy jest zamontowany tłumik (w tym przypadku USP, dla m4a1 stosuj CBASE_WEAPONSTATE_M4A1_SILENCED)

             {

                             ...

             }

             else // sytuacja, kiedy NIE jest

             {

                             ...

             }


  • +
  • -
  • 2

Sprzedam:

System odznak premium do BF2 Rank Mod (dodatkowy sposób na zarobek)

 

Więcej Informacji na STEAM/GG/PW

 

 


#5 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 15.01.2014 18:39

cos to nie chce mi dzialac

#include <amxmodx>
#include <codmod>
#include <engine>
#include <fakemeta>

#define m_fWeaponState_Usp 74 //(int) Bit flag status of weapon silencer/shield.
#define CBASE_WEAPONSTATE_USP_SILENCED ( 1 << 0 )
#define CBASE_WEAPONSTATE_M4A1_SILENCED ( 1 << 2 )
        
new const nazwa[]   = "Cichy";
new const opis[]    = "Ma od razu zalozony tlumik na usp i m4a1";
new const bronie    = (1<<CSW_USP)|(1<<CSW_M4A1);
new const zdrowie   = 0;
new const kondycja  = 0;
new const inteligencja = 5;
new const wytrzymalosc = 10;

public plugin_init()
{
	register_plugin(nazwa, "1.0", "TibacK");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}

public cod_class_enabled(id)
{
      new ent1 = find_ent_by_owner(-1, "weapon_usp", id)
      new ent2 = find_ent_by_owner(-1, "weapon_m4a1", id)

      if(ent1)
            set_pdata_int(ent1, m_fWeaponState_Usp, get_pdata_int(ent1, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_USP_SILENCED, 4)
      if(ent2)
            set_pdata_int(ent2, m_fWeaponState_Usp, get_pdata_int(ent2, m_fWeaponState_Usp, 4) | CBASE_WEAPONSTATE_M4A1_SILENCED, 4)
}

Zrobilem tak jak ty podałes


  • +
  • -
  • 0

#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.01.2014 16:21   Najlepsza odpowiedź

Bo w złym miejscu wykonujesz to.

 

Forward cod_class_enabled wykona się w momencie, gdy gracz wybierze z menu podaną klasę. Nie wykona się ani razu więciej... Więc gdy posiada usp i m4 w momencie wyboru klasy, zostanie mu tłumik na te bronie założony...

 

Musisz wychwycić kupno/podniesienie broni i wtedy tłumik zakładać. Oczywiście jeśli gracz posiada daną klasę.

 

Uwaga! Nie zakładaj w evencie weapon change, bo po 1 doprowadzisz ludzi do szału (nie będzie się dało tłumików zdjąć), a po 2 będzie to wykonywało się o dużo za dużo razy :)


  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#7 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 17.01.2014 21:22

@up
Dzięki.
Zrobilem to tak aby w czasie freezetime zakladalo.

 

ROZWIAZANE


  • +
  • -
  • 0




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

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