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

Blokowanie komendy po x czasie


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

#1 devil11

    Wszechwidzący

  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:284
  • Imię:nie ma
  • Lokalizacja:ziemia
Offline

Napisano 28.04.2018 12:38

Potrzebuje drobnej pomocy z kodem, który ma za zadanie zablokować daną komendę po x czasie, niestety obecnie to nie działa gdy upłynie x czasu komenda nadal jest dostępna

#include <sourcemod>

bool available;

public void OnPluginStart()
{
    HookEvent("round_start", RoundStart);
    RegConsoleCmd("sm_knife", command);
    RegConsoleCmd("sm_ws", command);
}

public Action command(int client, int args)
{
    if(!available)
    {
        PrintToChat(client, "Tej komendy możesz użyć tylko przez 30sekund od startu rundy");
        PrintCenterText(client, "Tej komendy możesz użyć tylko przez 30sekund od startu rundy");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}

public Action RoundStart(Handle event, const char[] name, bool dontBroadcast)
{
    available = true;
    CreateTimer(30.0, switch_command);
}

public Action switch_command(Handle timer)
{
    available = false;
}  

  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

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

Napisano 28.04.2018 17:26

Na SM się nie znam, ale jeśli dobrze na to patrzę, to funkcja switch_command przyjmuje argument, którego nie podajesz wywołując ją taskiem


  • +
  • -
  • 0

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


#3 devil11

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 22
Życzliwy

  • Postów:284
  • Imię:nie ma
  • Lokalizacja:ziemia
Offline

Napisano 29.04.2018 10:14

To wiem, bo dalej za bardzo nie wiem jak to wywołać aby zablokować daną komendę


  • +
  • -
  • 0

#4 Robiin

    Godlike

  • Support Team

Reputacja: 1 103
Super Hero

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

Napisano 29.04.2018 12:43

public Action switch_command()
{
    available = false;
}

?


  • +
  • -
  • 0

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


#5 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

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

Napisano 29.04.2018 13:25

Problem nie leży w parametrach uchwytu timer'a (które są poprawne).
Komendy zarejestrowanej przez plugin sm nie można zablokować innym pluginem w powyższy sposób.
Można tego dokonać poprzez zwrócenie 'Plugin_Stop' zamiast 'Plugin_Handled' (to pierwsze przerywa łańcuch uchwytów i 'przepuszcza' oryginalny, niezmodyfikowany event).

Użytkownik _McHappy edytował ten post 29.04.2018 13:28

  • +
  • -
  • 0




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

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