func.pwn 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. DefaultTextureViewData(playerid) {
  2. g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID] = INVALID_OBJECT_ID;
  3. }
  4. GetTextureViewNextPos(playerid, &Float:x, &Float:y, &Float:z) {
  5. new
  6. Float: vec_x,
  7. Float: vec_y,
  8. Float: vec_z
  9. ;
  10. GetPlayerCameraPos(playerid, x, y, z);
  11. GetPlayerCameraFrontVector(playerid, vec_x, vec_y, vec_z);
  12. x += (TEXTUREVIEW_DISTANCE * vec_x);
  13. y += (TEXTUREVIEW_DISTANCE * vec_y);
  14. z += (TEXTUREVIEW_DISTANCE * vec_z);
  15. }
  16. CreateTextureView(playerid) {
  17. if( !IsValidPlayerObject(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID]) ) {
  18. new Float:x, Float:y, Float:z;
  19. GetTextureViewNextPos(playerid, x, y, z);
  20. g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID] = CreatePlayerObject(playerid, TEXTUREVIEW_MODELID, x, y, z, 0.0, 0.0, 0.0);
  21. }
  22. return g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID];
  23. }
  24. DestroyTextureView(playerid) {
  25. if( IsValidPlayerObject(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID]) ) {
  26. DestroyPlayerObject(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID]);
  27. g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID] = INVALID_OBJECT_ID;
  28. }
  29. }
  30. RefreshTextureView(playerid, textureid) {
  31. if( !IsValidPlayerObject(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID]) ) {
  32. CreateTextureView(playerid);
  33. }
  34. if( !IsValidPlayerObject(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID]) ) {
  35. return 0;
  36. }
  37. if( g_ObjectData[ g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID] - 1 ][OBJECT_DATA_MATINDEX_MODCOUNT] >= MAX_MATERIALINDEX_MODCOUNT ) {
  38. DestroyTextureView(playerid);
  39. CreateTextureView(playerid);
  40. }
  41. new
  42. modelid,
  43. Float:x,
  44. Float:y,
  45. Float:z
  46. ;
  47. GetTextureData(textureid, modelid, g_TextureTXDString, sizeof g_TextureTXDString, g_TextureNameString, sizeof g_TextureNameString);
  48. GetTextureViewNextPos(playerid, x, y, z);
  49. SetPlayerObjectMaterial(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID], TEXTUREVIEW_MATINDEX, modelid, g_TextureTXDString, g_TextureNameString, 0);
  50. SetPlayerObjectPos(playerid, g_TextureViewData[playerid][TEXTUREVIEW_DATA_POID], x, y, z);
  51. return 1;
  52. }