mirror of
https://github.com/tbamud/tbamud.git
synced 2025-09-22 05:50:48 +02:00
Added room login trig types --Jamdog
This commit is contained in:
parent
e9373bb849
commit
ca675fdb67
6 changed files with 178 additions and 151 deletions
|
@ -35,6 +35,8 @@ export (QQ's a zone into a tarball)t
|
|||
Xlist (mlist, olist, rlist, zlist, slist, tlist, qlist)
|
||||
(lots of major bugfixes too)
|
||||
tbaMUD 3.59
|
||||
[Jan 31 2009] - Jamdog
|
||||
Added room login trig types, to catch players logging in to a particular room
|
||||
[Jan 29 2009] - Rumble
|
||||
Corrected zcheck MAX_OBJ_GOLD_ALLOWED to compare against Val 0, not Val 1. (thanks Tails)
|
||||
Created new MAX_OBJ_GOLD_ALLOWED define for zcheck. (thanks Tails)
|
||||
|
|
Binary file not shown.
|
@ -877,7 +877,7 @@ const char *wtrig_types[] = {
|
|||
"Cast",
|
||||
"Leave",
|
||||
"Door",
|
||||
"UNUSED",
|
||||
"Login",
|
||||
"Time",
|
||||
"\n"
|
||||
};
|
||||
|
|
|
@ -105,8 +105,9 @@
|
|||
#define WTRIG_CAST (1 << 15) /* spell cast in room */
|
||||
#define WTRIG_LEAVE (1 << 16) /* character leaves the room */
|
||||
#define WTRIG_DOOR (1 << 17) /* door manipulated in room */
|
||||
|
||||
#define WTRIG_LOGIN (1 << 18) /* character logs into MUD */
|
||||
#define WTRIG_TIME (1 << 19) /* trigger based on game hour */
|
||||
|
||||
/* obj command trigger types */
|
||||
#define OCMD_EQUIP (1 << 0) /* obj must be in char's equip */
|
||||
#define OCMD_INVEN (1 << 1) /* obj must be in char's inven */
|
||||
|
@ -260,6 +261,8 @@ void time_mtrigger(char_data *ch);
|
|||
void time_otrigger(obj_data *obj);
|
||||
void time_wtrigger(room_data *room);
|
||||
|
||||
int login_wtrigger(struct room_data *room, char_data *actor);
|
||||
|
||||
/* function prototypes from dg_scripts.c */
|
||||
ACMD(do_attach) ;
|
||||
ACMD(do_detach);
|
||||
|
|
|
@ -1237,3 +1237,22 @@ void time_wtrigger(struct room_data *room)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
int login_wtrigger(struct room_data *room, char_data *actor)
|
||||
{
|
||||
trig_data *t;
|
||||
char buf[MAX_INPUT_LENGTH];
|
||||
|
||||
if (!SCRIPT_CHECK(room, WTRIG_LOGIN))
|
||||
return 1;
|
||||
|
||||
for (t = TRIGGERS(SCRIPT(room)); t; t = t->next) {
|
||||
if (TRIGGER_CHECK(t, WTRIG_LOGIN) &&
|
||||
(rand_number(1, 100) <= GET_TRIG_NARG(t))) {
|
||||
ADD_UID_VAR(buf, t, actor, "actor", 0);
|
||||
return script_driver(&room, t, WLD_TRIGGER, TRIG_NEW);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -1181,6 +1181,9 @@ int enter_player_game (struct descriptor_data *d)
|
|||
load_result = Crash_load(d->character);
|
||||
save_char(d->character);
|
||||
|
||||
/* Check for a login trigger in the players' start room */
|
||||
login_wtrigger(&world[IN_ROOM(d->character)], d->character);
|
||||
|
||||
return load_result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue