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

[ROZWIĄZANE] Awaryjne wyjście ze switch'a


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

#1 Nakupenda.

    Not yet YODA

  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 02.03.2012 19:24

mam taki kod i potrzebuje w pewnym momencie wyjść z całego switcha i zrobiłem coś takiego:


switch(item)
{
case 0:
{
if(is_user_alive(id))
{
if(!ciche[id] && limit[id] < MAX_ITEMS)
{
ciche[id]=true;
limit[id]++
break; // ale jak dam tutaj break to wywala blad: vip_naku.sma(232) : error 024: "break" or "continue" is out of context
}


ja poprawnie w pewnym momencie opuścić tą pętle? i nie chodzi mi o zwrócenie wartości
  • +
  • -
  • 0

#2 A może sma?

    Godlike

  • Power User

Reputacja: 546
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 03.03.2012 14:10

Ale przecież tutaj nie ma pętli ;D
  • +
  • -
  • 0

#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.03.2012 14:24

Switch to nie pętla ^ ^
Użyj samego "return" zamiast "break".
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 Nakupenda.

    Not yet YODA

  • Autor tematu
  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 14:45

i nie chodzi mi o zwrócenie wartości


return jak rozumiem w ogóle wyjdzie z funkcji, a ja potrzebuje tylko opuścić switcha
  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.03.2012 14:47

Hmm, ale po co wychodzić? Jeśli "item" ma wartość 0, to wejdzie tylko do "case 0:", a resztę pominie.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 grzesiu131

    Profesjonalista

  • Użytkownik

Reputacja: 87
Zaawansowany

  • Postów:180
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 14:48

Za pauzuj go ?
/*switch(item)
{
case 0:
{
if(is_user_alive(id))
{
if(!ciche[id] && limit[id] < MAX_ITEMS)
{
ciche[id]=true;
limit[id]++
break; // ale jak dam tutaj break to wywala blad: vip_naku.sma(232) : error 024: "break" or "continue" is out of context
}*/

sebul (03.03.2012 16:36):
Swoje "mądrości" zachowaj dla siebie.

  • +
  • -
  • 0

#7 Nakupenda.

    Not yet YODA

  • Autor tematu
  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 14:51

Hmm, ale po co wychodzić? Jeśli "item" ma wartość 0, to wejdzie tylko do "case 0:", a resztę pominie.

po to że po switchu mam jeszcze troche kodu do wykonania

@edit: nie szukajcie sposobów na ominięcie tego od tyłu, tylko po prostu jakaś komenda albo cóś.

Użytkownik Nakupenda. edytował ten post 03.03.2012 14:54

  • +
  • -
  • 0

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.03.2012 15:00

po to że po switchu mam jeszcze troche kodu do wykonania

Po switchu? No to przecież napisałem, że innych cache nie będzie sprawdzać.
Switch
switch(item) {
case 0: // kod
case 1: // kod
case 2: // kod
}

a w "ifach" będzie to wyglądać tak
if(item == 0) // kod
else if(item == 1) // kod
else if(item == 2) // kod

więc dalej nie rozumiem co masz na myśli pisząc "opuścić switcha".
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#9 Nakupenda.

    Not yet YODA

  • Autor tematu
  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 15:18

bo nie podałem całego kodu, a wygląda on tak:

	switch(item)
{
case 0:
{
if(is_user_alive(id))
{
if(!kolejny_warunek)
{
jakis_bool=true;
zmienna++
}
else if(!costam_sie_nie_zgadza)
{
ColorChat(id, GREEN, "Wyjscie ze switch'a!");
// TU potrzebuje wyjsc ze switcha
}
else
{
ciche[id]=false;
limit[id]--
}

// dalsze operacje w case, ktorych nie chce w jednym z przypadkow
}
else
show_hudmessage(id, "Zupelnie co innego !")
}
case 1:
//nastepne kejs'y


}

//tu jest koniec switcha i tu chce sie znalezc
// dalszy kod



@edit: znalazłem rozwiązanie goto, ale nie powinno się go stosować. Ma ktoś lepszy pomysł niż to:
	switch(item)
{
case 0:
{
if(is_user_alive(id))
{
if(!kolejny_warunek)
{
jakis_bool=true;
zmienna++
}
else if(!costam_sie_nie_zgadza)
{
ColorChat(id, GREEN, "Wyjscie ze switch'a!");
goto koniec_switcha;
}
else
{
ciche[id]=false;
limit[id]--
}

// dalsze operacje w case, ktorych nie chce w jednym z przypadkow
}
else
show_hudmessage(id, "Zupelnie co innego !")
}
case 1:
//nastepne kejs'y


}

koniec_switcha:
// dalszy kod

Użytkownik Nakupenda. edytował ten post 03.03.2012 15:20

  • +
  • -
  • 0

#10 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 03.03.2012 15:20

sebul czytaj czasem on ma kod w stylu


switch(item) {
        case 0: cos=0 // kod
        case 1: cos=1// kod
        case 2: cos=2// kod
}
client_print(id,print_chat,"%d",cos);

i nie chce np po wybraniu opcji 1 zeby sie napis pojawial


jest takie cos jak

exit


  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#11 Nakupenda.

    Not yet YODA

  • Autor tematu
  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 15:24

bosko, dzięki GoQ. exit przenosi tuż za ostatnią klamrę switcha?
  • +
  • -
  • 0

#12 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.03.2012 15:27

@edit: znalazłem rozwiązanie goto, ale nie powinno się go stosować.

A to czemu? Ja bym raczej powiedział, że należy unikać "goto", a nie, że nie powinno się go w ogóle stosować.

sebul czytaj czasem on ma kod w stylu


switch(item) {
        case 0: cos=0 // kod
        case 1: cos=1// kod
        case 2: cos=2// kod
}
client_print(id,print_chat,"%d",cos);

i nie chce np po wybraniu opcji 1 zeby sie napis pojawial

No raczej chyba on tak nie napisał ;]

Jeśli exit się nie sprawdzi, to ja bym to zrobił tak
switch(item) {
case 0: {
new bool:costam;
if(warunek) {
// kod
costam = true;
}
else if(warunek) {
// kod
}
else {
// kod
}

if(!costam) {
// kod
}
}
case 1: {
// kod
}
case 2: {
// kod
}
}

  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#13 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 03.03.2012 15:35

bosko, dzięki GoQ. exit przenosi tuż za ostatnią klamrę switcha?


nie wiem sprawdz w amxx studio podkresla sie na zielono wiec moze dzialać xD
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#14 Nakupenda.

    Not yet YODA

  • Autor tematu
  • Użytkownik

Reputacja: 137
Zaawansowany

  • Postów:451
  • Imię:Paweł
  • Lokalizacja:Warszawa
Offline

Napisano 03.03.2012 16:05

nie wiem sprawdz w amxx studio podkresla sie na zielono wiec moze dzialać xD


hahah, zawsze spoko xD

A to czemu? Ja bym raczej powiedział, że należy unikać "goto", a nie, że nie powinno się go w ogóle stosować.


jeden pies. Prawie zawsze można to czymś zastąpić

Jeśli exit się nie sprawdzi, to ja bym to zrobił tak

no to też wpadłem xD ale chciałem po ludzku, bo mam w ifie kilka warunków do sprawdzenia

Dobra, dzięki CLOSE, jak coś to zawsze można otworzyć :D

Użytkownik Nakupenda. edytował ten post 03.03.2012 16:05

  • +
  • -
  • 0

#15 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.03.2012 16:07

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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