Перейти к содержанию

Запрет @alootid на определённый ID


vlitov

Рекомендуемые сообщения

убирай из дропа мобов этот айди.

делай мобов эвентными.
makeitem 20000,1,.@mapname$,.@mapx,.@mapy;

Вопрос в том, как получить Х У убитого моба.
Если знаешь, то напиши

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

он разве работает на монстров?
http://ea.dj-yhn.com/index.php?c=getmapxy

If type is 3, the search will locate the
current pet of the character who's name is given in the search string, it will
NOT locate a pet by name.
 

Ссылка на комментарий
Поделиться на другие сайты

prontera,152,161,3	script	WSAQ00_1	870,{
monster "prontera",152,162,"ОДЕРЖИМАЯ",1002,1,"WSAQ00_1::OnDS04Death"; 
end;


OnDS04Death:
getmapxy(.@mapname$,.@mapx,.@mapy,3);
mapannounce "prontera","   "+ .@mapname$ +" "+ .@mapx +" "+ .@mapy +"",3;
end;}

 

Пример кода, где система отказывается брать Х Y убитого моба.
Где я ошибся?

Ссылка на комментарий
Поделиться на другие сайты

14 часа назад, Salfer сказал:

prontera,152,161,3	script	WSAQ00_1	870,{
monster "prontera",152,162,"ОДЕРЖИМАЯ",1002,1,"WSAQ00_1::OnDS04Death"; 
end;


OnDS04Death:
getmapxy(.@mapname$,.@mapx,.@mapy,3);
mapannounce "prontera","   "+ .@mapname$ +" "+ .@mapx +" "+ .@mapy +"",3;
end;}

 

Пример кода, где система отказывается брать Х Y убитого моба.
Где я ошибся?

https://rathena.org/board/topic/65099-using-getmapxy-to-monster/

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Заходим в mob.c и находим строки :

} else if( mvp_sd && !md->state.npc_killmonster ) {
	pc_setparam(mvp_sd, SP_KILLEDRID, md->mob_id);

И далее вписываем :

Для rA :

pc_setreg(mvp_sd, add_str("@mobdead_m"), md->bl.m);
pc_setreg(mvp_sd, add_str("@mobdead_x"), md->bl.x);
pc_setreg(mvp_sd, add_str("@mobdead_y"), md->bl.y);

Для Herc соответственно :

pc_setreg(mvp_sd, script->add_str("@mobdead_m"), md->bl.m);
pc_setreg(mvp_sd, script->add_str("@mobdead_x"), md->bl.x);
pc_setreg(mvp_sd, script->add_str("@mobdead_y"), md->bl.y);

Сохраняем, компилим, и вуаля, у нас есть все необходимое.

-	script	custom_drop	-1,{
end;

OnNPCKillEvent:
	switch(killedrid) {
		default:
			break;
		case 1002:
			makeitem 20000,1,mapid2name(@mobdead_m),@mobdead_x,@mobdead_y;
			break;
	}
	end;
}

Имхо, куда легче, чем лопатить всех мобов и делать их эвентными. ^_^

Изменено пользователем Nurkz
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика