←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Pomijanie funkcji w pluginie

Zablokowany

  • +
  • -
Karolus - zdjęcie Karolus 03.04.2011

Mam sobie oto taki kodzik:
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ć?
Odpowiedz

FreZZy - zdjęcie 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!");
}
Odpowiedz

  • +
  • -
Karolus - zdjęcie Karolus 03.04.2011

Po zmianie na twój kod wcale nie wyświetla się informacja o tym że nie zostałeś zraniony


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
Odpowiedz

FreZZy - zdjęcie FreZZy 03.04.2011

bo to był tylko dolny kawałek mistrzu...
Odpowiedz

  • +
  • -
Karolus - zdjęcie 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ł?
Odpowiedz

  • +
  • -
diablix - zdjęcie 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
Odpowiedz
Zablokowany