Go to the documentation of this file.
38 free(
pl->stack_items);
39 pl->stack_position = 0;
41 info =
pl->spell_state;
47 if (
pl->unarmed_skill)
50 for (uint8_t db = 0; db <
pl->delayed_buffers_allocated; db++) {
51 free(
pl->delayed_buffers[db]);
54 pl->delayed_buffers_allocated = 0;
55 pl->delayed_buffers_used = 0;
56 if (
pl->last_exit != NULL) {
72 while (prev != NULL && prev->
next != NULL && prev->
next !=
pl)
74 if (!prev || prev->
next !=
pl) {
75 LOG(
llevError,
"Free_player: Can't find previous player.\n");
126 &&
op->arch->clone.race != NULL
127 && strcmp(
op->arch->clone.race,
"dragon") == 0)
159 info->
next =
pl->spell_state;
161 pl->spell_state = info;
204 snprintf(
pl->title,
sizeof(
pl->title),
"%s hatchling", attack);
206 snprintf(
pl->title,
sizeof(
pl->title),
"%s wyrm", attack);
208 snprintf(
pl->title,
sizeof(
pl->title),
"%s wyvern", attack);
210 snprintf(
pl->title,
sizeof(
pl->title),
"%s dragon", attack);
212 else if (skin_resist > 80)
213 snprintf(
pl->title,
sizeof(
pl->title),
"legendary %s dragon", attack);
214 else if (skin_resist > 50)
215 snprintf(
pl->title,
sizeof(
pl->title),
"ancient %s dragon", attack);
217 snprintf(
pl->title,
sizeof(
pl->title),
"big %s dragon", attack);
218 pl->own_title[0] =
'\0';
233 if (
pl->own_title[0] ==
'\0')
234 snprintf(
buf, bufsize,
"the %s",
pl->title);
248 return pl->own_title[0] !=
'\0';
261 return pl->own_title;
292 if (
op->contr->last_skill_ob[
skill] == NULL) {
295 op->contr->last_skill_exp[
skill] = -1;
#define FREE_OBJ_NO_DESTROY_CALLBACK
void LOG(LogLevel logLevel, const char *format,...)
#define QUERY_FLAG(xyz, p)
struct client_spell * next
void player_set_own_title(struct player *pl, const char *title)
int player_has_own_title(const struct player *pl)
void object_free_drop_inventory(object *ob)
object * object_find_by_name(const object *who, const char *name)
bool is_criminal(object *op)
void commit_crime(object *op, const char *description)
spell prayer lvl t sp speed range duration short description
with a maximum of six This is not so if you are wearing plate you receive no benefit Armour is additive with all the supplementry forms of which means that it lasts until the next semi permanent spell effect is cast upon the character spell
void object_free(object *ob, int flags)
size_t strlcpy(char *dst, const char *src, size_t size)
int is_wraith_pl(object *op)
#define FREE_AND_CLEAR_STR(xyz)
void fatal(enum fatal_error err)
client_spell * get_client_spell_state(player *pl, object *spell)
#define FREE_AND_CLEAR(xyz)
int is_dragon_pl(const object *op)
void object_set_msg(object *op, const char *msg)
Install Bug reporting Credits but rather whatever guild name you are using *With the current map and server there are three they and GreenGoblin *Whatever name you give the folder should but it will still use GUILD_TEMPLATE *You can change what guild it uses by editing the map files Modify Map or objects if you want to use the optional Python based Guild Storage hall The first three are on the main the next two are in the guild_hq and the final one is in hallofjoining Withe the Storage three objects are found on the main floor and the last two are in the basement It s not that but you will need a map editor You find the object that has the click edit and change the line script options(which currently is "GUILD_TEMPALTE") to the guild you wish to use. And make sure you use the same one for all of them or it won 't work. Here 's a quick HOWTO for using the map editor to make these changes edit the mainfloor map exit(x15, y29 - set to/Edit/This/Exit/Path in the template) back to the world map as well. If you are using the Storage Hall map(storage_hall)
object * add_force(object *op, const char *name, int duration)
int atnr_is_dragon_enabled(int attacknr)
object * find_force(object *op, const char *name)
void player_set_dragon_title(player *pl, int level, const char *attack, int skin_resist)
void object_remove(object *op)
int is_old_wraith_pl(object *op)
const char * player_get_own_title(const struct player *pl)
void clear_player(player *pl)
void link_player_skills(object *op)
#define FOR_INV_PREPARE(op_, it_)
void free_player(player *pl)
void replace_unprintable_chars(char *buf)
void player_get_title(const player *pl, char *buf, size_t bufsize)