I dont find my self lost too much anymore, but I found a case that stumped me, I was making a prog for one of my areas when I realised that mpoload worked on mob progs, and room progs, but it wouldnt work off of another object, could someone give me a hand with this one? (changing mpoload to work when used off an object). The mpoload code is below.
void do_mpoload( CHAR_DATA *ch, char *argument )
{
char arg1[ MAX_INPUT_LENGTH ];
char arg2[ MAX_INPUT_LENGTH ];
OBJ_INDEX_DATA *pObjIndex;
OBJ_DATA *obj;
int level;
int timer = 0;
if ( !IS_NPC( ch ) || IS_AFFECTED( ch, AFF_CHARM ))
{
send_to_char( "Huh?\n\r", ch );
return;
}
argument = one_argument( argument, arg1 );
argument = one_argument( argument, arg2 );
if ( arg1[0] == '\0' || !is_number( arg1 ) )
{
progbug( "Mpoload - Bad syntax", ch );
return;
}
if ( arg2[0] == '\0' )
level = get_trust( ch );
else
{
/*
* New feature from Alander.
*/
if ( !is_number( arg2 ) )
{
progbug( "Mpoload - Bad level syntax", ch );
return;
}
level = atoi( arg2 );
if ( level < 0 || level > get_trust( ch ) )
{
progbug( "Mpoload - Bad level", ch );
return;
}
/*
* New feature from Thoric.
*/
timer = atoi( argument );
if ( timer < 0 )
{
progbug( "Mpoload - Bad timer", ch );
return;
}
}
if ( ( pObjIndex = get_obj_index( atoi( arg1 ) ) ) == NULL )
{
progbug( "Mpoload - Bad vnum arg", ch );
return;
}
obj = create_object( pObjIndex, level );
obj->timer = timer;
if ( CAN_WEAR(obj, ITEM_TAKE) )
obj_to_char( obj, ch );
else
obj_to_room( obj, ch->in_room );
return;
}