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

Dodawanie HP dopóki nie osiągnie wartości 100pętla while do regeneracji życia


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

#1 ParadisO

    Wszechmogący

  • Power User

Reputacja: 128
Zaawansowany

  • Postów:689
  • Lokalizacja:Częstochowa
Offline

Napisano 23.09.2011 20:13

Zakładając, że
X[id]=random_num(3,7)

to czy ta funkcja będzie dodawać X HP aż nie osiągnie wartości 100 ??
public regeneracja_zycia(id)
{
if(is_user_alive(id))
{
while(get_user_health(id)==100)
{
set_user_health(id,get_user_health(id)+X[id]);
}
}
}


Jeśli nie to jak to zrobić ?? Najlepiej gdyby ktoś wytłumaczył.
  • +
  • -
  • 0

#2 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 23.09.2011 20:37

nie wiem po do X z indeksem, hmm, nie lepiej od razu ustawić 100 hp ?

Użytkownik LKZ (funfel) edytował ten post 23.09.2011 20:37

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#3 Kubaczek <3

    Zaawansowany

  • Użytkownik

Reputacja: 17
Początkujący

  • Postów:116
  • Steam:steam
  • Lokalizacja::)
Offline

Napisano 23.09.2011 21:02

Kod który napisałeś: Sprawdz czy user jest żywy -> DOPÓKI gracz ma 100 -> ustaw życie gracza na jego aktualną ilość życia + X.
Poprawny kod: Czy gracz jest żywy -> Czy ma mniej hp niż sto -> dodaj hp -> jeśli jest większe od 100 ustaw na 100.
Przykład:
public regeneracja_zycia(id)
{
if(is_user_alive(id))
{
if(get_user_health(id) < 100)
{
new maxhealth = 100;
new health = get_user_health(id) + X[id];
set_user_health(id, get_user_health(id) + min(maxhealth, health);
}
}
}

Użytkownik kubaku4 edytował ten post 23.09.2011 21:08

  • +
  • -
  • 0

#4 ParadisO

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 128
Zaawansowany

  • Postów:689
  • Lokalizacja:Częstochowa
Offline

Napisano 23.09.2011 21:44

nie daje się skompilować
Error: Expected token: ",", but found ";" on line 99

P.S.
Co to jest "min" ?

Użytkownik ParadisO edytował ten post 23.09.2011 21:44

  • +
  • -
  • 0

#5 Kubaczek <3

    Zaawansowany

  • Użytkownik

Reputacja: 17
Początkujący

  • Postów:116
  • Steam:steam
  • Lokalizacja::)
Offline

Napisano 24.09.2011 07:13

Jeśli podajesz błąd, podaj też co jest w tej linijce. Domyślam się, że chodzi o:

set_user_health(id, get_user_health(id) + min(maxhealth, health);

brakuje nawiasu przed średnikiem. Poprawnie:

set_user_health(id, get_user_health(id) + min(maxhealth, health));

Funkcja min porównuje zmienne i zwraca mniejszą, w tym przypadku aby zapobiec temu, że gracz będzie miał więcej niż 100hp

@edit Warto dodać, że funkcja musi być w tasku. Jest to jednorazowe dodanie hp+x. Pętla while bez taska nic nie zrobi. Będzie się wykonywać tak szybko, jak pozwoli na to maszyna.

Użytkownik Kubaczek <3 edytował ten post 24.09.2011 08:35

  • +
  • -
  • 0




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

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