Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Пакеты
Войти через OpenID

Пакеты Форум о форматах отдельных пакетов или групп пакетов

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

Как можно в l2phx сделать так, чтобы он читал текст в юникоде и узнавал его размер? Чтобы потом отступить это значение...
PS в основном это понадобится при чтении userinfo, при разных никах и титулах.
supernewbie вне форума  
Старый 11.05.2010, 01:28   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

я думаю вам надо это
Код:
procedure UserInfo;
var
  i, CubicsSize, tmpCharObjectId: integer;
  tmpMyName, tmpMyTitle: string;    
begin
  tmpCharObjectId:=ReadD(18);   
  if CharObjectId=0 then CharObjectId:=tmpCharObjectId;
  case tmpCharObjectId of
  CharObjectId:
  begin  
   MyCorX:=ReadD(2);
   MyCorY:=ReadD(6);
   MyCorZ:=ReadD(10);
   i:=22;
   tmpMyName:=ReadS(i);             
   i:=i+48; 
   MaxHP:=ReadD(i);
   CurHP:=ReadD(i);
   MaxMP:=ReadD(i);
   CurMP:=ReadD(i);        
   i:= 552 + length(tmpMyName) * 2;
   tmpMyTitle:=ReadS(i);
   i:= i + 31;
   CubicsSize:= ReadH(i);
   i:= i + 28 + (CubicsSize * 2);       
   MaxCP:=ReadD(i);  
   CurCP:=ReadD(i);            
  end;      
 end;  
end;
автор Vilson


PS: если я не ошибаюсь то текст в ANSI, а не в юникоде
__________________

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

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

Последний раз редактировалось J-Fobos, 11.05.2010 в 01:35.
J-Fobos вне форума  
За это сообщение J-Fobos нажился спасибкой от:
Старый 11.05.2010, 01:38   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

блин) чуть-чуть понял) было бы лучше если бы было с комментами там чтоли, с описанием...

Добавлено через 1 минуту
length(tmpMyName) это как бы длинна имени, я правельно понял?

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

Функция Length возвращает число элементов в массиве или строке. Возвращает или число символов в SourceString, или число элементов в SourceArray. Массивы, по умолчанию, начинаются с индекса = 0. Так что длина такого массива на 1 меньше чем самый высокий индекс.
__________________

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

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

по-русски пож(
supernewbie вне форума  
Старый 11.05.2010, 02:14   #6
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Ну на примере покажу.
s:string;

s:='12345'
Length(s) = 5 //пять символов

s:='01234'
Length(s) = 5 //опять пять символов

s:='фыва'
Length(s) = 4 //четыре символа
__________________

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

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

короче чтобы узнать кол-во бит пользуюсь этим...
MyName:=ReadS(22);
MyNameLength:=(length(MyName) * 2 + 1 * 2);

Добавлено через 2 минуты
спс за помощь)

Последний раз редактировалось supernewbie, 11.05.2010 в 10:01. Причина: Добавлено сообщение
supernewbie вне форума  
Старый 11.05.2010, 11:59   #8
Местный
 
Аватар для Sherman
 
Регистрация: 24.04.2008
Сообщений: 364
Сказал Спасибо: 15
Имеет 116 спасибок в 83 сообщенях
Sherman пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
короче чтобы узнать кол-во бит пользуюсь этим...
MyName:=ReadS(22);
MyNameLength:=(length(MyName) * 2 + 1 * 2);

Добавлено через 2 минуты
спс за помощь)
Для количества бит еще и на 8 надо умножить

А вообще длинна Unicode_cтроки = длина_ANSI_строки * 2 + 2 байта

Последний раз редактировалось Sherman, 11.05.2010 в 12:05.
Sherman вне форума  
Старый 11.05.2010, 15:41   #9
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от Sherman Посмотреть сообщение
Для количества бит еще и на 8 надо умножить
ну значит байт)
supernewbie вне форума  
Старый 11.05.2010, 13:52   #10
Местный
 
Аватар для Prixmegently
 
Регистрация: 09.01.2010
Сообщений: 384
Сказал Спасибо: 60
Имеет 27 спасибок в 24 сообщенях
Prixmegently пока неопределено
По умолчанию

Юникод строка = анси строка * 2, ибо анси нуль терминированная строка тоже имеет нуль символ в конце.
Prixmegently вне форума  
Закрытая тема

  CoderX :: Forums > Lineage II > L2PacketHack > Пакеты



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

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


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

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

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