Try to limit the usage of file read and write commands, they can be very slow...
I put the return in front of the $iif since it doesn't depend on the condition, changed the condition == $null since a %var or $identifier is evaluated as $false when it's $null, $false or 0. In all these cases $get.score should return 0, otherwise it returns the contents. $v1 gives the first (or only) part of the last matching if condition (also $iif and while)
alias -l get.score return $iif($readini(benstriv_vars.ini,PLAYERS,score. $+ $nick),$v1,0)
And since I'm on a roll, how about
alias -l get.score return $calc($readini(benstriv_vars.ini,PLAYERSCORE,$nick))
Why not make a topic PLAYERSCORE instead of all those concatenations? I used $calc, since $calc($null), $calc(%dsfgsdgsdgsd), $calc(thisisnotanumber) and $calc($false) all return 0, and if the $readini reads a number, it returns that.
Now the other alias:
alias -l give.points { var %x = $get.score($1) + 1 | writeini -n benstriv_vars.ini PLAYERS score. $+ $1 %x | msg $2 $pointcheck($1) }
The whole if construct isn't needed, we know that $get.score always returns 0 or a number. Make sure you
always use the = in var %x = something, it is part of it's syntax. Only one exception, when you compute the %varname with $identifiers, $+ etc.
I'm no fan of using | either, the moment I see a horizontal scroll bar in my editor, I work hard to get rid of it again.
Another problem with ini files is that [ and ] have special meaning, and as such are not allowed in entries. This means that nicknames with [] in can give errors... Maybe hash tables are a solution, or a small script to convert a nickname to a decent nickname.