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

Automatyczna komenda /menu


Najlepsza odpowiedź _McHappy, 08.11.2016 13:43

@Aktualizacja

Potestuj ;)

#include <amxmodx>

#define PLUGIN "Automatyczna komenda"
#define VERSION "0.0.1"
#define AUTHOR "_McHappy"

new g_iEvPrzydzial[33];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event( "TeamInfo", "event_druzyna", "a")
}

public client_connect(id) g_iEvPrzydzial[id] = 0;

public event_druzyna() 
{
	new id = read_data(1);
	if(g_iEvPrzydzial[id]<=1) 
	{
		client_cmd(id,"say /menu")
		g_iEvPrzydzial[id]++;
	}
}
Przejdź do postu


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

#1 barbeznazwy123

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 05.11.2016 00:23

Dobry, zna ktoś może plugin, który podczas dołączenia na serwer wymusza u gracza komende /menu


  • +
  • -
  • 0

#2 KrwioPijca

    Pomocny

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:59
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Polska
Offline

Napisano 05.11.2016 11:09

Nie wiem czy w ogóle coś takiego jest, więc napisałem go na szybko

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "KrwioPijca"

public plugin_init() 
	register_plugin(PLUGIN, VERSION, AUTHOR)
public client_connect(id)
	set_task(10.0,"komenda",id)
public komenda(id)
	client_cmd(id,"say /menu")

  • +
  • -
  • 1

Żegnam wszystkich.


#3 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 05.11.2016 14:02

 

Nie wiem czy w ogóle coś takiego jest, więc napisałem go na szybko

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu"
#define VERSION "1.0"
#define AUTHOR "KrwioPijca"

public plugin_init() 
	register_plugin(PLUGIN, VERSION, AUTHOR)
public client_connect(id)
	set_task(10.0,"komenda",id)
public komenda(id)
	client_cmd(id,"say /menu")

 

a jest możliwość zrobienia tak aby ta komenda była dopiero aktywna po wyborze teamu ?

 


  • +
  • -
  • 0

#4 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 07.11.2016 13:05

ref to samo pytanie co wyżej

 

 jest możliwość zrobienia tak aby ta komenda była dopiero aktywna po wyborze teamu ?


  • +
  • -
  • 0

#5 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 07.11.2016 17:18

Chodzi o odblokowanie możliwości użycia danej komendy dopiero po wybraniu drużyny, czy też zwyczajne 'wpisanie za gracza' owej komendy?

 

Do wykrycia, czy dany gracz wybrał drużynę, można zhookować event 'TeamInfo':

 

W plugin_init():

register_event( "TeamInfo", "event_wybor_druzyny_post", "a")

i gdzieś niżej:

public event_wybor_druzyny_post() 
{
    new id = read_data(1);
   
    //... kod
}

Efektem ubocznym zastosowania tak czystego i prostego kodu, jest fakt, iż przy każdym wyborze drużyny, owa komenda będzie wywoływana.

Należy zatem dodatkowo sprawdzać, czy przed wyborem drużyny, dany gracz należy do "nieprzydzielonych" (czyli domyślnego teamu o id 0, ustawianego zaraz po dołączeniu do serwera).


Użytkownik _McHappy edytował ten post 07.11.2016 17:31

  • +
  • -
  • 1

#6 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 07.11.2016 20:23

chodzi tylko o zwyczajne 'wpisanie za gracza' owej komendy po wyborze przez niego teamu, mógłbyś mi połączyć ten kod z kodem wyżej od /menu ?  ponieważ gdy ja chciałem to zrobić to mi 1 błąd przy kompilacji wyskakuje


  • +
  • -
  • 0

#7 XXL

    Wszechmogący

  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 07.11.2016 20:49

Hmm może warunek gdy gracz się odrodzi wykonuje funkcję? (więc analogicznie żywy gracz = musiał wybrać drużynę)

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>


public plugin_init() 
{
	register_plugin("menu","1.0","xxl")
	RegisterHam(Ham_Spawn, "player", "respawn", 1);
}

public respawn(id)
{
	if(is_user_connected(id))
	{
		if(is_user_alive(id))
		{
			display_menu(id)
		}
	}
}

public display_menu(id)
{
client_cmd(id,"say /menu")
}

  • +
  • -
  • 1

#8 barbeznazwy123

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:49
  • Imię:Marcin
Offline

Napisano 07.11.2016 22:02

już jest bliżej, ale to jednak nie to, mi chodzi dokładnie tylko wtedy gdy gracz który wejdzie na serwer i wybierze team do dopiero mu się włącza menu, bo jak wyżej podałeś to np po zgonie też się otwiera /menu a mi tylko potrzebne jest wtedy i tylko wtedy kiedy gracz wybierze team.


  • +
  • -
  • 0

#9 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 08.11.2016 11:43


Hmm może warunek gdy gracz się odrodzi wykonuje funkcję? (więc analogicznie żywy gracz = musiał wybrać drużynę)

#include <amxmodx>#include <amxmisc>#include <hamsandwich>public plugin_init() {	register_plugin("menu","1.0","xxl")	RegisterHam(Ham_Spawn, "player", "respawn", 1);}public respawn(id){	if(is_user_connected(id))	{		if(is_user_alive(id))		{			display_menu(id)		}	}}public display_menu(id){client_cmd(id,"say /menu")}

A co jeśli gracz dołączy do obserwatorów? ;)
  • +
  • -
  • 1

#10 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 08.11.2016 13:43   Najlepsza odpowiedź

@Aktualizacja

Potestuj ;)

#include <amxmodx>

#define PLUGIN "Automatyczna komenda"
#define VERSION "0.0.1"
#define AUTHOR "_McHappy"

new g_iEvPrzydzial[33];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event( "TeamInfo", "event_druzyna", "a")
}

public client_connect(id) g_iEvPrzydzial[id] = 0;

public event_druzyna() 
{
	new id = read_data(1);
	if(g_iEvPrzydzial[id]<=1) 
	{
		client_cmd(id,"say /menu")
		g_iEvPrzydzial[id]++;
	}
}

  • +
  • -
  • 1

#11 rzeznik9871

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:266
Offline

Napisano 08.11.2016 13:58

@up wyswietli sie 2 razy

#include <amxmodx>

#define PLUGIN "Automatyczna komenda"
#define VERSION "0.0.1"
#define AUTHOR "_McHappy"

new bool:g_iEvPrzydzial[33];

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event( "TeamInfo", "event_druzyna", "a")
}

public client_connect(id) g_iEvPrzydzial[id] = false;

public event_druzyna() 
{
	new id = read_data(1);
	if(!g_iEvPrzydzial[id]) 
	{
		client_cmd(id,"say /menu")
		g_iEvPrzydzial[id]=true
	}
}

  • +
  • -
  • 1

Cześć


#12 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 08.11.2016 14:54

Polecam najpierw przetestować plugin na serwerze, potem go poprawiać. Wspomniany event wywołuje się dwukrotnie: najpierw gracz jest przydzielany do drużyny 0, potem do wybranej przez niego. W powyższym kodzie komenda wykona się podczas ładowania ekranu gracza i... nie stanie się nic ;)
  • +
  • -
  • 1

#13 rzeznik9871

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:266
Offline

Napisano 08.11.2016 14:57

a czasami ent gracza nie jest wrzucany do UNASSIGNED po jego wyjsciu? 


  • +
  • -
  • 0

Cześć





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

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