Не правильно ReadS(i) автоматом увеличивает i на длину строки
o:integer просто лишне.
длина "Amorality2" 10*2+2
тело внитри условия одинаково, лучше тогда так
delphi Код:
var
Commandir : string;
.......
i := 10; //Имя с 10 байта
Commandir := ReadS(i); //Сохранили ник написавшего и увеличиваем i на длину ника
if (Commandir = 'Amorality') or (Commandir = 'Amorality2') then //сравниваем
if ReadS(i) = '-dence' then begin//Считываем, сравниваем сообщение
buf:=hstr('2F 11 01 00 00 00 00 00 00 00');
SendToServer;
end;
........
Добавлено через 4 минуты
Вот и начинается интересное
вы получили один танец на команду, теперь есть 2 пути -
1. В лоб размножить скрипт и давать отдельную команду на каждый танец.
2. Подумать как танцевать серию танцев
Для примера можно почитать тут
http://coderx.ru/showthread.php?t=14
и тут
http://coderx.ru/showthread.php?t=397