OSDN Git Service

First version
[st-ro/stro.git] / src / map / guild.h
1 // Copyright (c) Athena Dev Teams - Licensed under GNU GPL
2 // For more information, see LICENCE in the main folder
3
4 #ifndef _GUILD_H_
5 #define _GUILD_H_
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 //#include "../common/mmo.h"
12 struct guild;
13 struct guild_member;
14 struct guild_position;
15 struct guild_castle;
16 #include "map.h" // NAME_LENGTH
17 struct map_session_data;
18 struct mob_data;
19
20 //For quick linking to a guardian's info. [Skotlex]
21 struct guardian_data {
22         int number; //0-MAX_GUARDIANS-1 = Guardians. MAX_GUARDIANS = Emperium.
23         int guild_id;
24         int emblem_id;
25         int guardup_lv; //Level of GD_GUARDUP skill.
26         char guild_name[NAME_LENGTH];
27         struct guild_castle* castle;
28 };
29
30 int guild_skill_get_max(int id);
31
32 int guild_checkskill(struct guild *g,int id);
33 int guild_check_skill_require(struct guild *g,int id); // [Komurka]
34 int guild_checkcastles(struct guild *g); // [MouseJstr]
35 bool guild_isallied(int guild_id, int guild_id2); //Checks alliance based on guild Ids. [Skotlex]
36
37 void do_init_guild(void);
38 struct guild *guild_search(int guild_id);
39 struct guild *guild_searchname(char *str);
40 struct guild_castle *guild_castle_search(int gcid);
41
42 struct guild_castle* guild_mapname2gc(const char* mapname);
43 struct guild_castle* guild_mapindex2gc(short mapindex);
44
45 struct map_session_data *guild_getavailablesd(struct guild *g);
46 int guild_getindex(struct guild *g,uint32 account_id,uint32 char_id);
47 int guild_getposition(struct map_session_data *sd);
48 unsigned int guild_payexp(struct map_session_data *sd,unsigned int exp);
49 int guild_getexp(struct map_session_data *sd,int exp); // [Celest]
50
51 int guild_create(struct map_session_data *sd, const char *name);
52 int guild_created(uint32 account_id,int guild_id);
53 int guild_request_info(int guild_id);
54 int guild_recv_noinfo(int guild_id);
55 int guild_recv_info(struct guild *sg);
56 int guild_npc_request_info(int guild_id,const char *ev);
57 int guild_invite(struct map_session_data *sd,struct map_session_data *tsd);
58 int guild_reply_invite(struct map_session_data *sd,int guild_id,int flag);
59 void guild_member_joined(struct map_session_data *sd);
60 int guild_member_added(int guild_id,uint32 account_id,uint32 char_id,int flag);
61 int guild_leave(struct map_session_data *sd,int guild_id,
62         uint32 account_id,uint32 char_id,const char *mes);
63 int guild_member_withdraw(int guild_id,uint32 account_id,uint32 char_id,int flag,
64         const char *name,const char *mes);
65 int guild_expulsion(struct map_session_data *sd,int guild_id,
66         uint32 account_id,uint32 char_id,const char *mes);
67 void guild_skillup(struct map_session_data* sd, uint16 skill_id);
68 void guild_block_skill(struct map_session_data *sd, int time);
69 int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd);
70 int guild_reply_reqalliance(struct map_session_data *sd,uint32 account_id,int flag);
71 int guild_allianceack(int guild_id1,int guild_id2,uint32 account_id1,uint32 account_id2,
72         int flag,const char *name1,const char *name2);
73 int guild_delalliance(struct map_session_data *sd,int guild_id,int flag);
74 int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd);
75 int guild_check_alliance(int guild_id1, int guild_id2, int flag);
76
77 int guild_send_memberinfoshort(struct map_session_data *sd,int online);
78 int guild_recv_memberinfoshort(int guild_id,uint32 account_id,uint32 char_id,int online,int lv,int class_);
79 int guild_change_memberposition(int guild_id,uint32 account_id,uint32 char_id,short idx);
80 int guild_memberposition_changed(struct guild *g,int idx,int pos);
81 int guild_change_position(int guild_id,int idx,int mode,int exp_mode,const char *name);
82 int guild_position_changed(int guild_id,int idx,struct guild_position *p);
83 int guild_change_notice(struct map_session_data *sd,int guild_id,const char *mes1,const char *mes2);
84 int guild_notice_changed(int guild_id,const char *mes1,const char *mes2);
85 int guild_change_emblem(struct map_session_data *sd,int len,const char *data);
86 int guild_emblem_changed(int len,int guild_id,int emblem_id,const char *data);
87 int guild_send_message(struct map_session_data *sd,const char *mes,int len);
88 int guild_recv_message(int guild_id,uint32 account_id,const char *mes,int len);
89 int guild_send_dot_remove(struct map_session_data *sd);
90 int guild_skillupack(int guild_id,uint16 skill_id,uint32 account_id);
91 int guild_break(struct map_session_data *sd,char *name);
92 int guild_broken(int guild_id,int flag);
93 int guild_gm_change(int guild_id, uint32 char_id);
94 int guild_gm_changed(int guild_id, uint32 account_id, uint32 char_id, time_t time);
95
96 void guild_castle_map_init(void);
97 int guild_castledatasave(int castle_id,int index,int value);
98 int guild_castledataloadack(int len, struct guild_castle *gc);
99 void guild_castle_reconnect(int castle_id, int index, int value);
100
101 bool guild_agit_start(void);
102 bool guild_agit_end(void);
103
104 bool guild_agit2_start(void);
105 bool guild_agit2_end(void);
106
107 bool guild_agit3_start(void);
108 bool guild_agit3_end(void);
109
110 /* guild flag cachin */
111 void guild_flag_add(struct npc_data *nd);
112 void guild_flag_remove(struct npc_data *nd);
113 void guild_flags_clear(void);
114
115 void guild_guildaura_refresh(struct map_session_data *sd, uint16 skill_id, uint16 skill_lv);
116 #ifdef BOUND_ITEMS
117 void guild_retrieveitembound(uint32 char_id,uint32 account_id,int guild_id);
118 #endif
119
120 void do_final_guild(void);
121
122 #ifdef __cplusplus
123 }
124 #endif
125
126 #endif /* _GUILD_H_ */