Полезности Исключительно для полезных тем из других разделов.
Темы тут не создаются!
Темы сюда перемещаются из других разделов, и на их старых местах остаются постоянные перенаправления.
06.09.2010, 21:29
#151
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
про геодату тут
http://coderx.ru/showthread.php?t=5039 и ещё там во втором посте ссылка
__________________
Я здесь практически не появляюсь!, Skype - ikskor
За это сообщение xkor нажился спасибкой от:
08.09.2010, 11:53
#152
Пользователь
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Цитата:
Сообщение от
mira
странно зачем вычислять камеру?)
Камеру вычислять хочу для удобного радара. Чтбы при движении камерой менялся радар, а не в зависимости от того,куда я смотрю.
Цитата:
Сообщение от
mira
квестовая стрелочка ставитса вроде из данных клиента и на самом деле не указывает на нпс а только на предопределенную точку на карте где он должен стоять.
Как установить эту точку?)
Добавлено через 1 минуту
Цитата:
Сообщение от
xkor
Спасибо. Все прекрасно получилось, осталось только присобачить к боту геодату.
Последний раз редактировалось Guzh, 08.09.2010 в 11:53 .
Причина: Добавлено сообщение
08.09.2010, 22:18
#153
Новичок
Регистрация: 11.05.2010
Сообщений: 19
Сказал Спасибо: 0
Имеет 10 спасибок в 6 сообщенях
А насчет движения я делаю так
cpp Код:
void GotoXY( DWORD id, int ToX, int ToY, int Pawn) {
FINDID( id) {
ctable *p=&table[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[i].PickTicks) table[i].PickTicks--;
if ( table[i].Visible && table[i].MoveTicks-->0) {
table[i].X=table[i].X+table[i].dX;
table[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
#154
Рыцарь
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Цитата:
Сообщение от
Эдвадко
Понятно, что через анус, и что где-то в клиенте все данные есть...
хз в чем ты писал, но в делфи тегах это лучше смотрится
09.09.2010, 00:05
#155
Рыцарь
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
в пхп лучше... во всяком случае ближе к С
__________________
L2Ext - project closed.
09.09.2010, 00:46
#156
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
alexteam , а С++ ещё ближе к С++)
ЗЫ только вот открывающиеся квадратные скобки надо бы будет как нить пофиксить...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
18.09.2010, 23:28
#157
Пользователь
Регистрация: 18.09.2010
Адрес: Киев
Сообщений: 70
Сказал Спасибо: 9
Имеет 10 спасибок в 6 сообщенях
Кто разобрался с написанием радара на делфи?
02.10.2010, 17:17
#158
Пользователь
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Хотелось бы еще вопросик задать. Вот читал, что у рэнджера есть функция антихайда. Ктонить пробовал реализовать его? Можете подсказать как =)
02.10.2010, 19:08
#159
Admin!
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
Цитата:
Сообщение от
Guzh
Вот читал, что у рэнджера есть функция антихайда.
и в чем она заключается?
__________________
Я здесь практически не появляюсь!, Skype - ikskor
03.10.2010, 21:55
#160
Пользователь
Регистрация: 19.07.2010
Сообщений: 45
Сказал Спасибо: 10
Имеет 23 спасибок в 12 сообщенях
Ну вроде рэнджер позволяет видеть дагеров,которые находятся в хайде (сам не пользовался,но гдето видел инфу об этом=) ).
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 04:11 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!