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] Wywołanie danej komendy po wyborze broni


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

#1 XXL

    Wszechmogący

  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 09.05.2020 19:45

Witam w jaki sposób uzyskać komende po wyborze broni np:

Wybieram z menu listy danego pluginu ak47 - wywołuje w consoli komende (chodzi o to że nie mam możliwości zrobić tego w pluginie więc chciałbym aby serwer sprawdzał jaką mamy broń i wykonywał daną komendę)

 

Dzięki pozdrawiam


  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 09.05.2020 19:52

Hm, jest event Ham_Item_AddToPlayer, możesz wyłapać dodanie broni w ten sposób. Zależnie od pluginu w którym wybierasz broń możnaby pokombinować też z wyłapaniem wykonania funkcji dodającej broń, ale to już cięższe szachy.


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 09.05.2020 20:43

Hm, jest event Ham_Item_AddToPlayer, możesz wyłapać dodanie broni w ten sposób. Zależnie od pluginu w którym wybierasz broń możnaby pokombinować też z wyłapaniem wykonania funkcji dodającej broń, ale to już cięższe szachy.

 

Tutaj skrawek menu broni czy dało by rade coś tutaj dodać?

 

else if(equali(weapon, "usp")) name = "Usp";
else if(equali(weapon, "p228")) name = "P228";
else if(equali(weapon, "deagle")) name = "Deagle";

  • +
  • -
  • 0

#4 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

  • Postów:2 043
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 09.05.2020 22:40

Coś, gdzieś, jakoś to bardzo mało konkretne info. Podrzuć jakiś skrawek kodu do reprodukcji, albo jakoś lepiej to opisz.


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#5 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 10.05.2020 11:22

Posiadam gunxmod'a broń wczytuje z pliku .cfg więc nie wiem czy da rade coś zrobić w tym pluginie

 

edit: Czy dodanie do silnika / odzielnego pluginu uda się uzyskać efekt czy to raczej nie ma sensu?

#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>


#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "qwerty"


#define VIP ADMIN_LEVEL_H   /* tutaj zmieniamy flange */


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("CurWeapon","CurWeapon","be", "1=1")
}
public CurWeapon(id) {
	
	new wpn = read_data(2)
	if(get_user_team(id) == 1 && get_user_flags(id) & VIP && wpn == CSW_KNIFE){ 
   	 client_cmd(id, "say zxc")
	}
}

  • +
  • -
  • 0

#6 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 10.05.2020 12:04

Trzy razy przeczytałem temat i nadal nie wiem o co Ci chodzi.

Kod, który wrzuciłeś będzie działać, ale komenda będzie wywoływana wiele razy, nie tylko jak gracz otrzymuje broń.

Jeśli chcesz osiągnąć efekt typu: zrób coś, gdy gracz otrzymuje jakąś broń to wykorzystaj to co podał Ci asior, albo to:

Ham_AddPlayerItem
	/**
	 * Description:		Adds an item to the player's inventory.
	 * Forward params:	function(this, idother);
	 * Return type:		Integer.
	 * Execute params:	ExecuteHam(Ham_AddPlayerItem, this, idother);
	 */
	Ham_AddPlayerItem,

Co do CurWeapon - radziłbym unikać tej metody


  • +
  • -
  • 1

#7 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 10.05.2020 12:32

Nie bardzo wiem jak to mam wytłumaczyć po prostu chce aby po wyborze danej broni wykonywała się dana funkcja ten plugin który dałem działa ale niestety będzie to uciążliwe

 

Trzy razy przeczytałem temat i nadal nie wiem o co Ci chodzi.

Kod, który wrzuciłeś będzie działać, ale komenda będzie wywoływana wiele razy, nie tylko jak gracz otrzymuje broń.

Jeśli chcesz osiągnąć efekt typu: zrób coś, gdy gracz otrzymuje jakąś broń to wykorzystaj to co podał Ci asior, albo to:

