 |
|

01.10.2015, 08:42
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
По сути дела работает при заходе. Но неверно. Координаты всегда по нулям. ID объекта вообще рандомный  idrila:
Код:
Код:
bool __stdcall TEST(stRakNetHookParams *hook)
{
if (hook->packetId == ScriptRPCEnumeration::RPC_ScrCreateObject)
{
hook->bitStream->ResetReadPointer();
int modelid; float Pos[3];
float xPos[3];
float DrawDis;
hook->bitStream->Read(modelid);
hook->bitStream->Read(Pos[0]);
hook->bitStream->Read(Pos[1]);
hook->bitStream->Read(Pos[2]);
hook->bitStream->Read(xPos[0]);
hook->bitStream->Read(xPos[1]);
hook->bitStream->Read(xPos[2]);
hook->bitStream->Read(DrawDis);
hook->bitStream->ResetReadPointer();
SAMP->getChat()->AddChatMessage(D3DCOLOR_ARGB(255, 255, 255, 255), "CreateObject(%d, %f, %f, %f, %f, %f, %f, %f)", modelid, Pos[0], Pos[1], Pos[2], xPos[0], xPos[1], xPos[2], DrawDis);
}
return true;
};
|
|
|

01.10.2015, 16:18
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от Tray228
Почему не проходит вторая задержка в 2 секунды.
После переподключения прошо 2 секунды и телепортировался на определенные кординаты.
PHP:
Код:
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include
#include
#include
#include
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool bRequestReconnect
=
false
;
DWORD
time
=
0
;
bool bRequestWait
=
false
;
DWORD
times
=
0
;
void
CALLBACK
telo
(
std
:
:
string param
)
{
SF
-
>
getSAMP
(
)
-
>
disconnect
(
100
)
;
SF
-
>
getSAMP
(
)
-
>
getInfo
(
)
-
>
RestartGame
(
)
;
SF
-
>
getSAMP
(
)
-
>
getInfo
(
)
-
>
iGameState
=
GAMESTATE_WAIT_CONNECT
;
}
void
CALLBACK
teli
(
std
:
:
string param
)
{
bRequestReconnect
=
true
;
time
=
GetTickCount
(
)
;
SF
-
>
getSAMP
(
)
-
>
disconnect
(
100
)
;
SF
-
>
getSAMP
(
)
-
>
getInfo
(
)
-
>
RestartGame
(
)
;
bRequestWait
=
true
;
times
=
GetTickCount
(
)
;
}
void
CALLBACK
tela
(
std
:
:
string param
)
{
ExitProcess
(
1
)
;
}
void
CALLBACK
tels
(
std
:
:
string param
)
{
SF
-
>
getSAMP
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"{FF0000}Команды: {0000FF}/recco - {FFFFFF}переподключение без задержки, {0000FF}/reccos - {FFFFFF}переподключение с задержкой в 15 сек, {0000FF}/fquit - {FFFFFF}быстрое закрытие GTA:SA."
)
;
SF
-
>
getSAMP
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"{0000FF}/fquit - {FFFFFF}быстрое закрытие GTA:SA."
)
;
}
void
CALLBACK
mainloop
(
)
{
static
bool init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
-
>
GetSystemState
(
)
!=
eSystemState
:
:
GS_PLAYING_GAME
)
return
;
if
(
!
SF
-
>
getSAMP
(
)
-
>
IsInitialized
(
)
)
return
;
SF
-
>
getSAMP
(
)
-
>
registerChatCommand
(
"recco"
,
telo
)
;
SF
-
>
getSAMP
(
)
-
>
registerChatCommand
(
"reccos"
,
teli
)
;
SF
-
>
getSAMP
(
)
-
>
registerChatCommand
(
"fquit"
,
tela
)
;
SF
-
>
getSAMP
(
)
-
>
registerChatCommand
(
"helrf"
,
tels
)
;
SF
-
>
getSAMP
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"{0000FF}Recconect {FFFFFF}and {0000FF}Fast Quit {FFFFFF}by {7CFF00}TRAY228 {FFFFFF}| {FFFFFF}Thanks to {44FF00}urShadow"
)
;
SF
-
>
getSAMP
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Помощь по командам: {0000FF}/helrf "
)
;
init
=
true
;
}
if
(
(
GetTickCount
(
)
-
time
)
>
15000
&&
bRequestReconnect
)
{
SF
-
>
getSAMP
(
)
-
>
getInfo
(
)
-
>
iGameState
=
GAMESTATE_WAIT_CONNECT
;
bRequestReconnect
=
false
;
time
=
GetTickCount
(
)
;
if
(
(
GetTickCount
(
)
-
times
)
>
2000
&&
bRequestWait
)
PEDSELF
-
>
Teleport
(
0
,
0
,
0
)
;
bRequestWait
=
false
;
times
=
GetTickCount
(
)
;
}
}
BOOL
APIENTRY
DllMain
(
HMODULE
hModule
,
DWORD
dwReasonForCall
,
LPVOID
lpReserved
)
{
switch
(
dwReasonForCall
)
{
case
DLL_PROCESS_ATTACH
:
SF
-
>
initPlugin
(
mainloop
,
hModule
)
;
break
;
case
DLL_THREAD_ATTACH
:
case
DLL_THREAD_DETACH
:
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}
попробуй через sleep и поток,хотя я в этом не уверен
|
|
|

01.10.2015, 16:23
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Сообщение от A.Tornerro
попробуй через sleep и поток,хотя я в этом не уверен
Это как?
|
|
|

01.10.2015, 16:36
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Как сделать телепорт по метке?
|
|
|

01.10.2015, 19:46
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Сообщение от Woofing Giraffe
Ну лично я так делаю
Код:
Код:
if (!SF->getSAMP()->getPlayers()->IsPlayerDefined(plid, false)) return SF->getSAMP()->getChat()->AddChatMessage(0xB0B0B0, "Такого игрока нет.");
в маин луп это идет?
|
|
|

01.10.2015, 20:05
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Tray228
в маин луп это идет?
Смотря куда, но лучше не надо
|
|
|

01.10.2015, 20:08
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
|
|
|

01.10.2015, 20:08
|
|
Новичок
Регистрация: 19.09.2003
Сообщений: 4
С нами:
11916434
Репутация:
0
|
|
Как проверить на то, что актёр мёртв?
|
|
|

01.10.2015, 20:47
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Сообщение от Woofing Giraffe
Смотря куда, но лучше не надо
Дай лучше ВК)
|
|
|

01.10.2015, 20:49
|
|
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами:
5884065
Репутация:
0
|
|
Сообщение от Slono_Boyko
if Actor.Death()
Как то так
нет такого
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|