Advertisement
BigETI

amx_GetAddr attempt on GetPlayerPos

Apr 12th, 2013
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. // Attempt 1: Returns a random value each argument <- not usable
  2. cell GetPlayerPos(B_STREAM_VECTOR::iterator amx_it, cell playerid, float &x, float &y, float &z)
  3. {
  4.     if((amx_it->hooked_natives&0x2) == 0) return 0;
  5.     cell params[5] = {4, playerid, NULL, NULL, NULL}, ret = amx_it->GetPlayerPos(amx_it->amx_ptr, params), *addr[5];
  6.     amx_GetAddr(amx_it->amx_ptr, params[2], &addr[0]);
  7.     amx_GetAddr(amx_it->amx_ptr, params[3], &addr[1]);
  8.     amx_GetAddr(amx_it->amx_ptr, params[4], &addr[2]);
  9.     x = amx_ctof(*addr[0]);
  10.     y = amx_ctof(*addr[1]);
  11.     z = amx_ctof(*addr[2]);
  12.     return ret;
  13. }
  14.  
  15. // Attempt 2: Same as attempt 1 <- not usable
  16. cell GetPlayerPos(B_STREAM_VECTOR::iterator amx_it, cell playerid, float &x, float &y, float &z)
  17. {
  18.     if((amx_it->hooked_natives&0x2) == 0) return 0;
  19.     cell *params = new cell[5];
  20.     CheckPtr((int)params);
  21.     params[0] = 4;
  22.     params[1] = playerid;
  23.     cell ret = amx_it->GetPlayerPos(amx_it->amx_ptr, params), *addr[3];
  24.     amx_GetAddr(amx_it->amx_ptr, params[2], &addr[0]);
  25.     amx_GetAddr(amx_it->amx_ptr, params[3], &addr[1]);
  26.     amx_GetAddr(amx_it->amx_ptr, params[4], &addr[2]);
  27.     x = amx_ctof(*addr[0]);
  28.     y = amx_ctof(*addr[1]);
  29.     z = amx_ctof(*addr[2]);
  30.     delete[] params;
  31.     return ret;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement