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

Jednorazowy task


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

#1 no name

    Wszechpomocny

  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 24.02.2011 15:22

Siema,

Nie bardzo łapie, więc chciałem się poradzić.

Chciałem ustawić jednorazowego taska, do funcji. Czy takie coś będzie działało?

set_task ( 5.0, "funkcja", id, repeat=0 )

Z góry dzięki za pomoc
  • +
  • -
  • 0

#2 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 24.02.2011 15:24

, repeat=0

niepotrzebne.

Wystarczy samo
set_task ( 5.0, "funkcja", id )

  • +
  • -
  • 0

#3 dram

    Wszechwidzący

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:277
  • Lokalizacja:xxxx
Offline

Napisano 24.02.2011 19:58

a w niektórych przypadkach

set_task ( 5.0, "funkcja")

  • +
  • -
  • 0
Co oferuje?

Pisanie pluginów amxx/modow itd
Skryptow php

Kontakt na PW LUB GG

#4 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 24.02.2011 20:08

Czyli jak mam w pluginie:

Spoiler


To jak dam tak:

Spoiler


To mi zablokuje na 5 sek wyświetlanie?
  • +
  • -
  • 0

#5 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

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

Napisano 24.02.2011 20:14

niee :D set_task uruchamia funkcje która mu ja podasz po jakims okresie czasu
  • +
  • -
  • 0

#6 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 24.02.2011 20:31

Czyli nie da rady obejść taskiem 1 rundy?

Działało by coś takiego:

1 plugin:

set_tast - pauzowanie pluga2

2 plugin: to menu

??
  • +
  • -
  • 0

#7 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 24.02.2011 20:34

Musisz dodać zmienną globalną i dodawać do niej +1 gdy skończy się runda, a potem warunek do tego menu, że jeśli zmienna będzie większa niż 0 to wykonaj, albo na odwrót, że jeżeli będzie mniejsza to zablokuj.

Albo też za pomocą taska zmienić wartość tej zmiennej, to prawie nie będzie robić różnicy (prawie).

Użytkownik sebul edytował ten post 24.02.2011 20:35

  • +
  • -
  • 0

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


#8 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 24.02.2011 21:12

Dawno pętli nie robiłem...

Dobrze?:

new round = 1
new licznik = 0
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menucmd(register_menuid("Menuid"), Klawisze, "PokazMenu")
register_logevent("logevent_Round_Start", 2, "1=Round_Start")

}

public logevent_Round_Start() {
round++;

new players[32], player, pnum;
get_players(players, pnum, "a");
for(new i = 0; i < pnum; i++)
{
player = players[i];
if(get_user_flags(player) & ADMIN_LEVEL_H)
{
for(licznik > 0; licznik++)
{
Showrod(player)
}
}
}
}

  • +
  • -
  • 0

#9 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 24.02.2011 23:25

for(new i = 0; i < pnum; i++)

for(licznik > 0; licznik++)

Widzisz różnicę*?


* - nie chodzi o nazwy zmiennych
  • +
  • -
  • 0

#10 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 25.02.2011 16:45

Dobra, sry pomyliłem z pascalem, gdzie na początku programu się deklarowano...

for(new licznik=0;licznik>0;licznik++);

Tera chyba dobrze?*

*jest zmienna, warunek i zwiększenie o 1 po wykonaniu
  • +
  • -
  • 0

#11 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 25.02.2011 17:45

for(new licznik =0; licznik < do_ilu_ma_zapetlac; licznik++);


#12 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 25.02.2011 19:26

licznik < do_ilu_ma_zapetlac
Można też tak, ale nie za bardzo łapie jakby tym sposobem można. Chodzi mi o to, żeby licznik miał na start 0, po 1 rundzie dodał 1, linijka " Showrod(player)" była wykonywana gdy wynosi 1. Wtedy plugin by omijał 1 runde. Dlatego dałem

licznik > od_ilu_ma_zapetlac

  • +
  • -
  • 0

#13 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 25.02.2011 20:15

Chodzi mi o to, żeby licznik miał na start 0, po 1 rundzie dodał 1, linijka " Showrod(player)" była wykonywana gdy wynosi 1. Wtedy plugin by omijał 1 runde. Dlatego dałem

licznik > od_ilu_ma_zapetlac

ale w takim razie dlaczego dałeś

new licznik=0;licznik>0;

W ten sposób na start zawsze będzie licznik miał wartość równą a nie większą od zera i pętla nigdy się nie wykona.


p.s.
lepsze to niż jakbyś dał

new licznik=1;licznik>0;

bo wtedy pętla znów nigdy by się nie skończyła ;>
  • +
  • -
  • 0

#14 no name

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:387
  • GG:
  • Steam:steam
  • Imię:Wojciech
  • Lokalizacja:Kraków
Offline

Napisano 25.02.2011 22:41

Dałem tak:


new round = 1
new licznik = 0
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menucmd(register_menuid("Menuid"), Klawisze, "PokazMenu")
register_logevent("logevent_Round_Start", 2, "1=Round_Start")

}

public logevent_Round_Start() {
round++;
licznik++
new players[32], player, pnum;
get_players(players, pnum, "a");
for(new i = 0; i < pnum; i++)
{
player = players[i];
if(get_user_flags(player) & ADMIN_LEVEL_H)
{
if(licznik > 0)
{
Showrod(player)
}
}
}
}

Ale coś chyba nie tak poszło... Menu jest co drugą runde.

Dodano 06 marzec 2011 - 19:50:
Refresh

Użytkownik no name edytował ten post 02.03.2011 20:37

  • +
  • -
  • 0




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

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