Advertisement
C_far

OnPlayerClickPlayer (Extended)

Mar 26th, 2018
771
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.10 KB | None | 0 0
  1. #tryinclude <streamer>
  2. #if !defined Streamer_IncludeFileVersion
  3.     #error This include needs streamer plugin
  4. #endif
  5.  
  6. //===========================================================
  7.  
  8. #define CLICK_SOURCE_SKIN (16)
  9.  
  10. static
  11.     bool:g_opcpFirst[MAX_PLAYERS char],
  12.     bool:g_opcpSelect[MAX_PLAYERS char],
  13.     STREAMER_TAG_OBJECT g_opcpObject[MAX_PLAYERS]
  14. ;
  15.  
  16. public OnPlayerConnect(playerid) {
  17.     if(!g_opcpFirst{playerid}) {
  18.         new
  19.             STREAMER_TAG_OBJECT objid = CreateDynamicObject(18963, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
  20.         ;
  21.  
  22.         for(new i; i< 10; i++)
  23.             SetDynamicObjectMaterial(objid, i, 0, "none", "none", 0x00000000);
  24.  
  25.         AttachDynamicObjectToPlayer(objid, playerid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
  26.         Streamer_SetIntData(STREAMER_TYPE_OBJECT, objid, E_STREAMER_EXTRA_ID, playerid);
  27.  
  28.         g_opcpObject[playerid] = objid;
  29.         g_opcpFirst{playerid} = true;
  30.     }
  31.  
  32.     #if defined OPCP_OnPlayerConnect
  33.         OPCP_OnPlayerConnect(playerid);
  34.     #endif
  35.     return 1;
  36. }
  37.  
  38. #if defined _ALS_OnPlayerConnect
  39.     #undef OnPlayerConnect
  40. #else
  41.     #define _ALS_OnPlayerConnect
  42. #endif
  43.  
  44. #define OnPlayerConnect OPCP_OnPlayerConnect
  45. #if defined OPCP_OnPlayerConnect
  46.     forward OPCP_OnPlayerConnect(playerid);
  47. #endif
  48.  
  49. public OnPlayerDisconnect(playerid, reason) {
  50.     #pragma unused reason
  51.    
  52.     g_opcpFirst{playerid} = false;
  53.     g_opcpSelect{playerid} = false;
  54.     DestroyDynamicObject(g_opcpObject[playerid]);
  55.  
  56.     #if defined OPCP_OnPlayerDisconnect
  57.         OPCP_OnPlayerDisconnect(playerid, reason);
  58.     #endif
  59.     return 1;
  60. }
  61.  
  62. #if defined _ALS_OnPlayerDisconnect
  63.     #undef OnPlayerDisconnect
  64. #else
  65.     #define _ALS_OnPlayerDisconnect
  66. #endif
  67.  
  68. #define OnPlayerDisconnect OPCP_OnPlayerDisconnect
  69. #if defined OPCP_OnPlayerDisconnect
  70.     forward OPCP_OnPlayerDisconnect(playerid, reason);
  71. #endif
  72.  
  73. public OnPlayerSelectDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, modelid, Float:x, Float:y, Float:z) {
  74.     if(g_opcpSelect{playerid}) {
  75.         new
  76.             targetid = Streamer_GetIntData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_EXTRA_ID)
  77.         ;
  78.  
  79.         if(IsPlayerConnected(targetid)) {
  80.             if(g_opcpObject[targetid] == objectid) {
  81.                 g_opcpSelect{playerid} = false;
  82.                 CancelEdit(playerid);
  83.                 CallLocalFunction("OnPlayerClickPlayer", "ddd", playerid, targetid, CLICK_SOURCE_SKIN);
  84.             }
  85.         }
  86.         return 1;
  87.     }
  88.  
  89.     #if defined OPCPOnPlayerSelectDynamicObject
  90.         OPCPOnPlayerSelectDynamicObject(playerid, objectid, modelid, x, y, z);
  91.     #endif
  92.     return 1;
  93. }
  94.  
  95. #if defined _ALS_OnPlayerSelectDynObject
  96.     #undef OnPlayerSelectDynamicObject
  97. #else
  98.     #define _ALS_OnPlayerSelectDynObject
  99. #endif
  100.  
  101. #define OnPlayerSelectDynamicObject OPCPOnPlayerSelectDynamicObject
  102. #if defined OPCPOnPlayerSelectDynamicObject
  103.     forward OPCPOnPlayerSelectDynamicObject(playerid, STREAMER_TAG_OBJECT objectid, modelid, Float:x, Float:y, Float:z);
  104. #endif
  105.  
  106. stock SelectPlayer(playerid)
  107. {
  108.     g_opcpSelect{playerid} = true;
  109.     SelectObject(playerid);
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement