GetVersion: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
 (Example changed to promote effective use of event source)  | 
				 (Example changed to promote secure use of event parameters)  | 
				||
| Line 44: | Line 44: | ||
function sendVersion ()  | function sendVersion ()  | ||
   -- Send local player version to the server  |    -- Send local player version to the server  | ||
   triggerServerEvent ( "onNotifyPlayerVersion", getResourceRootElement  |    triggerServerEvent ( "onNotifyPlayerVersion", getResourceRootElement(), getVersion() )  | ||
end  | end  | ||
addEventHandler ( "onClientResourceStart", getResourceRootElement(), sendVersion )  | addEventHandler ( "onClientResourceStart", getResourceRootElement(), sendVersion )  | ||
| Line 50: | Line 50: | ||
</section><section name="Server" class="server" show="true">  | </section><section name="Server" class="server" show="true">  | ||
<syntaxhighlight lang="lua">  | <syntaxhighlight lang="lua">  | ||
function handlePlayerVersion(   | function handlePlayerVersion( version )  | ||
   if version.number > 256 + 3 then  -- Allow anything above 1.0.3  |    if version.number > 256 + 3 then  -- Allow anything above 1.0.3  | ||
     return  |      return  | ||
| Line 64: | Line 64: | ||
   end  |    end  | ||
   outputConsole( "Kicking player as below 1.0.3 Release build 9" );  |    outputConsole( "Kicking player as below 1.0.3 Release build 9" );  | ||
   kickPlayer(   |    kickPlayer( client, "Upgrade your version at www.mtasa.com" )  | ||
end  | end  | ||
addEvent ( "onNotifyPlayerVersion", true)  | addEvent ( "onNotifyPlayerVersion", true)  | ||
Revision as of 22:38, 14 March 2010
This function gives you various version information about MTA and the operating system.
Syntax
table getVersion ( )
Required Arguments
None.
Returns
Returns a table with version information. Specifically these keys are present in the table:
- number: the MTA server or client version (depending where the function was called) in pure numerical form, e.g. "256"
 - mta: the MTA server or client version (depending where the function was called) in textual form, e.g. "1.0"
 - name: the full MTA product name, either "MTA:SA Server" or "MTA:SA Client".
 - netcode: the netcode version number.
 - os: returns the operating system on which the server or client is running
 - type: the type of build.  can be:
- "Nightly rX" - A nightly development build. X represents the nightly build revision.
 - "Custom" - A build compiled manually
 - "Release" - A build that is publicly released (provisional).
 
 - tag: the build tag (from 1.0.3 onwards). Contains infomation about the underlying version used. i.e. The final version of 1.0.3 has the build tag of "1.0.3 rc-9". (This can be confirmed by using the console command 'ver'.)
 
Example
Example 1: This example will make a script compatible only with version 1.0:
Click to collapse [-]
Serverfunction setHoboSkin ( playerSource )
  local version = getVersion ( )
  if version.number < 256 then -- MTA 1.0 version number is 0x0100
    setPlayerSkin ( playerSource, 137 )
  else
    setElementModel ( playerSource, 137 )
  end
end
addCommandHandler ( "hobo", setHoboSkin )
Example 2: This client and server example will kick players that have anything earlier than the final released version of 1.0.3:
Click to collapse [-]
Clientfunction sendVersion () -- Send local player version to the server triggerServerEvent ( "onNotifyPlayerVersion", getResourceRootElement(), getVersion() ) end addEventHandler ( "onClientResourceStart", getResourceRootElement(), sendVersion )
Click to collapse [-]
Serverfunction handlePlayerVersion( version )
  if version.number > 256 + 3 then  -- Allow anything above 1.0.3
    return
  end
  if version.number == 256 + 3 then  -- Check further if it is exactly 1.0.3
    if version.type == "Release" then -- Check further if it is the "Release" type
      local _,_,buildnumber = string.find( version.tag or "", "(%d)$" )  -- Extract the build number if there
      buildnumber = tonumber(buildnumber) or 0
      if buildnumber >= 9 then  -- Allow 9 and above
        return
      end
    end
  end
  outputConsole( "Kicking player as below 1.0.3 Release build 9" );
  kickPlayer( client, "Upgrade your version at www.mtasa.com" )
end
addEvent ( "onNotifyPlayerVersion", true)
addEventHandler ( "onNotifyPlayerVersion", getResourceRootElement(), handlePlayerVersion )
See Also
- getMaxPlayers
 - getServerConfigSetting
 - getServerHttpPort
 - getServerName
 - getServerPassword
 - getServerPort
 - isGlitchEnabled
 - setGlitchEnabled
 - setMaxPlayers
 - setServerConfigSetting
 - setServerPassword
 - shutdown