Для этого делаем следующее: открой файл src/map/script.c, найди функцию 'summon' и добавь в конце перед 'return 0;' script_pushint(st, md->bl.id); Это будет выглядеть так: BUILDIN_FUNC(summon) { int _class, timeout=0; const char *str,*event=""; TBL_PC *sd; struct mob_data *md; int tick = gettick(); sd=script_rid2sd(st); if (!sd) return 0; str =script_getstr(st,2); _class=script_getnum(st,3); if( script_hasdata(st,4) ) timeout=script_getnum(st,4); if( script_hasdata(st,5) ){ event=script_getstr(st,5); check_event(st, event); } clif_skill_poseffect(&sd->bl,AM_CALLHOMUN,1,sd->bl.x,sd->bl.y,tick); md = mob_once_spawn_sub(&sd->bl, sd->bl.m, sd->bl.x, sd->bl.y, str, _class, event); if (md) { md->master_id=sd->bl.id; md->special_state.ai=1; if( md->deletetimer != INVALID_TIMER ) delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = add_timer(tick+(timeout>0?timeout*1000:60000),mob_timer_delete,md->bl.id,0); mob_spawn (md); //Now it is ready for spawning. clif_specialeffect(&md->bl,344,AREA); sc_start4(&md->bl, SC_MODECHANGE, 100, 1, 0, MD_AGGRESSIVE, 0, 60000); } script_pushint(st, md->bl.id); // <<< Это добавили return 0; } Далее рекомпилируешь сервер, теперь вместо summon "Помошник["+strcharinfo(0)+"]",@supp,1800000; пишешь setd ".Mob"+getcharid(0),summon("Помошник["+strcharinfo(0)+"]",@supp,1800000); На локации с вое ставишь мапфлаг loadevent, пример: prtg_cas03 mapflag loadevent В сам скрипт функции 'support' дописываешь: OnPCLoadMapEvent: getmapxy(@map$,@x,@y,0); if(@map$ == "prtg_cas03" && (agitcheck() || agitcheck2())){ dispbottom "Извините, но на Войне за Империум нельзя пользоваться помощником"; unitkill getd(".Mob"+getcharid(0)); set called,0; getitem 14345,1; } end; Думаю суть ясна. P.S. а вообще рекомендую использовать 11 тип предмета, чтобы каждый раз не давать игроку предмет, проверка и так стоит.