Я только недавно начал писать скрипты для phx и вот 1 из моих скриптов на ваш суд
Скрипт для перевода слов на русский, по ошибке написаных на английском.
Например слово "Ghbdtn" скрипт переведет так "Привет".
Для настройки введите имя вашего персанажа в константу Name='имя' Скрипт:
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:=1tolength(tmpstr)dobeginif tmpstr[i] in ['а'..'я','А'..'Я'] theninc(countru);
if tmpstr[i] in ['a'..'z','A'..'Z'] theninc(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;
beginif tmpchar=chr(39)thenbegin
result:='э';
exit;
end;
if tmpchar=';'thenbegin
result:='ж';
exit;
end;
if tmpchar='^'thenbegin
result:=':';
exit;
end;
if tmpchar='@'thenbegin
result:='"';
exit;
end;
if tmpchar in ['0'..'9'] thenbegin
result:=tmpchar;
exit;
end;
if tmpchar='$'thenbegin
result:=';';
exit;
end;
if tmpchar='&'thenbegin
result:='?';
exit;
end;
if tmpchar='|'thenbegin
result:='/';
exit;
end;
for i:=0to(length(alphabet)-1)dobeginif tmpchar=alphabet[i] thenbegin
result:=rualphabet[i];
exit;
end;
iford(tmpchar)=(ord(alphabet[i])-32)thenbegin
result:=chr(ord(rualphabet[i])-32);
exit;
end;
end;
result:=tmpchar;
end;
beginfor i:=1tolength(tmpstr)do tmpstr[i]:=ConvertChar(tmpstr[i]);
result:=tmpstr;
end;
beginif FromClient and(pck[1]=#$38)and(ConnectName=Name)thenbegin
temp:=ReadS(2);
if ConvertNeeded(temp)thenbegin
temp:=ConvertStr(temp);
if ReadD(length(temp)*2+4)=2thenbegin
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.
Essential, переводить будет всё, но только если всё сообщение на английской раскладке набрано, если хоть один символ русский то переводить не будет...
Да. Я сделал это для того чтобы не обрабатывало строки в которых есть и русский и английский текст, воизбежании того что пользователь мог написать чтото на английском и русском правильно в одной строке. А проверить правильно ли написано то или иное слово невозможно. xkor
Что значит "структурированный код" объясни плз.
function ConvertNeeded(tmpstr : string) : boolean;
var i,countru,counteng:integer;
begin
countru:=0;
counteng:=0;
for i:=1tolength(tmpstr)dobeginif tmpstr[i] in ['а'..'я','А'..'Я'] theninc(countru);
if tmpstr[i] in ['a'..'z','A'..'Z'] theninc(counteng);
end;
result:=true;
if(countru>0)and(counteng>=0)then result:=false;
end;
пишут так:
delphi Код:
function ConvertNeeded(tmpstr: string): boolean;
var
i, countru, counteng: integer;
begin
countru:=0;
counteng:=0;
for i:=1tolength(tmpstr)dobeginif tmpstr[i] in ['а'..'я','А'..'Я'] theninc(countru);
if tmpstr[i] in ['a'..'z','A'..'Z'] theninc(counteng);
end;
result:=true;
if(countru>0)and(counteng>=0)then result:=false;
end;
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Мегамозг, ты знаток, поделись тогда своими знаниями... объясни дилетантам что значит
структурированный и форматированный код, а не текст
Я так понимаю, структурированный код - это код, разбитый на логические части - процедуры и функции, а не сплошным потоком с кучей goto.
А форматированный - это как раз набранный по определённому формату (отступы, пробелы и т.д.).