OneFinal 90 Опубликовано 12 февраля, 2022 Жалоба Поделиться Опубликовано 12 февраля, 2022 Выкладываю допиленный Multi_Interlude.fsc Новые плюшки Html Парсинг, нумеруем строки Кастомные команды .exp on .exp off /unstuck из скриптов Команда .tele парсинг телепортов из ALT+B Фикс /invite теперь валкер отправляет инвайт даже если персонажа нет в зоне видимости Реализовал автопринятие пати если персонажа нет в зоне видимости Автоматическое использование сосок как в клиенте Фикс бесконечного использования Death Penalty Реализована функция покупки из .buy в L2Walker Установка Заменить Multi_Interlude.fsc на новый в папке l2walker\WPF\wpsc Как использовать автопринятие в пати Как и раньше Просто вписывайте ники в стандартный интерфейс L2Walker вкладка Party Settings > Auto Accept Invites:Name Теперь работает когда персонаж вне зоны видимости (Спасибо @AIMBOT за наводку) Пример использования команды .tele Quote SAY(.tele) delay(1000) DLGSEL([ Города \ Деревни ]) DELAY(1000) DLGSEL([ Giran ]) DELAY(1000) DLGSEL(Broadcasting Tower / Center) Expand Пример использования /unstuck Quote SAY(/unstuck) Пример использования автоматических сосок .autoss ssd 1 - включит Soulshot (D-grade) .autoss ssd 0 - выключит Soulshot (D-grade) .autoss bssd 1 - Blessed Spiritshot (D-grade) .autoss bssd 0 - Blessed Spiritshot (D-grade) .autoss ssc 1 - включит Soulshot (C-grade) .autoss ssc 0 - выключит Soulshot (C-grade) .autoss bssc 1 - Blessed Spiritshot (C-grade) .autoss bssc 0 - Blessed Spiritshot (C-grade) Весь перечень ssn ssd ssc ssb ssa sss bssn bssd bssc bssb bsss 1 включить 0 выключить Пример использования автоматической покупки Quote SAY(.buy)delay(500)SAY(buy 40 1) 40 - порядок итема из окна .buy 1 - количество команда buy 1 5 купит 5 банок маны команда buy 40 1 купит 1 свиток пинальки S грейда Скачать Multi_Interlude.fsc версия 1.5 https://drive.google.com/file/d/13bB4gWN_58fi44u2V22yRPXEOcvuBp4q/view?usp=sharing Quote //Скрипт для Interlude //Allcheats.ru //Переделал Fallen.EnVy (Адаптированный скрипт BuuG_T - AntiAnti_Bot) + Fix HPCPMP //В этом скрипте есть(Скрипт под IT): //1. Fix Move //2. Анти Packet Error. //3. RequestGMList //4. RequestManorList //5. RequestMagicSkillUse //6. GG //7. HPMPCP //8. Fixawalk2 //9. Html Парсинг, нумеруем строки by OneFinal //10. Кастомные команды .exp on .exp off by OneFinal //11. /unstuck из скриптов by OneFinal //12. Команда .tele парсинг телепортов из альтб by OneFinal //13. Фикс /invite теперь валкер отправляет инвайт даже если персонажа нет в зоне видимости by OneFinal //14. Реализовал автопринятие пати если персонажа нет в зоне видимости by OneFinal //15. Автоматическое включение соулшотов\блес шотов .autoss bsss 1 (ssn ssd ssc ssb ssa sss bssn bssd bssc bssb bsss) 1 включить 0 выключить by OneFinal //16. Fix DeathPenalty Scrolls //17. Покупка итемов из .buy Комманда buy 1 5 купит 5 банок маны команда buy 40 1 купит 1 свиток пинальки S грейда //Пример использования //SAY(.buy) //delay(500) //SAY(buy 40 1) const ProtocolVersion = 746; var buf,buf_EW,PName,txt,StatusPacket,data,value,action,out,msg,charname,forder,invitename,settings,invitorname,autosstext,bbsText,sayText: string; ID,idHtml,CR,packetID,PObjectID,PMaxHP,PCurHP,PMaxMP,PCurMP,PMaxCP,PCurCP,selfOID,ToX,ToY,ToZ,oX,oY,oZ,i,butn,val,act,c,ObjectID,textTyp,settings1,ssID,autossaction,bbsSendPos,bbsModeFile,itemID,itemCount: Integer; normlink,lowlink: TStringList; procedure OnCreate; begin forder :=_gScriptDir; scripttimeout(99999); normlink:=TstringList.create; lowlink:=TstringList.create; end; Procedure OnDestroy; begin normlink.free; lowlink.free; end; procedure BBSHtmlMessage(bf:string); var value,action,out:string=''; i,butn,val,act,id,c:integer=0; s:integer=1; begin ScanPck5(bf, 259, 'sssss', null, data, null, null,null); bbsSendPos := StrToInt(copy(data,1,3)); if bbsSendPos = 101 then bbsText := ''; if length(data) > 200 then bbsText := bbsText+data; if (bbsSendPos = 103) OR (bbsSendPos = 0) then begin repeat butn:=pos('<button',bbsText); if (butn=0) then break; if butn > 0 then begin delete(bbsText,1,butn-1); val:=pos('value="',bbsText); act:=pos('action="',bbsText); if val>act then begin delete(bbsText,1,act+7); c:=pos('"',bbsText); action:=copy(bbsText,1,c-1); val:=pos('value="',bbsText); delete(bbsText,1,val+6); c:=pos('"',bbsText); value:=copy(bbsText,1,c-1); end else begin delete(bbsText,1,val+6); c:=pos('"',bbsText); value:=copy(bbsText,1,c-1); act:=pos('action="',bbsText); delete(bbsText,1,act+7); c:=pos('"',bbsText); action:=copy(bbsText,1,c-1); end; c:=pos('>',bbsText); delete(bbsText,1,c); out:=out+' <a action="'+action+'">'+value+'</a><br> '; inc(i); end until i>100; out:=trim(out); gSys.EnSendC(formatpck('%cds',[#$0f,1,'<html><body>'+out+'</body></html>'+#0])); bbsText:=''; end; end; procedure NpcHtmlMessage(bf:string); var value,action,txt,txt2,out,link:string=''; i,alink,butn,val,val2,act,id,c:integer=0; s:integer=1; begin scanpck5(bf,3,'cds',null,ID,txt,null,null); txt2:=txt; lowercase(txt2); repeat if length(bf) > 8000 then break; alink:=pos('<a',txt2); if alink=0 then break; out:=out+copy(txt2,1,alink-1); delete(txt2,1,alink-1); act:=pos('action="',txt2); delete(txt2,1,act+7); c:=pos('"',txt2); action:=copy(txt2,1,c-1); val:=pos('">',txt2); delete(txt2,1,val+1); val2:=pos('</a>',txt2); value:=copy(txt2,1,val2-1); c:=pos('>',txt2); delete(txt2,1,c); out:=out+' <a action="'+action+'">'+IntToStr(s)+' '+value+'</a> '; inc(i); inc(s); until i>200; out:=trim(out+txt2); case cr of 1:_gOutBuff:=formatpck('%cds',[#$0f,id,out+#0]); 2:_gOutBuff:=formatpck('%cds',[#$19,id,out+#0]); end; i:=0; repeat c:=pos('bypass -h',txt); if c=0 then break; deletestr(txt,1,c+9); c:=pos('"',txt); link:=copy(txt,1,c-1); normlink.add(link); lowlink.add(lowercase(link)); until c=0; end; procedure RequestBypassToServer(bf:string); var link:string; k:integer; begin scanpck5(bf,3,'cs',null,link,null,null,null); if length(bf) > 8000 then break; k:=lowlink.indexof(trim(lowercase(link))); if k=-1 then exit; case cr of 1:_gOutBuff:=FormatPck('%cs',[#$21,normlink[k]+#0]); 2:_gOutBuff:=FormatPck('%cs',[#$23,normlink[k]+#0]); end; end; BEGIN // Anti Packet Error. if length(_gBuff) < 3 then gBlockPacket; // RequestGMList if (not _gFromServ) and StrCmp( copy(_gBuff,1,3), HStr('03 00 81') ) then gBlockPacket; if (not _gFromServ) and StrCmp( copy(_gBuff,1,3), HStr('03 00 8B') ) then gBlockPacket; if (_gFromServ) AND (StrCmp( copy(_gBuff,3,1), HStr('39'))) then begin ScanPck5(_gBuff, 1, 'chs',null,null, invitorname, null, null); gSys.EnSendC( FormatPck( '%cdddddsd', [$03,1,1,1,0,99999,invitorname,1]) ); end; if (StrCmp( copy(_gBuff,3,1), HStr('2A'))) then begin gSys.EnSendC( FormatPck( '%cdd', [$12,99999,0]) ); end; if (not _gFromServ) and StrCmp( copy(_gBuff,4,16), HStr('2F 00 69 00 6E 00 76 00 69 00 74 00 65 00 20 00') ) then begin ScanPck5(_gBuff, 4, 'ddss',ObjectID, textTyp, invitename, msg, null); c:=pos(' ',invitename); delete(invitename,1,c); _gOutBuff:=FormatPck('%csd',[$29,invitename+#0,0]); end; if StrCmp( copy(_gBuff,5,3), HStr('62 00 79') ) then begin BBSHtmlMessage(_gBuff); gBlockPacket; end; begin if not _gFromServ then if StrCmp(_gBuff, HStr('1300382E00740065006C006500000000000000')) then _gOutBuff := HStr('1300215F006200620073006C006F0063000000'); end; begin if not _gFromServ then if StrCmp(_gBuff, HStr('19 00 38 2F 00 75 00 6E 00 73 00 74 00 75 00 63 00 6B 00 00 00 00 00 00 00')) then _gOutBuff := HStr('07 00 AA 34 00 00 00'); end; begin if not _gFromServ then if StrCmp( copy(_gBuff,3,1), HStr('38') ) then ScanPck5(_gBuff, 1, 'hcsd',null,null,sayText,null,null); sayText := trim(sayText); writelog(sayText); if StrCmp(trim(copy(sayText,1,3)),'buy') then begin delete(sayText,1,4); itemID := StrToInt(trim(copy(sayText,1,pos(' ',sayText)-1))); delete(sayText,1,pos(' ',sayText)); itemCount := StrToInt(sayText); sayText :=''; if (itemID > 0) and (itemCount > 0) then begin gSys.EnSendS(formatPck('%cddd',[$A7,99999991,itemID,itemCount])); gBlockPacket; end; end; end; //On Off Exp command .exp on .exp off begin if not _gFromServ then if StrCmp(_gBuff, HStr('19 00 38 2E 00 65 00 78 00 70 00 20 00 6F 00 6600 66 00 00 00 00 00 00 00')) then _gOutBuff := HStr('25 00 21 75 00 73 00 65 00 72 00 5F 00 6D 00 6500 6E 00 75 00 20 00 6E 00 6F 00 65 00 20 00 6F00 66 00 00 00'); end; begin if not _gFromServ then if StrCmp(_gBuff, HStr('1700382E0065007800700020006F006E00000000000000')) then _gOutBuff := HStr('25 00 21 75 00 73 00 65 00 72 00 5F 00 6D 00 6500 6E 00 75 00 20 00 6E 00 6F 00 65 00 20 00 6F00 6E 00 00 00'); end; if (pos(HStr('2E 00 61 00 75 00 74 00 6F 00 73 00 73'),_gBuff) > 0) and (not _gFromServ) then begin ScanPck5(_gBuff, 4, 'ddss', null, null, autosstext, null, null); c :=pos(' ',autosstext); delete(autosstext,1,c); c :=pos(' ',autosstext); autossaction := StrToInt(trim(copy(autosstext,c,length(autosstext)))); delete(autosstext,c,length(autosstext)); ssID := 0; if trim(autosstext) = 'bssn' then ssID := 3947; if trim(autosstext) = 'bssd' then ssID := 3948; if trim(autosstext) = 'bssc' then ssID := 3949; if trim(autosstext) = 'bssb' then ssID := 3950; if trim(autosstext) = 'bssa' then ssID := 3951; if trim(autosstext) = 'bsss' then ssID := 3952; if trim(autosstext) = 'ssn' then ssID := 1835; if trim(autosstext) = 'ssd' then ssID := 1463; if trim(autosstext) = 'ssc' then ssID := 1464; if trim(autosstext) = 'ssb' then ssID := 1465; if trim(autosstext) = 'ssa' then ssID := 1466; if trim(autosstext) = 'sss' then ssID := 1467; if (ssID > 0) AND ((autossaction = 1) OR (autossaction = 0)) then _gOutBuff:=FormatPck('%chdd',[$D0,5,ssID,autossaction]); end; if cr<0 then exit; idHtml:=gint(_gBuff,3,1); if _gAbsNumPkt<5 then if (pos(HStr('05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52'),_gBuff) > 0) and (cr=0) then if gint(_gBuff,4,4)>=828 then CR:=2 else CR:=1; if (cr=0) and (_gAbsNumPkt>=5) then cr:=-1; if (cr=1) then case idHtml of $0F:if _gFromserv then NpcHtmlMessage(_gBuff); $21:if not _gFromServ then RequestBypassToServer(_gBuff); end; if (cr=2) then case idHtml of $19: if _gFromserv then NpcHtmlMessage(_gBuff); $23: if not _gFromServ then RequestBypassToServer(_gBuff); end; // MoveBackwardToLocation begin if gSys.TrafType <> 2 then exit; if not( gSys.isGS > 0 ) then exit; if ( length( _gBuff ) < 3 ) or ( gInt( _gBuff, 1, 2 ) = 2 ) then begin gBlockPacket; exit; end else ID := gInt( _gBuff, 3, 1 ); if (_gAbsNumPkt = 1) then begin packetID := $0; if (ID = $0E) then begin gSys.EnSendC( FormatPck( '%cddss', [$4A,0,$0A,#0,'==> FixMove. Kamael+ mode'+#0] ) ); packetID := $0F; end; if (ID = $00) then begin gSys.EnSendC( FormatPck( '%cddss', [$4A,0,$0A,#0,'==> FixMove. C4 mode'+#0] ) ); packetID := $01; end; if (packetID = 0) then gSys.EnSendC( FormatPck( '%cddss', [$4A,0,$0A,#0,'==> FixMove. Unknown protocol version'+#0] ) ); end; if (packetID = 0) then Exit; if ( not _gFromServ ) and ( ID = packetID ) then begin // FixMove ScanPck5(_gBuff,4,'ddd',ToX,ToY,ToZ,null,null); ScanPck5(_gBuff,16,'ddd',oX,oY,oZ,null,null); _gOutBuff := SetPckSize( copy( _gBuff, 3, 25 ) + HStr('01 00 00 00') ); gSys.EnSendC(FormatPck('%cddddddd',[$01,SelfOID,ToX,ToY,ToZ,oX,oY,oZ])); end end; // RequestMagicSkillUse if (not _gFromServ) and StrCmp(copy(_gBuff,3,1), HStr('39')) then begin if GInt( _gBuff, 8, 4) > 1 then begin _gOutBuff := _gBuff; PInt(_gOutBuff, 0, 8, 4); end end; // GG if ( _gFromServ) and StrCmp( copy(_gBuff,1,3), HStr('03 00 F9') ) then begin gBlockPacket; gSys.EnSendS(HPck('CA00000000000000000000000000000 000')); end; if _gFromServ then begin if StrCmp(copy(_gbuff,3,1),#$F3) then // Fix DeathPenalty use begin gSys.EnSendS(HStr('03 00 3F')); end end; //HPMPCP if _gFromServ then begin if StrCmp(copy(_gbuff,3,1),#$52) then // PartySmallWindowUpdate begin gSys.EnSendC(_gbuff); ScanPck5(_gbuff,ScanPck5(_gbuff,4,'dsddd',PObjectID,PName,PCurCP,PMaxCP,PCurHP),'ddd',PMaxHP,PCurMP, PMaxMP,null,null); StatusPacket := FormatPck('%cdddddddddddddd',[$0E,PObjectID,6,$09,PCurHP,$0A,PMaxHP,$0B,PCurMP,$0C,PMaxMP,$21,PCurCP,$22,PMaxCP]); gSys.EnSendC(StatusPacket); end end; //Private Recipe begin if not _gFromServ then if StrCmp(_gBuff, HStr('0300B0')) then _gOutBuff := HStr('0C 00 45 25 00 00 00 00 00 00 00 00'); end; //Return To Clan Hall begin if not _gFromServ then if StrCmp(_gBuff, HStr('07 00 6D 03 00 00 00')) then _gOutBuff := HStr('07 00 6D 01 00 00 00'); end; // Get char oID if (_gFromServ) and (ID=$04) then begin ScanPck5(_gBuff,20,'d',selfOID,null,null,null,null); end; END. 1 1 Ссылка на сообщение Поделиться на другие сайты
OneFinal 90 Опубликовано 12 февраля, 2022 Автор Жалоба Поделиться Опубликовано 12 февраля, 2022 Так же для удобства телепортов пачки набор скриптов, папку положить по адресу l2walker\SCRIPTS https://drive.google.com/file/d/1j8BMdzxI1ysKhVPvmYmrGLY4qNcCdDg2/view?usp=sharing 1 1 Ссылка на сообщение Поделиться на другие сайты
OneFinal 90 Опубликовано 18 февраля, 2022 Автор Жалоба Поделиться Опубликовано 18 февраля, 2022 Добавил новую функцию покупки из .buy в L2Walker Пример использования Quote SAY(.buy) delay(500) SAY(buy 40 1) 40 - порядок итема из окна .buy 1 - количество команда buy 1 5 купит 5 банок маны команда buy 40 1 купит 1 свиток пинальки S грейда 1 Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти