Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 22.05.2010, 18:05   #1
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию Вопрос про текст

Можно ли прочесть скриптом из текста в юникоде, отдельное слово?
что-то вроде пишут "Продам хай 76", а скрипт реагировал только на слово "хай" или "76"?

Пытался написать что-то в этом роде... не работает, вот решил у вас спросить)

Код:
begin
if fromserver and (connectname=Name) and (pck[1]=#$4A) and (ReadS(10)=Name) then
begin
j:=26;
for i:=1 to listcount do begin
text:=ReadS(j);
if (text='стоп') then
begin
Say(text);
end;
end;
j:=(j+2);
end;
end;
supernewbie вне форума   Ответить с цитированием
Старый 22.05.2010, 19:04   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

С помощью ReadS(); загоняете строку в переменную типа string , а потом обычным алгоритмом поиска текста в строке обрабатываете эту строку.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 23.05.2010, 22:36   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

что за алгоритм?
supernewbie вне форума   Ответить с цитированием
Старый 23.05.2010, 23:35   #4
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
что за алгоритм?
Да таких алгоритмов куча Для больших строк, для маленьких, при разных условиях и в разных средах применения ...
тык сюда
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber

Последний раз редактировалось J-Fobos, 23.05.2010 в 23:37.
J-Fobos вне форума   Ответить с цитированием
Старый 23.05.2010, 23:37   #5
Местный
 
Аватар для Xen
 
Регистрация: 02.05.2010
Сообщений: 168
Сказал Спасибо: 9
Имеет 33 спасибок в 18 сообщенях
Xen пока неопределено
По умолчанию

PHP код:
// стандартная дельфи функция, возвращает позицию i слова 'строка' в строке s
s:='Это тестовая строка для поиска слова';
i:= pos('строка',s); // pos -  регистрозависимая фун-я!

//---------------------------------------------
// тоже самое что и Pos, но поиск идет с конца строки
function LastPos(SearchStrStrstring): Integer;
 var
    
iInteger;
   
TempStrstring;
 
begin
   Result 
:= Pos(SearchStrStr);
   if 
Result 0 then Exit;
   if (
Length(Str) > 0) and (Length(SearchStr) > 0then
   begin
     
for := Length(Str) + Length(SearchStr) - 1 downto Result do
     
begin
       TempStr 
:= Copy(StriLength(Str));
       if 
Pos(SearchStrTempStr) > 0 then
       begin
         Result 
:= i;
         break;
       
end;
     
end;
   
end;
 
end;

//---------------------------------------------
// Ищет следующее вхождение строки с определенной позиции
function NextPos(SearchStrStrstringPositionInteger): Integer;
 
begin
   Delete
(Str1Position 1);
   
Result := Pos(SearchStrupperCase(Str));
   if 
Result 0 then Exit;
   if (
Length(Str) > 0) and (Length(SearchStr) > 0then
     Result 
:= Result Position 1;
 
end;

//---------------------------------------------

function NextPosRel(SearchStrStrstringPositionInteger): Integer;
 
begin
   Delete
(Str1Position 1);
   
Result := Pos(SearchStrUpperCase(Str)) - 1;
 
end;

//---------------------------------------------

function ReplaceStr(StrSearchStrReplaceStrstring): string;
 
begin
   
while Pos(SearchStrStr) <> do
   
begin
     Insert
(ReplaceStrStrPos(SearchStrStr));
     
Delete(StrPos(SearchStrStr), Length(SearchStr));
   
end;
   
Result := Str;
 
end
А еще"встроенные" AnsiStrRScan, AnsiPos т.д.

А вот то, что тебе так нужно:
PHP код:
алгоритм Бойера-Мура
>> алгоритм поиска подстроки в строке

Зависимости
SysUtils
Автор
:       ALex2)
Copyright:   2)
Дата:        1 февраля 2003 г.
***************************************************** }

function 
BMSearch(StartPosInteger; const SPstring): Integer;
type
  TBMTable 
= array[0..255of Integer;
var
  
PoslpiInteger;
  
BMTTBMTable;
begin

  
for := 0 to 255 do
    
BMT[i] := Length(P);
  for 
:= Length(Pdownto 1 do
    if 
BMT[Byte(P[i])] = Length(Pthen
      BMT
[Byte(P[i])] := Length(P) - i;

  
lp := Length(P);
  
Pos := StartPos lp 1;
  while 
Pos <= Length(S) do
    if 
P[lp] <> S[Posthen
      Pos 
:= Pos BMT[Byte(S[Pos])]
    else if 
lp 1 then
    begin
      Result 
:= Pos;
      Exit;
    
end
    
else
      for 
:= lp 1 downto 1 do
        if 
P[i] <> S[Pos lp ithen
        begin
          Inc
(Pos);
          Break;
        
end
        
else if 1 then
        begin
          Result 
:= Pos lp 1;
          Exit;
        
end;
  
Result := 0;

end;

{
ф-ия возвращает первое вхождение подстроки в строку
работает быстро
}
Пример использования

BMSearch(1'dsade''de')
// в данном примере ф-ия возвратит число 4
// 1 - это позиция с которой ищем подстроку в строке 
__________________
Free инет хранилище 2.3 Гб сейчас и до 8 гб с прямыми ссылками рефферал

Последний раз редактировалось Xen, 24.05.2010 в 13:26.
Xen вне форума   Ответить с цитированием
За это сообщение Xen нажился спасибкой от:
Старый 23.05.2010, 23:43   #6
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Цитата:
Сообщение от Xen Посмотреть сообщение
Код:
s:='Это тестовая строка для поиска слова';
i:= pos('строка',s);
AnsiStrRScan, AnsiPos т.д.
А они есть в скриптовом движке пакетхака? А то я не смотрел...
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 24.05.2010, 11:09   #7
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от Xen Посмотреть сообщение
Код:
s:='Это тестовая строка для поиска слова';
i:= pos('строка',s); // pos -  регистрозависимая фун-я!

//---------------------------------------------

function LastPos(SearchStr, Str: string): Integer;
 var
    i: Integer;
   TempStr: string;
 begin
   Result := Pos(SearchStr, Str);
   if Result = 0 then Exit;
   if (Length(Str) > 0) and (Length(SearchStr) > 0) then
   begin
     for i := Length(Str) + Length(SearchStr) - 1 downto Result do
     begin
       TempStr := Copy(Str, i, Length(Str));
       if Pos(SearchStr, TempStr) > 0 then
       begin
         Result := i;
         break;
       end;
     end;
   end;
 end;

//---------------------------------------------

function NextPos(SearchStr, Str: string; Position: Integer): Integer;
 begin
   Delete(Str, 1, Position - 1);
   Result := Pos(SearchStr, upperCase(Str));
   if Result = 0 then Exit;
   if (Length(Str) > 0) and (Length(SearchStr) > 0) then
     Result := Result + Position + 1;
 end;

//---------------------------------------------

function NextPosRel(SearchStr, Str: string; Position: Integer): Integer;
 begin
   Delete(Str, 1, Position - 1);
   Result := Pos(SearchStr, UpperCase(Str)) - 1;
 end;

//---------------------------------------------

function ReplaceStr(Str, SearchStr, ReplaceStr: string): string;
 begin
   while Pos(SearchStr, Str) <> 0 do
   begin
     Insert(ReplaceStr, Str, Pos(SearchStr, Str));
     Delete(Str, Pos(SearchStr, Str), Length(SearchStr));
   end;
   Result := Str;
 end;
А еще"встроенные" AnsiStrRScan, AnsiPos т.д.
госпади, а можно хотя бы с пояснениями)
supernewbie вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:26.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!