# Author: Tim NL # # Lapper version needed: 7.0.4.10 or above # # # # Points system V1.00 15-09-2009 -Initial release # # Points system V1.01 08-05-2020 -Script converted into a module (Yisc[NL]) # # -Added code to calculate the number of players that is on track when race starts (Yisc[NL]) # # -topUser is a discontinued function, added code (made my Bass-Driver) to replace that (Yisc[NL]) # # -nearUser is a discontinued function, added code (made by Bass-Driver) to replace that (Yisc[NL]) # ######################################################################################################################################################################### CatchEvent OnLapperStart() OnLapperStart_Points_system(); EndCatchEvent 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 "!point": show_points( 0,0 ); BREAK; CASE "!rank": show_points( 0,1 ); BREAK; ENDSWITCH EndCatchEvent CatchEvent OnRaceStart( $NumP ) # Lapper event DelayedCommand( 5, ORS_Points_system ); EndCatchEvent Sub ORS_Points_system() OnRaceStart_Points_system(); EndSub CatchEvent OnQualStart( $NumP ) # Lapper event DelayedCommand( 5, OQS_Points_system ); EndCatchEvent Sub OQS_Points_system() OnQualStart_Points_system(); EndSub CatchEvent OnResult( $userName,$flagConfirm ) # Player event SetCurrentPlayerVar( "ps_race_points",(($ps_max_points+1) - GetCurrentPlayerVar( "FinishedPos" ) ) ); SetCurrentPlayerVar( "ps_points_total",getUserStoredValue( "ps_points_total" ) ); IF( GetCurrentPlayerVar( "ps_points_total" ) == "" ) THEN SetCurrentPlayerVar( "ps_points_total","0" ); ENDIF IF( ToNum(GetCurrentPlayerVar( "ps_race_points" )) < 1 ) THEN SetCurrentPlayerVar( "ps_race_points",0 ); ENDIF SWITCH( GetCurrentPlayerVar("FinishedPos") ) CASE 1: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point900",$point_L,$point_T-4,40,4,4,-1,96,"^7 Race on ^3" . GetLapperVar("LongDate") . " @ " . GetLapperVar("LongTime") ); openGlobalButton( "point910",$point_L+40,$point_T-4,6,4,4,-1,96,"^7points" ); openGlobalButton( "point001",$point_L,$point_T,40,4,4,-1,96,"^7 1 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point101",$point_L+40,$point_T,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 2: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point002",$point_L,$point_T+4,40,4,4,-1,96,"^7 2 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point102",$point_L+40,$point_T+4,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 3: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point003",$point_L,$point_T+8,40,4,4,-1,96,"^7 3 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point103",$point_L+40,$point_T+8,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 4: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point004",$point_L,$point_T+12,40,4,4,-1,96,"^7 4 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point104",$point_L+40,$point_T+12,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 5: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point005",$point_L,$point_T+16,40,4,4,-1,96,"^7 5 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point105",$point_L+40,$point_T+16,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 6: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point006",$point_L,$point_T+20,40,4,4,-1,96,"^7 6 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point106",$point_L+40,$point_T+20,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 7: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point007",$point_L,$point_T+24,40,4,4,-1,96,"^7 7 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point107",$point_L+40,$point_T+24,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 8: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point008",$point_L,$point_T+28,40,4,4,-1,96,"^7 8 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point108",$point_L+40,$point_T+28,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 9: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point009",$point_L,$point_T+32,40,4,4,-1,96,"^7 9 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point109",$point_L+40,$point_T+32,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 10: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point010",$point_L,$point_T+36,40,4,4,-1,96,"^710 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point110",$point_L+40,$point_T+36,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 11: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point011",$point_L,$point_T+40,40,4,4,-1,96,"^711 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point111",$point_L+40,$point_T+40,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; CASE 12: IF(( $flagConfirm == 2 )||( $flagConfirm == 18 )||( $flagConfirm == 34 )) THEN openGlobalButton( "point012",$point_L,$point_T+44,40,4,4,-1,96,"^712 : " . GetCurrentPlayerVar("NickName") ); openGlobalButton( "point112",$point_L+40,$point_T+44,6,4,4,-1,32,"^3" . GetCurrentPlayerVar( "ps_race_points" ) ); ENDIF BREAK; DEFAULT: BREAK; ENDSWITCH SetCurrentPlayerVar( "ps_points_total",ToNum(GetCurrentPlayerVar( "ps_points_total" ))+ GetCurrentPlayerVar( "ps_race_points" ) ); setUserStoredValue( "ps_points_total", GetCurrentPlayerVar( "ps_points_total" ) ); EndCatchEvent Sub OnLapperStart_Points_system() GlobalVar $point_L ; GlobalVar $point_T ; GlobalVar $ps_max_points; $point_L = 75 ; $point_T = 5 ; $ps_max_points=10; EndSub Sub OnRaceStart_Points_system() $mList = GetListOfPlayers("N"); $mCount = arrayCount( $mList ); $plyNum=0; $players_on_track=0; WHILE ($plyNum < $mCount) $uName = $mList[$plyNum]; $plyNum=$plyNum+1; IF ( GetPlayerVar( $uName,"OnTrack" ) == 1 ) THEN $players_on_track=$players_on_track+1; ENDIF ENDWHILE $ps_max_points=$players_on_track; cmdLFS( "/msg ^3Max. points to score this race (^2 " . $ps_max_points . " ^3)" ); closeGlobalButton("point900&point910&point920&point001&point002&point003&point004&point005&point006&point007&point008&point009&point010&point011&point012"); closeGlobalButton("point101&point102&point103&point104&point105&point106&point107&point108&point109&point110&point111&point112"); closeGlobalButton("point201&point202&point203&point204&point205&point206&point207&point208&point209&point210&point211&point212"); closeGlobalButton("point013&point014&point015&point016&point017&point018&point019&point020&point021&point022&point023&point024"); closeGlobalButton("point113&point114&point115&point116&point117&point118&point119&point120&point121&point122&point123&point124"); closeGlobalButton("point213&point214&point215&point216&point217&point218&point219&point220&point221&point222&point223&point224"); EndSub Sub OnQualStart_Points_system() closeGlobalButton("point900&point910&point920&point001&point002&point003&point004&point005&point006&point007&point008&point009&point010&point011&point012"); closeGlobalButton("point101&point102&point103&point104&point105&point106&point107&point108&point109&point110&point111&point112"); closeGlobalButton("point201&point202&point203&point204&point205&point206&point207&point208&point209&point210&point211&point212"); closeGlobalButton("point013&point014&point015&point016&point017&point018&point019&point020&point021&point022&point023&point024"); closeGlobalButton("point113&point114&point115&point116&point117&point118&point119&point120&point121&point122&point123&point124"); closeGlobalButton("point213&point214&point215&point216&point217&point218&point219&point220&point221&point222&point223&point224"); EndSub Sub show_points( $KeyFlags,$id ) ### Check if $id is empty and if so, give it value 0 (this means $flagnear = FALSE) ### IF ($id == "" ) THEN $id = 0; ENDIF ### End ### $list = getlisttopuser( "ps_points_total", "DESC", $id, 0 ); $currUName = getCurrentPlayerVar( "UserName" ); $Points_system_but_close = ""; $initTop = 40; #Startheight $P_H = 5; #Height of button $P_T = $initTop + ($P_H); ###Background/Title/CloseButton### openPrivButton("points_system_bgd",64,$initTop-7,58,120,10,-1,16,"^0"); openPrivButton("points_system_title",65,$initTop-6,56,6,10,-1,32,"^7List of: Points"); openPrivButton("points_system_close",65,$initTop+105,56,6,10,-1,32,"^7Close List",Close_points_system_top); ###First Row### openPrivButton("points_system_colpos", 65, $P_T-5, 7, $P_H, $P_H, -1, 32, "Pos"); openPrivButton("points_system_colnickname", 72, $P_T-5, 30, $P_H, $P_H, -1, 32, "Nickname"); openPrivButton("points_system_coluservalue", 102, $P_T-5, 19, $P_H, $P_H, -1, 32, "Total points"); #Playervar for Closing buttons $Points_system_but_close = "&points_system_colpos&points_system_colnickname&points_system_coluservalue"; SetPlayerVar($currUName, Points_system_close, $Points_system_but_close); ### List ### FOR ( $i = 0; $i < 20; $i = $i + 1) IF ( $list[$i,"NickName"] == "") THEN $colpos = ""; $colnickname = ""; $colvalue = ""; ELSE $colusername = $list[$i,"UserName"]; $colnickname = $list[$i,"NickName"]; IF ($id == 0) THEN $colpos = $list[$i,"Pos"] + 1; ELSE $colpos = $list[$i,"Pos"]; ENDIF $colvalue = $list[$i,"Value"]; ENDIF ### IF player in list is equal with current player , make button light $bStyle = ISB_DARK; IF( ToLower( $currUName ) == ToLower( $colusername ) ) THEN $bStyle = ISB_LIGHT; ENDIF openPrivButton("points_system_colpos_".$i,65, $P_T, 7, $P_H, $P_H, -1, $bStyle | ISB_C2 | ISB_C4 , $colpos); openPrivButton("points_system_colnickname_".$i, 72, $P_T, 30, $P_H, $P_H, -1, $bStyle | ISB_LEFT, $colnickname); openPrivButton("points_system_coluservalue_".$i, 102, $P_T, 19, $P_H, $P_H, -1, $bStyle, "^7" .$colvalue . ""); $P_T = $P_T + 5; $Points_system_but_close = $Points_system_but_close . "&points_system_colpos_".$i."&points_system_colnickname_".$i."&points_system_coluservalue_".$i; SetPlayerVar($currUName, Points_system_close, $Points_system_but_close); ENDFOR EndSub Sub Close_points_system_top($KeyFlags,$id ) closePrivButton("points_system_bgd&points_system_title&points_system_close"); closePrivButton(Getcurrentplayervar("Points_system_close")); EndSub