Ham_AddPlayerItem
	/**
	 * Description:		Adds an item to the player's inventory.
	 * Forward params:	function(this, idother);
	 * Return type:		Integer.
	 * Execute params:	ExecuteHam(Ham_AddPlayerItem, this, idother);
	 */
	Ham_AddPlayerItem,

Co do CurWeapon - radziłbym unikać tej metody

Postaram się coś pokombinować dzięki za jakąś wskazówkę 

 

 

Edit: czy to powinno działać?

public Ham_AddPlayerItems( iPlayerID, iWeaponID ) {
    static strClassName[ 64 ];
    pev( iWeaponID, pev_classname, strClassName, 63 );
    
    if( !equal( iWeaponID, "weapon_knife" ) ) {
        return HAM_SUPERCEDE;
    }
    
    return HAM_IGNORED;
} 

  • +
  • -
  • 0

#8 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 10.05.2020 13:48

Tak, to będzie blokować otrzymywanie noża.

 

Co do pytań typu:


Edit: czy to powinno działać?

Najlepiej sprawdzić samemu ;)

 

Jak chcesz uniknąć pobierania classname w celu sprawdzenia co to za broń to użyj

cs_get_weapon_id()

z drugim parametrem, czyli: iWeaponID

wtedy dostaniesz id broni w formie CSW_* 


  • +
  • -
  • 1

#9 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 10.05.2020 15:22

 

 

Mógłbyś dać jakiś przykład tego zastosowania? Nie bardzo to kumam


  • +
  • -
  • 0

#10 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 10.05.2020 16:35

      RegisterHam(Ham_AddPlayerItem, "player", "Ham_AddPlayerItem_Post", 1)
public Ham_AddPlayerItem_Pre(id, ent)
{
	if(!is_user_alive(id) || !pev_valid(ent)){
		return HAM_IGNORED;
	}

	new csw = cs_get_weapon_id(ent);
	switch(csw){
		case CSW_AK47:{
			//dostales ak
		}
		case CSW_M4A1:{
			//dostales m4
		}
	}

	return HAM_IGNORED;
}

cos takiego


  • +
  • -
  • 2

#11 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 10.05.2020 18:23

      RegisterHam(Ham_AddPlayerItem, "player", "Ham_AddPlayerItem_Post", 1)
public Ham_AddPlayerItem_Pre(id, ent)
{
	if(!is_user_alive(id) || !pev_valid(ent)){
		return HAM_IGNORED;
	}

	new csw = cs_get_weapon_id(ent);
	switch(csw){
		case CSW_AK47:{
			//dostales ak
		}
		case CSW_M4A1:{
			//dostales m4
		}
	}

	return HAM_IGNORED;
}

cos takiego

 

 

 

Niestety ale żadna funkcja się nie wykonuje dałem na test wpis w say'u i nic


  • +
  • -
  • 0

#12 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 10.05.2020 18:39

No byczku troszke własnego myślenia ;) nie tylko copy paste

      RegisterHam(Ham_AddPlayerItem, "player", "Ham_AddPlayerItem_Post", 1)
public Ham_AddPlayerItem_Pre(id, ent)

nazwy funkcji sie roznia, w logach pewnie wyplulo, ale kto by tam patrzył.

Sprawdziłem u siebie - amxx 1.9 - elegancko dziala


  • +
  • -
  • 1

#13 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 10.05.2020 18:53

No byczku troszke własnego myślenia ;) nie tylko copy paste

      RegisterHam(Ham_AddPlayerItem, "player", "Ham_AddPlayerItem_Post", 1)
public Ham_AddPlayerItem_Pre(id, ent)

nazwy funkcji sie roznia, w logach pewnie wyplulo, ale kto by tam patrzył.

Sprawdziłem u siebie - amxx 1.9 - elegancko dziala

 

Ups no tak działa dziękuje plusik leci


  • +
  • -
  • 0

#14 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 11.05.2020 07:11

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


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




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

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