←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Mnożenie Expa

Zablokowany

  • +
  • -
dRaq - zdjęcie dRaq 30.01.2011

Nie mam żadnego problemu, ale piszę ten temat z ciekawości. Załóżmy że cvar expa jest ustawiony na 100. Exp pomnożony przez 2(2*=amount) jest prawidłowy czyli 200, zaś pomnożony przez liczbę z przecinkiem(1,3/1,5) daje kosmiczne liczby :D
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.01.2011

Bo nie daje się przecinków (,), tylko kropki (.) ;] Czyli np. "1.6"
Odpowiedz

Drewno. - zdjęcie Drewno. 30.01.2011

Tak jak mówił sebul

przykład:
if(zmienna[id])amount*=1.5

Użytkownik PedoBear. edytował ten post 30.01.2011 21:30
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 30.01.2011

nigdy nie robi się takich rzeczy jak już chcemy pomnożyć int z floatem to za pomoca float() zmieniamy int na float a potem jesli chcemy powrocic do int to floatround()
nie wiem może ja mam tylko takie zboczenie niech się inni wypowiedzą
Odpowiedz

  • +
  • -
dRaq - zdjęcie dRaq 30.01.2011

No dawałem kropkę tylko się walnąłem w pierwszym poście. Nie kminie tego, dziwna rzecz liczby całkowite traktuje normalnie, kropka ma dziwny wpływ :D
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.01.2011

nigdy nie robi się takich rzeczy jak już chcemy pomnożyć int z floatem to za pomoca float() zmieniamy int na float a potem jesli chcemy powrocic do int to floatround()
nie wiem może ja mam tylko takie zboczenie niech się inni wypowiedzą

A no też fakt. Z obrażeniami w itemie miałem to samo...

No to, żeby nie robić tego co wyżej opisane, to najlepiej przemnożyć wartość przez "ułamek", czyli zamiast 1.5 wpisać 3/2 ;]
Użytkownik sebul edytował ten post 30.01.2011 22:35
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 30.01.2011

sebul nie
(3*3)/2 != 3.0 * 1.5
nie kropka nie ma dziwnego wpływu ale po prostu nie robi się takich rzeczy
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.01.2011

sebul nie
(3*3)/2 != 3.0 * 1.5
nie kropka nie ma dziwnego wpływu ale po prostu nie robi się takich rzeczy

No ale jak zapiszesz to w ten sposób amount*=3/2 to jednak to = amount*=1.5 ;] chyba...

A jeszcze co do tych obliczeń, to jak to (3*3)/2 != 3.0 * 1.5...
(3*3)/2 = 4.5 i 3*1.5 = 4.5, więc (3*3)/2 = 3*1.5
Użytkownik sebul edytował ten post 30.01.2011 23:01
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 30.01.2011

3/2 to 1 :) albo 2 już nie pamiętam ;) ale napewno nie 1.5 :D
(3*3)/2 = 4 ;d
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.01.2011

3/2 to przecież 1.5 :o ^^
3/2 można też zapisać w ten sposób 1 i 1/2, czyli 1.5 ;] Gapa :D

Aż przez moment zwątpiłem w swoje umiejętności matematyczne :D

A co do wcześniejszego postu miało być
"(3*3)/2 = 4.5 i 3*1.5 = 4.5, więc (3*3)/2 = 3*1.5", mała pomyłka.
Użytkownik sebul edytował ten post 30.01.2011 23:01
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 30.01.2011

nie w pawn 3/2 to nie jest 1.5
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 30.01.2011

nie w pawn 3/2 to nie jest 1.5

Hmmm... A to nie domyślił bym się tego nigdy. No to niby obydwaj mieliśmy racje, ale ja po "matematycznemu", a Ty w pawnie. Sry za zamieszanie.

Tylko jeszcze mam pytanie, na jakiej zasadzie to liczy? Zaokrągla, czy bierze tylko całości?
Użytkownik sebul edytował ten post 30.01.2011 23:06
Odpowiedz

FreZZy - zdjęcie FreZZy 31.01.2011

generuje śmiecia. Dlatego wam takie liczby wychodzą, jak nie zmieniacie typu na float() :)

Ew. w C++ nie zaokrągla tylko po prostu ucina końcówke, ale nie wiem czy w tym miejscu PAWN działa tak samo jak cepepe
Odpowiedz
Zablokowany