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

Warunek - Funkcja Była już użyta


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

#1 AmD

    aemde

  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 20.07.2010 22:11

Witam!


mam Mały problem ponieważ zapomniałem jak się robiło warunek który odpowiada za to że nie da się wybrać danej funkcji jeśli była już użyta...

zrobiłem sobie funkcje która wyświetla po wpisaniu komendy powitanie, lecz jak znam życie ludzie będą tym spamować...

Chciał bym aby funkcje dało się użyć co 30sec lub raz na Rundę :)

ja zrobiłem tak

public PrzywitajSie(id)
{
new used[32]
get_user_name(id, szKodi, 31);

if(used[id] == 0)
{
client_print(0, print_chat, "Wita Was %s", szKodi)
set_hudmessage(170, 255, 0, 0.28, 0.55, 0, 6.0, 12.0)
show_hudmessage(id, "Witaj %s, Mamy Nadzieje Ze Gra Bedzie Przyjemna :]", szKodi)
}

else if(used[id] == 1)
{

client_print(0, print_chat, "%s, Przeciez juz Sie witales :)", szKodi)
}
}
lecz jak widzicie coś mi nie wyszło :)

Jak ktoś może to proszę mi wytłumaczyć jak to się robiło :)

Pozdrawiam!
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 20.07.2010 22:17

if(used[id] == 0)
                {used[id] = 1
:) żeby było raz na rundę to na początku każdej rundy zeruj całą tablicę used[], a jeśli na czas to najlepiej get_systime() (a nie taski)
  • +
  • -
  • 1

#3 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 20.07.2010 22:29

Tworzysz zmienna typu boolean w tablicy
new bool:can_use[ 33 ] = true;


Rejestrujesz nową rundę w plugin_init
register_event( "HLTV", "NewRound", "a", "1=0", "2=0" );


Tam gdzie chcesz, żeby można było użyć raz na rundę tworzysz warunek.
np.
if(can_use[id] != false){
kod
}

Teraz ustawiasz po użyciu w funkcji gdzie sprawdzałeś warunek, że został użyty
can_use[id] = false;


W funkcji nowej rundy tworzysz pętle for resetującą możliwość użycia
public NewRound( ) {

for(new id = 0; id<33; id++) {
can_use[id] = true;
}
}


Edit:
Jednak prościej zrobić jak mówi R3X :)

Użytkownik Ortega edytował ten post 20.07.2010 22:31

  • +
  • -
  • 1

#4 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 20.07.2010 22:32

nadal to samo...


public PrzywitajSie(id)
{
new used[32]
get_user_name(id, szKodi, 31);

if(used[id] == 0)
{
used[id] = 1

client_print(0, print_chat, "Wita Was %s", szKodi)
set_hudmessage(170, 255, 0, 0.28, 0.55, 0, 6.0, 12.0)
show_hudmessage(id, "Witaj %s, Mamy Nadzieje Ze Gra Bedzie Przyjemna :]", szKodi)
}

else if(used[id] == 1)
{
client_print(0, print_chat, "%s, Przeciez juz Sie witales :)", szKodi)
}
}


nadal można spamować....


@edit

kk zrobiłem Dzięki wam ;)

Użytkownik AmD edytował ten post 20.07.2010 22:39

  • +
  • -
  • 0




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

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