User:Ccw: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
(Undo revision 47302 by Bonzo1 (talk))
 
(34 intermediate revisions by 4 users not shown)
Line 3: Line 3:


== ==
== ==
=1.1 Credits=
=2015 June 16=
We must add all who have been helping towards 1.1
==onPlayerNetworkStatus / onClientPlayerNetworkStatus==
==People to add==
Experimental network interruption detection introduced in r7295. Both client and server have to be r7295 or later for it to work<br/>


====Programming:====
==Event Parameters:==
* MrHankey
* '''status''': A number which is 0 if the interruption has begun, or 1 if the interruption is ending
* Gamesnert
* '''ticks''': Number of ticks since the interruption started


====Contributors:====
* Arran
* Remp
* MX_Master
* Iztas (Video settings and more)
* Impulze (Linux helps)


==== Patches c++ ====
Server example:
* Gothem
<syntaxhighlight lang="lua">
* rafalh
addEventHandler( "onPlayerNetworkStatus", root,
* Totto8492
  function( status, ticks )
* CubedDeath
    if status == 0 then
* GRascm
      outputDebugString( "(packets from " .. getPlayerName(source) .. ") interruption began " .. ticks .. " ticks ago" )
    elseif status == 1 then
      outputDebugString( "(packets from " .. getPlayerName(source) .. ") interruption began " .. ticks .. " ticks ago and has just ended"" )
    end
  end
)
</syntaxhighlight>
 
 
Client example:
<syntaxhighlight lang="lua">
addEventHandler( "onClientPlayerNetworkStatus", root,
  function( status, ticks )
    if status == 0 then
      outputDebugString( "(packets from server) interruption began " .. ticks .. " ticks ago" )
    elseif status == 1 then
      outputDebugString( "(packets from server) interruption began " .. ticks .. " ticks ago and has just ended" )
    end
  end
)
</syntaxhighlight>
 
 
 
== ==
=2013 July 14=
==Things==
* Projectiles get removed (or not added, or something) by GTA, but MTA thinks it has a projectile, except it's got like a building. (SetMatrix == crash)
* <strike>Player customizing resource keybinds no worky</strike>
 
== ==
=2013 May 10=
==Random crashes in GTA==
===Consider this===
*During "onClient.." events, entities can be created/destroyed/change model etc.
*"onClient.." events can occur in the depths of GTA game processing.
This could be one of the causes of the random crashes we get.
 
===Solution:===
Queue the events, and trigger them once GTA has finished it's main loop.<br/>
Although a few events require immediate feedback, so can't be queued. These events are:
*onClientPlayerChoke
*onClientPlayer/PedDamage
*onClientPlayer/PedHeliKilled
*onClientPlayer/PedHitByWaterCannon
*onClientObjectDamage
*onClientObjectBreak
*onClientExplosion
*onClientWeaponFire
 
 
Not queueing the above events means:
* They will always get triggered before the (now) queued events, for that frame. (I don't think this change of behaviour will be a big problem though.)
* If create/destroy/anything is done during these events, there will still be a problem with crashes. But we can worry about that later.
 


==== Patches resources ====
''Might I suggest source elements cannot be deleted in events as a generic rule?''
* NeO_D-Power
--[[User:Cazomino05|Cazomino05]] 22:07, 12 July 2013 (UTC)
* Dragon
* DirtY_iCE
* Zango
* Callum
* robhol


====Thanks:====
== ==
* Adamix
=2013 March 2=
* Aibo
==Propose source file banner credit overhaul #2==
* Towncivillan
===Problems with current source file credits:===
* Pugwipe
* Little value as a goto guy guide
* Phatlooser
* No one knows when to add their name to the list
* The_GTA
* Encourages file additions, rather than feature additions
* As an information source is it quite useless and eventually misleading


===Proposal:===
* Remove the 'DEVELOPERS:' section in the source files where the current listed devs agree.
* In files they do not agree, add the names of all the other devs to teach them a lesson.
* Add a 'developers.txt' somewhere with all devs names (and what they did if anyone can be bothered to document it).
* Include developers.txt in each module


And who else...?


==Current credits==
== ==
=2012 October 7=
==Propose to add two new functions==
===addPreEventHandler and addPostEventHandler===
 
Adding these will help solve the following problems:
:'''1. Only the function that triggered the event knows if the event was cancelled'''
::As ''wasEventCancelled'' is only valid after all ''addEventHandler''s have been completed
::(This also means its not possible to react to cancelling of inbuilt events)
:'''2. Solve issue of cancelling events and really stopping them from doing anything'''
::i.e. Cancel event in ''addPreEventHandler'' will stop ''addEventHandler'' being called altogether
:'''3. Wanting to do things before/after events have occurred:'''
::e.g. onResourceStart - Client has not been told to start yet, so some things like ''setPlayerTeam'' can't be done.
::Adding ''addPostEventHandler("onResourceStart",...)'' means we can do stuff just after resource has really started on both server and client
 
===Cancellation rules===
====Current (As it is now)====
*All '''addEventHandlers''' are called.
 
====Proposal #1====
*All '''addPreEventHandlers''' are called.
*If the event is not cancelled by any '''addPreEventHandler''' then:
:*All '''addEventHandlers''' are called.
:*If the event is not cancelled by any '''addEventHandlers''' then:
::*All '''addPostEventHandlers''' are called.
 
====Proposal #2 (allows for addPostEventHandlers to detect addEventHandler cancellation)====
*All '''addPreEventHandlers''' are called.
*If the event is not cancelled by any '''addPreEventHandler''' then:
:*All '''addEventHandlers''' are called.
:*All '''addPostEventHandlers''' are called. ('''wasEventCancelled()''' will be true if event cancelled during '''addEventHandlers''')
 
====Proposal #3 (allows for addPostEventHandlers to detect addPreEventHandlers and addEventHandler cancellation (but not distinguish which one))====
*All '''addPreEventHandlers''' are called.
*If the event is not cancelled by any '''addPreEventHandler''' then:
:*All '''addEventHandlers''' are called.
*All '''addPostEventHandlers''' are called. ('''wasEventCancelled()''' will be true if event cancelled during '''addPreEventHandlers''' or '''addEventHandlers''')
 
 
== ==
=2011 November 30=
==Notes for new ACL request system==
 
====In the resource meta.xml:====
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
<aclrequest>
      "Programming\n"
    <right name="function.kickPlayer" access="true"></right>
      "\n"
    <right name="function.banPlayer" access="true"></right>
</aclrequest>
</syntaxhighlight>


      "Alberto \"ryden\" Alonso\n"
      "Marcus \"mabako\" Bauer\n"
      "Hendrik \"arc_\" van den Berge\n"
      "Stanislav \"lil_Toady\" Bobrov\n"
      "Dan \"Talidan\" Chowdhury\n"
      "Chris \"ccw\" Cockwanger\n"
      "Adge \"Jax\" Cutler\n"
      "Cecill \"ijs\" Etheredge\n"
      "Sebas \"x86\" Lamers\n"
      "Ed \"eAi\" Lyons\n"
      "Christian \"ChrML\" Myhre Lundheim\n"
      "Arushan \"aru\" Raj\n"
      "Frank \"Aim\" Spijkerman\n"
      "Kevin \"Kevuwk\" Whiteside\n"
      "Richard \"Cazomino05\" Whitlock\n"
      "\n"


      "Game Design / Scripting\n"
====Console command 'aclrequest'====
      "\n"
<syntaxhighlight lang="lua">
aclrequest list
> aclrequest: BobsGame has 2 aclrequest(s) of which 2 are pending


      "John \"Johnline\" Borsberry\n"
aclrequest list BobsGame
      "Paul \"Brophy\" Brophy\n"
> aclrequest: BobsGame [pending] for function.kickPlayer
      "Maciej \"MACK\" Cieslak\n"
> aclrequest: BobsGame [pending] for function.banPlayer
      "Jacek \"jhxp\" Halas vel Lagoda\n"
      "Brad \"Slothman\" Hammond\n"
      "Norbert \"norby89\" Juhos\n"
      "Kris \"KWKSND\" Kulchisky\n"
      "Dustin \"Ransom\" Morren\n"
      "\n"


      "erorr404\n"
aclrequest deny BobsGame all
      "MeKorea\n"
> aclrequest: BobsGame function.kickPlayer changed to deny (Console)
      "\n"
> aclrequest: BobsGame function.banPlayer changed to deny (Console)


      "Patch contributors\n"
aclrequest allow BobsGame function.kickPlayer
      "\n"
> aclrequest: BobsGame function.kickPlayer changed to allow (Console)
     
      "Florian \"Flobu\" Busse\n"
      "Philip \"Fenix\" Farquharson\n"
      "Robin \"robhol\" Holm\n"
      "Raphael \"Mr.Hankey\" Leiteritz\n"
      "Adam \"50p\" Telega\n"
      "\n"


      "Gamesnert\n"
aclrequest list BobsGame
      "lucasc190\n"
> aclrequest: BobsGame [allow] for function.kickPlayer (by Console on 2011-11-29)
      "\n"
> aclrequest: BobsGame [deny] for function.banPlayer (by Console on 2011-11-29)
</syntaxhighlight>


      "Special Thanks\n"
      "\n"


      "Derek \"slush\" Abdine\n"
====Script function #1:====
      "Javier \"jbeta\" Beta\n"
<syntaxhighlight lang="lua">
      "Oliver \"Oli\" Brown\n"
table getResourceACLRequests ( resource theResource )</syntaxhighlight>
      "Wojciech \"Wojjie\" Hlibowicki\n"
 
      "Chris \"Cray\" McArthur\n"
table return example:
      "Hans \"Blokker\" Roes\n"
<syntaxhighlight lang="lua">
      "Kent \"Kent747\" Simon\n"
{ {name="function.kickPlayer", access="true", pending="false", who="Console", date="2011-11-29" },
      "\n"
  {name="function.banPlayer", access="false", pending="false", who="Console", date="2011-11-29" } }
     
                         
</syntaxhighlight>
</syntaxhighlight>
====Script function #2:====
<syntaxhighlight lang="lua">
bool updateResourceACLRequest ( resource theResource, string rightName, bool access, string byWho )</syntaxhighlight>
This only works with right names that are returned from getResourceACLRequests.<br>
Calling updateResourceACLRequest automatically sents the 'pending' to false and also sets the 'date'.
====Permissions====
The following are protected by default and will need an entry in the ACL:
<syntaxhighlight lang="lua">function.updateResourceACLRequest
command.aclrequest
</syntaxhighlight>
== ==
== ==
=Release dates - 16 April 2011=
=Release dates=
==History==
==History==


Line 160: Line 240:
| 14 December 2010
| 14 December 2010
| Browser improved
| Browser improved
| +
|  
|-
|-
| 1.0.5 (r2488)
| 1.0.5 (r2488)
Line 176: Line 256:
| Performance improvements
| Performance improvements
|
|
|}
<br>
== ==
=Dual version vision - 27 November 2010=
==3D glasses not required==
===Goal===
Avoid community splitting between 1.0.4 and 1.1
===Possible solution===
* Allow 1.1 to be installed along side 1.0.4
* Have 1.1 servers appear in 1.0.4 server browser and visa versa
** Selecting a server from the other version does a magical quick launch and connect
<br>
== ==
=Auto updater - 24 March 2010=
==Get latest version here==
===Updates are initiated either on client startup, or on when connecting to a server...===
<br>
====Client startup:====
#'''The client polls one of two servers, sends its current version and gets update info.'''
#'''Update info contains:'''
## If there is a new version available
## Whether the update is mandatory
## Mirror list of servers with the update
## Filename and SHA1
#'''If update is selected:'''
## The file is downloaded
## SHA1 checked
## The updater is executed
## The client quits
#'''When the update is complete, the client is relaunched'''
##Also consider having a 'use previous version' shortcut or something, in case the new version does not run correctly
<br>
====On server connect:====
#Server tells client minimum version requirement, and ideal version requirement
#If client is below minimum requirement, then:
## The client is given an 'update' and 'disconnect' button and told they must update to join this server
## Pressing the update button initiates the update procedure as per 'Client startup' above.
#If client is below ideal requirement, then:
## The client is given an 'update' and 'don't update' button and told they should update to join this server
## Pressing the update button initiates the update procedure as per 'Client startup' above.
<br>
<br>
== ==
=Merge revert party - 13 September 2009=
==Everyone invited==
<br>
The commits listed below require moving from the git 'merge' branch into a 'post 1.0.1' branch.<br><br>
Although one or two should probably be kept in 1.0.1<br>
But which ones ?<br><br>
[http://github.com/multitheftauto/multitheftauto/commit/a8b1b13ef1b88b9a8ed7e459dc6de38d670bd34b a8b1b13ef1b88b9a8ed7e459dc6de38d670bd34b] r1644 (Fixed: #4937: Stealth kill victims turn to south) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/2865be7c43f7c545637ef4f996d2c22f181734bc 2865be7c43f7c545637ef4f996d2c22f181734bc] r1643 (Fixed #4944: Chatbox scale doesn''t adjust.. text width.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/ff124c7eedf8709b15416f50ae83ea15433adee0 ff124c7eedf8709b15416f50ae83ea15433adee0] r1642 (Fixed #4917: memory doesn''t seem to be freed on ressource re...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/f83ea4f1c4072e2b70c274119dac62da894fc223 f83ea4f1c4072e2b70c274119dac62da894fc223] r1640 (Cleaned up an ugly player-damage bug fix.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/33022e9333624b0a75ef467ccc74915f1b5d6af6 33022e9333624b0a75ef467ccc74915f1b5d6af6] r1626 (Fixed #4925: Friendly fire does not prevent the player from ...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/39efe48d0c4144e8695138ef004ac3fb9bcfbc50 39efe48d0c4144e8695138ef004ac3fb9bcfbc50] r1624 (Fixed #4848: colShapes should be made attachable Fixed #4285...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/8851cfeae3903aa0a547d7f7bae32d92b4b29ebb 8851cfeae3903aa0a547d7f7bae32d92b4b29ebb] r1623 (Fixed contacting peds not being updated with rotation.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/baec3bff302db9c76e1788c056ab4026eb6d45e8 baec3bff302db9c76e1788c056ab4026eb6d45e8] r1622 (Added responsible entity for dying in a vehicle explosion.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/1ae69bdfae2fa3312f151e30cac20559818d0e27 1ae69bdfae2fa3312f151e30cac20559818d0e27] r1621 (Fixed: #1507: Death Messages not functioning 100% (and a bu...) <br>
[http://github.com/multitheftauto/multitheftauto/commit/32e1399c496c22bc4b472183c0145dc92397fa8e 32e1399c496c22bc4b472183c0145dc92397fa8e] r1616 (Fixed jittering with set*Frozen) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/e4c250dad37957d00766f31ea9f5d2a5d0e8aaf7 e4c250dad37957d00766f31ea9f5d2a5d0e8aaf7] r1613 (Fixed #4859: playSound3D - sound stops when changing to othe...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/a579f2017e6d3c05684bf22aab4cca39389e2d08 a579f2017e6d3c05684bf22aab4cca39389e2d08] r1612 (Fixed #4874: setGlitchEnabled is apparently no longer synced...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/29b29c8f6795ad753fd475ff632c900c5b87cf28 29b29c8f6795ad753fd475ff632c900c5b87cf28] r1602 (Added missing ped-contact updating.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/8cf99290469a94826b00cf6a4e00c4f1f070f79b 8cf99290469a94826b00cf6a4e00c4f1f070f79b] r1600 (Added time-based interpolation for sync. (best time-based I'...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/56ebd749a0922313fc754bbff3928f6767b5f05f 56ebd749a0922313fc754bbff3928f6767b5f05f] r1594 (Removed ''dangerous'' model-info copying.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/a56b8373a19d5f700350183ddf0b9c076ff09b4e a56b8373a19d5f700350183ddf0b9c076ff09b4e] ?? r1581 ([No log message]) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/7a94fe418932e57f737726342339e8671a4ec49c 7a94fe418932e57f737726342339e8671a4ec49c] r1574 (Fixed some problems with special character model loading.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/66689a26ef7684e246866952d6aa0c73519da95e 66689a26ef7684e246866952d6aa0c73519da95e] r1572 (Added special characters as unused models / removed (un)load...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/2f30704f9f2eaee2938de6c1ceda32adb4a5b5d4 2f30704f9f2eaee2938de6c1ceda32adb4a5b5d4] r1568 (Fixed #1231: Allow use of special skins loadSpecialCharacter...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/671ec8027b2514a725f3b050f22abd9ab264ee59 671ec8027b2514a725f3b050f22abd9ab264ee59] r1566 (Fixed #4787: (Scrolling in Chatbox doesn''t set the lines vis...) committed by ccw808<br>
[http://github.com/multitheftauto/multitheftauto/commit/d32a92b4ae9e9699b91b251e4c74890f52d65314 d32a92b4ae9e9699b91b251e4c74890f52d65314] r1545 (Fixed bad rotation for moveObject & updated moving-objects c...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/f72eaf32db673a8a3ea6324d61bd5fd703b91980 f72eaf32db673a8a3ea6324d61bd5fd703b91980] r1517 (Changed CSmoothVar to CInterpolatedVar, removed frame depend...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/805b22a67232de1680cdbe53b0e84185d566126d 805b22a67232de1680cdbe53b0e84185d566126d] r1506 (Added remote tank-firing effect for rhinos.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/89c028a7e14e1b7c82e49002ac39eaa0a1790e29 89c028a7e14e1b7c82e49002ac39eaa0a1790e29] r1497 (Removed unnecessary landing-gear smoothing.) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/93cbee8ff7a2c1f786428422846104dfcbcaa84f 93cbee8ff7a2c1f786428422846104dfcbcaa84f] r1492 (Added ''smooth vars'' to improve sync for turrets/landing-gear...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/43158e5f1dfc35b0d74a3fd557ab5e0ad705dfcb 43158e5f1dfc35b0d74a3fd557ab5e0ad705dfcb] r1489 (Fixed #4653: Dying in an exploding vehicle gives MTA the wro...) <br>
[http://github.com/multitheftauto/multitheftauto/commit/9e397129049d40a1a4d70b48d94b512c9b4e1093 9e397129049d40a1a4d70b48d94b512c9b4e1093] r1486 (Fixed #4458: isPedInVehicle delay) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/578d8da39f42667499b32189dcdf56d4b9def53c 578d8da39f42667499b32189dcdf56d4b9def53c] r1478 (Fixed #4785: When taking a photo with the camera, chatbox an...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/c6a0309bd97bbfbe56038d993574cbdf75c24f97 c6a0309bd97bbfbe56038d993574cbdf75c24f97] r1469 (Changed onClientCharacter to support all characters: onClien...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/3ef02ef219d4ddd7a5b12152193ed58a331a5f15 3ef02ef219d4ddd7a5b12152193ed58a331a5f15] r1468 (Fixed #3482: request: onClientKey ( state ) onClientKey ( st...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/d79b5902916102612658eda15c79c40ccc6be474 d79b5902916102612658eda15c79c40ccc6be474] r1466 (Fixed #4776: Killing peds with sniper rifle cases scope view...) committed by [email protected]<br>
[http://github.com/multitheftauto/multitheftauto/commit/7e5e76cb236783e558e1d124e6a81173606e9793 7e5e76cb236783e558e1d124e6a81173606e9793] r1460 (Re-added ''MTA Radio'' including: radio-switch event Fix for #...) committed by [email protected]<br>
<BR>
<BR>
== ==
=1.0 Release dumps - 10 September 2009=
Loaded up, noted notes.
All dumps in a zip are here [http://www.mediafire.com/?sharekey=5a7596fd303247afd956df2962098fcbe04e75f6e8ebb871]
{| class="wikitable" border="1"
|-
|-
| client_Release_08222009_2258.dmp
| 1.1.0
| 0004869: Crash while playing Stealth
| 25 August 2011
| Unhandled exception at gta_sa.exe!004d1750()  FrameUpdateCallBackWithVelocityExtractionSkinned
| Many new features
| Possibly the worst thing that has happened in the history of the world
|-
|-
| client_Release_08222009_2342.dmp
| 1.1.1
| 0004872: Crash in Briefcase Race
| 20 September 2011
| Unhandled exception at gta_sa.exe!004d464e() CAnimManager::BlendAnimation
| Accumulation of post release fixes
| Lags more than 1.1
|-
|-
| client_Release_08222009_2351.dmp
| 1.2
| 0004871: Crash while playing Stealth 2
| 17 December 2011
| Unhandled exception at gta_sa.exe!004d464e() CAnimManager::BlendAnimation
| RakNet fix for serious network related problems
| ???
|-
|-
| client_Release_08232009_0014.dmp
| 1.3
| 0004881: Crash during assault play
| 24 January 2012
| Unhandled exception at gta_sa.exe!004f02d3() CAESoundManager::Service
| Map Download fix + loads of misc bug fixes
| ???
|-
|-
| client_Release_08232009_0019.dmp
| 1.3.1
| 0004871: Crash while playing Stealth 2
| 03 September 2012
| Unhandled exception at gta_sa.exe!004d1750() FrameUpdateCallBackWithVelocityExtractionSkinned ( Maybe called from HOOK_CGame_Process() in CMultiplayerSA.cpp )
| loads of bug fixes and a boat load of new features
| 1.3 was better
|-
|-
| client_Release_08232009_0315.dmp
| 1.3.2
| 0004876: Crash during Race
| 05 May 2013
| Access violation in CClientVehicle::Create()
| Added features, improved performance
| No thanks, I'm sticking with 1.3.1
|-
|-
| client_Release_08232009_1402.dmp
| 1.3.3
| 0004877: Runtime error - pure virtual function call
| 01 July 2013
| Unhandled exception at gta_sa.exe!006819eb() CTaskManager::GetSimplestActiveTask
| Anti-cheat updates and "optimus" fixes
| The game might run better when "optimus" fix is enabled so sticking with 1.3.1
|-
|-
| client_Release_08242009_1231.dmp
| 1.3.5
| 0004861: When disconnecting from a server you get a C++ error or a crash!
| 24 Feb 2014
| Unhandled exception at gta_sa.exe!00739fa0() CShotInfo::Update ( Maybe called from  HOOK_Idle() in cmultiplayersa.cpp )
| Anti-cheat updates and Lua additions
|-
| 1.3.5 broke my internet
| client_Release_08242009_1717.dmp
| 0004898: Random CTD's/Freezing
| Unhandled exception at gta_sa.exe!006b18b0() CAutomobile::ProcessControl ( Maybe called from CVehicleSA::GetDriver() in CVehicleSA.cpp )
|-
| client_Release_08252009_1120.dmp
| 0004898: Random CTD's/Freezing
| Unhandled exception at gta_sa.exe!004d41c5() CAnimManager::UncompressAnimation ( Maybe called from HOOK_CPlayerPed__ProcessControl() in multiplayer_keysync.cpp )
|-
| client_Release_08252009_1624.dmp
| 0004898: Random CTD's/Freezing
| Unhandled exception at gta_sa.exe!004d446e() CAnimManager::BlendAnimation ( Maybe called from HOOK_CPlayerPed__ProcessControl() in multiplayer_keysync.cpp )
|-
| client_Release_08252009_1754.dmp
| 0004899: Crash in Briefcase Race during gun fight 
| Unhandled exception at gta_sa.exe!004d446e() CAnimManager::BlendAnimation ( Maybe called from HOOK_CPlayerPed__ProcessControl() in multiplayer_keysync.cpp )
|-
| client_Release_08272009_1609.dmp
| 0004909: Crash when moving camera while being inside a radar area
| Unhandled exception at 0x459ac002
|-
| .
|-
| client_Release_08232009_0009.dmp
| KWKSND Client crash
| Unhandled exception at gta_sa.exe!004d1750() FrameUpdateCallBackWithVelocityExtractionSkinned ( Maybe called from HOOK_CGame_Process() in CMultiplayerSA.cpp )
|-
| client_Release_08232009_0032.dmp
| KWKSND Client crash
|              Unhandled exception at gta_sa.exe!004d1750() FrameUpdateCallBackWithVelocityExtractionSkinned ( Maybe called from HOOK_CGame_Process() in CMultiplayerSA.cpp )
|-
| client_Release_08242009_2311.dmp
| KWKSND Client crash
| Access violation in CTCPManager::~CTCPManager  ( Client quitting )
|-
| client_Release_08252009_1659.dmp
| KWKSND Client crash
| Unhandled exception at cgui.dll!CEGUI::EventSet::addEvent()
|-
| client_Release_09022009_0016.dmp
| KWKSND Client crash
| Unhandled exception at gta_sa.exe!007f3825() RwTextureDestroy ( Maybe called from CRenderWareSA::DestroyDFF)
|-
| .
|-
| server_Release_08222009_2138.dmp
| KWKSND Server crash
| *Source mismatch*
|-
| server_Release_08232009_0154.dmp
| KWKSND Server crash
| Access violation at CResource::InvalidateIncludedResourceReference (During server shutdown)
|-
| server_Release_08252009_0038.dmp
| KWKSND Server crash
|              Access violation at CResource::InvalidateIncludedResourceReference (During server shutdown)
|-
| server_Release_08262009_2139.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|-
| server_Release_08262009_2248.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|-
| server_Release_08272009_1644.dmp
| KWKSND Server crash
| Unhandled exception at lua5.1.dll!00e94f11() ( Maybe called from CResource::HasResourceChanged() in CResource.cpp )
|-
| server_Release_08272009_2148.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|-
| server_Release_08282009_2019.dmp
| KWKSND Server crash
| Unhandled exception at lua5.1.dll!00e92af5()
|-
| server_Release_08292009_2051.dmp
| KWKSND Server crash
| Access violation at CResource::InvalidateIncludedResourceReference (During server shutdown)
|-
| server_Release_08302009_0238.dmp
| KWKSND Server crash
| Access violation at CResource::InvalidateIncludedResourceReference (During server shutdown)
|-
| server_Release_09032009_0023.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|-
| server_Release_09072009_1131.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|-
| server_Release_09082009_1053.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|-
| server_Release_09092009_0119.dmp
| KWKSND Server crash
| Access violation at CElementDeleter::DoDeleteAll
|}
|}
<br>
<br>
== ==
=Proposed Lua additions - 20 June 2009=
==Client and server function==
===setElementFrozen ( element, bool )===
To work with vehicles, peds and dynamic objects like barrels and what not.
==Server event==
===onSettingChange ( name, oldValue, newValue )===
So the resource can take action if one of its settings get changed. Could even cancel the change I suppose.
== ==
== ==

Latest revision as of 14:54, 1 April 2016

Coder.gif This user is an MTA developer

2015 June 16

onPlayerNetworkStatus / onClientPlayerNetworkStatus

Experimental network interruption detection introduced in r7295. Both client and server have to be r7295 or later for it to work

Event Parameters:

  • status: A number which is 0 if the interruption has begun, or 1 if the interruption is ending
  • ticks: Number of ticks since the interruption started


Server example:

addEventHandler( "onPlayerNetworkStatus", root,
  function( status, ticks )
    if status == 0 then
      outputDebugString( "(packets from " .. getPlayerName(source) .. ") interruption began " .. ticks .. " ticks ago" )
    elseif status == 1 then
      outputDebugString( "(packets from " .. getPlayerName(source) .. ") interruption began " .. ticks .. " ticks ago and has just ended"" )
    end
  end
)


Client example:

addEventHandler( "onClientPlayerNetworkStatus", root,
  function( status, ticks )
    if status == 0 then
      outputDebugString( "(packets from server) interruption began " .. ticks .. " ticks ago" )
    elseif status == 1 then
      outputDebugString( "(packets from server) interruption began " .. ticks .. " ticks ago and has just ended" )
    end
  end
)


2013 July 14

Things

  • Projectiles get removed (or not added, or something) by GTA, but MTA thinks it has a projectile, except it's got like a building. (SetMatrix == crash)
  • Player customizing resource keybinds no worky

2013 May 10

Random crashes in GTA

Consider this

  • During "onClient.." events, entities can be created/destroyed/change model etc.
  • "onClient.." events can occur in the depths of GTA game processing.

This could be one of the causes of the random crashes we get.

Solution:

Queue the events, and trigger them once GTA has finished it's main loop.
Although a few events require immediate feedback, so can't be queued. These events are:

  • onClientPlayerChoke
  • onClientPlayer/PedDamage
  • onClientPlayer/PedHeliKilled
  • onClientPlayer/PedHitByWaterCannon
  • onClientObjectDamage
  • onClientObjectBreak
  • onClientExplosion
  • onClientWeaponFire


Not queueing the above events means:

  • They will always get triggered before the (now) queued events, for that frame. (I don't think this change of behaviour will be a big problem though.)
  • If create/destroy/anything is done during these events, there will still be a problem with crashes. But we can worry about that later.


Might I suggest source elements cannot be deleted in events as a generic rule? --Cazomino05 22:07, 12 July 2013 (UTC)

2013 March 2

Propose source file banner credit overhaul #2

Problems with current source file credits:

  • Little value as a goto guy guide
  • No one knows when to add their name to the list
  • Encourages file additions, rather than feature additions
  • As an information source is it quite useless and eventually misleading

Proposal:

  • Remove the 'DEVELOPERS:' section in the source files where the current listed devs agree.
  • In files they do not agree, add the names of all the other devs to teach them a lesson.
  • Add a 'developers.txt' somewhere with all devs names (and what they did if anyone can be bothered to document it).
  • Include developers.txt in each module


2012 October 7

Propose to add two new functions

addPreEventHandler and addPostEventHandler

Adding these will help solve the following problems:

1. Only the function that triggered the event knows if the event was cancelled
As wasEventCancelled is only valid after all addEventHandlers have been completed
(This also means its not possible to react to cancelling of inbuilt events)
2. Solve issue of cancelling events and really stopping them from doing anything
i.e. Cancel event in addPreEventHandler will stop addEventHandler being called altogether
3. Wanting to do things before/after events have occurred:
e.g. onResourceStart - Client has not been told to start yet, so some things like setPlayerTeam can't be done.
Adding addPostEventHandler("onResourceStart",...) means we can do stuff just after resource has really started on both server and client

Cancellation rules

Current (As it is now)

  • All addEventHandlers are called.

Proposal #1

  • All addPreEventHandlers are called.
  • If the event is not cancelled by any addPreEventHandler then:
  • All addEventHandlers are called.
  • If the event is not cancelled by any addEventHandlers then:
  • All addPostEventHandlers are called.

Proposal #2 (allows for addPostEventHandlers to detect addEventHandler cancellation)

  • All addPreEventHandlers are called.
  • If the event is not cancelled by any addPreEventHandler then:
  • All addEventHandlers are called.
  • All addPostEventHandlers are called. (wasEventCancelled() will be true if event cancelled during addEventHandlers)

Proposal #3 (allows for addPostEventHandlers to detect addPreEventHandlers and addEventHandler cancellation (but not distinguish which one))

  • All addPreEventHandlers are called.
  • If the event is not cancelled by any addPreEventHandler then:
  • All addEventHandlers are called.
  • All addPostEventHandlers are called. (wasEventCancelled() will be true if event cancelled during addPreEventHandlers or addEventHandlers)


2011 November 30

Notes for new ACL request system

In the resource meta.xml:

<aclrequest>
    <right name="function.kickPlayer" access="true"></right>
    <right name="function.banPlayer" access="true"></right>
</aclrequest>


Console command 'aclrequest'

aclrequest list
> aclrequest: BobsGame has 2 aclrequest(s) of which 2 are pending

aclrequest list BobsGame
> aclrequest: BobsGame [pending] for function.kickPlayer
> aclrequest: BobsGame [pending] for function.banPlayer

aclrequest deny BobsGame all
> aclrequest: BobsGame function.kickPlayer changed to deny (Console)
> aclrequest: BobsGame function.banPlayer changed to deny (Console)

aclrequest allow BobsGame function.kickPlayer
> aclrequest: BobsGame function.kickPlayer changed to allow (Console)

aclrequest list BobsGame 
> aclrequest: BobsGame [allow] for function.kickPlayer (by Console on 2011-11-29)
> aclrequest: BobsGame [deny] for function.banPlayer (by Console on 2011-11-29)


Script function #1:

table getResourceACLRequests ( resource theResource )

table return example:

{ {name="function.kickPlayer", access="true", pending="false", who="Console", date="2011-11-29" },
  {name="function.banPlayer", access="false", pending="false", who="Console", date="2011-11-29" } }


Script function #2:

bool updateResourceACLRequest ( resource theResource, string rightName, bool access, string byWho )

This only works with right names that are returned from getResourceACLRequests.
Calling updateResourceACLRequest automatically sents the 'pending' to false and also sets the 'date'.


Permissions

The following are protected by default and will need an entry in the ACL:

function.updateResourceACLRequest 
command.aclrequest


Release dates

History

Version Date Highlights User comments
1.0 22 August 2009 First release DP2 was better
1.0.1 02 October 2009 Crash fixes and less lag 1.0 was better
1.0.2 24 October 2009 Crash fixes 1.0.1 was better
1.0.3 17 December 2009 Sync improved 1.0.2 was better
1.0.4 (r1752) 7 June 2010 Security improved 1.0.3 was better
1.0.4 (r1854) 10 July 2010 Crash fixes It crashes more
1.0.4 (r2033) 14 October 2010 Crash fixes It crashes more
1.0.4 (r2106) 14 December 2010 Browser improved
1.0.5 (r2488) 27 March 2011 AC improved It crashes more & 1.0.4 was better
1.0.5 (r2519/2520) 4 April 2011 Performance fixed 'It's almost as good as 1.0.2 now'
1.0.5 (r2560) 16 April 2011 Performance improvements
1.1.0 25 August 2011 Many new features Possibly the worst thing that has happened in the history of the world
1.1.1 20 September 2011 Accumulation of post release fixes Lags more than 1.1
1.2 17 December 2011 RakNet fix for serious network related problems ???
1.3 24 January 2012 Map Download fix + loads of misc bug fixes ???
1.3.1 03 September 2012 loads of bug fixes and a boat load of new features 1.3 was better
1.3.2 05 May 2013 Added features, improved performance No thanks, I'm sticking with 1.3.1
1.3.3 01 July 2013 Anti-cheat updates and "optimus" fixes The game might run better when "optimus" fix is enabled so sticking with 1.3.1
1.3.5 24 Feb 2014 Anti-cheat updates and Lua additions 1.3.5 broke my internet