#1 Re: Беседка » Использование игры в виде подключаемого модуля » 17-04-2013 12:36

009
Jack Daniel's wrote:

[offtop]009 - ты тот самый Alex009, который сделал ботов в 0.2x?) Я как раз тут нарыл исходник сампа 0.2.5, испытывать не с кем, а боты бы пригодились [/offtop]
Чем больше ты будешь наворачивать бота, тем больше это будет упираться в функционал игры, так что мне кажется, что не обойдется без использования самой игры. Можно посмотреть готовые опен-сорс проекты с ботами или даже, например, в утекших исходниках Source, для помощи в разработке алгоритмов самих ботов.

Да, тот самый. На 0.2х были первые попытки, готовый результат был в 0.3.
Идея такого развития плагина пока не сдвинулась с мертвой точки. Учитывая что нужно поддержку и линукса и винды - игру подцепить не вариант. Остается только сделать свою реализацию обработки физики для ботов и интеллекта.

#2 Re: Беседка » Использование игры в виде подключаемого модуля » 11-03-2013 03:01

009

@DK22Pac - простая реализация алгоритма дейкстры для нахождения по пути по графу (граф дан - все пути игры **NODES.dat)

#3 Re: Беседка » Использование игры в виде подключаемого модуля » 05-03-2013 17:45

009

Вот как раз для использования самого интеллекта ботов игры и хотел подключить её, но потом вспомнил про unix версию сервера и идея сгорела. На данный момент боты и так умеют выполнять простенькие функции, "верх" их действий - нахождение кратчайшего пути по графу путей игры и движение по нему. Но когда нужно устроить перестрелку ботов и игроков - этого крайне мало. Получаем глупые столбы, которые стреляют по координатам, даже если между ними и целью стена. Осталась только мысль с загрузкой физической модели мира игры и писать обработку физики для ботов. Дело может и интересное, но времени требует много.

на счет P.S. : функционал стандартных ботов скуден, и их максимум - расставить торговцев по городу, либо заставить кататься по записи автобуса по городу.
функционал моего плагина - link
функционал стандартных ботов - link

#4 Беседка » Использование игры в виде подключаемого модуля » 25-02-2013 09:55

009
Replies: 8

Здравствуйте.
    Я разрабатываю плагин ботов для мультиплеера SA-MP. На сервере не содержится никакой информации о игровом мире, по сути он просто посредник между клиентами, а клиенты получая данные (координаты позиции, взгляда, и подобное) применяют эти данные себе, и уже локально идет обработка физических столкновений и прочего. Но боты - не игроки, у них нет экземпляра игры, который обработал бы данные аналогично обычным игрокам. Это вызывает ряд проблем - боты не имеют интеллект (имеется ввиду, что нельзя создать бота подобно тому, какой создается в одиночной игре), они не "знают" физическую модель мира (спокойно проходят сквозь стены, для них это не проблема), определение попаданий в ботов так же сильно упрощено - проверка проходит ли луч прицеливания через бота (нет учета разброса выстрелов, препятствия между стреляющим и целью) и подобное. Некоторое время назад, я работал над мультиплеером S.T.A.L.K.E.R., там сервер был представлен отдельным экземпляром игры, но без графического элемента (вместо отображения мира, игрока и т.д., мы получаем консоль), т.е. сервер имеет полные данные о всем игровом мире, все расчеты идут именно на сервере, а клиенты с ним синхронизируются, не расчитывая важные данные самостоятельно (для сохранения синхронизации). И у меня появилась идея, что если сделать подобное для SA-MP - подключить экземпляр игры к серверу, без графической состовляющей, т.е. убрать рендеринг, убрать звук, оставить расчеты физики и ИИ педов. Тогда боты будут работать аналогично педам в одиночной игре, с интеллектом, и будет информация о игровом мире, вся физическая модель присутствует на сервере.
    Теперь вопрос, к знающим людям: возможно ли отключить у игры рендеринг и звук, оставив работоспособными обработку физики и ИИ?

#5 Вопросы по скриптингу » Пути в GTA SA » 08-04-2010 12:47

009
Replies: 0

Здравствуйте все, я сделал чтение файлов путей гта са,получаю координаты,линки и т.д...пытаюсь заставить педа идти по пути а он ходит назад вперёд между 2 точками....т.к. получается что:
точка 0 идёт к линку 0 линк 0 ведёт к точке 160 точка 160 ведёт к линку 220 а линк 220 ведёт к точке 0 и так далее...
не могу никак разобраться как найти следующую точку на пути?

#6 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 09-03-2010 16:50

009

Если тут комуто это интересно ещё:
в 0.3 есть встроенные нпк но каждый бот создавал отдельный процесс и "ел" 3 мб оперативки,так же они не могли выполнять команды типа walk to/run/shot и т.д. , поэтому я решил доделать то что начал давным давно и у меня всё получилось smile (знаю просто уже на много больше чем тогда)

Plugin for SA:MP 0.3a R4 server
Controllable NPC 0.1
by 009

Плагин убирает использование samp_npc.exe что экономит оперативную память и сокращает количество процессов от samp.
Так же плагин даёт возможность управлять действиями NPC

Функции:

CreateNPC(npcid,npcname[]); - создать NPC с указанным id и именем (имя не играет роли вообще)

DestroyNPC(npcid); - уничтожить NPC

SetNPCPos(npcid,Float:X,Float:Y,Float:Z); - сменить координаты NPC

NPC_AimAt(npcid,Float:X,Float:Y,Float:Z); - NPC прицелится в указанную точку

NPC_ShotAt(npcid,Float:X,Float:Y,Float:Z); - NPC стреляет в указанную точку

NPC_WalkTo(npcid,Float:X,Float:Y,Float:Z); - NPC идёт в указанную точку

NPC_RunTo(npcid,Float:X,Float:Y,Float:Z); - NPC бежит лёгким бегом в указанную точку

NPC_SprintTo(npcid,Float:X,Float:Y,Float:Z); - NPC бежит быстрым бегом в указанную точку

SetNPCWeapon(npcid,weaponid); - сменить оружие NPC

KillNPC(npcid); - убить NPC

SpawnNPC(npcid); - заспавнить NPC

StopNPC(npcid); - остановить текущее действие NPC

Каждый NPC работает на отдельном потоке что означает что лагов от них практически не будет
Вы можете убить NPC из оружия

В архиве вложен тест-мод для NPC, используйте /state 0 - 5 чтобы повеселиться (лучше человек 5,так веселее будет)

Скачать можно тут: download
Информация о разработке новой версии: projects

#7 Re: Серия GTA » Four-MultiPlayer » 16-07-2009 18:06

009
listener wrote:

Включется синхронизация автоматически, как только выставляется флаг, что началась сетевая игра.
После этого, любое действие в игре (включая погоду, радиостанции, время и т.д.) начинает синхронизироваться на всех участников игры.


@WNeZRoS - match-making - подбор участников игры (по рейтингу, friend/non-friend, бан читеров и т.д.)

начинает синхронизироваться но стандартными методами игры,да?и нам получается надо будет перенаправить данные на наш сетевой двиг,верно,или нет?=)

P.S.

extern "C"  SOCKET __stdcall xlive_3 (int af, int type, int protocol) { // XSocketCreate
	trace ("xlive_3: XCreateSocket (%d, %d, %d)\n", af, type, protocol);
	return INVALID_SOCKET;
}

extern "C"  int __stdcall xlive_4 (SOCKET s) {	// XSocketClose
	trace ("xlive_4: XSockeClose)\n");
	return 0;
}

extern "C"  int __stdcall xlive_5 (SOCKET s, int how) {	// XSocketShutdown
	trace ("xlive_5: XSocketShutdown\n");
	return 0;
}

extern "C"  int __stdcall xlive_6 (SOCKET s, long cmd, long * argp) { // XSocketIOCTLSocket
	trace ("xlive_6: XSocketIOCTLSocket\n");
	return 0;
}

extern "C"  int __stdcall xlive_7 (SOCKET s, DWORD, DWORD, DWORD, DWORD) {	// XSocketSetSockOpt	
	trace ("xlive_7: XSocketSetSockOpt\n");
	return 0;
}

extern "C"  int __stdcall xlive_9 (SOCKET s, sockaddr_in * name, int * namelen) { // XSocketGetSockName
	trace ("xlive_9: XSocketGetSockName\n");
	if (namelen && name && *namelen == sizeof (sockaddr_in)) 
		memset (name, 0, sizeof (sockaddr_in));
	return 0;
}

extern "C"  SOCKET __stdcall xlive_11 (SOCKET s, sockaddr_in * addr, int * addrlen) {// XSocketBind
	trace ("xlive_11: XSocketBind\n");
	return INVALID_SOCKET;
}

