Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

WalkMode

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 27.01.2012, 09:35   #1
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию WalkMode

Подскажите пожайлуста, если не трудно и известно, есть ли флаг подобный флагу WalkMode в структуре персонажа, но для игрока пати? Такой флаг есть для структуры игроков находящихся рядом, но не хотелось бы нагружать бота ненужным сканированием.

Заранее спасибо.
  Ответить с цитированием
Старый 27.01.2012, 14:01   #2
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: WalkMode

Цитата:
Сообщение от gurinПосмотреть сообщение
Подскажите пожайлуста, если не трудно и известно, есть ли флаг подобный флагу WalkMode в структуре персонажа, но для игрока пати? Такой флаг есть для структуры игроков находящихся рядом, но не хотелось бы нагружать бота ненужным сканированием.

Заранее спасибо.

А почему бы не получить ID человека в пати и потом использовать его, как ключ в хэш-таблице?
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 27.01.2012, 14:10   #3
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: WalkMode

Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
А почему бы не получить ID человека в пати и потом использовать его, как ключ в хэш-таблице?

два момента - таблицу прийдется читать, а это не мало информации, ну и поиск в этой таблице так же отымет вермя, хотя и не много. Основной нагруз пойдет при чтении таблицы.
  Ответить с цитированием
Старый 27.01.2012, 23:44   #4
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: WalkMode

Цитата:
Сообщение от gurinПосмотреть сообщение
два момента - таблицу прийдется читать, а это не мало информации, ну и поиск в этой таблице так же отымет вермя, хотя и не много. Основной нагруз пойдет при чтении таблицы.

Читать всю таблицу не надо же
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 28.01.2012, 12:47   #5
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: WalkMode

Цитата:
Сообщение от FreePVP)))Посмотреть сообщение
Читать всю таблицу не надо же

т.е как? а как иначе? по ID можно вычислить адрес сразу? без перебора?
  Ответить с цитированием
Старый 28.01.2012, 22:46   #6
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 21
Популярность: 83
Сказал(а) спасибо: 30
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию Re: WalkMode

Код:
function IfMob:boolean;
var
  ptr_,ptr2_,hash,
  listBase,index,
  mobBase:dword;
  temp,tt:dword;
  _targetWid, type_: DWord;
begin
  ptr_:=getDword(pers.hProc,GAME_ADD);
  ptr_:=getdword(pers.hproc,ptr_+ofpers);
  _targetWid:=getdword(pers.hproc,ptr_+ofpersTargetWid);
  ptr2_:=getdword(pers.hproc,GAME_ADD);
  hash:=getdword(pers.hproc,ptr2_+HashPtr);
  hash:=getdword(pers.hproc,hash+HashMobs);
  hash:=getdword(pers.hproc,hash+HashKey);
  listBase:=getdword(pers.hproc,ptr2_+hashptr);
  listBase:=getdword(pers.hproc,listBase+HashMobs);
  listBase:=getdword(pers.hproc,listBase+HashList);
  index:=listBase+(_TargetWID mod hash)*4;
  while(index <> 0) and (getdword(pers.hproc,index+$8) <> _TargetWID) do
    begin
      index:=getdword(pers.hproc,index+$0);
    end;
  if index <> 0 then
    begin
      mobBase:= getdword(pers.hproc,index+$4);
      type_:=GetDWord(pers.hproc,mobBase+OfMobType);
    end;
  if type_=6 then
    Result:=true; //если моб
end;
_targetWid - может быть WID перса, или моба, не важно, я брас с таргета перса.
А по нужным смещениям читаем их данные.
Так я получаю инфу моб ли в таргете.
Заметьте, - без перебора. Было уже (на пв лабе)
Читаем инфу с хэш по seed (семечку)

Дабы не смущало.
адреса с этой функции:
Код:
//Hash Tables
HashPtr=      $1c;
HashPlayers=  $20;
HashMobs=     $24;
HashItems=    $28;
HashKey=      $24;
HashList=     $18;

Последний раз редактировалось krysun; 28.01.2012 в 22:49.
  Ответить с цитированием
Пользователь сказал cпасибо:
gurin (29.01.2012)
Старый 29.01.2012, 10:31   #7
 Сержант
Аватар для gurin
 
gurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компанииgurin душа компании
Регистрация: 18.12.2009
Сообщений: 152
Популярность: 1075
Сказал(а) спасибо: 45
Поблагодарили 204 раз(а) в 67 сообщениях
Отправить сообщение для gurin с помощью Skype™
 
По умолчанию Re: WalkMode

перебор всё-таки есть

Код:
while(index <> 0) and (getdword(pers.hproc,index+$8) <> _TargetWID) do
    begin
      index:=getdword(pers.hproc,index+$0);
    end;
но всё равно, спасибо, с хэш-таблицами еще не пробовал работать
  Ответить с цитированием
Ответ


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

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

Быстрый переход

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net