Coding info

From Multi Theft Auto: Wiki
Revision as of 17:20, 17 November 2014 by Arran Fortuna (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Introduction

This page has information which would be useful for anyone who is doing coding for MTA SA. Coding guidelines also has a lot of useful info.

Projects explained

  • Client - Core: Typically UI elements like main menu etc and isn't ever unloaded.
  • Client - Deathmatch: Where MTA makes all it's functions and events do stuff.
  • Client - Game SA: Low level stuff which is mainly function calls to the game so each element will have a game_sa class like Vehicle, Ped, Object etc.
  • Client - GUI: It's just wrappers to CEGUI, you need not touch.
  • Client - Launch: Is the MTA executable which loads loader, you need not touch.
  • Client - Loader: You need not touch the loader either.
  • Client - Multiplayer SA: Hooks, code modification and that sort of low level things that lets us work.
  • Server - Core: Cazomino05: "I genuinely don't really know why we have server core."
  • Server - Dbconmy: Stuff to do with the db* functions, you need not touch.
  • Server - Deathmatch: All the server logic and storage classes for elements as well as Lua stuff.
  • Server - Launcher: Just an executable to load all the DLLs we need.
  • Shared - XML Module: XML module is just tinyxml and some high level wrapper functions for stuff we need.
  • Dependencies: Has a load of 3rd party code, modules like sqlite, curl, lua, ehs, etc.
  • CEGUI: Crazy Eddie's GUI system is a graphical user interface C++ library.

Simplification of data types

MTA has some type definitions you can use (Can be found in Shared/sdk/SharedUtil.h)

  • ulong = unsigned long
  • uint = unsigned int
  • ushort = unsigned short
  • uchar = unsigned char
  • uint64 = unsigned long long
  • uint32 = unsigned int
  • uint16 = unsigned short
  • uint8 = unsigned char
  • int64 = signed long long
  • int32 = signed int
  • int16 = signed short
  • int8 = signed char
  • BYTE = unsigned char
  • WORD = unsigned short
  • DWORD = unsigned long
  • FLOAT = float

Debug Commands

MTA has some commands which you can use if you're running debug mode

  • showsync - show sync data
  • foo - debug command for devs
  • showwepdata - shows the given player weapon data (nick)
  • showtasks - shows the local player tasks (nick)
  • showplayer - shows extended player information (nick)
  • setmimic - enables player mimics (amount)
  • setmimiclag - enables player mimic lag (amount)
  • paintballs - enables paintball mode
  • breakpoint - inserts breakpoint
  • giveweapon - gives the player a weapon (id)
  • showrpcs - shows the remote prodecure calls
  • showinterpolation - shows information about the interpolation
  • watch - enables wpm watch mode
  • modules - enables wpm module
  • debug - debug function 1
  • debug2 - debug function 2
  • debug3 - debug function 3
  • debug4 - debug function 4

Entity types

CCLIENTCAMERA - Camera CCLIENTPLAYER - Player CCLIENTVEHICLE - Vehicle CCLIENTRADARMARKER - Blip CCLIENTOBJECT - Object CCLIENTPICKUP - Pickup CCLIENTRADARAREA - RadarArea CCLIENTMARKER - Marker CCLIENTTEAM - Team CCLIENTPED - Ped CCLIENTPROJECTILE - Projectile CCLIENTGUI: CGUI_BUTTON - GuiButton CGUI_CHECKBOX - GuiCheckBox CGUI_EDIT - GuiEdit CGUI_GRIDLIST - GuiGridList CGUI_LABEL - GuiLabel CGUI_MEMO - GuiMemo CGUI_PROGRESSBAR - GuiProgressBar CGUI_RADIOBUTTON - GuiRadioButton CGUI_STATICIMAGE - GuiStaticImage CGUI_TAB - GuiTab CGUI_TABPANEL - GuiTabPanel CGUI_WINDOW - GuiWindow CGUI_SCROLLPANE - GuiScrollPane CGUI_SCROLLBAR - GuiScrollBar CGUI_COMBOBOX - GuiComboBox CCLIENTCOLSHAPE - ColShape SCRIPTFILE - File CCLIENTDFF - EngineDFF CCLIENTCOL - EngineCOL CCLIENTTXD - EngineTXD CCLIENTSOUND - Sound CCLIENTWATER - Water CCLIENTDXFONT - DxFont CCLIENTGUIFONT - GuiFont CCLIENTTEXTURE - DxTexture CCLIENTSHADER - DxShader CCLIENTWEAPON - Weapon CCLIENTEFFECT - Effect CCLIENTSCREENSOURCE - DxScreenSource CCLIENTRENDERTARGET - DxRenderTarget