←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Mnożenie Expa

Locked

  • +
  • -
dRaq's Photo 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
Quote

  • +
  • -
sebul's Photo sebul 30.01.2011

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

Drewno.'s Photo Drewno. 30.01.2011

Tak jak mówił sebul

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

Edited by PedoBear., 30.01.2011 21:30.
Quote

  • +
  • -
DarkGL's Photo 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ą
Quote

  • +
  • -
dRaq's Photo 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
Quote

  • +
  • -
sebul's Photo 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 ;]
Edited by sebul, 30.01.2011 22:35.
Quote

  • +
  • -
DarkGL's Photo 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
Quote

  • +
  • -
sebul's Photo 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
Edited by sebul, 30.01.2011 23:01.
Quote

  • +
  • -
DarkGL's Photo 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
Quote

  • +
  • -
sebul's Photo 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.
Edited by sebul, 30.01.2011 23:01.
Quote

  • +
  • -
DarkGL's Photo DarkGL 30.01.2011

nie w pawn 3/2 to nie jest 1.5
Quote

  • +
  • -
sebul's Photo 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?
Edited by sebul, 30.01.2011 23:06.
Quote

FreZZy's Photo 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
Quote
Locked