OPVD.inc 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /********************************************
  2. * OnPlayerVehicleDamage! V1.0 *
  3. * Credits: wups *
  4. ********************************************/
  5. // include
  6. #include <a_samp>
  7. // defines
  8. #if defined OPVD_INC
  9. #endinput
  10. #endif
  11. #define OPVD_INC
  12. forward OnPlayerVehicleDamage(playerid,vehicleid,Float:Damage);
  13. static
  14. Float:OPVD_VehHealth[MAX_VEHICLES] = {1000.0, 1000.0,...},
  15. bool:OPVD_VehUpd[MAX_VEHICLES]={false,false,...},
  16. bool:OPVD_OPUP,
  17. bool:OPVD_OPSC;
  18. public OnPlayerUpdate(playerid)
  19. {
  20. static PL_VehID;
  21. PL_VehID = GetPlayerVehicleID(playerid);
  22. if(PL_VehID)
  23. {
  24. static Float:PL_VehHP;
  25. GetVehicleHealth(PL_VehID,PL_VehHP);
  26. if(OPVD_VehUpd[PL_VehID])
  27. OPVD_VehUpd[PL_VehID]=false;
  28. else
  29. {
  30. if(PL_VehHP != OPVD_VehHealth[PL_VehID] && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  31. CallLocalFunction("OnPlayerVehicleDamage","iif",playerid,PL_VehID,(OPVD_VehHealth[PL_VehID]-PL_VehHP));
  32. }
  33. OPVD_VehHealth[PL_VehID]=PL_VehHP;
  34. }
  35. return (OPVD_OPUP)?CallLocalFunction("OPVD_OnPlayerUpdate","i",playerid):1;
  36. }
  37. #if defined _ALS_OnPlayerUpdate
  38. #undef OnPlayerUpdate
  39. #else
  40. #define _ALS_OnPlayerUpdate
  41. #endif
  42. #define OnPlayerUpdate OPVD_OnPlayerUpdate
  43. forward OPVD_OnPlayerUpdate(playerid);
  44. // OnPlayerStateChange
  45. public OnPlayerStateChange(playerid, newstate, oldstate)
  46. {
  47. if(newstate == PLAYER_STATE_DRIVER)
  48. OPVD_VehUpd[GetPlayerVehicleID(playerid)]=true;
  49. return (OPVD_OPSC)?CallLocalFunction("OPVD_OnPlayerStateChange","iii",playerid,newstate,oldstate):1;
  50. }
  51. #if defined _ALS_OnPlayerStateChange
  52. #undef OnPlayerStateChange
  53. #else
  54. #define _ALS_OnPlayerStateChange
  55. #endif
  56. #define OnPlayerStateChange OPVD_OnPlayerStateChange
  57. forward OPVD_OnPlayerStateChange(playerid,newstate, oldstate);
  58. forward OPVD_SetVehicleHealth(vehicleid,Float:health);
  59. public OPVD_SetVehicleHealth(vehicleid,Float:health)
  60. {
  61. OPVD_VehUpd[vehicleid]=true;
  62. return SetVehicleHealth(vehicleid, health);
  63. }
  64. forward OPVD_RepairVehicle(vehicleid);
  65. public OPVD_RepairVehicle(vehicleid)
  66. {
  67. OPVD_VehUpd[vehicleid]=true;
  68. return RepairVehicle(vehicleid);
  69. }
  70. #define RepairVehicle OPVD_RepairVehicle
  71. #define SetVehicleHealth OPVD_SetVehicleHealth
  72. #if defined FILTERSCRIPT
  73. // OnFilterScriptInit
  74. public OnFilterScriptInit()
  75. {
  76. OPVD_OPUP = (funcidx("OPVD_OnPlayerUpdate") != -1);
  77. OPVD_OPSC = (funcidx("OPVD_OnPlayerStateChange") != -1);
  78. return (funcidx("OPVD_OnFilterScriptInit") != -1)?CallLocalFunction("OPVD_OnFilterScriptInit",""):1;
  79. }
  80. #if defined _ALS_OnFilterScriptInit
  81. #undef OnFilterScriptInit
  82. #else
  83. #define _ALS_OnFilterScriptInit
  84. #endif
  85. #define OnFilterScriptInit OPVD_OnFilterScriptInit
  86. forward OPVD_OnFilterScriptInit();
  87. #else
  88. // OnGameModeInit
  89. public OnGameModeInit()
  90. {
  91. OPVD_OPUP = (funcidx("OPVD_OnPlayerUpdate") != -1);
  92. OPVD_OPSC = (funcidx("OPVD_OnPlayerStateChange") != -1);
  93. return (funcidx("OPVD_OnGameModeInit") != -1)?CallLocalFunction("OPVD_OnGameModeInit",""):1;
  94. }
  95. #if defined _ALS_OnGameModeInit
  96. #undef OnGameModeInit
  97. #else
  98. #define _ALS_OnGameModeInit
  99. #endif
  100. #define OnGameModeInit OPVD_OnGameModeInit
  101. forward OPVD_OnGameModeInit();
  102. #endif
  103. // end