Вернуться   CoderX :: Forums > Основные форумы > Полезности
Войти через OpenID

Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 06.09.2010, 18:38   #1
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Спасибо за тему, очень познавательная. Сделал свой радар и бота, только возникли вопросы:
- Как расчитать текущее положение чара при движении?
- Есть ли способ (если есть то как реализовать) узнать направление камеры (не направление персонажа)
- Как установить квестовскую стрелочку на определенного нпц/чара (какую функцию вызвать или что-то гдето поменять)
- Ктонить пробовал присоеденить к боту геодату? Если да, то какую и каким способом

Был бы очень признателен, если бы Вы помогли мне на них ответить =)
Guzh вне форума   Ответить с цитированием
Старый 06.09.2010, 20:45   #2
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

при просчете траектории была уже тема насчет вычисления движения бота,правдо до конца не раскрытая
странно зачем вычислять камеру?)
квестовая стрелочка ставитса вроде из данных клиента и на самом деле не указывает на нпс а только на предопределенную точку на карте где он должен стоять.
про геодату тоже вопрос задавалса, можеш поапать тему
mira вне форума   Ответить с цитированием
За это сообщение mira нажился спасибкой от:
Старый 08.09.2010, 11:53   #3
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Цитата:
Сообщение от mira Посмотреть сообщение
странно зачем вычислять камеру?)
Камеру вычислять хочу для удобного радара. Чтбы при движении камерой менялся радар, а не в зависимости от того,куда я смотрю.

Цитата:
Сообщение от mira Посмотреть сообщение
квестовая стрелочка ставитса вроде из данных клиента и на самом деле не указывает на нпс а только на предопределенную точку на карте где он должен стоять.
Как установить эту точку?)

Добавлено через 1 минуту
Цитата:
Сообщение от xkor Посмотреть сообщение
про геодату тут http://coderx.ru/showthread.php?t=5039 и ещё там во втором посте ссылка
Спасибо. Все прекрасно получилось, осталось только присобачить к боту геодату.

Последний раз редактировалось Guzh, 08.09.2010 в 11:53. Причина: Добавлено сообщение
Guzh вне форума   Ответить с цитированием
Старый 06.09.2010, 21:29   #4
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

про геодату тут http://coderx.ru/showthread.php?t=5039 и ещё там во втором посте ссылка
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 08.09.2010, 22:18   #5
Новичок
 
Регистрация: 11.05.2010
Сообщений: 19
Сказал Спасибо: 0
Имеет 10 спасибок в 6 сообщенях
Эдвадко пока неопределено
По умолчанию

