gvc.inc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. SA-MP "GetVehicleColor v2.1" Include
  3. Copyright Š 2011 RyDeR`
  4. */
  5. #if defined _Included_GetVehicleColor
  6. #endinput
  7. #endif
  8. #define _Included_GetVehicleColor
  9. #define PROPERTY_OFFSET(%0) \
  10. ((((%0) * ((%0) << 1)) << 2) + 65536)
  11. stock n_AddStaticVehicle(modelID, Float: spawn_X, Float: spawn_Y, Float: spawn_Z, Float: z_Angle, color1, color2)
  12. {
  13. if(color1 < 0 || color2 < 0)
  14. {
  15. color1 = random(127);
  16. color2 = random(127);
  17. }
  18. modelID = AddStaticVehicle(modelID, spawn_X, spawn_Y, spawn_Z, z_Angle, color1, color2);
  19. new
  20. colorStr[24]
  21. ;
  22. format(colorStr, sizeof(colorStr), "%d-%d", color1, color2);
  23. setproperty(_, "", PROPERTY_OFFSET(modelID), colorStr);
  24. return modelID;
  25. }
  26. stock n_AddStaticVehicleEx(modelID, Float: spawn_X, Float: spawn_Y, Float: spawn_Z, Float: z_Angle, color1, color2, respawn_Delay)
  27. {
  28. if(color1 < 0 || color2 < 0)
  29. {
  30. color1 = random(127);
  31. color2 = random(127);
  32. }
  33. modelID = AddStaticVehicleEx(modelID, spawn_X, spawn_Y, spawn_Z, z_Angle, color1, color2, respawn_Delay);
  34. new
  35. colorStr[24]
  36. ;
  37. format(colorStr, sizeof(colorStr), "%d-%d", color1, color2);
  38. setproperty(_, "", PROPERTY_OFFSET(modelID), colorStr);
  39. return modelID;
  40. }
  41. stock n_CreateVehicle(modelID, Float: spawn_X, Float: spawn_Y, Float: spawn_Z, Float: z_Angle, color1, color2, respawn_Delay)
  42. {
  43. if(color1 < 0 || color2 < 0)
  44. {
  45. color1 = random(127);
  46. color2 = random(127);
  47. }
  48. modelID = CreateVehicle(modelID, spawn_X, spawn_Y, spawn_Z, z_Angle, color1, color2, respawn_Delay);
  49. new
  50. colorStr[24]
  51. ;
  52. format(colorStr, sizeof(colorStr), "%d-%d", color1, color2);
  53. setproperty(_, "", PROPERTY_OFFSET(modelID), colorStr);
  54. return modelID;
  55. }
  56. stock n_DestroyVehicle(vehicleID)
  57. {
  58. deleteproperty(_, "", PROPERTY_OFFSET(vehicleID));
  59. return DestroyVehicle(vehicleID);
  60. }
  61. stock n_ChangeVehicleColor(vehicleID, color1, color2)
  62. {
  63. new
  64. colorStr[24]
  65. ;
  66. format(colorStr, sizeof(colorStr), "%d-%d", color1, color2);
  67. setproperty(_, "", PROPERTY_OFFSET(vehicleID), colorStr);
  68. return ChangeVehicleColor(vehicleID, color1, color2);
  69. }
  70. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  71. {
  72. new
  73. colorStr[24]
  74. ;
  75. format(colorStr, sizeof(colorStr), "%d-%d", color1, color2);
  76. setproperty(_, "", PROPERTY_OFFSET(vehicleid), colorStr);
  77. if(funcidx("n_OnVehicleRespray") != -1)
  78. {
  79. return CallLocalFunction("n_OnVehicleRespray", "iiii", playerid, vehicleid, color1, color2);
  80. }
  81. return 1;
  82. }
  83. stock GetVehicleColor(vehicleID, &color1, &color2)
  84. {
  85. vehicleID = PROPERTY_OFFSET(vehicleID);
  86. if(existproperty(_, "", vehicleID))
  87. {
  88. new
  89. colorStr[24],
  90. strPos
  91. ;
  92. getproperty(_, "", vehicleID, colorStr);
  93. strunpack(colorStr, colorStr);
  94. if((strPos = strfind(colorStr, "-")) != -1)
  95. {
  96. color1 = strval(colorStr);
  97. color2 = strval(colorStr[strPos + 1]);
  98. return 1;
  99. }
  100. }
  101. return 0;
  102. }
  103. #define AddStaticVehicle n_AddStaticVehicle
  104. #define AddStaticVehicleEx n_AddStaticVehicleEx
  105. #define CreateVehicle n_CreateVehicle
  106. #define DestroyVehicle n_DestroyVehicle
  107. #define ChangeVehicleColor n_ChangeVehicleColor
  108. #if defined _ALS_OnVehicleRespray
  109. #undef OnVehicleRespray
  110. #else
  111. #define _ALS_OnVehicleRespray
  112. #endif
  113. #define OnVehicleRespray n_OnVehicleRespray
  114. forward n_OnVehicleRespray(playerid, vehicleid, color1, color2);