Vice City Multiplayer

VC:MP => mIRC/pawn Scripting => Topic started by: Skirmant on January 20, 2010, 04:41:21 PM

Title: Approximation
Post by: Skirmant on January 20, 2010, 04: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?
Title: Re: Approximation
Post by: thijn on January 20, 2010, 05:04:04 PM
$round?
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 05:13:51 PM
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)
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 05:21:22 PM
Quote from: Kirke on January 20, 2010, 05:13:51 PM
alias SetWholeNumber !return $iif($gettok($1,2,46) >= 5,$ceil($1),$floor($1))

Ye... Dosn't work. It always returns 8 D=

Quote from: thijn on January 20, 2010, 05:04:04 PM
$round?

I'm not sure how $round works. If I do $round(1.6) it returns 1.6
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 05:27:43 PM
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 ?
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 05:31:39 PM
Quote from: Kirke on January 20, 2010, 05:27:43 PM
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)
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 05:33:34 PM
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
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 06:02:23 PM
Quote from: Kirke on January 20, 2010, 05:33:34 PM
$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
Title: Re: Approximation
Post by: Boss on January 20, 2010, 06:05:50 PM
You switch to pawn, you declare a variable f and you use floatround(f);. Simple as that!
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 06:07:27 PM
Quote from: Boss on January 20, 2010, 06:05:50 PM
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
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 06:14:32 PM
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
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 06:20:01 PM
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
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 06:22:12 PM
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
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 06:24:27 PM
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)
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 06:31:13 PM
Quote from: Kirke on January 20, 2010, 06:24:27 PM
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
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 06:34:21 PM
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))
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 06:46:24 PM
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
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 07:07:31 PM
Quote from: Kirke on January 20, 2010, 06:46:24 PM
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 :)
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 07:47:41 PM
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
Title: Re: Approximation
Post by: Skirmant on January 20, 2010, 07:52:10 PM
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.
Title: Re: Approximation
Post by: Kirke on January 20, 2010, 08:01:54 PM
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)