chrif.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // Copyright (c) Athena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef _CHRIF_H_
  4. #define _CHRIF_H_
  5. #include "../common/cbasetypes.h"
  6. #include <time.h>
  7. enum sd_state { ST_LOGIN, ST_LOGOUT, ST_MAPCHANGE };
  8. struct auth_node {
  9. uint32 account_id, char_id;
  10. int login_id1, login_id2, sex, fd;
  11. time_t expiration_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited)
  12. struct map_session_data *sd; //Data from logged on char.
  13. struct mmo_charstatus *char_dat; //Data from char server.
  14. unsigned int node_created; //timestamp for node timeouts
  15. enum sd_state state; //To track whether player was login in/out or changing maps.
  16. };
  17. /// Char-server (to login-server) operation request
  18. enum chrif_req_op {
  19. // Request to login-server
  20. CHRIF_OP_LOGIN_BLOCK = 1,
  21. CHRIF_OP_LOGIN_BAN,
  22. CHRIF_OP_LOGIN_UNBLOCK,
  23. CHRIF_OP_LOGIN_UNBAN,
  24. CHRIF_OP_LOGIN_CHANGESEX,
  25. CHRIF_OP_LOGIN_VIP,
  26. CHRIF_OP_LOGIN_CHANGECHARSEX,
  27. // Char-server operation
  28. CHRIF_OP_BAN,
  29. CHRIF_OP_UNBAN,
  30. };
  31. void chrif_setuserid(char* id);
  32. void chrif_setpasswd(char* pwd);
  33. void chrif_checkdefaultlogin(void);
  34. int chrif_setip(const char* ip);
  35. void chrif_setport(uint16 port);
  36. int chrif_isconnected(void);
  37. void chrif_check_shutdown(void);
  38. extern int chrif_connected;
  39. extern int other_mapserver_count;
  40. struct auth_node* chrif_search(uint32 account_id);
  41. struct auth_node* chrif_auth_check(uint32 account_id, uint32 char_id, enum sd_state state);
  42. bool chrif_auth_delete(uint32 account_id, uint32 char_id, enum sd_state state);
  43. bool chrif_auth_finished(struct map_session_data* sd);
  44. void chrif_authreq(struct map_session_data* sd, bool autotrade);
  45. void chrif_authok(int fd);
  46. int chrif_scdata_request(uint32 account_id, uint32 char_id);
  47. int chrif_skillcooldown_request(uint32 account_id, uint32 char_id);
  48. int chrif_skillcooldown_save(struct map_session_data *sd);
  49. int chrif_skillcooldown_load(int fd);
  50. int chrif_save(struct map_session_data* sd, int flag);
  51. int chrif_charselectreq(struct map_session_data* sd, uint32 s_ip);
  52. int chrif_changemapserver(struct map_session_data* sd, uint32 ip, uint16 port);
  53. int chrif_searchcharid(uint32 char_id);
  54. int chrif_changeemail(int id, const char *actual_email, const char *new_email);
  55. int chrif_req_login_operation(int aid, const char* character_name, unsigned short operation_type, int timediff, int val1, int val2);
  56. int chrif_updatefamelist(struct map_session_data *sd);
  57. int chrif_buildfamelist(void);
  58. int chrif_save_scdata(struct map_session_data *sd);
  59. int chrif_ragsrvinfo(int base_rate,int job_rate, int drop_rate);
  60. int chrif_char_offline(struct map_session_data *sd);
  61. int chrif_char_offline_nsd(uint32 account_id, uint32 char_id);
  62. int chrif_char_reset_offline(void);
  63. int send_users_tochar(void);
  64. int chrif_char_online(struct map_session_data *sd);
  65. int chrif_changesex(struct map_session_data *sd, bool change_account);
  66. int chrif_chardisconnect(struct map_session_data *sd);
  67. int chrif_divorce(int partner_id1, int partner_id2);
  68. int chrif_removefriend(uint32 char_id, int friend_id);
  69. int chrif_send_report(char* buf, int len);
  70. void chrif_parse_ack_vipActive(int fd);
  71. int chrif_req_charban(int aid, const char* character_name, int timediff);
  72. int chrif_req_charunban(int aid, const char* character_name);
  73. int chrif_bsdata_request(uint32 char_id);
  74. int chrif_bsdata_save(struct map_session_data *sd, bool quit);
  75. void do_final_chrif(void);
  76. void do_init_chrif(void);
  77. int chrif_flush_fifo(void);
  78. #endif /* _CHRIF_H_ */