А насчет движения я делаю так
cpp Код:
void GotoXY(DWORD id, int ToX, int ToY, int Pawn) {     FINDID(id) {         ctable *p=&table&#91;i];         double Speed;         double dX=ToX-p->X;         double dY=ToY-p->Y;         double d = sqrt(dX*dX+dY*dY);         if ((d>Pawn) && (d>20)) {             if (p->RunSpd<=0) Speed=10; else Speed=p->MoveMul*p->RunSpd/12;             p->dX=(Speed*dX)/d; p->dY=(Speed*dY)/d;             p->MoveTicks=(d-Pawn)/Speed;             p->PawnX=ToX-(Pawn/d)*dX; p->PawnY=ToY-(Pawn/d)*dY;             p->ToX=ToX; p->ToY=ToY;             p->Visible=1;         }     } } ...................... void Tick() {     LOOPI {         if (table&#91;i].PickTicks) table[i].PickTicks--;         if (table&#91;i].Visible && table[i].MoveTicks-->0) {             table&#91;i].X=table[i].X+table[i].dX;             table&#91;i].Y=table[i].Y+table[i].dY;         }     } } ........................   case WM_TIMER:     Chars.Tick();     InvalidateRect(hWnd,0,TRUE); ...     break;   case WM_CREATE: ...       SetTimer(hWnd,0,100,0);       break; ......................... } else if (Cmd==0x72) { //72=MoveToPawn:d(CreatureObjId)d(TargetObjID)d(Distance)d(CreatureX)d(CreatureY)d(CreatureZ)d(TargetX)d(TargetY)d(TargetZ)   ParseMasked(SavedArg4, d(ObjectID)d(TargetID)d(Distance)d(X)d(Y)d(Z)d(ToX)d(ToY)d(ToZ) 0);   Chars.SetXY(ObjectID, X, Y);   Chars.GotoXY(ObjectID, ToX, ToY, Distance);   swprintf(wstr,100,L"%s %i> %s", Chars.GetName(ObjectID), Distance, Chars.GetName(TargetID));   if (TargetID==UserID) WriteUsrW(wstr);   else if (ObjectID!=UserID) WriteLogW(wstr);   fprintf(LogFile,"MoveToPawn       %s %i> %s  %i,%i,%i -> %i,%i,%i\n", NAME(ObjectID), Distance, NAME(TargetID), X, Y, Z, ToX, ToY, ToZ); //----------------------------------------- } else if (Cmd==0x2f) { //2F=MoveToLocation:d(CharID)d(ToX)d(ToY)d(ToZ)d(OriginX)d(OriginY)d(OriginZ)   ParseMasked(SavedArg4, d(CharID)d(ToX)d(ToY)d(ToZ)d(X)d(Y)d(Z) 0);   Chars.SetXY(CharID, X, Y);   Chars.GotoXY(CharID, ToX, ToY, 0);   fprintf(LogFile,"MoveToLocation   %s %i,%i,%i -> %i,%i,%i\n", NAME(CharID), X, Y, Z, ToX, ToY, ToZ); ...................... } else if (Cmd==0x0C) {//0C=NpcInfo:   //0C=NpcInfo:d(ObjectID)d(NpcTypeId:Get.NpcId)d(IsAttackable)d(X)d(Y)d(Z)d(Heading)d(0)   ParseMasked(SavedArg4, d(ObjectID)d(ClassID)b(4)d(X)d(Y)d(Z)d(Heading)b(4) //d(MatkSpd)d(PatkSpd)d(RunSpd)d(WalkSpd)d(SwimRunSpd)d(SwimWalkSpd)d(FlRunSpd)d(FlWalkSpd)d(FlyRunSpd)d(FlyWalkSpd)     d(MatkSpd)d(PatkSpd)d(RunSpd)d(WalkSpd) 3,6*4, //f(MoveMultiplier)f(AtkSpdMultiplier)f(CollisionRadius)f(CollisionHeight)   8,&MoveMul, 3,8+8+8+4+4+4+5, 5,name, 5,name, 0); //d(IDRhand:Get.ItemID)d(0)d(IDLhand:Get.ClassID)c(1)c(isRunning)c(isInCombat)c(isALikeDead)c(Invisible:0,1) //s(VisibleName)s(VisibleTitle)d(0)d(0)d(0)d(AbnormalEffect)d(ClanID)d(CrestID)d(0)d(0)c(0)c(Team:1-blue,2-Red) //f(CollisionRadius)f(CollisionHeight)d(0)d(0)d(0)d(0)c(01)c(01)d(0)   //swprintf(wstr,100,L"%s %i %i %i %i %f",  GetNpcName(ClassID), MatkSpd, PatkSpd, RunSpd, WalkSpd, MoveMul);   //WriteUsrW(wstr);   Chars.SetChar(ObjectID, GetNpcName(ClassID), X, Y, RunSpd, MoveMul, 0xffffff);   fprintf(LogFile,"NpcInfo          %s %i %g\n", NAME(ObjectID), RunSpd, MoveMul);

Понятно, что через анус, и что где-то в клиенте все данные есть...

Последний раз редактировалось xkor, 09.09.2010 в 00:45.
Эдвадко вне форума   Ответить с цитированием
Старый 09.09.2010, 00:00   #6
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

Цитата:
Сообщение от Эдвадко Посмотреть сообщение
Понятно, что через анус, и что где-то в клиенте все данные есть...
хз в чем ты писал, но в делфи тегах это лучше смотрится
Grinch вне форума   Ответить с цитированием
Старый 09.09.2010, 00:05   #7
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

в пхп лучше... во всяком случае ближе к С
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 09.09.2010, 00:46   #8
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

alexteam, а С++ ещё ближе к С++)
ЗЫ только вот открывающиеся квадратные скобки надо бы будет как нить пофиксить...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 18.09.2010, 23:28   #9
Пользователь
 
Аватар для ALF
 
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
ALF пока неопределено
По умолчанию

Кто разобрался с написанием радара на делфи?
ALF вне форума   Ответить с цитированием
Старый 02.10.2010, 17:17   #10
Пользователь
 
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Guzh пока неопределено
По умолчанию

Хотелось бы еще вопросик задать. Вот читал, что у рэнджера есть функция антихайда. Ктонить пробовал реализовать его? Можете подсказать как =)
Guzh вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Полезности



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

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


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

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

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