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)