extern "C"  int __stdcall xlive_12 (SOCKET s, sockaddr_in * addr, int * addrlen) {// XSocketConnect
	trace ("xlive_12: XSocketConnect\n");
	return 0;
}

extern "C"  int __stdcall xlive_13 (SOCKET s, int backlog) { // XSocketListen
	trace ("xlive_13: XSocketListen\n");
	return 0;
}

extern "C"  SOCKET __stdcall xlive_14 (SOCKET s, sockaddr_in * addr, int * addrlen) { // XSocketAccept
	trace ("xlive_14: XSocketAccept\n");
	return INVALID_SOCKET;
}

extern "C"  int __stdcall xlive_15 (int n, void *, void *, void *, void *) { // XSocketSelect
	trace ("xlive_15: XSocketSelect\n");
	return 0;
}

extern "C"  int __stdcall xlive_18 (SOCKET s, char * buf, int len, int flags) { // XSocketRecv
	return 0;
}

extern "C"  int __stdcall xlive_20 (SOCKET s, char * buf, int len, int flags, sockaddr_in * from, int fromlen) { // XSocketRecvFrom
	return 0;
}

extern "C"  int __stdcall xlive_22 (SOCKET s, char * buf, int len, int flags) { // XSocketSend
	return 0;
}

extern "C"  int __stdcall xlive_24 (SOCKET s, char * buf, int len, int flags, sockaddr_in * to, int tolen) { // XSocketSendTo
	return 0;
}

extern "C"  int __stdcall xlive_26 (char *) { // XSocketInet_Addr
	trace ("xlive_26: XSocketInet_Addr\n");
	return 0;
}

это для использования сокетов игрового сетевого движка?

#8 Re: Серия GTA » Four-MultiPlayer » 16-07-2009 11:51

009

сетевая часть это RakNet...а вот как нам заюзать механизм синхронизации игры???(эт я от себя спрашиваю,мож кто из команды разрабов и понял но я вот хз:D)

#9 Серия GTA » Four-MultiPlayer » 16-07-2009 10:31

009
Replies: 5

Здравствуйте все.
Команда русских разработчиков во главе с WNeZRoS разрабатывает мультиплеер для GTA IV,и не помешала бы помощь listener'a и Seemann'a т.к. вы работаете с внутренностями гта намного дольше нас всех=)

WNeZRoS wrote:

[center]FOUR-MP
Russian GTA IV Multiplayer[/center]

FOUR-MP v0.03
В новой версии добавлено:
Синхронизация прыжков
Синхронизация приседаний
Чат (с русским у него плохо, очень чувствительные буквы (shift работает но плохо))
Список игроков на экране (Now at screen)

ищутся люди способные перевести сервер под Widows в сервер под linux

Скоро будет v0.1b
Скриптовой язык SQUIRREL
Поддержка чатом русского языка есть
Поддержки версии 1C нет (может будет) (поверх 1С 1.0.3.1 становится 1.0.4.0)

Сейчас в мп использован GTA IV C++ Script Hook ,но нужен собственный чтобы его можно было редактировать и была поддержка всех версий,вы принимали участие в разработке GTA IV C++ Script Hook может поможете нам сделать хук для мп?=)

Офф сайт разработки: four-mp.com

#10 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 06-05-2009 07:19

009

изза глючного плагина начал писать свой "управляющий RakNet"....короч использовать функции сетевого движка сампа для отправки фальшивых пакетов о подключении игрока
Но тут такая фигня,я нашёл в ассемблере как выглядят эти функции в месте где используются для подключения игрока,но вот с этими eax и т.д. я не разобрался до сих пор...
Вот код полный:

