Переглянути джерело

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7234 54d463be-8e91-2dee-dedb-b68131a5f0ec

Lance 19 роки тому
батько
коміт
a800be65ec
1 змінених файлів з 16 додано та 14 видалено
  1. 16 14
      src/map/script.c

+ 16 - 14
src/map/script.c

@@ -10706,28 +10706,30 @@ int buildin_unitwarp(struct script_state *st){
 }
 
 int buildin_unitattack(struct script_state *st) {
-	int id = 0;
+	int id = 0, actiontype = 0;
 	char *target = NULL;
-	struct mob_data *md = NULL;
 	struct map_session_data *sd = NULL;
 	struct block_list *bl = NULL, *tbl = NULL;
 	
 	id = conv_num(st, & (st->stack->stack_data[st->start+2]));
-	if(st->end > st->start + 3)
-		target = conv_str(st, & (st->stack->stack_data[st->start+3]));
+	target = conv_str(st, & (st->stack->stack_data[st->start+3]));
+	if(st->end > st->start + 4)
+		actiontype = conv_num(st, & (st->stack->stack_data[st->start+4]));
 
-	if(target){
-		sd = map_nick2sd(target);
-		if(!sd)
-			tbl = map_id2bl(atoi(target));
-		else
-			tbl = &sd->bl;
-	}
+	sd = map_nick2sd(target);
+	if(!sd)
+		tbl = map_id2bl(atoi(target));
+	else
+		tbl = &sd->bl;
 
-	if(tbl && (bl = map_id2bl(id))){
+	if((bl = map_id2bl(id))){
 		if (bl->type == BL_MOB) {
-			md->state.killer = 1;
-			md->target_id = bl->id;
+			((TBL_MOB *)bl)->state.killer = 1;
+			((TBL_MOB *)bl)->target_id = tbl->id;
+		} else if(bl->type == BL_PC){
+			clif_parse_ActionRequest_sub(((TBL_PC *)bl), actiontype > 0?0x07:0x00, tbl->id, gettick());
+			push_val(st->stack,C_INT,1);
+			return 0;
 		}
 		push_val(st->stack,C_INT,unit_walktobl(bl, tbl, 65025, 2));
 	} else {