#Paging CatchEvent OnMSO( $userName, $text ) # Player event $idxOfFirtsSpace = indexOf( $text, " "); IF( $idxOfFirtsSpace == -1 ) THEN $command = $text; $argv = ""; ELSE $command = subStr( $text,0,$idxOfFirtsSpace ); $argv = trim( subStr( $text,$idxOfFirtsSpace ) ); ENDIF SWITCH( $command ) CASE "!page": Setplayervar($userName,"Page",1); Paging($userName); BREAK; ENDSWITCH EndCatchEvent Sub Paging($UserName) $MaxNrOfResults = 40; $BtnHgt = 61; $BtnWdt = 70; $Counter = 0; $MaxResultsOnPage = 15; #Close all buttons that contains "Page_" #Just to prevent overlapping buttons with different button ID's (actually this shouldn't happen within this code) CloseButtonRegex ($username, "Page_*"); $StartNrOfResult = (Getplayervar($username,"Page") * $MaxResultsOnPage) - $MaxResultsOnPage; openPrivButton( "Page_Prev",$BtnWdt,$BtnHgt+10,15,4,5,-1,32, "^7Prev Page",PrevPage); openPrivTextButton( "Page_Sel",$BtnWdt+15,$BtnHgt+10,10,4,5,32,"Select page 1 - 8","^7Page ".Getplayervar($UserName,"Page"),1,SelectPage); openPrivButton( "Page_Next",$BtnWdt+25,$BtnHgt+10,15,4,5,-1,32, "^7Next Page",NextPage); FOR( $i = 0; $i <= ToNum($MaxNrOfResults); $i = $i + 1) #Show 15 results on screen #Start result number $StartNrOfResult and #It stops showing results when $counter hits the limit or reached MaxNumberofResult IF(($i >= ToNum($StartNrOfResult))&&(ToNum($Counter) < $MaxResultsOnPage)) THEN openPrivButton( "Page_Button_".$Counter,$BtnWdt,$BtnHgt,5,4,5,-1,16, "".$i); #Increase the buttonheight by 4 for each button. $BtnHgt = $BtnHgt + 4; $Counter = $Counter + 1; ENDIF ENDFOR EndSub #User Clicked on Next Page Button Sub NextPage($keyflags,$id) $UserName = GetCurrentPlayerVar("UserName"); $CurrPage = Getplayervar($UserName,"Page"); #Increase pagenumber by 1. And call 'paging' sub Setplayervar($UserName,"Page",$CurrPage + 1); Paging($UserName); EndSub #User Clicked on Prev Page Button Sub PrevPage($keyflags,$id) $UserName = GetCurrentPlayerVar("UserName"); $CurrPage = Getplayervar($UserName,"Page"); # Reset Playervar when pagenumber is below 1 # Otherwise decrease pagenumber by 1. # And call 'paging' sub IF($CurrPage <= 1) THEN Setplayervar($UserName,"Page",1); ELSE Setplayervar($UserName,"Page",$CurrPage - 1); ENDIF Paging($UserName); EndSub #User Clicked on select Page Button Sub SelectPage($id,$argv) $UserName = GetCurrentPlayerVar("UserName"); $CurrPage = Getplayervar($UserName,"Page"); #Check if selected page is a numeric value. IF(IsNum($argv) == 1) THEN Setplayervar($UserName,"Page",$argv); Paging($UserName); ENDIF EndSub Sub closeButtonRegex ( $userName, $exp ) $lob = getListOfPlayerButtons( $userName ); FOREACH ( $de in $lob ) $nameOfButton = $de["value"]; IF ( isRegexMatch( $exp, $nameOfButton ) == 1 ) THEN closeButton ( $userName, $nameOfButton ); ENDIF ENDFOREACH EndSub