.text:00474477 loc_474477:                             ; CODE XREF: sub_4743C0+BFj
.text:00474477                 mov     cl, [eax]
.text:00474479                 mov     [edx+eax], cl
.text:0047447C                 inc     eax
.text:0047447D                 test    cl, cl
.text:0047447F                 jnz     short loc_474477
.text:00474481                 mov     eax, [ebp+esi*4+320h]
.text:00474488                 mov     [eax], bl
.text:0047448A                 xor     eax, eax
.text:0047448C                 mov     dword ptr [ebp+esi*4+0], 1
.text:00474494                 mov     [ebp+esi*4+19C8h], eax
.text:0047449B                 mov     [ebp+esi*4+1CE8h], eax
.text:004744A2                 mov     [ebp+esi*4+2328h], eax
.text:004744A9                 lea     ecx, [esp+148h+var_124]
.text:004744AD                 mov     [esi+ebp+2648h], al
.text:004744B4                 call    sub_43C7F0
.text:004744B9                 push    1
.text:004744BB                 push    8
.text:004744BD                 lea     edx, [esp+150h+var_138]
.text:004744C1                 push    edx
.text:004744C2                 lea     ecx, [esp+154h+var_124]
.text:004744C6                 mov     [esp+154h+var_4], 1
.text:004744D1                 mov     [esp+154h+var_138], bl
.text:004744D5                 call    sub_43CE90
.text:004744DA                 mov     eax, edi
.text:004744DC                 lea     ecx, [eax+1]
.text:004744DF                 nop
.text:004744E0
.text:004744E0 loc_4744E0:                             ; CODE XREF: sub_4743C0+125j
.text:004744E0                 mov     dl, [eax]
.text:004744E2                 inc     eax
.text:004744E3                 test    dl, dl
.text:004744E5                 jnz     short loc_4744E0
.text:004744E7                 sub     eax, ecx
.text:004744E9                 push    1
.text:004744EB                 mov     ebx, eax
.text:004744ED                 push    8
.text:004744EF                 lea     eax, [esp+150h+var_138]
.text:004744F3                 push    eax
.text:004744F4                 lea     ecx, [esp+154h+var_124]
.text:004744F8                 mov     [esp+154h+var_138], bl
.text:004744FC                 call    sub_43CE90
.text:00474501                 movzx   ecx, bl
.text:00474504                 push    ecx
.text:00474505                 push    edi
.text:00474506                 lea     ecx, [esp+150h+var_124]
.text:0047450A                 call    sub_43CF40
.text:0047450F                 mov     edx, dword_4B7CCC
.text:00474515                 mov     edi, [edx]
.text:00474517                 mov     eax, [edi]
.text:00474519                 push    esi
.text:0047451A                 lea     ecx, [esp+14Ch+var_12A]
.text:0047451E                 push    ecx
.text:0047451F                 mov     ecx, edi
.text:00474521                 call    dword ptr [eax+0DCh]
.text:00474527                 mov     ebx, [eax]
.text:00474529                 mov     ax, [eax+4]
.text:0047452D                 mov     edx, [edi]
.text:0047452F                 push    0
.text:00474531                 push    1
.text:00474533                 sub     esp, 8
.text:00474536                 mov     ecx, esp
.text:00474538                 push    0
.text:0047453A                 mov     [ecx], ebx
.text:0047453C                 push    2
.text:0047453E                 mov     [ecx+4], ax
.text:00474542                 push    1
.text:00474544                 lea     ecx, [esp+164h+var_124]
.text:00474548                 push    ecx
.text:00474549                 push    offset unk_49BA78
.text:0047454E                 mov     ecx, edi
.text:00474550                 call    dword ptr [edx+7Ch]
.text:00474553                 mov     edx, dword_4B7CCC
.text:00474559                 mov     ecx, [edx]
.text:0047455B                 mov     eax, [ecx]
.text:0047455D                 push    esi
.text:0047455E                 lea     edx, [esp+14Ch+in]
.text:00474562                 push    edx
.text:00474563                 call    dword ptr [eax+0DCh]
.text:00474569                 mov     eax, dword ptr [esp+148h+in.S_un]
.text:0047456D                 push    eax             ; in
.text:0047456E                 call    ds:inet_ntoa

а вот отдельно:
запись ида подключившегося игрока:

.text:004744B9                 push    1
.text:004744BB                 push    8
.text:004744BD                 lea     edx, [esp+150h+var_138]
.text:004744C1                 push    edx
.text:004744C2                 lea     ecx, [esp+154h+var_124]
.text:004744C6                 mov     [esp+154h+var_4], 1
.text:004744D1                 mov     [esp+154h+var_138], bl
.text:004744D5                 call    sub_43CE90

Запись длины имени:

.text:004744E9                 push    1
.text:004744EB                 mov     ebx, eax
.text:004744ED                 push    8
.text:004744EF                 lea     eax, [esp+150h+var_138]
.text:004744F3                 push    eax
.text:004744F4                 lea     ecx, [esp+154h+var_124]
.text:004744F8                 mov     [esp+154h+var_138], bl
.text:004744FC                 call    sub_43CE90

