Advertisement
Guest User

SkinEx.inc

a guest
Apr 18th, 2018
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. //Made by lokii.
  2. #include <streamer> //credits to incognito.
  3.  
  4. #define SKIN_CHANGE_DELAY 1000 //tried 600 and 800 stil could see the skin changing :)
  5.  
  6. //credits to pottus for editing skin effect and object deletion
  7.  
  8. //v 1.2
  9.  
  10. /*
  11. native SetPlayerSkin(playerid, skinid);
  12. */
  13.  
  14. static p_skin_obj[MAX_PLAYERS] = { -1, ... };
  15. static p_skin_obj2[MAX_PLAYERS] = { -1, ... } ;
  16.  
  17. static DISTimer[MAX_PLAYERS];
  18. static SkinTimer[MAX_PLAYERS];
  19.  
  20. forward DIS(playerid);
  21. public DIS(playerid)
  22. {
  23. TogglePlayerControllable(playerid, 1);
  24. DestroyDynamicObject(p_skin_obj[playerid]);
  25. return DestroyDynamicObject(p_skin_obj2[playerid]);
  26. }
  27.  
  28. forward DelaySkinChange(playerid, skinid);
  29. public DelaySkinChange(playerid, skinid)
  30. {
  31. SetPlayerSkin(playerid, skinid);
  32. return 1;
  33. }
  34.  
  35.  
  36. static ResetSkinChange(playerid)
  37. {
  38. // This NEEDS to be done like this otherwise you will continually destory objects
  39. if(p_skin_obj[playerid] > -1)
  40. {
  41. DestroyDynamicObject(p_skin_obj[playerid]);
  42. DestroyDynamicObject(p_skin_obj2[playerid]);
  43. p_skin_obj[playerid] = -1;
  44. p_skin_obj2[playerid] = -1;
  45. }
  46.  
  47. KillTimer(DISTimer[playerid]);
  48. KillTimer(SkinTimer[playerid]);
  49. }
  50.  
  51. public OnPlayerDisconnect(playerid, reason)
  52. {
  53. ResetSkinChange(playerid);
  54.  
  55. #if defined SE_OnPlayerDisconnect
  56. SE_OnPlayerDisconnect(playerid, reason);
  57. #endif
  58. return 1;
  59. }
  60. #if defined _ALS_OnPlayerDisconnect
  61. #undef OnPlayerDisconnect
  62. #else
  63. #define _ALS_OnPlayerDisconnect
  64. #endif
  65. #define OnPlayerDisconnect SE_OnPlayerDisconnect
  66. #if defined SE_OnPlayerDisconnect
  67. forward SE_OnPlayerDisconnect(playerid, reason);
  68. #endif
  69.  
  70. stock SetPlayerSkinEx(playerid, skinid)
  71. {
  72. // Destory any created objects first
  73. ResetSkinChange(playerid);
  74. new Float:e_skin_x, Float:e_skin_y, Float:e_skin_z;
  75. GetPlayerPos(playerid, e_skin_x, e_skin_y, e_skin_z);
  76. TogglePlayerControllable(playerid, 0);
  77. p_skin_obj[playerid] = CreateDynamicObject(18671, e_skin_x, e_skin_y, e_skin_z-2.5, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 100.0, STREAMER_OBJECT_DD, -1, 0);
  78. p_skin_obj2[playerid] = CreateDynamicObject(18728, e_skin_x, e_skin_y, e_skin_z-1.5, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 100.0, STREAMER_OBJECT_DD, -1, 0);
  79. DISTimer[playerid] = SetTimerEx("DIS", 1200, false, "i", playerid);
  80. SkinTimer[playerid] = SetTimerEx("DelaySkinChange", SKIN_CHANGE_DELAY, false, "iii", playerid, skinid);
  81. Streamer_Update(playerid);
  82. return 1;
  83. }
  84.  
  85. #if defined _ALS_SetPlayerSkin
  86. #undef SetPlayerSkin
  87. #else
  88. #define _ALS_SetPlayerSkin
  89. #endif
  90. #define SetPlayerSkin SetPlayerSkinEx
  91.  
  92.  
  93. //EOF.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement