Advertisement
Lirbo

DynamicObject Parser

Dec 7th, 2022
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. stock LoadDynamicObjectsFile(path[], playerid = -1, Float:streamdistance = STREAMER_OBJECT_SD, Float:drawdistance = STREAMER_OBJECT_DD, areaid = -1, priority = 0)
  2. {
  3. new File:handle = fopen(path, io_read), buffer[186], string[144];
  4. if(!handle)
  5. {
  6. format(string, sizeof string, "%s couldn't be opened!", path);
  7. return printf(string);
  8. }
  9. new tmpobjid, tmpstr[12], objects, materials, texts, removes;
  10. while(fread(handle, buffer))
  11. {
  12. if(strfind(buffer, "CreateDynamicObject(") != -1)
  13. {
  14. objects++;
  15. new objectid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, virtualworld, interior;
  16. strdel(buffer, 0, strfind(buffer, "(") + 1);
  17. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  18. objectid = strval(tmpstr);
  19. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  20. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  21. x = floatstr(tmpstr);
  22. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  23. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  24. y = floatstr(tmpstr);
  25. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  26. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  27. z = floatstr(tmpstr);
  28. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  29. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  30. rx = floatstr(tmpstr);
  31. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  32. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  33. ry = floatstr(tmpstr);
  34. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  35. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  36. rz = floatstr(tmpstr);
  37. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  38. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  39. virtualworld = strval(tmpstr);
  40. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  41. strmid(tmpstr, buffer, 0, strfind(buffer, ")"));
  42. interior = strval(tmpstr);
  43. tmpobjid = CreateDynamicObject(objectid, x, y, z, rx, ry, rz, virtualworld, interior, playerid, streamdistance, drawdistance, areaid, priority);
  44. }
  45. else if(strfind(buffer, "SetDynamicObjectMaterial(") != -1)
  46. {
  47. materials++;
  48. new idx, model, txd[48], texture[48], color;
  49. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  50. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  51. idx = strval(tmpstr);
  52. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  53. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  54. model = strval(tmpstr);
  55. strdel(buffer, 0, strfind(buffer, ", \"") + 3);
  56. strmid(txd, buffer, 0, strfind(buffer, "\", "));
  57. strdel(buffer, 0, strfind(buffer, ", \"") + 3);
  58. strmid(texture, buffer, 0, strfind(buffer, "\", "));
  59. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  60. strmid(tmpstr, buffer, 0, strfind(buffer, ")"));
  61. sscanf(tmpstr, "x", color);
  62. SetDynamicObjectMaterial(tmpobjid, idx, model, txd, texture, color);
  63. }
  64. else if(strfind(buffer, "SetDynamicObjectMaterialText(") != -1)
  65. {
  66. texts++;
  67. new idx, text[128], materialsize, fontface[32], fontsize, bold, fontcolor, backcolor, textalignment;
  68. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  69. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  70. idx = strval(tmpstr);
  71. strdel(buffer, 0, strfind(buffer, ", \"") + 3);
  72. strmid(text, buffer, 0, strfind(buffer, "\", "));
  73. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  74. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  75. materialsize = strval(tmpstr);
  76. strdel(buffer, 0, strfind(buffer, ", \"") + 3);
  77. strmid(fontface, buffer, 0, strfind(buffer, "\", "));
  78. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  79. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  80. fontsize = strval(tmpstr);
  81. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  82. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  83. bold = strval(tmpstr);
  84. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  85. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  86. sscanf(tmpstr, "x", fontcolor);
  87. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  88. strmid(tmpstr, buffer, 0, strfind(buffer, ", "));
  89. sscanf(tmpstr, "x", backcolor);
  90. strdel(buffer, 0, strfind(buffer, ", ") + 2);
  91. strmid(tmpstr, buffer, 0, strfind(buffer, ")"));
  92. textalignment = strval(tmpstr);
  93. SetDynamicObjectMaterialText(tmpobjid, idx, text, materialsize, fontface, fontsize, bold, fontcolor, backcolor, textalignment);
  94. }
  95. else if(strfind(buffer, "RemoveBuildingForPlayer(") != -1)
  96. removes++;
  97.  
  98. }
  99. format(string, sizeof string, "%s has been successfully loaded! (Objects: %s, Textures: %s, Texts: %s, Removes: %s)", path, comma(objects), comma(materials), comma(texts), comma(removes));
  100. printf(string);
  101. fclose(handle);
  102. return 1; // Made by Lirbo :]
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement