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

Sprawdanie czy zmienna jest liczbą


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
13 odpowiedzi w tym temacie

#1 sebacs2

    Wszechwidzący

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 03.01.2013 23:04

Witam chce sprawdzić czy dana wartość jest liczbą, i potrzebuje konsultacji

np. takie coś

new monety = cod_get_user_coins(id);

if(is_str_num(monety))
{
// tak monety to liczba :)
}
else
{
//nie monety to nie liczba :(
}


No i dlaczego to nie działa, jak to zrobić aby chodziło poprawnie ?
  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#2 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 03.01.2013 23:14

Pytanie podstawowe, po co sprawdzać coś co jest pewnikiem? Gdzie tu logika i jakakolwiek kwestia optymalizacji?
  • +
  • -
  • 2

serwer-1.png
IP: ts3.cserwerek.pl


#3 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 03.01.2013 23:24

Tak jak Portek napisał, funkcja zwraca liczbę całkowitą. Więc jaki jest sens sprawdzania tego ?

http://amxx.pl/dokum...1394/is_str_num

Sprawdza czy tekst składa się z samych cyfr (tworzy liczbę).


Nie działa Ci to, ponieważ zmienna monety nie jest stringiem.
Składnia: is_str_num(const sString[])

  • +
  • -
  • 2

If you can dream it, you can do it.


#4 sebacs2

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 03.01.2013 23:37

Pytanie podstawowe, po co sprawdzać coś co jest pewnikiem? Gdzie tu logika i jakakolwiek kwestia optymalizacji?


Racja, lecz cod_get_user_coins(id); w moim przypadku, staje się liczba gdy dołączymy do gry, ale pewnie się zapytacie, to czym jest ?
Właśnie, że niczym i jak dodam do HUD "monety" , to HUD się coś buguje i HUD się nie pokazuje, pokaże się dopiero jak dołączymy do drużyny, a jak wejdziemy na serwer prosto na spectate to niestety nie zobaczymy tego hud, i chce to zastąpić, coś w rodzaju gdy zmienia "nie działa" to będzie pisało "Wczytuje dane"
Bo te hud składa się z wielu zmiennych i chce, żeby jedna zmienna nie rozwalała całego hud.
Ma ktoś jakiś pomysł ?
  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#5 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 03.01.2013 23:40

Po najmniejszej lini oporu sprawdzaj aktualny team gracza i wyświetlaj hud: http://amxx.pl/dokum...5/get_user_team
  • +
  • -
  • 1

If you can dream it, you can do it.


#6 sebacs2

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 03.01.2013 23:50

Czy do naszych rozważań teoretycznych, takie coś by działało, czy da się to napisać prościej ? Optymalnej.

new monety = cod_get_user_coins(id);

if(get_user_team(id) == 1 || get_user_team(id) == 3)
{
	set_hudmessage(255, 255, (...)
	ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : Dolacz do gry aby zobaczyc", Zmiana1, Zmiana2);
}
else
{
	set_hudmessage(255, 255, (...)
	ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : i%", Zmiana1, Zmiana2, monety);
}

  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#7 xenos

    Wszechobecny

  • Użytkownik

Reputacja: 216
Profesjonalista

  • Postów:467
  • GG:
  • Imię:Konrad
  • Lokalizacja:Rzeszów
Offline

Napisano 04.01.2013 00:43

get_user_team(id) == 1 

To jest oznaczenie Teamu Terro więc tutaj mały błąd
dlatego najlepiej będzie pasować 3ka czyli spec jak napisałeś i unnasigned czyli osoby nie przydzielone
get_user_team(id) == 3 // spec
get_user_team(id) == 0 // unnasigned
a co do optymalizacji to jeżeli ma się wyświetlać w 1 miejscu na ekranie to nie ma potrzeby 2x wpisywać w kod set_hudmassage mała, ale jako taka oszczędność



new monety = cod_get_user_coins(id);
set_hudmessage(255, 255, (...)
if(get_user_team(id) == 0 || get_user_team(id) == 3)
{
        
        ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : Dolacz do gry aby zobaczyc", Zmiana1, Zmiana2);
}
else
{
        
        ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : i%", Zmiana1, Zmiana2, monety);
}


Użytkownik xenos edytował ten post 04.01.2013 00:45

  • +
  • -
  • 1
"Jeśli potrafię to pomogę, jeśli nie potrafię to wskaże drogę którą trzeba dążyć by znaleźć odpowiedz" 

Pluginy:
Szukanie Aktywnych Banów w AmxBansie
Drop After Death
Kto postawił mine

#8 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 04.01.2013 08:04

Zawsze można sprawdzić tak:
get_user_team(id) % 3

new monety = cod_get_user_coins(id);
set_hudmessage(255, 255, (...)
if(get_user_team(id) % 3){
	ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : i%", Zmiana1, Zmiana2, monety);
}
else{
	ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : Dolacz do gry aby zobaczyc", Zmiana1, Zmiana2);
}

  • +
  • -
  • 1

If you can dream it, you can do it.


#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 10.01.2013 02:30

możesz również ustawić, aby cod_get_user_coins zwracało jakąś określoną wartość, gdy monet nie da się odczytać, np -1, -999 itp...
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 sebacs2

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 13.01.2013 00:37

możesz rozwinąć wypowiedz ? GwynBleidD

Użytkownik sebacs2 edytował ten post 13.01.2013 00:37

  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#11 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 13.01.2013 10:56

Jak masz funkcję cod_get_user_coins(id) w niej dodaj warunek np. jeżeli monety gracza są >= 1, to zwróć ilość monet, w innym przypadku zwróć 0 lub -1. Następnie pobierasz ilość monet i warunkiem możesz sprawdzić co zwróciła funkcja cod_get_user_coins(id) ;)
  • +
  • -
  • 0

If you can dream it, you can do it.


#12 sebacs2

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 6
Nowy

  • Postów:244
  • Lokalizacja:nie wiem
Offline

Napisano 14.01.2013 20:05

Czyli o takie coś macie namyśli ?


new monety = cod_get_user_coins(id);
set_hudmessage(255, 255, (...)
if(monety >= 1){
ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : i%", Zmiana1, Zmiana2, monety);
}
else{
ShowSyncHudMsg(id, SyncHudObj2, "Zmiana 1 : %s^n Zmienna 2 :%i^nMonety : Wczytuje dane", Zmiana1, Zmiana2);
}



Wybaczcie, że nie ma bbcode ale znikły mi magiczne guziczki :)</p>

Użytkownik benio101 edytował ten post 15.01.2013 11:02
Dodanie znacznika SMA

  • +
  • -
  • 0

;P Zapraszam na sieć serwerów Cs-KoRea.pl ^D^

Serwer [FFA+BF2] 31.186.83.100:27041 Serwer [Cod] 31.186.83.100:27046


#13 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 15.01.2013 16:49

Tak, powinno zadziałać ;)
  • +
  • -
  • 0

If you can dream it, you can do it.


#14 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 15.01.2013 17:54

Skoro "cod_get_user_coins" zwraca liczbę całkowitą, to nie ma takiej opcji, żeby przez to bugował się hud... Więc szukaj problemu gdzie indziej, chociażby nie pisze się "i%" tylko "%i".
  • +
  • -
  • 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