Пользователь | Дата: Вторник, 01 Января 2013, 22:23 | Сообщение # 1 |
Некто
Группа: Обычный пользователь
Сообщений: 141
Репутация: 19
Статус: Нет на форме
| Вести ник своего персонажа в скрипте ниже, "потом выделить себя в таргет(при входе в игру не обязательно)" Если зайти в игру с включеным скриптом, то выделять себя в таргет не требуется, то есть можно держать скрипт включеным постоянно, без необходимости перезапуска, в таких случаях ID запоминается автоматически.
Если вас выделяют в таргет, то на титуле выделившего вас игрока появляется текст "смотрит на тебя" и стрелка радара показывает на этого игрока и следит за перемещениями этого игрока.
Теперь вам в чате пишутся ники тех кто вас взял в таргет.
Если написать в пати чат цифру 1, то можно увидеть список ников всех кто брал вас в таргет.
Раньше, когда игрок переключал таргет на двугова игрока, у него на титуле был знак "-" теперь у чаров на титуле ники тех кого они взяли в таргет(если ник не определен, или выделен нпс или моб то на титуле знак "-").
Добавлена кнопка "Последний таргет" - при нажатии на кнопку, в таргет выделяется последняя цель которая брала вас в таргет, если вас никто в таргет не брал, то в чат выведется надпись 'тебя пока никто в таргет не выделял'. Как получить кнопку: создаем макрос, пишем в макросе "/loc" без кавычек, имя макросу даем какое хотим, переносим макрос на панель и кнопка готова к использованию.
Код //Автор ATMS_DIFKS var oid,MID,md,xr,yr,zr,mvid,oid2,TestID,i,t,chid,stat,t2:integer; name,n,chn,nik:string; TGLOG:array[1..1000] of string; MSI:array[1..600, 1..600] of string; procedure Init; begin t:=0; mid:=0; md:=0; oid:=0; mvid:=0; TestID:=0; oid2:=0; name:='сюда ник'; //ник перса SendMsc('выдели себя'); end;
procedure SendMsc2(msg:string); begin buf:=#$4A; WriteD(0); WriteD(10); WriteS('TGR'); WriteS(msg); SendToClientEX(name); end;
procedure SendMsc(msg:string); begin buf:=#$4A; WriteD(0); WriteD(2); WriteS('TGR'); WriteS(msg); SendToClientEX(name); end;
procedure radar; begin buf:=#$EB; WriteD(0); WriteD(1); //тип радара WriteD(XR);//X WriteD(YR); //Y WriteD(ZR); //Z SendToClientEX(name); end;
begin If fromclient and (pck=hstr('AA 00 00 00 00')) and (ConnectName=name) then begin pck:=''; if oid2 > 1 then begin buf:=#$04; WriteD(oid2); WriteD(xr); WriteD(yr); WriteD(zr); WriteC(0); SendToServerEX(name); end else begin SendMsc('тебя пока никто в таргет не выделял'); end; end; If fromclient and (pck=hstr('38 30 00 00 00 03 00 00 00')) and (ConnectName=name) then begin pck:=''; SendMsc('Ник персонажа определить не удалось, потому что вы недавно включили скрипт'); SendMsc('или допустимый онлайн в зоне видимости превышает 600 человек, на что нехвалило ячеек в массиве скрипта.'); SendMsc('Или вас выделяет МОБ или НПС. Для решения проблемы нужно релогнутся или зайти в игру заново или уйти далеко в другую локацию и вернутся обратно.'); end; If fromclient and (pck=hstr('38 31 00 00 00 03 00 00 00')) and (ConnectName=name) then begin pck:=''; SendMsc2('Список всех кто выделял тебя в таргет'); for i:=1 to 1000 do begin if TGLOG[i] <> '' then SendMsc(TGLOG[i]); end; end; if FromServer and (pck[1]=#$03) and (ConnectName=name) then begin chid:=ReadD(18); chn:=ReadS(22); stat:=0; for i:=1 to 600 do begin if MSI[i,1] = chn then stat := 1; end; if stat = 0 then begin t:=t+1; MSI[t,1] := chn; MSI[t,2] := inttostr(chid); if t >= 600 then t:=0; end; end; if FromServer and (pck[1]=#$04) and (ConnectName=name) then begin n := ReadS(22); if n = name then begin mid := ReadD(18); end; end; if FromServer and (pck[1]=#$E4) and (ConnectName=name) then begin SendMsc2('Target radar работает'); SendMsc('Напишите в пати чат цифру "1" что бы посмотреть список всех кто брал вас в таргет.'); end; if FromClient and (pck[1]=#$04) and (ConnectName=name) then begin if mid = 0 then begin mid := ReadD(2); SendMsc('готово'); end; end; if FromServer and (pck[1]=#$29) and (ConnectName=name) then begin md := ReadD(6); oid := ReadD(2); if (md = mid) and (md <> oid) then begin oid2:=oid; buf:=#$CC; WriteD(oid); WriteS('[смотрит на тебя]'); SendToClientEX(name); nik:=''; for i:=1 to 600 do begin if MSI[i,2] = inttostr(oid) then nik := MSI[i,1]; end; if nik <> '' then begin SendMsc(nik+' - взял тебя в тарет'); t2:=t2+1; TGLOG[t2] := nik; if t2 >= 1000 then t2:=0; end else begin // SendMsc('ID:'+inttostr(oid)+' - взял тебя в тарет.'); // SendMsc('Для подробностей напиши в пати чат "0" без кавычек.'); end; xr := ReadD(10); yr := ReadD(14); zr := ReadD(18); radar; end; if md <> mid then begin nik:=''; for i:=1 to 600 do begin if MSI[i,2] = inttostr(md) then nik := MSI[i,1]; end; if nik <> '' then begin buf:=#$CC; WriteD(oid); WriteS('['+nik+']'); SendToClientEX(name); end else begin buf:=#$CC; WriteD(oid); WriteS('[-]'); SendToClientEX(name); end; end; end; if FromServer and (pck[1]=#$2A) and (ConnectName=name) then Begin oid := ReadD(2); buf:=#$CC; WriteD(oid); WriteS('...'); SendToClientEX(name); end; if FromServer and (pck[1]=#$01) and (ConnectName=name) then Begin mvid := ReadD(2); if mvid = oid2 then begin xr := ReadD(6); yr := ReadD(10); zr := ReadD(14); radar; end; end; end.
Да хранит вас Ctrl+S. Да убережет вас Alt+F4 от порнобанера. Админь...
|
|
|
|