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ć?