log.hpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef LOG_HPP
  4. #define LOG_HPP
  5. #include "../common/cbasetypes.hpp"
  6. #include "../common/mmo.hpp"
  7. struct block_list;
  8. class map_session_data;
  9. struct mob_data;
  10. struct item;
  11. enum e_log_chat_type : uint8
  12. {
  13. LOG_CHAT_GLOBAL = 0x01,
  14. LOG_CHAT_WHISPER = 0x02,
  15. LOG_CHAT_PARTY = 0x04,
  16. LOG_CHAT_GUILD = 0x08,
  17. LOG_CHAT_MAINCHAT = 0x10,
  18. LOG_CHAT_CLAN = 0x20,
  19. // all
  20. LOG_CHAT_ALL = 0xFF,
  21. };
  22. enum e_log_pick_type : uint32
  23. {
  24. LOG_TYPE_NONE = 0x00000000,
  25. LOG_TYPE_TRADE = 0x00000001,
  26. LOG_TYPE_VENDING = 0x00000002,
  27. LOG_TYPE_PICKDROP_PLAYER = 0x00000004,
  28. LOG_TYPE_PICKDROP_MONSTER = 0x00000008,
  29. LOG_TYPE_NPC = 0x00000010,
  30. LOG_TYPE_SCRIPT = 0x00000020,
  31. LOG_TYPE_STEAL = 0x00000040,
  32. LOG_TYPE_CONSUME = 0x00000080,
  33. LOG_TYPE_PRODUCE = 0x00000100,
  34. LOG_TYPE_MVP = 0x00000200,
  35. LOG_TYPE_COMMAND = 0x00000400,
  36. LOG_TYPE_STORAGE = 0x00000800,
  37. LOG_TYPE_GSTORAGE = 0x00001000,
  38. LOG_TYPE_MAIL = 0x00002000,
  39. LOG_TYPE_AUCTION = 0x00004000,
  40. LOG_TYPE_BUYING_STORE = 0x00008000,
  41. LOG_TYPE_OTHER = 0x00010000,
  42. LOG_TYPE_CASH = 0x00020000,
  43. LOG_TYPE_BANK = 0x00040000,
  44. LOG_TYPE_BOUND_REMOVAL = 0x00080000,
  45. LOG_TYPE_ROULETTE = 0x00100000,
  46. LOG_TYPE_MERGE_ITEM = 0x00200000,
  47. LOG_TYPE_QUEST = 0x00400000,
  48. LOG_TYPE_PRIVATE_AIRSHIP = 0x00800000,
  49. LOG_TYPE_BARTER = 0x01000000,
  50. LOG_TYPE_LAPHINE = 0x02000000,
  51. LOG_TYPE_ENCHANTGRADE = 0x04000000,
  52. LOG_TYPE_REFORM = 0x08000000,
  53. LOG_TYPE_ENCHANT = 0x10000000,
  54. LOG_TYPE_PACKAGE = 0x20000000,
  55. // combinations
  56. LOG_TYPE_LOOT = LOG_TYPE_PICKDROP_MONSTER|LOG_TYPE_CONSUME,
  57. // all
  58. LOG_TYPE_ALL = 0xFFFFFFFF,
  59. };
  60. enum e_log_cash_type : uint8
  61. {
  62. LOG_CASH_TYPE_CASH = 0x1,
  63. LOG_CASH_TYPE_KAFRA = 0x2
  64. };
  65. enum e_log_feeding_type : uint8
  66. {
  67. LOG_FEED_HOMUNCULUS = 0x1,
  68. LOG_FEED_PET = 0x2,
  69. };
  70. /// new logs
  71. void log_pick_pc(map_session_data* sd, e_log_pick_type type, int amount, struct item* itm);
  72. void log_pick_mob(struct mob_data* md, e_log_pick_type type, int amount, struct item* itm);
  73. void log_zeny(map_session_data* sd, e_log_pick_type type, map_session_data* src_sd, int amount);
  74. void log_cash( map_session_data* sd, e_log_pick_type type, e_log_cash_type cash_type, int amount );
  75. void log_npc( struct npc_data* nd, const char* message );
  76. void log_npc(map_session_data* sd, const char *message);
  77. void log_chat(e_log_chat_type type, int type_id, int src_charid, int src_accid, const char* map, int x, int y, const char* dst_charname, const char* message);
  78. void log_atcommand(map_session_data* sd, const char* message);
  79. void log_feeding(map_session_data *sd, e_log_feeding_type type, t_itemid nameid);
  80. /// old, but useful logs
  81. void log_branch(map_session_data* sd);
  82. void log_mvpdrop(map_session_data* sd, int monster_id, t_itemid nameid, t_exp exp);
  83. int log_config_read(const char* cfgName);
  84. extern struct Log_Config
  85. {
  86. e_log_pick_type enable_logs;
  87. int filter;
  88. bool sql_logs;
  89. bool log_chat_woe_disable;
  90. bool cash;
  91. int rare_items_log,refine_items_log,price_items_log,amount_items_log; //for filter
  92. int branch, mvpdrop, zeny, commands, npc, chat;
  93. unsigned feeding : 2;
  94. char log_branch[64], log_pick[64], log_zeny[64], log_mvpdrop[64], log_gm[64], log_npc[64], log_chat[64], log_cash[64];
  95. char log_feeding[64];
  96. } log_config;
  97. #endif /* LOG_HPP */