И запись имени,длины имени:

.text:00474501                 movzx   ecx, bl
.text:00474504                 push    ecx
.text:00474505                 push    edi
.text:00474506                 lea     ecx, [esp+150h+var_124]
.text:0047450A                 call    sub_43CF40

Далее отправка пакета игрокам(не уверен что это то):

.text:0047450F                 mov     edx, dword_4B7CCC
.text:00474515                 mov     edi, [edx]
.text:00474517                 mov     eax, [edi]
.text:00474519                 push    esi
.text:0047451A                 lea     ecx, [esp+14Ch+var_12A]
.text:0047451E                 push    ecx
.text:0047451F                 mov     ecx, edi
.text:00474521                 call    dword ptr [eax+0DCh]
.text:00474527                 mov     ebx, [eax]
.text:00474529                 mov     ax, [eax+4]
.text:0047452D                 mov     edx, [edi]
.text:0047452F                 push    0
.text:00474531                 push    1
.text:00474533                 sub     esp, 8
.text:00474536                 mov     ecx, esp
.text:00474538                 push    0
.text:0047453A                 mov     [ecx], ebx
.text:0047453C                 push    2
.text:0047453E                 mov     [ecx+4], ax
.text:00474542                 push    1
.text:00474544                 lea     ecx, [esp+164h+var_124]
.text:00474548                 push    ecx
.text:00474549                 push    offset unk_49BA78
.text:0047454E                 mov     ecx, edi
.text:00474550                 call    dword ptr [edx+7Ch]
.text:00474553                 mov     edx, dword_4B7CCC
.text:00474559                 mov     ecx, [edx]
.text:0047455B                 mov     eax, [ecx]
.text:0047455D                 push    esi
.text:0047455E                 lea     edx, [esp+14Ch+in]
.text:00474562                 push    edx
.text:00474563                 call    dword ptr [eax+0DCh]
.text:00474569                 mov     eax, dword ptr [esp+148h+in.S_un]
.text:0047456D                 push    eax             ; in
.text:0047456E                 call    ds:inet_ntoa

а вот как выглядит всё это в соурсе сампа:

RakNet::BitStream bsSend;
		bsSend.Write(bytePlayerID);
		bsSend.Write(strlen(szPlayerName));
		bsSend.Write(szPlayerName,strlen(szPlayerName));
		pNetGame->GetRakServer()->RPC("xx",&bsSend,HIGH_PRIORITY,RELIABLE_ORDERED,0,
			pNetGame->GetRakServer()->GetPlayerIDFromIndex(bytePlayerID),TRUE,FALSE);

Как я понял для "упаковки" в пакет мне надо знать по какому адресу сидит bsSend
А для отправки: pNetGame

Помогите пожалуйста

#11 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 20-04-2009 07:32

009

