Pomijanie funkcji w pluginie
Karolus
03.04.2011
Mam sobie oto taki kodzik:
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ć?
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ć?
FreZZy 03.04.2011
if(kasa >= 2000)
{
new uleczenie = 25
new nowe_zdrowie = (zdrowie+uleczenie);
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.");
}
else if(nowe_zdrowie >= (maxzdrowie-uleczenie) )
{
cs_set_user_money(id, kasa-4000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[EX-COD] Zostales w pelni uleczony!");
}
}
else if(kasa < 2000)
{
client_print(id, print_chat, "[EX-COD] Nie stac cie na Bandaz!");
}
Karolus
03.04.2011
Po zmianie na twój kod wcale nie wyświetla się informacja o tym że nie zostałeś zraniony
Użytkownik Karolus edytował ten post 03.04.2011 09:54
case 0:
{
if(maxzdrowie)
{
client_print(id, print_chat, "[EX-COD] Nie zostales zraniony, nie mozesz sie uleczyc!");
}
if(kasa >= 2000)
{
new uleczenie = 25;
new nowe_zdrowie = (zdrowie+uleczenie);
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.");
}
else if(nowe_zdrowie >= (maxzdrowie-uleczenie) )
{
cs_set_user_money(id, kasa-4000);
set_user_health(id, maxzdrowie);
client_print(id, print_chat, "[EX-COD] Zostales w pelni uleczony!");
}
}
else if(kasa < 2000)
{
client_print(id, print_chat, "[EX-COD] Nie stac cie na Bandaz!");
}
}
Użytkownik Karolus edytował ten post 03.04.2011 09:54
Karolus
03.04.2011
bo to był tylko dolny kawałek mistrzu...
To spójrz na kod powyżej, nie zamieniłem całości mistrzu.
Dodano 04 kwiecień 2011 - 13:55:
ma ktoś jakiś pomysł?
diablix
08.04.2011
case 0:
{
if(maxzdrowie)
{
client_print(id, print_chat, "[EX-COD] Nie zostales zraniony, nie mozesz sie uleczyc!");
return;
}
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!");
}
return;
}
if(kasa < 2000)
{
{
client_print(id, print_chat, "[EX-COD] Nie stac cie na Bandaz!");
return;
}
}
}
Użytkownik diablix edytował ten post 08.04.2011 13:11