summaryrefslogtreecommitdiff
path: root/src/map/script.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/script.c')
-rw-r--r--src/map/script.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 89cd5d8de..b0bc77171 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -7429,7 +7429,7 @@ int buildin_mapwarp(struct script_state *st) // Added by RoVeRT
return 0;
map_foreachinarea(buildin_areawarp_sub,
- m,x0,y0,x1,y1,BL_PC, str,x,y );
+ m,x0,y0,x1,y1,BL_PC, map_mapname2mapid(str),x,y );
return 0;
}
@@ -9038,7 +9038,7 @@ int buildin_logmes(struct script_state *st)
int buildin_summon(struct script_state *st)
{
- int _class, id;
+ int _class, id, timeout=0;
char *str,*event="";
struct map_session_data *sd;
struct mob_data *md;
@@ -9049,14 +9049,16 @@ int buildin_summon(struct script_state *st)
str =conv_str(st,& (st->stack->stack_data[st->start+2]));
_class=conv_num(st,& (st->stack->stack_data[st->start+3]));
if( st->end>st->start+4 )
- event=conv_str(st,& (st->stack->stack_data[st->start+4]));
+ timeout=conv_num(st,& (st->stack->stack_data[st->start+4]));
+ if( st->end>st->start+5 )
+ event=conv_str(st,& (st->stack->stack_data[st->start+5]));
id=mob_once_spawn(sd, "this", 0, 0, str,_class,1,event);
if((md=(struct mob_data *)map_id2bl(id))){
md->master_id=sd->bl.id;
md->special_state.ai=1;
md->mode=mob_db(md->class_)->mode|0x04;
- md->deletetimer=add_timer(tick+60000,mob_timer_delete,id,0);
+ md->deletetimer=add_timer(tick+(timeout<=0?timeout*1000:60000),mob_timer_delete,id,0);
clif_misceffect2(&md->bl,344);
}
clif_skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick);