case 0:
{
if(maxzdrowie)
{
client_print(id, print_chat, "[EX-COD] Nie zostales zraniony, nie mozesz sie uleczyc!");
}
if(kasa >= 2000)
{
new nowe_zdrowie = (zdrowie+25);
if(nowe_zdrowie < maxzdrowie)
{
cs_set_user_money(id, kasa-2000);
set_user_health(id, nowe_zdrowie);
client_print(id, print_chat, "[EX-COD] Zakupiles Bandaz, twoje HP wzroslo.");
}
if(nowe_zdrowie >= maxzdrowie && zdrowie != maxzdrowie)
{
cs_set_user_money(id, kasa-4000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[EX-COD] Zostales w pelni uleczony!");
}
}
if(kasa < 2000)
{
{
client_print(id, print_chat, "[EX-COD] Nie stac cie na Bandaz!");
}
}
}A teraz pytanie co do niego:
Wszystko działa z tym ze jest mankament który mnie doprowadza do szewskiej pasji, mianowicie nie wiem jak zrobić tak ze gdy funkcja zostanie już sprawdzona to w późniejszym kodzie jest już całkowicie pomijana.
Chce tak zrobić bo najpierw sprawdzam maxzdrowie, czyli wartość 100 + tyle ile w zależności ma dana klasa od rozdanych punktów w hp jeżeli okazuje się ze ktoś ma w danym momencie maxzdrowie to wyskakuje mu komunikat ze nie został zraniony i nie może kupić apteczki - wszystko OK
Ale jeżeli ten ktoś nie ma maxzdrowie, tylko jego HP jest mniejsze niż ta wartość to wtedy może on kupić apteczkę, zabiera mu wtedy 2000 kasy, dodaje 20HP i wyświetla informacje ze został uleczony, lecz jeżeli np. jego hp jest obecnie równe np. 100 a jego maxzdrowie wynosi 110 to wtedy dodaje mu do hp 10 punktów, wyświetla info ze HP zostało w całości uleczone lecz pojawia się tez informacja początkowa ze nie został on zraniony i nie może się uleczyć, z tego względu ze hp po uleczeniu osiągnęło wartość maxzdrowie i teraz chciałbym aby ta funkcja po jednym sprawdzeniu była całkowicie w dalszym kodzie pomijana tylko jak teraz to zrobić?


Dodatki SourceMod



This topic is locked









