debuging.pwn 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. // This is a comment
  2. // uncomment the line below if you want to write a filterscript
  3. //#define FILTERSCRIPT
  4. #include <a_samp>
  5. forward Tracker();
  6. forward DebugLog(string[]);
  7. new Member[MAX_PLAYERS];
  8. new Float:GetLocation[MAX_PLAYERS][3];
  9. new pInt[MAX_PLAYERS];
  10. public OnFilterScriptInit()
  11. {
  12. print("\nIn-Game Plotter loaded...");
  13. print("Maps Spots/pickups and entrances\n");
  14. SetTimer("Tracker", 500, 1);
  15. return 1;
  16. }
  17. public OnFilterScriptExit()
  18. {
  19. return 1;
  20. }
  21. public OnPlayerConnect(playerid)
  22. {
  23. Member[playerid]=0;
  24. return 1;
  25. }
  26. public OnPlayerDisconnect(playerid, reason)
  27. {
  28. return 1;
  29. }
  30. public OnPlayerCommandText(playerid, cmdtext[])
  31. {
  32. new idx;
  33. if (strcmp("/joindebug", cmdtext, true, 10) == 0)
  34. {
  35. Member[playerid]=1;
  36. return 1;
  37. }
  38. if (strcmp("/debugnote", cmdtext, true, 10) == 0)
  39. {
  40. if(!Member[playerid])
  41. {
  42. SendClientMessage(playerid, 0xF0F0F0FF, "You are not concerned...");
  43. return 1;
  44. }
  45. new sendername[MAX_PLAYER_NAME];
  46. GetPlayerName(playerid, sendername, sizeof(sendername));
  47. new length = strlen(cmdtext);
  48. while ((idx < length) && (cmdtext[idx] <= ' '))
  49. {
  50. idx++;
  51. }
  52. new offset = idx;
  53. new result[64];
  54. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  55. {
  56. result[idx - offset] = cmdtext[idx];
  57. idx++;
  58. }
  59. result[idx - offset] = EOS;
  60. if(!strlen(result))
  61. {
  62. SendClientMessage(playerid, 0xF0F0F0FF, "USAGE: /debugnote [text]");
  63. return 1;
  64. }
  65. new string[128];
  66. format(string, sizeof(string), "Note from %s: %s", sendername, (result));
  67. SendClientMessage(playerid, 0x33DDDDFF, "Pickup or enter the entrance now.");
  68. return 1;
  69. }
  70. if (strcmp("/savenote", cmdtext, true, 10) == 0)
  71. {
  72. new sendername[MAX_PLAYER_NAME];
  73. GetPlayerName(playerid, sendername, sizeof(sendername));
  74. new length = strlen(cmdtext);
  75. while ((idx < length) && (cmdtext[idx] <= ' '))
  76. {
  77. idx++;
  78. }
  79. new offset = idx;
  80. new result[64];
  81. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  82. {
  83. result[idx - offset] = cmdtext[idx];
  84. idx++;
  85. }
  86. result[idx - offset] = EOS;
  87. if(!Member[playerid])
  88. {
  89. SendClientMessage(playerid, 0xF0F0F0FF, "You are not concerned...");
  90. return 1;
  91. }
  92. if(!strlen(result))
  93. {
  94. SendClientMessage(playerid, 0xF0F0F0FF, "USAGE: /debugnote [text]");
  95. return 1;
  96. }
  97. new string[128];
  98. format(string, sizeof(string), "Note from %s: %s", sendername, (result));
  99. DebugLog(string);
  100. GetPlayerPos(playerid, GetLocation[playerid][0], GetLocation[playerid][1], GetLocation[playerid][2]);
  101. pInt[playerid] = GetPlayerInterior(playerid);
  102. format(string, sizeof(string), "AT %f,%f,%f : INT %d", GetLocation[playerid][0], GetLocation[playerid][1], GetLocation[playerid][2], pInt[playerid]);
  103. DebugLog(string);
  104. return 1;
  105. }
  106. return 0;
  107. }
  108. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  109. {
  110. if(Member[playerid])
  111. {
  112. if(GetPlayerInterior(playerid)>0&&Member[playerid])
  113. {
  114. new debugname[MAX_PLAYER_NAME];
  115. new string[128];
  116. GetPlayerName(playerid,debugname[playerid], 24);
  117. if(newinteriorid!=0&&oldinteriorid==0)
  118. {
  119. format(string, sizeof(string), "%s entered interior", debugname[playerid]);
  120. DebugLog("Entered\n");
  121. }
  122. if(newinteriorid==0&&oldinteriorid!=0)
  123. {
  124. format(string, sizeof(string), "%s exited interior", debugname[playerid]);
  125. DebugLog("Exited\n");
  126. }
  127. GetPlayerPos(playerid, GetLocation[playerid][0], GetLocation[playerid][1], GetLocation[playerid][2]);
  128. pInt[playerid] = GetPlayerInterior(playerid);
  129. format(string, sizeof(string), "\nPosition: AT %f,%f,%f : INT ID %i\n", GetLocation[playerid][0], GetLocation[playerid][1], GetLocation[playerid][2], pInt[playerid]);
  130. DebugLog(string);
  131. }
  132. }
  133. return 1;
  134. }
  135. public DebugLog(string[])
  136. {
  137. new entry[256];
  138. format(entry, sizeof(entry), "%s\n",string);
  139. new File:hFile;
  140. hFile = fopen("debug.log", io_append);
  141. fwrite(hFile, entry);
  142. fclose(hFile);
  143. }