 |
|

23.06.2014, 02:29
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Как создать диалог разных видов с возможностью реакции на нажатие кнопки?
|
|
|

23.06.2014, 12:45
|
|
Познающий
Регистрация: 19.03.2013
Сообщений: 83
С нами:
6920791
Репутация:
113
|
|
Сообщение от NarutoUA
Как создать диалог разных видов с возможностью реакции на нажатие кнопки?
Юзай ShowDialog().
|
|
|

23.06.2014, 13:05
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от MasterCard
Юзай ShowDialog().
А дальше что? Как, например, выполнить другую функцию при нажатии на кнопку? Да и в собе от фупа нету функции показа диалога, вроде.
|
|
|

23.06.2014, 21:03
|
|
Участник форума
Регистрация: 02.02.2014
Сообщений: 135
С нами:
6460176
Репутация:
0
|
|
1.Есть ли такой пакет который удаляет машину с сервера как в собе гонщика, если да то дайте название.
[S]2.Дайте список ИД Моделей: Домов(пустых/занятых) и т.п.[/S]
|
|
|

24.06.2014, 00:34
|
|
Познающий
Регистрация: 19.03.2013
Сообщений: 83
С нами:
6920791
Репутация:
113
|
|
Сообщение от NarutoUA
А дальше что? Как, например, выполнить другую функцию при нажатии на кнопку? Да и в собе от фупа нету функции показа диалога, вроде.
Делаешь проверку на нажатия и твоя функа будет работать! Диалоги поищи в разделе, Голубь где то выкладывал!
|
|
|

24.06.2014, 12:45
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от MasterCard
Делаешь проверку на нажатия и твоя функа будет работать! Диалоги поищи в разделе, Голубь где то выкладывал!
Я нашел его тему, но там только показ диалога и нету функции ответа.
http://blasthack.net/threads/Вызов-sa-mp-Диалога.1827/
Код:
Код:
void showSampDialog(int send, int dialogID, int typedialog, char *caption, char *text, char *button1, char *button2)
{
uint32_t func = g_dwSAMP_Addr+SAMP_DIALOG_SHOW;
uint32_t data = g_dwSAMP_Addr+SAMP_DIALOG_INFO_OFFSET;
__asm mov eax, dword ptr [data]
__asm mov ecx, dword ptr [eax] //mov to offset
__asm push send //0 - No send response, 1 - Send response
__asm push button2
__asm push button1
__asm push text
__asm push caption
__asm push typedialog
__asm push dialogID
__asm call func
return;
}
|
|
|

27.06.2014, 09:50
|
|
Участник форума
Регистрация: 02.02.2014
Сообщений: 135
С нами:
6460176
Репутация:
0
|
|
Дайте пример или тему как использовать адреса памяти.
|
|
|

03.07.2014, 23:56
|
|
Познающий
Регистрация: 19.03.2013
Сообщений: 83
С нами:
6920791
Репутация:
113
|
|
|
|
|

06.07.2014, 12:40
|
|
Новичок
Регистрация: 03.03.2014
Сообщений: 6
С нами:
6418306
Репутация:
0
|
|
Player aimed (green triange over head)
PHP:
Код:
uint8_t
*
ptr
=
(
uint8_t
*
)
g_Players
-
>
pLocalPlayer
-
320
;
uint16_t thedata
[
5
]
;
memcpy_safe
(
&
thedata
,
ptr
+
0x2b9
,
4
)
;
int PlayerAimedID
=
thedata
[
0
]
;
//0xFFFF if not green triangle
Get AIM by collision Vehicles and Players
WARNING only works in 1920 x 1080, feel free to make some maths to get any resolution, im too lazy.
PHP:
Код:
if
(
KEY_DOWN
(
0x02
)
)
{
isAim2KeyDown
=
true
;
}
else
{
isAim2KeyDown
=
false
;
}
float pos
[
3
]
;
if
(
isAim2KeyDown
)
{
CVehicle
*
pCVehicleTeleport
=
NULL
;
CPed
*
pCPedTeleport
=
NULL
;
D3DXVECTOR3
poss
,
screenposs
;
screenposs
.
x
=
960
+
58
;
//1920/2 = 960 + 58 is the offset, feel free to make some mathematic here
screenposs
.
y
=
540
-
108
;
//1080/2 = 540 - 108 is the offset, feel free to make some mathematic here
screenposs
.
z
=
700.0
f
;
CalcWorldCoors2
(
&
screenposs
,
&
poss
)
;
CVector
vecTarget
(
poss
.
x
,
poss
.
y
,
poss
.
z
)
;
// setup variables
CVector vecOrigin
,
vecGroundPos
;
CColPoint
*
pCollision
=
NULL
;
CEntitySAInterface
*
pCollisionEntity
=
NULL
;
// origin = our camera
vecOrigin
=
*
pGame
-
>
GetCamera
(
)
-
>
GetCam
(
pGame
-
>
GetCamera
(
)
-
>
GetActiveCam
(
)
)
-
>
GetSource
(
)
;
// check for collision
bool bCollision
=
GTAfunc_ProcessLineOfSight
(
&
vecOrigin
,
&
vecTarget
,
&
pCollision
,
&
pCollisionEntity
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
)
;
float posss
[
3
]
;
if
(
bCollision
&&
pCollision
)
{
if
(
pCollisionEntity
&&
pCollisionEntity
-
>
nType
==
ENTITY_TYPE_VEHICLE
)
{
pCVehicleTeleport
=
pGameInterface
-
>
GetPools
(
)
-
>
GetVehicle
(
(
DWORD
*
)
pCollisionEntity
)
;
if
(
pCVehicleTeleport
)
{
//vecGroundPos = *pCVehicleTeleport->GetPosition();
const
struct vehicle_entry
*
vehicleEntry
=
gta_vehicle_get_by_id
(
pCVehicleTeleport
-
>
GetModelIndex
(
)
)
;
if
(
vehicleEntry
!=
NULL
)
{
int iVehicleID
=
getVehicleGTAIDFromInterface
(
(
DWORD
*
)
pCVehicleTeleport
-
>
GetInterface
(
)
)
;
//cheat_state_text("collision %d", translateGTASAMP_pedPool.iSAMPID[iActorID]);
aimidf
=
translateGTASAMP_vehiclePool
.
iSAMPID
[
iVehicleID
]
;
cheat_state
-
>
RealAIMID
=
aimidf
;
cheat_state
-
>
TypeAIMID
=
2
;
}
}
}
// setup some stuff for normal warp
else
if
(
pCollisionEntity
&&
pCollisionEntity
-
>
nType
==
ENTITY_TYPE_PED
)
{
pCPedTeleport
=
pGameInterface
-
>
GetPools
(
)
-
>
GetPed
(
(
DWORD
*
)
pCollisionEntity
)
;
if
(
pCPedTeleport
)
{
//vecGroundPos = *pCPedTeleport->GetPosition();
int iActorID
=
getPedGTAIDFromInterface
(
(
DWORD
*
)
pCPedTeleport
-
>
GetInterface
(
)
)
;
if
(
iActorID
!=
NULL
)
{
//sprintf(buf, "Aim-menu (%d)", translateGTASAMP_pedPool.iSAMPID[iActorID]);
aimidf
=
translateGTASAMP_pedPool
.
iSAMPID
[
iActorID
]
;
cheat_state
-
>
RealAIMID
=
aimidf
;
cheat_state
-
>
TypeAIMID
=
1
;
}
}
}
}
pCollision
-
>
Destroy
(
)
;
}
//vecGroundPos = *pCollision->GetPosition();
//cheat_state_text("collision ID(%d) %0.2f %0.2f Distance(%0.2f)", aimidf, (float)poss.x, (float)poss.y, vect3_dist(&vecOrigin.fX, &vecGroundPos.fX));
CVector lol
;
lol
.
fX
=
0
;
lol
.
fY
=
0
;
lol
.
fZ
=
0
;
//save current aim status
float posss
[
3
]
;
if
(
cheat_state
-
>
TypeAIMID
==
1
)
{
if
(
getPlayerPos
(
cheat_state
-
>
RealAIMID
,
posss
)
)
{
cheat_state
-
>
CurrentAIMstreamed
=
true
;
cheat_state
-
>
CurrentAIMstreamed
=
1
;
cheat_state
-
>
DistanceAIM
=
vect3_dist
(
cheat_state
-
>
actor
.
coords
,
posss
)
;
lol
.
fX
=
posss
[
0
]
;
lol
.
fY
=
posss
[
1
]
;
lol
.
fZ
=
posss
[
2
]
;
//cheat_state_text("collision ID(%d) %0.2f %0.2f Distance(%0.2f) Distance(%0.2f)", aimidf, (float)poss.x, (float)poss.y, vect3_dist(&vecOrigin.fX, &vecGroundPos.fX), cheat_state->DistanceAIM);
}
else
{
cheat_state
-
>
CurrentAIMstreamed
=
false
;
cheat_state
-
>
DistanceAIM
=
0.0
f
;
}
}
if
(
cheat_state
-
>
TypeAIMID
==
2
)
{
if
(
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
!=
NULL
)
{
cheat_state
-
>
CurrentAIMstreamed
=
true
;
cheat_state
-
>
DistanceAIM
=
vect3_dist
(
cheat_state
-
>
actor
.
coords
,
&
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
4
*
3
]
)
;
lol
.
fX
=
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
4
*
3
]
;
lol
.
fY
=
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
13
]
;
lol
.
fZ
=
g_Vehicles
-
>
pSAMP_Vehicle
[
cheat_state
-
>
RealAIMID
]
-
>
pGTA_Vehicle
-
>
base
.
matrix
[
14
]
;
}
else
{
cheat_state
-
>
CurrentAIMstreamed
=
false
;
cheat_state
-
>
DistanceAIM
=
0.0
f
;
}
}
|
|
|

09.07.2014, 08:27
|
|
Участник форума
Регистрация: 02.02.2014
Сообщений: 135
С нами:
6460176
Репутация:
0
|
|
Код:
Код:
static int time=0;
if(GetTickCount() - 1000 > time)
{
struct actor_info *self = actor_info_get(-1, ACTOR_ALIVE);
gta_weapon_set(self, 2,24,1,0);
gta_weapon_set(self, 3,25,1,0);
gta_weapon_set(self, 5,30,1,0);
gta_weapon_set(self, 1, 8,1,0);
{
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
time = GetTickCount();
}
}
}
Как сделать так чтобы это повторялось
Код:
Код:
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (1) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (2) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (3) );
time = GetTickCount();
pPedSelf->SetCurrentWeaponSlot( eWeaponSlot (5) );
time = GetTickCount();
вот эта часть
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|