Vice City Multiplayer
VC:MP 0.3 => mIRC/pawn Scripting => Topic started by: Skirmant on January 20, 2010, 07:41:21 pm
-
How do you approximate on mirc?
Lets say we have a number 4.6 after approximation it would be 5.
If we have a number 4.2 after approximation it would be 4.
Any ideas how to do this?
-
$round?
-
You want to "round to next nearest whole number"
You need to create your own procedure to do the following;
$ceil(N) - Returns N rounded to the next highest integer.
$floor(N) - Returns N rounded to the next lowest integer.
I did it for you :-)
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
Type //echo -a $SetWholeNumber(4.6) and //echo -a $SetWholeNumber(4.2)
-
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
Ye... Dosn't work. It always returns 8 D=
$round?
I'm not sure how $round works. If I do $round(1.6) it returns 1.6
-
come on, this is basic maths
http://www.mathwizz.com/fractions/help/help13.htm
that alias i gave you works perfectly fine.
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
always returns 8 ?
what the heck are you typing ?
type //echo -a $SetWholeNumber(4.2)
//echo -a $SetWholeNumber(4.6)
or you on drugs by any chance ?
-
or you on drugs by any chance ?
LOL!
I added alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
And i typed //echo -a $SetWholeNumber(4.6)
Returns 8.
(BTW math for me is not an issue I'm good at it)
-
returns 5 for me, just like it should do.
not sure why its retunging 8 for you, make your own.
you know what you need to do now,
use
$celi and $floor read the help manual, come on, its basic maths
-
$celi and $floor read the help manual, come on, its basic maths
Nah its extremely basic maths, but basic scripting.
Here's a script I made and it works :D
alias vcmp.whole {
if ($1 < $calc($floor($1) + 0.5)) !return $floor($1)
else !return $ceil($1)
}
Thanks for informing me about $ceil and $floor :P
-
You switch to pawn, you declare a variable f and you use floatround(f);. Simple as that!
-
You switch to pawn, you declare a variable f and you use floatround(f);. Simple as that!
Eh... What? Anyways I think I'm better out with mirc ;D
-
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
care to explain how that would ever return 8 if passed the value 4.6 ?
its using $gettok to check if the value has a remainder 5 or over
if $true return the next highest integer. $celi
if $false the next lowest integer. $floor
-
Hmm... Well I just tried your alias a few more times and I found out that if that alias doesn't have "vcmp." attached to it it always returns 8. Weird huh?
When I attached .vcmp it worked
-
i would quite like to know how on earth your getting it to return 8.
its only returning either $celi or $floor of your passed parameter (in this case 4.6)
PS, would other people check this works:
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
//echo -a $SetWholeNumber(4.6) - should return 5
//echo -a $SetWholeNumber(4.2) - should return 4
-
ok, your talking utter rubbish now. you've wasted a whole thread when the example i gave you worked perfectly fine. (which has now probably confused other people)
-
ok, your talking utter rubbish now. you've wasted a whole thread when the example i gave you worked perfectly fine. (which has now probably confused other people)
I think you're over reacting buddy. I'm not talking rubbish. For some reason your example doesn't work for me with out "vcmp." attached to it and I really don't want to make a big deal about it.
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
//echo -a $SetWholeNumber(4.6)
Returns 8
alias vcmp.SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
//echo -a $vcmp.SetWholeNumber(4.6)
Returns 5
finnal post in this thread
-
oh mate, thats bad.
you cannot lead people to believe that you must have vcmp. as part of the alias name.
Do you know how silly that sounds ?
kind regards
Accepted Solution:
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))
-
no offense intended Skirmant, but your an idiot!
the alias name is irreverent, as long as you don't have any conflicting names,
unless you apply the -l switch which stands for "local alias".
it makes NO difference to the result if the alias is vcmp.blah or just blah
-
no offense intended Skirmant, but your an idiot!
You had to piss me off did you?
Here's the ultimate proof
http://www.youtube.com/watch?v=VJySqFjobyA
The video may not be finished processing, but by doing full screen you can see it.
I wish that you would take those words back :)
-
ok, yea, sorry for pissing you off. but my way is right.
lets look at this from another angle.
why do you think the alias name should be prefixed with vcmp. ?
can you check you have no other alias names with SetWholeNumber for me.
PS. your way is right too, btw.
Im just interested why its returning 8 when a value of 4.5 is passed to it. as its only returning $celi or $floor of 4.5
-
I pretty much searched everywhere there doesn't seem to be another one.
And I have no idea why it works with vcmp. attached to it. Infact it works with anything attached to it.
-
well, as long as i know the calculation works, the alias name seem to be the problem (im putting that down to a conflicting name in your script)