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

Zmiana HP o losową ilość


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

#1 Filip1512

    Wszechmogący

  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 24.09.2012 21:34

Cześć,
do rzeczy - chce, aby ta funkja dawała losowe hp, lecz nie działa. Na czacie informuje, że hp zostało zmienione, hp wzrasta, lecz nie działa funkcja, że jeśli hp > 100, to zmienić hp na 100

                        case 11: {
new hp = get_user_health(id)
new losowe_hp = random_num(20,50)

ColorChat(id, BLUE, "Otrzymujesz dodatkowe %dhp i granat na pocieszenie :)", losowe_hp)
cs_set_user_money(id, (cs_get_user_money(id)-get_cvar_num("kasa_bonus")), 1)
give_item(id, "weapon_hegrenade")
dodatkowe_hp[id] = true;

if(dodatkowe_hp[id] == true && is_user_alive(id)){
set_user_health(id, hp+losowe_hp)
}
else if(get_user_health(id) > 100)
set_user_health(id, 100)
}

Co tu jest źle?

Użytkownik `NN edytował ten post 24.09.2012 21:40

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#2 Zapalka

    Wszechwidzący

  • Użytkownik

Reputacja: 194
Profesjonalista

  • Postów:283
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Janów Lubelski
Offline

Napisano 25.09.2012 06:03

Źle jest tutaj:

if(dodatkowe_hp[id] == true && is_user_alive(id)){
set_user_health(id, hp+losowe_hp)
}
else if(get_user_health(id) > 100) set_user_health(id, 100)

Jeśli "if" się wykona to "else if" się nie wykona, i na odwrót jeżeli "if" się nie wykona to "else if" się wykona. "else if" oznacza "jeżeli nie".
Więc aby działało musisz postawić dwa niezależne warunki.


if(dodatkowe_hp[id] == true && is_user_alive(id)){
set_user_health(id, hp+losowe_hp)
}
if(get_user_health(id) > 100) set_user_health(id, 100)

  • +
  • -
  • 0
Zapraszam na http://zapalka.net.pl

#3 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 25.09.2012 14:39

Zapomniałem dopisać do pierwszego postu, że właśnie przy zwykłym ifie było tak samo.
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#4 Zapalka

    Wszechwidzący

  • Użytkownik

Reputacja: 194
Profesjonalista

  • Postów:283
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Janów Lubelski
Offline

Napisano 25.09.2012 15:06

A logi jakieś plugin wywala w trybie debugowania?
  • +
  • -
  • 0
Zapraszam na http://zapalka.net.pl

#5 Dimision

    Zaawansowany

  • Użytkownik

Reputacja: 56
Pomocny

  • Postów:83
  • Imię:seba
  • Lokalizacja:pn
Offline

Napisano 25.09.2012 15:14

Może spróbuj dodać set_task. Mi kiedyś pomogło.
  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika

Dołączona grafika


#6 Pan PrO

    Wszechpomocny

  • Użytkownik

Reputacja: 99
Zaawansowany

  • Postów:388
  • Lokalizacja:PC
Offline

Napisano 25.09.2012 16:40

Sprawdź to


case 11:
{
new hp = get_user_health(id)
new losowe_hp = random_num(20,50)

ColorChat(id, BLUE, "Otrzymujesz dodatkowe %dhp i granat na pocieszenie :)", losowe_hp);
cs_set_user_money(id, cs_get_user_money(id)-get_cvar_num("kasa_bonus"));
give_item(id, "weapon_hegrenade");

if(is_user_alive(id))
{
if(get_user_health(id) > 100)
set_user_health(id, 100);
else set_user_health(id, hp+losowe_hp);
}
}

  • +
  • -
  • 0

#7 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 26.09.2012 22:42

Moze pomoże Ci is_user_connected(id), a na dodatek nie dałeś zabezpieczenia, czy gracz ma taką kasę, by to kupić. Jak ma 5$, a to np kosztuje 10$, to będzie miał na minusie, a nie powinien mieć, wywali Ci błędami. Sprawdzeń typu alive, is_bot, connected, spectator nigdy za wiele, sam o tym sie przekonalem w evencie round_start nie raz.. niby glupie connected, a nic nie chcialo dzialac ; d

Użytkownik ogieR- edytował ten post 26.09.2012 22:43

  • +
  • -
  • 0

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#8 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.10.2012 15:52

@up jeśli jest is_user_alive, to is_user_connected zawsze w tym wypadku będzie prawdziwe.
Można mieć ujemną sumę pieniędzy, nic nie stoi na przeszkodzie i żadnych errorów nie będzie.
A is_user_bot nie zdaje żadnego rezultatu w tym wypadku, gdyż bot i tak symuluje gracza z AI.

@topic:
new hp = get_user_health(id)
new losowe_hp = random_num(20,50)

ColorChat(id, BLUE, "Otrzymujesz dodatkowe %dhp i granat na pocieszenie :)", losowe_hp);
cs_set_user_money(id, cs_get_user_money(id)-get_cvar_num("kasa_bonus"));
give_item(id, "weapon_hegrenade");

set_user_health(id, min(hp+losowe_hp,100));


#9 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 17.10.2012 20:40

Btw. dla autora tematu, zamiast:
if(dodatkowe_hp[id] == true && is_user_alive(id))
używaj tak:
if(dodatkowe_hp[id] && is_user_alive(id))
gdyż tak jest bardziej "estetyczniej"
A gdy zwracasz false to wykrzyknik przed zmienną, ale to chyba już wiesz ;D
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !





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

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