mirror of
https://github.com/tbamud/tbamud.git
synced 2025-09-22 05:50:48 +02:00
- Removed MOBprograms, fixed trg/index a few typos and some bleeding, added ALL_PERMISSIONS, --Rumble
This commit is contained in:
parent
8508dc476a
commit
916281ecb0
14 changed files with 37 additions and 600 deletions
|
@ -1,69 +1,41 @@
|
|||
0.trg
|
||||
1.trg
|
||||
1.trg
|
||||
2.trg
|
||||
2.trg
|
||||
3.trg
|
||||
3.trg
|
||||
4.trg
|
||||
4.trg
|
||||
5.trg
|
||||
5.trg
|
||||
6.trg
|
||||
6.trg
|
||||
7.trg
|
||||
7.trg
|
||||
9.trg
|
||||
12.trg
|
||||
13.trg
|
||||
13.trg
|
||||
14.trg
|
||||
14.trg
|
||||
15.trg
|
||||
16.trg
|
||||
16.trg
|
||||
17.trg
|
||||
17.trg
|
||||
18.trg
|
||||
18.trg
|
||||
19.trg
|
||||
19.trg
|
||||
20.trg
|
||||
20.trg
|
||||
22.trg
|
||||
22.trg
|
||||
25.trg
|
||||
26.trg
|
||||
26.trg
|
||||
27.trg
|
||||
27.trg
|
||||
28.trg
|
||||
28.trg
|
||||
30.trg
|
||||
31.trg
|
||||
32.trg
|
||||
32.trg
|
||||
33.trg
|
||||
35.trg
|
||||
36.trg
|
||||
37.trg
|
||||
37.trg
|
||||
38.trg
|
||||
38.trg
|
||||
39.trg
|
||||
39.trg
|
||||
40.trg
|
||||
41.trg
|
||||
41.trg
|
||||
42.trg
|
||||
42.trg
|
||||
43.trg
|
||||
43.trg
|
||||
44.trg
|
||||
44.trg
|
||||
45.trg
|
||||
45.trg
|
||||
46.trg
|
||||
46.trg
|
||||
50.trg
|
||||
51.trg
|
||||
|
@ -71,10 +43,7 @@
|
|||
53.trg
|
||||
54.trg
|
||||
55.trg
|
||||
55.trg
|
||||
56.trg
|
||||
56.trg
|
||||
57.trg
|
||||
57.trg
|
||||
60.trg
|
||||
61.trg
|
||||
|
@ -85,245 +54,129 @@
|
|||
70.trg
|
||||
71.trg
|
||||
72.trg
|
||||
73.trg
|
||||
74.trg
|
||||
74.trg
|
||||
75.trg
|
||||
75.trg
|
||||
78.trg
|
||||
78.trg
|
||||
79.trg
|
||||
83.trg
|
||||
83.trg
|
||||
86.trg
|
||||
86.trg
|
||||
90.trg
|
||||
90.trg
|
||||
96.trg
|
||||
96.trg
|
||||
100.trg
|
||||
100.trg
|
||||
101.trg
|
||||
101.trg
|
||||
103.trg
|
||||
103.trg
|
||||
104.trg
|
||||
104.trg
|
||||
106.trg
|
||||
106.trg
|
||||
107.trg
|
||||
107.trg
|
||||
115.trg
|
||||
115.trg
|
||||
117.trg
|
||||
118.trg
|
||||
120.trg
|
||||
125.trg
|
||||
125.trg
|
||||
130.trg
|
||||
140.trg
|
||||
140.trg
|
||||
150.trg
|
||||
169.trg
|
||||
169.trg
|
||||
175.trg
|
||||
175.trg
|
||||
186.trg
|
||||
186.trg
|
||||
187.trg
|
||||
187.trg
|
||||
200.trg
|
||||
200.trg
|
||||
201.trg
|
||||
220.trg
|
||||
232.trg
|
||||
232.trg
|
||||
233.trg
|
||||
233.trg
|
||||
234.trg
|
||||
234.trg
|
||||
235.trg
|
||||
235.trg
|
||||
236.trg
|
||||
236.trg
|
||||
237.trg
|
||||
237.trg
|
||||
238.trg
|
||||
238.trg
|
||||
239.trg
|
||||
239.trg
|
||||
240.trg
|
||||
240.trg
|
||||
241.trg
|
||||
241.trg
|
||||
242.trg
|
||||
242.trg
|
||||
243.trg
|
||||
243.trg
|
||||
244.trg
|
||||
244.trg
|
||||
245.trg
|
||||
245.trg
|
||||
246.trg
|
||||
246.trg
|
||||
247.trg
|
||||
247.trg
|
||||
248.trg
|
||||
248.trg
|
||||
249.trg
|
||||
249.trg
|
||||
250.trg
|
||||
250.trg
|
||||
251.trg
|
||||
251.trg
|
||||
252.trg
|
||||
252.trg
|
||||
253.trg
|
||||
253.trg
|
||||
254.trg
|
||||
254.trg
|
||||
255.trg
|
||||
255.trg
|
||||
256.trg
|
||||
256.trg
|
||||
257.trg
|
||||
257.trg
|
||||
258.trg
|
||||
258.trg
|
||||
259.trg
|
||||
259.trg
|
||||
260.trg
|
||||
260.trg
|
||||
261.trg
|
||||
261.trg
|
||||
262.trg
|
||||
262.trg
|
||||
263.trg
|
||||
263.trg
|
||||
264.trg
|
||||
264.trg
|
||||
265.trg
|
||||
265.trg
|
||||
266.trg
|
||||
266.trg
|
||||
267.trg
|
||||
267.trg
|
||||
268.trg
|
||||
268.trg
|
||||
269.trg
|
||||
269.trg
|
||||
270.trg
|
||||
270.trg
|
||||
271.trg
|
||||
271.trg
|
||||
272.trg
|
||||
272.trg
|
||||
273.trg
|
||||
273.trg
|
||||
274.trg
|
||||
274.trg
|
||||
275.trg
|
||||
275.trg
|
||||
276.trg
|
||||
276.trg
|
||||
277.trg
|
||||
277.trg
|
||||
278.trg
|
||||
278.trg
|
||||
279.trg
|
||||
279.trg
|
||||
280.trg
|
||||
280.trg
|
||||
281.trg
|
||||
281.trg
|
||||
282.trg
|
||||
282.trg
|
||||
283.trg
|
||||
283.trg
|
||||
284.trg
|
||||
284.trg
|
||||
285.trg
|
||||
285.trg
|
||||
286.trg
|
||||
286.trg
|
||||
287.trg
|
||||
287.trg
|
||||
288.trg
|
||||
288.trg
|
||||
289.trg
|
||||
289.trg
|
||||
290.trg
|
||||
290.trg
|
||||
291.trg
|
||||
291.trg
|
||||
292.trg
|
||||
292.trg
|
||||
293.trg
|
||||
293.trg
|
||||
294.trg
|
||||
294.trg
|
||||
295.trg
|
||||
295.trg
|
||||
296.trg
|
||||
296.trg
|
||||
298.trg
|
||||
298.trg
|
||||
299.trg
|
||||
299.trg
|
||||
300.trg
|
||||
300.trg
|
||||
301.trg
|
||||
301.trg
|
||||
302.trg
|
||||
302.trg
|
||||
303.trg
|
||||
303.trg
|
||||
304.trg
|
||||
304.trg
|
||||
305.trg
|
||||
305.trg
|
||||
306.trg
|
||||
306.trg
|
||||
307.trg
|
||||
307.trg
|
||||
308.trg
|
||||
308.trg
|
||||
309.trg
|
||||
309.trg
|
||||
310.trg
|
||||
310.trg
|
||||
311.trg
|
||||
311.trg
|
||||
312.trg
|
||||
312.trg
|
||||
313.trg
|
||||
313.trg
|
||||
314.trg
|
||||
314.trg
|
||||
315.trg
|
||||
315.trg
|
||||
316.trg
|
||||
316.trg
|
||||
317.trg
|
||||
317.trg
|
||||
318.trg
|
||||
318.trg
|
||||
319.trg
|
||||
319.trg
|
||||
320.trg
|
||||
320.trg
|
||||
321.trg
|
||||
321.trg
|
||||
322.trg
|
||||
322.trg
|
||||
323.trg
|
||||
323.trg
|
||||
324.trg
|
||||
324.trg
|
||||
325.trg
|
||||
325.trg
|
||||
326.trg
|
||||
326.trg
|
||||
345.trg
|
||||
345.trg
|
||||
$
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "utils.h"
|
||||
#include "comm.h"
|
||||
|
@ -28,7 +27,6 @@ extern struct help_index_element *help_table;
|
|||
extern char *help;
|
||||
extern char *ihelp;
|
||||
extern struct time_info_data time_info;
|
||||
|
||||
extern char *credits;
|
||||
extern char *news;
|
||||
extern char *info;
|
||||
|
@ -49,6 +47,7 @@ char *title_male(int chclass, int level);
|
|||
char *title_female(int chclass, int level);
|
||||
struct time_info_data *real_time_passed(time_t t2, time_t t1);
|
||||
int compute_armor_class(struct char_data *ch);
|
||||
int has_mail(long id);
|
||||
|
||||
/* local functions */
|
||||
int sort_commands_helper(const void *a, const void *b);
|
||||
|
@ -98,7 +97,6 @@ int *cmd_sort_info;
|
|||
#define SHOW_OBJ_SHORT 1
|
||||
#define SHOW_OBJ_ACTION 2
|
||||
|
||||
|
||||
void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode)
|
||||
{
|
||||
if (!obj || !ch) {
|
||||
|
@ -170,7 +168,6 @@ void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode)
|
|||
send_to_char(ch, "\r\n");
|
||||
}
|
||||
|
||||
|
||||
void show_obj_modifiers(struct obj_data *obj, struct char_data *ch)
|
||||
{
|
||||
if (OBJ_FLAGGED(obj, ITEM_INVISIBLE))
|
||||
|
@ -189,7 +186,6 @@ void show_obj_modifiers(struct obj_data *obj, struct char_data *ch)
|
|||
send_to_char(ch, " ..It emits a faint humming sound!");
|
||||
}
|
||||
|
||||
|
||||
void list_obj_to_char(struct obj_data *list, struct char_data *ch, int mode, int show)
|
||||
{
|
||||
struct obj_data *i, *j;
|
||||
|
@ -209,9 +205,12 @@ void list_obj_to_char(struct obj_data *list, struct char_data *ch, int mode, int
|
|||
if (!strcmp(j->short_description, i->short_description))
|
||||
num++;
|
||||
if (CAN_SEE_OBJ(ch, i) && (*i->description != '.' || (IS_NPC(ch) || PRF_FLAGGED(ch, PRF_HOLYLIGHT)))) {
|
||||
if (mode == SHOW_OBJ_LONG)
|
||||
send_to_char(ch, "%s", CCGRN(ch, C_NRM));
|
||||
if (num != 1)
|
||||
send_to_char(ch, "(%2i) ", num);
|
||||
show_obj_to_char(i, ch, mode);
|
||||
send_to_char(ch, "%s", CCNRM(ch, C_NRM));
|
||||
found = TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -249,7 +248,6 @@ void diag_char_to_char(struct char_data *i, struct char_data *ch)
|
|||
send_to_char(ch, "%c%s %s\r\n", UPPER(*pers), pers + 1, diagnosis[ar_index].text);
|
||||
}
|
||||
|
||||
|
||||
void look_at_char(struct char_data *i, struct char_data *ch)
|
||||
{
|
||||
int j, found;
|
||||
|
@ -294,7 +292,6 @@ void look_at_char(struct char_data *i, struct char_data *ch)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void list_one_char(struct char_data *i, struct char_data *ch)
|
||||
{
|
||||
const char *positions[] = {
|
||||
|
@ -378,8 +375,6 @@ void list_one_char(struct char_data *i, struct char_data *ch)
|
|||
act("...$e glows with a bright light!", FALSE, i, 0, ch, TO_VICT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void list_char_to_char(struct char_data *list, struct char_data *ch)
|
||||
{
|
||||
struct char_data *i;
|
||||
|
@ -390,15 +385,16 @@ void list_char_to_char(struct char_data *list, struct char_data *ch)
|
|||
if (!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_HOLYLIGHT) &&
|
||||
IS_NPC(i) && i->player.long_descr && *i->player.long_descr == '.')
|
||||
continue;
|
||||
send_to_char(ch, "%s", CCYEL(ch, C_NRM));
|
||||
if (CAN_SEE(ch, i))
|
||||
list_one_char(i, ch);
|
||||
else if (IS_DARK(IN_ROOM(ch)) && !CAN_SEE_IN_DARK(ch) &&
|
||||
AFF_FLAGGED(i, AFF_INFRAVISION))
|
||||
send_to_char(ch, "You see a pair of glowing red eyes looking your way.\r\n");
|
||||
send_to_char(ch, "%s", CCNRM(ch, C_NRM));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void do_auto_exits(struct char_data *ch)
|
||||
{
|
||||
int door, slen = 0;
|
||||
|
@ -418,7 +414,6 @@ void do_auto_exits(struct char_data *ch)
|
|||
send_to_char(ch, "%s]%s\r\n", slen ? "" : "None!", CCNRM(ch, C_NRM));
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_exits)
|
||||
{
|
||||
int door, len = 0;
|
||||
|
@ -438,7 +433,7 @@ ACMD(do_exits)
|
|||
|
||||
len++;
|
||||
|
||||
if (GET_LEVEL(ch) >= LVL_IMMORT)
|
||||
if (PRF_FLAGGED(ch, PRF_SHOWVNUMS))
|
||||
send_to_char(ch, "%-5s - [%5d] %s\r\n", dirs[door], GET_ROOM_VNUM(EXIT(ch, door)->to_room),
|
||||
world[EXIT(ch, door)->to_room].name);
|
||||
else
|
||||
|
@ -450,8 +445,6 @@ ACMD(do_exits)
|
|||
send_to_char(ch, " None.\r\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
void look_at_room(struct char_data *ch, int ignore_brief)
|
||||
{
|
||||
struct room_data *rm = &world[IN_ROOM(ch)];
|
||||
|
@ -489,15 +482,10 @@ void look_at_room(struct char_data *ch, int ignore_brief)
|
|||
do_auto_exits(ch);
|
||||
|
||||
/* now list characters & objects */
|
||||
send_to_char(ch, "%s", CCGRN(ch, C_NRM));
|
||||
list_obj_to_char(world[IN_ROOM(ch)].contents, ch, SHOW_OBJ_LONG, FALSE);
|
||||
send_to_char(ch, "%s", CCYEL(ch, C_NRM));
|
||||
list_char_to_char(world[IN_ROOM(ch)].people, ch);
|
||||
send_to_char(ch, "%s", CCNRM(ch, C_NRM));
|
||||
}
|
||||
|
||||
|
||||
|
||||
void look_in_direction(struct char_data *ch, int dir)
|
||||
{
|
||||
if (EXIT(ch, dir)) {
|
||||
|
@ -514,8 +502,6 @@ void look_in_direction(struct char_data *ch, int dir)
|
|||
send_to_char(ch, "Nothing special there...\r\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
void look_in_obj(struct char_data *ch, char *arg)
|
||||
{
|
||||
struct obj_data *obj = NULL;
|
||||
|
@ -568,8 +554,6 @@ void look_in_obj(struct char_data *ch, char *arg)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
char *find_exdesc(char *word, struct extra_descr_data *list)
|
||||
{
|
||||
struct extra_descr_data *i;
|
||||
|
@ -581,7 +565,6 @@ char *find_exdesc(char *word, struct extra_descr_data *list)
|
|||
return (NULL);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Given the argument "look at <target>", figure out what object or char
|
||||
* matches the target. First, see if there is another char in the room
|
||||
|
@ -668,7 +651,6 @@ void look_at_target(struct char_data *ch, char *arg)
|
|||
send_to_char(ch, "You do not see that here.\r\n");
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_look)
|
||||
{
|
||||
int look_type;
|
||||
|
@ -722,8 +704,6 @@ ACMD(do_look)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
ACMD(do_examine)
|
||||
{
|
||||
struct char_data *tmp_char;
|
||||
|
@ -753,8 +733,6 @@ ACMD(do_examine)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
ACMD(do_gold)
|
||||
{
|
||||
if (GET_GOLD(ch) == 0)
|
||||
|
@ -765,7 +743,6 @@ ACMD(do_gold)
|
|||
send_to_char(ch, "You have %d gold coins.\r\n", GET_GOLD(ch));
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_score)
|
||||
{
|
||||
struct time_info_data playing_time;
|
||||
|
@ -892,7 +869,6 @@ ACMD(do_inventory)
|
|||
list_obj_to_char(ch->carrying, ch, SHOW_OBJ_SHORT, TRUE);
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_equipment)
|
||||
{
|
||||
int i, found = 0;
|
||||
|
@ -915,7 +891,6 @@ ACMD(do_equipment)
|
|||
send_to_char(ch, " Nothing.\r\n");
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_time)
|
||||
{
|
||||
const char *suf;
|
||||
|
@ -959,7 +934,6 @@ ACMD(do_time)
|
|||
day, suf, month_name[time_info.month], time_info.year);
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_weather)
|
||||
{
|
||||
const char *sky_look[] = {
|
||||
|
@ -1073,7 +1047,6 @@ ACMD(do_help)
|
|||
page_string(ch->desc, help_table[mid].entry, 0);
|
||||
}
|
||||
|
||||
|
||||
#define WHO_FORMAT \
|
||||
"Usage: who [minlev[-maxlev]] [-n name] [-c classlist] [-k] [-l] [-n] [-q] [-r] [-s] [-z]\r\n"
|
||||
|
||||
|
@ -1314,11 +1287,9 @@ ACMD(do_who)
|
|||
send_to_char(ch, "%d characters displayed.\r\n", num_can_see);
|
||||
}
|
||||
|
||||
|
||||
#define USERS_FORMAT \
|
||||
"format: users [-l minlevel[-maxlevel]] [-n name] [-h host] [-c classlist] [-o] [-p]\r\n"
|
||||
|
||||
/* BIG OL' FIXME: Rewrite it all. Similar to do_who(). */
|
||||
ACMD(do_users)
|
||||
{
|
||||
char line[200], line2[220], idletime[10], classname[20];
|
||||
|
@ -1383,7 +1354,7 @@ ACMD(do_users)
|
|||
}
|
||||
} /* end while (parser) */
|
||||
send_to_char(ch,
|
||||
"Num Class Name State Idl Login@ Site\r\n"
|
||||
"Num Class Name State Idl Login@@ Site\r\n"
|
||||
"--- ------- ------------ -------------- ----- -------- ------------------------\r\n");
|
||||
|
||||
one_argument(argument, arg);
|
||||
|
@ -1462,7 +1433,6 @@ ACMD(do_users)
|
|||
send_to_char(ch, "\r\n%d visible sockets connected.\r\n", num_can_see);
|
||||
}
|
||||
|
||||
|
||||
/* Generic page_string function for displaying text */
|
||||
ACMD(do_gen_ps)
|
||||
{
|
||||
|
@ -1520,7 +1490,6 @@ ACMD(do_gen_ps)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void perform_mortal_where(struct char_data *ch, char *arg)
|
||||
{
|
||||
struct char_data *i;
|
||||
|
@ -1554,7 +1523,6 @@ void perform_mortal_where(struct char_data *ch, char *arg)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void print_object_location(int num, struct obj_data *obj, struct char_data *ch,
|
||||
int recur)
|
||||
{
|
||||
|
@ -1580,8 +1548,6 @@ void print_object_location(int num, struct obj_data *obj, struct char_data *ch,
|
|||
send_to_char(ch, "in an unknown location\r\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
void perform_immort_where(struct char_data *ch, char *arg)
|
||||
{
|
||||
struct char_data *i;
|
||||
|
@ -1621,8 +1587,6 @@ void perform_immort_where(struct char_data *ch, char *arg)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
ACMD(do_where)
|
||||
{
|
||||
char arg[MAX_INPUT_LENGTH];
|
||||
|
@ -1635,8 +1599,6 @@ ACMD(do_where)
|
|||
perform_mortal_where(ch, arg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ACMD(do_levels)
|
||||
{
|
||||
char buf[MAX_STRING_LENGTH];
|
||||
|
@ -1677,8 +1639,6 @@ ACMD(do_levels)
|
|||
page_string(ch->desc, buf, TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ACMD(do_consider)
|
||||
{
|
||||
char buf[MAX_INPUT_LENGTH];
|
||||
|
@ -1725,8 +1685,6 @@ ACMD(do_consider)
|
|||
send_to_char(ch, "You ARE mad!\r\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
ACMD(do_diagnose)
|
||||
{
|
||||
char buf[MAX_INPUT_LENGTH];
|
||||
|
@ -2009,8 +1967,11 @@ ACMD(do_toggle)
|
|||
case SCMD_AFK:
|
||||
if ((result = PRF_TOG_CHK(ch, PRF_AFK)))
|
||||
act("$n is now away from $s keyboard.", TRUE, ch, 0, 0, TO_ROOM);
|
||||
else
|
||||
else {
|
||||
act("$n has return to $s keyboard.", TRUE, ch, 0, 0, TO_ROOM);
|
||||
if (has_mail(GET_IDNUM(ch)))
|
||||
send_to_char(ch, "You have mail waiting.\r\n");
|
||||
}
|
||||
break;
|
||||
case SCMD_WIMPY:
|
||||
if (!*arg2) {
|
||||
|
@ -2076,7 +2037,6 @@ int sort_commands_helper(const void *a, const void *b)
|
|||
complete_cmd_info[*(const int *)b].sort_as);
|
||||
}
|
||||
|
||||
|
||||
void sort_commands(void)
|
||||
{
|
||||
int a, num_of_cmds = 0;
|
||||
|
@ -2094,7 +2054,6 @@ void sort_commands(void)
|
|||
qsort(cmd_sort_info + 1, num_of_cmds - 2, sizeof(int), sort_commands_helper);
|
||||
}
|
||||
|
||||
|
||||
ACMD(do_commands)
|
||||
{
|
||||
int no, i, cmd_num;
|
||||
|
|
|
@ -836,6 +836,8 @@ void do_stat_character(struct char_data *ch, struct char_data *k)
|
|||
send_to_char(ch, ", OLC[%sAedit%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM));
|
||||
else if (GET_OLC_ZONE(k)==HEDIT_PERMISSION)
|
||||
send_to_char(ch, ", OLC[%sHedit%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM));
|
||||
else if (GET_OLC_ZONE(k) == ALL_PERMISSION)
|
||||
send_to_char(ch, ", OLC[%sAll%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM));
|
||||
else if (GET_OLC_ZONE(k)==NOWHERE)
|
||||
send_to_char(ch, ", OLC[%sOFF%s]", CCCYN(ch, C_NRM), CCNRM(ch, C_NRM));
|
||||
else
|
||||
|
@ -2160,7 +2162,7 @@ ACMD(do_wiznet)
|
|||
delete_doubledollar(argument);
|
||||
|
||||
if (!*argument) {
|
||||
send_to_char(ch, "Usage: wiznet <text> | #<level> <text> | *<emotetext> |\r\n wiznet @<level> *<emotetext> | wiz @\r\n");
|
||||
send_to_char(ch, "Usage: wiznet [ #<level> ] [<text> | *<emotetext> | @@ ]\r\n");
|
||||
return;
|
||||
}
|
||||
switch (*argument) {
|
||||
|
@ -3020,8 +3022,10 @@ int perform_set(struct char_data *ch, struct char_data *vict, int mode, char *va
|
|||
case 36: /* olc */
|
||||
if (is_abbrev(val_arg, "socials") || is_abbrev(val_arg, "actions") || is_abbrev(val_arg, "aedit"))
|
||||
GET_OLC_ZONE(vict) = AEDIT_PERMISSION;
|
||||
else if (is_abbrev(val_arg, "hedit"))
|
||||
else if (is_abbrev(val_arg, "hedit") || is_abbrev(val_arg, "help"))
|
||||
GET_OLC_ZONE(vict) = HEDIT_PERMISSION;
|
||||
else if (*val_arg == '*' || is_abbrev(val_arg, "all"))
|
||||
GET_OLC_ZONE(vict) = ALL_PERMISSION;
|
||||
else if (is_abbrev(val_arg, "off"))
|
||||
GET_OLC_ZONE(vict) = NOWHERE;
|
||||
else if (!is_number(val_arg)) {
|
||||
|
|
|
@ -53,7 +53,7 @@ ACMD(do_oasis_aedit)
|
|||
return;
|
||||
}
|
||||
|
||||
if (GET_OLC_ZONE(ch) != AEDIT_PERMISSION && GET_LEVEL(ch) < LVL_GOD) {
|
||||
if (!can_edit_zone(ch, AEDIT_PERMISSION)) {
|
||||
send_to_char(ch, "You don't have access to editing socials.\r\n");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#include "conf.h"
|
||||
#include "sysdep.h"
|
||||
|
||||
#include "structs.h"
|
||||
#include "interpreter.h" /* alias_data */
|
||||
|
||||
|
@ -24,11 +23,8 @@ cpp_extern const char *ascii_pfiles_version =
|
|||
"ASCII Player Files 3.0.1";
|
||||
|
||||
/* strings corresponding to ordinals/bitvectors in structs.h */
|
||||
|
||||
|
||||
/* (Note: strings for class definitions in class.c instead of here) */
|
||||
|
||||
|
||||
/* cardinal directions */
|
||||
const char *dirs[] =
|
||||
{
|
||||
|
@ -41,7 +37,6 @@ const char *dirs[] =
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* ROOM_x */
|
||||
const char *room_bits[] = {
|
||||
"DARK",
|
||||
|
@ -63,7 +58,6 @@ const char *room_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* EX_x */
|
||||
const char *exit_bits[] = {
|
||||
"DOOR",
|
||||
|
@ -73,7 +67,6 @@ const char *exit_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* SECT_ */
|
||||
const char *sector_types[] = {
|
||||
"Inside",
|
||||
|
@ -89,7 +82,6 @@ const char *sector_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* SEX_x
|
||||
* Not used in sprinttype() so no \n.
|
||||
|
@ -102,7 +94,6 @@ const char *genders[] =
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* POS_x */
|
||||
const char *position_types[] = {
|
||||
"Dead",
|
||||
|
@ -117,7 +108,6 @@ const char *position_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* PLR_x */
|
||||
const char *player_bits[] = {
|
||||
"KILLER",
|
||||
|
@ -145,7 +135,6 @@ const char *player_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* MOB_x */
|
||||
const char *action_bits[] = {
|
||||
"SPEC",
|
||||
|
@ -170,7 +159,6 @@ const char *action_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* PRF_x */
|
||||
const char *preference_bits[] = {
|
||||
"BRIEF",
|
||||
|
@ -207,7 +195,6 @@ const char *preference_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* AFF_x */
|
||||
const char *affected_bits[] =
|
||||
{
|
||||
|
@ -236,7 +223,6 @@ const char *affected_bits[] =
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* CON_x */
|
||||
const char *connected_types[] = {
|
||||
"Playing",
|
||||
|
@ -295,7 +281,6 @@ const char *wear_where[] = {
|
|||
"<held> "
|
||||
};
|
||||
|
||||
|
||||
/* WEAR_x - for stat */
|
||||
const char *equipment_types[] = {
|
||||
"Used as light",
|
||||
|
@ -319,7 +304,6 @@ const char *equipment_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* ITEM_x (ordinal object types) */
|
||||
const char *item_types[] = {
|
||||
"UNDEFINED",
|
||||
|
@ -349,7 +333,6 @@ const char *item_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* ITEM_WEAR_ (wear bitvector) */
|
||||
const char *wear_bits[] = {
|
||||
"TAKE",
|
||||
|
@ -370,7 +353,6 @@ const char *wear_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* ITEM_x (extra bits) */
|
||||
const char *extra_bits[] = {
|
||||
"GLOW",
|
||||
|
@ -393,7 +375,6 @@ const char *extra_bits[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* APPLY_x */
|
||||
const char *apply_types[] = {
|
||||
"NONE",
|
||||
|
@ -424,7 +405,6 @@ const char *apply_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* CONT_x */
|
||||
const char *container_bits[] = {
|
||||
"CLOSEABLE",
|
||||
|
@ -434,7 +414,6 @@ const char *container_bits[] = {
|
|||
"\n",
|
||||
};
|
||||
|
||||
|
||||
/* LIQ_x */
|
||||
const char *drinks[] =
|
||||
{
|
||||
|
@ -457,10 +436,7 @@ const char *drinks[] =
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* other constants for liquids ******************************************/
|
||||
|
||||
|
||||
/* one-word alias for each drink */
|
||||
const char *drinknames[] =
|
||||
{
|
||||
|
@ -483,7 +459,6 @@ const char *drinknames[] =
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* effect of drinks on hunger, thirst, and drunkenness -- see values.doc */
|
||||
int drink_aff[][3] = {
|
||||
{0, 1, 10},
|
||||
|
@ -504,7 +479,6 @@ int drink_aff[][3] = {
|
|||
{0, 0, 13}
|
||||
};
|
||||
|
||||
|
||||
/* color of the various drinks */
|
||||
const char *color_liquid[] =
|
||||
{
|
||||
|
@ -527,7 +501,6 @@ const char *color_liquid[] =
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* level of fullness for drink containers
|
||||
* Not used in sprinttype() so no \n.
|
||||
|
@ -540,10 +513,7 @@ const char *fullness[] =
|
|||
""
|
||||
};
|
||||
|
||||
|
||||
/* str, int, wis, dex, con applies **************************************/
|
||||
|
||||
|
||||
/* [ch] strength apply (all) */
|
||||
cpp_extern const struct str_app_type str_app[] = {
|
||||
{-5, -4, 0, 0}, /* str = 0 */
|
||||
|
@ -579,8 +549,6 @@ cpp_extern const struct str_app_type str_app[] = {
|
|||
{3, 6, 480, 30} /* str = 18/100 */
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* [dex] skill apply (thieves only) */
|
||||
cpp_extern const struct dex_skill_type dex_app_skill[] = {
|
||||
{-99, -99, -90, -99, -60}, /* dex = 0 */
|
||||
|
@ -611,8 +579,6 @@ cpp_extern const struct dex_skill_type dex_app_skill[] = {
|
|||
{25, 30, 15, 25, 25} /* dex = 25 */
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* [dex] apply (all) */
|
||||
cpp_extern const struct dex_app_type dex_app[] = {
|
||||
{-7, -7, 6}, /* dex = 0 */
|
||||
|
@ -643,8 +609,6 @@ cpp_extern const struct dex_app_type dex_app[] = {
|
|||
{5, 5, -6} /* dex = 25 */
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* [con] apply (all) */
|
||||
cpp_extern const struct con_app_type con_app[] = {
|
||||
{-4, 20}, /* con = 0 */
|
||||
|
@ -675,8 +639,6 @@ cpp_extern const struct con_app_type con_app[] = {
|
|||
{6, 99} /* con = 25 */
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* [int] apply (all) */
|
||||
cpp_extern const struct int_app_type int_app[] = {
|
||||
{3}, /* int = 0 */
|
||||
|
@ -707,7 +669,6 @@ cpp_extern const struct int_app_type int_app[] = {
|
|||
{60} /* int = 25 */
|
||||
};
|
||||
|
||||
|
||||
/* [wis] apply (all) */
|
||||
cpp_extern const struct wis_app_type wis_app[] = {
|
||||
{0}, /* wis = 0 */
|
||||
|
@ -738,14 +699,12 @@ cpp_extern const struct wis_app_type wis_app[] = {
|
|||
{7} /* wis = 25 */
|
||||
};
|
||||
|
||||
|
||||
const char *npc_class_types[] = {
|
||||
"Normal",
|
||||
"Undead",
|
||||
"\n"
|
||||
};
|
||||
|
||||
|
||||
int rev_dir[] =
|
||||
{
|
||||
2,
|
||||
|
@ -756,7 +715,6 @@ int rev_dir[] =
|
|||
4
|
||||
};
|
||||
|
||||
|
||||
int movement_loss[] =
|
||||
{
|
||||
1, /* Inside */
|
||||
|
@ -782,7 +740,6 @@ const char *weekdays[] = {
|
|||
"the Day of the Sun"
|
||||
};
|
||||
|
||||
|
||||
/* Not used in sprinttype(). */
|
||||
const char *month_name[] = {
|
||||
"Month of Winter", /* 0 */
|
||||
|
@ -829,7 +786,6 @@ const char *trig_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* obj trigger types */
|
||||
const char *otrig_types[] = {
|
||||
"Global",
|
||||
|
@ -855,7 +811,6 @@ const char *otrig_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
|
||||
/* wld trigger types */
|
||||
const char *wtrig_types[] = {
|
||||
"Global",
|
||||
|
@ -881,27 +836,6 @@ const char *wtrig_types[] = {
|
|||
"\n"
|
||||
};
|
||||
|
||||
#if defined(CONFIG_OASIS_MPROG)
|
||||
/*
|
||||
* Definitions necessary for MobProg support in OasisOLC
|
||||
*/
|
||||
const char *mobprog_types[] = {
|
||||
"INFILE",
|
||||
"ACT",
|
||||
"SPEECH",
|
||||
"RAND",
|
||||
"FIGHT",
|
||||
"DEATH",
|
||||
"HITPRCNT",
|
||||
"ENTRY",
|
||||
"GREET",
|
||||
"ALL_GREET",
|
||||
"GIVE",
|
||||
"BRIBE",
|
||||
"\n"
|
||||
};
|
||||
#endif
|
||||
|
||||
/* --- End of constants arrays. --- */
|
||||
|
||||
/*
|
||||
|
|
|
@ -38,9 +38,6 @@ extern int drink_aff[][3];
|
|||
extern const char *trig_types[];
|
||||
extern const char *otrig_types[];
|
||||
extern const char *wtrig_types[];
|
||||
#if defined(CONFIG_OASIS_MPROG)
|
||||
extern const char *mobprog_types[];
|
||||
#endif
|
||||
extern size_t room_bits_count;
|
||||
extern size_t action_bits_count;
|
||||
extern size_t affected_bits_count;
|
||||
|
|
2
src/db.c
2
src/db.c
|
@ -3279,7 +3279,7 @@ void load_default_config( void )
|
|||
CONFIG_DON_ROOM_3 = donation_room_3;
|
||||
|
||||
/****************************************************************************/
|
||||
/**eration options. **/
|
||||
/** Game operation options. **/
|
||||
/****************************************************************************/
|
||||
CONFIG_DFLT_PORT = DFLT_PORT;
|
||||
|
||||
|
|
32
src/genmob.c
32
src/genmob.c
|
@ -70,15 +70,6 @@ int add_mobile(struct char_data *mob, mob_vnum vnum)
|
|||
|
||||
log("GenOLC: add_mobile: Added mobile %d at index #%d.", vnum, found);
|
||||
|
||||
#if CONFIG_GENOLC_MOBPROG
|
||||
GET_MPROG(OLC_MOB(d)) = OLC_MPROGL(d);
|
||||
GET_MPROG_TYPE(OLC_MOB(d)) = (OLC_MPROGL(d) ? OLC_MPROGL(d)->type : 0);
|
||||
while (OLC_MPROGL(d)) {
|
||||
GET_MPROG_TYPE(OLC_MOB(d)) |= OLC_MPROGL(d)->type;
|
||||
OLC_MPROGL(d) = OLC_MPROGL(d)->next;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Update live mobile rnums.
|
||||
*/
|
||||
|
@ -313,29 +304,6 @@ int save_mobiles(zone_rnum rznum)
|
|||
return written;
|
||||
}
|
||||
|
||||
#if CONFIG_GENOLC_MOBPROG
|
||||
int write_mobile_mobprog(mob_vnum mvnum, struct char_data *mob, FILE *fd)
|
||||
{
|
||||
char wmmarg[MAX_STRING_LENGTH], wmmcom[MAX_STRING_LENGTH];
|
||||
MPROG_DATA *mob_prog;
|
||||
|
||||
for (mob_prog = GET_MPROG(mob); mob_prog; mob_prog = mob_prog->next) {
|
||||
wmmarg[MAX_STRING_LENGTH - 1] = '\0';
|
||||
wmmcom[MAX_STRING_LENGTH - 1] = '\0';
|
||||
strip_cr(strncpy(wmmarg, mob_prog->arglist, MAX_STRING_LENGTH - 1));
|
||||
strip_cr(strncpy(wmmcom, mob_prog->comlist, MAX_STRING_LENGTH - 1));
|
||||
fprintf(fd, "%s %s~\n"
|
||||
"%s%c\n",
|
||||
medit_get_mprog_type(mob_prog), wmmarg,
|
||||
wmmcom, STRING_TERMINATOR
|
||||
);
|
||||
if (mob_prog->next == NULL)
|
||||
fputs("|\n", fd);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
int write_mobile_espec(mob_vnum mvnum, struct char_data *mob, FILE *fd)
|
||||
{
|
||||
if (GET_ATTACK(mob) != 0)
|
||||
|
|
253
src/medit.c
253
src/medit.c
|
@ -26,17 +26,8 @@
|
|||
|
||||
/* external variables */
|
||||
extern struct attack_hit_type attack_hit_text[];
|
||||
#if CONFIG_OASIS_MPROG
|
||||
extern const char *mobprog_types[];
|
||||
#endif
|
||||
|
||||
/* local functions */
|
||||
#if CONFIG_OASIS_MPROG
|
||||
void medit_disp_mprog(struct descriptor_data *d);
|
||||
void medit_disp_mprog_types(struct descriptor_data *d);
|
||||
void medit_change_mprog(struct descriptor_data *d);
|
||||
const char *medit_get_mprog_type(struct mob_prog_data *mprog);
|
||||
#endif
|
||||
void medit_setup_new(struct descriptor_data *d);
|
||||
void medit_setup_existing(struct descriptor_data *d, int rmob_num);
|
||||
void init_mobile(struct char_data *mob);
|
||||
|
@ -49,12 +40,6 @@ void medit_disp_mob_flags(struct descriptor_data *d);
|
|||
void medit_disp_aff_flags(struct descriptor_data *d);
|
||||
void medit_disp_menu(struct descriptor_data *d);
|
||||
|
||||
/* handy macros */
|
||||
#if CONFIG_OASIS_MPROG
|
||||
#define GET_MPROG(mob) (mob_index[(mob)->nr].mobprogs)
|
||||
#define GET_MPROG_TYPE(mob) (mob_index[(mob)->nr].progtypes)
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------*\
|
||||
utility functions
|
||||
\*-------------------------------------------------------------------*/
|
||||
|
@ -226,10 +211,6 @@ void medit_setup_new(struct descriptor_data *d)
|
|||
GET_SDESC(mob) = strdup("the unfinished mob");
|
||||
GET_LDESC(mob) = strdup("An unfinished mob stands here.\r\n");
|
||||
GET_DDESC(mob) = strdup("It looks unfinished.\r\n");
|
||||
#if CONFIG_OASIS_MPROG
|
||||
OLC_MPROGL(d) = NULL;
|
||||
OLC_MPROG(d) = NULL;
|
||||
#endif
|
||||
SCRIPT(mob) = NULL;
|
||||
mob->proto_script = OLC_SCRIPT(d) = NULL;
|
||||
|
||||
|
@ -254,28 +235,6 @@ void medit_setup_existing(struct descriptor_data *d, int rmob_num)
|
|||
|
||||
copy_mobile(mob, mob_proto + rmob_num);
|
||||
|
||||
#if CONFIG_OASIS_MPROG
|
||||
{
|
||||
MPROG_DATA *temp;
|
||||
MPROG_DATA *head;
|
||||
|
||||
if (GET_MPROG(mob))
|
||||
CREATE(OLC_MPROGL(d), MPROG_DATA, 1);
|
||||
head = OLC_MPROGL(d);
|
||||
for (temp = GET_MPROG(mob); temp; temp = temp->next) {
|
||||
OLC_MPROGL(d)->type = temp->type;
|
||||
OLC_MPROGL(d)->arglist = strdup(temp->arglist);
|
||||
OLC_MPROGL(d)->comlist = strdup(temp->comlist);
|
||||
if (temp->next) {
|
||||
CREATE(OLC_MPROGL(d)->next, MPROG_DATA, 1);
|
||||
OLC_MPROGL(d) = OLC_MPROGL(d)->next;
|
||||
}
|
||||
}
|
||||
OLC_MPROGL(d) = head;
|
||||
OLC_MPROG(d) = OLC_MPROGL(d);
|
||||
}
|
||||
#endif
|
||||
|
||||
OLC_MOB(d) = mob;
|
||||
OLC_ITEM_TYPE(d) = MOB_TRIGGER;
|
||||
dg_olc_script_copy(d);
|
||||
|
@ -332,8 +291,6 @@ void medit_save_internally(struct descriptor_data *d)
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Update triggers */
|
||||
/* Free old proto list */
|
||||
if (mob_proto[new_rnum].proto_script &&
|
||||
|
@ -401,97 +358,6 @@ void medit_disp_positions(struct descriptor_data *d)
|
|||
write_to_output(d, "Enter position number : ");
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
|
||||
#if CONFIG_OASIS_MPROG
|
||||
/*
|
||||
* Get the type of MobProg.
|
||||
*/
|
||||
const char *medit_get_mprog_type(struct mob_prog_data *mprog)
|
||||
{
|
||||
switch (mprog->type) {
|
||||
case IN_FILE_PROG: return ">in_file_prog";
|
||||
case ACT_PROG: return ">act_prog";
|
||||
case SPEECH_PROG: return ">speech_prog";
|
||||
case RAND_PROG: return ">rand_prog";
|
||||
case FIGHT_PROG: return ">fight_prog";
|
||||
case HITPRCNT_PROG: return ">hitprcnt_prog";
|
||||
case DEATH_PROG: return ">death_prog";
|
||||
case ENTRY_PROG: return ">entry_prog";
|
||||
case GREET_PROG: return ">greet_prog";
|
||||
case ALL_GREET_PROG: return ">all_greet_prog";
|
||||
case GIVE_PROG: return ">give_prog";
|
||||
case BRIBE_PROG: return ">bribe_prog";
|
||||
}
|
||||
return ">ERROR_PROG";
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Display the MobProgs.
|
||||
*/
|
||||
void medit_disp_mprog(struct descriptor_data *d)
|
||||
{
|
||||
struct mob_prog_data *mprog = OLC_MPROGL(d);
|
||||
|
||||
OLC_MTOTAL(d) = 1;
|
||||
|
||||
clear_screen(d);
|
||||
while (mprog) {
|
||||
write_to_output(d, "%d) %s %s\r\n", OLC_MTOTAL(d), medit_get_mprog_type(mprog),
|
||||
(mprog->arglist ? mprog->arglist : "NONE"));
|
||||
OLC_MTOTAL(d)++;
|
||||
mprog = mprog->next;
|
||||
}
|
||||
write_to_output(d, "%d) Create New Mob Prog\r\n"
|
||||
"%d) Purge Mob Prog\r\n"
|
||||
"Enter number to edit [0 to exit]: ",
|
||||
OLC_MTOTAL(d), OLC_MTOTAL(d) + 1);
|
||||
OLC_MODE(d) = MEDIT_MPROG;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Change the MobProgs.
|
||||
*/
|
||||
void medit_change_mprog(struct descriptor_data *d)
|
||||
{
|
||||
clear_screen(d);
|
||||
write_to_output(d, "1) Type: %s\r\n"
|
||||
"2) Args: %s\r\n"
|
||||
"3) Commands:\r\n%s\r\n\r\n"
|
||||
"Enter number to edit [0 to exit]: ",
|
||||
medit_get_mprog_type(OLC_MPROG(d)),
|
||||
(OLC_MPROG(d)->arglist ? OLC_MPROG(d)->arglist: "NONE"),
|
||||
(OLC_MPROG(d)->comlist ? OLC_MPROG(d)->comlist : "NONE"));
|
||||
|
||||
OLC_MODE(d) = MEDIT_CHANGE_MPROG;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Change the MobProg type.
|
||||
*/
|
||||
void medit_disp_mprog_types(struct descriptor_data *d)
|
||||
{
|
||||
int i;
|
||||
|
||||
get_char_colors(d->character);
|
||||
clear_screen(d);
|
||||
|
||||
for (i = 0; i < NUM_PROGS-1; i++) {
|
||||
write_to_output(d, "%s%2d%s) %s\r\n", grn, i, nrm, mobprog_types[i]);
|
||||
}
|
||||
write_to_output(d, "Enter mob prog type : ");
|
||||
OLC_MODE(d) = MEDIT_MPROG_TYPE;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Display the gender of the mobile.
|
||||
*/
|
||||
|
@ -622,9 +488,6 @@ void medit_disp_menu(struct descriptor_data *d)
|
|||
"%sK%s) Attack : %s%s\r\n"
|
||||
"%sL%s) NPC Flags : %s%s\r\n"
|
||||
"%sM%s) AFF Flags : %s%s\r\n"
|
||||
#if CONFIG_OASIS_MPROG
|
||||
"%sP%s) Mob Progs : %s%s\r\n"
|
||||
#endif
|
||||
"%sS%s) Script : %s%s\r\n"
|
||||
"%sX%s) Delete mob\r\n"
|
||||
"%sQ%s) Quit\r\n"
|
||||
|
@ -635,9 +498,6 @@ void medit_disp_menu(struct descriptor_data *d)
|
|||
grn, nrm, yel, attack_hit_text[(int)GET_ATTACK(mob)].singular,
|
||||
grn, nrm, cyn, flags,
|
||||
grn, nrm, cyn, flag2,
|
||||
#if CONFIG_OASIS_MPROG
|
||||
grn, nrm, cyn, (OLC_MPROGL(d) ? "Set." : "Not Set."),
|
||||
#endif
|
||||
grn, nrm, cyn, OLC_SCRIPT(d) ?"Set.":"Not Set.",
|
||||
grn, nrm,
|
||||
grn, nrm
|
||||
|
@ -822,13 +682,6 @@ void medit_parse(struct descriptor_data *d, char *arg)
|
|||
write_to_output(d, "Are you sure you want to delete this mobile? ");
|
||||
OLC_MODE(d) = MEDIT_DELETE;
|
||||
return;
|
||||
#if CONFIG_OASIS_MPROG
|
||||
case 'p':
|
||||
case 'P':
|
||||
OLC_MODE(d) = MEDIT_MPROG;
|
||||
medit_disp_mprog(d);
|
||||
return;
|
||||
#endif
|
||||
case 's':
|
||||
case 'S':
|
||||
OLC_SCRIPT_EDIT_MODE(d) = SCRIPT_MAIN_MENU;
|
||||
|
@ -887,16 +740,6 @@ void medit_parse(struct descriptor_data *d, char *arg)
|
|||
mudlog(BRF, LVL_BUILDER, TRUE, "SYSERR: OLC: medit_parse(): Reached D_DESC case!");
|
||||
write_to_output(d, "Oops...\r\n");
|
||||
break;
|
||||
/*-------------------------------------------------------------------*/
|
||||
#if CONFIG_OASIS_MPROG
|
||||
case MEDIT_MPROG_COMLIST:
|
||||
/*
|
||||
* We should never get here, but if we do, bail out.
|
||||
*/
|
||||
cleanup_olc(d, CLEANUP_ALL);
|
||||
mudlog(BRF, LVL_BUILDER, TRUE, "SYSERR: OLC: medit_parse(): Reached MPROG_COMLIST case!");
|
||||
break;
|
||||
#endif
|
||||
/*-------------------------------------------------------------------*/
|
||||
case MEDIT_NPC_FLAGS:
|
||||
if ((i = atoi(arg)) <= 0)
|
||||
|
@ -917,102 +760,12 @@ void medit_parse(struct descriptor_data *d, char *arg)
|
|||
AFF_CHARM | AFF_POISON | AFF_GROUP | AFF_SLEEP);
|
||||
medit_disp_aff_flags(d);
|
||||
return;
|
||||
/*-------------------------------------------------------------------*/
|
||||
#if CONFIG_OASIS_MPROG
|
||||
case MEDIT_MPROG:
|
||||
if ((i = atoi(arg)) == 0)
|
||||
medit_disp_menu(d);
|
||||
else if (i == OLC_MTOTAL(d)) {
|
||||
struct mob_prog_data *temp;
|
||||
CREATE(temp, struct mob_prog_data, 1);
|
||||
temp->next = OLC_MPROGL(d);
|
||||
temp->type = -1;
|
||||
temp->arglist = NULL;
|
||||
temp->comlist = NULL;
|
||||
OLC_MPROG(d) = temp;
|
||||
OLC_MPROGL(d) = temp;
|
||||
OLC_MODE(d) = MEDIT_CHANGE_MPROG;
|
||||
medit_change_mprog (d);
|
||||
} else if (i < OLC_MTOTAL(d)) {
|
||||
struct mob_prog_data *temp;
|
||||
int x = 1;
|
||||
for (temp = OLC_MPROGL(d); temp && x < i; temp = temp->next)
|
||||
x++;
|
||||
OLC_MPROG(d) = temp;
|
||||
OLC_MODE(d) = MEDIT_CHANGE_MPROG;
|
||||
medit_change_mprog (d);
|
||||
} else if (i == (OLC_MTOTAL(d) + 1)) {
|
||||
write_to_output(d, "Which mob prog do you want to purge? ");
|
||||
OLC_MODE(d) = MEDIT_PURGE_MPROG;
|
||||
} else
|
||||
medit_disp_menu(d);
|
||||
return;
|
||||
|
||||
case MEDIT_PURGE_MPROG:
|
||||
if ((i = atoi(arg)) > 0 && i < OLC_MTOTAL(d)) {
|
||||
struct mob_prog_data *temp;
|
||||
int x = 1;
|
||||
|
||||
for (temp = OLC_MPROGL(d); temp && x < i; temp = temp->next)
|
||||
x++;
|
||||
OLC_MPROG(d) = temp;
|
||||
REMOVE_FROM_LIST(OLC_MPROG(d), OLC_MPROGL(d), next);
|
||||
free(OLC_MPROG(d)->arglist);
|
||||
free(OLC_MPROG(d)->comlist);
|
||||
free(OLC_MPROG(d));
|
||||
OLC_MPROG(d) = NULL;
|
||||
OLC_VAL(d) = 1;
|
||||
}
|
||||
medit_disp_mprog(d);
|
||||
return;
|
||||
|
||||
case MEDIT_CHANGE_MPROG:
|
||||
if ((i = atoi(arg)) == 1)
|
||||
medit_disp_mprog_types(d);
|
||||
else if (i == 2) {
|
||||
write_to_output(d, "Enter new arg list: ");
|
||||
OLC_MODE(d) = MEDIT_MPROG_ARGS;
|
||||
} else if (i == 3) {
|
||||
write_to_output(d, "Enter new mob prog commands:\r\n");
|
||||
/*
|
||||
* Pass control to modify.c for typing.
|
||||
*/
|
||||
OLC_MODE(d) = MEDIT_MPROG_COMLIST;
|
||||
if (OLC_MPROG(d)->comlist) {
|
||||
write_to_output(d, "%s", OLC_MPROG(d)->comlist);
|
||||
oldtext = strdup(OLC_MPROG(d)->comlist);
|
||||
}
|
||||
string_write(d, &OLC_MPROG(d)->comlist, MAX_STRING_LENGTH, 0, oldtext);
|
||||
OLC_VAL(d) = 1;
|
||||
} else
|
||||
medit_disp_mprog(d);
|
||||
return;
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
|
||||
/*
|
||||
* Numerical responses.
|
||||
*/
|
||||
|
||||
#if CONFIG_OASIS_MPROG
|
||||
case MEDIT_MPROG_TYPE:
|
||||
/*
|
||||
* This calculation may be off by one too many powers of 2?
|
||||
* Someone who actually uses MobProgs will have to check.
|
||||
*/
|
||||
OLC_MPROG(d)->type = (1 << LIMIT(atoi(arg), 0, NUM_PROGS - 1));
|
||||
OLC_VAL(d) = 1;
|
||||
medit_change_mprog(d);
|
||||
return;
|
||||
|
||||
case MEDIT_MPROG_ARGS:
|
||||
OLC_MPROG(d)->arglist = strdup(arg);
|
||||
OLC_VAL(d) = 1;
|
||||
medit_change_mprog(d);
|
||||
return;
|
||||
#endif
|
||||
|
||||
case MEDIT_SEX:
|
||||
GET_SEX(OLC_MOB(d)) = LIMIT(i, 0, NUM_GENDERS - 1);
|
||||
break;
|
||||
|
@ -1134,12 +887,6 @@ void medit_string_cleanup(struct descriptor_data *d, int terminator)
|
|||
{
|
||||
switch (OLC_MODE(d)) {
|
||||
|
||||
#if CONFIG_OASIS_MPROG
|
||||
case MEDIT_MPROG_COMLIST:
|
||||
medit_change_mprog(d);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case MEDIT_D_DESC:
|
||||
default:
|
||||
medit_disp_menu(d);
|
||||
|
|
|
@ -394,7 +394,13 @@ int can_edit_zone(struct char_data *ch, zone_rnum rnum)
|
|||
if (!ch->desc || IS_NPC(ch) || rnum == NOWHERE)
|
||||
return FALSE;
|
||||
|
||||
if (rnum == HEDIT_PERMISSION)
|
||||
if (GET_OLC_ZONE(ch) == ALL_PERMISSION)
|
||||
return TRUE;
|
||||
|
||||
if (GET_OLC_ZONE(ch) == HEDIT_PERMISSION && rnum == HEDIT_PERMISSION)
|
||||
return TRUE;
|
||||
|
||||
if (GET_OLC_ZONE(ch) == AEDIT_PERMISSION && rnum == AEDIT_PERMISSION)
|
||||
return TRUE;
|
||||
|
||||
/* always access if ch is high enough level */
|
||||
|
|
39
src/oasis.h
39
src/oasis.h
|
@ -16,18 +16,7 @@
|
|||
|
||||
#define AEDIT_PERMISSION 999 /* arbitrary number higher than max zone vnum*/
|
||||
#define HEDIT_PERMISSION 888 /* arbitrary number higher then max zone vnum*/
|
||||
|
||||
/*
|
||||
* Set this to 1 to enable MobProg support. MobProgs are available on
|
||||
* the CircleMUD FTP site in the "contrib/scripting/" directory.
|
||||
*
|
||||
* -- THIS WILL NOT WORK WITHOUT MobProgs INSTALLED. --
|
||||
* -- OasisOLC DOES NOT COME WITH THEM. -- Loud enough for you?
|
||||
*
|
||||
* It might work with DG Scripts (successor to MobProgs) but I haven't
|
||||
* tried, nor have I heard of anyone trying.
|
||||
*/
|
||||
#define CONFIG_OASIS_MPROG 0
|
||||
#define ALL_PERMISSION 666 /* arbitrary number higher then max zone vnum*/
|
||||
|
||||
/*
|
||||
* Macros, defines, structs and globals for the OLC suite. You will need
|
||||
|
@ -52,13 +41,6 @@
|
|||
#define NUM_SHOP_FLAGS 3
|
||||
#define NUM_TRADERS 7
|
||||
|
||||
#if CONFIG_OASIS_MPROG
|
||||
/*
|
||||
* Define this to how many MobProg scripts you have.
|
||||
*/
|
||||
#define NUM_PROGS 12
|
||||
#endif
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
|
@ -136,11 +118,6 @@ struct oasis_olc_data {
|
|||
struct shop_data *shop; /* used for 'sedit' */
|
||||
struct config_data *config; /* used for 'cedit' */
|
||||
struct extra_descr_data *desc; /* used in '[r|o|m]edit' */
|
||||
#if CONFIG_OASIS_MPROG /* */
|
||||
int total_mprogs; /* */
|
||||
struct mob_prog_data *mprog; /* */
|
||||
struct mob_prog_data *mprogl; /* */
|
||||
#endif
|
||||
struct social_messg *action; /* Aedit uses this one */
|
||||
struct trig_data *trig;
|
||||
int script_mode;
|
||||
|
@ -174,12 +151,6 @@ extern const char *nrm, *grn, *cyn, *yel;
|
|||
#define OLC_CONFIG(d) (OLC(d)->config) /* Config structure. */
|
||||
#define OLC_TRIG(d) (OLC(d)->trig) /* Trigger structure. */
|
||||
|
||||
#if CONFIG_OASIS_MPROG
|
||||
#define OLC_MPROG(d) (OLC(d)->mprog) /* Temporary MobProg. */
|
||||
#define OLC_MPROGL(d) (OLC(d)->mprogl) /* MobProg list. */
|
||||
#define OLC_MTOTAL(d) (OLC(d)->total_mprogs) /* Total mprog number. */
|
||||
#endif
|
||||
|
||||
#define OLC_ACTION(d) (OLC(d)->action) /* Action structure */
|
||||
#define OLC_HELP(d) (OLC(d)->help) /* Hedit structure */
|
||||
|
||||
|
@ -326,14 +297,6 @@ extern const char *nrm, *grn, *cyn, *yel;
|
|||
#define MEDIT_LEVEL 25
|
||||
#define MEDIT_ALIGNMENT 26
|
||||
#define MEDIT_DELETE 27
|
||||
#if CONFIG_OASIS_MPROG
|
||||
#define MEDIT_MPROG 27
|
||||
#define MEDIT_CHANGE_MPROG 28
|
||||
#define MEDIT_MPROG_COMLIST 29
|
||||
#define MEDIT_MPROG_ARGS 30
|
||||
#define MEDIT_MPROG_TYPE 31
|
||||
#define MEDIT_PURGE_MPROG 32
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Submodes of SEDIT connectedness.
|
||||
|
|
|
@ -69,7 +69,12 @@ ACMD(do_oasis_list)
|
|||
case SCMD_OASIS_RLIST: list_rooms(ch, rzone, vmin, vmax); break;
|
||||
case SCMD_OASIS_TLIST: list_triggers(ch, rzone, vmin, vmax); break;
|
||||
case SCMD_OASIS_SLIST: list_shops(ch, rzone, vmin, vmax); break;
|
||||
case SCMD_OASIS_ZLIST: list_zones(ch, rzone, vmin, vmax); break;
|
||||
case SCMD_OASIS_ZLIST:
|
||||
if (!*smin)
|
||||
list_zones(ch, NOWHERE, 0, zone_table[top_of_zone_table].number);
|
||||
else
|
||||
list_zones(ch, rzone, vmin, vmax);
|
||||
break;
|
||||
default:
|
||||
send_to_char(ch, "You can't list that!\r\n");
|
||||
mudlog(BRF, LVL_IMMORT, TRUE,
|
||||
|
|
|
@ -486,11 +486,12 @@ void save_char(struct char_data * ch)
|
|||
/* Unaffect everything a character can be affected by */
|
||||
|
||||
for (i = 0; i < NUM_WEARS; i++) {
|
||||
if (GET_EQ(ch, i))
|
||||
if (GET_EQ(ch, i)) {
|
||||
char_eq[i] = unequip_char(ch, i);
|
||||
#ifndef NO_EXTRANEOUS_TRIGGERS
|
||||
remove_otrigger(char_eq[i], ch);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
char_eq[i] = NULL;
|
||||
}
|
||||
|
|
|
@ -529,7 +529,7 @@
|
|||
#define MAX_HELP_KEYWORDS 256
|
||||
#define MAX_HELP_ENTRY MAX_STRING_LENGTH
|
||||
|
||||
/* define the largest set of commands for as trigger */
|
||||
/* define the largest set of commands for a trigger */
|
||||
#define MAX_CMD_LENGTH 16384 /* 16k should be plenty and then some */
|
||||
|
||||
/**********************************************************************
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue