Advertisement
SilverStar95

[SA:MP] PrintC Plugin (v1.0)

Feb 9th, 2013
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. #include "SDK/amx/amx.h"
  2. #include "SDK/plugincommon.h"
  3. #include <iostream>
  4.  
  5. typedef void (*logprintf_t)(char* format, ...);
  6.  
  7. logprintf_t logprintf;
  8. extern void *pAMXFunctions;
  9.  
  10. cell AMX_NATIVE_CALL PrintC(AMX* Amx, cell* Params)
  11. {
  12.     int Length = NULL, Return = NULL;
  13.     cell *Address = NULL;
  14.  
  15.     amx_GetAddr(Amx, Params[1], &Address);
  16.     amx_StrLen(Address, &Length);
  17.  
  18.     if(Length)
  19.     {
  20.         Length++; // fΓΌr \0 End Char
  21.  
  22.         char* Text = new char[Length];
  23.  
  24.         amx_GetString(Text, Address, 0, Length);
  25.  
  26.         std::cout << Text << std::flush;
  27.  
  28.         delete [] Text;
  29.     }
  30.  
  31.     return 1;
  32. }
  33.  
  34. PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports()
  35. {
  36.     return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES;
  37. }
  38.  
  39. PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData)
  40. {
  41.     pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS];
  42.     logprintf = (logprintf_t) ppData[PLUGIN_DATA_LOGPRINTF];
  43.  
  44.     logprintf("[PrintC] Copyright (c) 2013 German-Deathmatch.de");
  45.     return true;
  46. }
  47.  
  48. PLUGIN_EXPORT void PLUGIN_CALL Unload()
  49. {
  50.     logprintf("[PrintC] Plugin entladen");
  51. }
  52.  
  53. AMX_NATIVE_INFO PluginNatives[] =
  54. {
  55.     {"PrintC", PrintC},
  56.     {0, 0}
  57. };
  58.  
  59. PLUGIN_EXPORT int PLUGIN_CALL AmxLoad( AMX *amx )
  60. {
  61.     return amx_Register(amx, PluginNatives, -1);
  62. }
  63.  
  64.  
  65. PLUGIN_EXPORT int PLUGIN_CALL AmxUnload( AMX *amx )
  66. {
  67.     return AMX_ERR_NONE;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement