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

Jak zablokowac wywolywanie funkcji aby wywolala sie po x sekundac


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

#1 matti9410

    Wszechpomocny

  • Użytkownik

Reputacja: 8
Nowy

  • Postów:352
  • Imię:Mateusz
  • Lokalizacja:Kalisz
Offline

Napisano 24.12.2011 23:54

Witam tak jak w temacie wytłumaczy mi ktoś powoli jak do jakiegoś głupiego który ma ponizej średniej afrykanskiej inteligencji jak dac opoznienie czasowe w pluginie do wywolania funkcji np.
wpisuje ktos w say /menu i od tego wpisania po x sekundach dopiero się owe menu wyswietli ?

Użytkownik matti9410 edytował ten post 24.12.2011 23:57

  • +
  • -
  • 0

#2 Whisper

    Zaawansowany

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:80
  • Imię:Marcin
  • Lokalizacja:Polska
Offline

Napisano 25.12.2011 01:51

Jest już co prawda prawie druga w nocy no ale coś tam mi jeszcze działa więc sprawdź to :D

public funkcja1
{
set_task(1.0, "funkcja2", 2000);
}
public funkcja2
{
remove_task(2000)

//reszta kodu
}

  • +
  • -
  • 1

Dołączona grafika


#3 Lelek

    Zaawansowany

  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:105
  • GG:
  • Imię:Adam
  • Lokalizacja:*
Offline

Napisano 25.12.2011 12:02


#include < amxmodx >

public plugin_init()
{
register_plugin("Menu", "1.0", "Lelek");
register_clcmd("say /menu", "menu")
}


public menu(id)
{
//10.0 - czas w sekundach po ktorym ma zostac otwarte menu
set_task(10.0, "otwieramy_menu")
}

public otwieramy_menu(id)
{
//tutaj wstaw sobie menu
}

set_task daje Ci dużo więcej możliwości:
http://amxx.pl/dokum...szukaj/set_task

Użytkownik Lelek edytował ten post 25.12.2011 12:02

  • +
  • -
  • 1

#4 matti9410

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:352
  • Imię:Mateusz
  • Lokalizacja:Kalisz
Offline

Napisano 25.12.2011 12:36

Ja robiłem według tego tylko że zamiast broni jest kodfunkcji ktora otwiera menu /klasa

#include 
#include 

#define VERSION "0.1"

new BLOKADA[33];

public plugin_init() {
        register_plugin("Blokowanie funkcji - Poradnik dla Graj24.eu", VERSION, "Blak Rajder")
        register_clcmd("say /m4a1", "funkcja")
}
public client_connect(id)
{
        BLOKADA[id] = false;
}
public funkcja(id)
{
        if(BLOKADA[id])
        {
                client_print(id, print_chat, "Nie możesz tego teraz użyć!")
        }
        else      // Takie 'jeśli nie'
        {
                give_item(id, "weapon_m4a1")
        }
        BLOKADA[id] = true;
        
        set_task(120.0, "Blokada_Off")
}
public Blokada_Off(id)
{
        BLOKADA[id] = false;
}

I czy ten kod też się nadaje bo robie według tego, ale menu się nie pokazuje po wpisaniu /klasa (set task ustawilem na 5 sek.
  • +
  • -
  • 0

#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 25.12.2011 13:12

wpisuje ktos w say /menu i od tego wpisania po x sekundach dopiero się owe menu wyswietli

tym kodem wyżej napewno tego nie osiągniesz użyj set_task do uruchomienia funkcji z opóźnieniem
http://amxx.pl/dokum...szukaj/set_task
  • +
  • -
  • 1

#6 matti9410

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:352
  • Imię:Mateusz
  • Lokalizacja:Kalisz
Offline

Napisano 25.12.2011 13:14

DarkGL wysąłłęś mi to gdzie bedzie powtazac co 10 sek a ja bym prosił o takie coś żeby mi nie powtazalo no chyba ze sam gracz wpisze /klasa Czyli takdo public plugin_init() dodaje set_task(10.0, "funkcja_menu", _, _, _, "a", 1) i to wszystko ?

Użytkownik matti9410 edytował ten post 25.12.2011 13:23

  • +
  • -
  • 0

#7 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 25.12.2011 13:25

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /menu", "menu")
}

public menu(id) {
set_task(10.0, "menu2", id);
// menu otworzy się po 10 sekundach
}

public menu2(id) {
// kod menu
}

  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#8 matti9410

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:352
  • Imię:Mateusz
  • Lokalizacja:Kalisz
Offline

Napisano 25.12.2011 13:45

Sebul dziala ale jeszcze 1 drobiazg jak zablokowac automatyczne wyswietlanie menu klasy po wbiciu na serwer

Dodać do publika ktory odpowiada za polaczenie z serwerem set_task(10.0, "menu2", id); ??
  • +
  • -
  • 0

#9 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 25.12.2011 14:07

DarkGL wysąłłęś mi to gdzie bedzie powtazac co 10 sek

tam jest tylko przykład
czytaj dokładnie i ze zrozumieniem
  • +
  • -
  • 0

#10 matti9410

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:352
  • Imię:Mateusz
  • Lokalizacja:Kalisz
Offline

Napisano 25.12.2011 14:09

No blokade już mam napisaną i all działa. Tylko jest jeden problem po wejściu na serwer menu klas się samo automatycznie włącza i chciałbym zrobić tak żeby ono też po x sekundach po wbiciu na serwer się wyświetliło.
  • +
  • -
  • 0

#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 25.12.2011 14:11

chciałbym zrobić tak żeby ono też po x sekundach po wbiciu na serwer się wyświetliło.

zamiast wywołania funkcji dać set_task
  • +
  • -
  • 1

#12 matti9410

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:352
  • Imię:Mateusz
  • Lokalizacja:Kalisz
Offline

Napisano 25.12.2011 18:05

no to co odpowiada tam w tym kodzie za to menu bo kurde nie widze w kodzie tego

Wydaje mi się że powinno to być w publiku który łaczy gracza z serwerem czyli
//public client_authorized(id)
public client_putinserver(id)
{
	gbLoading[id] = false;
	levelsClearCache(id);
	
	UsunUmiejetnosci(id);

	get_user_name(id, nazwa_gracza[id], 63);
	

	PID[id] = 0;
	new identyfikator[64], pole[10];
	switch(get_pcvar_num(cvar_typ_zapisu))
	{
		case 1: {
			SQL_PrepareString(nazwa_gracza[id], identyfikator, charsmax(identyfikator));
			copy(pole, 9, "name");
		}
		case 2: {
			get_user_authid(id, identyfikator, charsmax(identyfikator));
			copy(pole, 9, "steamid");
		}
		case 3: {
			get_user_ip(id, identyfikator, charsmax(identyfikator));
			copy(pole, 9, "ip");
		}
	}
	
	new data[2];
	data[0] = id;
	data[1] = get_user_userid(id);
	SQL_FormatQuery("SELECT pid FROM `players` WHERE %s='%s'", pole, identyfikator);
	SQL_ThreadQuery(gTuple, "handleSelectPlayer", gszQuery, data, sizeof(data));
	
	UsunZadania(id);
	
	set_task(10.0, "PokazReklame", id+ZADANIE_POKAZ_REKLAME);
}
Ale tu nic o funkcji "WybierzKlase" niema.
  • +
  • -
  • 0




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

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