kye говорит о pedах,а про ботов он сам согласился что они возможны,но он из не одобряет...
плагин Sacky работает,ботов создаёт но я их не использовал когда 0.2.2 ещё был...а щас понадобились но уже 0.2Х версия((
в 59 посту я описал как можно создать бота на стороне игрока(бот не пед,он иммитация игрока у которого будет жизнь,ник и т.д. а пед это пед)...может кто нибудь сможет всё таки разобраться в плагине Y_Less'a?

#12 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 19-04-2009 18:22

009

Здравствуйте уважаемые smile
Разработку я не забросил,встретил большие проблемы с ботами для сервера...точнее большие проблемы с иммитированием их подключения к серверу(проще говоря встал в мертвой точке),но есть другой вариант при чём более легкий и выполнимый...только для этого надо как то перебрать сложный для понимания плагин...ну расскажу по порядку:
Сервер самп использует бесплатный сетевой движок - RakNet,и есть плагин разработчика сампа,Y_Less'a ,где через память плагин собирает пакет и отправляет его игроку(через серверный RakNet).Поэтому я собираюсь собрать пакет где будет информация о "подключившемся игроке" и т.к. у клиента нет никаких проверок на бота и т.д. то он сразу же добавит псевдоигрока,а сервер не будет ничего об этом подозревать.после этого можно так же посылать пакеты выставления координат и т.д.,всё что душе угодно...но загвозтка в том что плагин Y_Less'a очень запутанный(по крайней мере для меня),я хотел взять от туда систему доступа к RakNet'y сервера,но не получилось,потом пытался изменить существующие функции,но сервер начел говорить "нет данной функции",поэтому обращаюсь к умельцам с просьбой дать мне код этой системы доступа пожалуйста помогите...

Плагин цепляю в архиве к сообщению...

#13 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 02-04-2009 01:16

009

В разговоре по irc с Y_Less'ом он сказал вот что:

"<Y_Less> You can't just set an address to true to connect a player, you need to fake a connection to the network layer"

Что переводится как:Вы не можете выставить значение true на слот игрока,вы должны фальсифицировать соединение с сетью.

По мойму лучше поверить Y_Less'у а не kye(с его этим SetPlayerChecpoint),поэтому у меня вопрос:как можно фальсифицировать соединение с сетью?(я не успел спросить у Y_Less'а,он уходил,но сказал что ещё можно будет обращаться и пожелал удачи с проектом smile

#14 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 31-03-2009 04:54

009

Здрасти всем...
вот при использовании того адреса что дал listener слот действительно закрывался но вылетала ошибка сервера...я решил попробовать спросить по irc у kye(главный разработчик сампа) и на удивление он мне ответил...сказал что адрес правильный и что ошибка связана с скриптовой функцией SetPlayerChecpoint...
вот адрес который в ошибке был:0x00473EBB

#15 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 28-03-2009 02:48

009

главное с чегото начать учиться пользоваться ассемблером;-)

#16 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 27-03-2009 19:41

009

СПС!получилось!не знаете где книжку по ассемблеру взять? blush

#17 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 27-03-2009 14:32

009

grin точно,а я то подумал что эт он не ответил когда зашёл!:lol::lol::lol:

#18 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 26-03-2009 16:51

009

как сделать слежку за всеми действиями внутри процесса в дебаггере,можете нормально обьяснить?

#19 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 26-03-2009 13:27

009

дело в том что sBot написан для 0.2.2 версии сампа,а сейчас 0.2Х в которой главный разработчик keyman сделал защиту от sbot т.к. sbot был сделан используя украденные исходники сампа,среди которых имелся исходник сервера...

#20 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 26-03-2009 10:00

009

написал письмо одному из разработчиков сампа-Y_Less'у,может помощет...вот копия:

Hello, I and some more Russian programmers we try to make boats for SA-MP in the form of a plug-in (please do not speak "not probably" and "do not spend in vain time", we will not stop working out not having received desirable result), at present we study samp-server.exe through assembler as we are going to do these boats operating memory of a server (some addresses), I the initiator of this working out, though and not the strong programmer. Recently using source codes vc-mp 0.1c and assembler's code vc-mp 0.1c server we have understood as in sa-mp on defined slot the player value is put occupied"(TRUE) in assembler this line looks so:


Code:
mov dword ptr [ebp+esi*4+0], 1

Where edp it CPlayerPool and esi it id the player in format BYTE

You, of course, all it and so know, but I wished to show that we not stupidly set questions, we really work over a plug-in. And which I ask the help from you it is edp (CPlayerPool address without which to execute closing slot it is not obviously possible, and which I cannot find in any way, please help.

Also forgive for my bad English, I used translator PROMT smile

Yours faithfully, 009

вродь норм написано,надеюсь поможет crazy

#21 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 25-03-2009 13:55

009

как найти этот адрес плин(((я уже мозг сломал с этим адресом

#22 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 25-03-2009 13:34

009

что это может значить:

.text:0046AE4A                 call    ebp ; Sleep

#23 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 25-03-2009 13:28

009

этот адрес я взял из файла crashinfo.txt в который при сбое сервер записывает вот такое:

--------------------------

Exception At Address: 0x10004A6A



Registers:

EAX: 0x00000001    EBX: 0x00000002    ECX: 0x00CDFF20    EDX: 0x7C90E4F4

ESI: 0x7C801AD4    EDI: 0x7C802446    EBP: 0x7C802446    ESP: 0x00CDFF78

EFLAGS: 0x00010202



Stack:

#24 Re: Работа с памятью, EXE » Помогите написать плагин для SA-MP » 25-03-2009 11:53

009

(DWORD *)(0x7C802446+0x00*4) = 1;

не компилит,говорит не верный тип
делал так:
(DWORD *)(0x7C802446+0x00*4) = (DWORD *)(1);

пишет left operand must be l-value

Board footer

Powered by FluxBB