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

Pomijanie funkcji w pluginie


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 Karolus

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:102
  • Lokalizacja:Stargard Szcz.
Offline

Napisano 03.04.2011 09:08

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ć?
  • +
  • -
  • 0

#2 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 03.04.2011 09:27

			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!");
}


#3 Karolus

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:102
  • Lokalizacja:Stargard Szcz.
Offline

Napisano 03.04.2011 09:49

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

  • +
  • -
  • 0

#4 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 03.04.2011 10:03

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

#5 Karolus

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:102
  • Lokalizacja:Stargard Szcz.
Offline

Napisano 03.04.2011 10:09

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ł?
  • +
  • -
  • 0

#6 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 08.04.2011 13:11

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

  • +
  • -
  • 0




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

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