#===========================================# # # DRIFTMASTER (Version 1.0) # ------------------------------------------ # (by Sinanju) # (with special thanks to YISC[NL] and Tim[NL] for their programming tips - and patience!) # AND of course, GaiLuron for his wonderful program # #===========================================# # EXTRACTED FROM # Sin'rs LFSLapper Script # As at 29/01/09 # Includes DriftMaster # (LFSLapper V 5.714) #===========================================# # NOTES # ====== # # You must be using LFSLapper 5.714 or less # # I've left the LFSLapper.lpr headings as is # # Copy and Paste into relevant sections # # You may already have some of the specified Event/EndEvent or Sub/EndSub # !!! if so, only use the bits in between !!! # # I REALLY RECOMMEND YOU SAVE YOUR EXISTING LAPPER FILE FIRST BEFORE YOU MAKE CHANGES TO A COPY!! #==================================# #Event triggered when lapper starts# #==================================# Event OnLapperStart() # Check you don't already have this Event - if so, don't copy this line GlobalVar $drift_on_off; $drift_on_off = "off"; PlayerVar $driftmaster_left = "1"; #t to move scoreboard right, then increase this number (max 160) PlayerVar $driftmaster_down = "124"; to move scoreboard up or down, increase or decrease this number EndEvent # Check you don't already have this EndEvent - if so, don't copy this line #===============================================# #Connect messages when a player joins the server# #===============================================# # If you are using the default lapper file, this Event OnConnect() may already be there. If so, ignore. Event OnConnect() openPrivButton( "clos",78,126,20,10,10,-1,32,"Accept",OnConnectClose ); EndEvent Sub OnConnectClose() closePrivButton("ldmdrift&ldmcombo&ldmangle"); # To make sure no drift scores appear until DriftMaster put on openPrivButton( "KwikKlikdrift",95,1,10,4,2,-1,32,"^7DriftMaster",MA_driftmaster ); # Place button at top of screen to give people choice of putting on or off EndSub #===============# #Command actions# #===============# # How to ask people do they want DriftMaster or not # ----------------------------------------------------------------------- Register MsgAction("!drift",MA_driftmaster); Sub MA_driftmaster() openPrivButton( "dminstruct",65,66,70,9,9,-1,32,"^6Do you wish to use Drift Master?" ); openPrivButton( "dminstruct1",65,75,70,6,6,-1,32,"^8(Drifting Scoreboard Facility)" ); openPrivButton( "yeslarge",80,85,18,10,10,-1,32," Yes ", OnClickLarge ); openPrivButton( "none",102,85,18,10,10,-1,32," No ", OnClickNo ); EndSub # NOTE: Typing "!drift" in game will also bring up the DriftMaster Question button(s) Sub OnClickLarge() closePrivButton("dminstruct&dminstruct1&yeslarge&none"); # This closes the DM question button openPrivButton( "ldmlogo",$driftmaster_left+1,$driftmaster_down+1,36,5,4,-1,16,"^1Sin'rs" ); # Put your name or teamname or server or anything else you want inbetween quotes openPrivButton( "ldmtrack",$driftmaster_left+1,$driftmaster_down+14,36,5,5,-1,16,"^3Track: ^2" . $LongTrackName . " ^1[" . $ShortTrackName . "]" ); openPrivButton( "ldmcaranddriver",$driftmaster_left+1,$driftmaster_down+19,36,5,8,-1,16,"^6Car: ^2". $Car . "^7 - ^6Driver: " . $Nickname . ); openPrivButton( "ldmcriteria",$driftmaster_left+1,$driftmaster_down+47,36,4,4,-1,16,"^4Scoring Criteria: " . "&^7Minimum Drift Speed: ^48kph" . "&^7Drift Angles (degrees): ^215^3 min / ^1100 ^3max"); openPrivButton( "ldmback",$driftmaster_left,$driftmaster_down,38,46,4,-1,32," " ); openPrivButton( "ldmtext",$driftmaster_left+1,$driftmaster_down+6,36,8,4,-1,80,"^0DRIFT MASTER" ); # 'DRIFT MASTER is in Black text openPrivButton( "ldmclose",$driftmaster_left+28,$driftmaster_down+7,8,6,4,-1,32,"^7[ ^1X ^7]" , OnClickNo ); openPrivButton( "ldmdriftblank",$driftmaster_left+1,$driftmaster_down+25,36,6,4,-1,80,"This Drift Score: " ); openPrivButton( "ldmcomboblank",$driftmaster_left+1,$driftmaster_down+32,36,6,4,-1,80,"Total Combo Score: " ); openPrivButton( "ldmangleblank",$driftmaster_left+1,$driftmaster_down+39,36,6,4,-1,80,"Drift Angle: " ); openPrivButton( "ldmdrift",$driftmaster_left+26,$driftmaster_down+25,11,6,4,-1,128,"- - - " ); # Blank openPrivButton( "ldmcombo",$driftmaster_left+26,$driftmaster_down+32,11,6,4,-1,128,"- - - " ); # Blank openPrivButton( "ldmangle",$driftmaster_left+26,$driftmaster_down+39,11,6,4,-1,128,"> - < " ); # Blank openPrivButton( "ldmcriteriablank",$driftmaster_left,$driftmaster_down+46,38,14,3,-1,32," " ); $drift_on_off = "on"; EndSub Sub OnClickNo() closePrivButton("dminstruct&dminstruct1&yessmall&yeslarge&none"); closePrivButton("ldmlogo&ldmtrack&ldmback&ldmtext&ldmclose&ldmdriftblank&ldmcomboblank&ldmangleblank"); closePrivButton("ldmcaranddriver&ldmdrift&ldmcombo&ldmangle&ldmcriteria&ldmcriteriablank"); $drift_on_off = "off"; EndSub #================# #Drifting options # #================# # Scores will be saved if you do complete circuit/lap of track/layout $DriftDatabase = "./DriftPB.txt"; # This is the filepath for a file containing the collected data. I THINK this is different in newer versions of lapper $MinimumDriftSpeed = 48; # Minimum speed in km/h to maintain. Driving below that speed will reset score. Plus if you change this number, you need to change Criteria button text. Same for other 2 values. $MinimumDriftAngle = 15; # Minimum angel to maintain. When angle is below value, score is reset. $MaximumDriftAngle = 100; # Maximum angel to maintain. When angle is above value, score is reset Event OnDriftScore() IF( $drift_on_off == "off" ) THEN openPrivButton( "ldmdrift",27,149,11,6,4,-1,128," " ); # Blank openPrivButton( "ldmcombo",27,156,11,6,4,-1,128," " ); # Blank openPrivButton( "ldmangle",27,163,11,6,4,-1,128," " ); # Blank ELSE IF( $drift_on_off == "on" ) THEN IF( $AngleVelocity < 0 ) THEN $AngleVelocity_reverse=($AngleVelocity)*(-1); openPrivButton( "ldmdrift",27,149,11,6,4,-1,128," ^7" . $LastDriftScore ); # Gray text with white score openPrivButton( "ldmcombo",27,156,11,6,4,-1,128," ^2" . $DriftScore ); # Gray text with green score openPrivButton( "ldmangle",27,163,11,6,4,-1,128," ^7" . $AngleVelocity_reverse . "^2 =>" ); # Gray text with white score and green arrow ELSE openPrivButton( "ldmdrift",27,149,11,6,4,-1,128," ^7" . $LastDriftScore ); # Gray text with white score openPrivButton( "ldmcombo",27,156,11,6,4,-1,128," ^3" . $DriftScore ); # Gray text with yellow score openPrivButton( "ldmangle",27,163,11,6,4,-1,128," ^1<= ^7" . $AngleVelocity . " " ); # Gray text with white score and red arrow ENDIF ENDIF ENDIF EndEvent $MinimumDriftScore = 200; # Minimum drift score required - don't reach this score and you are disqualified - change number up or down to suit Event DriftTooLowAction() privMsg( $Nickname . "^1 Has been disqualified!" ); cmdLFS( "/spec " . $Nickname }; EndEvent