Я только недавно начал писать скрипты для phx и вот 1 из моих скриптов на ваш суд
Скрипт для перевода слов на русский, по ошибке написаных на английском.
Например слово "Ghbdtn" скрипт переведет так "Привет".
delphi Код:
Program EngToRus;
const
Name='fer123';
var
temp:string;
i:integer;
function ConvertNeeded(tmpstr : string) : boolean;
var i,countru,counteng:integer;
begin
countru:=0;
counteng:=0;
for i:=1 to length(tmpstr) do
begin
if tmpstr[i] in ['а'..'я','А'..'Я'] then inc(countru);
if tmpstr[i] in ['a'..'z','A'..'Z'] then inc(counteng);
end;
result:=true;
if (countru>0) and (counteng>=0) then result:=false;
end;
function ConvertStr(tmpstr : string) : string;
var i:integer;
function ConvertChar(tmpchar : char) : char;
const
alphabet=[' ','[',']','{','}','<','>',',','.',':','"','/','?','q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m','`','~'];
rualphabet=[' ','х','ъ','Х','Ъ','Б','Ю','б','ю','Ж','Э','.',',','й','ц','у','к','е','н','г','ш','щ','з','ф','ы','в','а','п','р','о','л','д','я','ч','с','м','и','т','ь','ё','Ё'];
var i:integer;
begin
if tmpchar=chr(39) then begin
result:='э';
exit;
end;
if tmpchar=';' then begin
result:='ж';
exit;
end;
if tmpchar='^' then begin
result:=':';
exit;
end;
if tmpchar='@' then begin
result:='"';
exit;
end;
if tmpchar in ['0'..'9'] then begin
result:=tmpchar;
exit;
end;
if tmpchar='$' then begin
result:=';';
exit;
end;
if tmpchar='&' then begin
result:='?';
exit;
end;
if tmpchar='|' then begin
result:='/';
exit;
end;
for i:=0 to (length(alphabet)-1) do
begin
if tmpchar=alphabet[i] then
begin
result:=rualphabet[i];
exit;
end;
if ord(tmpchar)=(ord(alphabet[i])-32) then
begin
result:=chr(ord(rualphabet[i])-32);
exit;
end;
end;
result:=tmpchar;
end;
begin
for i:=1 to length(tmpstr) do tmpstr[i]:=ConvertChar(tmpstr[i]);
result:=tmpstr;
end;
begin
if FromClient and (pck[1]=#$38) and (ConnectName=Name) then
begin
temp:=ReadS(2);
if ConvertNeeded(temp) then
begin
temp:=ConvertStr(temp);
if ReadD(length(temp)*2+4)=2 then
begin
buf:=#$38;
writes(temp);
writed(2);
writes(ReadS(length(temp)*2+8));
SendToServerEx(Name);
pck:='';
exit;
end;
buf:=#$38;
writes(temp);
buf:=buf+pck[length(pck)-3]+pck[length(pck)-2]+pck[length(pck)-1]+pck[length(pck)];
SendToServerEx(Name);
pck:='';
end;
end;
end.