Сразу хочу сказать что тот вариант который предлагает нло очень хорош и универсален. Я предлагаю вариант чуть попроще, но не настолько универсальный и удобный.
Для того чтоб каждый раз не менять objectid будем записывать в переменную при запуске скрипта. Брать его будем из пакета
Actoin (#$1F это для камаел и выше). В скрипт добавляем процедуру:
Код:
procedure Init; //Вызывается при включении скрипта
begin
SendMsc('Возьмите в таргет бафера');
b:=false;
end;
В главный блок добавляем условие:
Код:
if FromClient and (pck[1]=#$1F)and (not b) then
begin
a:=ReadD(2);
SendMsc('ObjectID = '+inttostr(a));
b:=true;
end;
В условие где уже диалог идет добавим and(b) чтоб если ObjectID не был определен диаог не открывался. Сами команды где ObjectID будет использоватся будут выглядеть например так:
Код:
WriteS('npc_'+inttostr(a)+'_restore mp 1');
ps: насчет тп к баферу я хз