44 strlcpy(buf, partyname,
sizeof(buf));
61 "You have formed party: %s",
63 op->contr->party = party;
66 lastparty->
next = party;
67 lastparty = lastparty->
next;
88 if (op->contr->party == party) {
90 "You are already a member of party: %s",
97 op->contr->party = party;
99 "You have joined party: %s\n",
132 "You leave party %s.",
136 op->contr->party = NULL;
151 for (party = firstparty; party; party = party->
next) {
152 if (strcmp(party->
partyname, partyname) == 0)
169 previousparty = NULL;
170 for (walk = &firstparty; *walk != NULL; walk = &(*walk)->
next) {
171 if (*walk == party) {
172 if (party == lastparty)
173 lastparty = previousparty;
176 if (pl->
party == party)
184 previousparty = *walk;
186 LOG(
llevError,
"party_remove: I was asked to remove party %s, but it could not be found.\n",
218 for (party = firstparty; party != NULL; party = next) {
260 return strcmp(party->
passwd, password) == 0;
275 player *
const self = op->contr;
296 #ifdef PARTY_KILL_LOG 309 void party_add_kill(
partylist *party,
const char *killer,
const char *dead,
long exp) {
312 if (party->kills >= PARTY_KILL_LOG) {
313 pos = PARTY_KILL_LOG-1;
314 for (i = 0; i < PARTY_KILL_LOG-1; i++)
315 memcpy(&(party->party_kills[i]), &(party->party_kills[i+1]),
sizeof(party->party_kills[0]));
319 party->total_exp += exp;
320 party->party_kills[pos].exp = exp;
321 strncpy(party->party_kills[pos].killer, killer,
MAX_NAME);
322 strncpy(party->party_kills[pos].dead, dead,
MAX_NAME);
323 party->party_kills[pos].killer[
MAX_NAME] = 0;
324 party->party_kills[pos].dead[
MAX_NAME] = 0;
void draw_ext_info_format(int flags, int pri, const object *pl, uint8_t type, uint8_t subtype, const char *format,...)
partylist * party_get_first(void)
const char * party_get_password(const partylist *party)
const char * party_get_leader(const partylist *party)
partylist * party_find(const char *partyname)
static void remove_if_unused(partylist *party)
static partylist * firstparty
void draw_ext_info(int flags, int pri, const object *pl, uint8_t type, uint8_t subtype, const char *message)
static partylist * lastparty
int party_confirm_password(const partylist *party, const char *password)
partylist * party_get_next(const partylist *party)
void party_send_message(object *op, const char *message)
#define MSG_TYPE_COMMAND_SUCCESS
#define MSG_TYPE_COMMAND_ERROR
struct party_struct * next
void party_remove(partylist *party)
#define MSG_TYPE_COMMUNICATION
void party_leave(object *op)
void party_join(object *op, partylist *party)
partylist * party_form(object *op, const char *partyname)
void replace_unprintable_chars(char *buf)
void party_set_password(partylist *party, const char *password)
EXTERN player * first_player
void LOG(LogLevel logLevel, const char *format,...)
void party_obsolete_parties(void)
size_t strlcpy(char *dst, const char *src, size_t size)
#define MSG_TYPE_COMMUNICATION_PARTY