* Shinomori's method (kinda) of remote script execution with interaction.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6151 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
@@ -10856,6 +10856,7 @@ int run_func(struct script_state *st)
|
||||
int run_script_main(struct script_state *st)
|
||||
{
|
||||
int c/*,rerun_pos*/;
|
||||
struct block_list *bl;
|
||||
int cmdcount=script_config.check_cmdcount;
|
||||
int gotocount=script_config.check_gotocount;
|
||||
struct script_stack *stack=st->stack;
|
||||
@@ -10868,6 +10869,15 @@ int run_script_main(struct script_state *st)
|
||||
}
|
||||
} else {
|
||||
st->state = RUN;
|
||||
if(st->oid && st->rid && (bl = map_id2bl(st->oid))){
|
||||
if(bl->type == BL_PC){
|
||||
clif_sendfakenpc(((TBL_PC *)bl),dummy_npc_id);
|
||||
st->oid = dummy_npc_id;
|
||||
} else if(bl->type == BL_NPC){
|
||||
if(npc_checknear(((TBL_PC *)bl), bl->id))
|
||||
clif_sendfakenpc(((struct map_session_data *)bl),st->oid);
|
||||
}
|
||||
}
|
||||
}
|
||||
while( st->state == RUN) {
|
||||
c= get_com((unsigned char *) st->script,&st->pos);
|
||||
@@ -10965,8 +10975,13 @@ int run_script_main(struct script_state *st)
|
||||
{
|
||||
struct map_session_data *sd=map_id2sd(st->rid);
|
||||
st->pos=-1;
|
||||
if(sd && sd->npc_id==st->oid)
|
||||
if(sd && sd->npc_id==st->oid){
|
||||
if(sd->state.using_fake_npc){
|
||||
clif_clearchar_id(sd->npc_id, 0, sd->fd);
|
||||
sd->state.using_fake_npc = 0;
|
||||
}
|
||||
npc_event_dequeue(sd);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RERUNLINE:
|
||||
|
||||
Reference in New Issue
Block a user