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

Prośba o odliczanieProsze o proste odliczanie


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

#21 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 19.05.2012 18:51

Funkcja register_logevent( "RoundStart", 2, "1=Round_Start" ); wykonuje się po upływie freezetime, a nie na początku rundy, więc znowu gadasz głupoty.

Round_Start jest wykonywany po każdym upłynięciu freeze time

Nie widzę tu żadnej głupoty, nigdzie też nie napisałem, że wykonuje się przy restarcie. Napisałem tylko, że HLTV się NIE wykonuje. I dodam jeszcze, Round_Start wykonuje się w każdej rundzie, również tych tuż po restartach, w których nie wykonuje się HLTV.

@up:

set_task(1.0,"odliczanie",5673,_,_,"b")

sprawdziłeś chociaż, co napisałeś?

Tak, sprawdziłem. W cmdfunkcja jest tworzony ten task na nowo za każdym razem, gdy zmniejszany jest licznik w HUD. Można oczywiście użyć set_task z flagą b + usunąć go, gdy odliczanie się skończy. Jedynym "mankamentem" do którego sam bym się w moim kodzie przyczepił, to brak HudSync + wyświetlanie za każdym razem na kanale 0, przez co wiadomości mogą na siebie nachodzić.
  • +
  • -
  • 0

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


#22 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.05.2012 19:06

@up już użyłeś flagi "b", a taska nie usuwasz nigdy (nie ma remove_task).
Nie napisałem, że HLTV wykonuje się po restarcie rundy :)
Dodałem jedynie uwagę, że warto użyć eventu HLTV wraz z obsługą wydarzeń skrajnych, bo blokowanie komunikatów, czy ich podmiana nie uwzględni startu rundy.
Jednak na poziomie vernon a chyba faktycznie nie ma się czym przejmować, więc przyznaję, niepotrzebnie się czepiam :wstyd: i Twoje rozwiązanie będzie wystarczające.
PS. Dziękuję.

#23 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 19.05.2012 19:17

@up już użyłeś flagi "b", a taska nie usuwasz nigdy (nie ma remove_task).
Nie napisałem, że HLTV wykonuje się po restarcie rundy :)
Dodałem jedynie uwagę, że warto użyć eventu HLTV wraz z obsługą wydarzeń skrajnych, bo blokowanie komunikatów, czy ich podmiana nie uwzględni startu rundy.
Jednak na poziomie vernon a chyba faktycznie nie ma się czym przejmować, więc przyznaję, niepotrzebnie się czepiam :wstyd: i Twoje rozwiązanie będzie wystarczające.
PS. Dziękuję.


Fakt, w plugin_init jest to wrzucone, kopiowałem to z pluginu zamieszczonego przez autora tematu i nie zauważyłem tego tam. Oczywiście należy tą linijkę usunąć, dzięki za zwrócenie uwagi :)

A ja nie pisałem, że Ty takie coś pisałeś :D Też ta uwaga o register_event("TextMsg", "restart_round", "a", "2&#Game_will_restart_in") nie wyglądała na poradę dodania obsługi skrajnych sytuacji. Kończmy już dyskusję, ja tylko zamieszczę poprawiony kod sma:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new czas;
new cOdliczanie, cGracze;

public plugin_init()
{
register_plugin( "Odlicz", "0,1", "Home" );
register_clcmd( "say /odlicz", "odliczanie" );
register_logevent("Poczatek_Rundy", 2, "1=Round_Start");

cOdliczanie = register_cvar("odliczanie","25");
cGracze = register_cvar("min_graczy", "6");

}
public Poczatek_Rundy()
{
new players[32], num;

get_players( players, num );
for( new i; i < num ; i++ )
{
new id = players[i]

if( !is_user_alive( id ) )
continue;

set_user_godmode( id, 0 )
}
}

public odliczanie(id)
{
if( get_user_team( id ) != 2 )
return PLUGIN_HANDLED;

new players[32], num;

get_players( players, num );
if(num<get_pcvar_num(cGracze)) {
client_print(id, print_chat, "Musi być co najmniej %d graczy", get_pcvar_num(cGracze));
return PLUGIN_HANDLED;
}
for( new i; i < num ; i++ )
{
new pid = players[i]

if( !is_user_alive( pid ) )
continue;

switch( get_user_team( pid ) )
{
case 1: WeaponMenu( pid );
case 2: set_user_godmode( pid, 1 );
}

}

czas=get_pcvar_num(cOdliczanie);

set_hudmessage( 0, 191, 255, -1.0, 0.1, 0, 6.0, 7.0 );
show_hudmessage(0, "Rozpocznie sie za %d", czas);
czas--;

set_task(1.0, "cmdfunkcja", id);

return PLUGIN_HANDLED;
}

public cmdfunkcja(id) {
if(czas>0) {
set_hudmessage( 0, 191, 255, -1.0, 0.1, 0, 6.0, 7.0 );
show_hudmessage(0, "Rozpocznie sie za %d", czas);
czas--;
set_task(1.0, "cmdfunkcja", id);
return PLUGIN_CONTINUE;
}

set_hudmessage( 0, 191, 255, -1.0, 0.1, 0, 6.0, 7.0 );
show_hudmessage( 0, "Koniec odliczania!" );
}

  • +
  • -
  • 0

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


#24 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 19.05.2012 19:25

No chyba cos nie działa?:

- Nie wyświetla komunikatu ze mozna od iluś tam osób
- Nie wyświetla sie Rozpocznie sie za:
- w ogóle co to jest?@editzaraz sprawdze to UP

Mam pytanie co to tego:

public cmdfunkcja(id) {
        if(czas>0) {
                 set_hudmessage( 0, 191, 255, -1.0, 0.1, 0, 6.0, 7.0 );
                show_hudmessage(0, "Rozpocznie sie za %d", czas);
                czas--;
                set_task(1.0, "cmdfunkcja", id);
                return PLUGIN_CONTINUE;
        }

        set_hudmessage( 0, 191, 255, -1.0, 0.1, 0, 6.0, 7.0 );
        show_hudmessage( 0, "Koniec odliczania!" );
}


Przenosi do tej funkcji, zaczyna sie po raz 2 odliczanie, przenosi znowu do tej samej funkcji i tak w kółko?

Użytkownik vernon edytował ten post 19.05.2012 19:19

  • +
  • -
  • 0

#25 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 19.05.2012 19:52

Przenosi do tej funkcji, wyświetla pozostały czas, zmniejsza czas o 1 sekundę. Za sekundę robi to samo. Gdy czas dojdzie do 0 to już nie wyświetla czasu, tylko wyświetla koniec odliczania. Po końcu odliczania możesz dodać własny kod, który ma się wtedy wykonać.

Komunikat, że można od iluś osób wyświetla się w czacie osoby próbującej wywołać komendę. Pamiętaj też, że ta osoba musi być w odpowiednim teamie (ustawiony jest na 2, czyli CT).
  • +
  • -
  • 0

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


#26 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 19.05.2012 19:55

Chlopie to w ogóle nie dział, nawet nie wyświeytla sie ze rozpocznie sie za x sek
  • +
  • -
  • 0

#27 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 19.05.2012 21:30

Zamiast #include <cstrike> powinno być #include <fun>, dodatkowo pamiętaj, żeby stworzyć funkcję WybierzBron, bo bez tego się plugin nie skompiluje. Z tymi zmianami plugin się kompiluje i działa, oto dowód:
de_dust20001.png de_dust20002.png de_dust20003.png de_dust20005.png

Użytkownik GwynBleidD edytował ten post 19.05.2012 21:30

  • +
  • -
  • 0

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


#28 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 19.05.2012 23:20

Dobra juz mam, tylko mam problem z taka rzecza:

1. Potrzebuje coś takiego ze, ct wpisze /odlicz i dostaje godmoda az zostanie tylko 1 gracz. I własnie to nie idzie, jak np spadne z wysokosci to mozna mnie zabic, pod koniec odliczania tez można mnie zabić. Jak zrobic takie coś ze mozna mnie zabic tylko jak zostanie tylko 1 TT
  • +
  • -
  • 0




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

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